def list(gandi, datacenter, type, id, attached, detached, version, reverse, vm, vlan): """List ips.""" if attached and detached: gandi.echo("You can't set --attached and --detached at the same time.") return output_keys = ['ip', 'state', 'dc', 'type'] if id: output_keys.append('id') if version: output_keys.append('version') if vm: output_keys.append('vm') if reverse: output_keys.append('reverse') options = {} opt_dc = {} if datacenter: datacenter_id = int(gandi.datacenter.usable_id(datacenter)) options['datacenter_id'] = datacenter_id opt_dc = {'datacenter_id': datacenter_id} iface_options = {} if type: iface_options['type'] = type if vlan: iface_options['vlan'] = vlan if attached: iface_options['state'] = 'used' elif detached: iface_options['state'] = 'free' if iface_options: ifaces = gandi.iface.list(iface_options) options['iface_id'] = [iface['id'] for iface in ifaces] iface_options.update(opt_dc) datacenters = gandi.datacenter.list() ips = gandi.ip.list(options) ifaces = dict([(iface['id'], iface) for iface in gandi.iface.list(iface_options)]) vms = dict([(vm_['id'], vm_) for vm_ in gandi.iaas.list(opt_dc)]) for num, ip_ in enumerate(ips): if num: gandi.separator_line() output_ip(gandi, ip_, datacenters, vms, ifaces, output_keys) return ips
def list(gandi, datacenter, type, id, attached, detached, version, reverse, vm): """List ips.""" if attached and detached: gandi.echo("You can't set --attached and --detached at the same time.") return output_keys = ["ip", "state", "dc", "type"] if id: output_keys.append("id") if version: output_keys.append("version") if vm: output_keys.append("vm") if reverse: output_keys.append("reverse") options = {} opt_dc = {} if datacenter: datacenter_id = int(gandi.datacenter.usable_id(datacenter)) options["datacenter_id"] = datacenter_id opt_dc = {"datacenter_id": datacenter_id} iface_options = {} if type: iface_options["type"] = type if attached: iface_options["state"] = "used" elif detached: iface_options["state"] = "free" if iface_options: ifaces = gandi.iface.list(iface_options) options["iface_id"] = [iface["id"] for iface in ifaces] datacenters = gandi.datacenter.list() ips = gandi.ip.list(options) ifaces = dict([(iface["id"], iface) for iface in gandi.iface.list(opt_dc)]) vms = dict([(vm["id"], vm) for vm in gandi.iaas.list(opt_dc)]) for num, ip_ in enumerate(ips): if num: gandi.separator_line() output_ip(gandi, ip_, datacenters, vms, ifaces, output_keys) return ips
def info(gandi, resource): """Display information about an ip. Resource can be an ip or id. """ output_keys = ['ip', 'state', 'dc', 'type', 'vm', 'reverse'] datacenters = gandi.datacenter.list() ip = gandi.ip.info(resource) iface = gandi.iface.info(ip['iface_id']) vms = None if iface.get('vm_id'): vm = gandi.iaas.info(iface['vm_id']) vms = {vm['id']: vm} output_ip(gandi, ip, datacenters, vms, {iface['id']: iface}, output_keys) return ip
def info(gandi, resource): """Display information about an ip. Resource can be an ip or id. """ output_keys = ["ip", "state", "dc", "type", "vm"] datacenters = gandi.datacenter.list() ip = gandi.ip.info(resource) iface = gandi.iface.info(ip["iface_id"]) vms = None if iface.get("vm_id"): vm = gandi.iaas.info(iface["vm_id"]) vms = {vm["id"]: vm} output_ip(gandi, ip, datacenters, vms, {iface["id"]: iface}, output_keys) return ip
def info(gandi, resource, ip): """Display information about a vlan.""" output_keys = ['name', 'state', 'dc', 'subnet', 'gateway'] datacenters = gandi.datacenter.list() vlan = gandi.vlan.info(resource) gateway = vlan['gateway'] if not ip: output_vlan(gandi, vlan, datacenters, output_keys, justify=11) return vlan gateway_exists = False vms = dict([(vm_['id'], vm_) for vm_ in gandi.iaas.list()]) ifaces = gandi.vlan.ifaces(resource) for iface in ifaces: for ip in iface['ips']: if gateway == ip['ip']: gateway_exists = True if gateway_exists: vlan.pop('gateway') else: vlan['gateway'] = ("%s don't exists" % gateway if gateway else 'none') output_vlan(gandi, vlan, datacenters, output_keys, justify=11) output_keys = ['vm', 'bandwidth'] for iface in ifaces: gandi.separator_line() output_iface(gandi, iface, datacenters, vms, output_keys, justify=11) for ip in iface['ips']: output_ip(gandi, ip, None, None, None, ['ip']) if gateway == ip['ip']: output_line(gandi, 'gateway', 'true', justify=11) return vlan
def info(gandi, resource): """Display information about an ip. Resource can be an ip or id. """ output_keys = ['ip', 'state', 'dc', 'type', 'vm'] datacenters = gandi.datacenter.list() ip = gandi.ip.info(resource) iface = gandi.iface.info(ip['iface_id']) vms = None if iface.get('vm_id'): vm = gandi.iaas.info(iface['vm_id']) vms = {vm['id']: vm} output_ip(gandi, ip, datacenters, vms, {iface['id']: iface}, output_keys) return ip