From 3543d8858691c1a709127e25fc0838e054bd34ef Mon Sep 17 00:00:00 2001 From: rossella Date: Thu, 23 Apr 2015 22:57:18 +0000 Subject: [PATCH] Remove is_active property from SimpleInterfaceMonitor is_active property from SimpleInterfaceMonitor shadows the method is_active inherited from AsyncProcess. The property checks that ovsdb monitor is running and that it received some data. When ovsdb monitor starts it always receives data, since it processes the interfaces present on the machine, so the flag data_received will always be set to true right after SimpleInterfaceMonitor starts. Considering that, is_active can be removed and the method is_active inherited from AsyncProcess can be used instead. Change-Id: I05faeddd061ab45af51c044a10462c3a57593d4d --- neutron/agent/linux/ovsdb_monitor.py | 10 ++-------- .../functional/agent/linux/test_ovsdb_monitor.py | 1 + neutron/tests/unit/agent/linux/test_ovsdb_monitor.py | 12 +----------- 3 files changed, 4 insertions(+), 19 deletions(-) diff --git a/neutron/agent/linux/ovsdb_monitor.py b/neutron/agent/linux/ovsdb_monitor.py index 02f45f6b1..7e0ef2511 100644 --- a/neutron/agent/linux/ovsdb_monitor.py +++ b/neutron/agent/linux/ovsdb_monitor.py @@ -69,12 +69,6 @@ class SimpleInterfaceMonitor(OvsdbMonitor): ) self.data_received = False - @property - def is_active(self): - return (self.data_received and - self._kill_event and - not self._kill_event.ready()) - @property def has_updates(self): """Indicate whether the ovsdb Interface table has been updated. @@ -84,13 +78,13 @@ class SimpleInterfaceMonitor(OvsdbMonitor): the absence of updates at the expense of potential false positives. """ - return bool(list(self.iter_stdout())) or not self.is_active + return bool(list(self.iter_stdout())) or not self.is_active() def start(self, block=False, timeout=5): super(SimpleInterfaceMonitor, self).start() if block: with eventlet.timeout.Timeout(timeout): - while not self.is_active: + while not self.is_active(): eventlet.sleep() def _kill(self, *args, **kwargs): diff --git a/neutron/tests/functional/agent/linux/test_ovsdb_monitor.py b/neutron/tests/functional/agent/linux/test_ovsdb_monitor.py index d1de2068f..58ca74db5 100644 --- a/neutron/tests/functional/agent/linux/test_ovsdb_monitor.py +++ b/neutron/tests/functional/agent/linux/test_ovsdb_monitor.py @@ -102,6 +102,7 @@ class TestSimpleInterfaceMonitor(BaseMonitorTest): self.monitor.start(block=True, timeout=timeout) def test_has_updates(self): + utils.wait_until_true(lambda: self.monitor.data_received is True) self.assertTrue(self.monitor.has_updates, 'Initial call should always be true') self.assertFalse(self.monitor.has_updates, diff --git a/neutron/tests/unit/agent/linux/test_ovsdb_monitor.py b/neutron/tests/unit/agent/linux/test_ovsdb_monitor.py index bf13fd4d8..9b8b97687 100644 --- a/neutron/tests/unit/agent/linux/test_ovsdb_monitor.py +++ b/neutron/tests/unit/agent/linux/test_ovsdb_monitor.py @@ -12,7 +12,6 @@ # License for the specific language governing permissions and limitations # under the License. -import eventlet.event import mock from neutron.agent.linux import ovsdb_monitor @@ -56,22 +55,13 @@ class TestSimpleInterfaceMonitor(base.BaseTestCase): super(TestSimpleInterfaceMonitor, self).setUp() self.monitor = ovsdb_monitor.SimpleInterfaceMonitor() - def test_is_active_is_false_by_default(self): - self.assertFalse(self.monitor.is_active) - - def test_is_active_can_be_true(self): - self.monitor.data_received = True - self.monitor._kill_event = eventlet.event.Event() - self.assertTrue(self.monitor.is_active) - def test_has_updates_is_true_by_default(self): self.assertTrue(self.monitor.has_updates) def test_has_updates_is_false_if_active_with_no_output(self): target = ('neutron.agent.linux.ovsdb_monitor.SimpleInterfaceMonitor' '.is_active') - with mock.patch(target, - new_callable=mock.PropertyMock(return_value=True)): + with mock.patch(target, return_value=True): self.assertFalse(self.monitor.has_updates) def test__kill_sets_data_received_to_false(self): -- 2.45.2