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
This commit is contained in:
rossella 2015-04-23 22:57:18 +00:00
parent 2023ed2336
commit 3543d88586
3 changed files with 4 additions and 19 deletions

View File

@ -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):

View File

@ -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,

View File

@ -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):