ironic.db.api module

Base classes for storage engines

class ironic.db.api.Connection[source]

Bases: object

Base class for storage system connections.

abstract add_node_tag(node_id, tag)[source]

Add tag to the node.

If the node_id and tag pair already exists, this should still succeed.

Parameters
  • node_id – The id of a node.

  • tag – A tag string.

Returns

the NodeTag object.

Raises

NodeNotFound if the node is not found.

abstract add_node_trait(node_id, trait, version)[source]

Add trait to the node.

If the node_id and trait pair already exists, this should still succeed.

Parameters
  • node_id – The id of a node.

  • trait – A trait string.

  • version – the version of the object.Trait.

Returns

the NodeTrait object.

Raises

InvalidParameterValue if adding the trait would exceed the per-node traits limit.

Raises

NodeNotFound if the node is not found.

abstract bulk_delete_node_history_records(node_id, limit)[source]

Utility method to bulk delete node history entries.

Parameters

entires – A list of node history entriy id’s to be queried for deletion.

abstract check_node_list(idents)[source]

Check a list of node identities and map it to UUIDs.

This call takes a list of node names and/or UUIDs and tries to convert them to UUIDs. It fails early if any identities cannot possible be used as names or UUIDs.

Parameters

idents – List of identities.

Returns

A mapping from requests identities to node UUIDs.

Raises

NodeNotFound if some identities were not found or cannot be valid names or UUIDs.

abstract check_versions(ignore_models=())[source]

Checks the whole database for incompatible objects.

This scans all the tables in search of objects that are not supported; i.e., those that are not specified in ironic.common.release_mappings.RELEASE_MAPPING.

Parameters

ignore_models – List of model names to skip.

Returns

A Boolean. True if all the objects have supported versions; False otherwise.

abstract count_nodes_in_provision_state(state)[source]

Count the number of nodes in given provision state.

Parameters

state – A provision_state value to match for the count operation. This can be a single provision state value or a list of values.

abstract create_allocation(values)[source]

Create a new allocation.

Parameters

values – Dict of values to create an allocation with

Returns

An allocation

Raises

AllocationDuplicateName

Raises

AllocationAlreadyExists

abstract create_bios_setting_list(node_id, settings, version)[source]

Create a list of BIOSSetting records for a given node.

Parameters
  • node_id – The node id.

  • settings

    A list of BIOS Settings to be created.

    [
      {
       'name': String,
       'value': String,
       additional settings from BIOS registry
      },
      {
       'name': String,
       'value': String,
       additional settings from BIOS registry
      },
      ...
    ]
    

  • version – the version of the object.BIOSSetting.

Returns

A list of BIOSSetting object.

Raises

NodeNotFound if the node is not found.

Raises

BIOSSettingAlreadyExists if any of the setting records already exists.

abstract create_chassis(values)[source]

Create a new chassis.

Parameters

values – Dict of values.

abstract create_deploy_template(values)[source]

Create a deployment template.

Parameters

values

A dict describing the deployment template. For example:

{
 'uuid': uuidutils.generate_uuid(),
 'name': 'CUSTOM_DT1',
}

Raises

DeployTemplateDuplicateName if a deploy template with the same name exists.

Raises

DeployTemplateAlreadyExists if a deploy template with the same UUID exists.

Returns

A deploy template.

abstract create_node(values)[source]

Create a new node.

Parameters

values

A dict containing several items used to identify and track the node, and several dicts which are passed into the Drivers when managing this node. For example:

{
 'uuid': uuidutils.generate_uuid(),
 'instance_uuid': None,
 'power_state': states.POWER_OFF,
 'provision_state': states.AVAILABLE,
 'driver': 'ipmi',
 'driver_info': { ... },
 'properties': { ... },
 'extra': { ... },
}

Raises

InvalidParameterValue if ‘values’ contains ‘tags’ or ‘traits’.

Returns

A node.

abstract create_node_history(values)[source]

Create a new history record.

Parameters

values – Dict of values.

abstract create_node_inventory(values)[source]

Create a new inventory record.

Parameters

values – Dict of values.

abstract create_port(values)[source]

Create a new port.

Parameters

values – Dict of values.

abstract create_portgroup(values)[source]

Create a new portgroup.

Parameters

values – Dict of values with the following keys: ‘id’ ‘uuid’ ‘name’ ‘node_id’ ‘address’ ‘extra’ ‘created_at’ ‘updated_at’

Returns

A portgroup

Raises

PortgroupDuplicateName

Raises

PortgroupMACAlreadyExists

Raises

PortgroupAlreadyExists

abstract create_volume_connector(connector_info)[source]

Create a new volume connector.

Parameters

connector_info

Dictionary containing information about the connector. Example:

{
    'uuid': '000000-..',
    'type': 'wwnn',
    'connector_id': '00:01:02:03:04:05:06',
    'node_id': 2
}

Returns

A volume connector.

Raises

VolumeConnectorTypeAndIdAlreadyExists If a connector already exists with a matching type and connector_id.

Raises

VolumeConnectorAlreadyExists If a volume connector with the same UUID already exists.

abstract create_volume_target(target_info)[source]

Create a new volume target.

Parameters

target_info

Dictionary containing the information about the volume target. Example:

{
    'uuid': '000000-..',
    'node_id': 2,
    'boot_index': 0,
    'volume_id': '12345678-...'
    'volume_type': 'some type',
}

Returns

A volume target.

Raises

VolumeTargetBootIndexAlreadyExists if a volume target already exists with the same boot index and node ID.

Raises

VolumeTargetAlreadyExists if a volume target with the same UUID exists.

abstract delete_bios_setting_list(node_id, names)[source]

Delete a list of BIOS settings.

Parameters
  • node_id – The node id.

  • names – List of BIOS setting names to be deleted.

Raises

NodeNotFound if the node is not found.

Raises

BIOSSettingNotFound if any of BIOS setting name is not found.

abstract delete_node_tag(node_id, tag)[source]

Delete specified tag from the node.

Parameters
  • node_id – The id of a node.

  • tag – A tag string.

Raises

NodeNotFound if the node is not found.

Raises

NodeTagNotFound if the tag is not found.

abstract delete_node_trait(node_id, trait)[source]

Delete specified trait from the node.

Parameters
  • node_id – The id of a node.

  • trait – A trait string.

Raises

NodeNotFound if the node is not found.

Raises

NodeTraitNotFound if the trait is not found.

abstract destroy_allocation(allocation_id)[source]

Destroy an allocation.

Parameters

allocation_id – Allocation ID

Raises

AllocationNotFound

abstract destroy_chassis(chassis_id)[source]

Destroy a chassis.

Parameters

chassis_id – The id or the uuid of a chassis.

abstract destroy_deploy_template(template_id)[source]

Destroy a deployment template.

Parameters

template_id – ID of the deployment template to destroy.

Raises

DeployTemplateNotFound if the deploy template does not exist.

abstract destroy_node(node_id)[source]

Destroy a node and its associated resources.

Destroy a node, including any associated ports, port groups, tags, traits, volume connectors, and volume targets.

Parameters

node_id – The ID or UUID of a node.

abstract destroy_node_history_by_uuid(history_uuid)[source]

Destroy a history record.

Parameters

history_uuid – The uuid of a history record

abstract destroy_node_inventory_by_node_id(inventory_node_id)[source]

Destroy a inventory record.

Parameters

inventory_uuid – The uuid of a inventory record

abstract destroy_port(port_id)[source]

Destroy an port.

Parameters

port_id – The id or MAC of a port.

abstract destroy_portgroup(portgroup_id)[source]

Destroy a portgroup.

Parameters

portgroup_id – The UUID or MAC of a portgroup.

Raises

PortgroupNotEmpty

Raises

PortgroupNotFound

abstract destroy_volume_connector(ident)[source]

Destroy a volume connector.

Parameters

ident – The UUID or integer ID of a volume connector.

Raises

VolumeConnectorNotFound If a volume connector with the specified ident does not exist.

abstract destroy_volume_target(ident)[source]

Destroy a volume target.

Parameters

ident – The UUID or integer ID of a volume target.

Raises

VolumeTargetNotFound if a volume target with the specified ident does not exist.

abstract get_active_hardware_type_dict(use_groups=False)[source]

Retrieve hardware types for the registered and active conductors.

Parameters

use_groups – Whether to factor conductor_group into the keys.

Returns

A dict which maps hardware type names to the set of hosts which support them. For example:

{hardware-type-a: set([host1, host2]),
 hardware-type-b: set([host2, host3])}

abstract get_allocation_by_id(allocation_id)[source]

Return an allocation representation.

Parameters

allocation_id – The id of an allocation.

Returns

An allocation.

Raises

AllocationNotFound

abstract get_allocation_by_name(name)[source]

Return an allocation representation.

Parameters

name – The logical name of an allocation.

Returns

An allocation.

Raises

AllocationNotFound

abstract get_allocation_by_uuid(allocation_uuid)[source]

Return an allocation representation.

Parameters

allocation_uuid – The uuid of an allocation.

Returns

An allocation.

Raises

AllocationNotFound

abstract get_allocation_list(filters=None, limit=None, marker=None, sort_key=None, sort_dir=None)[source]

Return a list of allocations.

Parameters
  • filters

    Filters to apply. Defaults to None.

    node_uuid

    uuid of node

    state

    allocation state

    resource_class

    requested resource class

  • limit – Maximum number of allocations to return.

  • marker – The last item of the previous page; we return the next result set.

  • sort_key – Attribute by which results should be sorted.

  • sort_dir – Direction in which results should be sorted. (asc, desc)

Returns

A list of allocations.

abstract get_bios_setting(node_id, name)[source]

Retrieve BIOS setting value.

Parameters
  • node_id – The node id.

  • name – String containing name of BIOS setting to be retrieved.

Returns

The BIOSSetting object.

Raises

NodeNotFound if the node is not found.

Raises

BIOSSettingNotFound if the BIOS setting is not found.

abstract get_bios_setting_list(node_id)[source]

Retrieve BIOS settings of a given node.

Parameters

node_id – The node id.

Returns

A list of BIOSSetting objects.

Raises

NodeNotFound if the node is not found.

abstract get_chassis_by_id(chassis_id)[source]

Return a chassis representation.

Parameters

chassis_id – The id of a chassis.

Returns

A chassis.

abstract get_chassis_by_uuid(chassis_uuid)[source]

Return a chassis representation.

Parameters

chassis_uuid – The uuid of a chassis.

Returns

A chassis.

abstract get_chassis_list(limit=None, marker=None, sort_key=None, sort_dir=None)[source]

Return a list of chassis.

Parameters
  • limit – Maximum number of chassis to return.

  • marker – the last item of the previous page; we return the next result set.

  • sort_key – Attribute by which results should be sorted.

  • sort_dir – direction in which results should be sorted. (asc, desc)

abstract get_conductor(hostname, online=True)[source]

Retrieve a conductor’s service record from the database.

Parameters
  • hostname – The hostname of the conductor service.

  • online – Specify the filter value on the online field when querying conductors. The online field is ignored if this value is set to None.

Returns

A conductor.

Raises

ConductorNotFound if the conductor with given hostname does not exist or doesn’t meet the specified online expectation.

abstract get_conductor_list(limit=None, marker=None, sort_key=None, sort_dir=None)[source]

Return a list of conductors.

Parameters
  • limit – Maximum number of conductors to return.

  • marker – the last item of the previous page; we return the next result set.

  • sort_key – Attribute by which results should be sorted.

  • sort_dir – direction in which results should be sorted. (asc, desc)

abstract get_deploy_template_by_id(template_id)[source]

Retrieve a deployment template by ID.

Parameters

template_id – ID of the deployment template to retrieve.

Raises

DeployTemplateNotFound if the deploy template does not exist.

Returns

A deploy template.

abstract get_deploy_template_by_name(template_name)[source]

Retrieve a deployment template by name.

Parameters

template_name – name of the deployment template to retrieve.

Raises

DeployTemplateNotFound if the deploy template does not exist.

Returns

A deploy template.

abstract get_deploy_template_by_uuid(template_uuid)[source]

Retrieve a deployment template by UUID.

Parameters

template_uuid – UUID of the deployment template to retrieve.

Raises

DeployTemplateNotFound if the deploy template does not exist.

Returns

A deploy template.

abstract get_deploy_template_list(limit=None, marker=None, sort_key=None, sort_dir=None)[source]

Retrieve a list of deployment templates.

Parameters
  • limit – Maximum number of deploy templates to return.

  • marker – The last item of the previous page; we return the next result set.

  • sort_key – Attribute by which results should be sorted.

  • sort_dir – Direction in which results should be sorted. (asc, desc)

Returns

A list of deploy templates.

abstract get_deploy_template_list_by_names(names)[source]

Return a list of deployment templates with one of a list of names.

Parameters

names – List of names to filter by.

Returns

A list of deploy templates.

abstract get_node_by_id(node_id)[source]

Return a node.

Parameters

node_id – The id of a node.

Returns

A node.

abstract get_node_by_instance(instance)[source]

Return a node.

Parameters

instance – The instance uuid to search for.

Returns

A node.

Raises

InstanceNotFound if the instance is not found.

Raises

InvalidUUID if the instance uuid is invalid.

abstract get_node_by_name(node_name)[source]

Return a node.

Parameters

node_name – The logical name of a node.

Returns

A node.

abstract get_node_by_port_addresses(addresses)[source]

Find a node by any matching port address.

Parameters

addresses – list of port addresses (e.g. MACs).

Returns

Node object.

Raises

NodeNotFound if none or several nodes are found.

abstract get_node_by_uuid(node_uuid)[source]

Return a node.

Parameters

node_uuid – The uuid of a node.

Returns

A node.

abstract get_node_history_by_id(history_id)[source]

Return a node history representation.

Parameters

history_id – The id of a history record.

Returns

A history.

abstract get_node_history_by_node_id(node_id, limit=None, marker=None, sort_key=None, sort_dir=None)[source]

List all the history records for a given node.

Parameters
  • node_id – The integer node ID.

  • limit – Maximum number of history records to return.

  • marker – the last item of the previous page; we return the next result set.

  • sort_key – Attribute by which results should be sorted

  • sort_dir – direction in which results should be sorted (asc, desc)

Returns

A list of histories.

abstract get_node_history_by_uuid(history_uuid)[source]

Return a node history representation.

Parameters

history_uuid – The uuid of a history record

Returns

A history.

abstract get_node_history_list(limit=None, marker=None, sort_key=None, sort_dir=None)[source]

Return a list of node history records

Parameters
  • limit – Maximum number of history records to return.

  • marker – the last item of the previous page; we return the next result set.

  • sort_key – Attribute by which results should be sorted.

  • sort_dir – direction in which results should be sorted. (asc, desc)

abstract get_node_inventory_by_node_id(node_id)[source]

Get the node inventory for a given node.

Parameters

node_id – The integer node ID.

Returns

An inventory of a node.

abstract get_node_list(filters=None, limit=None, marker=None, sort_key=None, sort_dir=None, fields=None)[source]

Return a list of nodes.

Parameters
  • filters

    Filters to apply. Defaults to None.

    associated

    True | False

    reserved

    True | False

    maintenance

    True | False

    chassis_uuid

    uuid of chassis

    driver

    driver’s name

    provision_state

    provision state of node

    provisioned_before

    nodes with provision_updated_at field before this interval in seconds

    shard

    nodes with the given shard

  • limit – Maximum number of nodes to return.

  • marker – the last item of the previous page; we return the next result set.

  • sort_key – Attribute by which results should be sorted.

  • sort_dir – direction in which results should be sorted. (asc, desc)

  • fields – Comma separated field list to return, to allow for only specific fields to be returned to have maximum API performance calls where not all columns are needed from the database.

abstract get_node_tags_by_node_id(node_id)[source]

Get node tags based on its id.

Parameters

node_id – The id of a node.

Returns

A list of NodeTag objects.

Raises

NodeNotFound if the node is not found.

abstract get_node_traits_by_node_id(node_id)[source]

Get node traits based on its id.

Parameters

node_id – The id of a node.

Returns

A list of NodeTrait objects.

Raises

NodeNotFound if the node is not found.

abstract get_nodeinfo_list(columns=None, filters=None, limit=None, marker=None, sort_key=None, sort_dir=None)[source]

Get specific columns for matching nodes.

Return a list of the specified columns for all nodes that match the specified filters.

Parameters
  • columns – List of column names to return. Defaults to ‘id’ column when columns == None.

  • filters

    Filters to apply. Defaults to None.

    associated

    True | False

    chassis_uuid

    uuid of chassis

    conductor_group

    conductor group name

    console_enabled

    True | False

    description_contains

    substring in description

    driver

    driver’s name

    fault

    current fault type

    id

    numeric ID

    inspection_started_before

    nodes with inspection_started_at field before this interval in seconds

    instance_uuid

    uuid of instance

    lessee

    node’s lessee (e.g. project ID)

    maintenance

    True | False

    owner

    node’s owner (e.g. project ID)

    project

    either owner or lessee

    reserved

    True | False

    reserved_by_any_of

    [conductor1, conductor2]

    resource_class

    resource class name

    retired

    True | False

    shard_in

    shard (multiple possibilities)

    provision_state

    provision state of node

    provision_state_in

    provision state of node (multiple possibilities)

    provisioned_before

    nodes with provision_updated_at field before this interval in seconds

    uuid

    uuid of node

    uuid_in

    uuid of node (multiple possibilities)

    with_power_state

    True | False

  • limit – Maximum number of nodes to return.

  • marker – the last item of the previous page; we return the next result set.

  • sort_key – Attribute by which results should be sorted.

  • sort_dir – direction in which results should be sorted. (asc, desc)

Returns

A list of tuples of the specified columns.

abstract get_offline_conductors(field='hostname')[source]

Get a list conductors that are offline (dead).

Parameters

field – A field to return, hostname by default.

Returns

A list of requested fields of offline conductors.

abstract get_online_conductors()[source]

Get a list conductor hostnames that are online and active.

Returns

A list of conductor hostnames.

abstract get_port_by_address(address)[source]

Return a network port representation.

Parameters

address – The MAC address of a port.

Returns

A port.

abstract get_port_by_id(port_id)[source]

Return a network port representation.

Parameters

port_id – The id of a port.

Returns

A port.

abstract get_port_by_name(port_name)[source]

Return a network port representation.

Parameters

port_name – The name of a port.

Returns

A port.

abstract get_port_by_uuid(port_uuid)[source]

Return a network port representation.

Parameters

port_uuid – The uuid of a port.

Returns

A port.

abstract get_port_list(limit=None, marker=None, sort_key=None, sort_dir=None)[source]

Return a list of ports.

Parameters
  • limit – Maximum number of ports to return.

  • marker – the last item of the previous page; we return the next result set.

  • sort_key – Attribute by which results should be sorted.

  • sort_dir – direction in which results should be sorted. (asc, desc)

abstract get_portgroup_by_address(address, project=None)[source]

Return a network portgroup representation.

Parameters
  • address – The MAC address of a portgroup.

  • project – A node owner or lessee to filter by.

Returns

A portgroup.

Raises

PortgroupNotFound

abstract get_portgroup_by_id(portgroup_id)[source]

Return a network portgroup representation.

Parameters

portgroup_id – The id of a portgroup.

Returns

A portgroup.

Raises

PortgroupNotFound

abstract get_portgroup_by_name(name)[source]

Return a network portgroup representation.

Parameters

name – The logical name of a portgroup.

Returns

A portgroup.

Raises

PortgroupNotFound

abstract get_portgroup_by_uuid(portgroup_uuid)[source]

Return a network portgroup representation.

Parameters

portgroup_uuid – The uuid of a portgroup.

Returns

A portgroup.

Raises

PortgroupNotFound

abstract get_portgroup_list(limit=None, marker=None, sort_key=None, sort_dir=None, project=None)[source]

Return a list of portgroups.

Parameters
  • limit – Maximum number of portgroups to return.

  • marker – The last item of the previous page; we return the next result set.

  • sort_key – Attribute by which results should be sorted.

  • sort_dir – Direction in which results should be sorted. (asc, desc)

  • project – A node owner or lessee to filter by.

Returns

A list of portgroups.

abstract get_portgroups_by_node_id(node_id, limit=None, marker=None, sort_key=None, sort_dir=None, project=None)[source]

List all the portgroups for a given node.

Parameters
  • node_id – The integer node ID.

  • limit – Maximum number of portgroups to return.

  • marker – The last item of the previous page; we return the next result set.

  • sort_key – Attribute by which results should be sorted

  • sort_dir – Direction in which results should be sorted (asc, desc)

  • project – A node owner or lessee to filter by.

Returns

A list of portgroups.

abstract get_ports_by_node_id(node_id, limit=None, marker=None, sort_key=None, sort_dir=None)[source]

List all the ports for a given node.

Parameters
  • node_id – The integer node ID.

  • limit – Maximum number of ports to return.

  • marker – the last item of the previous page; we return the next result set.

  • sort_key – Attribute by which results should be sorted

  • sort_dir – direction in which results should be sorted (asc, desc)

Returns

A list of ports.

abstract get_ports_by_portgroup_id(portgroup_id, limit=None, marker=None, sort_key=None, sort_dir=None)[source]

List all the ports for a given portgroup.

Parameters
  • portgroup_id – The integer portgroup ID.

  • limit – Maximum number of ports to return.

  • marker – The last item of the previous page; we return the next result set.

  • sort_key – Attribute by which results should be sorted

  • sort_dir – Direction in which results should be sorted (asc, desc)

Returns

A list of ports.

abstract get_ports_by_shards(shards, limit=None, marker=None, sort_key=None, sort_dir=None)[source]

Return a list of ports contained in the provided shards.

Parameters

shard_ids – A list of shards to filter ports by.

abstract get_shard_list()[source]

Retrieve a list of shards.

Returns

list of dicts containing shard names and count

abstract get_volume_connector_by_id(db_id)[source]

Return a volume connector representation.

Parameters

db_id – The integer database ID of a volume connector.

Returns

A volume connector with the specified ID.

Raises

VolumeConnectorNotFound If a volume connector with the specified ID is not found.

abstract get_volume_connector_by_uuid(connector_uuid)[source]

Return a volume connector representation.

Parameters

connector_uuid – The UUID of a connector.

Returns

A volume connector with the specified UUID.

Raises

VolumeConnectorNotFound If a volume connector with the specified UUID is not found.

abstract get_volume_connector_list(limit=None, marker=None, sort_key=None, sort_dir=None, project=None)[source]

Return a list of volume connectors.

Parameters
  • limit – Maximum number of volume connectors to return.

  • marker – The last item of the previous page; we return the next result set.

  • sort_key – Attribute by which results should be sorted.

  • sort_dir – Direction in which results should be sorted. (asc, desc)

  • project – The associated node project to search with.

Returns

a list of VolumeConnector objects

Returns

A list of volume connectors.

Raises

InvalidParameterValue If sort_key does not exist.

abstract get_volume_connectors_by_node_id(node_id, limit=None, marker=None, sort_key=None, sort_dir=None, project=None)[source]

List all the volume connectors for a given node.

Parameters
  • node_id – The integer node ID.

  • limit – Maximum number of volume connectors to return.

  • marker – The last item of the previous page; we return the next result set.

  • sort_key – Attribute by which results should be sorted

  • sort_dir – Direction in which results should be sorted (asc, desc)

  • project – The associated node project to search with.

Returns

a list of VolumeConnector objects

Returns

A list of volume connectors.

Raises

InvalidParameterValue If sort_key does not exist.

abstract get_volume_target_by_id(db_id)[source]

Return a volume target representation.

Parameters

db_id – The database primary key (integer) ID of a volume target.

Returns

A volume target.

Raises

VolumeTargetNotFound if no volume target with this ID exists.

abstract get_volume_target_by_uuid(uuid)[source]

Return a volume target representation.

Parameters

uuid – The UUID of a volume target.

Returns

A volume target.

Raises

VolumeTargetNotFound if no volume target with this UUID exists.

abstract get_volume_target_list(limit=None, marker=None, sort_key=None, sort_dir=None, project=None)[source]

Return a list of volume targets.

Parameters
  • limit – Maximum number of volume targets to return.

  • marker – the last item of the previous page; we return the next result set.

  • sort_key – Attribute by which results should be sorted.

  • sort_dir – direction in which results should be sorted. (asc, desc)

  • project – The associated node project to search with.

Returns

a list of VolumeConnector objects

Returns

A list of volume targets.

Raises

InvalidParameterValue if sort_key does not exist.

abstract get_volume_targets_by_node_id(node_id, limit=None, marker=None, sort_key=None, sort_dir=None, project=None)[source]

List all the volume targets for a given node.

Parameters
  • node_id – The integer node ID.

  • limit – Maximum number of volume targets to return.

  • marker – the last item of the previous page; we return the next result set.

  • sort_key – Attribute by which results should be sorted

  • sort_dir – direction in which results should be sorted (asc, desc)

  • project – The associated node project to search with.

Returns

a list of VolumeConnector objects

Returns

A list of volume targets.

Raises

InvalidParameterValue if sort_key does not exist.

abstract get_volume_targets_by_volume_id(volume_id, limit=None, marker=None, sort_key=None, sort_dir=None, project=None)[source]

List all the volume targets for a given volume id.

Parameters
  • volume_id – The UUID of the volume.

  • limit – Maximum number of volume targets to return.

  • marker – the last item of the previous page; we return the next result set.

  • sort_key – Attribute by which results should be sorted

  • sort_dir – direction in which results should be sorted (asc, desc)

Returns

A list of volume targets.

Raises

InvalidParameterValue if sort_key does not exist.

abstract list_conductor_hardware_interfaces(conductor_id)[source]

List all registered hardware interfaces for a conductor.

Parameters

conductor_id – Database ID of conductor.

Returns

List of ConductorHardwareInterfaces objects.

abstract list_hardware_type_interfaces(hardware_types)[source]

List registered hardware interfaces for given hardware types.

This is restricted to only active conductors. :param hardware_types: list of hardware types to filter by. :returns: list of ConductorHardwareInterfaces objects.

abstract node_tag_exists(node_id, tag)[source]

Check if the specified tag exist on the node.

Parameters
  • node_id – The id of a node.

  • tag – A tag string.

Returns

True if the tag exists otherwise False.

Raises

NodeNotFound if the node is not found.

abstract node_trait_exists(node_id, trait)[source]

Check if the specified trait exists on the node.

Parameters
  • node_id – The id of a node.

  • trait – A trait string.

Returns

True if the trait exists otherwise False.

Raises

NodeNotFound if the node is not found.

abstract query_node_history_records_for_purge(conductor_id)[source]

Utility method to identify nodes to clean history records for.

Parameters

conductor_id – Id value for the conductor to perform this query on behalf of.

Returns

A dictionary with key values of node database ID values and a list of values associated with the node.

abstract register_conductor(values, update_existing=False)[source]

Register an active conductor with the cluster.

Parameters
  • values

    A dict of values which must contain the following:

    {
     'hostname': the unique hostname which identifies
                 this Conductor service.
     'drivers': a list of supported drivers.
     'version': the version of the object.Conductor
    }
    

  • update_existing – When false, registration will raise an exception when a conflicting online record is found. When true, will overwrite the existing record. Default: False.

Returns

A conductor.

Raises

ConductorAlreadyRegistered

abstract register_conductor_hardware_interfaces(conductor_id, hardware_type, interface_type, interfaces, default_interface)[source]

Registers hardware interfaces for a conductor.

Parameters
  • conductor_id – Database ID of conductor to register for.

  • hardware_type – Name of hardware type for the interfaces.

  • interface_type – Type of interfaces, e.g. ‘deploy’ or ‘boot’.

  • interfaces – List of interface names to register.

  • default_interface – String, the default interface for this hardware type and interface type.

Raises

ConductorHardwareInterfacesAlreadyRegistered if at least one of the interfaces in the combination of all parameters is already registered.

abstract release_node(tag, node_id)[source]

Release the reservation on a node.

Parameters
  • tag – A string uniquely identifying the reservation holder.

  • node_id – A node id or uuid.

Raises

NodeNotFound if the node is not found.

Raises

NodeLocked if the node is reserved by another host.

Raises

NodeNotLocked if the node was found to not have a reservation at all.

abstract reserve_node(tag, node_id)[source]

Reserve a node.

To prevent other ManagerServices from manipulating the given Node while a Task is performed, mark it reserved by this host.

Parameters
  • tag – A string uniquely identifying the reservation holder.

  • node_id – A node id or uuid.

Returns

A Node object.

Raises

NodeNotFound if the node is not found.

Raises

NodeLocked if the node is already reserved.

abstract set_node_tags(node_id, tags)[source]

Replace all of the node tags with specified list of tags.

This ignores duplicate tags in the specified list.

Parameters
  • node_id – The id of a node.

  • tags – List of tags.

Returns

A list of NodeTag objects.

Raises

NodeNotFound if the node is not found.

abstract set_node_traits(node_id, traits, version)[source]

Replace all of the node traits with specified list of traits.

This ignores duplicate traits in the specified list.

Parameters
  • node_id – The id of a node.

  • traits – List of traits.

  • version – the version of the object.Trait.

Returns

A list of NodeTrait objects.

Raises

InvalidParameterValue if setting the traits would exceed the per-node traits limit.

Raises

NodeNotFound if the node is not found.

abstract take_over_allocation(allocation_id, old_conductor_id, new_conductor_id)[source]

Do a take over for an allocation.

The allocation is only updated if the old conductor matches the provided value, thus guarding against races.

Parameters
  • allocation_id – Allocation ID

  • old_conductor_id – The conductor ID we expect to be the current conductor_affinity of the allocation.

  • new_conductor_id – The conductor ID of the new conductor_affinity.

Returns

True if the take over was successful, False otherwise.

Raises

AllocationNotFound

abstract touch_conductor(hostname)[source]

Mark a conductor as active by updating its ‘updated_at’ property.

Parameters

hostname – The hostname of this conductor service.

Raises

ConductorNotFound

abstract touch_node_provisioning(node_id)[source]

Mark the node’s provisioning as running.

Mark the node’s provisioning as running by updating its ‘provision_updated_at’ property.

Parameters

node_id – The id of a node.

Raises

NodeNotFound

abstract unregister_conductor(hostname)[source]

Remove this conductor from the service registry immediately.

Parameters

hostname – The hostname of this conductor service.

Raises

ConductorNotFound

abstract unregister_conductor_hardware_interfaces(conductor_id)[source]

Unregisters all hardware interfaces for a conductor.

Parameters

conductor_id – Database ID of conductor to unregister for.

abstract unset_node_tags(node_id)[source]

Remove all tags of the node.

Parameters

node_id – The id of a node.

Raises

NodeNotFound if the node is not found.

abstract unset_node_traits(node_id)[source]

Remove all traits of the node.

Parameters

node_id – The id of a node.

Raises

NodeNotFound if the node is not found.

abstract update_allocation(allocation_id, values, update_node=True)[source]

Update properties of an allocation.

Parameters
  • allocation_id – Allocation ID

  • values – Dict of values to update.

  • update_node – If True and node_id is updated, update the node with instance_uuid and traits from the allocation

Returns

An allocation.

Raises

AllocationNotFound

Raises

AllocationDuplicateName

Raises

InstanceAssociated

Raises

NodeAssociated

abstract update_bios_setting_list(node_id, settings, version)[source]

Update a list of BIOSSetting records.

Parameters
  • node_id – The node id.

  • settings

    A list of BIOS Settings to be updated.

    [
      {
       'name': String,
       'value': String,
       additional settings from BIOS registry
      },
      {
       'name': String,
       'value': String,
       additional settings from BIOS registry
      },
      ...
    ]
    

  • version – the version of the object.BIOSSetting.

Returns

A list of BIOSSetting objects.

Raises

NodeNotFound if the node is not found.

Raises

BIOSSettingNotFound if any of the settings is not found.

abstract update_chassis(chassis_id, values)[source]

Update properties of an chassis.

Parameters
  • chassis_id – The id or the uuid of a chassis.

  • values – Dict of values to update.

Returns

A chassis.

abstract update_deploy_template(template_id, values)[source]

Update a deployment template.

Parameters
  • template_id – ID of the deployment template to update.

  • values

    A dict describing the deployment template. For example:

    {
     'uuid': uuidutils.generate_uuid(),
     'name': 'CUSTOM_DT1',
    }
    

Raises

DeployTemplateDuplicateName if a deploy template with the same name exists.

Raises

DeployTemplateNotFound if the deploy template does not exist.

Returns

A deploy template.

abstract update_node(node_id, values)[source]

Update properties of a node.

Parameters
  • node_id – The id or uuid of a node.

  • values

    Dict of values to update. May be a partial list, eg. when setting the properties for a driver. For example:

    {
     'driver_info':
         {
          'my-field-1': val1,
          'my-field-2': val2,
         }
    }
    

Returns

A node.

Raises

NodeAssociated

Raises

NodeNotFound

abstract update_port(port_id, values)[source]

Update properties of an port.

Parameters
  • port_id – The id or MAC of a port.

  • values – Dict of values to update.

Returns

A port.

abstract update_portgroup(portgroup_id, values)[source]

Update properties of a portgroup.

Parameters
  • portgroup_id – The UUID or MAC of a portgroup.

  • values – Dict of values to update. May contain the following keys: ‘uuid’ ‘name’ ‘node_id’ ‘address’ ‘extra’ ‘created_at’ ‘updated_at’

Returns

A portgroup.

Raises

InvalidParameterValue

Raises

PortgroupNotFound

Raises

PortgroupDuplicateName

Raises

PortgroupMACAlreadyExists

abstract update_to_latest_versions(context, max_count)[source]

Updates objects to their latest known versions.

This scans all the tables and for objects that are not in their latest version, updates them to that version.

Parameters
  • context – the admin context

  • max_count – The maximum number of objects to migrate. Must be >= 0. If zero, all the objects will be migrated.

Returns

A 2-tuple, 1. the total number of objects that need to be migrated (at the beginning of this call) and 2. the number of migrated objects.

abstract update_volume_connector(ident, connector_info)[source]

Update properties of a volume connector.

Parameters
  • ident – The UUID or integer ID of a volume connector.

  • connector_info – Dictionary containing the information about connector to update.

Returns

A volume connector.

Raises

VolumeConnectorTypeAndIdAlreadyExists If another connector already exists with a matching type and connector_id field.

Raises

VolumeConnectorNotFound If a volume connector with the specified ident does not exist.

Raises

InvalidParameterValue When a UUID is included in connector_info.

abstract update_volume_target(ident, target_info)[source]

Update information for a volume target.

Parameters
  • ident – The UUID or integer ID of a volume target.

  • target_info – Dictionary containing the information about volume target to update.

Returns

A volume target.

Raises

InvalidParameterValue if a UUID is included in target_info.

Raises

VolumeTargetBootIndexAlreadyExists if a volume target already exists with the same boot index and node ID.

Raises

VolumeTargetNotFound if no volume target with this ident exists.

ironic.db.api.get_instance()[source]

Return a DB API instance.