diff options
author | Jenkins <jenkins@review.openstack.org> | 2013-01-10 18:17:30 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2013-01-10 18:17:30 +0000 |
commit | 0d8569e83c3212b7b871a08aa0dc928134bd6338 (patch) | |
tree | e84bee7dce6c65caed2f827d640278a8c64c9a6b | |
parent | d355a45694ffbdd7955f26e1d806bd5244933e90 (diff) | |
parent | 6cd0cdfbc03adf0cc633dd964f7cfbaaa5dee567 (diff) | |
download | nova-0d8569e83c3212b7b871a08aa0dc928134bd6338.tar.gz |
Merge "Update instance's cell_name in API cell." into milestone-proposed
-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 e5617e7427..56d5218922 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 d728c9474c..a0920c3681 100644 --- a/nova/tests/cells/test_cells_messaging.py +++ b/nova/tests/cells/test_cells_messaging.py @@ -795,7 +795,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'} |