Skip to content

Commit

Permalink
Merge "libvirt: Change _compare_cpu to raise InvalidCPUInfo"
Browse files Browse the repository at this point in the history
  • Loading branch information
Zuul authored and openstack-gerrit committed Oct 12, 2019
2 parents 32fcc4f + d02c326 commit c270c48
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 10 deletions.
4 changes: 2 additions & 2 deletions nova/tests/unit/virt/libvirt/test_driver.py
Original file line number Diff line number Diff line change
Expand Up @@ -10251,7 +10251,7 @@ def test_check_can_live_migrate_dest_incompatible_cpu_raises(
compute_info = {'cpu_info': 'asdf', 'disk_available_least': 1}

mock_cpu.side_effect = exception.InvalidCPUInfo(reason='foo')
self.assertRaises(exception.InvalidCPUInfo,
self.assertRaises(exception.MigrationPreCheckError,
drvr.check_can_live_migrate_destination,
self.context, instance_ref,
compute_info, compute_info, False)
Expand Down Expand Up @@ -10328,7 +10328,7 @@ def test_compare_cpu_incompatible_cpu_raises(self, mock_vconfig,
instance = objects.Instance(**self.test_instance)
mock_compare.side_effect = fakelibvirt.libvirtError('cpu')
conn = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False)
self.assertRaises(exception.MigrationPreCheckError,
self.assertRaises(exception.InvalidCPUInfo,
conn._compare_cpu, None,
jsonutils.dumps(_fake_cpu_info),
instance)
Expand Down
18 changes: 10 additions & 8 deletions nova/virt/libvirt/driver.py
Original file line number Diff line number Diff line change
Expand Up @@ -793,8 +793,7 @@ def _check_cpu_compatibility(self):
cpu.add_feature(vconfig.LibvirtConfigCPUFeature(flag))
try:
self._compare_cpu(cpu, self._get_cpu_info(), None)
except (exception.InvalidCPUInfo,
exception.MigrationPreCheckError) as e:
except exception.InvalidCPUInfo as e:
msg = (_("Configured extra flag: %(flag)s it not correct, or "
"the host CPU does not support this flag. Please "
"correct the config and try again. %(e)s") % {
Expand Down Expand Up @@ -7973,11 +7972,14 @@ def check_can_live_migrate_destination(self, context, instance,
(disk_available_gb * units.Ki) - CONF.reserved_host_disk_mb)

# Compare CPU
if not instance.vcpu_model or not instance.vcpu_model.model:
source_cpu_info = src_compute_info['cpu_info']
self._compare_cpu(None, source_cpu_info, instance)
else:
self._compare_cpu(instance.vcpu_model, None, instance)
try:
if not instance.vcpu_model or not instance.vcpu_model.model:
source_cpu_info = src_compute_info['cpu_info']
self._compare_cpu(None, source_cpu_info, instance)
else:
self._compare_cpu(instance.vcpu_model, None, instance)
except exception.InvalidCPUInfo as e:
raise exception.MigrationPreCheckError(reason=e)

# Create file on storage, to be checked on source host
filename = self._create_shared_storage_test_file(instance)
Expand Down Expand Up @@ -8284,7 +8286,7 @@ def _compare_cpu(self, guest_cpu, host_cpu_str, instance):
return
else:
LOG.error(m, {'ret': e, 'u': u})
raise exception.MigrationPreCheckError(
raise exception.InvalidCPUInfo(
reason=m % {'ret': e, 'u': u})

if ret <= 0:
Expand Down

0 comments on commit c270c48

Please sign in to comment.