Merge "openvswitch agent: add OVS_RESTARTED event" into stable/newton

This commit is contained in:
Jenkins 2017-03-22 21:07:31 +00:00 committed by Gerrit Code Review
commit d662c101fb
3 changed files with 30 additions and 0 deletions

View File

@ -43,3 +43,5 @@ ABORT_DELETE = 'abort_delete'
ABORT = 'abort_'
BEFORE = 'before_'
PRECOMMIT = 'precommit_'
OVS_RESTARTED = 'ovs_restarted'

View File

@ -46,6 +46,7 @@ from neutron.api.rpc.callbacks import resources
from neutron.api.rpc.handlers import dvr_rpc
from neutron.callbacks import events as callback_events
from neutron.callbacks import registry
from neutron.callbacks import resources as callback_resources
from neutron.common import config
from neutron.common import constants as c_const
from neutron.common import topics
@ -1969,6 +1970,11 @@ class OVSNeutronAgent(sg_rpc.SecurityGroupAgentRpcCallbackMixin,
self.patch_tun_ofport)
self.dvr_agent.reset_dvr_parameters()
self.dvr_agent.setup_dvr_flows()
# notify that OVS has restarted
registry.notify(
callback_resources.AGENT,
callback_events.OVS_RESTARTED,
self)
# restart the polling manager so that it will signal as added
# all the current ports
# REVISIT (rossella_s) Define a method "reset" in

View File

@ -14,10 +14,14 @@
# License for the specific language governing permissions and limitations
# under the License.
import mock
import time
from eventlet.timeout import Timeout
from neutron.callbacks import events
from neutron.callbacks import registry
from neutron.callbacks import resources
from neutron.common import utils
from neutron.plugins.ml2.drivers.openvswitch.agent.common import constants
from neutron.tests.common import net_helpers
@ -322,6 +326,24 @@ class TestOVSAgent(base.OVSAgentTestFramework):
Timeout, self.wait_until_ports_state, [self.ports[1]], up=True,
timeout=10)
def test_ovs_restarted_event(self):
callback = mock.Mock()
self.setup_agent_and_ports(
port_dicts=self.create_test_ports())
registry.subscribe(callback,
resources.AGENT,
events.OVS_RESTARTED)
self.agent.check_ovs_status.return_value = constants.OVS_RESTARTED
utils.wait_until_true(lambda: callback.call_count, timeout=10)
callback.assert_called_with(resources.AGENT,
events.OVS_RESTARTED,
mock.ANY)
class TestOVSAgentExtensionConfig(base.OVSAgentTestFramework):
def setUp(self):