Merge "Avoid crashing while getting libvirt capabilities with unknown arch names"
This commit is contained in:
commit
c8f7246343
nova
@ -16075,6 +16075,14 @@ class LibvirtConnTestCase(test.NoDBTestCase,
|
||||
guest.domtype = ['kvm']
|
||||
caps.guests.append(guest)
|
||||
|
||||
# Include one that is not known to nova to make sure it
|
||||
# does not trip us up.
|
||||
guest = vconfig.LibvirtConfigGuest()
|
||||
guest.ostype = 'hvm'
|
||||
guest.arch = 'itanic'
|
||||
guest.domtype = ['kvm']
|
||||
caps.guests.append(guest)
|
||||
|
||||
return caps
|
||||
|
||||
self.stub_out('nova.virt.libvirt.host.Host.get_capabilities',
|
||||
|
@ -5939,11 +5939,17 @@ class LibvirtDriver(driver.ComputeDriver):
|
||||
for dt in g.domtype:
|
||||
if dt != CONF.libvirt.virt_type:
|
||||
continue
|
||||
instance_cap = (
|
||||
fields.Architecture.canonicalize(g.arch),
|
||||
fields.HVType.canonicalize(dt),
|
||||
fields.VMMode.canonicalize(g.ostype))
|
||||
instance_caps.append(instance_cap)
|
||||
try:
|
||||
instance_cap = (
|
||||
fields.Architecture.canonicalize(g.arch),
|
||||
fields.HVType.canonicalize(dt),
|
||||
fields.VMMode.canonicalize(g.ostype))
|
||||
instance_caps.append(instance_cap)
|
||||
except exception.InvalidArchitectureName:
|
||||
# NOTE(danms): Libvirt is exposing a guest arch that nova
|
||||
# does not even know about. Avoid aborting here and
|
||||
# continue to process the rest.
|
||||
pass
|
||||
|
||||
return instance_caps
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user