Use hypervisor_hostname for host name
In Nova, "service host" is where nova-compute is running and "hypervisor_hostname" represent each physical node that the virt driver reports. They can be different in some of the hypervisor backends where one nova-compute corresponds to multiple physical nodes. Blazar holds the values separately as "service_name" and "hypervisor_hostname". Since Nova aggreate is associated to nova-compute service, we used "service_name" with aggregate solution for reservation. However, now we can use "hypervisor_hostname" with placement api solution for reservation. This patch switches it. Change-Id: I0e089c764e81894f065872e7b44a4ea8cfa49bd6 Closes-Bug: #1814594
This commit is contained in:
parent
a75fb5f478
commit
7dc9a6a7bf
|
@ -301,7 +301,7 @@ class VirtualInstancePlugin(base.BasePlugin, nova.NovaClientWrapper):
|
||||||
% (host, reservation['aggregate_id']))
|
% (host, reservation['aggregate_id']))
|
||||||
raise mgr_exceptions.NovaClientError(err_msg)
|
raise mgr_exceptions.NovaClientError(err_msg)
|
||||||
self.placement_client.update_reservation_inventory(
|
self.placement_client.update_reservation_inventory(
|
||||||
host['service_name'], reservation['id'], 1)
|
host['hypervisor_hostname'], reservation['id'], 1)
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
self.nova.nova.flavors.delete(reservation['id'])
|
self.nova.nova.flavors.delete(reservation['id'])
|
||||||
|
@ -472,7 +472,7 @@ class VirtualInstancePlugin(base.BasePlugin, nova.NovaClientWrapper):
|
||||||
pool.add_computehost(instance_reservation['aggregate_id'],
|
pool.add_computehost(instance_reservation['aggregate_id'],
|
||||||
host['service_name'], stay_in=True)
|
host['service_name'], stay_in=True)
|
||||||
self.placement_client.update_reservation_inventory(
|
self.placement_client.update_reservation_inventory(
|
||||||
host['service_name'], reservation_id, 1)
|
host['hypervisor_hostname'], reservation_id, 1)
|
||||||
|
|
||||||
def on_end(self, resource_id):
|
def on_end(self, resource_id):
|
||||||
instance_reservation = db_api.instance_reservation_get(resource_id)
|
instance_reservation = db_api.instance_reservation_get(resource_id)
|
||||||
|
@ -492,7 +492,7 @@ class VirtualInstancePlugin(base.BasePlugin, nova.NovaClientWrapper):
|
||||||
db_api.host_allocation_destroy(allocation['id'])
|
db_api.host_allocation_destroy(allocation['id'])
|
||||||
try:
|
try:
|
||||||
self.placement_client.delete_reservation_inventory(
|
self.placement_client.delete_reservation_inventory(
|
||||||
host['service_name'], reservation_id)
|
host['hypervisor_hostname'], reservation_id)
|
||||||
except openstack_ex.ResourceProviderNotFound:
|
except openstack_ex.ResourceProviderNotFound:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@ -559,7 +559,7 @@ class VirtualInstancePlugin(base.BasePlugin, nova.NovaClientWrapper):
|
||||||
host['service_name'])
|
host['service_name'])
|
||||||
try:
|
try:
|
||||||
self.placement_client.delete_reservation_inventory(
|
self.placement_client.delete_reservation_inventory(
|
||||||
host['service_name'], reservation['id'])
|
host['hypervisor_hostname'], reservation['id'])
|
||||||
except openstack_ex.ResourceProviderNotFound:
|
except openstack_ex.ResourceProviderNotFound:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@ -590,7 +590,7 @@ class VirtualInstancePlugin(base.BasePlugin, nova.NovaClientWrapper):
|
||||||
new_host['service_name'],
|
new_host['service_name'],
|
||||||
stay_in=True)
|
stay_in=True)
|
||||||
self.placement_client.update_reservation_inventory(
|
self.placement_client.update_reservation_inventory(
|
||||||
new_host['service_name'], reservation['id'], 1)
|
new_host['hypervisor_hostname'], reservation['id'], 1)
|
||||||
LOG.warn('Resource changed for reservation %s (lease: %s).',
|
LOG.warn('Resource changed for reservation %s (lease: %s).',
|
||||||
reservation['id'], lease['name'])
|
reservation['id'], lease['name'])
|
||||||
|
|
||||||
|
|
|
@ -362,7 +362,7 @@ class PhysicalHostPlugin(base.BasePlugin, nova.NovaClientWrapper):
|
||||||
raise manager_ex.ExtraCapabilityTooLong()
|
raise manager_ex.ExtraCapabilityTooLong()
|
||||||
|
|
||||||
self.placement_client.create_reservation_provider(
|
self.placement_client.create_reservation_provider(
|
||||||
host_details['service_name'])
|
host_details['hypervisor_hostname'])
|
||||||
|
|
||||||
pool = nova.ReservationPool()
|
pool = nova.ReservationPool()
|
||||||
pool.add_computehost(self.freepool_name,
|
pool.add_computehost(self.freepool_name,
|
||||||
|
@ -381,7 +381,7 @@ class PhysicalHostPlugin(base.BasePlugin, nova.NovaClientWrapper):
|
||||||
pool.remove_computehost(self.freepool_name,
|
pool.remove_computehost(self.freepool_name,
|
||||||
host_details['service_name'])
|
host_details['service_name'])
|
||||||
self.placement_client.delete_reservation_provider(
|
self.placement_client.delete_reservation_provider(
|
||||||
host_details['service_name'])
|
host_details['hypervisor_hostname'])
|
||||||
raise e
|
raise e
|
||||||
for key in extra_capabilities:
|
for key in extra_capabilities:
|
||||||
values = {'computehost_id': host['id'],
|
values = {'computehost_id': host['id'],
|
||||||
|
@ -495,7 +495,7 @@ class PhysicalHostPlugin(base.BasePlugin, nova.NovaClientWrapper):
|
||||||
pool.remove_computehost(self.freepool_name,
|
pool.remove_computehost(self.freepool_name,
|
||||||
host['service_name'])
|
host['service_name'])
|
||||||
self.placement_client.delete_reservation_provider(
|
self.placement_client.delete_reservation_provider(
|
||||||
host['service_name'])
|
host['hypervisor_hostname'])
|
||||||
# NOTE(sbauza): Extracapabilities will be destroyed thanks to
|
# NOTE(sbauza): Extracapabilities will be destroyed thanks to
|
||||||
# the DB FK.
|
# the DB FK.
|
||||||
db_api.host_destroy(host_id)
|
db_api.host_destroy(host_id)
|
||||||
|
|
|
@ -686,7 +686,8 @@ class TestVirtualInstancePlugin(tests.TestCase):
|
||||||
|
|
||||||
def test_update_resources_in_active(self):
|
def test_update_resources_in_active(self):
|
||||||
def fake_host_get(host_id):
|
def fake_host_get(host_id):
|
||||||
return {'service_name': 'host' + host_id[-1]}
|
return {'service_name': 'host' + host_id[-1],
|
||||||
|
'hypervisor_hostname': 'host' + host_id[-1]}
|
||||||
|
|
||||||
reservation = {
|
reservation = {
|
||||||
'id': 'reservation-id1',
|
'id': 'reservation-id1',
|
||||||
|
@ -851,7 +852,8 @@ class TestVirtualInstancePlugin(tests.TestCase):
|
||||||
|
|
||||||
def test_on_start(self):
|
def test_on_start(self):
|
||||||
def fake_host_get(host_id):
|
def fake_host_get(host_id):
|
||||||
return {'service_name': 'host' + host_id[-1]}
|
return {'service_name': 'host' + host_id[-1],
|
||||||
|
'hypervisor_hostname': 'host' + host_id[-1]}
|
||||||
|
|
||||||
self.set_context(context.BlazarContext(project_id='fake-project'))
|
self.set_context(context.BlazarContext(project_id='fake-project'))
|
||||||
plugin = instance_plugin.VirtualInstancePlugin()
|
plugin = instance_plugin.VirtualInstancePlugin()
|
||||||
|
@ -907,7 +909,8 @@ class TestVirtualInstancePlugin(tests.TestCase):
|
||||||
|
|
||||||
mock_host_get = self.patch(db_api, 'host_get')
|
mock_host_get = self.patch(db_api, 'host_get')
|
||||||
mock_host_get.side_effect = [
|
mock_host_get.side_effect = [
|
||||||
{'service_name': 'host1'}, {'service_name': 'host2'}
|
{'service_name': 'host1', 'hypervisor_hostname': 'host1'},
|
||||||
|
{'service_name': 'host2', 'hypervisor_hostname': 'host2'}
|
||||||
]
|
]
|
||||||
|
|
||||||
mock_delete_reservation_inventory = self.patch(
|
mock_delete_reservation_inventory = self.patch(
|
||||||
|
@ -1133,9 +1136,11 @@ class TestVirtualInstancePlugin(tests.TestCase):
|
||||||
def test_reallocate_active(self):
|
def test_reallocate_active(self):
|
||||||
plugin = instance_plugin.VirtualInstancePlugin()
|
plugin = instance_plugin.VirtualInstancePlugin()
|
||||||
failed_host = {'id': '1',
|
failed_host = {'id': '1',
|
||||||
'service_name': 'compute-1'}
|
'service_name': 'compute-1',
|
||||||
|
'hypervisor_hostname': 'compute-1'}
|
||||||
new_host = {'id': '2',
|
new_host = {'id': '2',
|
||||||
'service_name': 'compute-2'}
|
'service_name': 'compute-2',
|
||||||
|
'hypervisor_hostname': 'compute-2'}
|
||||||
dummy_allocation = {
|
dummy_allocation = {
|
||||||
'id': 'alloc-1',
|
'id': 'alloc-1',
|
||||||
'compute_host_id': failed_host['id'],
|
'compute_host_id': failed_host['id'],
|
||||||
|
|
Loading…
Reference in New Issue