Allow ansible deploys to be fast-tracked
Change-Id: I117f51de1a95ca1cb5dc8b5f357819967a050d11
This commit is contained in:
parent
b23f4d39ab
commit
642bc983b3
|
@ -31,6 +31,7 @@ import yaml
|
||||||
|
|
||||||
from ironic.common import dhcp_factory
|
from ironic.common import dhcp_factory
|
||||||
from ironic.common import exception
|
from ironic.common import exception
|
||||||
|
from ironic.common import faults
|
||||||
from ironic.common.i18n import _
|
from ironic.common.i18n import _
|
||||||
from ironic.common import images
|
from ironic.common import images
|
||||||
from ironic.common import states
|
from ironic.common import states
|
||||||
|
@ -488,6 +489,9 @@ class AnsibleDeploy(agent_base.HeartbeatMixin,
|
||||||
# TODO(pas-ha) investigate takeover scenario
|
# TODO(pas-ha) investigate takeover scenario
|
||||||
if node.provision_state == states.DEPLOYING:
|
if node.provision_state == states.DEPLOYING:
|
||||||
# adding network-driver dependent provisioning ports
|
# adding network-driver dependent provisioning ports
|
||||||
|
fast_track = manager_utils.is_fast_track(task)
|
||||||
|
power_state_to_restore = None
|
||||||
|
if not fast_track:
|
||||||
manager_utils.node_power_action(task, states.POWER_OFF)
|
manager_utils.node_power_action(task, states.POWER_OFF)
|
||||||
power_state_to_restore = (
|
power_state_to_restore = (
|
||||||
manager_utils.power_on_node_if_needed(task))
|
manager_utils.power_on_node_if_needed(task))
|
||||||
|
@ -576,12 +580,17 @@ class AnsibleDeploy(agent_base.HeartbeatMixin,
|
||||||
if not node.driver_internal_info['clean_steps']:
|
if not node.driver_internal_info['clean_steps']:
|
||||||
# no clean steps configured, nothing to do.
|
# no clean steps configured, nothing to do.
|
||||||
return
|
return
|
||||||
power_state_to_restore = manager_utils.power_on_node_if_needed(task)
|
fast_track = manager_utils.is_fast_track(task)
|
||||||
|
power_state_to_restore = None
|
||||||
|
if not fast_track:
|
||||||
|
power_state_to_restore = manager_utils.power_on_node_if_needed(
|
||||||
|
task)
|
||||||
task.driver.network.add_cleaning_network(task)
|
task.driver.network.add_cleaning_network(task)
|
||||||
manager_utils.restore_power_state_if_needed(
|
manager_utils.restore_power_state_if_needed(
|
||||||
task, power_state_to_restore)
|
task, power_state_to_restore)
|
||||||
boot_opt = deploy_utils.build_agent_options(node)
|
boot_opt = deploy_utils.build_agent_options(node)
|
||||||
task.driver.boot.prepare_ramdisk(task, boot_opt)
|
task.driver.boot.prepare_ramdisk(task, boot_opt)
|
||||||
|
if not fast_track:
|
||||||
manager_utils.node_power_action(task, states.REBOOT)
|
manager_utils.node_power_action(task, states.REBOOT)
|
||||||
return states.CLEANWAIT
|
return states.CLEANWAIT
|
||||||
|
|
||||||
|
@ -593,10 +602,15 @@ class AnsibleDeploy(agent_base.HeartbeatMixin,
|
||||||
:raises NodeCleaningFailure: if the cleaning ports cannot be
|
:raises NodeCleaningFailure: if the cleaning ports cannot be
|
||||||
removed
|
removed
|
||||||
"""
|
"""
|
||||||
|
fast_track = manager_utils.is_fast_track(task)
|
||||||
|
node = task.node
|
||||||
|
cleaning_failure = (node.fault == faults.CLEAN_FAILURE)
|
||||||
|
if not (fast_track or cleaning_failure):
|
||||||
manager_utils.node_power_action(task, states.POWER_OFF)
|
manager_utils.node_power_action(task, states.POWER_OFF)
|
||||||
task.driver.boot.clean_up_ramdisk(task)
|
task.driver.boot.clean_up_ramdisk(task)
|
||||||
power_state_to_restore = manager_utils.power_on_node_if_needed(task)
|
power_state_to_restore = manager_utils.power_on_node_if_needed(task)
|
||||||
task.driver.network.remove_cleaning_network(task)
|
task.driver.network.remove_cleaning_network(task)
|
||||||
|
if not (fast_track or cleaning_failure):
|
||||||
manager_utils.restore_power_state_if_needed(
|
manager_utils.restore_power_state_if_needed(
|
||||||
task, power_state_to_restore)
|
task, power_state_to_restore)
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
Adds support for fast-tracking to ``ansible`` deploy interface.
|
Loading…
Reference in New Issue