Switch identity_role module to OpenStackModule

Change-Id: I57c2c558bd01c984453fb11048e8a888ec4d9eea
This commit is contained in:
Artem Goncharov
2021-05-20 16:16:48 +02:00
committed by Artem Goncharov
parent 6b3bf3bba0
commit 0cbaeb6fbb

View File

@@ -59,58 +59,54 @@ role:
sample: "demo" sample: "demo"
''' '''
from ansible.module_utils.basic import AnsibleModule from ansible_collections.openstack.cloud.plugins.module_utils.openstack import OpenStackModule
from ansible_collections.openstack.cloud.plugins.module_utils.openstack import (openstack_full_argument_spec,
openstack_module_kwargs,
openstack_cloud_from_module)
def _system_state_change(state, role): class IdentityRoleModule(OpenStackModule):
argument_spec = dict(
name=dict(required=True),
state=dict(default='present', choices=['absent', 'present']),
)
module_kwargs = dict(
supports_check_mode=True
)
def _system_state_change(self, state, role):
if state == 'present' and not role: if state == 'present' and not role:
return True return True
if state == 'absent' and role: if state == 'absent' and role:
return True return True
return False return False
def run(self):
name = self.params.get('name')
state = self.params.get('state')
def main(): role = self.conn.get_role(name)
argument_spec = openstack_full_argument_spec(
name=dict(required=True),
state=dict(default='present', choices=['absent', 'present']),
)
module_kwargs = openstack_module_kwargs() if self.ansible.check_mode:
module = AnsibleModule(argument_spec, self.exit_json(changed=self._system_state_change(state, role))
supports_check_mode=True,
**module_kwargs)
name = module.params.get('name')
state = module.params.get('state')
sdk, cloud = openstack_cloud_from_module(module)
try:
role = cloud.get_role(name)
if module.check_mode:
module.exit_json(changed=_system_state_change(state, role))
if state == 'present': if state == 'present':
if role is None: if role is None:
role = cloud.create_role(name) role = self.conn.create_role(name)
changed = True changed = True
else: else:
changed = False changed = False
module.exit_json(changed=changed, role=role) self.exit_json(changed=changed, role=role)
elif state == 'absent': elif state == 'absent':
if role is None: if role is None:
changed = False changed = False
else: else:
cloud.delete_role(name) self.conn.delete_role(name)
changed = True changed = True
module.exit_json(changed=changed) self.exit_json(changed=changed)
except sdk.exceptions.OpenStackCloudException as e:
module.fail_json(msg=str(e)) def main():
module = IdentityRoleModule()
module()
if __name__ == '__main__': if __name__ == '__main__':