mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Added support for passing org_id instead of org_name (#41518)
- Faster execution if passed instead of org_name - Updated documentation - Added additional integration tests
This commit is contained in:
parent
5ee0c0af18
commit
4a0b8f5123
2 changed files with 48 additions and 7 deletions
|
@ -69,24 +69,37 @@ EXAMPLES = r'''
|
||||||
- name: Query information about all administrators associated to the organization
|
- name: Query information about all administrators associated to the organization
|
||||||
meraki_admin:
|
meraki_admin:
|
||||||
auth_key: abc12345
|
auth_key: abc12345
|
||||||
|
org_name: YourOrg
|
||||||
state: query
|
state: query
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
|
|
||||||
- name: Query information about a single administrator by name
|
- name: Query information about a single administrator by name
|
||||||
meraki_admin:
|
meraki_admin:
|
||||||
auth_key: abc12345
|
auth_key: abc12345
|
||||||
|
org_id: 12345
|
||||||
state: query
|
state: query
|
||||||
name: Jane Doe
|
name: Jane Doe
|
||||||
|
|
||||||
- name: Query information about a single administrator by email
|
- name: Query information about a single administrator by email
|
||||||
meraki_admin:
|
meraki_admin:
|
||||||
auth_key: abc12345
|
auth_key: abc12345
|
||||||
|
org_name: YourOrg
|
||||||
state: query
|
state: query
|
||||||
email: jane@doe.com
|
email: jane@doe.com
|
||||||
|
|
||||||
- name: new administrator with organization access
|
- name: Create new administrator with organization access
|
||||||
meraki_admin:
|
meraki_admin:
|
||||||
auth_key: abc12345
|
auth_key: abc12345
|
||||||
|
org_name: YourOrg
|
||||||
|
state: present
|
||||||
|
name: Jane Doe
|
||||||
|
orgAccess: read-only
|
||||||
|
email: jane@doe.com
|
||||||
|
|
||||||
|
- name: Create new administrator with organization access
|
||||||
|
meraki_admin:
|
||||||
|
auth_key: abc12345
|
||||||
|
org_name: YourOrg
|
||||||
state: present
|
state: present
|
||||||
name: Jane Doe
|
name: Jane Doe
|
||||||
orgAccess: read-only
|
orgAccess: read-only
|
||||||
|
@ -95,6 +108,7 @@ EXAMPLES = r'''
|
||||||
- name: Create a new administrator with organization access
|
- name: Create a new administrator with organization access
|
||||||
meraki_admin:
|
meraki_admin:
|
||||||
auth_key: abc12345
|
auth_key: abc12345
|
||||||
|
org_name: YourOrg
|
||||||
state: present
|
state: present
|
||||||
name: Jane Doe
|
name: Jane Doe
|
||||||
orgAccess: read-only
|
orgAccess: read-only
|
||||||
|
@ -103,6 +117,7 @@ EXAMPLES = r'''
|
||||||
- name: Revoke access to an organization for an administrator
|
- name: Revoke access to an organization for an administrator
|
||||||
meraki_admin:
|
meraki_admin:
|
||||||
auth_key: abc12345
|
auth_key: abc12345
|
||||||
|
org_name: YourOrg
|
||||||
state: absent
|
state: absent
|
||||||
email: jane@doe.com
|
email: jane@doe.com
|
||||||
'''
|
'''
|
||||||
|
@ -144,12 +159,11 @@ def get_admins(meraki, org_id):
|
||||||
return admins
|
return admins
|
||||||
|
|
||||||
|
|
||||||
def get_admin_id(meraki, org_name, data, name=None, email=None):
|
def get_admin_id(meraki, data, name=None, email=None):
|
||||||
admin_id = None
|
admin_id = None
|
||||||
for a in data:
|
for a in data:
|
||||||
if meraki.params['name'] is not None:
|
if meraki.params['name'] is not None:
|
||||||
if meraki.params['name'] == a['name']:
|
if meraki.params['name'] == a['name']:
|
||||||
# meraki.fail_json(msg='HERE')
|
|
||||||
if admin_id is not None:
|
if admin_id is not None:
|
||||||
meraki.fail_json(msg='There are multiple administrators with the same name')
|
meraki.fail_json(msg='There are multiple administrators with the same name')
|
||||||
else:
|
else:
|
||||||
|
@ -319,18 +333,20 @@ def main():
|
||||||
|
|
||||||
# manipulate or modify the state as needed (this is going to be the
|
# manipulate or modify the state as needed (this is going to be the
|
||||||
# part where your module will do what it needs to do)
|
# part where your module will do what it needs to do)
|
||||||
org_id = meraki.get_org_id(meraki.params['org_name'])
|
org_id = meraki.params['org_id']
|
||||||
|
if not meraki.params['org_id']:
|
||||||
|
org_id = meraki.get_org_id(meraki.params['org_name'])
|
||||||
if meraki.params['state'] == 'query':
|
if meraki.params['state'] == 'query':
|
||||||
admins = get_admins(meraki, org_id)
|
admins = get_admins(meraki, org_id)
|
||||||
if not meraki.params['name'] and not meraki.params['email']: # Return all admins for org
|
if not meraki.params['name'] and not meraki.params['email']: # Return all admins for org
|
||||||
meraki.result['data'] = admins
|
meraki.result['data'] = admins
|
||||||
if meraki.params['name'] is not None: # Return a single admin for org
|
if meraki.params['name'] is not None: # Return a single admin for org
|
||||||
admin_id = get_admin_id(meraki, meraki.params['org_name'], admins, name=meraki.params['name'])
|
admin_id = get_admin_id(meraki, admins, name=meraki.params['name'])
|
||||||
meraki.result['data'] = admin_id
|
meraki.result['data'] = admin_id
|
||||||
admin = get_admin(meraki, admins, admin_id)
|
admin = get_admin(meraki, admins, admin_id)
|
||||||
meraki.result['data'] = admin
|
meraki.result['data'] = admin
|
||||||
elif meraki.params['email'] is not None:
|
elif meraki.params['email'] is not None:
|
||||||
admin_id = get_admin_id(meraki, meraki.params['org_name'], admins, email=meraki.params['email'])
|
admin_id = get_admin_id(meraki, admins, email=meraki.params['email'])
|
||||||
meraki.result['data'] = admin_id
|
meraki.result['data'] = admin_id
|
||||||
admin = get_admin(meraki, admins, admin_id)
|
admin = get_admin(meraki, admins, admin_id)
|
||||||
meraki.result['data'] = admin
|
meraki.result['data'] = admin
|
||||||
|
@ -344,7 +360,6 @@ def main():
|
||||||
meraki.result['data'] = r
|
meraki.result['data'] = r
|
||||||
elif meraki.params['state'] == 'absent':
|
elif meraki.params['state'] == 'absent':
|
||||||
admin_id = get_admin_id(meraki,
|
admin_id = get_admin_id(meraki,
|
||||||
meraki.params['org_name'],
|
|
||||||
get_admins(meraki, org_id),
|
get_admins(meraki, org_id),
|
||||||
email=meraki.params['email']
|
email=meraki.params['email']
|
||||||
)
|
)
|
||||||
|
|
|
@ -20,6 +20,32 @@
|
||||||
- create_orgaccess.changed == true
|
- create_orgaccess.changed == true
|
||||||
- 'create_orgaccess.data.name == "Jane Doe"'
|
- 'create_orgaccess.data.name == "Jane Doe"'
|
||||||
|
|
||||||
|
- name: Delete recently created administrator
|
||||||
|
meraki_admin:
|
||||||
|
auth_key: '{{auth_key}}'
|
||||||
|
state: absent
|
||||||
|
org_name: '{{test_org_name}}'
|
||||||
|
email: '{{email_prefix}}+janedoe@{{email_domain}}'
|
||||||
|
delegate_to: localhost
|
||||||
|
register: delete_one
|
||||||
|
|
||||||
|
- name: Create new administrator with org_id
|
||||||
|
meraki_admin:
|
||||||
|
auth_key: '{{auth_key}}'
|
||||||
|
state: present
|
||||||
|
org_id: '{{test_org_id}}'
|
||||||
|
name: Jane Doe
|
||||||
|
email: '{{email_prefix}}+janedoe@{{email_domain}}'
|
||||||
|
orgAccess: read-only
|
||||||
|
delegate_to: localhost
|
||||||
|
register: create_orgaccess_id
|
||||||
|
|
||||||
|
- name: Create new admin assertion
|
||||||
|
assert:
|
||||||
|
that:
|
||||||
|
- create_orgaccess_id.changed == true
|
||||||
|
- 'create_orgaccess_id.data.name == "Jane Doe"'
|
||||||
|
|
||||||
- name: Create administrator with tags
|
- name: Create administrator with tags
|
||||||
meraki_admin:
|
meraki_admin:
|
||||||
auth_key: '{{auth_key}}'
|
auth_key: '{{auth_key}}'
|
||||||
|
|
Loading…
Reference in a new issue