diff options
author | Zuul <zuul@review.opendev.org> | 2019-08-15 23:39:50 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2019-08-15 23:39:50 +0000 |
commit | 35485eacfbd444ddbb7f2d1e8637bcecb295b485 (patch) | |
tree | 8ec348bb79d214d65c55daf72b989a1bad49b908 /nova/tests/unit/virt/ironic/test_driver.py | |
parent | 872a823d9a02f31e266882bfb499673c51fb4075 (diff) | |
parent | 62f6a0a1bc6c4b24621e1c2e927177f99501bef3 (diff) | |
download | nova-35485eacfbd444ddbb7f2d1e8637bcecb295b485.tar.gz |
Merge "API microversion 2.76: Add 'power-update' external event"
Diffstat (limited to 'nova/tests/unit/virt/ironic/test_driver.py')
-rw-r--r-- | nova/tests/unit/virt/ironic/test_driver.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/nova/tests/unit/virt/ironic/test_driver.py b/nova/tests/unit/virt/ironic/test_driver.py index c3f4692c72..670a2e1323 100644 --- a/nova/tests/unit/virt/ironic/test_driver.py +++ b/nova/tests/unit/virt/ironic/test_driver.py @@ -26,6 +26,7 @@ from testtools import matchers from tooz import hashring as hash_ring from nova.api.metadata import base as instance_metadata +from nova.api.openstack import common from nova import block_device from nova.compute import power_state as nova_states from nova.compute import provider_tree @@ -1864,6 +1865,20 @@ class IronicDriverTestCase(test.NoDBTestCase): mock_sp.assert_has_calls([mock.call(node.uuid, 'reboot', soft=True), mock.call(node.uuid, 'reboot')]) + @mock.patch.object(objects.Instance, 'save') + def test_power_update_event(self, mock_save): + instance = fake_instance.fake_instance_obj( + self.ctx, node=self.instance_uuid, + power_state=nova_states.RUNNING, + vm_state=vm_states.ACTIVE, + task_state=task_states.POWERING_OFF) + self.driver.power_update_event(instance, common.POWER_OFF) + self.assertEqual(nova_states.SHUTDOWN, instance.power_state) + self.assertEqual(vm_states.STOPPED, instance.vm_state) + self.assertIsNone(instance.task_state) + mock_save.assert_called_once_with( + expected_task_state=task_states.POWERING_OFF) + @mock.patch.object(loopingcall, 'FixedIntervalLoopingCall') @mock.patch.object(ironic_driver.IronicDriver, '_validate_instance_and_node') |