diff options
author | Jenkins <jenkins@review.openstack.org> | 2013-01-10 20:37:56 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2013-01-10 20:37:56 +0000 |
commit | b35f86651120c52e611e671caad331e4f871c2cc (patch) | |
tree | aa2468a354350a426ddb22ffc12684736737ae5e | |
parent | 9f5a63a79ff07e3c97ed548b3837e754b4a1f0d6 (diff) | |
parent | abc9a0d5df70ee00ba38e655a4d88ae18417f0e3 (diff) | |
download | nova-b35f86651120c52e611e671caad331e4f871c2cc.tar.gz nova-b35f86651120c52e611e671caad331e4f871c2cc.tar.xz nova-b35f86651120c52e611e671caad331e4f871c2cc.zip |
Merge "Update instance's cell_name in API cell."
-rw-r--r-- | nova/cells/messaging.py | 11 | ||||
-rw-r--r-- | nova/tests/cells/test_cells_messaging.py | 2 |
2 files changed, 7 insertions, 6 deletions
diff --git a/nova/cells/messaging.py b/nova/cells/messaging.py index e5617e742..56d521892 100644 --- a/nova/cells/messaging.py +++ b/nova/cells/messaging.py @@ -690,17 +690,16 @@ class _BroadcastMessageMethods(_BaseMessageMethods): if not self._at_the_top(): return instance_uuid = instance['uuid'] - routing_path = message.routing_path - instance['cell_name'] = _reverse_path(routing_path) + # Remove things that we can't update in the top level cells. - # 'cell_name' is included in this list.. because we'll set it - # ourselves based on the reverse of the routing path. metadata - # is only updated in the API cell, so we don't listen to what - # the child cell tells us. + # 'metadata' is only updated in the API cell, so don't overwrite + # it based on what child cells say. Make sure to update + # 'cell_name' based on the routing path. items_to_remove = ['id', 'security_groups', 'instance_type', 'volumes', 'cell_name', 'name', 'metadata'] for key in items_to_remove: instance.pop(key, None) + instance['cell_name'] = _reverse_path(message.routing_path) # Fixup info_cache. We'll have to update this separately if # it exists. diff --git a/nova/tests/cells/test_cells_messaging.py b/nova/tests/cells/test_cells_messaging.py index a5810fb21..9973716f6 100644 --- a/nova/tests/cells/test_cells_messaging.py +++ b/nova/tests/cells/test_cells_messaging.py @@ -794,7 +794,9 @@ class CellsBroadcastMethodsTestCase(test.TestCase): expected_sys_metadata = {'key1': 'value1', 'key2': 'value2'} expected_info_cache = {'other': 'moo'} + expected_cell_name = 'api-cell!child-cell2!grandchild-cell1' expected_instance = {'system_metadata': expected_sys_metadata, + 'cell_name': expected_cell_name, 'other': 'meow', 'uuid': 'fake_uuid'} |