Merge "libvirt: better error for bad live migration flag"
This commit is contained in:
commit
f1da349a4f
@ -6643,6 +6643,21 @@ class LibvirtConnTestCase(test.NoDBTestCase):
|
|||||||
self.context, instance_ref, 'dest',
|
self.context, instance_ref, 'dest',
|
||||||
False, None, dom)
|
False, None, dom)
|
||||||
|
|
||||||
|
def test_live_migration_fails_with_invalid_live_migration_flag(self):
|
||||||
|
self.flags(live_migration_flag="VIR_MIGRATE_UNDEFINE_SOURCE, "
|
||||||
|
"VIR_MIGRATE_PEER2PEER, "
|
||||||
|
"VIR_MIGRATE_LIVE, "
|
||||||
|
"VIR_MIGRATE_TUNNELLED, "
|
||||||
|
"VIR_MIGRATE_FOO_BAR",
|
||||||
|
group='libvirt')
|
||||||
|
instance_ref = self.test_instance
|
||||||
|
dom = fakelibvirt.virDomain
|
||||||
|
drvr = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False)
|
||||||
|
self.assertRaises(exception.Invalid,
|
||||||
|
drvr._live_migration_operation,
|
||||||
|
self.context, instance_ref, 'dest',
|
||||||
|
False, None, dom)
|
||||||
|
|
||||||
@mock.patch.object(fakelibvirt, 'VIR_DOMAIN_XML_MIGRATABLE', None,
|
@mock.patch.object(fakelibvirt, 'VIR_DOMAIN_XML_MIGRATABLE', None,
|
||||||
create=True)
|
create=True)
|
||||||
def test_live_migration_uses_migrateToURI_without_migratable_flag(self):
|
def test_live_migration_uses_migrateToURI_without_migratable_flag(self):
|
||||||
|
@ -5666,7 +5666,15 @@ class LibvirtDriver(driver.ComputeDriver):
|
|||||||
flaglist = CONF.libvirt.block_migration_flag.split(',')
|
flaglist = CONF.libvirt.block_migration_flag.split(',')
|
||||||
else:
|
else:
|
||||||
flaglist = CONF.libvirt.live_migration_flag.split(',')
|
flaglist = CONF.libvirt.live_migration_flag.split(',')
|
||||||
flagvals = [getattr(libvirt, x.strip()) for x in flaglist]
|
|
||||||
|
def getflag(s):
|
||||||
|
try:
|
||||||
|
return getattr(libvirt, s)
|
||||||
|
except AttributeError:
|
||||||
|
msg = _("Unknown libvirt live migration flag '%s'") % s
|
||||||
|
raise exception.Invalid(msg)
|
||||||
|
|
||||||
|
flagvals = [getflag(x.strip()) for x in flaglist]
|
||||||
logical_sum = six.moves.reduce(lambda x, y: x | y, flagvals)
|
logical_sum = six.moves.reduce(lambda x, y: x | y, flagvals)
|
||||||
|
|
||||||
pre_live_migrate_data = (migrate_data or {}).get(
|
pre_live_migrate_data = (migrate_data or {}).get(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user