Beispiel #1
0
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
Beispiel #2
0
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
Beispiel #3
0
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
Beispiel #4
0
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
Beispiel #5
0
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
Beispiel #6
0
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
Beispiel #7
0
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
Beispiel #8
0
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
Beispiel #9
0
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
Beispiel #10
0
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
Beispiel #11
0
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
Beispiel #12
0
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
Beispiel #13
0
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