From 42deaf2c717a35b009939ca3a7d2c1e0798fff3b Mon Sep 17 00:00:00 2001 From: James Molet Date: Fri, 13 Oct 2017 08:59:49 -0400 Subject: [PATCH] updating argument validation for activation keys to match subscription-manager command line, fixes #27283 (#30236) --- .../packaging/os/redhat_subscription.py | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/lib/ansible/modules/packaging/os/redhat_subscription.py b/lib/ansible/modules/packaging/os/redhat_subscription.py index 0d543cc173..3b6a2f1ec6 100644 --- a/lib/ansible/modules/packaging/os/redhat_subscription.py +++ b/lib/ansible/modules/packaging/os/redhat_subscription.py @@ -385,9 +385,11 @@ class Rhsm(RegistrationBase): if server_hostname: args.extend(['--serverurl', server_hostname]) + if org_id: + args.extend(['--org', org_id]) + if activationkey: args.extend(['--activationkey', activationkey]) - args.extend(['--org', org_id]) else: if auto_attach: args.append('--auto-attach') @@ -704,9 +706,17 @@ def main(): required=False, no_log=True), ), - required_together=[['username', 'password'], ['activationkey', 'org_id'], - ['server_proxy_hostname', 'server_proxy_port'], ['server_proxy_user', 'server_proxy_password']], - mutually_exclusive=[['username', 'activationkey'], ['pool', 'pool_ids']], + required_together=[['username', 'password'], + ['server_proxy_hostname', 'server_proxy_port'], + ['server_proxy_user', 'server_proxy_password']], + + mutually_exclusive=[['activationkey', 'username'], + ['activationkey', 'consumer_id'], + ['activationkey', 'environment'], + ['activationkey', 'autosubscribe'], + ['force', 'consumer_id'], + ['pool', 'pool_ids']], + required_if=[['state', 'present', ['username', 'activationkey'], True]], ) @@ -720,6 +730,8 @@ def main(): auto_attach = module.params['auto_attach'] activationkey = module.params['activationkey'] org_id = module.params['org_id'] + if activationkey and not org_id: + module.fail_json(msg='org_id is required when using activationkey') environment = module.params['environment'] pool = module.params['pool'] pool_ids = {}