ironic.db.api
Module¶Base classes for storage engines
ironic.db.api.
Connection
[source]¶Bases: object
Base class for storage system connections.
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: |
|
---|---|
Returns: | the NodeTag object. |
Raises: | NodeNotFound if the node is not found. |
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: |
|
---|---|
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. |
backfill_version_column
(max_count)[source]¶Backfill the Conductor version column with Pike version.
The version column was added to all the resource tables in the Pike release (via ‘ironic-dbsync upgrade’). After upgrading (from Ocata to Pike), the ‘ironic-dbsync online_data_migrations’ command would have populated (backfilled) the version column for all objects.
Unfortunately, in the Pike release, we forgot to set the value for the conductor’s version column. For the Queens release, we are setting the conductor version, however, we still need to backfill in case new conductors were added between the time the operator ran Pike’s ‘ironic-dbsync online_data_migrations’ and their upgrade to Queens. The version used will be the conductor object version from the Pike release.
Parameters: | 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. |
check_versions
()[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.
Returns: | A Boolean. True if all the objects have supported versions; False otherwise. |
---|
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': 'pxe_ipmitool',
'driver_info': { ... },
'properties': { ... },
'extra': { ... },
}
|
---|---|
Raises: | InvalidParameterValue if ‘values’ contains ‘tags’ or ‘traits’. |
Returns: | A node. |
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 |
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. |
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. |
delete_node_tag
(node_id, tag)[source]¶Delete specified tag from the node.
Parameters: |
|
---|---|
Raises: | NodeNotFound if the node is not found. |
Raises: | NodeTagNotFound if the tag is not found. |
delete_node_trait
(node_id, trait)[source]¶Delete specified trait from the node.
Parameters: |
|
---|---|
Raises: | NodeNotFound if the node is not found. |
Raises: | NodeTraitNotFound if the trait is not found. |
destroy_chassis
(chassis_id)[source]¶Destroy a chassis.
Parameters: | chassis_id – The id or the uuid of a chassis. |
---|
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. |
---|
destroy_portgroup
(portgroup_id)[source]¶Destroy a portgroup.
Parameters: | portgroup_id – The UUID or MAC of a portgroup. |
---|---|
Raises: | PortgroupNotEmpty |
Raises: | PortgroupNotFound |
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. |
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. |
get_active_driver_dict
(interval)[source]¶Retrieve drivers for the registered and active conductors.
Parameters: | interval – Seconds since last check-in of a conductor. |
---|---|
Returns: | A dict which maps driver names to the set of hosts
which support them. For example:{driverA: set([host1, host2]),
driverB: set([host2, host3])}
|
get_active_hardware_type_dict
()[source]¶Retrieve hardware types for the registered and active conductors.
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])}
|
---|
get_chassis_by_id
(chassis_id)[source]¶Return a chassis representation.
Parameters: | chassis_id – The id of a chassis. |
---|---|
Returns: | A chassis. |
get_chassis_by_uuid
(chassis_uuid)[source]¶Return a chassis representation.
Parameters: | chassis_uuid – The uuid of a chassis. |
---|---|
Returns: | A chassis. |
get_chassis_list
(limit=None, marker=None, sort_key=None, sort_dir=None)[source]¶Return a list of chassis.
Parameters: |
|
---|
get_conductor
(hostname)[source]¶Retrieve a conductor’s service record from the database.
Parameters: | hostname – The hostname of the conductor service. |
---|---|
Returns: | A conductor. |
Raises: | ConductorNotFound |
get_node_by_id
(node_id)[source]¶Return a node.
Parameters: | node_id – The id of a node. |
---|---|
Returns: | A node. |
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. |
get_node_by_name
(node_name)[source]¶Return a node.
Parameters: | node_name – The logical name of a node. |
---|---|
Returns: | A node. |
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. |
get_node_by_uuid
(node_uuid)[source]¶Return a node.
Parameters: | node_uuid – The uuid of a node. |
---|---|
Returns: | A node. |
get_node_list
(filters=None, limit=None, marker=None, sort_key=None, sort_dir=None)[source]¶Return a list of nodes.
Parameters: |
|
---|
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. |
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. |
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: |
|
||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Returns: | A list of tuples of the specified columns. |
get_offline_conductors
()[source]¶Get a list conductor hostnames that are offline (dead).
Returns: | A list of conductor hostnames. |
---|
get_port_by_address
(address)[source]¶Return a network port representation.
Parameters: | address – The MAC address of a port. |
---|---|
Returns: | A port. |
get_port_by_id
(port_id)[source]¶Return a network port representation.
Parameters: | port_id – The id of a port. |
---|---|
Returns: | A port. |
get_port_by_uuid
(port_uuid)[source]¶Return a network port representation.
Parameters: | port_uuid – The uuid of a port. |
---|---|
Returns: | A port. |
get_port_list
(limit=None, marker=None, sort_key=None, sort_dir=None)[source]¶Return a list of ports.
Parameters: |
|
---|
get_portgroup_by_address
(address)[source]¶Return a network portgroup representation.
Parameters: | address – The MAC address of a portgroup. |
---|---|
Returns: | A portgroup. |
Raises: | PortgroupNotFound |
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 |
get_portgroup_by_name
(name)[source]¶Return a network portgroup representation.
Parameters: | name – The logical name of a portgroup. |
---|---|
Returns: | A portgroup. |
Raises: | PortgroupNotFound |
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 |
get_portgroup_list
(limit=None, marker=None, sort_key=None, sort_dir=None)[source]¶Return a list of portgroups.
Parameters: |
|
---|---|
Returns: | A list of portgroups. |
get_portgroups_by_node_id
(node_id, limit=None, marker=None, sort_key=None, sort_dir=None)[source]¶List all the portgroups for a given node.
Parameters: |
|
---|---|
Returns: | A list of portgroups. |
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: |
|
---|---|
Returns: | A list of ports. |
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: |
|
---|---|
Returns: | A list of ports. |
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. |
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. |
get_volume_connector_list
(limit=None, marker=None, sort_key=None, sort_dir=None)[source]¶Return a list of volume connectors.
Parameters: |
|
---|---|
Returns: | A list of volume connectors. |
Raises: | InvalidParameterValue If sort_key does not exist. |
get_volume_connectors_by_node_id
(node_id, limit=None, marker=None, sort_key=None, sort_dir=None)[source]¶List all the volume connectors for a given node.
Parameters: |
|
---|---|
Returns: | A list of volume connectors. |
Raises: | InvalidParameterValue If sort_key does not exist. |
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. |
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. |
get_volume_target_list
(limit=None, marker=None, sort_key=None, sort_dir=None)[source]¶Return a list of volume targets.
Parameters: |
|
---|---|
Returns: | A list of volume targets. |
Raises: | InvalidParameterValue if sort_key does not exist. |
get_volume_targets_by_node_id
(node_id, limit=None, marker=None, sort_key=None, sort_dir=None)[source]¶List all the volume targets for a given node.
Parameters: |
|
---|---|
Returns: | A list of volume targets. |
Raises: | InvalidParameterValue if sort_key does not exist. |
get_volume_targets_by_volume_id
(volume_id, limit=None, marker=None, sort_key=None, sort_dir=None)[source]¶List all the volume targets for a given volume id.
Parameters: |
|
---|---|
Returns: | A list of volume targets. |
Raises: | InvalidParameterValue if sort_key does not exist. |
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. |
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.
migrate_to_hardware_types
(context, max_count, reset_unsupported_interfaces=False)[source]¶Migrate nodes from classic drivers to hardware types.
Go through all nodes with a classic driver and try to migrate them to a corresponding hardware type and a correct set of hardware interfaces.
Parameters: |
|
---|---|
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. |
node_tag_exists
(node_id, tag)[source]¶Check if the specified tag exist on the node.
Parameters: |
|
---|---|
Returns: | True if the tag exists otherwise False. |
Raises: | NodeNotFound if the node is not found. |
node_trait_exists
(node_id, trait)[source]¶Check if the specified trait exists on the node.
Parameters: |
|
---|---|
Returns: | True if the trait exists otherwise False. |
Raises: | NodeNotFound if the node is not found. |
register_conductor
(values, update_existing=False)[source]¶Register an active conductor with the cluster.
Parameters: |
|
---|---|
Returns: | A conductor. |
Raises: | ConductorAlreadyRegistered |
register_conductor_hardware_interfaces
(conductor_id, hardware_type, interface_type, interfaces, default_interface)[source]¶Registers hardware interfaces for a conductor.
Parameters: |
|
---|---|
Raises: | ConductorHardwareInterfacesAlreadyRegistered if at least one of the interfaces in the combination of all parameters is already registered. |
release_node
(tag, node_id)[source]¶Release the reservation on a node.
Parameters: |
|
---|---|
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. |
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: |
|
---|---|
Returns: | A Node object. |
Raises: | NodeNotFound if the node is not found. |
Raises: | NodeLocked if the node is already reserved. |
Replace all of the node tags with specified list of tags.
This ignores duplicate tags in the specified list.
Parameters: |
|
---|---|
Returns: | A list of NodeTag objects. |
Raises: | NodeNotFound if the node is not found. |
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: |
|
---|---|
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. |
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 |
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 |
unregister_conductor
(hostname)[source]¶Remove this conductor from the service registry immediately.
Parameters: | hostname – The hostname of this conductor service. |
---|---|
Raises: | ConductorNotFound |
unregister_conductor_hardware_interfaces
(conductor_id)[source]¶Unregisters all hardware interfaces for a conductor.
Parameters: | conductor_id – Database ID of conductor to unregister for. |
---|
Remove all tags of the node.
Parameters: | node_id – The id of a node. |
---|---|
Raises: | NodeNotFound if the node is not found. |
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. |
update_chassis
(chassis_id, values)[source]¶Update properties of an chassis.
Parameters: |
|
---|---|
Returns: | A chassis. |
update_node
(node_id, values)[source]¶Update properties of a node.
Parameters: |
|
---|---|
Returns: | A node. |
Raises: | NodeAssociated |
Raises: | NodeNotFound |
update_port
(port_id, values)[source]¶Update properties of an port.
Parameters: |
|
---|---|
Returns: | A port. |
update_portgroup
(portgroup_id, values)[source]¶Update properties of a portgroup.
Parameters: |
|
---|---|
Returns: | A portgroup. |
Raises: | InvalidParameterValue |
Raises: | PortgroupNotFound |
Raises: | PortgroupDuplicateName |
Raises: | PortgroupMACAlreadyExists |
update_volume_connector
(ident, connector_info)[source]¶Update properties of a volume connector.
Parameters: |
|
---|---|
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. |
update_volume_target
(ident, target_info)[source]¶Update information for a volume target.
Parameters: |
|
---|---|
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. |
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.