summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.openstack.org>2017-10-17 23:58:00 +0000
committerGerrit Code Review <review@openstack.org>2017-10-17 23:58:01 +0000
commitb60b79c1fd08cc1dcf7549a69bfe562c753af2fa (patch)
tree8a1fb8e0cc8cbcf0da9c0742a45b0979a3c8e1d9
parente7fc559b493888c4b7dfe2f27b571ef8cecd8a73 (diff)
parent1d2cfc4f5689fa1d88fb9aa13be14a6b7cc17a89 (diff)
downloadnova-b60b79c1fd08cc1dcf7549a69bfe562c753af2fa.tar.gz
Merge "Account for compute.metrics.update in legacy notification whitelist" into stable/newton
-rw-r--r--nova/rpc.py1
-rw-r--r--nova/tests/unit/compute/test_resource_tracker.py22
2 files changed, 18 insertions, 5 deletions
diff --git a/nova/rpc.py b/nova/rpc.py
index 9f9d6abef5..cbe3b0616f 100644
--- a/nova/rpc.py
+++ b/nova/rpc.py
@@ -300,6 +300,7 @@ class LegacyValidatingNotifier(object):
'compute.instance.volume.attach',
'compute.instance.volume.detach',
'compute.libvirt.error',
+ 'compute.metrics.update',
'compute_task.build_instances',
'compute_task.migrate_server',
'compute_task.rebuild_server',
diff --git a/nova/tests/unit/compute/test_resource_tracker.py b/nova/tests/unit/compute/test_resource_tracker.py
index d3297f9238..bce02a5e88 100644
--- a/nova/tests/unit/compute/test_resource_tracker.py
+++ b/nova/tests/unit/compute/test_resource_tracker.py
@@ -33,6 +33,7 @@ from nova.objects import base as obj_base
from nova.objects import pci_device
from nova.pci import manager as pci_manager
from nova import test
+from nova.tests.unit import fake_notifier
from nova.tests.unit.objects import test_pci_device as fake_pci_device
from nova.tests import uuidsentinel as uuids
@@ -2232,8 +2233,10 @@ class ComputeMonitorTestCase(BaseTestCase):
u'Cannot get the metrics from %(mon)s; error: %(exc)s', mock.ANY)
self.assertEqual(0, len(metrics))
- @mock.patch('nova.rpc.get_notifier')
- def test_get_host_metrics(self, rpc_mock):
+ def test_get_host_metrics(self):
+ fake_notifier.stub_notifier(self)
+ self.addCleanup(fake_notifier.reset)
+
class FakeCPUMonitor(monitor_base.MonitorBase):
NOW_TS = timeutils.utcnow()
@@ -2256,7 +2259,6 @@ class ComputeMonitorTestCase(BaseTestCase):
self.rt.monitors = [FakeCPUMonitor(None)]
metrics = self.rt._get_host_metrics(self.context, _NODENAME)
- rpc_mock.assert_called_once_with(service='compute', host=_NODENAME)
expected_metrics = [
{
@@ -2274,8 +2276,18 @@ class ComputeMonitorTestCase(BaseTestCase):
'nodename': _NODENAME,
}
- rpc_mock.return_value.info.assert_called_once_with(
- self.context, 'compute.metrics.update', payload)
+ self.assertEqual(1, len(fake_notifier.NOTIFICATIONS))
+ msg = fake_notifier.NOTIFICATIONS[0]
+ self.assertEqual('compute.metrics.update', msg.event_type)
+ for p_key in payload:
+ if p_key == 'metrics':
+ self.assertIn(p_key, msg.payload)
+ self.assertEqual(1, len(msg.payload['metrics']))
+ # make sure the expected metrics match the actual metrics
+ self.assertDictEqual(expected_metrics[0],
+ msg.payload['metrics'][0])
+ else:
+ self.assertEqual(payload[p_key], msg.payload[p_key])
self.assertEqual(metrics, expected_metrics)