def list(gandi, state, id, limit): """List virtual machines.""" options = {"items_per_page": limit} if state: options["state"] = state output_keys = ["hostname", "state"] if id: output_keys.append("id") result = gandi.iaas.list(options) for num, vm in enumerate(result): if num: gandi.separator_line() output_vm(gandi, vm, [], output_keys) return result
def info(gandi, resource, stat): """Display information about a virtual machine. Resource can be a Hostname or an ID """ output_keys = [ 'hostname', 'state', 'cores', 'memory', 'console', 'datacenter', 'ip' ] justify = 14 if stat is True: sampler = {'unit': 'hours', 'value': 1, 'function': 'max'} time_range = 3600 * 24 query_vif = 'vif.bytes.all' query_vbd = 'vbd.bytes.all' resource = sorted(tuple(set(resource))) datacenters = gandi.datacenter.list() ret = [] for num, item in enumerate(resource): if num: gandi.separator_line() vm = gandi.iaas.info(item) output_vm(gandi, vm, datacenters, output_keys, justify) ret.append(vm) for num, disk in enumerate(vm['disks']): gandi.echo('') disk_out_keys = ['label', 'kernel_version', 'name', 'size'] output_image(gandi, disk, datacenters, disk_out_keys, justify, warn_deprecated=False) if stat is True: metrics_vif = gandi.metric.query(vm['id'], time_range, query_vif, 'vm', sampler) metrics_vbd = gandi.metric.query(vm['id'], time_range, query_vbd, 'vm', sampler) gandi.echo('') gandi.echo('vm network stats') output_metric(gandi, metrics_vif, 'direction', justify) gandi.echo('disk network stats') output_metric(gandi, metrics_vbd, 'direction', justify) return ret
def info(gandi, resource): """Display information about a virtual machine. Resource can be a Hostname or an ID """ output_keys = ['hostname', 'state', 'cores', 'memory', 'console', 'datacenter', 'ip'] datacenters = gandi.datacenter.list() ret = [] for item in resource: vm = gandi.iaas.info(item) output_vm(gandi, vm, datacenters, output_keys, 14) ret.append(vm) for disk in vm['disks']: disk_out_keys = ['label', 'kernel_version', 'name', 'size'] output_image(gandi, disk, datacenters, disk_out_keys, 14) return ret
def list(gandi, state, id, limit): """List virtual machines.""" options = { 'items_per_page': limit, } if state: options['state'] = state output_keys = ['hostname', 'state'] if id: output_keys.append('id') datacenters = gandi.datacenter.list() result = gandi.iaas.list(options) for vm in result: gandi.separator_line() output_vm(gandi, vm, datacenters, output_keys) return result
def list(gandi, state, id, limit): """List virtual machines.""" options = { 'items_per_page': limit, } if state: options['state'] = state output_keys = ['hostname', 'state'] if id: output_keys.append('id') result = gandi.iaas.list(options) for num, vm in enumerate(result): if num: gandi.separator_line() output_vm(gandi, vm, [], output_keys) return result
def info(gandi, resource): """Display information about a virtual machine. Resource can be a Hostname or an ID """ output_keys = [ 'hostname', 'state', 'cores', 'memory', 'console', 'datacenter', 'ip' ] datacenters = gandi.datacenter.list() ret = [] for item in resource: vm = gandi.iaas.info(item) output_vm(gandi, vm, datacenters, output_keys, 14) ret.append(vm) for disk in vm['disks']: disk_out_keys = ['label', 'kernel_version', 'name', 'size'] output_image(gandi, disk, datacenters, disk_out_keys, 14) return ret
def info(gandi, resource, stat): """Display information about a virtual machine. Resource can be a Hostname or an ID """ output_keys = ['hostname', 'state', 'cores', 'memory', 'console', 'datacenter', 'ip'] justify = 14 if stat is True: sampler = {'unit': 'hours', 'value': 1, 'function': 'max'} time_range = 3600 * 24 query_vif = 'vif.bytes.all' query_vbd = 'vbd.bytes.all' resource = sorted(tuple(set(resource))) datacenters = gandi.datacenter.list() ret = [] for num, item in enumerate(resource): if num: gandi.separator_line() vm = gandi.iaas.info(item) output_vm(gandi, vm, datacenters, output_keys, justify) ret.append(vm) for disk in vm['disks']: gandi.echo('') disk_out_keys = ['label', 'kernel_version', 'name', 'size'] output_image(gandi, disk, datacenters, disk_out_keys, justify, warn_deprecated=False) if stat is True: metrics_vif = gandi.metric.query(vm['id'], time_range, query_vif, 'vm', sampler) metrics_vbd = gandi.metric.query(vm['id'], time_range, query_vbd, 'vm', sampler) gandi.echo('') gandi.echo('vm network stats') output_metric(gandi, metrics_vif, 'direction', justify) gandi.echo('disk network stats') output_metric(gandi, metrics_vbd, 'direction', justify) return ret
def info(gandi, resource): """Display information about a virtual machine. Resource can be a Hostname or an ID """ output_keys = ["hostname", "state", "cores", "memory", "console", "datacenter", "ip"] resource = tuple(set(resource)) datacenters = gandi.datacenter.list() ret = [] for num, item in enumerate(resource): if num: gandi.separator_line() vm = gandi.iaas.info(item) output_vm(gandi, vm, datacenters, output_keys, 14) ret.append(vm) for num, disk in enumerate(vm["disks"]): gandi.echo("") disk_out_keys = ["label", "kernel_version", "name", "size"] output_image(gandi, disk, datacenters, disk_out_keys, 14) return ret
def info(gandi, resource): """Display information about a virtual machine. Resource can be a Hostname or an ID """ output_keys = ['hostname', 'state', 'cores', 'memory', 'console', 'datacenter', 'ip'] resource = tuple(set(resource)) datacenters = gandi.datacenter.list() ret = [] for num, item in enumerate(resource): if num: gandi.separator_line() vm = gandi.iaas.info(item) output_vm(gandi, vm, datacenters, output_keys, 14) ret.append(vm) for num, disk in enumerate(vm['disks']): gandi.echo('') disk_out_keys = ['label', 'kernel_version', 'name', 'size'] output_image(gandi, disk, datacenters, disk_out_keys, 14) return ret
def list(gandi, state, id, limit, datacenter, fmt): """List virtual machines.""" options = { 'items_per_page': limit, } if state: options['state'] = state if datacenter: options['datacenter_id'] = gandi.datacenter.usable_id(datacenter) output_keys = ['hostname', 'state'] if id: output_keys.append('id') result = gandi.iaas.list(options) if fmt: ## Unquoting '\' to allow to interpret "\n" provided on the command lie fmt = fmt.decode('string_escape') try: click.echo("".join(fmt % dct for dct in result), nl=False) except KeyError as e: click.echo("Key error while using your custom format string: %s" % (str(e), ), err=True) if len(result): click.echo("These are the available keys:\n- %s" % "\n- ".join(sorted(result[0].keys())), err=True) return except ValueError as e: click.echo("Error using your format: %s" % (str(e), ), err=False) return else: for num, vm in enumerate(result): if num: gandi.separator_line() output_vm(gandi, vm, [], output_keys) return result
def info(gandi, resource): """Display information about a virtual machine. Resource can be a Hostname or an ID """ output_keys = [ 'hostname', 'state', 'cores', 'memory', 'console', 'datacenter', 'ip' ] resource = tuple(set(resource)) datacenters = gandi.datacenter.list() ret = [] for num, item in enumerate(resource): if num: gandi.separator_line() vm = gandi.iaas.info(item) output_vm(gandi, vm, datacenters, output_keys, 14) ret.append(vm) for num, disk in enumerate(vm['disks']): gandi.echo('') disk_out_keys = ['label', 'kernel_version', 'name', 'size'] output_image(gandi, disk, datacenters, disk_out_keys, 14) return ret