Redhat subscription (#20729)

* Make unused redhat_subscriptions do something

rhsm_baseurl/server_insecure were module params that were
never used previously. Hook them up for register options.

* pep8/style cleanups
* Set a module scope SUBMAN_CMD before we ref it as a global
* move ansible imports to top, remove '*' imports
* remove redhat_subscriptions from pep8 legacy
This commit is contained in:
Adrian Likins 2017-02-07 12:07:01 -05:00 committed by GitHub
parent 530701b398
commit 7278308ca2
2 changed files with 65 additions and 40 deletions

View file

@ -104,7 +104,11 @@ options:
version_added: "2.1"
consumer_id:
description:
- References an existing consumer ID to resume using a previous registration for this system. If the system's identity certificate is lost or corrupted, this option allows it to resume using its previous identity and subscriptions. The default is to not specify a consumer ID so a new ID is created.
- |
References an existing consumer ID to resume using a previous registration
for this system. If the system's identity certificate is lost or corrupted,
this option allows it to resume using its previous identity and subscriptions.
The default is to not specify a consumer ID so a new ID is created.
required: False
default: null
version_added: "2.1"
@ -166,6 +170,9 @@ from ansible.module_utils.pycompat24 import get_exception
from ansible.module_utils.six.moves import configparser
SUBMAN_CMD = None
class RegistrationBase(object):
def __init__(self, module, username=None, password=None):
self.module = module
@ -272,10 +279,6 @@ class Rhsm(RegistrationBase):
* Boolean - whether the current system is currently registered to
RHSM.
'''
# Quick version...
if False:
return os.path.isfile('/etc/pki/consumer/cert.pem') and \
os.path.isfile('/etc/pki/consumer/key.pem')
args = [SUBMAN_CMD, 'identity']
rc, stdout, stderr = self.module.run_command(args, check_rc=False)
@ -285,7 +288,8 @@ class Rhsm(RegistrationBase):
return False
def register(self, username, password, autosubscribe, activationkey, org_id,
consumer_type, consumer_name, consumer_id, force_register, environment):
consumer_type, consumer_name, consumer_id, force_register, environment,
rhsm_baseurl, server_insecure):
'''
Register the current system to the provided RHSM or Sat6 server
Raises:
@ -297,6 +301,12 @@ class Rhsm(RegistrationBase):
if force_register:
args.extend(['--force'])
if rhsm_baseurl:
args.extend(['--baseurl', rhsm_baseurl])
if server_insecure:
args.extend(['--insecure'])
if activationkey:
args.extend(['--activationkey', activationkey])
args.extend(['--org', org_id])
@ -381,7 +391,6 @@ class Rhsm(RegistrationBase):
'unsubscribed_serials': serials}
class RhsmPool(object):
'''
Convenience class for housing subscription information
@ -472,21 +481,38 @@ def main():
module = AnsibleModule(
argument_spec=dict(
state = dict(default='present', choices=['present', 'absent']),
username = dict(default=None, required=False),
password = dict(default=None, required=False, no_log=True),
server_hostname = dict(default=rhsm.config.get_option('server.hostname'), required=False),
server_insecure = dict(default=rhsm.config.get_option('server.insecure'), required=False),
rhsm_baseurl = dict(default=rhsm.config.get_option('rhsm.baseurl'), required=False),
autosubscribe = dict(default=False, type='bool'),
activationkey = dict(default=None, required=False),
org_id = dict(default=None, required=False),
environment = dict(default=None, required=False, type='str'),
pool = dict(default='^$', required=False, type='str'),
consumer_type = dict(default=None, required=False),
consumer_name = dict(default=None, required=False),
consumer_id = dict(default=None, required=False),
force_register = dict(default=False, type='bool'),
state=dict(default='present',
choices=['present', 'absent']),
username=dict(default=None,
required=False),
password=dict(default=None,
required=False,
no_log=True),
server_hostname=dict(default=rhsm.config.get_option('server.hostname'),
required=False),
server_insecure=dict(default=rhsm.config.get_option('server.insecure'),
required=False),
rhsm_baseurl=dict(default=rhsm.config.get_option('rhsm.baseurl'),
required=False),
autosubscribe=dict(default=False,
type='bool'),
activationkey=dict(default=None,
required=False),
org_id=dict(default=None,
required=False),
environment=dict(default=None,
required=False, type='str'),
pool=dict(default='^$',
required=False,
type='str'),
consumer_type=dict(default=None,
required=False),
consumer_name=dict(default=None,
required=False),
consumer_id=dict(default=None,
required=False),
force_register=dict(default=False,
type='bool'),
),
required_together=[['username', 'password'], ['activationkey', 'org_id']],
mutually_exclusive=[['username', 'activationkey']],
@ -500,7 +526,7 @@ def main():
server_hostname = module.params['server_hostname']
server_insecure = module.params['server_insecure']
rhsm_baseurl = module.params['rhsm_baseurl']
autosubscribe = module.params['autosubscribe'] == True
autosubscribe = module.params['autosubscribe']
activationkey = module.params['activationkey']
org_id = module.params['org_id']
environment = module.params['environment']
@ -534,7 +560,7 @@ def main():
rhsm.configure(**module.params)
rhsm.register(username, password, autosubscribe, activationkey, org_id,
consumer_type, consumer_name, consumer_id, force_register,
environment)
environment, rhsm_baseurl, server_insecure)
subscribed_pool_ids = rhsm.subscribe(pool)
except Exception:
e = get_exception()

View file

@ -185,7 +185,6 @@ lib/ansible/modules/packaging/os/homebrew.py
lib/ansible/modules/packaging/os/openbsd_pkg.py
lib/ansible/modules/packaging/os/opkg.py
lib/ansible/modules/packaging/os/pacman.py
lib/ansible/modules/packaging/os/redhat_subscription.py
lib/ansible/modules/packaging/os/rhn_register.py
lib/ansible/modules/packaging/os/swdepot.py
lib/ansible/modules/packaging/os/yum.py