Make a few places tolerant of sys_meta being a dict

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
This commit is contained in:
Dan Smith
2013-05-10 15:34:00 -07:00
parent 3811bc7a20
commit 791778a700
2 changed files with 8 additions and 2 deletions

View File

@@ -288,8 +288,7 @@ def info_from_instance(context, instance_ref, network_info,
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

View File

@@ -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: