ironic.drivers.modules.agent_client module

class ironic.drivers.modules.agent_client.AgentClient[source]

Bases: object

Client for interacting with nodes via a REST API.

collect_system_logs(node)[source]

Collect and package diagnostic and support data from the ramdisk.

Parameters

node – A Node object.

Raises

IronicException when failed to issue the request or there was a malformed response from the agent.

Raises

AgentAPIError when agent failed to execute specified command.

Returns

A dict containing command response from agent. See get_commands_status() for a command result sample.

execute_clean_step(step, node, ports)[source]

Execute specified clean step.

Parameters
  • step – A clean step dictionary to execute.

  • node – A Node object.

  • ports – Ports associated with the node.

Raises

IronicException when failed to issue the request or there was a malformed response from the agent.

Raises

AgentAPIError when agent failed to execute specified command.

Returns

A dict containing command response from agent. See get_commands_status() for a command result sample. The value of key command_result is in the form of:

{
  'clean_result': <the result of execution, step specific>,
  'clean_step': <the clean step issued to agent>
}

execute_deploy_step(step, node, ports)[source]

Execute specified deploy step.

Parameters
  • step – A deploy step dictionary to execute.

  • node – A Node object.

  • ports – Ports associated with the node.

Raises

IronicException when failed to issue the request or there was a malformed response from the agent.

Raises

AgentAPIError when agent failed to execute specified command.

Returns

A dict containing command response from agent. See get_commands_status() for a command result sample. The value of key command_result is in the form of:

{
  'deploy_result': <the result of execution, step specific>,
  'deploy_step': <the deploy step issued to agent>
}

finalize_rescue(node)[source]

Instruct the ramdisk to finalize entering of rescue mode.

Parameters

node – A Node object.

Raises

IronicException if rescue_password is missing, or when failed to issue the request, or there was a malformed response from the agent.

Raises

AgentAPIError when agent failed to execute specified command.

Raises

InstanceRescueFailure when the agent ramdisk is too old to support transmission of the rescue password.

Returns

A dict containing command response from agent. See get_commands_status() for a command result sample.

get_clean_steps(node, ports)[source]

Get clean steps from agent.

Parameters
  • node – A node object.

  • ports – Ports associated with the node.

Raises

IronicException when failed to issue the request or there was a malformed response from the agent.

Raises

AgentAPIError when agent failed to execute specified command.

Returns

A dict containing command response from agent. See get_commands_status() for a command result sample. The value of key command_result is in the form of:

{
  'clean_steps': <a list of clean steps>,
  'hardware_manager_version': <manager version>
}

get_commands_status(node)[source]

Get command status from agent.

Parameters

node – A Node object.

Returns

A list of command results, each result is related to a command been issued to agent. A typical result can be:

{
  'command_name': <command name related to the result>,
  'command_params': <params related with the command>,
  'command_status': <current command status,
                    e.g. 'RUNNING', 'SUCCEEDED', 'FAILED'>,
  'command_error': <error message if command execution
                   failed>,
  'command_result': <command result if command execution
                    succeeded, the value is command specific,
                    e.g.:
                    * a dictionary containing keys clean_result
                      and clean_step for the command
                      clean.execute_clean_step;
                    * a dictionary containing keys deploy_result
                      and deploy_step for the command
                      deploy.execute_deploy_step;
                    * a string representing result message for
                      the command standby.cache_image;
                    * None for the command standby.sync.>
}

get_deploy_steps(node, ports)[source]

Get deploy steps from agent.

Parameters
  • node – A node object.

  • ports – Ports associated with the node.

Raises

IronicException when failed to issue the request or there was a malformed response from the agent.

Raises

AgentAPIError when agent failed to execute specified command.

Returns

A dict containing command response from agent. See get_commands_status() for a command result sample. The value of key command_result is in the form of:

{
  'deploy_steps': <a list of deploy steps>,
  'hardware_manager_version': <manager version>
}

install_bootloader(node, root_uuid, efi_system_part_uuid=None, prep_boot_part_uuid=None)[source]

Install a boot loader on the image.

Parameters
  • node – A node object.

  • root_uuid – The UUID of the root partition.

  • efi_system_part_uuid – The UUID of the efi system partition where the bootloader will be installed to, only used for uefi boot mode.

  • prep_boot_part_uuid – The UUID of the PReP Boot partition where the bootloader will be installed to when local booting a partition image on a ppc64* system.

Raises

IronicException when failed to issue the request or there was a malformed response from the agent.

Raises

AgentAPIError when agent failed to execute specified command.

Returns

A dict containing command response from agent. See get_commands_status() for a command result sample.

power_off(node)[source]

Soft powers off the bare metal node by shutting down ramdisk OS.

Parameters

node – A Node object.

Raises

IronicException when failed to issue the request or there was a malformed response from the agent.

Raises

AgentAPIError when agent failed to execute specified command.

Returns

A dict containing command response from agent. See get_commands_status() for a command result sample.

prepare_image(node, image_info, wait=False)[source]

Call the prepare_image method on the node.

Parameters
  • node – A Node object.

  • image_info – A dictionary containing various image related information.

  • wait – True to wait for the command to finish executing, False otherwise.

Raises

IronicException when failed to issue the request or there was a malformed response from the agent.

Raises

AgentAPIError when agent failed to execute specified command.

Returns

A dict containing command status from agent. See get_commands_status() for a command result sample.

start_iscsi_target(node, iqn, portal_port=3260, wipe_disk_metadata=False)[source]

Expose the node’s disk as an ISCSI target.

Parameters
  • node – an Ironic node object

  • iqn – iSCSI target IQN

  • portal_port – iSCSI portal port

  • wipe_disk_metadata – True if the agent should wipe first the disk magic strings like the partition table, RAID or filesystem signature.

Raises

IronicException when failed to issue the request or there was a malformed response from the agent.

Raises

AgentAPIError when agent failed to execute specified command.

Returns

A dict containing command response from agent. See get_commands_status() for a command result sample.

sync(node)[source]

Flush file system buffers forcing changed blocks to disk.

Parameters

node – A Node object.

Raises

IronicException when failed to issue the request or there was a malformed response from the agent.

Raises

AgentAPIError when agent failed to execute specified command.

Returns

A dict containing command response from agent. See get_commands_status() for a command result sample.