summaryrefslogtreecommitdiffstats
path: root/nova/cells
diff options
context:
space:
mode:
authorChris Behrens <cbehrens@codestud.com>2013-06-05 19:13:06 +0000
committerChris Behrens <cbehrens@codestud.com>2013-06-21 18:58:45 +0000
commit967e9675874fc2a02a585cc6f9b99175f9cd656c (patch)
tree131581c6b0df0a5f07dc6eb6a1b611e192ed1c35 /nova/cells
parent022bd8d6c16a1a06a3996f1fa827bc17b4272af7 (diff)
downloadnova-967e9675874fc2a02a585cc6f9b99175f9cd656c.tar.gz
nova-967e9675874fc2a02a585cc6f9b99175f9cd656c.tar.xz
nova-967e9675874fc2a02a585cc6f9b99175f9cd656c.zip
Fix sys_meta access in prep for instance object
Fix various places that access instance['system_metadata'] as if it's a list of sqlalchemy models. A helper util method was created in a previous patch set in nova/utils... so this patch converts things to use it. Left one use in _init_instance() in compute/manager.py because it's being addressed with a different patch set. Related to blueprint unified-object-model Change-Id: I876a6c57f64d61d64069c884bf0414c3596e1aa0
Diffstat (limited to 'nova/cells')
-rw-r--r--nova/cells/messaging.py10
1 files changed, 4 insertions, 6 deletions
diff --git a/nova/cells/messaging.py b/nova/cells/messaging.py
index 319067836..6f4183f5d 100644
--- a/nova/cells/messaging.py
+++ b/nova/cells/messaging.py
@@ -813,12 +813,10 @@ class _BroadcastMessageMethods(_BaseMessageMethods):
info_cache.pop('id', None)
info_cache.pop('instance', None)
- # Fixup system_metadata (should be a dict for update, not a list)
- if ('system_metadata' in instance and
- isinstance(instance['system_metadata'], list)):
- sys_metadata = dict([(md['key'], md['value'])
- for md in instance['system_metadata']])
- instance['system_metadata'] = sys_metadata
+ if 'system_metadata' in instance:
+ # Make sure we have the dict form that we need for
+ # instance_update.
+ instance['system_metadata'] = utils.instance_sys_meta(instance)
LOG.debug(_("Got update for instance: %(instance)s"),
{'instance': instance}, instance_uuid=instance_uuid)