in src/ansible_collections/alibaba/apsarastack/plugins/modules/ali_ecs_tag.py [0:0]
def main():
argument_spec = common_argument_spec()
argument_spec.update(dict(
state=dict(default='present', choices=['present', 'absent']),
resource_ids=dict(type='list', elements='str', required=True),
resource_type=dict(type='str', default='instance', choices=['instance', 'disk', 'image', 'eni', 'securitygroup']),
tags=dict(type='dict')
))
module = AnsibleModule(argument_spec=argument_spec)
if HAS_FOOTMARK is False:
module.fail_json(msg='footmark required for the module ali_ecs_tag.')
ecs_conn = ecs_connect(module)
if module.params['resource_type'] == 'instance':
resources = ecs_exists(module, ecs_conn)
elif module.params['resource_type'] == 'disk':
resources = disk_exists_v2(module, ecs_conn)
elif module.params['resource_type'] == 'image':
resources = image_exists(module, ecs_conn)
elif module.params['resource_type'] == 'eni':
resources = eni_exists(module, ecs_conn)
else:
resources = sgroup_exists(module, ecs_conn)
if not resources:
module.fail_json(msg='No matching resource was found based on the IDS provided.')
#Get values of variable
tags = module.params['tags']
if module.params['state'] == "present":
ecs_changed = ecs_conn.tag_resources(resource_ids=module.params['resource_ids'], tags=tags, resource_type=module.params['resource_type'])
else:
ecs_changed = ecs_conn.untag_resources(resource_ids=module.params['resource_ids'], tags=tags, resource_type=module.params['resource_type'])
result = []
for i in range(5):
if module.params['resource_type'] == 'instance':
resources = ecs_exists(module, ecs_conn)
elif module.params['resource_type'] == 'disk':
resources = disk_exists_v2(module, ecs_conn)
elif module.params['resource_type'] == 'image':
resources = image_exists(module, ecs_conn)
elif module.params['resource_type'] == 'eni':
resources = eni_exists(module, ecs_conn)
else:
resources = sgroup_exists(module, ecs_conn)
for resource in resources:
if module.params['resource_type'] == 'disk':
tags_list = resource["Tags"]["Tag"]
resource["tags"] = {x['TagKey']: x['TagValue'] for x in tags_list}
result.append(resource["tags"])
else:
result.append(resource.read()['tags'])
module.exit_json(changed=ecs_changed, tags=result)