Merge "Remove compatibility check from migrate_data"

This commit is contained in:
Zuul 2020-05-27 21:04:23 +00:00 committed by Gerrit Code Review
commit 23f91cf0f9
5 changed files with 25 additions and 65 deletions

View File

@ -11188,6 +11188,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)
@ -11220,7 +11221,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,
@ -11527,7 +11530,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)
@ -11724,7 +11730,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)
@ -11756,7 +11765,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)
@ -11874,6 +11886,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)
@ -11904,6 +11917,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)
@ -11977,6 +11991,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)
@ -12022,6 +12037,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)
@ -12073,6 +12089,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)

View File

@ -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')

View File

@ -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,

View File

@ -8838,9 +8838,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

View File

@ -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