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:
parent
551fd9d75a
commit
feebbc63f9
|
@ -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):
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue