The notification sample test for unshelve waits for the instance to
reach ACTIVE state and then asserts if unshelve.end notification is
emitted properly. However the instance.vm_state is set to ACTIVE earlier[1]
than emitting the unshelve.end notification[2]. This can cause two
different test case failure.
1) _test_unshelve_server() fails with no ushelve.end notification
received.
2) _test_shelve_and_shelve_offload_server() also has a unshelve action
at the end and that test step also only waits for the the ACTIVE state.
So the unshelve.end notification from the end of
_test_shelve_and_shelve_offload_server() can bleed into the
_test_unshelve_server() step causing that it receive one more
notifications.
So this patch adds an extra
self._wait_for_notification('instance.unshelve.end') call to each test
step to prevent the instability.
[1] https://github.com/openstack/nova/blob/5c6c1f8f/nova/compute/manager.py#L5322-L5326
[2] https://github.com/openstack/nova/blob/5c6c1f8f/nova/compute/manager.py#L5329
[3] https://github.com/openstack/nova/blob/5c6c1f8f/nova/tests/functional/notification_sample_tests/test_instance.py#L836
Conflicts:
nova/tests/functional/notification_sample_tests/test_instance.py
Conflicts due to:
* I019e88fabd1d386c0d6395a7b1969315873485fd
Closes-Bug: #1835070
Change-Id: Ie217523a8969326b27930d7f74e50e9b352ab7a1
(cherry picked from commit 40f1e7c4c2)
(cherry picked from commit 3bc6ff029f)