Fix the issue of unshelving vm fail failure
it would change the vm_state firstly and then change task_state while shelving the vm is done, so we need to wait to change the task state. Change-Id: I38446b178bae871488d7672e67cbd4e6690a6b52
This commit is contained in:
parent
d66486874d
commit
d5631b9ff5
|
@ -368,6 +368,14 @@ class NovaScenario(neutron_utils.NeutronBaseScenario,
|
|||
timeout=CONF.openstack.nova_server_shelve_timeout,
|
||||
check_interval=CONF.openstack.nova_server_shelve_poll_interval
|
||||
)
|
||||
utils.wait_for_status(
|
||||
server,
|
||||
ready_statuses=["None"],
|
||||
status_attr="OS-EXT-STS:task_state",
|
||||
update_resource=utils.get_from_manager(),
|
||||
timeout=CONF.openstack.nova_server_shelve_timeout,
|
||||
check_interval=CONF.openstack.nova_server_shelve_poll_interval
|
||||
)
|
||||
|
||||
@atomic.action_timer("nova.unshelve_server")
|
||||
def _unshelve_server(self, server):
|
||||
|
|
|
@ -223,13 +223,23 @@ class NovaScenarioTestCase(test.ScenarioTestCase):
|
|||
nova_scenario = utils.NovaScenario(context=self.context)
|
||||
nova_scenario._shelve_server(self.server)
|
||||
self.server.shelve.assert_called_once_with()
|
||||
self.mock_wait_for_status.mock.assert_called_once_with(
|
||||
self.server,
|
||||
ready_statuses=["SHELVED_OFFLOADED"],
|
||||
update_resource=self.mock_get_from_manager.mock.return_value,
|
||||
check_interval=CONF.openstack.nova_server_shelve_poll_interval,
|
||||
timeout=CONF.openstack.nova_server_shelve_timeout)
|
||||
self.mock_get_from_manager.mock.assert_called_once_with()
|
||||
self.mock_wait_for_status.mock.assert_has_calls([
|
||||
mock.call(
|
||||
self.server,
|
||||
ready_statuses=["SHELVED_OFFLOADED"],
|
||||
update_resource=self.mock_get_from_manager.mock.return_value,
|
||||
check_interval=CONF.openstack.nova_server_shelve_poll_interval,
|
||||
timeout=CONF.openstack.nova_server_shelve_timeout
|
||||
),
|
||||
mock.call(
|
||||
self.server,
|
||||
ready_statuses=["None"],
|
||||
status_attr="OS-EXT-STS:task_state",
|
||||
update_resource=self.mock_get_from_manager.mock.return_value,
|
||||
check_interval=CONF.openstack.nova_server_shelve_poll_interval,
|
||||
timeout=CONF.openstack.nova_server_shelve_timeout)]
|
||||
)
|
||||
self.assertEqual(2, self.mock_get_from_manager.mock.call_count)
|
||||
self._test_atomic_action_timer(nova_scenario.atomic_actions(),
|
||||
"nova.shelve_server")
|
||||
|
||||
|
|
Loading…
Reference in New Issue