On unstack : clean up network namespaces created by quantum
Also removes OVS ports
Fix Bug #1156837
Change-Id: Id4178c0a12a3ada76403a57a736a9c7a908d6a4a
diff --git a/lib/quantum_plugins/nec b/lib/quantum_plugins/nec
index 4a2a497..411f5a4 100644
--- a/lib/quantum_plugins/nec
+++ b/lib/quantum_plugins/nec
@@ -17,8 +17,6 @@
OFC_RETRY_MAX=${OFC_RETRY_MAX:-0}
OFC_RETRY_INTERVAL=${OFC_RETRY_INTERVAL:-1}
-OVS_BRIDGE=${OVS_BRIDGE:-br-int}
-
# Main logic
# ---------------------------
diff --git a/lib/quantum_plugins/nicira b/lib/quantum_plugins/nicira
index 305c3bf..fc06b55 100644
--- a/lib/quantum_plugins/nicira
+++ b/lib/quantum_plugins/nicira
@@ -8,7 +8,6 @@
source $TOP_DIR/lib/quantum_plugins/ovs_base
function setup_integration_bridge() {
- OVS_BRIDGE=${OVS_BRIDGE:-br-int}
_quantum_ovs_base_setup_bridge $OVS_BRIDGE
# Set manager to NVP controller (1st of list)
if [[ "$NVP_CONTROLLERS" != "" ]]; then
diff --git a/lib/quantum_plugins/openvswitch b/lib/quantum_plugins/openvswitch
index dda9e61..3741720 100644
--- a/lib/quantum_plugins/openvswitch
+++ b/lib/quantum_plugins/openvswitch
@@ -41,7 +41,6 @@
function quantum_plugin_configure_plugin_agent() {
# Setup integration bridge
- OVS_BRIDGE=${OVS_BRIDGE:-br-int}
_quantum_ovs_base_setup_bridge $OVS_BRIDGE
_quantum_ovs_base_configure_firewall_driver
diff --git a/lib/quantum_plugins/ovs_base b/lib/quantum_plugins/ovs_base
index 2ada0db..a5e03ac 100644
--- a/lib/quantum_plugins/ovs_base
+++ b/lib/quantum_plugins/ovs_base
@@ -5,6 +5,9 @@
MY_XTRACE=$(set +o | grep xtrace)
set +o xtrace
+OVS_BRIDGE=${OVS_BRIDGE:-br-int}
+PUBLIC_BRIDGE=${PUBLIC_BRIDGE:-br-ex}
+
function is_quantum_ovs_base_plugin() {
# Yes, we use OVS.
return 0
@@ -17,6 +20,18 @@
sudo ovs-vsctl --no-wait br-set-external-id $bridge bridge-id $bridge
}
+function quantum_ovs_base_cleanup() {
+ # remove all OVS ports that look like Quantum created ports
+ for port in $(sudo ovs-vsctl list port | grep -o -e tap[0-9a-f\-]* -e q[rg]-[0-9a-f\-]*); do
+ sudo ovs-vsctl del-port ${port}
+ done
+
+ # remove all OVS bridges created by Quantum
+ for bridge in $(sudo ovs-vsctl list-br | grep -o -e ${OVS_BRIDGE} -e ${PUBLIC_BRIDGE}); do
+ sudo ovs-vsctl del-br ${bridge}
+ done
+}
+
function _quantum_ovs_base_install_agent_packages() {
local kernel_version
# Install deps
diff --git a/lib/quantum_plugins/ryu b/lib/quantum_plugins/ryu
index 1b039dc..c482747 100644
--- a/lib/quantum_plugins/ryu
+++ b/lib/quantum_plugins/ryu
@@ -45,7 +45,6 @@
function quantum_plugin_configure_plugin_agent() {
# Set up integration bridge
- OVS_BRIDGE=${OVS_BRIDGE:-br-int}
_quantum_ovs_base_setup_bridge $OVS_BRIDGE
if [ -n "$RYU_INTERNAL_INTERFACE" ]; then
sudo ovs-vsctl --no-wait -- --may-exist add-port $OVS_BRIDGE $RYU_INTERNAL_INTERFACE