def remove_network(module, oneandone_conn): """ Removes a private network. module : AnsibleModule object oneandone_conn: authenticated oneandone object. """ try: pn_id = module.params.get('name') wait_timeout = module.params.get('wait_timeout') wait_interval = module.params.get('wait_interval') private_network_id = get_private_network(oneandone_conn, pn_id) if module.check_mode: if private_network_id is None: _check_mode(module, False) _check_mode(module, True) private_network = oneandone_conn.delete_private_network( private_network_id) wait_for_resource_deletion_completion( oneandone_conn, OneAndOneResources.private_network, private_network['id'], wait_timeout, wait_interval) changed = True if private_network else False return (changed, { 'id': private_network['id'], 'name': private_network['name'] }) except Exception as e: module.fail_json(msg=str(e))
def remove_network(module, oneandone_conn): """ Removes a private network. module : AnsibleModule object oneandone_conn: authenticated oneandone object. """ try: pn_id = module.params.get('name') wait_timeout = module.params.get('wait_timeout') wait_interval = module.params.get('wait_interval') private_network_id = get_private_network(oneandone_conn, pn_id) if module.check_mode: if private_network_id is None: _check_mode(module, False) _check_mode(module, True) private_network = oneandone_conn.delete_private_network(private_network_id) wait_for_resource_deletion_completion(oneandone_conn, OneAndOneResources.private_network, private_network['id'], wait_timeout, wait_interval) changed = True if private_network else False return (changed, { 'id': private_network['id'], 'name': private_network['name'] }) except Exception as e: module.fail_json(msg=str(e))
def create_network(module, oneandone_conn): """ Create new private network module : AnsibleModule object oneandone_conn: authenticated oneandone object Returns a dictionary containing a 'changed' attribute indicating whether any network was added. """ name = module.params.get('name') description = module.params.get('description') network_address = module.params.get('network_address') subnet_mask = module.params.get('subnet_mask') datacenter = module.params.get('datacenter') wait = module.params.get('wait') wait_timeout = module.params.get('wait_timeout') wait_interval = module.params.get('wait_interval') if datacenter is not None: datacenter_id = get_datacenter(oneandone_conn, datacenter) if datacenter_id is None: module.fail_json( msg='datacenter %s not found.' % datacenter) try: _check_mode(module, True) network = oneandone_conn.create_private_network( private_network=oneandone.client.PrivateNetwork( name=name, description=description, network_address=network_address, subnet_mask=subnet_mask, datacenter_id=datacenter_id )) if wait: wait_for_resource_creation_completion( oneandone_conn, OneAndOneResources.private_network, network['id'], wait_timeout, wait_interval) network = get_private_network(oneandone_conn, network['id'], True) changed = True if network else False _check_mode(module, False) return (changed, network) except Exception as e: module.fail_json(msg=str(e))
def _add_servers(module, oneandone_conn, name, members): try: private_network_id = get_private_network(oneandone_conn, name) if module.check_mode: if private_network_id and members: return True return False network = oneandone_conn.attach_private_network_servers( private_network_id=private_network_id, server_ids=members) return network except Exception as e: module.fail_json(msg=str(e))
def _remove_member(module, oneandone_conn, name, member_id): try: private_network_id = get_private_network(oneandone_conn, name) if module.check_mode: if private_network_id: network_member = oneandone_conn.get_private_network_server( private_network_id=private_network_id, server_id=member_id) if network_member: return True return False network = oneandone_conn.remove_private_network_server( private_network_id=name, server_id=member_id) return network except Exception as ex: module.fail_json(msg=str(ex))
def create_server(module, oneandone_conn): """ Create new server module : AnsibleModule object oneandone_conn: authenticated oneandone object Returns a dictionary containing a 'changed' attribute indicating whether any server was added, and a 'servers' attribute with the list of the created servers' hostname, id and ip addresses. """ hostname = module.params.get('hostname') description = module.params.get('description') auto_increment = module.params.get('auto_increment') count = module.params.get('count') fixed_instance_size = module.params.get('fixed_instance_size') vcore = module.params.get('vcore') cores_per_processor = module.params.get('cores_per_processor') ram = module.params.get('ram') hdds = module.params.get('hdds') datacenter = module.params.get('datacenter') appliance = module.params.get('appliance') ssh_key = module.params.get('ssh_key') private_network = module.params.get('private_network') monitoring_policy = module.params.get('monitoring_policy') firewall_policy = module.params.get('firewall_policy') load_balancer = module.params.get('load_balancer') server_type = module.params.get('server_type') wait = module.params.get('wait') wait_timeout = module.params.get('wait_timeout') wait_interval = module.params.get('wait_interval') datacenter_id = get_datacenter(oneandone_conn, datacenter) if datacenter_id is None: _check_mode(module, False) module.fail_json( msg='datacenter %s not found.' % datacenter) fixed_instance_size_id = None if fixed_instance_size: fixed_instance_size_id = get_fixed_instance_size( oneandone_conn, fixed_instance_size) if fixed_instance_size_id is None: _check_mode(module, False) module.fail_json( msg='fixed_instance_size %s not found.' % fixed_instance_size) appliance_id = get_appliance(oneandone_conn, appliance) if appliance_id is None: _check_mode(module, False) module.fail_json( msg='appliance %s not found.' % appliance) private_network_id = None if private_network: private_network_id = get_private_network( oneandone_conn, private_network) if private_network_id is None: _check_mode(module, False) module.fail_json( msg='private network %s not found.' % private_network) monitoring_policy_id = None if monitoring_policy: monitoring_policy_id = get_monitoring_policy( oneandone_conn, monitoring_policy) if monitoring_policy_id is None: _check_mode(module, False) module.fail_json( msg='monitoring policy %s not found.' % monitoring_policy) firewall_policy_id = None if firewall_policy: firewall_policy_id = get_firewall_policy( oneandone_conn, firewall_policy) if firewall_policy_id is None: _check_mode(module, False) module.fail_json( msg='firewall policy %s not found.' % firewall_policy) load_balancer_id = None if load_balancer: load_balancer_id = get_load_balancer( oneandone_conn, load_balancer) if load_balancer_id is None: _check_mode(module, False) module.fail_json( msg='load balancer %s not found.' % load_balancer) if auto_increment: hostnames = _auto_increment_hostname(count, hostname) descriptions = _auto_increment_description(count, description) else: hostnames = [hostname] * count descriptions = [description] * count hdd_objs = [] if hdds: for hdd in hdds: hdd_objs.append(oneandone.client.Hdd( size=hdd['size'], is_main=hdd['is_main'] )) servers = [] for index, name in enumerate(hostnames): server = _create_server( module=module, oneandone_conn=oneandone_conn, hostname=name, description=descriptions[index], fixed_instance_size_id=fixed_instance_size_id, vcore=vcore, cores_per_processor=cores_per_processor, ram=ram, hdds=hdd_objs, datacenter_id=datacenter_id, appliance_id=appliance_id, ssh_key=ssh_key, private_network_id=private_network_id, monitoring_policy_id=monitoring_policy_id, firewall_policy_id=firewall_policy_id, load_balancer_id=load_balancer_id, server_type=server_type, wait=wait, wait_timeout=wait_timeout, wait_interval=wait_interval) if server: servers.append(server) changed = False if servers: for server in servers: if server: _check_mode(module, True) _check_mode(module, False) servers = [_insert_network_data(_server) for _server in servers] changed = True _check_mode(module, False) return (changed, servers)
def update_network(module, oneandone_conn): """ Modifies a private network. module : AnsibleModule object oneandone_conn: authenticated oneandone object """ try: _private_network_id = module.params.get('private_network') _name = module.params.get('name') _description = module.params.get('description') _network_address = module.params.get('network_address') _subnet_mask = module.params.get('subnet_mask') _add_members = module.params.get('add_members') _remove_members = module.params.get('remove_members') changed = False private_network = get_private_network(oneandone_conn, _private_network_id, True) if private_network is None: _check_mode(module, False) if _name or _description or _network_address or _subnet_mask: _check_mode(module, True) private_network = oneandone_conn.modify_private_network( private_network_id=private_network['id'], name=_name, description=_description, network_address=_network_address, subnet_mask=_subnet_mask) changed = True if _add_members: instances = [] for member in _add_members: instance_id = get_server(oneandone_conn, member) instance_obj = oneandone.client.AttachServer( server_id=instance_id) instances.extend([instance_obj]) private_network = _add_servers(module, oneandone_conn, private_network['id'], instances) _check_mode(module, private_network) changed = True if _remove_members: chk_changed = False for member in _remove_members: instance = get_server(oneandone_conn, member, True) if module.check_mode: chk_changed |= _remove_member(module, oneandone_conn, private_network['id'], instance['id']) _check_mode(module, instance and chk_changed) _remove_member(module, oneandone_conn, private_network['id'], instance['id']) private_network = get_private_network(oneandone_conn, private_network['id'], True) changed = True return (changed, private_network) except Exception as ex: module.fail_json(msg=str(ex))
def update_network(module, oneandone_conn): """ Modifies a private network. module : AnsibleModule object oneandone_conn: authenticated oneandone object """ try: _private_network_id = module.params.get('private_network') _name = module.params.get('name') _description = module.params.get('description') _network_address = module.params.get('network_address') _subnet_mask = module.params.get('subnet_mask') _add_members = module.params.get('add_members') _remove_members = module.params.get('remove_members') changed = False private_network = get_private_network(oneandone_conn, _private_network_id, True) if private_network is None: _check_mode(module, False) if _name or _description or _network_address or _subnet_mask: _check_mode(module, True) private_network = oneandone_conn.modify_private_network( private_network_id=private_network['id'], name=_name, description=_description, network_address=_network_address, subnet_mask=_subnet_mask) changed = True if _add_members: instances = [] for member in _add_members: instance_id = get_server(oneandone_conn, member) instance_obj = oneandone.client.AttachServer(server_id=instance_id) instances.extend([instance_obj]) private_network = _add_servers(module, oneandone_conn, private_network['id'], instances) _check_mode(module, private_network) changed = True if _remove_members: chk_changed = False for member in _remove_members: instance = get_server(oneandone_conn, member, True) if module.check_mode: chk_changed |= _remove_member(module, oneandone_conn, private_network['id'], instance['id']) _check_mode(module, instance and chk_changed) _remove_member(module, oneandone_conn, private_network['id'], instance['id']) private_network = get_private_network(oneandone_conn, private_network['id'], True) changed = True return (changed, private_network) except Exception as ex: module.fail_json(msg=str(ex))