aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulien Meunier <julien.meunier@6wind.com>2018-04-12 09:39:27 +0200
committerJulien Meunier <julien.meunier@6wind.com>2018-04-19 09:58:12 +0200
commit217fa855dcfdc2fc74d556a5620ce6aeb66af007 (patch)
tree2b59dec46cc39af1a058b8161d51d9fe26826bf9
parentbe271aef854887fce72d821a8589dfd4ebbe8e1d (diff)
vswitches/ovs: delete bridges on stop
On stop, remove all created bridges in order to clean the working environment. Moreover, when an OVS bridge is deleted, remove also all attached ports. By the way, as the context manager of OFBridge is never used by the current test implementation and by any OVS vswitches in order to manage their creation/deletion, let's remove this dead code. JIRA: VSPERF-570 Change-Id: I7ce62d56a8a2fe7b45e693f3c2dd91e1b435567c Signed-off-by: Julien Meunier <julien.meunier@6wind.com>
-rw-r--r--src/ovs/ofctl.py15
-rw-r--r--vswitches/ovs.py4
2 files changed, 4 insertions, 15 deletions
diff --git a/src/ovs/ofctl.py b/src/ovs/ofctl.py
index b023e080..21da850a 100644
--- a/src/ovs/ofctl.py
+++ b/src/ovs/ofctl.py
@@ -156,21 +156,6 @@ class OFBridge(OFBase):
self._ports = {}
self._cache_file = None
- # context manager
-
- def __enter__(self):
- """Create datapath
-
- :returns: self
- """
- return self
-
- def __exit__(self, type_, value, traceback):
- """Remove datapath.
- """
- if not traceback:
- self.destroy()
-
# helpers
def run_ofctl(self, args, check_error=False, timeout=None):
diff --git a/vswitches/ovs.py b/vswitches/ovs.py
index 9e49b2ee..6f650005 100644
--- a/vswitches/ovs.py
+++ b/vswitches/ovs.py
@@ -128,6 +128,8 @@ class IVSwitchOvs(IVSwitch, tasks.Process):
def stop(self):
"""See IVswitch for general description
"""
+ for switch_name in list(self._bridges):
+ self.del_switch(switch_name)
self._logger.info("Terminating vswitchd...")
self.kill()
self._bridges = {}
@@ -147,6 +149,8 @@ class IVSwitchOvs(IVSwitch, tasks.Process):
"""See IVswitch for general description
"""
bridge = self._bridges[switch_name]
+ for port in list(bridge.get_ports()):
+ bridge.del_port(port)
self._bridges.pop(switch_name)
bridge.destroy()