Add functional tests for virt driver get_traits() method

Test that starting up a compute node will successfully put traits into
the placement engine.

Change-Id: Ica5453b3c5418df75cad8505efc37686b57bc6ff
This commit is contained in:
Jim Rollenhagen 2018-01-25 22:01:29 +00:00 committed by Matt Riedemann
parent 551fd9d75a
commit feebbc63f9
2 changed files with 32 additions and 2 deletions

View File

@ -1655,8 +1655,8 @@ class PlacementApiClient(object):
def __init__(self, placement_fixture):
self.fixture = placement_fixture
def get(self, url):
return client.APIResponse(self.fixture._fake_get(None, url))
def get(self, url, **kwargs):
return client.APIResponse(self.fixture._fake_get(None, url, **kwargs))
class PlacementFixture(fixtures.Fixture):

View File

@ -1428,6 +1428,18 @@ class ProviderUsageBaseTestCase(test.TestCase,
return self.placement_api.get(
'/allocations/%s' % server_uuid).body['allocations']
def _get_traits(self):
return self.placement_api.get('/traits', version='1.6').body['traits']
def _get_all_providers(self):
return self.placement_api.get(
'/resource_providers').body['resource_providers']
def _get_provider_traits(self, provider_uuid):
return self.placement_api.get(
'/resource_providers/%s/traits' % provider_uuid,
version='1.6').body['traits']
def assertFlavorMatchesAllocation(self, flavor, allocation):
self.assertEqual(flavor['vcpus'], allocation['VCPU'])
self.assertEqual(flavor['ram'], allocation['MEMORY_MB'])
@ -1576,6 +1588,24 @@ class ProviderUsageBaseTestCase(test.TestCase,
LOG.info('Finished with periodics')
class TraitsTrackingTests(ProviderUsageBaseTestCase):
compute_driver = 'fake.SmallFakeDriver'
@mock.patch.object(fake.SmallFakeDriver, 'get_traits')
def test_resource_provider_traits(self, mock_traits):
traits = ['CUSTOM_FOO', 'HW_CPU_X86_VMX']
mock_traits.return_value = traits
self.assertNotIn('CUSTOM_FOO', self._get_traits())
self.assertEqual([], self._get_all_providers())
self.compute = self._start_compute(host='host1')
rp_uuid = self._get_provider_uuid_by_host('host1')
self.assertEqual(traits, sorted(self._get_provider_traits(rp_uuid)))
self.assertIn('CUSTOM_FOO', self._get_traits())
class ServerMovingTests(ProviderUsageBaseTestCase):
"""Tests moving servers while checking the resource allocations and usages