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,13 +96,21 @@ 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):
argument_spec = dict(
name=dict(required=True),
policies=dict(required=False, type='list', elements='str'),
state=dict(default='present', choices=['absent', 'present']),
)
module_kwargs = dict(
supports_check_mode=True,
)
def _system_state_change(self, state, server_group):
if state == 'present' and not server_group: if state == 'present' and not server_group:
return True return True
if state == 'absent' and server_group: if state == 'absent' and server_group:
@ -110,56 +118,44 @@ def _system_state_change(state, server_group):
return False return False
def run(self):
name = self.params['name']
policies = self.params['policies']
state = self.params['state']
def main(): server_group = self.conn.get_server_group(name)
argument_spec = openstack_full_argument_spec(
name=dict(required=True),
policies=dict(required=False, type='list', elements='str'),
state=dict(default='present', choices=['absent', 'present']),
)
module_kwargs = openstack_module_kwargs()
module = AnsibleModule(
argument_spec,
supports_check_mode=True,
**module_kwargs
)
name = module.params['name'] if self.ansible.check_mode:
policies = module.params['policies'] self.exit_json(
state = module.params['state'] changed=self._system_state_change(state, server_group)
sdk, cloud = openstack_cloud_from_module(module)
try:
server_group = cloud.get_server_group(name)
if module.check_mode:
module.exit_json(
changed=_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__':