-
Notifications
You must be signed in to change notification settings - Fork 200
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add global registration bats tests for Katello clients #1391
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
#!/usr/bin/env bats | ||
# vim: ft=sh:sw=2:et | ||
|
||
set -o pipefail | ||
|
||
load os_helper | ||
load foreman_helper | ||
load fixtures/content | ||
|
||
@test "remove subscription manager" { | ||
if [ -e "/etc/rhsm/ca/candlepin-local.pem" ]; then | ||
rpm -e `rpm -qf /etc/rhsm/ca/candlepin-local.pem` | ||
fi | ||
|
||
cleanSubscriptionManager | ||
tPackageRemove subscription-manager | ||
} | ||
|
||
@test "disable puppet agent to prevent checkin from registering host to another org" { | ||
systemctl is-active puppet || skip "Puppet is not active" | ||
systemctl stop puppet | ||
} | ||
|
||
@test "delete host if present" { | ||
hammer host delete --name=$HOSTNAME || echo "Could not delete host" | ||
} | ||
|
||
@test "register with global registration with activation key" { | ||
run yum erase -y 'katello-ca-consumer-*' | ||
echo "rc=${status}" | ||
echo "${output}" | ||
|
||
organization_info=$(hammer --output json organization info --name "${ORGANIZATION}") | ||
organization_id=$(echo $organization_info | ruby -e "require 'json'; puts JSON.load(ARGF.read)['Id']") | ||
|
||
curl_command="curl https://admin:changeme@$HOSTNAME/api/registration_commands -X POST -H 'Content-Type: application/json' -d '{\"activation_key\":\"${ACTIVATION_KEY}\",\"organization_id\":\"${organization_id}\"}'" | ||
registration_json=$(eval $curl_command) | ||
echo "${registration_json}" | ||
|
||
registration_command=$(echo "${registration_json}" | ruby -e "require 'json'; puts JSON.load(ARGF.read).fetch('registration_command')") | ||
eval $registration_command | ||
subscription-manager list --consumed | grep "${PRODUCT}" | ||
} | ||
|
||
@test "check content host is registered" { | ||
hammer host info --name $HOSTNAME | ||
} | ||
|
||
@test "enable content view repo" { | ||
subscription-manager repos --enable="${ORGANIZATION_LABEL}_${PRODUCT_LABEL}_${YUM_REPOSITORY_LABEL}" | grep -q "is enabled for this system" | ||
} | ||
|
||
@test "install package locally" { | ||
run yum -y remove walrus | ||
tPackageInstall walrus-0.71 && tPackageExists walrus-0.71 | ||
} | ||
|
||
@test "check available errata" { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Feels like this duplicates the original content tests -- might want to move it to a helper later? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yea, can do, as I have another test suite in mind that would do the same thing. |
||
local next_wait_time=0 | ||
until hammer host errata list --host $HOSTNAME | grep 'RHEA-2012:0055'; do | ||
if [ $next_wait_time -eq 14 ]; then | ||
# make one last try, also makes the error nice | ||
hammer host errata list --host $HOSTNAME | grep 'RHEA-2012:0055' | ||
fi | ||
sleep $(( next_wait_time++ )) | ||
done | ||
} | ||
|
||
@test "try fetching container content" { | ||
tPackageExists podman || tPackageInstall podman | ||
podman login $HOSTNAME -u admin -p changeme | ||
CONTAINER_PULL_LABEL=`echo "${ORGANIZATION_LABEL}-${PRODUCT_LABEL}-${CONTAINER_REPOSITORY_LABEL}"| tr '[:upper:]' '[:lower:]'` | ||
podman pull "${HOSTNAME}/${CONTAINER_PULL_LABEL}" | ||
} | ||
|
||
@test "cleanup subscription-manager after content tests" { | ||
cleanSubscriptionManager | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -17,6 +17,7 @@ bats_tests: | |
- "fb-test-katello.bats" | ||
- "fb-katello-content.bats" | ||
- "fb-katello-client.bats" | ||
- "fb-katello-client-global-registration.bats" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I probably need to not include this for some versions of Foreman and Katello we currently support. What those would be, I am not presently sure of. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 4.0+ I believe |
||
bats_tests_additional: [] | ||
bats_teardown: | ||
- "fb-destroy-organization.bats" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is that so that the GR command can install it again?
Doesn't this break pulp3 on EL8 where this might kill python3-rhsm (or whatever the right pkg name is)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I hope not. I did not see any breaks with my testing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you ran it on EL8 and it did not make pulp-certguard go belly up, we're good.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks all good: