Blob Blame History Raw
From dbe23c6eb50b6dc59738dceb0ece78221cadcfd3 Mon Sep 17 00:00:00 2001
From: Douglas Schilling Landgraf <dougsland@redhat.com>
Date: Wed, 11 Jul 2012 11:18:42 -0400
Subject: [PATCH 35/40] BZ#837443: remove bridge before add VDSM bridge

Related to BZ#837443: ovirt-node fails to register with ovirt-engine

oVirt Node when installed manually creates a bridge to be consumed.
VDSM should remove any bridge (listed or not listed in libvirt)
to create it's own bridge.

Change-Id: Ibc2842db371483225042d511c6495df1bc5047de
Signed-off-by: Douglas Schilling Landgraf <dougsland@redhat.com>
Reviewed-on: http://gerrit.ovirt.org/6016
Reviewed-by: Igor Lvovsky <ilvovsky@redhat.com>
Reviewed-by: Mark Wu <wudxw@linux.vnet.ibm.com>
Reviewed-by: Dan Kenigsberg <danken@redhat.com>
Reviewed-on: http://gerrit.ovirt.org/6208
---
 vdsm/configNetwork.py |   20 +++++++++++++++-----
 1 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/vdsm/configNetwork.py b/vdsm/configNetwork.py
index dabd219..c94648c 100755
--- a/vdsm/configNetwork.py
+++ b/vdsm/configNetwork.py
@@ -745,9 +745,22 @@ def delNetwork(network, vlan=None, bonding=None, nics=None, force=False,
 
     validateBridgeName(network)
 
+    if configWriter is None:
+        configWriter = ConfigWriter()
+
     if network not in _netinfo.networks:
-        raise ConfigNetworkError(ne.ERR_BAD_BRIDGE,
-                "Cannot delete network %r: It doesn't exist" % network)
+        logging.info("Network %r: doesn't exist in libvirt database", network)
+        if network in netinfo.bridges():
+            configWriter.removeBridge(network)
+        else:
+            raise ConfigNetworkError(ne.ERR_BAD_BRIDGE,
+                    "Cannot delete network %r: It doesn't exist "
+                    "in the system" % network)
+
+        if vlan:
+            configWriter.removeVlan(vlan, bonding or nics[0])
+
+        return
 
     nics, vlan, bonding = _netinfo.getNicsVlanAndBondingForNetwork(network)
     bridged = _netinfo.networks[network]['bridged']
@@ -767,9 +780,6 @@ def delNetwork(network, vlan=None, bonding=None, nics=None, force=False,
         if bridged:
             assertBridgeClean(network, vlan, bonding, nics)
 
-    if configWriter is None:
-        configWriter = ConfigWriter()
-
     if bridged:
         configWriter.setNewMtu(network)
 
-- 
1.7.7.6