ironic.drivers.modules.iscsi_deploy module

ironic.drivers.modules.iscsi_deploy module

service None

Bases: ironic.drivers.modules.agent_base_vendor.AgentDeployMixin

AgentDeployMixin.continue_deploy(task)

Method invoked when deployed using iSCSI.

This method is invoked during a heartbeat from an agent when the node is in wait-call-back state. This deploys the image on the node and then configures the node to boot according to the desired boot option (netboot or localboot).

Parameters:
  • task – a TaskManager object containing the node.
  • kwargs – the kwargs passed from the heartbeat method.
Raises:

InstanceDeployFailure, if it encounters some error during the deploy.

service None

Bases: ironic.drivers.modules.iscsi_deploy.AgentDeployMixin, ironic.drivers.base.DeployInterface

iSCSI Deploy Interface for deploy-related actions.

ISCSIDeploy.clean_up(task)

Clean up the deployment environment for the task’s node.

Unlinks TFTP and instance images and triggers image cache cleanup. Removes the TFTP configuration files for this node.

Parameters:task – a TaskManager instance containing the node to act on.
ISCSIDeploy.deploy(task)

Start deployment of the task’s node.

Fetches instance image, updates the DHCP port options for next boot, and issues a reboot request to the power driver. This causes the node to boot into the deployment ramdisk and triggers the next phase of PXE-based deployment via agent heartbeats.

Parameters:task – a TaskManager instance containing the node to act on.
Returns:deploy state DEPLOYWAIT.
ISCSIDeploy.execute_clean_step(task, step)

Execute a clean step asynchronously on the agent.

Parameters:
  • task – a TaskManager object containing the node
  • step – a clean step dictionary to execute
Raises:

NodeCleaningFailure if the agent does not return a command status

Returns:

states.CLEANWAIT to signify the step will be completed asynchronously.

ISCSIDeploy.get_clean_steps(task)

Get the list of clean steps from the agent.

Parameters:task – a TaskManager object containing the node
Raises:NodeCleaningFailure – if the clean steps are not yet available (cached), for example, when a node has just been enrolled and has not been cleaned yet.
Returns:A list of clean step dictionaries.
ISCSIDeploy.get_properties()

Return the properties of the interface.

Returns:dictionary of <property name>:<property description> entries.
ISCSIDeploy.prepare(task)

Prepare the deployment environment for this task’s node.

Generates the TFTP configuration for PXE-booting both the deployment and user images, fetches the TFTP image from Glance and add it to the local cache.

Parameters:task – a TaskManager instance containing the node to act on.
Raises:NetworkError: if the previous cleaning ports cannot be removed or if new cleaning ports cannot be created.
Raises:InvalidParameterValue when the wrong power state is specified or the wrong driver info is specified for power management.
Raises:StorageError If the storage driver is unable to attach the configured volumes.
Raises:other exceptions by the node’s power driver if something wrong occurred during the power action.
Raises:any boot interface’s prepare_ramdisk exceptions.
ISCSIDeploy.prepare_cleaning(task)

Boot into the agent to prepare for cleaning.

Parameters:task – a TaskManager object containing the node
Raises:NodeCleaningFailure – if the previous cleaning ports cannot be removed or if new cleaning ports cannot be created
Returns:states.CLEANWAIT to signify an asynchronous prepare.
ISCSIDeploy.take_over(task)

Take over management of this task’s node from a dead conductor.

If conductors’ hosts maintain a static relationship to nodes, this method should be implemented by the driver to allow conductors to perform the necessary work during the remapping of nodes to conductors when a conductor joins or leaves the cluster.

For example, the PXE driver has an external dependency:
Neutron must forward DHCP BOOT requests to a conductor which has prepared the tftpboot environment for the given node. When a conductor goes offline, another conductor must change this setting in Neutron as part of remapping that node’s control to itself. This is performed within the takeover method.
Parameters:task – A TaskManager instance containing the node to act on.
ISCSIDeploy.tear_down(task)

Tear down a previous deployment on the task’s node.

Power off the node. All actual clean-up is done in the clean_up() method which should be called separately.

Parameters:task – a TaskManager instance containing the node to act on.
Returns:deploy state DELETED.
Raises:NetworkError if the cleaning ports cannot be removed.
Raises:InvalidParameterValue when the wrong state is specified or the wrong driver info is specified.
Raises:StorageError when volume detachment fails.
Raises:other exceptions by the node’s power driver if something wrong occurred during the power action.
ISCSIDeploy.tear_down_cleaning(task)

Clean up the PXE and DHCP files after cleaning.

Parameters:task – a TaskManager object containing the node
Raises:NodeCleaningFailure – if the cleaning ports cannot be removed
ISCSIDeploy.validate(task)

Validate the deployment information for the task’s node.

Parameters:task – a TaskManager instance containing the node to act on.
Raises:InvalidParameterValue.
Raises:MissingParameterValue
service None

Bases: ironic.drivers.modules.image_cache.ImageCache

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.