ironic.drivers.modules.agent module

class ironic.drivers.modules.agent.AgentDeploy[source]

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

Interface for deploy-related actions.

clean_up(task)[source]

Clean up the deployment environment for this node.

If preparation of the deployment environment ahead of time is possible, this method should be implemented by the driver. It should erase anything cached by the prepare method.

If implemented, this method must be idempotent. It may be called multiple times for the same node on the same conductor, and it may be called by multiple conductors in parallel. Therefore, it must not require an exclusive lock.

This method is called before tear_down.

Parameters

task – a TaskManager instance.

deploy(task)[source]

Perform a deployment to a node.

Perform the necessary work to deploy an image onto the specified node. This method will be called after prepare(), which may have already performed any preparatory steps, such as pre-caching some data for the node.

Parameters

task – a TaskManager instance.

Returns

status of the deploy. One of ironic.common.states.

get_properties()[source]

Return the properties of the interface.

Returns

dictionary of <property name>:<property description> entries.

prepare(task)[source]

Prepare the deployment environment for this node.

Parameters

task – a TaskManager instance.

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

exception.ImageRefValidationFailed if image_source is not Glance href and is not HTTP(S) URL.

Raises

exception.InvalidParameterValue if network validation fails.

Raises

any boot interface’s prepare_ramdisk exceptions.

prepare_cleaning(task)[source]

Boot into the agent to prepare for cleaning.

Parameters

task – a TaskManager object containing the node

Raises

NodeCleaningFailure, NetworkError if the previous cleaning ports cannot be removed or if new cleaning ports cannot be created.

Raises

InvalidParameterValue if cleaning network UUID config option has an invalid value.

Returns

states.CLEANWAIT to signify an asynchronous prepare

take_over(task)[source]

Take over management of this node from a dead conductor.

Parameters

task – a TaskManager instance.

tear_down(task)[source]

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

Parameters

task – a TaskManager instance.

Returns

status of the deploy. One of ironic.common.states.

Raises

NetworkError if the cleaning ports cannot be removed.

Raises

InvalidParameterValue when the wrong power state is specified or the wrong driver info is specified for power management.

Raises

StorageError when the storage interface attached volumes fail to detach.

Raises

other exceptions by the node’s power driver if something wrong occurred during the power action.

tear_down_cleaning(task)[source]

Clean up the PXE and DHCP files after cleaning.

Parameters

task – a TaskManager object containing the node

Raises

NodeCleaningFailure, NetworkError if the cleaning ports cannot be removed

validate(task)[source]

Validate the driver-specific Node deployment info.

This method validates whether the properties of the supplied node contain the required information for this driver to deploy images to the node.

Parameters

task – a TaskManager instance

Raises

MissingParameterValue, if any of the required parameters are missing.

Raises

InvalidParameterValue, if any of the parameters have invalid value.

class ironic.drivers.modules.agent.AgentDeployMixin[source]

Bases: ironic.drivers.modules.agent_base.AgentDeployMixin

check_deploy_success(node)[source]
continue_deploy(task)[source]

Continues the deployment of baremetal node.

This method continues the deployment of the baremetal node after the ramdisk have been booted.

Parameters

task – a TaskManager instance

deploy_has_started(task)[source]

Check if the deployment has started already.

Returns

True if the deploy has started, False otherwise.

deploy_is_done(task)[source]

Check if the deployment is already completed.

Returns

True if the deployment is completed. False otherwise

reboot_to_instance(task)[source]

Method invoked after the deployment is completed.

Parameters

task – a TaskManager instance

class ironic.drivers.modules.agent.AgentRAID[source]

Bases: ironic.drivers.base.RAIDInterface

Implementation of RAIDInterface which uses agent ramdisk.

create_configuration(task, create_root_volume=True, create_nonroot_volumes=True)[source]

Create a RAID configuration on a bare metal using agent ramdisk.

This method creates a RAID configuration on the given node.

Parameters
  • task – a TaskManager instance.

  • create_root_volume – If True, a root volume is created during RAID configuration. Otherwise, no root volume is created. Default is True.

  • create_nonroot_volumes – If True, non-root volumes are created. If False, no non-root volumes are created. Default is True.

Returns

states.CLEANWAIT if operation was successfully invoked.

Raises

MissingParameterValue, if node.target_raid_config is missing or was found to be empty after skipping root volume and/or non-root volumes.

delete_configuration(task)[source]

Deletes RAID configuration on the given node.

Parameters

task – a TaskManager instance.

Returns

states.CLEANWAIT if operation was successfully invoked

get_properties()[source]

Return the properties of the interface.

class ironic.drivers.modules.agent.AgentRescue[source]

Bases: ironic.drivers.base.RescueInterface

Implementation of RescueInterface which uses agent ramdisk.

clean_up(task)[source]

Clean up after RESCUEWAIT timeout/failure or finishing rescue.

Rescue password should be removed from the node and ramdisk boot environment should be cleaned if Ironic is managing the ramdisk boot.

Parameters

task – a TaskManager instance with the node.

Raises

NetworkError if the rescue ports cannot be removed.

get_properties()[source]

Return the properties of the interface.

rescue(task)[source]

Boot a rescue ramdisk on the node.

Parameters

task – a TaskManager instance.

Raises

NetworkError if the tenant ports cannot be removed.

Raises

InvalidParameterValue when the wrong power state is specified or the wrong driver info is specified for power management.

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.

Returns

Returns states.RESCUEWAIT

unrescue(task)[source]

Attempt to move a rescued node back to active state.

Parameters

task – a TaskManager instance.

Raises

NetworkError if the rescue ports cannot be removed.

Raises

InvalidParameterValue when the wrong power state is specified or the wrong driver info is specified for power management.

Raises

other exceptions by the node’s power driver if something wrong occurred during the power action.

Raises

any boot interface’s prepare_instance exceptions.

Returns

Returns states.ACTIVE

validate(task)[source]

Validate that the node has required properties for agent rescue.

Parameters

task – a TaskManager instance with the node being checked

Raises

InvalidParameterValue if ‘instance_info/rescue_password’ has empty password or rescuing network UUID config option has an invalid value.

Raises

MissingParameterValue if node is missing one or more required parameters

ironic.drivers.modules.agent.check_image_size(task, image_source)[source]

Check if the requested image is larger than the ram size.

Parameters
  • task – a TaskManager instance containing the node to act on.

  • image_source – href of the image.

Raises

InvalidParameterValue if size of the image is greater than the available ram size.

ironic.drivers.modules.agent.validate_http_provisioning_configuration(node)[source]

Validate configuration options required to perform HTTP provisioning.

Parameters

node – an ironic node object

Raises

MissingParameterValue if required option(s) is not set.

ironic.drivers.modules.agent.validate_image_proxies(node)[source]

Check that the provided proxy parameters are valid.

Parameters

node – an Ironic node.

Raises

InvalidParameterValue if any of the provided proxy parameters are incorrect.