Skip to content

Commit

Permalink
Make a few places tolerant of sys_meta being a dict
Browse files Browse the repository at this point in the history
This will be necessary as we start to introduce objects with
real dicts in system_metadata. These are the common spots that
need to be ready ahead of time. The rest are at the actual use
sites and can/will be replaced when individual uses are
converted to objects.

Related to bp/unified-internal-objects

Change-Id: I8314e0d52ec2ae800765f60ce58ce9b309d7d513
  • Loading branch information
kk7ds committed May 23, 2013
1 parent 986fa04 commit 96164ce
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 3 deletions.
2 changes: 1 addition & 1 deletion nova/compute/flavors.py
Expand Up @@ -238,7 +238,7 @@ def extract_instance_type(instance, prefix=''):
information."""

instance_type = {}
sys_meta = utils.metadata_to_dict(instance['system_metadata'])
sys_meta = utils.instance_sys_meta(instance)
for key, type_fn in system_metadata_instance_type_props.items():
type_key = '%sinstance_type_%s' % (prefix, key)
instance_type[key] = type_fn(sys_meta[type_key])
Expand Down
3 changes: 1 addition & 2 deletions nova/notifications.py
Expand Up @@ -288,8 +288,7 @@ def null_safe_str(s):
instance_type_name = instance_type.get('name', '')

if system_metadata is None:
system_metadata = utils.metadata_to_dict(
instance_ref['system_metadata'])
system_metadata = utils.instance_sys_meta(instance_ref)

instance_info = dict(
# Owner properties
Expand Down
7 changes: 7 additions & 0 deletions nova/utils.py
Expand Up @@ -1032,6 +1032,13 @@ def dict_to_metadata(metadata):
return result


def instance_sys_meta(instance):
if isinstance(instance['system_metadata'], dict):
return instance['system_metadata']
else:
return metadata_to_dict(instance['system_metadata'])


def get_wrapped_function(function):
"""Get the method at the bottom of a stack of decorators."""
if not hasattr(function, 'func_closure') or not function.func_closure:
Expand Down

0 comments on commit 96164ce

Please sign in to comment.