ironic.api.controllers.v1.ramdisk module

class ironic.api.controllers.v1.ramdisk.HeartbeatController(*args, **kwargs)[source]

Bases: pecan.rest.RestController

Controller handling heartbeats from deploy ramdisk.

post(node_ident, callback_url, agent_version=None, agent_token=None, agent_verify_ca=None, agent_status=None, agent_status_message=None)[source]

Process a heartbeat from the deploy ramdisk.

Parameters
  • node_ident – the UUID or logical name of a node.

  • callback_url – the URL to reach back to the ramdisk.

  • agent_version – The version of the agent that is heartbeating. None indicates that the agent that is heartbeating is a version before sending agent_version was introduced so agent v3.0.0 (the last release before sending agent_version was introduced) will be assumed.

  • agent_token – randomly generated validation token.

  • agent_verify_ca – TLS certificate to use to connect to the agent.

  • agent_status – Current status of the heartbeating agent. Used by anaconda ramdisk to send status back to Ironic. The valid states are ‘start’, ‘end’, ‘error’

  • agent_status_message – Optional status message describing current agent_status

Raises

NodeNotFound if node with provided UUID or name was not found.

Raises

InvalidUuidOrName if node_ident is not valid name or UUID.

Raises

NoValidHost if RPC topic for node could not be retrieved.

Raises

NotFound if requested API version does not allow this endpoint.

class ironic.api.controllers.v1.ramdisk.LookupController(*args, **kwargs)[source]

Bases: pecan.rest.RestController

Controller handling node lookup for a deploy ramdisk.

get_all(addresses=None, node_uuid=None)[source]

Look up a node by its MAC addresses and optionally UUID.

If the “restrict_lookup” option is set to True (the default), limit the search to nodes in certain transient states (e.g. deploy wait).

Parameters
  • addresses – list of MAC addresses for a node.

  • node_uuid – UUID of a node.

Raises

NotFound if requested API version does not allow this endpoint.

Raises

NotFound if suitable node was not found or node’s provision state is not allowed for the lookup.

Raises

IncompleteLookup if neither node UUID nor any valid MAC address was provided.

lookup_allowed(node)[source]
ironic.api.controllers.v1.ramdisk.config(token)[source]