diff options
Diffstat (limited to 'lib/ansible/modules/network/aci/mso_role.py')
-rw-r--r-- | lib/ansible/modules/network/aci/mso_role.py | 224 |
1 files changed, 0 insertions, 224 deletions
diff --git a/lib/ansible/modules/network/aci/mso_role.py b/lib/ansible/modules/network/aci/mso_role.py deleted file mode 100644 index 215d5b54f5..0000000000 --- a/lib/ansible/modules/network/aci/mso_role.py +++ /dev/null @@ -1,224 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -# Copyright: (c) 2018, Dag Wieers (@dagwieers) <dag@wieers.com> -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) - -from __future__ import absolute_import, division, print_function -__metaclass__ = type - -ANSIBLE_METADATA = {'metadata_version': '1.1', - 'status': ['preview'], - 'supported_by': 'community'} - -DOCUMENTATION = r''' ---- -module: mso_role -short_description: Manage roles -description: -- Manage roles on Cisco ACI Multi-Site. -author: -- Dag Wieers (@dagwieers) -version_added: '2.8' -options: - role: - description: - - The name of the role. - type: str - required: yes - aliases: [ name ] - display_name: - description: - - The name of the role to be displayed in the web UI. - type: str - description: - description: - - The description of the role. - type: str - permissions: - description: - - A list of permissions tied to this role. - type: list - choices: - - backup-db - - manage-audit-records - - manage-labels - - manage-roles - - manage-schemas - - manage-sites - - manage-tenants - - manage-tenant-schemas - - manage-users - - platform-logs - - view-all-audit-records - - view-labels - - view-roles - - view-schemas - - view-sites - - view-tenants - - view-tenant-schemas - - view-users - state: - description: - - Use C(present) or C(absent) for adding or removing. - - Use C(query) for listing an object or multiple objects. - type: str - choices: [ absent, present, query ] - default: present -extends_documentation_fragment: mso -''' - -EXAMPLES = r''' -- name: Add a new role - mso_role: - host: mso_host - username: admin - password: SomeSecretPassword - role: readOnly - display_name: Read Only - description: Read-only access for troubleshooting - permissions: - - view-roles - - view-schemas - - view-sites - - view-tenants - - view-tenant-schemas - - view-users - state: present - delegate_to: localhost - -- name: Remove a role - mso_role: - host: mso_host - username: admin - password: SomeSecretPassword - role: readOnly - state: absent - delegate_to: localhost - -- name: Query a role - mso_role: - host: mso_host - username: admin - password: SomeSecretPassword - role: readOnly - state: query - delegate_to: localhost - register: query_result - -- name: Query all roles - mso_role: - host: mso_host - username: admin - password: SomeSecretPassword - state: query - delegate_to: localhost - register: query_result -''' - -RETURN = r''' -''' - -from ansible.module_utils.basic import AnsibleModule -from ansible.module_utils.network.aci.mso import MSOModule, mso_argument_spec, issubset - - -def main(): - argument_spec = mso_argument_spec() - argument_spec.update( - role=dict(type='str', aliases=['name']), - display_name=dict(type='str'), - description=dict(type='str'), - permissions=dict(type='list', choices=[ - 'backup-db', - 'manage-audit-records', - 'manage-labels', - 'manage-roles', - 'manage-schemas', - 'manage-sites', - 'manage-tenants', - 'manage-tenant-schemas', - 'manage-users', - 'platform-logs', - 'view-all-audit-records', - 'view-labels', - 'view-roles', - 'view-schemas', - 'view-sites', - 'view-tenants', - 'view-tenant-schemas', - 'view-users', - ]), - state=dict(type='str', default='present', choices=['absent', 'present', 'query']), - ) - - module = AnsibleModule( - argument_spec=argument_spec, - supports_check_mode=True, - required_if=[ - ['state', 'absent', ['role']], - ['state', 'present', ['role']], - ], - ) - - role = module.params.get('role') - description = module.params.get('description') - permissions = module.params.get('permissions') - state = module.params.get('state') - - mso = MSOModule(module) - - role_id = None - path = 'roles' - - # Query for existing object(s) - if role: - mso.existing = mso.get_obj(path, name=role) - if mso.existing: - role_id = mso.existing.get('id') - # If we found an existing object, continue with it - path = 'roles/{id}'.format(id=role_id) - else: - mso.existing = mso.query_objs(path) - - if state == 'query': - pass - - elif state == 'absent': - mso.previous = mso.existing - if mso.existing: - if module.check_mode: - mso.existing = {} - else: - mso.existing = mso.request(path, method='DELETE') - - elif state == 'present': - mso.previous = mso.existing - - payload = dict( - id=role_id, - name=role, - displayName=role, - description=description, - permissions=permissions, - ) - - mso.sanitize(payload, collate=True) - - if mso.existing: - if not issubset(mso.sent, mso.existing): - if module.check_mode: - mso.existing = mso.proposed - else: - mso.existing = mso.request(path, method='PUT', data=mso.sent) - else: - if module.check_mode: - mso.existing = mso.proposed - else: - mso.existing = mso.request(path, method='POST', data=mso.sent) - - mso.exit_json() - - -if __name__ == "__main__": - main() |