X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=extraconfig%2Fpre_deploy%2Frhel-registration%2Fscripts%2Frhel-registration;h=2650a9670d81a42093ddd68be246b83ae81032bb;hb=3243a1ab275648a17c98f47735a4490b59478d1e;hp=cbbd6a1d0e482e1c415d1ef302783b6d8707e84b;hpb=0f2bf59910639c62442aa3a1266ea4e67d76d25a;p=apex-tripleo-heat-templates.git diff --git a/extraconfig/pre_deploy/rhel-registration/scripts/rhel-registration b/extraconfig/pre_deploy/rhel-registration/scripts/rhel-registration index cbbd6a1d..2650a967 100644 --- a/extraconfig/pre_deploy/rhel-registration/scripts/rhel-registration +++ b/extraconfig/pre_deploy/rhel-registration/scripts/rhel-registration @@ -11,10 +11,12 @@ if [ -e $OK ] ; then exit 0 fi +retryCount=0 opts= attach_opts= +sat5_opts= repos="repos --enable rhel-7-server-rpms" -satellite_repo="rhel-7-server-rh-common-rpms" +satellite_repo=${REG_SAT_REPO} if [ -n "${REG_AUTO_ATTACH:-}" ]; then opts="$opts --auto-attach" @@ -49,6 +51,7 @@ fi if [ -n "${REG_FORCE:-}" ]; then opts="$opts --force" + sat5_opts="$sat5_opts --force" fi if [ -n "${REG_SERVER_URL:-}" ]; then @@ -57,6 +60,7 @@ fi if [ -n "${REG_ACTIVATION_KEY:-}" ]; then opts="$opts --activationkey=$REG_ACTIVATION_KEY" + sat5_opts="$sat5_opts --activationkey=$REG_ACTIVATION_KEY" if [ -z "${REG_ORG:-}" ]; then echo "WARNING: REG_ACTIVATION_KEY set without REG_ORG." @@ -75,10 +79,12 @@ fi if [ -n "${REG_MACHINE_NAME:-}" ]; then opts="$opts --name $REG_MACHINE_NAME" + sat5_opts="$sat5_opts --profilename=$REG_MACHINE_NAME" fi if [ -n "${REG_ORG:-}" ]; then opts="$opts --org=$REG_ORG" + sat5_opts="$sat5_opts --systemorgid=$REG_ORG" fi if [ -n "${REG_REPOS:-}" ]; then @@ -91,22 +97,62 @@ if [ -n "${REG_TYPE:-}" ]; then opts="$opts --type=$REG_TYPE" fi +function retry() { + if [[ $retryCount < 3 ]]; then + $@ + if ! [[ $? == 0 ]]; then + retryCount=$(echo $retryCount + 1 | bc) + echo "WARN: Failed to connect when running '$@', retrying..." + retry $@ + else + retryCount=0 + fi + else + echo "ERROR: Failed to connect after 3 attempts when running '$@'" + exit 1 + fi +} + +function detect_satellite_version { + ping_api=$REG_SAT_URL/katello/api/ping + if curl --retry 3 --retry-delay 10 --max-time 30 -L -k -s -D - -o /dev/null $ping_api | grep "200 OK"; then + echo Satellite 6 detected at $REG_SAT_URL + satellite_version=6 + elif curl --retry 3 --retry-delay 10 --max-time 30 -L -k -s -D - -o /dev/null $REG_SAT_URL/rhn/Login.do | grep "200 OK"; then + echo Satellite 5 detected at $REG_SAT_URL + satellite_version=5 + else + echo No Satellite detected at $REG_SAT_URL + exit 1 + fi +} + case "${REG_METHOD:-}" in portal) - subscription-manager register $opts + retry subscription-manager register $opts if [ -z "${REG_AUTO_ATTACH:-}" -a -z "${REG_ACTIVATION_KEY:-}" ]; then - subscription-manager attach $attach_opts + retry subscription-manager attach $attach_opts fi - subscription-manager $repos + retry subscription-manager repos --disable '*' + retry subscription-manager $repos ;; satellite) - repos="$repos --enable ${satellite_repo}" - rpm -Uvh "$REG_SAT_URL/pub/katello-ca-consumer-latest.noarch.rpm" || true - subscription-manager register $opts - subscription-manager $repos - yum install -y katello-agent || true # needed for errata reporting to satellite6 - katello-package-upload - subscription-manager repos --disable ${satellite_repo} + detect_satellite_version + if [ "$satellite_version" = "6" ]; then + repos="$repos --enable ${satellite_repo}" + curl --retry 3 --retry-delay 10 --max-time 30 -L -k -O "$REG_SAT_URL/pub/katello-ca-consumer-latest.noarch.rpm" + rpm -Uvh katello-ca-consumer-latest.noarch.rpm || true + retry subscription-manager register $opts + retry subscription-manager $repos + retry yum install -y katello-agent || true # needed for errata reporting to satellite6 + katello-package-upload + retry subscription-manager repos --disable ${satellite_repo} + else + pushd /usr/share/rhn/ + curl --retry 3 --retry-delay 10 --max-time 30 -k -O $REG_SAT_URL/pub/RHN-ORG-TRUSTED-SSL-CERT + popd + retry rhnreg_ks --serverUrl=$REG_SAT_URL/XMLRPC $sat5_opts + fi ;; disable) echo "Disabling RHEL registration"