diff options
author | Jenkins <jenkins@review.openstack.org> | 2015-01-26 03:46:13 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2015-01-26 03:46:13 +0000 |
commit | 7da49908750e89dae7b1a12b921028b7b8c35e4b (patch) | |
tree | bd68dcd9f7ca84ecbeb097df46b245564ebab0c4 | |
parent | 340e30f347dbd86469f300370500ebb0d19399f8 (diff) | |
parent | 6681513fe247cd8c458f234b8514e2af25d8b0ff (diff) | |
download | ironic-7da49908750e89dae7b1a12b921028b7b8c35e4b.tar.gz |
Merge "Force glance recheck for kernel/ramdisk on rebuild" into stable/juno
-rw-r--r-- | ironic/conductor/manager.py | 8 | ||||
-rw-r--r-- | ironic/tests/conductor/test_manager.py | 7 |
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): |