diff --git a/nova/tests/functional/integrated_helpers.py b/nova/tests/functional/integrated_helpers.py index c6d4ffeb3a..b46f690b44 100644 --- a/nova/tests/functional/integrated_helpers.py +++ b/nova/tests/functional/integrated_helpers.py @@ -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.