Reformat everything.

This commit is contained in:
Felix Fontein
2025-11-01 12:08:41 +01:00
parent 3f2213791a
commit 340ff8586d
1008 changed files with 61301 additions and 58309 deletions

View File

@@ -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()