Add update_cells to BandwidthUsage.create()

The switch from conductor_api.bw_update_usage to BandwidthUsage.create
caused a regression in reporting this information up to parent cells.
This adds the argument, and functionality, back in.

Change-Id: I495f9b5ed1845ad78c2d5da5b5f90b40a20c3ab3
Closes-Bug: #1392426
This commit is contained in:
Andrew Laski 2014-11-13 13:30:38 -05:00
parent 31f05239d2
commit 0d09ced654
4 changed files with 18 additions and 8 deletions

View File

@ -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."""

View File

@ -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

View File

@ -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):

View File

@ -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',