mirror of
https://opendev.org/openstack/ansible-collections-openstack.git
synced 2026-05-13 13:02:21 +00:00
Backported changes to identity_group_info from master branch
Added ci integration tests and updated return value documentation.
Reverted function calls which would break backward compatibility
with previous collection releases.
Change-Id: I24e64c9455618952ee612d7413882f0ac022189f
(cherry picked from commit a6805cd019)
This commit is contained in:
74
ci/roles/identity_group_info/tasks/main.yml
Normal file
74
ci/roles/identity_group_info/tasks/main.yml
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
---
|
||||||
|
- name: List group by domain_id
|
||||||
|
openstack.cloud.identity_group_info:
|
||||||
|
cloud: "{{ cloud }}"
|
||||||
|
domain: default
|
||||||
|
register: group_domain
|
||||||
|
|
||||||
|
- name: Assert groups were returned
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- group_domain.openstack_groups | length > 0
|
||||||
|
- group_domain.openstack_groups[0].domain_id == 'default'
|
||||||
|
- group_domain.openstack_groups[0].id is defined
|
||||||
|
- group_domain.openstack_groups[0].description is defined
|
||||||
|
- group_domain.openstack_groups[0].name is defined
|
||||||
|
|
||||||
|
- name: List group by domain_id and group
|
||||||
|
openstack.cloud.identity_group_info:
|
||||||
|
cloud: "{{ cloud }}"
|
||||||
|
domain: default
|
||||||
|
name: admins
|
||||||
|
register: groups_info
|
||||||
|
|
||||||
|
- name: Assert groups by domain_id and grouph returned
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- groups_info.openstack_groups | length > 0
|
||||||
|
- groups_info.openstack_groups[0].domain_id == 'default'
|
||||||
|
- groups_info.openstack_groups[0].id is defined
|
||||||
|
- groups_info.openstack_groups[0].description is defined
|
||||||
|
- groups_info.openstack_groups[0].name is defined
|
||||||
|
|
||||||
|
- name: List group by filter
|
||||||
|
openstack.cloud.identity_group_info:
|
||||||
|
cloud: "{{ cloud }}"
|
||||||
|
domain: default
|
||||||
|
filters:
|
||||||
|
name: admins
|
||||||
|
register: groups_filter
|
||||||
|
|
||||||
|
- name: Assert group by filter returned
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- groups_filter.openstack_groups | length > 0
|
||||||
|
- groups_filter.openstack_groups[0].domain_id == 'default'
|
||||||
|
- groups_filter.openstack_groups[0].id is defined
|
||||||
|
- groups_filter.openstack_groups[0].description is defined
|
||||||
|
- groups_filter.openstack_groups[0].name is defined
|
||||||
|
|
||||||
|
- name: Verify returned values of group info
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- item in groups_info.openstack_groups[0]
|
||||||
|
loop:
|
||||||
|
- description
|
||||||
|
- domain_id
|
||||||
|
- id
|
||||||
|
- name
|
||||||
|
|
||||||
|
- name: List group by group name
|
||||||
|
openstack.cloud.identity_group_info:
|
||||||
|
cloud: "{{ cloud }}"
|
||||||
|
name: admins
|
||||||
|
register: groups_name
|
||||||
|
|
||||||
|
- name: Assert group by name returned
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- groups_name.openstack_groups | length > 0
|
||||||
|
- groups_name.openstack_groups[0].domain_id == 'default'
|
||||||
|
- groups_name.openstack_groups[0].id is defined
|
||||||
|
- groups_name.openstack_groups[0].description is defined
|
||||||
|
- groups_name.openstack_groups[0].name is defined
|
||||||
|
- groups_name.openstack_groups[0].name == 'admins'
|
||||||
@@ -17,6 +17,7 @@
|
|||||||
when: sdk_version is version(0.28, '>=')
|
when: sdk_version is version(0.28, '>=')
|
||||||
- { role: floating_ip_info, tags: floating_ip_info }
|
- { role: floating_ip_info, tags: floating_ip_info }
|
||||||
- { role: identity_domain_info, tags: identity_domain_info }
|
- { role: identity_domain_info, tags: identity_domain_info }
|
||||||
|
- { role: identity_group_info, tags: identity_group_info }
|
||||||
- { role: identity_user, tags: identity_user }
|
- { role: identity_user, tags: identity_user }
|
||||||
- { role: identity_user_info, tags: identity_user_info }
|
- { role: identity_user_info, tags: identity_user_info }
|
||||||
- { role: identity_role, tags: identity_role }
|
- { role: identity_role, tags: identity_role }
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ EXAMPLES = '''
|
|||||||
RETURN = '''
|
RETURN = '''
|
||||||
openstack_groups:
|
openstack_groups:
|
||||||
description: Dictionary describing all the matching groups.
|
description: Dictionary describing all the matching groups.
|
||||||
returned: always, but can be null
|
returned: always, but can be an empty list
|
||||||
type: complex
|
type: complex
|
||||||
contains:
|
contains:
|
||||||
name:
|
name:
|
||||||
@@ -126,27 +126,19 @@ class IdentityGroupInfoModule(OpenStackModule):
|
|||||||
def run(self):
|
def run(self):
|
||||||
name = self.params['name']
|
name = self.params['name']
|
||||||
domain = self.params['domain']
|
domain = self.params['domain']
|
||||||
filters = self.params['filters']
|
filters = self.params['filters'] or {}
|
||||||
|
|
||||||
|
args = {}
|
||||||
if domain:
|
if domain:
|
||||||
try:
|
dom = self.conn.identity.find_domain(domain)
|
||||||
# We assume admin is passing domain id
|
if dom:
|
||||||
dom = self.conn.get_domain(domain)['id']
|
args['domain_id'] = dom['id']
|
||||||
domain = dom
|
else:
|
||||||
except Exception:
|
self.fail_json(msg='Domain name or ID does not exist')
|
||||||
# If we fail, maybe admin is passing a domain name.
|
|
||||||
# Note that domains have unique names, just like id.
|
|
||||||
dom = self.conn.search_domains(filters={'name': domain})
|
|
||||||
if dom:
|
|
||||||
domain = dom[0]['id']
|
|
||||||
else:
|
|
||||||
self.fail_json(msg='Domain name or ID does not exist')
|
|
||||||
|
|
||||||
if not filters:
|
groups = self.conn.search_groups(name, filters, **args)
|
||||||
filters = {}
|
# groups is for backward (and forward) compatibility
|
||||||
|
self.exit_json(changed=False, groups=groups, openstack_groups=groups)
|
||||||
groups = self.conn.search_groups(name, filters, domain_id=domain)
|
|
||||||
self.exit_json(changed=False, groups=groups)
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
|||||||
Reference in New Issue
Block a user