Skip to content

Commit

Permalink
[6.16.z] Add conditioning for pool attach (#16810)
Browse files Browse the repository at this point in the history
Add conditioning for pool attach (#16575)

* Add conditioning for pool attach

* Improve pool validations a bit

(cherry picked from commit 334a12f)

Co-authored-by: vsedmik <[email protected]>
  • Loading branch information
Satellite-QE and vsedmik authored Oct 31, 2024
1 parent 87c618e commit 140b7f3
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 7 deletions.
1 change: 1 addition & 0 deletions robottelo/constants/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -317,6 +317,7 @@
'current': 'Overall Status: Current',
'invalid': 'Overall Status: Invalid',
'insufficient': 'Overall Status: Insufficient',
'disabled': 'Overall Status: Disabled',
'unknown': 'Overall Status: Unknown',
}

Expand Down
19 changes: 12 additions & 7 deletions robottelo/hosts.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@
RHSSO_RESET_PASSWORD,
RHSSO_USER_UPDATE,
SATELLITE_VERSION,
SM_OVERALL_STATUS,
)
from robottelo.exceptions import CLIFactoryError, DownloadFileError, HostPingFailed
from robottelo.host_helpers import CapsuleMixins, ContentHostMixins, SatelliteMixins
Expand Down Expand Up @@ -1429,8 +1430,6 @@ def install_tracer(self):

def register_to_cdn(self, pool_ids=None, enable_proxy=False):
"""Subscribe satellite to CDN"""
if pool_ids is None:
pool_ids = [settings.subscription.rhn_poolid]
self.reset_rhsm()
cmd_result = self.register_contenthost(
org=None,
Expand All @@ -1443,11 +1442,17 @@ def register_to_cdn(self, pool_ids=None, enable_proxy=False):
raise ContentHostError(
f'Error during registration, command output: {cmd_result.stdout}'
)
cmd_result = self.subscription_manager_attach_pool(pool_ids)[0]
if cmd_result.status != 0:
raise ContentHostError(
f'Error during pool attachment, command output: {cmd_result.stdout}'
)
# Attach a pool only if the Org isn't SCA yet
sub_status = self.subscription_manager_status().stdout
if SM_OVERALL_STATUS['disabled'] not in sub_status:
if pool_ids in [None, []]:
pool_ids = [settings.subscription.rhn_poolid]
for pid in pool_ids:
int(pid, 16) # raises ValueError if not a HEX number
cmd_result = self.subscription_manager_attach_pool(pool_ids)
for res in cmd_result:
if res.status != 0:
raise ContentHostError(f'Pool attachment failed with output: {res.stdout}')

def ping_host(self, host):
"""Check the provisioned host status by pinging the ip of host
Expand Down

0 comments on commit 140b7f3

Please sign in to comment.