From e09392e867dfc3ad2bd5d444b7dc2c2cdf9313e9 Mon Sep 17 00:00:00 2001 From: "patchback[bot]" <45432694+patchback[bot]@users.noreply.github.com> Date: Wed, 11 Nov 2020 13:50:41 +0100 Subject: [PATCH] added description parameter to create request (#1196) (#1267) * added description parameter to create request * added changelog fragment * Update changelogs/fragments/1196-use_description-in-gitlab-group-creation.yml Co-authored-by: Felix Fontein * added integration test for description in gitlab_group * per request in the PR, creating separate task for the description issue in the integration test * replaced deprecated param names with new names * description should be optional to keep backward compatibility * Update plugins/modules/source_control/gitlab/gitlab_group.py Co-authored-by: Felix Fontein (cherry picked from commit 7db2ce5be35ed80f91129aff31ea3f8cbecd6170) Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com> --- ...e_description-in-gitlab-group-creation.yml | 2 + .../source_control/gitlab/gitlab_group.py | 8 +++- .../targets/gitlab_group/tasks/main.yml | 37 ++++++++++++++++--- .../gitlab/test_gitlab_group.py | 5 ++- 4 files changed, 43 insertions(+), 9 deletions(-) create mode 100644 changelogs/fragments/1196-use_description-in-gitlab-group-creation.yml diff --git a/changelogs/fragments/1196-use_description-in-gitlab-group-creation.yml b/changelogs/fragments/1196-use_description-in-gitlab-group-creation.yml new file mode 100644 index 0000000000..d8242b0ddf --- /dev/null +++ b/changelogs/fragments/1196-use_description-in-gitlab-group-creation.yml @@ -0,0 +1,2 @@ +bugfixes: + - gitlab_group - added description parameter to ``createGroup()`` call (https://github.com/ansible-collections/community.general/issues/138). diff --git a/plugins/modules/source_control/gitlab/gitlab_group.py b/plugins/modules/source_control/gitlab/gitlab_group.py index 144a3956f2..0c61273363 100644 --- a/plugins/modules/source_control/gitlab/gitlab_group.py +++ b/plugins/modules/source_control/gitlab/gitlab_group.py @@ -162,11 +162,15 @@ class GitLabGroup(object): if self.groupObject is None: parent_id = self.getGroupId(parent) - group = self.createGroup({ + payload = { 'name': name, 'path': options['path'], 'parent_id': parent_id, - 'visibility': options['visibility']}) + 'visibility': options['visibility'] + } + if options.get('description'): + payload['description'] = options['description'] + group = self.createGroup(payload) changed = True else: changed, group = self.updateGroup(self.groupObject, { diff --git a/tests/integration/targets/gitlab_group/tasks/main.yml b/tests/integration/targets/gitlab_group/tasks/main.yml index 74b8d31a8d..34444134c2 100644 --- a/tests/integration/targets/gitlab_group/tasks/main.yml +++ b/tests/integration/targets/gitlab_group/tasks/main.yml @@ -10,18 +10,18 @@ - name: Cleanup GitLab Group gitlab_group: - server_url: "{{ gitlab_host }}" + api_url: "{{ gitlab_host }}" validate_certs: false - login_token: "{{ gitlab_login_token }}" + api_token: "{{ gitlab_login_token }}" name: ansible_test_group path: ansible_test_group state: absent - name: Create GitLab Group gitlab_group: - server_url: "{{ gitlab_host }}" + api_url: "{{ gitlab_host }}" validate_certs: false - login_token: "{{ gitlab_login_token }}" + api_token: "{{ gitlab_login_token }}" name: ansible_test_group path: ansible_test_group state: present @@ -35,9 +35,9 @@ - name: Create GitLab Group ( Idempotency test ) gitlab_group: - server_url: "{{ gitlab_host }}" + api_url: "{{ gitlab_host }}" validate_certs: false - login_token: "{{ gitlab_login_token }}" + api_token: "{{ gitlab_login_token }}" name: ansible_test_group path: ansible_test_group state: present @@ -47,3 +47,28 @@ assert: that: - gitlab_group_state_again is not changed + +- name: Cleanup GitLab Group for Description Test + gitlab_group: + api_url: "{{ gitlab_host }}" + validate_certs: false + api_token: "{{ gitlab_login_token }}" + name: ansible_test_group + path: ansible_test_group + state: absent + +- name: Create GitLab Group for Description Test + gitlab_group: + api_url: "{{ gitlab_host }}" + validate_certs: false + api_token: "{{ gitlab_login_token }}" + name: ansible_test_group + path: ansible_test_group + description: My Test Group + state: present + register: gitlab_group_state_desc + +- name: Test group created with Description + assert: + that: + - gitlab_group_state_desc.group.description == "My Test Group" diff --git a/tests/unit/plugins/modules/source_control/gitlab/test_gitlab_group.py b/tests/unit/plugins/modules/source_control/gitlab/test_gitlab_group.py index 0d01184c36..abf49860f9 100644 --- a/tests/unit/plugins/modules/source_control/gitlab/test_gitlab_group.py +++ b/tests/unit/plugins/modules/source_control/gitlab/test_gitlab_group.py @@ -66,11 +66,14 @@ class TestGitlabGroup(GitlabModuleTestCase): @with_httmock(resp_create_group) def test_create_group(self): - group = self.moduleUtil.createGroup({'name': "Foobar Group", 'path': "foo-bar"}) + group = self.moduleUtil.createGroup({'name': "Foobar Group", + 'path': "foo-bar", + 'description': "An interesting group"}) self.assertEqual(type(group), Group) self.assertEqual(group.name, "Foobar Group") self.assertEqual(group.path, "foo-bar") + self.assertEqual(group.description, "An interesting group") self.assertEqual(group.id, 1) @with_httmock(resp_create_subgroup)