Switch group_assignment module to OpenStackModule

Change-Id: I443ed6785500a0e4aafe9c976a11c022e8f23db0
This commit is contained in:
Artem Goncharov
2021-05-20 16:33:56 +02:00
committed by Artem Goncharov
parent 6b3bf3bba0
commit acd9bc993b

View File

@@ -42,58 +42,54 @@ EXAMPLES = '''
group: demo group: 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, in_group): class IdentityGroupAssignment(OpenStackModule):
if state == 'present' and not in_group: argument_spec = dict(
return True
if state == 'absent' and in_group:
return True
return False
def main():
argument_spec = openstack_full_argument_spec(
user=dict(required=True), user=dict(required=True),
group=dict(required=True), group=dict(required=True),
state=dict(default='present', choices=['absent', 'present']), state=dict(default='present', choices=['absent', 'present']),
) )
module_kwargs = openstack_module_kwargs() module_kwargs = dict(
module = AnsibleModule(argument_spec, supports_check_mode=True
supports_check_mode=True, )
**module_kwargs)
user = module.params['user'] def _system_state_change(self, state, in_group):
group = module.params['group'] if state == 'present' and not in_group:
state = module.params['state'] return True
if state == 'absent' and in_group:
return True
return False
sdk, cloud = openstack_cloud_from_module(module) def run(self):
try: user = self.params['user']
in_group = cloud.is_user_in_group(user, group) group = self.params['group']
state = self.params['state']
if module.check_mode: in_group = self.conn.is_user_in_group(user, group)
module.exit_json(changed=_system_state_change(state, in_group))
if self.ansible.check_mode:
self.exit_json(changed=self._system_state_change(state, in_group))
changed = False changed = False
if state == 'present': if state == 'present':
if not in_group: if not in_group:
cloud.add_user_to_group(user, group) self.conn.add_user_to_group(user, group)
changed = True changed = True
elif state == 'absent': elif state == 'absent':
if in_group: if in_group:
cloud.remove_user_from_group(user, group) self.conn.remove_user_from_group(user, group)
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), extra_data=e.extra_data) def main():
module = IdentityGroupAssignment()
module()
if __name__ == '__main__': if __name__ == '__main__':