ironic/ironic/common
Mark Goddard 65a68e4e96 Deploy steps - conductor & drivers
This adds a 'deploy_step' decorator. A deploy step must take as the
only positional argument, a TaskManager object.

A step can be executed synchronously or asynchronously. A step should
return None if the method has completed synchronously or
states.DEPLOYWAIT if the step will continue to execute asynchronously.
If the step executes asynchronously, it should issue a call to the
'continue_node_deploy' RPC, so the conductor can begin the next
deploy step.

Only steps with priorities greater than 0 are used.
These steps are ordered by priority from highest value to lowest
value. For steps with the same priority, they are ordered by driver
interface priority (see conductor.manager.DEPLOYING_INTERFACE_PRIORITY).

All in-tree DeployInterfaces are converted to have one big deploy_step
(their existing deploy() method).

A new RPC method 'continue_node_deploy' (RPC API version 1.45) is used
by deploy steps to notify the conductor to continue node deployment
(e.g. execute the next deploy step).

Similar to cleaning, the conductor gets the node's deploy steps and
executes them, one at a time (one deploy step right now). The conductor
also handles out-of-tree drivers that don't have deploy steps yet; a
warning is logged in these cases.

Co-Authored-By: Ruby Loo <rloo@oath.com>

Change-Id: I5feac3856cc4b87a850180b7fd0b3b9805f9225f
Story: #1753128
Task: #22592
2018-07-11 16:18:59 +00:00
..
glance_service Merge "Remove deprecated [keystone] config section" 2018-06-14 10:44:42 +00:00
__init__.py Remove copyright from empty files 2014-01-07 21:05:01 +08:00
boot_devices.py Implementation for UEFI iSCSI boot for ILO 2018-01-25 06:33:21 +00:00
boot_modes.py Adds boot mode support to ManagementInterface 2018-06-15 15:19:41 +00:00
cinder.py Remove deprecated [keystone] config section 2018-06-11 13:30:50 +00:00
config.py Enable OSProfiler support in Ironic 2017-07-07 15:58:28 -07:00
context.py Fix tenant DeprecationWarning from oslo_context 2018-05-11 14:28:42 -07:00
dhcp_factory.py Change pxe dhcp options name to codes. 2017-10-13 12:50:58 +03:00
driver_factory.py Remove support for creating and loading classic drivers 2018-07-02 17:37:28 +02:00
exception.py Detect skip version upgrades from version earlier than Pike 2018-07-06 12:46:14 -04:00
faults.py Validating fault value when querying with fault field 2018-06-12 20:47:30 +08:00
fsm.py Fix W504 errors 2018-05-09 06:11:30 -07:00
grub_conf.template Fix for automated boot iso issue with IPA ramdisk 2015-04-10 09:09:53 -07:00
hash_ring.py Remove support for creating and loading classic drivers 2018-07-02 17:37:28 +02:00
i18n.py Merge "Update the documentation links - code comments" 2017-08-15 14:48:41 +00:00
image_service.py Fix W504 errors 2018-05-09 06:11:30 -07:00
images.py Fix W504 errors 2018-05-09 06:11:30 -07:00
isolinux_config.template Add support for creating vfat and iso images 2014-08-26 21:18:11 +05:30
keystone.py Use adapters for neutronclient 2017-12-14 13:36:03 +02:00
network.py Update wording used in removal of VIFs 2018-04-18 03:00:15 +00:00
neutron.py Fix error when deleting a non-existent port 2018-06-21 16:16:56 +01:00
policy.py Add Node BIOS support - REST API 2018-05-28 12:17:39 +02:00
profiler.py Enable OSProfiler support in Ironic - follow-up 2017-08-18 14:41:44 +00:00
pxe_utils.py Move boot-related code to boot_mode_utils.py 2018-06-20 11:37:11 +02:00
raid.py Add support for inband raid configuration agent ramdisk 2015-09-14 15:52:31 +00:00
release_mappings.py Deploy steps - conductor & drivers 2018-07-11 16:18:59 +00:00
rpc.py Enable OSProfiler support in Ironic 2017-07-07 15:58:28 -07:00
rpc_service.py Modifications for rolling upgrades 2017-07-13 12:16:30 -04:00
service.py reloads mutable config values on SIGHUP 2018-02-28 23:46:30 +00:00
states.py Implements baremetal inspect abort 2018-05-30 21:04:37 +08:00
swift.py Auto-detect the defaults for [glance]swift_{account,temp_url_key,endpoint_url} 2017-12-12 11:48:06 +01:00
utils.py Move parse_instance_info_capabilities() to common utils.py 2018-06-22 13:40:11 +02:00
wsgi_service.py Fix W504 errors 2018-05-09 06:11:30 -07:00