예제 #1
0
def do_chassis_list(cc, args):
    """List the chassis."""
    if args.detail:
        fields = res_fields.CHASSIS_DETAILED_RESOURCE.fields
        field_labels = res_fields.CHASSIS_DETAILED_RESOURCE.labels
        sort_fields = res_fields.CHASSIS_DETAILED_RESOURCE.sort_fields
        sort_field_labels = res_fields.CHASSIS_DETAILED_RESOURCE.sort_labels
    elif args.fields:
        utils.check_for_invalid_fields(
            args.fields[0], res_fields.CHASSIS_DETAILED_RESOURCE.fields)
        resource = res_fields.Resource(args.fields[0])
        fields = resource.fields
        field_labels = resource.labels
        sort_fields = res_fields.CHASSIS_DETAILED_RESOURCE.sort_fields
        sort_field_labels = res_fields.CHASSIS_DETAILED_RESOURCE.sort_labels
    else:
        fields = res_fields.CHASSIS_RESOURCE.fields
        field_labels = res_fields.CHASSIS_RESOURCE.labels
        sort_fields = fields
        sort_field_labels = field_labels

    params = utils.common_params_for_list(args, sort_fields,
                                          sort_field_labels)

    chassis = cc.chassis.list(**params)
    cliutils.print_list(chassis, fields,
                        field_labels=field_labels,
                        sortby_index=None)
def do_node_port_list(cc, args):
    """List the ports associated with a node."""
    if args.detail:
        fields = res_fields.PORT_DETAILED_RESOURCE.fields
        field_labels = res_fields.PORT_DETAILED_RESOURCE.labels
    elif args.fields:
        utils.check_for_invalid_fields(
            args.fields[0], res_fields.PORT_DETAILED_RESOURCE.fields)
        resource = res_fields.Resource(args.fields[0])
        fields = resource.fields
        field_labels = resource.labels
    else:
        fields = res_fields.PORT_RESOURCE.fields
        field_labels = res_fields.PORT_RESOURCE.labels

    sort_fields = res_fields.PORT_DETAILED_RESOURCE.sort_fields
    sort_field_labels = res_fields.PORT_DETAILED_RESOURCE.sort_labels

    params = utils.common_params_for_list(args, sort_fields,
                                          sort_field_labels)

    ports = cc.node.list_ports(args.node, **params)
    cliutils.print_list(ports, fields,
                        field_labels=field_labels,
                        sortby_index=None)
def do_node_list(cc, args):
    """List the nodes which are registered with the Ironic service."""
    params = {}
    if args.associated is not None:
        params['associated'] = utils.bool_argument_value("--associated",
                                                         args.associated)
    if args.maintenance is not None:
        params['maintenance'] = utils.bool_argument_value("--maintenance",
                                                          args.maintenance)
    if args.provision_state is not None:
        params['provision_state'] = args.provision_state

    if args.detail:
        fields = res_fields.NODE_DETAILED_RESOURCE.fields
        field_labels = res_fields.NODE_DETAILED_RESOURCE.labels
    elif args.fields:
        utils.check_for_invalid_fields(
            args.fields[0], res_fields.NODE_DETAILED_RESOURCE.fields)
        resource = res_fields.Resource(args.fields[0])
        fields = resource.fields
        field_labels = resource.labels
    else:
        fields = res_fields.NODE_RESOURCE.fields
        field_labels = res_fields.NODE_RESOURCE.labels

    sort_fields = res_fields.NODE_DETAILED_RESOURCE.sort_fields
    sort_field_labels = res_fields.NODE_DETAILED_RESOURCE.sort_labels

    params.update(utils.common_params_for_list(args,
                                               sort_fields,
                                               sort_field_labels))
    nodes = cc.node.list(**params)
    cliutils.print_list(nodes, fields,
                        field_labels=field_labels,
                        sortby_index=None)
예제 #4
0
def do_portgroup_list(cc, args):
    """List the portgroups."""
    params = {}

    if args.address is not None:
        params['address'] = args.address
    if args.node is not None:
        params['node'] = args.node

    if args.detail:
        fields = res_fields.PORTGROUP_DETAILED_RESOURCE.fields
        field_labels = res_fields.PORTGROUP_DETAILED_RESOURCE.labels
    elif args.fields:
        utils.check_for_invalid_fields(
            args.fields[0], res_fields.PORTGROUP_DETAILED_RESOURCE.fields)
        resource = res_fields.Resource(args.fields[0])
        fields = resource.fields
        field_labels = resource.labels
    else:
        fields = res_fields.PORTGROUP_RESOURCE.fields
        field_labels = res_fields.PORTGROUP_RESOURCE.labels

    sort_fields = res_fields.PORTGROUP_DETAILED_RESOURCE.sort_fields
    sort_field_labels = res_fields.PORTGROUP_DETAILED_RESOURCE.sort_labels

    params.update(
        utils.common_params_for_list(args, sort_fields, sort_field_labels))

    portgroup = cc.portgroup.list(**params)
    cliutils.print_list(portgroup,
                        fields,
                        field_labels=field_labels,
                        sortby_index=None,
                        json_flag=args.json)
예제 #5
0
def do_node_port_list(cc, args):
    """List the ports associated with a node."""
    if args.detail:
        fields = res_fields.PORT_DETAILED_RESOURCE.fields
        field_labels = res_fields.PORT_DETAILED_RESOURCE.labels
    elif args.fields:
        utils.check_for_invalid_fields(
            args.fields[0], res_fields.PORT_DETAILED_RESOURCE.fields)
        resource = res_fields.Resource(args.fields[0])
        fields = resource.fields
        field_labels = resource.labels
    else:
        fields = res_fields.PORT_RESOURCE.fields
        field_labels = res_fields.PORT_RESOURCE.labels

    sort_fields = res_fields.PORT_DETAILED_RESOURCE.sort_fields
    sort_field_labels = res_fields.PORT_DETAILED_RESOURCE.sort_labels

    params = utils.common_params_for_list(args, sort_fields,
                                          sort_field_labels)

    ports = cc.node.list_ports(args.node, **params)

    cliutils.print_list(ports, fields,
                        field_labels=field_labels,
                        sortby_index=None,
                        json_flag=args.json)
예제 #6
0
def do_chassis_list(cc, args):
    """List the chassis."""
    if args.detail:
        fields = res_fields.CHASSIS_DETAILED_RESOURCE.fields
        field_labels = res_fields.CHASSIS_DETAILED_RESOURCE.labels
    elif args.fields:
        utils.check_for_invalid_fields(
            args.fields[0], res_fields.CHASSIS_DETAILED_RESOURCE.fields)
        resource = res_fields.Resource(args.fields[0])
        fields = resource.fields
        field_labels = resource.labels
    else:
        fields = res_fields.CHASSIS_RESOURCE.fields
        field_labels = res_fields.CHASSIS_RESOURCE.labels

    sort_fields = res_fields.CHASSIS_DETAILED_RESOURCE.sort_fields
    sort_field_labels = res_fields.CHASSIS_DETAILED_RESOURCE.sort_labels

    params = utils.common_params_for_list(args, sort_fields, sort_field_labels)

    chassis = cc.chassis.list(**params)
    cliutils.print_list(chassis,
                        fields,
                        field_labels=field_labels,
                        sortby_index=None)
def do_volume_target_list(cc, args):
    """List the volume targets."""
    params = {}

    if args.node is not None:
        params['node'] = args.node

    if args.detail:
        fields = res_fields.VOLUME_TARGET_DETAILED_RESOURCE.fields
        field_labels = res_fields.VOLUME_TARGET_DETAILED_RESOURCE.labels
    elif args.fields:
        utils.check_for_invalid_fields(
            args.fields[0],
            res_fields.VOLUME_TARGET_DETAILED_RESOURCE.fields)
        resource = res_fields.Resource(args.fields[0])
        fields = resource.fields
        field_labels = resource.labels
    else:
        fields = res_fields.VOLUME_TARGET_RESOURCE.fields
        field_labels = res_fields.VOLUME_TARGET_RESOURCE.labels

    sort_fields = res_fields.VOLUME_TARGET_DETAILED_RESOURCE.sort_fields
    sort_field_labels = (
        res_fields.VOLUME_TARGET_DETAILED_RESOURCE.sort_labels)

    params.update(utils.common_params_for_list(args,
                                               sort_fields,
                                               sort_field_labels))

    volume_target = cc.volume_target.list(**params)
    cliutils.print_list(volume_target, fields, field_labels=field_labels,
                        sortby_index=None, json_flag=args.json)
예제 #8
0
def do_port_list(cc, args):
    """List the ports."""
    params = {}

    if args.address is not None:
        params['address'] = args.address

    if args.detail:
        fields = res_fields.PORT_DETAILED_RESOURCE.fields
        field_labels = res_fields.PORT_DETAILED_RESOURCE.labels
    elif args.fields:
        utils.check_for_invalid_fields(
            args.fields[0], res_fields.PORT_DETAILED_RESOURCE.fields)
        resource = res_fields.Resource(args.fields[0])
        fields = resource.fields
        field_labels = resource.labels
    else:
        fields = res_fields.PORT_RESOURCE.fields
        field_labels = res_fields.PORT_RESOURCE.labels

    sort_fields = res_fields.PORT_DETAILED_RESOURCE.sort_fields
    sort_field_labels = res_fields.PORT_DETAILED_RESOURCE.sort_labels

    params.update(utils.common_params_for_list(args,
                                               sort_fields,
                                               sort_field_labels))

    port = cc.port.list(**params)
    cliutils.print_list(port, fields,
                        field_labels=field_labels,
                        sortby_index=None,
                        json_flag=args.json)
def do_volume_target_list(cc, args):
    """List the volume targets."""
    params = {}

    if args.node is not None:
        params['node'] = args.node

    if args.detail:
        fields = res_fields.VOLUME_TARGET_DETAILED_RESOURCE.fields
        field_labels = res_fields.VOLUME_TARGET_DETAILED_RESOURCE.labels
    elif args.fields:
        utils.check_for_invalid_fields(
            args.fields[0], res_fields.VOLUME_TARGET_DETAILED_RESOURCE.fields)
        resource = res_fields.Resource(args.fields[0])
        fields = resource.fields
        field_labels = resource.labels
    else:
        fields = res_fields.VOLUME_TARGET_RESOURCE.fields
        field_labels = res_fields.VOLUME_TARGET_RESOURCE.labels

    sort_fields = res_fields.VOLUME_TARGET_DETAILED_RESOURCE.sort_fields
    sort_field_labels = (
        res_fields.VOLUME_TARGET_DETAILED_RESOURCE.sort_labels)

    params.update(
        utils.common_params_for_list(args, sort_fields, sort_field_labels))

    volume_target = cc.volume_target.list(**params)
    cliutils.print_list(volume_target,
                        fields,
                        field_labels=field_labels,
                        sortby_index=None,
                        json_flag=args.json)
예제 #10
0
def do_node_list(cc, args):
    """List the nodes which are registered with the Ironic service."""
    params = {}
    if args.associated is not None:
        params['associated'] = utils.bool_argument_value(
            "--associated", args.associated)
    if args.maintenance is not None:
        params['maintenance'] = utils.bool_argument_value(
            "--maintenance", args.maintenance)
    if args.provision_state is not None:
        params['provision_state'] = args.provision_state

    if args.detail:
        fields = res_fields.NODE_DETAILED_RESOURCE.fields
        field_labels = res_fields.NODE_DETAILED_RESOURCE.labels
    elif args.fields:
        utils.check_for_invalid_fields(
            args.fields[0], res_fields.NODE_DETAILED_RESOURCE.fields)
        resource = res_fields.Resource(args.fields[0])
        fields = resource.fields
        field_labels = resource.labels
    else:
        fields = res_fields.NODE_RESOURCE.fields
        field_labels = res_fields.NODE_RESOURCE.labels

    sort_fields = res_fields.NODE_DETAILED_RESOURCE.sort_fields
    sort_field_labels = res_fields.NODE_DETAILED_RESOURCE.sort_labels

    params.update(
        utils.common_params_for_list(args, sort_fields, sort_field_labels))
    nodes = cc.node.list(**params)
    cliutils.print_list(nodes,
                        fields,
                        field_labels=field_labels,
                        sortby_index=None)
def do_volume_target_show(cc, args):
    """Show detailed information about a volume target."""
    fields = args.fields[0] if args.fields else None
    utils.check_for_invalid_fields(
        fields, res_fields.VOLUME_TARGET_DETAILED_RESOURCE.fields)
    utils.check_empty_arg(args.volume_target, '<id>')
    volume_target = cc.volume_target.get(args.volume_target, fields=fields)
    _print_volume_target_show(volume_target, fields=fields, json=args.json)
예제 #12
0
def do_chassis_show(cc, args):
    """Show detailed information about a chassis."""
    utils.check_empty_arg(args.chassis, '<chassis>')
    fields = args.fields[0] if args.fields else None
    utils.check_for_invalid_fields(fields,
                                   res_fields.CHASSIS_DETAILED_RESOURCE.fields)
    chassis = cc.chassis.get(args.chassis, fields=fields)
    _print_chassis_show(chassis, fields=fields)
def do_volume_target_show(cc, args):
    """Show detailed information about a volume target."""
    fields = args.fields[0] if args.fields else None
    utils.check_for_invalid_fields(
        fields, res_fields.VOLUME_TARGET_DETAILED_RESOURCE.fields)
    utils.check_empty_arg(args.volume_target, '<id>')
    volume_target = cc.volume_target.get(args.volume_target, fields=fields)
    _print_volume_target_show(volume_target, fields=fields, json=args.json)
예제 #14
0
def do_chassis_show(cc, args):
    """Show detailed information about a chassis."""
    utils.check_empty_arg(args.chassis, '<chassis>')
    fields = args.fields[0] if args.fields else None
    utils.check_for_invalid_fields(
        fields, res_fields.CHASSIS_DETAILED_RESOURCE.fields)
    chassis = cc.chassis.get(args.chassis, fields=fields)
    _print_chassis_show(chassis, fields=fields)
예제 #15
0
def do_node_show(cc, args):
    """Show detailed information about a node."""
    fields = args.fields[0] if args.fields else None
    utils.check_empty_arg(args.node, "<id>")
    utils.check_for_invalid_fields(fields, res_fields.NODE_DETAILED_RESOURCE.fields)
    if args.instance_uuid:
        node = cc.node.get_by_instance_uuid(args.node, fields=fields)
    else:
        node = cc.node.get(args.node, fields=fields)
    _print_node_show(node, fields=fields)
def do_volume_connector_show(cc, args):
    """Show detailed information about a volume connector."""
    fields = args.fields[0] if args.fields else None
    utils.check_for_invalid_fields(
        fields, res_fields.VOLUME_CONNECTOR_DETAILED_RESOURCE.fields)
    utils.check_empty_arg(args.volume_connector, '<id>')
    volume_connector = cc.volume_connector.get(args.volume_connector,
                                               fields=fields)
    _print_volume_connector_show(volume_connector, fields=fields,
                                 json=args.json)
예제 #17
0
def do_port_show(cc, args):
    """Show detailed information about a port."""
    fields = args.fields[0] if args.fields else None
    utils.check_for_invalid_fields(
        fields, res_fields.PORT_DETAILED_RESOURCE.fields)
    if args.address:
        port = cc.port.get_by_address(args.port, fields=fields)
    else:
        utils.check_empty_arg(args.port, '<id>')
        port = cc.port.get(args.port, fields=fields)
    _print_port_show(port, fields=fields, json=args.json)
def do_volume_connector_show(cc, args):
    """Show detailed information about a volume connector."""
    fields = args.fields[0] if args.fields else None
    utils.check_for_invalid_fields(
        fields, res_fields.VOLUME_CONNECTOR_DETAILED_RESOURCE.fields)
    utils.check_empty_arg(args.volume_connector, '<id>')
    volume_connector = cc.volume_connector.get(args.volume_connector,
                                               fields=fields)
    _print_volume_connector_show(volume_connector,
                                 fields=fields,
                                 json=args.json)
예제 #19
0
def do_node_show(cc, args):
    """Show detailed information about a node."""
    fields = args.fields[0] if args.fields else None
    utils.check_empty_arg(args.node, '<id>')
    utils.check_for_invalid_fields(
        fields, res_fields.NODE_DETAILED_RESOURCE.fields)
    if args.instance_uuid:
        node = cc.node.get_by_instance_uuid(args.node, fields=fields)
    else:
        node = cc.node.get(args.node, fields=fields)
    _print_node_show(node, fields=fields, json=args.json)
예제 #20
0
def do_portgroup_show(cc, args):
    """Show detailed information about a portgroup."""
    fields = args.fields[0] if args.fields else None
    utils.check_for_invalid_fields(
        fields, res_fields.PORTGROUP_DETAILED_RESOURCE.fields)
    if args.address:
        portgroup = cc.portgroup.get_by_address(args.portgroup, fields=fields)
    else:
        utils.check_empty_arg(args.portgroup, '<id>')
        portgroup = cc.portgroup.get(args.portgroup, fields=fields)
    _print_portgroup_show(portgroup, fields=fields, json=args.json)
예제 #21
0
def do_chassis_node_list(cc, args):
    """List the nodes contained in a chassis."""
    if args.detail:
        fields = res_fields.NODE_DETAILED_RESOURCE.fields
        field_labels = res_fields.NODE_DETAILED_RESOURCE.labels
    elif args.fields:
        utils.check_for_invalid_fields(
            args.fields[0], res_fields.NODE_DETAILED_RESOURCE.fields)
        resource = res_fields.Resource(args.fields[0])
        fields = resource.fields
        field_labels = resource.labels
    else:
        fields = res_fields.NODE_RESOURCE.fields
        field_labels = res_fields.NODE_RESOURCE.labels

    params = utils.common_params_for_list(args, fields, field_labels)

    nodes = cc.chassis.list_nodes(args.chassis, **params)
    cliutils.print_list(nodes, fields,
                        field_labels=field_labels,
                        sortby_index=None)
예제 #22
0
 def test_check_for_invalid_fields(self):
     self.assertIsNone(utils.check_for_invalid_fields(
                       ['a', 'b'], ['a', 'b', 'c']))
     # 'd' is not a valid field
     self.assertRaises(exc.CommandError, utils.check_for_invalid_fields,
                       ['a', 'd'], ['a', 'b', 'c'])
예제 #23
0
 def test_check_for_invalid_fields(self):
     self.assertIsNone(utils.check_for_invalid_fields(
                       ['a', 'b'], ['a', 'b', 'c']))
     # 'd' is not a valid field
     self.assertRaises(exc.CommandError, utils.check_for_invalid_fields,
                       ['a', 'd'], ['a', 'b', 'c'])