mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-05-08 06:12:51 +00:00
Reformat everything.
This commit is contained in:
@@ -90,26 +90,23 @@ from ansible.module_utils.basic import AnsibleModule
|
||||
class Rhsm:
|
||||
def __init__(self, module):
|
||||
self.module = module
|
||||
self.rhsm_bin = self.module.get_bin_path('subscription-manager', required=True)
|
||||
self.rhsm_bin = self.module.get_bin_path("subscription-manager", required=True)
|
||||
self.rhsm_kwargs = {
|
||||
'environ_update': dict(LANG='C', LC_ALL='C', LC_MESSAGES='C'),
|
||||
'expand_user_and_vars': False,
|
||||
'use_unsafe_shell': False,
|
||||
"environ_update": dict(LANG="C", LC_ALL="C", LC_MESSAGES="C"),
|
||||
"expand_user_and_vars": False,
|
||||
"use_unsafe_shell": False,
|
||||
}
|
||||
|
||||
def run_repos(self, arguments):
|
||||
"""
|
||||
Execute `subscription-manager repos` with arguments and manage common errors
|
||||
"""
|
||||
rc, out, err = self.module.run_command(
|
||||
[self.rhsm_bin, 'repos'] + arguments,
|
||||
**self.rhsm_kwargs
|
||||
)
|
||||
rc, out, err = self.module.run_command([self.rhsm_bin, "repos"] + arguments, **self.rhsm_kwargs)
|
||||
|
||||
if rc == 0 and out == 'This system has no repositories available through subscriptions.\n':
|
||||
self.module.fail_json(msg='This system has no repositories available through subscriptions')
|
||||
if rc == 0 and out == "This system has no repositories available through subscriptions.\n":
|
||||
self.module.fail_json(msg="This system has no repositories available through subscriptions")
|
||||
elif rc == 1:
|
||||
self.module.fail_json(msg=f'subscription-manager failed with the following error: {err}')
|
||||
self.module.fail_json(msg=f"subscription-manager failed with the following error: {err}")
|
||||
else:
|
||||
return rc, out, err
|
||||
|
||||
@@ -117,12 +114,12 @@ class Rhsm:
|
||||
"""
|
||||
Generate RHSM repository list and return a list of dict
|
||||
"""
|
||||
rc, out, err = self.run_repos(['--list'])
|
||||
rc, out, err = self.run_repos(["--list"])
|
||||
|
||||
repo_id = ''
|
||||
repo_name = ''
|
||||
repo_url = ''
|
||||
repo_enabled = ''
|
||||
repo_id = ""
|
||||
repo_name = ""
|
||||
repo_url = ""
|
||||
repo_enabled = ""
|
||||
|
||||
repo_result = []
|
||||
for line in out.splitlines():
|
||||
@@ -130,29 +127,29 @@ class Rhsm:
|
||||
# - empty
|
||||
# - "+---------[...]" -- i.e. header
|
||||
# - " Available Repositories [...]" -- i.e. header
|
||||
if line == '' or line[0] == '+' or line[0] == ' ':
|
||||
if line == "" or line[0] == "+" or line[0] == " ":
|
||||
continue
|
||||
|
||||
if line.startswith('Repo ID: '):
|
||||
if line.startswith("Repo ID: "):
|
||||
repo_id = line[9:].lstrip()
|
||||
continue
|
||||
|
||||
if line.startswith('Repo Name: '):
|
||||
if line.startswith("Repo Name: "):
|
||||
repo_name = line[11:].lstrip()
|
||||
continue
|
||||
|
||||
if line.startswith('Repo URL: '):
|
||||
if line.startswith("Repo URL: "):
|
||||
repo_url = line[10:].lstrip()
|
||||
continue
|
||||
|
||||
if line.startswith('Enabled: '):
|
||||
if line.startswith("Enabled: "):
|
||||
repo_enabled = line[9:].lstrip()
|
||||
|
||||
repo = {
|
||||
"id": repo_id,
|
||||
"name": repo_name,
|
||||
"url": repo_url,
|
||||
"enabled": True if repo_enabled == '1' else False
|
||||
"enabled": True if repo_enabled == "1" else False,
|
||||
}
|
||||
|
||||
repo_result.append(repo)
|
||||
@@ -168,10 +165,10 @@ def repository_modify(module, rhsm, state, name, purge=False):
|
||||
for repoid in name:
|
||||
matched_existing_repo[repoid] = []
|
||||
for idx, repo in enumerate(current_repo_list):
|
||||
if fnmatch(repo['id'], repoid):
|
||||
if fnmatch(repo["id"], repoid):
|
||||
matched_existing_repo[repoid].append(repo)
|
||||
# Update current_repo_list to return it as result variable
|
||||
updated_repo_list[idx]['enabled'] = True if state == 'enabled' else False
|
||||
updated_repo_list[idx]["enabled"] = True if state == "enabled" else False
|
||||
|
||||
changed = False
|
||||
results = []
|
||||
@@ -184,25 +181,25 @@ def repository_modify(module, rhsm, state, name, purge=False):
|
||||
results.append(f"{repoid} is not a valid repository ID")
|
||||
module.fail_json(results=results, msg=f"{repoid} is not a valid repository ID")
|
||||
for repo in matched_existing_repo[repoid]:
|
||||
if state in ['disabled', 'absent']:
|
||||
if repo['enabled']:
|
||||
if state in ["disabled", "absent"]:
|
||||
if repo["enabled"]:
|
||||
changed = True
|
||||
diff_before += f"Repository '{repo['id']}' is enabled for this system\n"
|
||||
diff_after += f"Repository '{repo['id']}' is disabled for this system\n"
|
||||
results.append(f"Repository '{repo['id']}' is disabled for this system")
|
||||
rhsm_arguments += ['--disable', repo['id']]
|
||||
elif state in ['enabled', 'present']:
|
||||
if not repo['enabled']:
|
||||
rhsm_arguments += ["--disable", repo["id"]]
|
||||
elif state in ["enabled", "present"]:
|
||||
if not repo["enabled"]:
|
||||
changed = True
|
||||
diff_before += f"Repository '{repo['id']}' is disabled for this system\n"
|
||||
diff_after += f"Repository '{repo['id']}' is enabled for this system\n"
|
||||
results.append(f"Repository '{repo['id']}' is enabled for this system")
|
||||
rhsm_arguments += ['--enable', repo['id']]
|
||||
rhsm_arguments += ["--enable", repo["id"]]
|
||||
|
||||
# Disable all enabled repos on the system that are not in the task and not
|
||||
# marked as disabled by the task
|
||||
if purge:
|
||||
enabled_repo_ids = set(repo['id'] for repo in updated_repo_list if repo['enabled'])
|
||||
enabled_repo_ids = set(repo["id"] for repo in updated_repo_list if repo["enabled"])
|
||||
matched_repoids_set = set(matched_existing_repo.keys())
|
||||
difference = enabled_repo_ids.difference(matched_repoids_set)
|
||||
if len(difference) > 0:
|
||||
@@ -211,15 +208,17 @@ def repository_modify(module, rhsm, state, name, purge=False):
|
||||
diff_before.join(f"Repository '{repoid}'' is enabled for this system\n")
|
||||
diff_after.join(f"Repository '{repoid}' is disabled for this system\n")
|
||||
results.append(f"Repository '{repoid}' is disabled for this system")
|
||||
rhsm_arguments.extend(['--disable', repoid])
|
||||
rhsm_arguments.extend(["--disable", repoid])
|
||||
for updated_repo in updated_repo_list:
|
||||
if updated_repo['id'] in difference:
|
||||
updated_repo['enabled'] = False
|
||||
if updated_repo["id"] in difference:
|
||||
updated_repo["enabled"] = False
|
||||
|
||||
diff = {'before': diff_before,
|
||||
'after': diff_after,
|
||||
'before_header': "RHSM repositories",
|
||||
'after_header': "RHSM repositories"}
|
||||
diff = {
|
||||
"before": diff_before,
|
||||
"after": diff_after,
|
||||
"before_header": "RHSM repositories",
|
||||
"after_header": "RHSM repositories",
|
||||
}
|
||||
|
||||
if not module.check_mode and changed:
|
||||
rc, out, err = rhsm.run_repos(rhsm_arguments)
|
||||
@@ -230,26 +229,24 @@ def repository_modify(module, rhsm, state, name, purge=False):
|
||||
def main():
|
||||
module = AnsibleModule(
|
||||
argument_spec=dict(
|
||||
name=dict(type='list', elements='str', required=True),
|
||||
state=dict(choices=['enabled', 'disabled'], default='enabled'),
|
||||
purge=dict(type='bool', default=False),
|
||||
name=dict(type="list", elements="str", required=True),
|
||||
state=dict(choices=["enabled", "disabled"], default="enabled"),
|
||||
purge=dict(type="bool", default=False),
|
||||
),
|
||||
supports_check_mode=True,
|
||||
)
|
||||
|
||||
if os.getuid() != 0:
|
||||
module.fail_json(
|
||||
msg="Interacting with subscription-manager requires root permissions ('become: true')"
|
||||
)
|
||||
module.fail_json(msg="Interacting with subscription-manager requires root permissions ('become: true')")
|
||||
|
||||
rhsm = Rhsm(module)
|
||||
|
||||
name = module.params['name']
|
||||
state = module.params['state']
|
||||
purge = module.params['purge']
|
||||
name = module.params["name"]
|
||||
state = module.params["state"]
|
||||
purge = module.params["purge"]
|
||||
|
||||
repository_modify(module, rhsm, state, name, purge)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
Reference in New Issue
Block a user