Merge "Switch ServerGroup module to OpenStackModule"

This commit is contained in:
Zuul 2021-06-16 19:12:51 +00:00 committed by Gerrit Code Review
commit 60f1b8e2a5
1 changed files with 31 additions and 35 deletions

View File

@ -96,70 +96,66 @@ user_id:
type: str type: str
''' '''
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, server_group): class ServerGroupModule(OpenStackModule):
if state == 'present' and not server_group: argument_spec = dict(
return True
if state == 'absent' and server_group:
return True
return False
def main():
argument_spec = openstack_full_argument_spec(
name=dict(required=True), name=dict(required=True),
policies=dict(required=False, type='list', elements='str'), policies=dict(required=False, type='list', elements='str'),
state=dict(default='present', choices=['absent', 'present']), state=dict(default='present', choices=['absent', 'present']),
) )
module_kwargs = openstack_module_kwargs()
module = AnsibleModule( module_kwargs = dict(
argument_spec,
supports_check_mode=True, supports_check_mode=True,
**module_kwargs
) )
name = module.params['name'] def _system_state_change(self, state, server_group):
policies = module.params['policies'] if state == 'present' and not server_group:
state = module.params['state'] return True
if state == 'absent' and server_group:
return True
sdk, cloud = openstack_cloud_from_module(module) return False
try:
server_group = cloud.get_server_group(name)
if module.check_mode: def run(self):
module.exit_json( name = self.params['name']
changed=_system_state_change(state, server_group) policies = self.params['policies']
state = self.params['state']
server_group = self.conn.get_server_group(name)
if self.ansible.check_mode:
self.exit_json(
changed=self._system_state_change(state, server_group)
) )
changed = False changed = False
if state == 'present': if state == 'present':
if not server_group: if not server_group:
if not policies: if not policies:
module.fail_json( self.fail_json(
msg="Parameter 'policies' is required in Server Group " msg="Parameter 'policies' is required in Server Group "
"Create" "Create"
) )
server_group = cloud.create_server_group(name, policies) server_group = self.conn.create_server_group(name, policies)
changed = True changed = True
module.exit_json( self.exit_json(
changed=changed, changed=changed,
id=server_group['id'], id=server_group['id'],
server_group=server_group server_group=server_group
) )
if state == 'absent': if state == 'absent':
if server_group: if server_group:
cloud.delete_server_group(server_group['id']) self.conn.delete_server_group(server_group['id'])
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 = ServerGroupModule()
module()
if __name__ == '__main__': if __name__ == '__main__':