Remove compatibility check from migrate_data
Since compute API 4.8 (Mitaka) we send the LiveMigrateData as an ovo. Since Queens we have compute RPC 5.0. We don't expect clients setting the RPC pin older than 4.22 (Pike). So it is safe to remove the migrate data compatibility checks from the code. Change-Id: I5c84f3c9b4137c84c36bb4e755ffad9c0e9f8a2b
This commit is contained in:
parent
bfdca19bb8
commit
ee84b2688e
|
@ -11175,6 +11175,7 @@ class LibvirtConnTestCase(test.NoDBTestCase,
|
|||
graphics_listen_addr_vnc='10.0.0.1',
|
||||
graphics_listen_addr_spice='10.0.0.2',
|
||||
serial_listen_addr='127.0.0.1',
|
||||
serial_listen_ports=[1234],
|
||||
target_connect_addr=target_connection,
|
||||
bdms=[],
|
||||
block_migration=False)
|
||||
|
@ -11207,7 +11208,9 @@ class LibvirtConnTestCase(test.NoDBTestCase,
|
|||
}
|
||||
migrate_data = objects.LibvirtLiveMigrateData(
|
||||
target_connect_addr=target_connection,
|
||||
block_migration=False)
|
||||
block_migration=False,
|
||||
serial_listen_addr='127.0.0.1',
|
||||
serial_listen_ports=[1234])
|
||||
dom_mock = mock.MagicMock()
|
||||
guest = libvirt_guest.Guest(dom_mock)
|
||||
drvr._live_migration_operation(self.context, instance,
|
||||
|
@ -11514,7 +11517,10 @@ class LibvirtConnTestCase(test.NoDBTestCase,
|
|||
mock.patch.object(guest, 'get_xml_desc',
|
||||
return_value=initial_xml)):
|
||||
config = libvirt_migrate.get_updated_guest_xml(guest,
|
||||
objects.LibvirtLiveMigrateData(bdms=[bdmi]),
|
||||
objects.LibvirtLiveMigrateData(
|
||||
bdms=[bdmi],
|
||||
serial_listen_addr='127.0.0.1',
|
||||
serial_listen_ports=[1234]),
|
||||
drvr._get_volume_config)
|
||||
parser = etree.XMLParser(remove_blank_text=True)
|
||||
config = etree.fromstring(config, parser)
|
||||
|
@ -11711,7 +11717,10 @@ class LibvirtConnTestCase(test.NoDBTestCase,
|
|||
mock.patch.object(guest, 'get_xml_desc',
|
||||
return_value=initial_xml)):
|
||||
config = libvirt_migrate.get_updated_guest_xml(guest,
|
||||
objects.LibvirtLiveMigrateData(bdms=[bdmi]),
|
||||
objects.LibvirtLiveMigrateData(
|
||||
bdms=[bdmi],
|
||||
serial_listen_addr = '127.0.0.1',
|
||||
serial_listen_ports = [1234]),
|
||||
drvr._get_volume_config)
|
||||
self.assertEqual(target_xml, config)
|
||||
|
||||
|
@ -11743,7 +11752,10 @@ class LibvirtConnTestCase(test.NoDBTestCase,
|
|||
return_value=initial_xml)):
|
||||
config = libvirt_migrate.get_updated_guest_xml(
|
||||
guest,
|
||||
objects.LibvirtLiveMigrateData(bdms=[bdmi]),
|
||||
objects.LibvirtLiveMigrateData(
|
||||
bdms=[bdmi],
|
||||
serial_listen_addr='127.0.0.1',
|
||||
serial_listen_ports=[1234]),
|
||||
drvr._get_volume_config)
|
||||
self.assertEqual(target_xml, config)
|
||||
|
||||
|
@ -11861,6 +11873,7 @@ class LibvirtConnTestCase(test.NoDBTestCase,
|
|||
graphics_listen_addr_vnc='0.0.0.0',
|
||||
graphics_listen_addr_spice='0.0.0.0',
|
||||
serial_listen_addr='127.0.0.1',
|
||||
serial_listen_ports=[1234],
|
||||
target_connect_addr=target_connection,
|
||||
bdms=[],
|
||||
block_migration=False)
|
||||
|
@ -11891,6 +11904,7 @@ class LibvirtConnTestCase(test.NoDBTestCase,
|
|||
graphics_listen_addr_vnc='0.0.0.0',
|
||||
graphics_listen_addr_spice='0.0.0.0',
|
||||
serial_listen_addr='127.0.0.1',
|
||||
serial_listen_ports=[1234],
|
||||
target_connect_addr=target_connection,
|
||||
bdms=[],
|
||||
block_migration=True)
|
||||
|
@ -11964,6 +11978,7 @@ class LibvirtConnTestCase(test.NoDBTestCase,
|
|||
graphics_listen_addr_vnc='0.0.0.0',
|
||||
graphics_listen_addr_spice='0.0.0.0',
|
||||
serial_listen_addr='127.0.0.1',
|
||||
serial_listen_ports=[1234],
|
||||
target_connect_addr=target_connection,
|
||||
bdms=[],
|
||||
block_migration=True)
|
||||
|
@ -12009,6 +12024,7 @@ class LibvirtConnTestCase(test.NoDBTestCase,
|
|||
graphics_listen_addr_vnc='0.0.0.0',
|
||||
graphics_listen_addr_spice='0.0.0.0',
|
||||
serial_listen_addr='127.0.0.1',
|
||||
serial_listen_ports=[1234],
|
||||
target_connect_addr=target_connection,
|
||||
bdms=[],
|
||||
block_migration=True)
|
||||
|
@ -12060,6 +12076,7 @@ class LibvirtConnTestCase(test.NoDBTestCase,
|
|||
graphics_listen_addr_vnc='10.0.0.1',
|
||||
graphics_listen_addr_spice='10.0.0.2',
|
||||
serial_listen_addr='127.0.0.1',
|
||||
serial_listen_ports=[1234],
|
||||
target_connect_addr=target_connection,
|
||||
bdms=[],
|
||||
block_migration=False)
|
||||
|
|
|
@ -66,34 +66,6 @@ class UtilityMigrationTestCase(test.NoDBTestCase):
|
|||
'vnc': '127.0.0.1',
|
||||
'spice': None}, addrs)
|
||||
|
||||
def test_serial_listen_addr(self):
|
||||
data = objects.LibvirtLiveMigrateData(
|
||||
serial_listen_addr='127.0.0.1')
|
||||
addr = migration.serial_listen_addr(data)
|
||||
self.assertEqual('127.0.0.1', addr)
|
||||
|
||||
def test_serial_listen_addr_emtpy(self):
|
||||
data = objects.LibvirtLiveMigrateData()
|
||||
addr = migration.serial_listen_addr(data)
|
||||
self.assertIsNone(addr)
|
||||
|
||||
def test_serial_listen_addr_None(self):
|
||||
data = objects.LibvirtLiveMigrateData()
|
||||
data.serial_listen_addr = None
|
||||
addr = migration.serial_listen_addr(data)
|
||||
self.assertIsNone(addr)
|
||||
|
||||
def test_serial_listen_ports(self):
|
||||
data = objects.LibvirtLiveMigrateData(
|
||||
serial_listen_ports=[1, 2, 3])
|
||||
ports = migration.serial_listen_ports(data)
|
||||
self.assertEqual([1, 2, 3], ports)
|
||||
|
||||
def test_serial_listen_ports_emtpy(self):
|
||||
data = objects.LibvirtLiveMigrateData()
|
||||
ports = migration.serial_listen_ports(data)
|
||||
self.assertEqual([], ports)
|
||||
|
||||
@mock.patch('lxml.etree.tostring')
|
||||
@mock.patch.object(migration, '_update_memory_backing_xml')
|
||||
@mock.patch.object(migration, '_update_perf_events_xml')
|
||||
|
|
|
@ -604,7 +604,7 @@ class _VirtDriverTestCase(_FakeDriverBackendTestCase):
|
|||
migration = objects.Migration(context=fake_context, id=1)
|
||||
migrate_data = objects.LibvirtLiveMigrateData(
|
||||
migration=migration, bdms=[], block_migration=False,
|
||||
serial_listen_addr='127.0.0.1')
|
||||
serial_listen_addr='127.0.0.1', serial_listen_ports=[1234])
|
||||
self.connection.live_migration(self.ctxt, instance_ref, 'otherhost',
|
||||
lambda *a, **b: None,
|
||||
lambda *a, **b: None,
|
||||
|
|
|
@ -8744,9 +8744,7 @@ class LibvirtDriver(driver.ComputeDriver):
|
|||
else:
|
||||
migration_flags = self._live_migration_flags
|
||||
|
||||
serial_listen_addr = libvirt_migrate.serial_listen_addr(
|
||||
migrate_data)
|
||||
if not serial_listen_addr:
|
||||
if not migrate_data.serial_listen_addr:
|
||||
# In this context we want to ensure that serial console is
|
||||
# disabled on source node. This is because nova couldn't
|
||||
# retrieve serial listen address from destination node, so we
|
||||
|
|
|
@ -53,33 +53,6 @@ def graphics_listen_addrs(migrate_data):
|
|||
return listen_addrs
|
||||
|
||||
|
||||
def serial_listen_addr(migrate_data):
|
||||
"""Returns listen address serial from a LibvirtLiveMigrateData"""
|
||||
listen_addr = None
|
||||
# NOTE (markus_z/dansmith): Our own from_legacy_dict() code can return
|
||||
# an object with nothing set here. That can happen based on the
|
||||
# compute RPC version pin. Until we can bump that major (which we
|
||||
# can do just before Ocata releases), we may still get a legacy
|
||||
# dict over the wire, converted to an object, and thus is may be unset
|
||||
# here.
|
||||
if migrate_data.obj_attr_is_set('serial_listen_addr'):
|
||||
# NOTE (markus_z): The value of 'serial_listen_addr' is either
|
||||
# an IP address (as string type) or None. There's no need of a
|
||||
# conversion, in fact, doing a string conversion of None leads to
|
||||
# 'None', which is an invalid (string type) value here.
|
||||
listen_addr = migrate_data.serial_listen_addr
|
||||
return listen_addr
|
||||
|
||||
|
||||
# TODO(sahid): remove me for Q*
|
||||
def serial_listen_ports(migrate_data):
|
||||
"""Returns ports serial from a LibvirtLiveMigrateData"""
|
||||
ports = []
|
||||
if migrate_data.obj_attr_is_set('serial_listen_ports'):
|
||||
ports = migrate_data.serial_listen_ports
|
||||
return ports
|
||||
|
||||
|
||||
def get_updated_guest_xml(guest, migrate_data, get_volume_config,
|
||||
get_vif_config=None, new_resources=None):
|
||||
xml_doc = etree.fromstring(guest.get_xml_desc(dump_migratable=True))
|
||||
|
@ -176,8 +149,8 @@ def _update_graphics_xml(xml_doc, migrate_data):
|
|||
|
||||
|
||||
def _update_serial_xml(xml_doc, migrate_data):
|
||||
listen_addr = serial_listen_addr(migrate_data)
|
||||
listen_ports = serial_listen_ports(migrate_data)
|
||||
listen_addr = migrate_data.serial_listen_addr
|
||||
listen_ports = migrate_data.serial_listen_ports
|
||||
|
||||
def set_listen_addr_and_port(source, listen_addr, serial_listen_ports):
|
||||
# The XML nodes can be empty, which would make checks like
|
||||
|
|
Loading…
Reference in New Issue