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. |
backfill_version_column
(max_count)[source]¶Backfill the version column with Ocata versions.
The version column was added to all the resource tables in this Pike release (via ‘ironic-dbsync upgrade’). After upgrading (from Ocata to Pike), the ‘ironic-dbsync online_data_migrations’ command will invoke this method to populate (backfill) the version columns. The version used will be the object version from the pinning set in config (i.e. prior to this column being added).
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 create a node with tags. |
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. |
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, 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_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.
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. |
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. |
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. |
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.