Merge "Add host_name information into nova driver"

This commit is contained in:
Jenkins 2015-12-03 02:28:55 +00:00 committed by Gerrit Code Review
commit 2759d2c4ee
3 changed files with 18 additions and 4 deletions

View File

@ -76,7 +76,11 @@ class NovaDriver(datasource_driver.DataSourceDriver,
'extract-fn': safe_id}},
{'fieldname': 'OS-EXT-AZ:availability_zone', 'col': 'zone',
'desc': 'The availability zone of host',
'translator': value_trans})}
'translator': value_trans},
{'fieldname': 'OS-EXT-SRV-ATTR:hypervisor_hostname',
'desc': ('The hostname of hypervisor where the server is' +
'running'),
'col': 'host_name', 'translator': value_trans})}
flavors_translator = {
'translation-type': 'HDICT',

View File

@ -34,7 +34,7 @@ class NovaFakeClient(mock.MagicMock):
self.availability_zones.list.return_value = self.get_zone_list()
def get_mock_server(self, id, name, host_id, status, tenant_id, user_id,
flavor, image, zone=None):
flavor, image, zone=None, host_name=None):
server = mock.MagicMock()
server.id = id
server.hostId = host_id
@ -49,6 +49,12 @@ class NovaFakeClient(mock.MagicMock):
else:
# This ensures that the magic mock raises an AttributeError
delattr(server, 'OS-EXT-AZ:availability_zone')
if host_name is not None:
setattr(server, 'OS-EXT-SRV-ATTR:hypervisor_hostname',
host_name)
else:
# This ensures that the magic mock raises an AttributeError
delattr(server, 'OS-EXT-SRV-ATTR:hypervisor_hostname')
return server
def get_server_list(self):
@ -58,7 +64,7 @@ class NovaFakeClient(mock.MagicMock):
'BUILD',
'50e14867-7c64-4ec9-be8d-ed2470ca1d24',
'33ea0494-2bdf-4382-a445-9068997430b9',
{"id": 1}, {"id": 2}, 'default'))
{"id": 1}, {"id": 2}, 'default', 'host1'))
server_two = (
self.get_mock_server(5678, 'sample-server2',
@ -74,7 +80,7 @@ class NovaFakeClient(mock.MagicMock):
'ACTIVE',
'50e14867-7c64-4ec9-be8d-ed2470ca1d24',
'33ea0494-2bdf-4382-a445-9068997430b9',
{"id": 1}, {"id": 2}, 'foo'))
{"id": 1}, {"id": 2}, 'foo', 'host2'))
return [server_one, server_two, server_three]

View File

@ -57,6 +57,7 @@ class TestNovaDriver(base.TestCase):
image_id = t[6]
flavor_id = t[7]
zone = t[8]
host_name = t[9]
self.assertIn(id, [1234, 5678, 9012])
# see congress.datasources.tests.unit.fakes for actual values
if id == 1234:
@ -70,6 +71,7 @@ class TestNovaDriver(base.TestCase):
self.assertEqual(2, image_id)
self.assertEqual(1, flavor_id)
self.assertEqual('default', zone)
self.assertEqual('host1', host_name)
elif id == 5678:
self.assertEqual("sample-server2", name)
@ -82,6 +84,7 @@ class TestNovaDriver(base.TestCase):
self.assertEqual(2, image_id)
self.assertEqual(1, flavor_id)
self.assertEqual('None', zone)
self.assertEqual('None', host_name)
elif id == 9012:
self.assertEqual("sample-server3", name)
@ -94,6 +97,7 @@ class TestNovaDriver(base.TestCase):
self.assertEqual(2, image_id)
self.assertEqual(1, flavor_id)
self.assertEqual('foo', zone)
self.assertEqual('host2', host_name)
def test_flavors(self):
flavor_raw = self.nova.flavors.list(detailed=True)