]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
MeteringPluginRpc: Fix crash in periodic_task
authorYAMAMOTO Takashi <yamamoto@valinux.co.jp>
Thu, 27 Nov 2014 07:16:03 +0000 (16:16 +0900)
committerYAMAMOTO Takashi <yamamoto@valinux.co.jp>
Fri, 28 Nov 2014 05:48:44 +0000 (14:48 +0900)
Restore __init__ chain which has been broken by
commit bdcc5a46d7776f50d5ae372798a913349629d2f6 .

Closes-Bug: #1396893
Change-Id: Ia1f0357b6726ac79a22ed1666eecebac33689aa1

neutron/services/metering/agents/metering_agent.py
neutron/tests/unit/services/metering/test_metering_agent.py

index 21f5c6e707617da9fe6be9ad4a22ad33beaf10a5..d86bbceaa860619b09879f0805a6582e2c068980 100644 (file)
@@ -45,6 +45,11 @@ LOG = logging.getLogger(__name__)
 class MeteringPluginRpc(object):
 
     def __init__(self, host):
+        # NOTE(yamamoto): super.__init__() call here is not only for
+        # aesthetics.  Because of multiple inheritances in MeteringAgent,
+        # it's actually necessary to initialize parent classes of
+        # manager.Manager correctly.
+        super(MeteringPluginRpc, self).__init__()
         target = messaging.Target(topic=topics.METERING_PLUGIN, version='1.0')
         self.client = n_rpc.get_client(target)
 
index aee7f2c0c198cda060b97a8f7b6c65ace9ad6874..74bdfbac96839044c7fdd2186154e40f4ad6b844 100644 (file)
@@ -158,3 +158,9 @@ class TestMeteringDriver(base.BaseTestCase):
                                              {'driver': self.noop_driver,
                                               'func':
                                               'add_metering_label'})
+
+    def test_init_chain(self):
+        with mock.patch('neutron.openstack.common.'
+                        'periodic_task.PeriodicTasks.__init__') as init:
+            metering_agent.MeteringAgent('my agent', cfg.CONF)
+        init.assert_called_once_with()