Merge "tests: Make '_IntegratedTestBase' subclass 'PlacementInstanceHelperMixin'"

This commit is contained in:
Zuul 2020-07-24 09:25:12 +00:00 committed by Gerrit Code Review
commit d037276e33
1 changed files with 10 additions and 46 deletions

View File

@ -470,6 +470,11 @@ class PlacementHelperMixin:
'/resource_providers/%s' % rp_uuid, version='1.15',
).body
def _get_provider_uuid_by_name(self, name):
return self.placement_api.get(
'/resource_providers?name=%s' % name,
).body['resource_providers'][0]['uuid']
def _get_provider_usages(self, provider_uuid):
return self.placement_api.get(
'/resource_providers/%s/usages' % provider_uuid
@ -955,7 +960,7 @@ class PlacementInstanceHelperMixin(InstanceHelperMixin, PlacementHelperMixin):
self.assertEqual(expected_vcpu_usage, hypervisor['vcpus_used'])
class _IntegratedTestBase(test.TestCase, InstanceHelperMixin):
class _IntegratedTestBase(test.TestCase, PlacementInstanceHelperMixin):
#: Whether the test requires global external locking being configured for
#: them. New tests should set this to False.
REQUIRES_LOCKING = True
@ -988,8 +993,10 @@ class _IntegratedTestBase(test.TestCase, InstanceHelperMixin):
nova.tests.unit.image.fake.stub_out_image_service(self)
self.useFixture(cast_as_call.CastAsCall(self))
placement = self.useFixture(func_fixtures.PlacementFixture())
self.placement_api = placement.api
self.neutron = self.useFixture(nova_fixtures.NeutronFixture(self))
fake_notifier.stub_notifier(self)
@ -1051,52 +1058,9 @@ class _IntegratedTestBase(test.TestCase, InstanceHelperMixin):
("The expected wsgi middlewares %s are not "
"existed") % expected_middleware)
# TODO(sbauza): Drop this method once test classes inherit from a mixin
def _get_provider_uuid_by_name(self, name):
return self.placement_api.get(
'/resource_providers?name=%s' % name).body[
'resource_providers'][0]['uuid']
# TODO(sbauza): Drop this method once test classes inherit from a mixin
def _get_all_rp_uuids_in_a_tree(self, in_tree_rp_uuid):
rps = self.placement_api.get(
'/resource_providers?in_tree=%s' % in_tree_rp_uuid,
version='1.20').body['resource_providers']
return [rp['uuid'] for rp in rps]
# TODO(sbauza): Drop this method once test classes inherit from a mixin
def _get_provider_inventory(self, rp_uuid):
return self.placement_api.get(
'/resource_providers/%s/inventories' % rp_uuid).body['inventories']
# TODO(sbauza): Drop this method once test classes inherit from a mixin
def _get_provider_usages(self, provider_uuid):
return self.placement_api.get(
'/resource_providers/%s/usages' % provider_uuid).body['usages']
# TODO(sbauza): Drop this method once test classes inherit from a mixin
def _create_trait(self, trait):
return self.placement_api.put('/traits/%s' % trait, {}, version='1.6')
# TODO(sbauza): Drop this method once test classes inherit from a mixin
def _set_provider_traits(self, rp_uuid, traits):
"""This will overwrite any existing traits.
:param rp_uuid: UUID of the resource provider to update
:param traits: list of trait strings to set on the provider
:returns: APIResponse object with the results
"""
provider = self.placement_api.get(
'/resource_providers/%s' % rp_uuid).body
put_traits_req = {
'resource_provider_generation': provider['generation'],
'traits': traits
}
return self.placement_api.put(
'/resource_providers/%s/traits' % rp_uuid,
put_traits_req, version='1.6')
# TODO(stephenfin): This is almost identical to '_IntegratedTestBase' now and
# could be removed
class ProviderUsageBaseTestCase(test.TestCase, PlacementInstanceHelperMixin):
"""Base test class for functional tests that check provider usage
and consumer allocations in Placement during various operations.