diff options
| author | Chris Behrens <cbehrens@codestud.com> | 2013-06-05 19:13:06 +0000 |
|---|---|---|
| committer | Chris Behrens <cbehrens@codestud.com> | 2013-06-21 18:58:45 +0000 |
| commit | 967e9675874fc2a02a585cc6f9b99175f9cd656c (patch) | |
| tree | 131581c6b0df0a5f07dc6eb6a1b611e192ed1c35 /nova/cells | |
| parent | 022bd8d6c16a1a06a3996f1fa827bc17b4272af7 (diff) | |
| download | nova-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.py | 10 |
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) |
