factor out compute service start in ServerMovingTest

Starting multiple compute service in a single functional test is
not a single line of code and it repeated multiple times. So
this patch pulls that code out into a common util function.

Change-Id: I204e17fe105f6378f1c9f8a7fc622a1886babecc
(cherry picked from commit f4b6a6872b)
This commit is contained in:
Balazs Gibizer 2017-09-12 00:48:11 +02:00 committed by Matt Riedemann
parent e847eed4a5
commit 8d26d387ab
1 changed files with 22 additions and 35 deletions

View File

@ -1295,9 +1295,6 @@ class ProviderUsageBaseTestCase(test.TestCase,
Subclasses must define a **compute_driver** attribute for the virt driver
to use.
Subclasses must define a **computes** dict with host: compute service key
value pairs.
This class sets up standard fixtures and controller services but does not
start any compute services, that is left to the subclass.
"""
@ -1334,6 +1331,22 @@ class ProviderUsageBaseTestCase(test.TestCase,
self.addCleanup(nova.tests.unit.image.fake.FakeImageService_reset)
fake_network.set_stub_network_methods(self)
self.computes = {}
def _start_compute(self, host):
"""Start a nova compute service on the given host
:param host: the name of the host that will be associated to the
compute service.
:return: the nova compute service object
"""
fake.set_nodes([host])
self.addCleanup(fake.restore_nodes)
self.flags(host=host)
compute = self.start_service('compute', host=host)
self.computes[host] = compute
return compute
def _get_provider_uuid_by_host(self, host):
# NOTE(gibi): the compute node id is the same as the compute node
# provider uuid on that compute
@ -1504,19 +1517,8 @@ class ServerMovingTests(ProviderUsageBaseTestCase):
fake_notifier.stub_notifier(self)
self.addCleanup(fake_notifier.reset)
self.computes = {}
fake.set_nodes(['host1'])
self.flags(host='host1')
self.compute1 = self.start_service('compute', host='host1')
self.computes[self.compute1.host] = self.compute1
# NOTE(sbauza): Make sure the FakeDriver returns a different nodename
# for the second compute node.
fake.set_nodes(['host2'])
self.addCleanup(fake.restore_nodes)
self.flags(host='host2')
self.compute2 = self.start_service('compute', host='host2')
self.computes[self.compute2.host] = self.compute2
self.compute1 = self._start_compute(host='host1')
self.compute2 = self._start_compute(host='host2')
flavors = self.api.get_flavors()
self.flavor1 = flavors[0]
@ -2762,19 +2764,8 @@ class ServerRescheduleTests(ProviderUsageBaseTestCase):
def setUp(self):
super(ServerRescheduleTests, self).setUp()
self.computes = {}
fake.set_nodes(['host1'])
self.flags(host='host1')
self.compute1 = self.start_service('compute', host='host1')
self.computes[self.compute1.host] = self.compute1
# NOTE(sbauza): Make sure the FakeDriver returns a different nodename
# for the second compute node.
fake.set_nodes(['host2'])
self.addCleanup(fake.restore_nodes)
self.flags(host='host2')
self.compute2 = self.start_service('compute', host='host2')
self.computes[self.compute2.host] = self.compute2
self.compute1 = self._start_compute(host='host1')
self.compute2 = self._start_compute(host='host2')
flavors = self.api.get_flavors()
self.flavor1 = flavors[0]
@ -2829,11 +2820,7 @@ class ServerBuildAbortTests(ProviderUsageBaseTestCase):
def setUp(self):
super(ServerBuildAbortTests, self).setUp()
# We only need one compute service/host/node for these tests.
fake.set_nodes(['host1'])
self.flags(host='host1')
self.computes = {}
self.compute1 = self.start_service('compute', host='host1')
self.computes[self.compute1.host] = self.compute1
self.compute1 = self._start_compute(host='host1')
flavors = self.api.get_flavors()
self.flavor1 = flavors[0]
@ -2872,7 +2859,7 @@ class ServerUnshelveSpawnFailTests(ProviderUsageBaseTestCase):
# We only need one compute service/host/node for these tests.
fake.set_nodes(['host1'])
self.flags(host='host1')
self.compute1 = self.start_service('compute', host='host1')
self.compute1 = self._start_compute('host1')
flavors = self.api.get_flavors()
self.flavor1 = flavors[0]