diff --git a/nova/compute/manager.py b/nova/compute/manager.py index 2ee060224e69..b7859855c6ec 100644 --- a/nova/compute/manager.py +++ b/nova/compute/manager.py @@ -5565,6 +5565,9 @@ class ComputeManager(manager.Manager): curr_time - self._last_bw_usage_cell_update > cells_update_interval): self._last_bw_usage_cell_update = curr_time + update_cells = True + else: + update_cells = False instances = objects.InstanceList.get_by_host(context, self.host, @@ -5629,7 +5632,8 @@ class ComputeManager(manager.Manager): bw_ctr['bw_in'], bw_ctr['bw_out'], start_period=start_time, - last_refreshed=refreshed) + last_refreshed=refreshed, + update_cells=update_cells) def _get_host_volume_bdms(self, context, use_slave=False): """Return all block device mappings on a compute host.""" diff --git a/nova/objects/bandwidth_usage.py b/nova/objects/bandwidth_usage.py index a885e3fb1dde..ade0e2485f6c 100644 --- a/nova/objects/bandwidth_usage.py +++ b/nova/objects/bandwidth_usage.py @@ -18,7 +18,8 @@ from nova.objects import fields class BandwidthUsage(base.NovaPersistentObject, base.NovaObject): # Version 1.0: Initial version # Version 1.1: Add use_slave to get_by_instance_uuid_and_mac - VERSION = '1.1' + # Version 1.2: Add update_cells to create + VERSION = '1.2' fields = { 'instance_uuid': fields.UUIDField(), @@ -52,10 +53,12 @@ class BandwidthUsage(base.NovaPersistentObject, base.NovaObject): @base.serialize_args @base.remotable def create(self, context, uuid, mac, bw_in, bw_out, last_ctr_in, - last_ctr_out, start_period=None, last_refreshed=None): + last_ctr_out, start_period=None, last_refreshed=None, + update_cells=True): db_bw_usage = db.bw_usage_update( context, uuid, mac, start_period, bw_in, bw_out, - last_ctr_in, last_ctr_out, last_refreshed=last_refreshed) + last_ctr_in, last_ctr_out, last_refreshed=last_refreshed, + update_cells=update_cells) self._from_db_object(context, self, db_bw_usage) @@ -63,13 +66,15 @@ class BandwidthUsage(base.NovaPersistentObject, base.NovaObject): class BandwidthUsageList(base.ObjectListBase, base.NovaObject): # Version 1.0: Initial version # Version 1.1: Add use_slave to get_by_uuids - VERSION = '1.1' + # Version 1.2: BandwidthUsage <= version 1.2 + VERSION = '1.2' fields = { 'objects': fields.ListOfObjectsField('BandwidthUsage'), } child_versions = { '1.0': '1.0', '1.1': '1.1', + '1.2': '1.2', } @base.serialize_args diff --git a/nova/tests/unit/compute/test_compute_mgr.py b/nova/tests/unit/compute/test_compute_mgr.py index dfda45134ec7..facb77ae2e50 100644 --- a/nova/tests/unit/compute/test_compute_mgr.py +++ b/nova/tests/unit/compute/test_compute_mgr.py @@ -2058,7 +2058,8 @@ class ComputeManagerUnitTestCase(test.NoDBTestCase): 'fake-mac', start_period=0, use_slave=True) bw_usage_update.assert_called_once_with(self.context, 'fake-uuid', 'fake-mac', 0, 4, 6, 1, 2, - last_refreshed=timeutils.isotime(_time)) + last_refreshed=timeutils.isotime(_time), + update_cells=False) class ComputeManagerBuildInstanceTestCase(test.NoDBTestCase): diff --git a/nova/tests/unit/objects/test_objects.py b/nova/tests/unit/objects/test_objects.py index f7eb53808b47..9152d5fa9dfd 100644 --- a/nova/tests/unit/objects/test_objects.py +++ b/nova/tests/unit/objects/test_objects.py @@ -931,8 +931,8 @@ object_data = { 'AgentList': '1.0-31f07426a729311a42ff7f6246e76e25', 'Aggregate': '1.1-f5d477be06150529a9b2d27cc49030b5', 'AggregateList': '1.2-4b02a285b8612bfb86a96ff80052fb0a', - 'BandwidthUsage': '1.1-bdab751673947f0ac7de108540a1a8ce', - 'BandwidthUsageList': '1.1-76898106a9db393cd5f42c557389c507', + 'BandwidthUsage': '1.2-a9d7c2ba54995e48ce38688c51c9416d', + 'BandwidthUsageList': '1.2-5b564cbfd5ae6e106443c086938e7602', 'BlockDeviceMapping': '1.4-9968ffe513e7672484b0f528b034cd0f', 'BlockDeviceMappingList': '1.5-83767968de6e91e9705bddaae02bc649', 'ComputeNode': '1.6-d2ea9b8f4a6e95ff6a683266eebddbff',