diff --git a/neutron/agent/linux/ovsdb_monitor.py b/neutron/agent/linux/ovsdb_monitor.py index 02f45f6b1b9..7e0ef251184 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 d1de2068f9d..58ca74db5f7 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 bf13fd4d851..9b8b9768706 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):