Update identity_group_info to new sdk
The following changes were made: * Update identity_group_info to use the new openstacksdk * Added identity_group_info role to test the module Change-Id: I24e64c9455618952ee612d7413882f0ac022189f
This commit is contained in:
parent
80ef209336
commit
a6805cd019
|
@ -71,6 +71,8 @@
|
|||
floating_ip_info
|
||||
group
|
||||
identity_domain_info
|
||||
identity_group_info
|
||||
identity_role
|
||||
identity_user
|
||||
identity_user_info
|
||||
identity_role
|
||||
|
|
|
@ -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.groups | length > 0
|
||||
- group_domain.groups[0].domain_id == 'default'
|
||||
- group_domain.groups[0].id is defined
|
||||
- group_domain.groups[0].description is defined
|
||||
- group_domain.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.groups | length > 0
|
||||
- groups_info.groups[0].domain_id == 'default'
|
||||
- groups_info.groups[0].id is defined
|
||||
- groups_info.groups[0].description is defined
|
||||
- groups_info.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.groups | length > 0
|
||||
- groups_filter.groups[0].domain_id == 'default'
|
||||
- groups_filter.groups[0].id is defined
|
||||
- groups_filter.groups[0].description is defined
|
||||
- groups_filter.groups[0].name is defined
|
||||
|
||||
- name: Verify returned values of group info
|
||||
assert:
|
||||
that:
|
||||
- item in groups_info.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.groups | length > 0
|
||||
- groups_name.groups[0].domain_id == 'default'
|
||||
- groups_name.groups[0].id is defined
|
||||
- groups_name.groups[0].description is defined
|
||||
- groups_name.groups[0].name is defined
|
||||
- groups_name.groups[0].name == 'admins'
|
|
@ -17,6 +17,7 @@
|
|||
when: sdk_version is version(0.28, '>=')
|
||||
- { role: floating_ip_info, tags: floating_ip_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_info, tags: identity_user_info }
|
||||
- { role: identity_role, tags: identity_role }
|
||||
|
|
|
@ -87,10 +87,11 @@ EXAMPLES = '''
|
|||
|
||||
|
||||
RETURN = '''
|
||||
openstack_groups:
|
||||
groups:
|
||||
description: Dictionary describing all the matching groups.
|
||||
returned: always, but can be null
|
||||
type: complex
|
||||
returned: always, but can be an empty list
|
||||
type: list
|
||||
elements: dict
|
||||
contains:
|
||||
name:
|
||||
description: Name given to the group.
|
||||
|
@ -126,26 +127,18 @@ class IdentityGroupInfoModule(OpenStackModule):
|
|||
def run(self):
|
||||
name = self.params['name']
|
||||
domain = self.params['domain']
|
||||
filters = self.params['filters']
|
||||
filters = self.params['filters'] or {}
|
||||
|
||||
args = {}
|
||||
if domain:
|
||||
try:
|
||||
# We assume admin is passing domain id
|
||||
dom = self.conn.get_domain(domain)['id']
|
||||
domain = dom
|
||||
except Exception:
|
||||
# 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')
|
||||
dom = self.conn.identity.find_domain(domain)
|
||||
if dom:
|
||||
args['domain_id'] = dom['id']
|
||||
else:
|
||||
self.fail_json(msg='Domain name or ID does not exist')
|
||||
|
||||
if not filters:
|
||||
filters = {}
|
||||
|
||||
groups = self.conn.search_groups(name, filters, domain_id=domain)
|
||||
groups = self.conn.search_groups(name, filters, **args)
|
||||
groups = [g.to_dict(computed=False) for g in groups]
|
||||
self.exit_json(changed=False, groups=groups)
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue