def do_host_lldp_agent_list(cc, args):
    """List host lldp agents."""
    ihost = ihost_utils._find_ihost(cc, args.hostnameorid)
    agent_list = []
    agents = cc.lldp_agent.list(ihost.uuid)

    field_labels = [
        'uuid', 'local_port', 'status', 'chassis_id', 'port_id', 'system_name',
        'system_description'
    ]
    fields = [
        'uuid', 'port_name', 'status', 'chassis_id', 'port_identifier',
        'system_name', 'system_description'
    ]
    formatters = {
        'system_name': _lldp_system_name_formatter,
        'system_description': _lldp_system_description_formatter,
        'port_description': _lldp_port_description_formatter
    }

    utils.print_list(agents,
                     fields,
                     field_labels,
                     sortby=1,
                     formatters=formatters)
def do_datanetwork_list(cc, args):
    """List datanetworks."""

    labels = ['uuid', 'name', 'network_type', 'mtu']
    fields = ['uuid', 'name', 'network_type', 'mtu']
    datanetworks = cc.datanetwork.list()
    utils.print_list(datanetworks, fields, labels, sortby=1)
示例#3
0
def do_load_list(cc, args):
    """List all loads."""
    loads = cc.load.list()

    field_labels = ['id', 'state', 'software_version']
    fields = ['id', 'state', 'software_version']
    utils.print_list(loads, fields, field_labels, sortby=0)
示例#4
0
def do_helm_override_list(cc, args):
    """List system helm charts."""
    app = app_utils._find_app(cc, args.app)
    charts = cc.helm.list_charts(app.name)
    utils.print_list(charts, ['name', 'namespaces'],
                     ['chart name', 'overrides namespaces'],
                     sortby=0)
def do_alarm_list(cc, args={}):
    '''List all active alarms.'''

    includeUUID = args.uuid
    include_suppress = False

    if args.include_suppress:
        include_suppress = True

    include_mgmt_affecting = False
    if args.mgmt_affecting:
        include_mgmt_affecting = True

    faults = cc.ialarm.list(q=options.cli_to_array(args.query), include_suppress=include_suppress)
    for f in faults:
        cgts_utils.normalize_field_data(f, ['entity_type_id', 'entity_instance_id',
                                            'reason_text', 'proposed_repair_action'])

    # omit action initially to keep output width sane
    # (can switch over to vertical formatting when available from CLIFF)

    def hightlightAlarmId(alarm):
        suppressed = hasattr(alarm,"suppression_status") and alarm.suppression_status=="suppressed"
        if suppressed:
            value = "S({})".format(alarm.alarm_id)
        else:
            value = alarm.alarm_id
        return value

    field_labels = ['Alarm ID', 'Reason Text', 'Entity ID', 'Severity', 'Time Stamp']
    fields = ['alarm_id', 'reason_text', 'entity_instance_id', 'severity', 'timestamp']
    # for best results, ensure width ratios add up to 1 (=100%)
    formatterSpec =  {
                        "alarm_id"                   : {"formatter" : hightlightAlarmId, "wrapperFormatter": .08},
                        "reason_text"                : .54,
                        "entity_instance_id"         : .15,
                        "severity"                   : .10,
                        "timestamp"                  : .10,
                      }

    if includeUUID:
        field_labels.insert(0, 'UUID')
        fields.insert(0, 'uuid')
        # for best results, ensure width ratios add up to 1 (=100%)
        formatterSpec['uuid'] = wrapping_formatters.UUID_MIN_LENGTH
        formatterSpec['reason_text'] -= .05
        formatterSpec['entity_instance_id'] -= .02

    if include_mgmt_affecting:
        field_labels.insert(4, 'Management Affecting')
        fields.insert(4, 'mgmt_affecting')
        # for best results, ensure width ratios add up to 1 (=100%)
        formatterSpec['mgmt_affecting'] = .08
        formatterSpec['reason_text'] -= .05
        formatterSpec['severity'] -= .03

    formatters = wrapping_formatters.build_wrapping_formatters(faults, fields, field_labels, formatterSpec)

    cgts_utils.print_list(faults, fields, field_labels, formatters=formatters,
                          sortby=fields.index('timestamp'), reversesort=True)
示例#6
0
def do_host_lvg_list(cc, args):
    """List Local Volume Groups."""
    ihost = ihost_utils._find_ihost(cc, args.hostnameorid)

    ilvgs = cc.ilvg.list(ihost.uuid)

    # Adjust state to be more user friendly
    for lvg in ilvgs:
        lvg.vg_state = _adjust_state_data(lvg.lvm_vg_name, lvg.vg_state)

        # convert size from Byte to GiB
        lvg.lvm_vg_avail_size = \
            utils.size_unit_conversion(lvg.lvm_vg_avail_size, 3)

        # convert size from Byte to GiB
        lvg.lvm_vg_size = \
            utils.size_unit_conversion(lvg.lvm_vg_size, 3)

    field_labels = [
        'UUID', 'LVG Name', 'State', 'Access', 'Total Size (GiB)',
        'Avail Size (GiB)', 'Current PVs', 'Current LVs'
    ]
    fields = [
        'uuid', 'lvm_vg_name', 'vg_state', 'lvm_vg_access', 'lvm_vg_size',
        'lvm_vg_avail_size', 'lvm_cur_pv', 'lvm_cur_lv'
    ]
    utils.print_list(ilvgs, fields, field_labels, sortby=0)
示例#7
0
def _print_controller_config_show(ihosts):
    fields = [
        'id', 'hostname', 'personality', 'administrative', 'operational',
        'availability', 'config_status'
    ]
    field_labels = list(fields)
    utils.print_list(ihosts, fields, field_labels, sortby=0)
def do_kube_host_upgrade_list(cc, args):
    """List kubernetes upgrade info for hosts."""

    # Get the list of hosts
    ihosts = cc.ihost.list()
    # Get the kubernetes host upgrades
    kube_host_upgrade_details = _get_kube_host_upgrade_details(cc)

    for host in ihosts:
        host.target_version = \
            kube_host_upgrade_details[host.id]['target_version']
        host.control_plane_version = \
            kube_host_upgrade_details[host.id]['control_plane_version']
        host.kubelet_version = \
            kube_host_upgrade_details[host.id]['kubelet_version']
        host.status = \
            kube_host_upgrade_details[host.id]['status']

    field_labels = [
        'id', 'hostname', 'personality', 'target_version',
        'control_plane_version', 'kubelet_version', 'status'
    ]
    fields = [
        'id', 'hostname', 'personality', 'target_version',
        'control_plane_version', 'kubelet_version', 'status'
    ]
    utils.print_list(ihosts, fields, field_labels, sortby=0)
def do_host_apply_ifprofile(cc, args):
    """Apply an interface profile to a host."""

    # Assemble patch
    profile = iprofile_utils._find_iprofile(cc, args.profilenameoruuid)
    patch = _prepare_profile_patch(profile.uuid)

    # Send patch
    host = ihost_utils._find_ihost(cc, args.hostnameorid)
    try:
        host = cc.ihost.update(host.id, patch)
    except exc.HTTPNotFound:
        raise exc.CommandError('host not found: %s' % args.hostnameorid)

    # Echo list of new host interfaces
    iinterfaces = cc.iinterface.list(host.uuid)
    for i in iinterfaces:
        iinterface_utils._get_ports(cc, host, i)
    field_labels = [
        'uuid', 'name', 'network type', 'type', 'vlan id', 'ports', 'uses',
        'used by', 'mtu', 'provider networks'
    ]
    fields = [
        'uuid', 'ifname', 'networktype', 'iftype', 'vlan_id', 'ports', 'uses',
        'used_by', 'imtu', 'providernetworks'
    ]
    utils.print_list(iinterfaces, fields, field_labels, sortby=0)
示例#10
0
def do_host_memory_list(cc, args):
    """List memory nodes."""

    ihost = ihost_utils._find_ihost(cc, args.hostnameorid)

    inodes = cc.inode.list(ihost.uuid)
    imemorys = cc.imemory.list(ihost.uuid)
    for m in imemorys:
        for n in inodes:
            if m.inode_uuid == n.uuid:
                m.numa_node = n.numa_node
                break

    fields = [
        'numa_node', 'memtotal_mib', 'platform_reserved_mib', 'memavail_mib',
        'hugepages_configured', 'vswitch_hugepages_size_mib',
        'vswitch_hugepages_nr', 'vswitch_hugepages_avail',
        'vswitch_hugepages_reqd', 'vm_hugepages_nr_4K', 'vm_hugepages_nr_2M',
        'vm_hugepages_avail_2M', 'vm_hugepages_nr_2M_pending',
        'vm_hugepages_nr_1G', 'vm_hugepages_avail_1G',
        'vm_hugepages_nr_1G_pending', 'vm_hugepages_use_1G'
    ]

    field_labels = [
        'processor', 'mem_total(MiB)', 'mem_platform(MiB)', 'mem_avail(MiB)',
        'hugepages(hp)_configured', 'vs_hp_size(MiB)', 'vs_hp_total',
        'vs_hp_avail', 'vs_hp_reqd', 'vm_total_4K', 'vm_hp_total_2M',
        'vm_hp_avail_2M', 'vm_hp_pending_2M', 'vm_hp_total_1G',
        'vm_hp_avail_1G', 'vm_hp_pending_1G', 'vm_hp_use_1G'
    ]

    utils.print_list(imemorys, fields, field_labels, sortby=1)
示例#11
0
def do_host_apply_cpuprofile(cc, args):
    """Apply a cpu profile to a host."""
    # Assemble patch
    profile = iprofile_utils._find_iprofile(cc, args.profilenameoruuid)
    patch = _prepare_profile_patch(profile.uuid)

    # Send patch
    host = ihost_utils._find_ihost(cc, args.hostnameorid)
    try:
        host = cc.ihost.update(host.id, patch)
    except exc.HTTPNotFound:
        raise exc.CommandError('host not found: %s' % args.hostnameorid)

    # Echo list of new host cpus
    icpus = cc.icpu.list(host.uuid)
    field_labels = [
        'uuid', 'log_core', 'processor', 'phy_core', 'thread',
        'processor_model', 'assigned_function'
    ]
    fields = [
        'uuid', 'cpu', 'numa_node', 'core', 'thread', 'cpu_model',
        'allocated_function'
    ]
    utils.print_list(icpus,
                     fields,
                     field_labels,
                     sortby=1,
                     formatters={
                         'allocated_function':
                         icpu_utils._cpu_function_tuple_formatter
                     })
def do_host_port_list(cc, args):
    """List host ports."""

    from cgtsclient.common import wrapping_formatters

    terminal_width = utils.get_terminal_size()[0]

    ihost = ihost_utils._find_ihost(cc, args.hostnameorid)

    ports = cc.port.list(ihost.uuid)

    field_labels = ['uuid', 'name', 'type', 'pci address', 'device',
                    'processor', 'accelerated', 'device type']
    fields = ['uuid', 'name', 'type', 'pciaddr', 'dev_id', 'numa_node',
              'dpdksupport', 'pdevice']

    format_spec = wrapping_formatters.build_best_guess_formatters_using_average_widths(ports, fields, field_labels,
                                                                                       no_wrap_fields=['pciaddr'])
    # best-guess formatter does not make a good guess for
    # proper width of pdevice until terminal is > 155
    # We override that width here.
    pdevice_width = None
    if terminal_width <= 130:
        pdevice_width = .1
    elif 131 >= terminal_width <= 150:
        pdevice_width = .13
    elif 151 >= terminal_width <= 155:
        pdevice_width = .14

    if pdevice_width and format_spec["pdevice"] > pdevice_width:
        format_spec["pdevice"] = pdevice_width

    formatters = wrapping_formatters.build_wrapping_formatters(ports, fields, field_labels, format_spec)

    utils.print_list(ports, fields, field_labels, formatters=formatters, sortby=1)
示例#13
0
def do_host_apply_memprofile(cc, args):
    """Apply a memory profile to a host."""
    # Assemble patch
    profile = iprofile_utils._find_iprofile(cc, args.profilenameoruuid)
    patch = _prepare_profile_patch(profile.uuid)

    # Send patch
    host = ihost_utils._find_ihost(cc, args.hostnameorid)
    try:
        host = cc.ihost.update(host.id, patch)
    except exc.HTTPNotFound:
        raise exc.CommandError('host not found: %s' % args.hostnameorid)

    # Echo list of new host memory
    imemory = cc.imemory.list(host.uuid)
    field_labels = [
        'uuid', 'vm_hugepages_1G', 'vm_hugepages_2M',
        'vm_hugepages_2M_pending', 'vm_hugepages_1G_pending',
        'vswitch_hugepages_nr', 'vswitch_hugepages_size_reqd',
        'vswitch_hugepages_size_mib'
    ]

    fields = [
        'uuid', 'vm_hugepages_nr_1G', 'vm_hugepages_nr_2M',
        'vm_hugepages_nr_2M_pending', 'vm_hugepages_nr_1G_pending',
        'vswitch_hugepages_nr', 'vswitch_hugepages_reqd',
        'vswitch_hugepages_size_mib'
    ]
    utils.print_list(imemory, fields, field_labels, sortby=0)
示例#14
0
def _print_controllerfs_list(cc):
    controller_fs_list = cc.controller_fs.list()

    field_labels = ['UUID', 'FS Name', 'Size in GiB', 'Logical Volume',
                    'Replicated', 'State']
    fields = ['uuid', 'name', 'size', 'logical_volume', 'replicated', 'state']
    utils.print_list(controller_fs_list, fields, field_labels, sortby=1)
示例#15
0
def do_cpuprofile_list(cc, args):
    """List cpu profiles."""
    profiles = cc.iprofile.list_cpu_profiles()
    for profile in profiles:
        icpu_utils.restructure_host_cpu_data(profile)
        profile.platform_cores = get_core_list_str(
            profile, icpu_utils.PLATFORM_CPU_TYPE)
        profile.vswitch_cores = get_core_list_str(profile,
                                                  icpu_utils.VSWITCH_CPU_TYPE)
        profile.shared_cores = get_core_list_str(profile,
                                                 icpu_utils.SHARED_CPU_TYPE)
        profile.application_cores = get_core_list_str(
            profile, icpu_utils.APPLICATION_CPU_TYPE)
        profile.isolated_cores = get_core_list_str(
            profile, icpu_utils.ISOLATED_CPU_TYPE)

    field_labels = [
        'uuid', 'name', 'processors', 'phy cores per proc', 'hyperthreading',
        'platform cores', 'vswitch cores', 'shared cores', 'application cores',
        'application-isolated cores'
    ]
    fields = [
        'uuid', 'profilename', 'sockets', 'physical_cores', 'hyperthreading',
        'platform_cores', 'vswitch_cores', 'shared_cores', 'application_cores',
        'isolated_cores'
    ]
    utils.print_list(profiles, fields, field_labels, sortby=0)
示例#16
0
def do_host_if_list(cc, args):
    """List interfaces."""

    iinterfaces = cc.iinterface.list(args.hostnameorid)
    ihost = ihost_utils._find_ihost(cc, args.hostnameorid)
    for i in iinterfaces[:]:
        iinterface_utils._get_ports(cc, ihost, i)
        if not args.all:
            if i.ifclass is None and i.used_by == []:
                iinterfaces.remove(i)
        attr_str = "MTU=%s" % i.imtu
        if i.iftype == 'ae':
            attr_str = "%s,AE_MODE=%s" % (attr_str, i.aemode)
            if i.aemode in ['balanced', '802.3ad']:
                attr_str = "%s,AE_XMIT_POLICY=%s" % (
                    attr_str, i.txhashpolicy)
        if i.ifclass and i.ifclass == 'data':
            if False in i.dpdksupport:
                attr_str = "%s,accelerated=False" % attr_str
            else:
                attr_str = "%s,accelerated=True" % attr_str
        setattr(i, 'attrs', attr_str)

    field_labels = ['uuid', 'name', 'class', 'type', 'vlan id', 'ports',
                    'uses i/f', 'used by i/f', 'attributes']
    fields = ['uuid', 'ifname', 'ifclass', 'iftype', 'vlan_id', 'ports',
              'uses', 'used_by', 'attrs']
    utils.print_list(
        iinterfaces, fields, field_labels, sortby=0, no_wrap_fields=['ports'])
示例#17
0
def donot_config_ptp_list(cc, args):
    """List ptps."""

    ptps = cc.ptp.list()

    field_labels = ['uuid', 'mode', 'transport', 'mechanism']
    fields = ['uuid', 'mode', 'transport', 'mechanism']
    utils.print_list(ptps, fields, field_labels, sortby=1)
示例#18
0
def do_host_list(cc, args):
    """List hosts."""
    ihosts = cc.ihost.list()
    field_labels = ['id', 'hostname', 'personality',
                    'administrative', 'operational', 'availability']
    fields = ['id', 'hostname', 'personality',
              'administrative', 'operational', 'availability']
    utils.print_list(ihosts, fields, field_labels, sortby=0)
def donot_dns_list(cc, args):
    """List dnss."""

    idnss = cc.idns.list()

    field_labels = ['uuid', 'nameservers']
    fields = ['uuid', 'nameservers']
    utils.print_list(idnss, fields, field_labels, sortby=1)
def do_snmp_trapdest_list(cc, args):
    """List SNMP trap destinations."""
    itrapdest = cc.itrapdest.list()
    field_labels = [
        'IP Address', 'SNMP Community', 'Port', 'Type', 'Transport'
    ]
    fields = ['ip_address', 'community', 'port', 'type', 'transport']
    utils.print_list(itrapdest, fields, field_labels, sortby=1)
示例#21
0
def do_host_addr_list(cc, args):
    """List IP addresses on host."""
    ihost = ihost_utils._find_ihost(cc, args.hostnameorid)
    addresses = cc.address.list_by_host(ihost.uuid)

    field_labels = ['uuid', 'ifname', 'address', 'prefix']
    fields = ['uuid', 'ifname', 'address', 'prefix']
    utils.print_list(addresses, fields, field_labels, sortby=1)
示例#22
0
def do_host_upgrade_list(cc, args):
    """List software upgrade info for hosts."""
    ihosts = cc.ihost.list()
    field_labels = [
        'id', 'hostname', 'personality', 'running_release', 'target_release'
    ]
    fields = ['id', 'hostname', 'personality', 'software_load', 'target_load']
    utils.print_list(ihosts, fields, field_labels, sortby=0)
示例#23
0
def donot_config_ntp_list(cc, args):
    """List ntps."""

    intps = cc.intp.list()

    field_labels = ['uuid', 'ntpservers']
    fields = ['uuid', 'ntpservers']
    utils.print_list(intps, fields, field_labels, sortby=1)
示例#24
0
def do_application_list(cc, args):
    """List all containerized applications"""
    apps = cc.app.list()
    labels = [
        'application', 'manifest name', 'manifest file', 'status', 'progress'
    ]
    fields = ['name', 'manifest_name', 'manifest_file', 'status', 'progress']
    utils.print_list(apps, fields, labels, sortby=0)
示例#25
0
def do_host_route_list(cc, args):
    """List IP routes on host."""
    ihost = ihost_utils._find_ihost(cc, args.hostnameorid)
    routes = cc.route.list_by_host(ihost.uuid)

    field_labels = ['uuid', 'ifname', 'network', 'prefix', 'gateway', 'metric']
    fields = ['uuid', 'ifname', 'network', 'prefix', 'gateway', 'metric']
    utils.print_list(routes, fields, field_labels, sortby=1)
示例#26
0
def do_addrpool_list(cc, args):
    """List IP address pools."""
    address_pools = cc.address_pool.list()

    fields = ['uuid', 'name', 'network', 'prefix', 'order', 'ranges',
              'floating_address', 'controller0_address', 'controller1_address',
              'gateway_address']
    utils.print_list(address_pools, fields, fields, sortby=1,
                     formatters={'ranges': _address_range_pool_formatter})
示例#27
0
def do_host_node_list(cc, args):
    """List nodes."""
    ihost = ihost_utils._find_ihost(cc, args.hostnameorid)

    inodes = cc.inode.list(ihost.uuid)

    field_labels = ['uuid', 'numa_node', 'capabilities']
    fields = ['uuid', 'numa_node', 'capabilities']
    utils.print_list(inodes, fields, field_labels, sortby=0)
示例#28
0
def do_host_label_list(cc, args):
    """List kubernetes labels assigned to a host."""
    ihost = ihost_utils._find_ihost(cc, args.hostnameorid)
    host_label = cc.label.list(ihost.uuid)
    for i in host_label[:]:
        setattr(i, 'hostname', ihost.hostname)
    field_labels = ['hostname', 'label key', 'label value']
    fields = ['hostname', 'label_key', 'label_value']
    utils.print_list(host_label, fields, field_labels, sortby=1)
示例#29
0
def donot_config_remotelogging_list(cc, args):
    """List remoteloggings."""

    remoteloggings = cc.remotelogging.list()
    field_labels = [
        'IP Address', 'Enabled', 'Transport', 'Port', 'TLS key file'
    ]
    fields = ['ip_address', 'enabled', 'transport', 'port', 'key_file']
    utils.print_list(remoteloggings, fields, field_labels, sortby=1)
示例#30
0
def do_storage_tier_list(cc, args):
    """List storage tiers."""

    cluster = cluster_utils._find_cluster(cc, args.cluster_or_uuid)
    tiers = cc.storage_tier.list(cluster.uuid)

    fields = ['uuid', 'name', 'status', 'backend_uuid']
    labels = ['uuid', 'name', 'status', 'backend_using']

    utils.print_list(tiers, fields, labels, sortby=1)