Пример #1
0
def convert_with_links(rpc_portgroup, fields=None, sanitize=True):
    """Add links to the portgroup."""
    portgroup = api_utils.object_to_dict(
        rpc_portgroup,
        link_resource='portgroups',
        fields=('address', 'extra', 'internal_info', 'mode', 'name',
                'properties', 'standalone_ports_supported'))
    api_utils.populate_node_uuid(rpc_portgroup, portgroup)
    url = api.request.public_url
    portgroup['ports'] = [
        link.make_link('self', url, 'portgroups',
                       rpc_portgroup.uuid + "/ports"),
        link.make_link('bookmark',
                       url,
                       'portgroups',
                       rpc_portgroup.uuid + "/ports",
                       bookmark=True)
    ]

    if fields is not None:
        api_utils.check_for_invalid_fields(fields, portgroup)

    if not sanitize:
        return portgroup

    api_utils.sanitize_dict(portgroup, fields)

    return portgroup
Пример #2
0
def convert_with_links(rpc_allocation, fields=None, sanitize=True):

    allocation = api_utils.object_to_dict(
        rpc_allocation,
        link_resource='allocations',
        fields=(
            'candidate_nodes',
            'extra',
            'last_error',
            'name',
            'owner',
            'resource_class',
            'state',
            'traits'
        )
    )
    try:
        api_utils.populate_node_uuid(rpc_allocation, allocation)
    except exception.NodeNotFound:
        allocation['node_uuid'] = None

    if fields is not None:
        api_utils.check_for_invalid_fields(fields, set(allocation))

    if sanitize:
        allocation_sanitize(allocation, fields)
    return allocation
Пример #3
0
def convert_with_links(rpc_port, fields=None, sanitize=True):
    port = api_utils.object_to_dict(
        rpc_port,
        link_resource='ports',
        fields=(
            'address',
            'extra',
            'internal_info',
            'is_smartnic',
            'local_link_connection',
            'physical_network',
            'pxe_enabled',
        )
    )
    api_utils.populate_node_uuid(rpc_port, port)
    if rpc_port.portgroup_id:
        pg = objects.Portgroup.get(api.request.context, rpc_port.portgroup_id)
        port['portgroup_uuid'] = pg.uuid
    else:
        port['portgroup_uuid'] = None

    _validate_fields(port, fields)

    if not sanitize:
        return port

    port_sanitize(port, fields=fields)

    return port
Пример #4
0
def convert_with_links(rpc_bios, node_uuid):
    """Build a dict containing a bios setting value."""
    bios = api_utils.object_to_dict(
        rpc_bios,
        include_uuid=False,
        fields=('name', 'value'),
        link_resource='nodes',
        link_resource_args="%s/bios/%s" % (node_uuid, rpc_bios.name),
    )
    return bios
Пример #5
0
def convert_with_links(rpc_bios, node_uuid, detail=None, fields=None):
    """Build a dict containing a bios setting value."""

    if detail:
        fields = _DEFAULT_FIELDS_WITH_REGISTRY

    bios = api_utils.object_to_dict(
        rpc_bios,
        include_uuid=False,
        fields=fields,
        link_resource='nodes',
        link_resource_args="%s/bios/%s" % (node_uuid, rpc_bios.name),
    )
    return bios
Пример #6
0
def convert_with_links(rpc_conductor, fields=None, sanitize=True):
    conductor = api_utils.object_to_dict(
        rpc_conductor,
        include_uuid=False,
        fields=('hostname', 'conductor_group', 'drivers'),
        link_resource='conductors',
        link_resource_args=rpc_conductor.hostname)
    conductor['alive'] = not timeutils.is_older_than(
        rpc_conductor.updated_at, CONF.conductor.heartbeat_timeout)
    if fields is not None:
        api_utils.check_for_invalid_fields(fields, conductor)

    if sanitize:
        api_utils.sanitize_dict(conductor, fields)
    return conductor
Пример #7
0
def convert_with_links(rpc_template, fields=None, sanitize=True):
    """Add links to the deploy template."""
    template = api_utils.object_to_dict(
        rpc_template,
        fields=('name', 'extra'),
        link_resource='deploy_templates',
    )
    template['steps'] = list(convert_steps(rpc_template.steps))

    if fields is not None:
        api_utils.check_for_invalid_fields(fields, template)

    if sanitize:
        template_sanitize(template, fields)

    return template
Пример #8
0
def convert_with_links(rpc_connector, fields=None, sanitize=True):
    connector = api_utils.object_to_dict(rpc_connector,
                                         link_resource='volume/connectors',
                                         fields=('connector_id', 'extra',
                                                 'type'))
    api_utils.populate_node_uuid(rpc_connector, connector)

    if fields is not None:
        api_utils.check_for_invalid_fields(fields, connector)

    if not sanitize:
        return connector

    api_utils.sanitize_dict(connector, fields)

    return connector
Пример #9
0
def convert_with_links(rpc_target, fields=None, sanitize=True):
    target = api_utils.object_to_dict(rpc_target,
                                      link_resource='volume/targets',
                                      fields=('boot_index', 'extra',
                                              'properties', 'volume_id',
                                              'volume_type'))
    api_utils.populate_node_uuid(rpc_target, target)

    if fields is not None:
        api_utils.check_for_invalid_fields(fields, target)

    if not sanitize:
        return target

    api_utils.sanitize_dict(target, fields)

    return target
Пример #10
0
def convert_with_links(rpc_chassis, fields=None, sanitize=True):
    chassis = api_utils.object_to_dict(rpc_chassis,
                                       fields=('description', 'extra'),
                                       link_resource='chassis')

    url = api.request.public_url
    chassis['nodes'] = [
        link.make_link('self', url, 'chassis', rpc_chassis.uuid + "/nodes"),
        link.make_link('bookmark',
                       url,
                       'chassis',
                       rpc_chassis.uuid + "/nodes",
                       bookmark=True)
    ],

    if fields is not None:
        api_utils.check_for_invalid_fields(fields, chassis)

    if sanitize:
        api_utils.sanitize_dict(chassis, fields)
    return chassis