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. |
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_bios_setting_list(node_id, settings, version)[source]¶Create a list of BIOSSetting records for a given node.
| Parameters: |
|
|---|---|
| Returns: | A list of BIOSSetting object. |
| Raises: | NodeNotFound if the node is not found. |
| Raises: | BIOSSettingAlreadyExists if any of the setting records already exists. |
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. |
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_bios_setting_list(node_id, names)[source]¶Delete a list of BIOS settings.
| Parameters: |
|
|---|---|
| Raises: | NodeNotFound if the node is not found. |
| Raises: | BIOSSettingNotFound if any of BIOS setting name is not found. |
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_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])}
|
get_bios_setting(node_id, name)[source]¶Retrieve BIOS setting value.
| Parameters: |
|
|---|---|
| Returns: | The BIOSSetting object. |
| Raises: | NodeNotFound if the node is not found. |
| Raises: | BIOSSettingNotFound if the BIOS setting is not found. |
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. |
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_not_versions(model_name, versions)[source]¶Returns objects with versions that are not the specified versions.
| Parameters: |
|
|---|---|
| Returns: | list of the DB objects |
| Raises: | IronicException if there is no class associated with the name |
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. |
| 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_bios_setting_list(node_id, settings, version)[source]¶Update a list of BIOSSetting records.
| Parameters: |
|
|---|---|
| Returns: | A list of BIOSSetting objects. |
| Raises: | NodeNotFound if the node is not found. |
| Raises: | BIOSSettingNotFound if any of the settings 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_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: |
|
|---|---|
| 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. |
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.