Skip to content

Commit 8ca9b72

Browse files
Zuulopenstack-gerrit
authored andcommitted
Merge "tests: Add helpers for rebuild, cold migrate, and shelve/unshelve"
2 parents c5b33b0 + ecff78e commit 8ca9b72

File tree

3 files changed

+36
-30
lines changed

3 files changed

+36
-30
lines changed

nova/tests/functional/integrated_helpers.py

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -401,6 +401,20 @@ def _reboot_server(self, server, hard=False, expected_state='ACTIVE'):
401401
fake_notifier.wait_for_versioned_notifications('instance.reboot.end')
402402
return self._wait_for_state_change(server, expected_state)
403403

404+
def _rebuild_server(self, server, image_uuid, expected_state='ACTIVE'):
405+
"""Rebuild a server."""
406+
self.api.post_server_action(
407+
server['id'], {'rebuild': {'imageRef': image_uuid}},
408+
)
409+
fake_notifier.wait_for_versioned_notifications('instance.rebuild.end')
410+
return self._wait_for_state_change(server, expected_state)
411+
412+
def _migrate_server(self, server, host=None):
413+
"""Cold migrate a server."""
414+
body = {'host': host} if host else None
415+
self.api.post_server_action(server['id'], {'migrate': body})
416+
return self._wait_for_state_change(server, 'VERIFY_RESIZE')
417+
404418
def _resize_server(self, server, flavor_id):
405419
self.api.post_server_action(
406420
server['id'], {'resize': {'flavorRef': flavor_id}})
@@ -429,14 +443,18 @@ def _revert_resize(self, server):
429443
'instance.resize_revert.end')
430444
return server
431445

432-
def _live_migrate(self, server, migration_expected_state,
433-
server_expected_state='ACTIVE'):
446+
def _live_migrate(
447+
self, server, migration_expected_state='completed',
448+
server_expected_state='ACTIVE',
449+
):
434450
self.api.post_server_action(
435451
server['id'],
436452
{'os-migrateLive': {'host': None, 'block_migration': 'auto'}})
437453
self._wait_for_state_change(server, server_expected_state)
438454
self._wait_for_migration_status(server, [migration_expected_state])
439455

456+
_live_migrate_server = _live_migrate
457+
440458
def _suspend_server(self, server, expected_state='SUSPENDED'):
441459
"""Suspend a server."""
442460
self.api.post_server_action(server['id'], {'suspend': {}})
@@ -449,6 +467,16 @@ def _resume_server(self, server, expected_state='ACTIVE'):
449467
fake_notifier.wait_for_versioned_notifications('instance.resume.end')
450468
return self._wait_for_state_change(server, expected_state)
451469

470+
def _shelve_server(self, server, expected_state='SHELVED_OFFLOADED'):
471+
"""Shelve a server."""
472+
self.api.post_server_action(server['id'], {'shelve': {}})
473+
return self._wait_for_state_change(server, expected_state)
474+
475+
def _unshelve_server(self, server, expected_state='ACTIVE'):
476+
"""Unshelve a server."""
477+
self.api.post_server_action(server['id'], {'unshelve': {}})
478+
return self._wait_for_state_change(server, expected_state)
479+
452480

453481
class PlacementHelperMixin:
454482
"""A helper mixin for interacting with placement."""

nova/tests/functional/libvirt/test_numa_servers.py

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1157,13 +1157,6 @@ def _create_active_server(self, server_args=None):
11571157
server = self.api.post_server({'server': basic_server})
11581158
return self._wait_for_state_change(server, 'ACTIVE')
11591159

1160-
def _rebuild_server(self, active_server, image_ref):
1161-
args = {"rebuild": {"imageRef": image_ref}}
1162-
self.api.api_post(
1163-
'servers/%s/action' % active_server['id'], args)
1164-
fake_notifier.wait_for_versioned_notifications('instance.rebuild.end')
1165-
return self._wait_for_state_change(active_server, 'ACTIVE')
1166-
11671160
def test_rebuild_server_with_numa(self):
11681161
"""Create a NUMA instance and ensure it can be rebuilt.
11691162
"""

nova/tests/functional/regressions/test_bug_1835822.py

Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020

2121

2222
class RegressionTest1835822(
23-
test.TestCase, integrated_helpers.InstanceHelperMixin):
24-
# ---------------------------- setup ----------------------------
23+
test.TestCase, integrated_helpers.InstanceHelperMixin,
24+
):
2525

2626
def setUp(self):
2727
super(RegressionTest1835822, self).setUp()
@@ -44,7 +44,6 @@ def setUp(self):
4444
fake_notifier.stub_notifier(self)
4545
self.addCleanup(fake_notifier.reset)
4646

47-
# ---------------------------- helpers ----------------------------
4847
def _create_active_server(self, server_args=None):
4948
basic_server = {
5049
'flavorRef': 1,
@@ -59,22 +58,6 @@ def _create_active_server(self, server_args=None):
5958
server = self.api.post_server({'server': basic_server})
6059
return self._wait_for_state_change(server, 'ACTIVE')
6160

62-
def _rebuild_server(self, active_server):
63-
args = {"rebuild": {"imageRef": self.image_ref_1}}
64-
self.api.api_post('servers/%s/action' %
65-
active_server['id'], args)
66-
fake_notifier.wait_for_versioned_notifications('instance.rebuild.end')
67-
return self._wait_for_state_change(active_server, 'ACTIVE')
68-
69-
def _shelve_server(self, active_server):
70-
self.api.post_server_action(active_server['id'], {'shelve': {}})
71-
return self._wait_for_state_change(active_server, 'SHELVED_OFFLOADED')
72-
73-
def _unshelve_server(self, shelved_server):
74-
self.api.post_server_action(shelved_server['id'], {'unshelve': {}})
75-
return self._wait_for_state_change(shelved_server, 'ACTIVE')
76-
77-
# ---------------------------- tests ----------------------------
7861
def test_create_server_with_config_drive(self):
7962
"""Verify that we can create a server with a config drive.
8063
"""
@@ -149,13 +132,15 @@ def test_create_server_config_drive_rebuild_after_conf_change(self):
149132
# this server was created with force_config_drive=true
150133
# so assert now that force_config_drive is false it does
151134
# not override the value it was booted with.
152-
with_config_drive = self._rebuild_server(with_config_drive)
135+
with_config_drive = self._rebuild_server(
136+
with_config_drive, self.image_ref_1)
153137
self.assertTrue(with_config_drive['config_drive'])
154138

155139
# this server was booted with force_config_drive=False so
156140
# assert that it's config drive setting is not overridden
157141
self.flags(force_config_drive=True)
158-
without_config_drive = self._rebuild_server(without_config_drive)
142+
without_config_drive = self._rebuild_server(
143+
without_config_drive, self.image_ref_1)
159144
self.assertEqual('', without_config_drive['config_drive'])
160145

161146
def test_create_server_config_drive_shelve_unshelve_conf_change(self):

0 commit comments

Comments
 (0)