def main(): argument_spec = cloudscale_argument_spec() argument_spec.update( dict( name=dict(), uuid=dict(), type=dict(default='anti-affinity'), tags=dict(type='dict'), state=dict(default='present', choices=['absent', 'present']), )) module = AnsibleModule( argument_spec=argument_spec, required_one_of=(('name', 'uuid'), ), supports_check_mode=True, ) cloudscale_server_group = AnsibleCloudscaleServerGroup( module, 'cloudscale_server_group') if module.params['state'] == 'absent': server_group = cloudscale_server_group.absent_group() else: server_group = cloudscale_server_group.present_group() result = cloudscale_server_group.get_result(server_group) module.exit_json(**result)
def main(): argument_spec = cloudscale_argument_spec() argument_spec.update(dict( state=dict(default='present', choices=('present', 'absent')), name=dict(), uuid=dict(), zone=dict(), size_gb=dict(type='int'), type=dict(choices=('ssd', 'bulk')), server_uuids=dict(type='list', aliases=['server_uuid']), tags=dict(type='dict'), )) module = AnsibleModule( argument_spec=argument_spec, required_one_of=(('name', 'uuid'),), supports_check_mode=True, ) cloudscale_volume = AnsibleCloudscaleVolume(module) if module.params['state'] == 'absent': server_group = cloudscale_volume.absent() else: server_group = cloudscale_volume.present() result = cloudscale_volume.get_result(server_group) module.exit_json(**result)
def main(): argument_spec = cloudscale_argument_spec() argument_spec.update( dict( state=dict(default='present', choices=('present', 'absent'), type='str'), ip=dict(aliases=('network', ), type='str'), ip_version=dict(choices=(4, 6), type='int'), server=dict(type='str'), type=dict(type='str', choices=('regional', 'global'), default='regional'), region=dict(type='str'), prefix_length=dict(choices=(56, ), type='int'), reverse_ptr=dict(type='str'), )) module = AnsibleModule( argument_spec=argument_spec, required_one_of=(('ip', 'ip_version'), ), supports_check_mode=True, ) if not HAS_IPADDRESS: module.fail_json(msg=missing_required_lib('ipaddress'), exception=IPADDRESS_IMP_ERR) target_state = module.params['state'] target_server = module.params['server'] floating_ip = AnsibleCloudscaleFloatingIP(module) current_state = floating_ip.info['state'] current_server = floating_ip.info[ 'server'] if 'server' in floating_ip.info else None if module.check_mode: module.exit_json( changed=not target_state == current_state or (current_state == 'present' and current_server != target_server), **floating_ip.info) changed = False if current_state == 'absent' and target_state == 'present': floating_ip.request_floating_ip() changed = True elif current_state == 'present' and target_state == 'absent': floating_ip.release_floating_ip() changed = True elif current_state == 'present' and current_server != target_server: floating_ip.update_floating_ip() changed = True module.exit_json(changed=changed, **floating_ip.info)
def main(): argument_spec = cloudscale_argument_spec() argument_spec.update( dict( state=dict(default='running', choices=ALLOWED_STATES), name=dict(), uuid=dict(), flavor=dict(), image=dict(), zone=dict(), volume_size_gb=dict(type='int', default=10), bulk_volume_size_gb=dict(type='int'), ssh_keys=dict(type='list'), password=dict(no_log=True), use_public_network=dict(type='bool', default=True), use_private_network=dict(type='bool', default=False), use_ipv6=dict(type='bool', default=True), anti_affinity_with=dict(removed_in_version='2.11'), server_groups=dict(type='list'), user_data=dict(), force=dict(type='bool', default=False), tags=dict(type='dict'), )) module = AnsibleModule( argument_spec=argument_spec, required_one_of=(('name', 'uuid'), ), mutually_exclusive=(('anti_affinity_with', 'server_groups'), ), supports_check_mode=True, ) cloudscale_server = AnsibleCloudscaleServer(module) if module.params['state'] == "absent": server = cloudscale_server.absent_server() else: server = cloudscale_server.present_server() result = cloudscale_server.get_result(server) module.exit_json(**result)