import contextlib
import eventlet
+from oslo_log import log as logging
from neutron.agent.common import base_polling
+from neutron.agent.linux import async_process
from neutron.agent.linux import ovsdb_monitor
from neutron.plugins.ml2.drivers.openvswitch.agent.common import constants
+LOG = logging.getLogger(__name__)
+
@contextlib.contextmanager
def get_polling_manager(minimize_polling=False,
self._monitor.start()
def stop(self):
- self._monitor.stop()
+ try:
+ self._monitor.stop()
+ except async_process.AsyncProcessException:
+ LOG.debug("InterfacePollingMinimizer was not running when stopped")
def _is_polling_required(self):
# Maximize the chances of update detection having a chance to
from neutron.agent.common import polling
from neutron.agent.common import utils
from neutron.agent.l2.extensions import manager as ext_manager
-from neutron.agent.linux import async_process
from neutron.agent.linux import ip_lib
from neutron.agent.linux import polling as linux_polling
from neutron.agent import rpc as agent_rpc
# no action and by InterfacePollingMinimizer as start/stop
if isinstance(
polling_manager, linux_polling.InterfacePollingMinimizer):
- # There's a possible race here, when ovsdb-server is
- # restarted ovsdb monitor will also be restarted
- try:
- polling_manager.stop()
- except async_process.AsyncProcessException:
- LOG.debug("OVSDB monitor was not running")
+ polling_manager.stop()
polling_manager.start()
elif ovs_status == constants.OVS_DEAD:
# Agent doesn't apply any operations when ovs is dead, to