Merge "Switch flavor_info module to OpenStackModule"

This commit is contained in:
Zuul
2021-06-16 11:46:04 +00:00
committed by Gerrit Code Review

View File

@@ -158,71 +158,59 @@ openstack_flavors:
sample: true sample: true
''' '''
from ansible_collections.openstack.cloud.plugins.module_utils.openstack import OpenStackModule
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)
def main(): class ComputeFlavorInfoModule(OpenStackModule):
argument_spec = openstack_full_argument_spec( argument_spec = dict(
name=dict(required=False, default=None), name=dict(required=False, default=None),
ram=dict(required=False, default=None), ram=dict(required=False, default=None),
vcpus=dict(required=False, default=None), vcpus=dict(required=False, default=None),
limit=dict(required=False, default=None, type='int'), limit=dict(required=False, default=None, type='int'),
ephemeral=dict(required=False, default=None), ephemeral=dict(required=False, default=None),
) )
module_kwargs = openstack_module_kwargs( module_kwargs = dict(
mutually_exclusive=[ mutually_exclusive=[
['name', 'ram'], ['name', 'ram'],
['name', 'vcpus'], ['name', 'vcpus'],
['name', 'ephemeral'] ['name', 'ephemeral']
] ]
) )
module = AnsibleModule(argument_spec, **module_kwargs)
is_old_facts = module._name == 'openstack.cloud.compute_flavor_facts'
if is_old_facts:
module.deprecate("The 'openstack.cloud.compute_flavor_facts' module has been renamed to 'openstack.cloud.compute_flavor_info', "
"and the renamed one no longer returns ansible_facts", version='2.0.0',
collection_name='openstack.cloud')
name = module.params['name'] deprecated_names = ('openstack.cloud.compute_flavor_facts')
vcpus = module.params['vcpus']
ram = module.params['ram']
ephemeral = module.params['ephemeral']
limit = module.params['limit']
filters = {} def run(self):
if vcpus: name = self.params['name']
filters['vcpus'] = vcpus vcpus = self.params['vcpus']
if ram: ram = self.params['ram']
filters['ram'] = ram ephemeral = self.params['ephemeral']
if ephemeral: limit = self.params['limit']
filters['ephemeral'] = ephemeral
filters = {}
if vcpus:
filters['vcpus'] = vcpus
if ram:
filters['ram'] = ram
if ephemeral:
filters['ephemeral'] = ephemeral
sdk, cloud = openstack_cloud_from_module(module)
try:
if name: if name:
flavors = cloud.search_flavors(filters={'name': name}) flavors = self.conn.search_flavors(filters={'name': name})
else: else:
flavors = cloud.list_flavors() flavors = self.conn.list_flavors()
if filters: if filters:
flavors = cloud.range_search(flavors, filters) flavors = self.conn.range_search(flavors, filters)
if limit is not None: if limit is not None:
flavors = flavors[:limit] flavors = flavors[:limit]
if is_old_facts: self.exit_json(changed=False, openstack_flavors=flavors)
module.exit_json(changed=False,
ansible_facts=dict(openstack_flavors=flavors))
else:
module.exit_json(changed=False,
openstack_flavors=flavors)
except sdk.exceptions.OpenStackCloudException as e:
module.fail_json(msg=str(e)) def main():
module = ComputeFlavorInfoModule()
module()
if __name__ == '__main__': if __name__ == '__main__':