The ironic.conductor.manager Module

Conduct all activity related to bare-metal deployments.

A single instance of ironic.conductor.manager.ConductorManager is created within the ironic-conductor process, and is responsible for performing all actions on bare metal resources (Chassis, Nodes, and Ports). Commands are received via RPCs. The conductor service also performs periodic tasks, eg. to monitor the status of active deployments.

Drivers are loaded via entrypoints by the ironic.common.driver_factory class. Each driver is instantiated only once, when the ConductorManager service starts. In this way, a single ConductorManager may use multiple drivers, and manage heterogeneous hardware.

When multiple ConductorManager are run on different hosts, they are all active and cooperatively manage all nodes in the deployment. Nodes are locked by each conductor when performing actions which change the state of that node; these locks are represented by the ironic.conductor.task_manager.TaskManager class.

A tooz.hashring.HashRing is used to distribute nodes across the set of active conductors which support each node’s driver. Rebalancing this ring can trigger various actions by each conductor, such as building or tearing down the TFTP environment for a node, notifying Neutron of a change, etc.

class ironic.conductor.manager.ConductorManager(host, topic)[source]

Bases: ironic.conductor.base_manager.BaseConductorManager

Ironic Conductor manager main class.

change_node_power_state(*args, **kwargs)
continue_node_clean(*args, **kwargs)[source]

RPC method to continue cleaning a node.

This is useful for cleaning tasks that are async. When they complete, they call back via RPC, a new worker and lock are set up, and cleaning continues. This can also be used to resume cleaning on take_over.

Parameters:
  • context – an admin context.
  • node_id – the id or uuid of a node.
Raises:

InvalidStateRequested if the node is not in CLEANWAIT state

Raises:

NoFreeConductorWorker when there is no free worker to start async task

Raises:

NodeLocked if node is locked by another conductor.

Raises:

NodeNotFound if the node no longer appears in the database

Raises:

NodeCleaningFailure if an internal error occurred when getting the next clean steps

create_node(*args, **kwargs)
destroy_node(*args, **kwargs)
destroy_port(*args, **kwargs)
destroy_portgroup(*args, **kwargs)
destroy_volume_connector(*args, **kwargs)
destroy_volume_target(*args, **kwargs)
do_node_clean(*args, **kwargs)
do_node_deploy(*args, **kwargs)
do_node_tear_down(*args, **kwargs)
do_provisioning_action(*args, **kwargs)
driver_vendor_passthru(*args, **kwargs)
get_boot_device(*args, **kwargs)
get_console_information(*args, **kwargs)
get_driver_properties(*args, **kwargs)
get_driver_vendor_passthru_methods(*args, **kwargs)
get_node_vendor_passthru_methods(*args, **kwargs)
get_raid_logical_disk_properties(*args, **kwargs)
get_supported_boot_devices(*args, **kwargs)
heartbeat(*args, **kwargs)
inject_nmi(*args, **kwargs)
inspect_hardware(*args, **kwargs)
object_action(*args, **kwargs)[source]

Perform an action on a VersionedObject instance.

Parameters:
  • context – The context within which to perform the action
  • objinst – The object instance on which to perform the action
  • objmethod – The name of the action method to call
  • args – The positional arguments to the action method
  • kwargs – The keyword arguments to the action method
Returns:

A tuple with the updates made to the object and the result of the action method

object_backport_versions(*args, **kwargs)[source]

Perform a backport of an object instance.

The default behavior of the base VersionedObjectSerializer, upon receiving an object with a version newer than what is in the local registry, is to call this method to request a backport of the object.

Parameters:
  • context – The context within which to perform the backport
  • objinst – An instance of a VersionedObject to be backported
  • object_versions – A dict of {objname: version} mappings
Returns:

The downgraded instance of objinst

object_class_action_versions(*args, **kwargs)[source]

Perform an action on a VersionedObject class.

Parameters:
  • context – The context within which to perform the action
  • objname – The registry name of the object
  • objmethod – The name of the action method to call
  • object_versions – A dict of {objname: version} mappings
  • args – The positional arguments to the action method
  • kwargs – The keyword arguments to the action method
Returns:

The result of the action method, which may (or may not) be an instance of the implementing VersionedObject class.

set_boot_device(*args, **kwargs)
set_console_mode(*args, **kwargs)
set_target_raid_config(*args, **kwargs)
update_node(*args, **kwargs)
update_port(*args, **kwargs)
update_portgroup(*args, **kwargs)
update_volume_connector(*args, **kwargs)
update_volume_target(*args, **kwargs)
validate_driver_interfaces(*args, **kwargs)
vendor_passthru(*args, **kwargs)
vif_attach(*args, **kwargs)
vif_detach(*args, **kwargs)
vif_list(*args, **kwargs)