diff --git a/plugins/modules/os_server_info.py b/plugins/modules/os_server_info.py index 868ddfd0..2e2fd569 100644 --- a/plugins/modules/os_server_info.py +++ b/plugins/modules/os_server_info.py @@ -65,47 +65,43 @@ EXAMPLES = ''' import fnmatch -from ansible.module_utils.basic import AnsibleModule -from ansible_collections.openstack.cloud.plugins.module_utils.openstack import (openstack_full_argument_spec, - openstack_module_kwargs, - openstack_cloud_from_module) +from ansible_collections.openstack.cloud.plugins.module_utils.openstack import OpenStackModule -def main(): +class ServerInfoModule(OpenStackModule): - argument_spec = openstack_full_argument_spec( + argument_spec = dict( server=dict(required=False), detailed=dict(required=False, type='bool', default=False), filters=dict(required=False, type='dict', default=None), all_projects=dict(required=False, type='bool', default=False), ) - module_kwargs = openstack_module_kwargs() - module = AnsibleModule(argument_spec, **module_kwargs) - is_old_facts = module._name == 'os_server_facts' - if is_old_facts: - module.deprecate("The 'os_server_facts' module has been renamed to 'os_server_info', " - "and the renamed one no longer returns ansible_facts", version='2.13') - sdk, cloud = openstack_cloud_from_module(module) - try: - openstack_servers = cloud.search_servers( - detailed=module.params['detailed'], filters=module.params['filters'], - all_projects=module.params['all_projects']) + def run(self): + is_old_facts = self._name == 'os_server_facts' + if is_old_facts: + self.deprecate("The 'os_server_facts' module has been renamed to 'os_server_info', " + "and the renamed one no longer returns ansible_facts", version='2.13') + openstack_servers = self.conn.search_servers( + detailed=self.params['detailed'], filters=self.params['filters'], + all_projects=self.params['all_projects']) - if module.params['server']: + if self.params['server']: # filter servers by name - pattern = module.params['server'] + pattern = self.params['server'] # TODO(mordred) This is handled by sdk now openstack_servers = [server for server in openstack_servers - if fnmatch.fnmatch(server['name'], pattern) or fnmatch.fnmatch(server['id'], pattern)] + if fnmatch.fnmatch(server['name'], pattern) + or fnmatch.fnmatch(server['id'], pattern)] if is_old_facts: - module.exit_json(changed=False, ansible_facts=dict( + self.exit_json(changed=False, ansible_facts=dict( openstack_servers=openstack_servers)) else: - module.exit_json(changed=False, openstack_servers=openstack_servers) + self.exit_json(changed=False, openstack_servers=openstack_servers) - except sdk.exceptions.OpenStackCloudException as e: - module.fail_json(msg=str(e)) + +def main(): + ServerInfoModule() if __name__ == '__main__':