summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-12-11 00:22:51 +0000
committerGerrit Code Review <review@openstack.org>2012-12-11 00:22:51 +0000
commite8df8b3ff5342bb66ac4778974508c502eb6135a (patch)
tree0fb3a3718a46b696a583e1cf7aad75734acc8233
parent8b4bbb7a668d354159688c6ac8c7f82ca620fb42 (diff)
parent07848e761a13afaf44c58d99ceb6a133e6999470 (diff)
Merge "Fix bw_usage_update issue with conductor"
-rw-r--r--nova/conductor/api.py2
-rw-r--r--nova/conductor/manager.py4
-rw-r--r--nova/tests/conductor/test_conductor.py26
3 files changed, 29 insertions, 3 deletions
diff --git a/nova/conductor/api.py b/nova/conductor/api.py
index a55618bd6..fe4f6ca98 100644
--- a/nova/conductor/api.py
+++ b/nova/conductor/api.py
@@ -66,7 +66,7 @@ class LocalAPI(object):
return self._manager.aggregate_host_delete(context, aggregate, host)
def bw_usage_get(self, context, uuid, start_period, mac):
- return self._manager.bw_usage_update(context, uuid, start_period, mac)
+ return self._manager.bw_usage_update(context, uuid, mac, start_period)
def bw_usage_update(self, context, uuid, mac, start_period,
bw_in, bw_out, last_ctr_in, last_ctr_out,
diff --git a/nova/conductor/manager.py b/nova/conductor/manager.py
index 925edc29a..4a37b9dfb 100644
--- a/nova/conductor/manager.py
+++ b/nova/conductor/manager.py
@@ -41,7 +41,7 @@ datetime_fields = ['launched_at', 'terminated_at']
class ConductorManager(manager.SchedulerDependentManager):
"""Mission: TBD"""
- RPC_API_VERSION = '1.4'
+ RPC_API_VERSION = '1.5'
def __init__(self, *args, **kwargs):
super(ConductorManager, self).__init__(service_name='conductor',
@@ -94,7 +94,7 @@ class ConductorManager(manager.SchedulerDependentManager):
bw_in=None, bw_out=None,
last_ctr_in=None, last_ctr_out=None,
last_refreshed=None):
- if all((None, bw_in, bw_out, last_ctr_in, last_ctr_out)):
+ if [bw_in, bw_out, last_ctr_in, last_ctr_out].count(None) != 4:
self.db.bw_usage_update(context, uuid, mac, start_period,
bw_in, bw_out, last_ctr_in, last_ctr_out,
last_refreshed)
diff --git a/nova/tests/conductor/test_conductor.py b/nova/tests/conductor/test_conductor.py
index 8c97c4cdc..8805ac648 100644
--- a/nova/tests/conductor/test_conductor.py
+++ b/nova/tests/conductor/test_conductor.py
@@ -154,6 +154,20 @@ class ConductorTestCase(BaseTestCase):
db.aggregate_delete(self.context.elevated(), aggregate_ref['id'])
+ def test_bw_usage_update(self):
+ self.mox.StubOutWithMock(db, 'bw_usage_update')
+ self.mox.StubOutWithMock(db, 'bw_usage_get')
+
+ update_args = (self.context, 'uuid', 'mac', 0, 10, 20, 5, 10, 20)
+ get_args = (self.context, 'uuid', 0, 'mac')
+
+ db.bw_usage_update(*update_args)
+ db.bw_usage_get(*get_args).AndReturn('foo')
+
+ self.mox.ReplayAll()
+ result = self.conductor.bw_usage_update(*update_args)
+ self.assertEqual(result, 'foo')
+
class ConductorRPCAPITestCase(ConductorTestCase):
"""Conductor RPC API Tests"""
@@ -177,6 +191,18 @@ class ConductorLocalAPITestCase(ConductorTestCase):
return self.conductor.instance_update(self.context, instance_uuid,
**updates)
+ def test_bw_usage_get(self):
+ self.mox.StubOutWithMock(db, 'bw_usage_update')
+ self.mox.StubOutWithMock(db, 'bw_usage_get')
+
+ get_args = (self.context, 'uuid', 0, 'mac')
+
+ db.bw_usage_get(*get_args).AndReturn('foo')
+
+ self.mox.ReplayAll()
+ result = self.conductor.bw_usage_get(*get_args)
+ self.assertEqual(result, 'foo')
+
class ConductorAPITestCase(ConductorLocalAPITestCase):
"""Conductor API Tests"""