From fc2e6c4b45840165b13468c3d1d5a237aa839909 Mon Sep 17 00:00:00 2001 From: MaxBidlingmaier <103562872+MaxBidlingmaier@users.noreply.github.com> Date: Wed, 20 Sep 2023 19:37:27 +0200 Subject: [PATCH] Fixed gitlab_*_variable when using purge (#7251) * Fixed gitlab_*_variable when using purge, see issue #7250 * Update changelogs/fragments/7251-gitlab-variables-deleteing-all-variables.yml Co-authored-by: Felix Fontein --------- Co-authored-by: Felix Fontein --- .../7251-gitlab-variables-deleteing-all-variables.yml | 3 +++ plugins/module_utils/gitlab.py | 2 +- plugins/modules/gitlab_group_variable.py | 2 ++ plugins/modules/gitlab_project_variable.py | 2 ++ 4 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 changelogs/fragments/7251-gitlab-variables-deleteing-all-variables.yml diff --git a/changelogs/fragments/7251-gitlab-variables-deleteing-all-variables.yml b/changelogs/fragments/7251-gitlab-variables-deleteing-all-variables.yml new file mode 100644 index 0000000000..1c8650edae --- /dev/null +++ b/changelogs/fragments/7251-gitlab-variables-deleteing-all-variables.yml @@ -0,0 +1,3 @@ +bugfixes: + - gitlab_project_variable - deleted all variables when used with ``purge=true`` due to missing ``raw`` property in KNOWN attributes (https://github.com/ansible-collections/community.general/issues/7250). + - gitlab_group_variable - deleted all variables when used with ``purge=true`` due to missing ``raw`` property in KNOWN attributes (https://github.com/ansible-collections/community.general/issues/7250). diff --git a/plugins/module_utils/gitlab.py b/plugins/module_utils/gitlab.py index e1786c613e..8c8aab420a 100644 --- a/plugins/module_utils/gitlab.py +++ b/plugins/module_utils/gitlab.py @@ -116,7 +116,7 @@ def gitlab_authentication(module): def filter_returned_variables(gitlab_variables): # pop properties we don't know existing_variables = [dict(x.attributes) for x in gitlab_variables] - KNOWN = ['key', 'value', 'masked', 'protected', 'variable_type', 'environment_scope'] + KNOWN = ['key', 'value', 'masked', 'protected', 'variable_type', 'environment_scope', 'raw'] for item in existing_variables: for key in list(item.keys()): if key not in KNOWN: diff --git a/plugins/modules/gitlab_group_variable.py b/plugins/modules/gitlab_group_variable.py index 60bdc889b3..23591c3d90 100644 --- a/plugins/modules/gitlab_group_variable.py +++ b/plugins/modules/gitlab_group_variable.py @@ -381,6 +381,8 @@ def main(): group=dict(type='str', required=True), purge=dict(type='bool', required=False, default=False), vars=dict(type='dict', required=False, default=dict(), no_log=True), + # please mind whenever changing the variables dict to also change module_utils/gitlab.py's + # KNOWN dict in filter_returned_variables or bad evil will happen variables=dict(type='list', elements='dict', required=False, default=list(), options=dict( name=dict(type='str', required=True), value=dict(type='str', no_log=True), diff --git a/plugins/modules/gitlab_project_variable.py b/plugins/modules/gitlab_project_variable.py index 5b3b9396de..a7fd90b347 100644 --- a/plugins/modules/gitlab_project_variable.py +++ b/plugins/modules/gitlab_project_variable.py @@ -404,6 +404,8 @@ def main(): project=dict(type='str', required=True), purge=dict(type='bool', required=False, default=False), vars=dict(type='dict', required=False, default=dict(), no_log=True), + # please mind whenever changing the variables dict to also change module_utils/gitlab.py's + # KNOWN dict in filter_returned_variables or bad evil will happen variables=dict(type='list', elements='dict', required=False, default=list(), options=dict( name=dict(type='str', required=True), value=dict(type='str', no_log=True),