From 53a941cee7331914e66574a8bce5012c0be938ee Mon Sep 17 00:00:00 2001 From: "patchback[bot]" <45432694+patchback[bot]@users.noreply.github.com> Date: Wed, 18 Sep 2024 17:50:02 +0200 Subject: [PATCH] [PR #8876/6af74d1b backport][stable-9] multiple modules: improve dict.items() loops (#8882) multiple modules: improve dict.items() loops (#8876) * multiple modules: improve dict.items() loops * simplify in memset_* modules * add changelog frag (cherry picked from commit 6af74d1ba6a8f5378d4fa775bc474f525599e18f) Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com> --- changelogs/fragments/8876-dict-items-loop.yml | 16 ++++++++++++++++ plugins/modules/gitlab_deploy_key.py | 6 +++--- plugins/modules/gitlab_group.py | 6 +++--- plugins/modules/gitlab_issue.py | 6 +++--- plugins/modules/gitlab_merge_request.py | 6 +++--- plugins/modules/gitlab_runner.py | 12 ++++++------ plugins/modules/icinga2_host.py | 4 +--- plugins/modules/memset_dns_reload.py | 4 +--- plugins/modules/memset_memstore_info.py | 4 +--- plugins/modules/memset_server_info.py | 4 +--- plugins/modules/memset_zone.py | 4 +--- plugins/modules/memset_zone_domain.py | 4 +--- plugins/modules/memset_zone_record.py | 4 +--- plugins/modules/nmcli.py | 2 +- plugins/modules/scaleway_user_data.py | 2 +- plugins/modules/udm_dns_record.py | 3 +-- 16 files changed, 44 insertions(+), 43 deletions(-) create mode 100644 changelogs/fragments/8876-dict-items-loop.yml diff --git a/changelogs/fragments/8876-dict-items-loop.yml b/changelogs/fragments/8876-dict-items-loop.yml new file mode 100644 index 0000000000..6bd170c7b2 --- /dev/null +++ b/changelogs/fragments/8876-dict-items-loop.yml @@ -0,0 +1,16 @@ +minor_changes: + - gitlab_deploy_key - better construct when using ``dict.items()`` (https://github.com/ansible-collections/community.general/pull/8876). + - gitlab_group - better construct when using ``dict.items()`` (https://github.com/ansible-collections/community.general/pull/8876). + - gitlab_issue - better construct when using ``dict.items()`` (https://github.com/ansible-collections/community.general/pull/8876). + - gitlab_merge_request - better construct when using ``dict.items()`` (https://github.com/ansible-collections/community.general/pull/8876). + - gitlab_runner - better construct when using ``dict.items()`` (https://github.com/ansible-collections/community.general/pull/8876). + - icinga2_host - replace loop with dict comprehension (https://github.com/ansible-collections/community.general/pull/8876). + - memset_dns_reload - replace loop with ``dict()`` (https://github.com/ansible-collections/community.general/pull/8876). + - memset_memstore_info - replace loop with ``dict()`` (https://github.com/ansible-collections/community.general/pull/8876). + - memset_server_info - replace loop with ``dict()`` (https://github.com/ansible-collections/community.general/pull/8876). + - memset_zone - replace loop with ``dict()`` (https://github.com/ansible-collections/community.general/pull/8876). + - memset_zone_domain - replace loop with ``dict()`` (https://github.com/ansible-collections/community.general/pull/8876). + - memset_zone_record - replace loop with ``dict()`` (https://github.com/ansible-collections/community.general/pull/8876). + - nmcli - better construct when using ``dict.items()`` (https://github.com/ansible-collections/community.general/pull/8876). + - scaleway_user_data - better construct when using ``dict.items()`` (https://github.com/ansible-collections/community.general/pull/8876). + - udm_dns_record - replace loop with ``dict.update()`` (https://github.com/ansible-collections/community.general/pull/8876). diff --git a/plugins/modules/gitlab_deploy_key.py b/plugins/modules/gitlab_deploy_key.py index 7c0ff06b7b..ab89520248 100644 --- a/plugins/modules/gitlab_deploy_key.py +++ b/plugins/modules/gitlab_deploy_key.py @@ -196,9 +196,9 @@ class GitLabDeployKey(object): changed = False for arg_key, arg_value in arguments.items(): - if arguments[arg_key] is not None: - if getattr(deploy_key, arg_key) != arguments[arg_key]: - setattr(deploy_key, arg_key, arguments[arg_key]) + if arg_value is not None: + if getattr(deploy_key, arg_key) != arg_value: + setattr(deploy_key, arg_key, arg_value) changed = True return (changed, deploy_key) diff --git a/plugins/modules/gitlab_group.py b/plugins/modules/gitlab_group.py index 1f4dadff70..04a8f6c81b 100644 --- a/plugins/modules/gitlab_group.py +++ b/plugins/modules/gitlab_group.py @@ -277,9 +277,9 @@ class GitLabGroup(object): changed = False for arg_key, arg_value in arguments.items(): - if arguments[arg_key] is not None: - if getattr(group, arg_key) != arguments[arg_key]: - setattr(group, arg_key, arguments[arg_key]) + if arg_value is not None: + if getattr(group, arg_key) != arg_value: + setattr(group, arg_key, arg_value) changed = True return (changed, group) diff --git a/plugins/modules/gitlab_issue.py b/plugins/modules/gitlab_issue.py index 3277c4f1aa..1ad7d04822 100644 --- a/plugins/modules/gitlab_issue.py +++ b/plugins/modules/gitlab_issue.py @@ -264,14 +264,14 @@ class GitlabIssue(object): if key == 'milestone_id': old_milestone = getattr(issue, 'milestone')['id'] if getattr(issue, 'milestone') else "" - if options[key] != old_milestone: + if value != old_milestone: return True elif key == 'assignee_ids': - if options[key] != sorted([user["id"] for user in getattr(issue, 'assignees')]): + if value != sorted([user["id"] for user in getattr(issue, 'assignees')]): return True elif key == 'labels': - if options[key] != sorted(getattr(issue, key)): + if value != sorted(getattr(issue, key)): return True elif getattr(issue, key) != value: diff --git a/plugins/modules/gitlab_merge_request.py b/plugins/modules/gitlab_merge_request.py index 5bb9cb9c7d..8e14f0a181 100644 --- a/plugins/modules/gitlab_merge_request.py +++ b/plugins/modules/gitlab_merge_request.py @@ -263,15 +263,15 @@ class GitlabMergeRequest(object): key = 'force_remove_source_branch' if key == 'assignee_ids': - if options[key] != sorted([user["id"] for user in getattr(mr, 'assignees')]): + if value != sorted([user["id"] for user in getattr(mr, 'assignees')]): return True elif key == 'reviewer_ids': - if options[key] != sorted([user["id"] for user in getattr(mr, 'reviewers')]): + if value != sorted([user["id"] for user in getattr(mr, 'reviewers')]): return True elif key == 'labels': - if options[key] != sorted(getattr(mr, key)): + if value != sorted(getattr(mr, key)): return True elif getattr(mr, key) != value: diff --git a/plugins/modules/gitlab_runner.py b/plugins/modules/gitlab_runner.py index a285c4030a..68e50f05ec 100644 --- a/plugins/modules/gitlab_runner.py +++ b/plugins/modules/gitlab_runner.py @@ -368,18 +368,18 @@ class GitLabRunner(object): changed = False for arg_key, arg_value in arguments.items(): - if arguments[arg_key] is not None: - if isinstance(arguments[arg_key], list): + if arg_value is not None: + if isinstance(arg_value, list): list1 = getattr(runner, arg_key) list1.sort() - list2 = arguments[arg_key] + list2 = arg_value list2.sort() if list1 != list2: - setattr(runner, arg_key, arguments[arg_key]) + setattr(runner, arg_key, arg_value) changed = True else: - if getattr(runner, arg_key) != arguments[arg_key]: - setattr(runner, arg_key, arguments[arg_key]) + if getattr(runner, arg_key) != arg_value: + setattr(runner, arg_key, arg_value) changed = True return (changed, runner) diff --git a/plugins/modules/icinga2_host.py b/plugins/modules/icinga2_host.py index ec04d8df74..5abbc43687 100644 --- a/plugins/modules/icinga2_host.py +++ b/plugins/modules/icinga2_host.py @@ -282,9 +282,7 @@ def main(): 'vars.made_by': "ansible" } } - - for key, value in variables.items(): - data['attrs']['vars.' + key] = value + data['attrs'].update({'vars.' + key: value for key, value in variables.items()}) changed = False if icinga.exists(name): diff --git a/plugins/modules/memset_dns_reload.py b/plugins/modules/memset_dns_reload.py index 668c8c0bf3..8cff51ade1 100644 --- a/plugins/modules/memset_dns_reload.py +++ b/plugins/modules/memset_dns_reload.py @@ -178,9 +178,7 @@ def main(): ) # populate the dict with the user-provided vars. - args = dict() - for key, arg in module.params.items(): - args[key] = arg + args = dict(module.params) retvals = reload_dns(args) diff --git a/plugins/modules/memset_memstore_info.py b/plugins/modules/memset_memstore_info.py index c00ef15eb4..5dfd1f956a 100644 --- a/plugins/modules/memset_memstore_info.py +++ b/plugins/modules/memset_memstore_info.py @@ -163,9 +163,7 @@ def main(): ) # populate the dict with the user-provided vars. - args = dict() - for key, arg in module.params.items(): - args[key] = arg + args = dict(module.params) retvals = get_facts(args) diff --git a/plugins/modules/memset_server_info.py b/plugins/modules/memset_server_info.py index 78ea99df31..40862ae944 100644 --- a/plugins/modules/memset_server_info.py +++ b/plugins/modules/memset_server_info.py @@ -288,9 +288,7 @@ def main(): ) # populate the dict with the user-provided vars. - args = dict() - for key, arg in module.params.items(): - args[key] = arg + args = dict(module.params) retvals = get_facts(args) diff --git a/plugins/modules/memset_zone.py b/plugins/modules/memset_zone.py index f520d54460..e405ad3e86 100644 --- a/plugins/modules/memset_zone.py +++ b/plugins/modules/memset_zone.py @@ -300,9 +300,7 @@ def main(): ) # populate the dict with the user-provided vars. - args = dict() - for key, arg in module.params.items(): - args[key] = arg + args = dict(module.params) args['check_mode'] = module.check_mode # validate some API-specific limitations. diff --git a/plugins/modules/memset_zone_domain.py b/plugins/modules/memset_zone_domain.py index e07ac1ff02..7443e6c256 100644 --- a/plugins/modules/memset_zone_domain.py +++ b/plugins/modules/memset_zone_domain.py @@ -244,9 +244,7 @@ def main(): ) # populate the dict with the user-provided vars. - args = dict() - for key, arg in module.params.items(): - args[key] = arg + args = dict(module.params) args['check_mode'] = module.check_mode # validate some API-specific limitations. diff --git a/plugins/modules/memset_zone_record.py b/plugins/modules/memset_zone_record.py index 80838a26a3..349240b84e 100644 --- a/plugins/modules/memset_zone_record.py +++ b/plugins/modules/memset_zone_record.py @@ -374,9 +374,7 @@ def main(): ) # populate the dict with the user-provided vars. - args = dict() - for key, arg in module.params.items(): - args[key] = arg + args = dict(module.params) args['check_mode'] = module.check_mode # perform some Memset API-specific validation diff --git a/plugins/modules/nmcli.py b/plugins/modules/nmcli.py index 6f0884da92..e48183d049 100644 --- a/plugins/modules/nmcli.py +++ b/plugins/modules/nmcli.py @@ -1944,7 +1944,7 @@ class Nmcli(object): convert_func = self.list_to_string if callable(convert_func): - options[setting] = convert_func(options[setting]) + options[setting] = convert_func(value) return options diff --git a/plugins/modules/scaleway_user_data.py b/plugins/modules/scaleway_user_data.py index 601231def9..72046ff532 100644 --- a/plugins/modules/scaleway_user_data.py +++ b/plugins/modules/scaleway_user_data.py @@ -149,7 +149,7 @@ def core(module): # Then we patch keys that are different for key, value in user_data.items(): - if key not in present_user_data or user_data[key] != present_user_data[key]: + if key not in present_user_data or value != present_user_data[key]: changed = True if compute_api.module.check_mode: diff --git a/plugins/modules/udm_dns_record.py b/plugins/modules/udm_dns_record.py index 99fe10c63e..857792993d 100644 --- a/plugins/modules/udm_dns_record.py +++ b/plugins/modules/udm_dns_record.py @@ -196,8 +196,7 @@ def main(): else: obj['name'] = name - for k, v in data.items(): - obj[k] = v + obj.update(data) diff = obj.diff() changed = obj.diff() != [] if not module.check_mode: