Switch object module to OpenStackModule
Switch object module to the general OpenStackModule. Change-Id: Ic90d796fe4bbec118c148ffd468458bd98990422
This commit is contained in:
parent
6b3bf3bba0
commit
0eef3cb978
@ -65,58 +65,55 @@ EXAMPLES = '''
|
|||||||
container: config
|
container: config
|
||||||
'''
|
'''
|
||||||
|
|
||||||
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 process_object(
|
class SwiftObjectModule(OpenStackModule):
|
||||||
cloud_obj, container, name, filename, container_access, **kwargs):
|
argument_spec = dict(
|
||||||
|
|
||||||
changed = False
|
|
||||||
container_obj = cloud_obj.get_container(container)
|
|
||||||
if kwargs['state'] == 'present':
|
|
||||||
if not container_obj:
|
|
||||||
container_obj = cloud_obj.create_container(container)
|
|
||||||
changed = True
|
|
||||||
if cloud_obj.get_container_access(container) != container_access:
|
|
||||||
cloud_obj.set_container_access(container, container_access)
|
|
||||||
changed = True
|
|
||||||
if name:
|
|
||||||
if cloud_obj.is_object_stale(container, name, filename):
|
|
||||||
cloud_obj.create_object(container, name, filename)
|
|
||||||
changed = True
|
|
||||||
else:
|
|
||||||
if container_obj:
|
|
||||||
if name:
|
|
||||||
if cloud_obj.get_object_metadata(container, name):
|
|
||||||
cloud_obj.delete_object(container, name)
|
|
||||||
changed = True
|
|
||||||
else:
|
|
||||||
cloud_obj.delete_container(container)
|
|
||||||
changed = True
|
|
||||||
return changed
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
argument_spec = openstack_full_argument_spec(
|
|
||||||
name=dict(required=False, default=None),
|
name=dict(required=False, default=None),
|
||||||
container=dict(required=True),
|
container=dict(required=True),
|
||||||
filename=dict(required=False, default=None),
|
filename=dict(required=False, default=None),
|
||||||
container_access=dict(default='private', choices=['private', 'public']),
|
container_access=dict(default='private', choices=['private', 'public']),
|
||||||
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, **module_kwargs)
|
|
||||||
|
|
||||||
sdk, cloud = openstack_cloud_from_module(module)
|
def process_object(
|
||||||
try:
|
self, container, name, filename, container_access, **kwargs
|
||||||
changed = process_object(cloud, **module.params)
|
):
|
||||||
|
changed = False
|
||||||
|
container_obj = self.conn.get_container(container)
|
||||||
|
if kwargs['state'] == 'present':
|
||||||
|
if not container_obj:
|
||||||
|
container_obj = self.conn.create_container(container)
|
||||||
|
changed = True
|
||||||
|
if self.conn.get_container_access(container) != container_access:
|
||||||
|
self.conn.set_container_access(container, container_access)
|
||||||
|
changed = True
|
||||||
|
if name:
|
||||||
|
if self.conn.is_object_stale(container, name, filename):
|
||||||
|
self.conn.create_object(container, name, filename)
|
||||||
|
changed = True
|
||||||
|
else:
|
||||||
|
if container_obj:
|
||||||
|
if name:
|
||||||
|
if self.conn.get_object_metadata(container, name):
|
||||||
|
self.conn.delete_object(container, name)
|
||||||
|
changed = True
|
||||||
|
else:
|
||||||
|
self.conn.delete_container(container)
|
||||||
|
changed = True
|
||||||
|
return changed
|
||||||
|
|
||||||
module.exit_json(changed=changed)
|
def run(self):
|
||||||
except sdk.exceptions.OpenStackCloudException as e:
|
changed = self.process_object(**self.params)
|
||||||
module.fail_json(msg=str(e))
|
|
||||||
|
self.exit_json(changed=changed)
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
module = SwiftObjectModule()
|
||||||
|
module()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
Loading…
x
Reference in New Issue
Block a user