summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2015-01-26 03:46:13 +0000
committerGerrit Code Review <review@openstack.org>2015-01-26 03:46:13 +0000
commit7da49908750e89dae7b1a12b921028b7b8c35e4b (patch)
treebd68dcd9f7ca84ecbeb097df46b245564ebab0c4
parent340e30f347dbd86469f300370500ebb0d19399f8 (diff)
parent6681513fe247cd8c458f234b8514e2af25d8b0ff (diff)
downloadironic-7da49908750e89dae7b1a12b921028b7b8c35e4b.tar.gz
Merge "Force glance recheck for kernel/ramdisk on rebuild" into stable/juno
-rw-r--r--ironic/conductor/manager.py8
-rw-r--r--ironic/tests/conductor/test_manager.py7
2 files changed, 14 insertions, 1 deletions
diff --git a/ironic/conductor/manager.py b/ironic/conductor/manager.py
index d310b4dc4..6d017d047 100644
--- a/ironic/conductor/manager.py
+++ b/ironic/conductor/manager.py
@@ -527,6 +527,14 @@ class ConductorManager(periodic_task.PeriodicTasks):
previous_prov_state = node.provision_state
previous_tgt_provision_state = node.target_provision_state
+ if rebuild:
+ # Note(gilliard) Clear these to force the driver to
+ # check whether they have been changed in glance
+ instance_info = node.instance_info
+ instance_info.pop('kernel', None)
+ instance_info.pop('ramdisk', None)
+ node.instance_info = instance_info
+
# Set target state to expose that work is in progress
node.provision_state = states.DEPLOYING
node.target_provision_state = states.DEPLOYDONE
diff --git a/ironic/tests/conductor/test_manager.py b/ironic/tests/conductor/test_manager.py
index e22484392..f1f49ddc0 100644
--- a/ironic/tests/conductor/test_manager.py
+++ b/ironic/tests/conductor/test_manager.py
@@ -735,7 +735,9 @@ class DoNodeDeployTearDownTestCase(_ServiceSetUpMixin,
self._start_service()
mock_deploy.return_value = states.DEPLOYING
node = obj_utils.create_test_node(self.context, driver='fake',
- provision_state=states.ACTIVE)
+ provision_state=states.ACTIVE,
+ instance_info={'kernel': 'aaaa',
+ 'ramdisk': 'bbbb'})
self.service.do_node_deploy(self.context, node.uuid, rebuild=True)
self.service._worker_pool.waitall()
@@ -747,6 +749,9 @@ class DoNodeDeployTearDownTestCase(_ServiceSetUpMixin,
# Verify reservation has been cleared.
self.assertIsNone(node.reservation)
mock_deploy.assert_called_once_with(mock.ANY)
+ # Verify instance_info values has been cleared.
+ self.assertNotIn('kernel', node.instance_info)
+ self.assertNotIn('ramdisk', node.instance_info)
@mock.patch('ironic.drivers.modules.fake.FakeDeploy.deploy')
def test_do_node_deploy_rebuild_deployfail_state(self, mock_deploy):