Avoid KeyError Exception in extract_flavor()
In the function extract_flavor(), if the returned sys_meta of the instance is empty dict or does not exist then the function is returned to avoid KeyError Exception. Change-Id: Ic996cc0ca0303772c4e6a8bbb9f4165ddcdfafff Closes-Bug: #1226083
This commit is contained in:
parent
f3fadb5a2b
commit
202a777ae0
|
@ -278,6 +278,10 @@ def extract_flavor(instance, prefix=''):
|
|||
|
||||
flavor = objects.Flavor()
|
||||
sys_meta = utils.instance_sys_meta(instance)
|
||||
|
||||
if not sys_meta:
|
||||
return None
|
||||
|
||||
for key in system_metadata_flavor_props.keys():
|
||||
type_key = '%sinstance_type_%s' % (prefix, key)
|
||||
setattr(flavor, key, sys_meta[type_key])
|
||||
|
|
|
@ -248,7 +248,8 @@ class ResourceTracker(object):
|
|||
image_meta = utils.get_image_from_system_metadata(
|
||||
instance['system_metadata'])
|
||||
|
||||
if instance_type['id'] == itype['id']:
|
||||
if (instance_type is not None and
|
||||
instance_type['id'] == itype['id']):
|
||||
numa_topology = hardware.numa_get_constraints(
|
||||
itype, image_meta)
|
||||
usage = self._get_usage_dict(
|
||||
|
|
|
@ -279,6 +279,13 @@ class InstanceTypeToolsTest(test.TestCase):
|
|||
def test_extract_flavor(self):
|
||||
self._test_extract_flavor('')
|
||||
|
||||
def test_extract_flavor_no_sysmeta(self):
|
||||
instance = {}
|
||||
prefix = ''
|
||||
result = flavors.extract_flavor(instance, prefix)
|
||||
|
||||
self.assertIsNone(result)
|
||||
|
||||
def test_extract_flavor_prefix(self):
|
||||
self._test_extract_flavor('foo_')
|
||||
|
||||
|
|
Loading…
Reference in New Issue