Change in vdsm[master]: sourceroute: replace _removeSourceRoute by parametrized vers...

osvoboda at redhat.com osvoboda at redhat.com
Fri May 29 16:48:39 UTC 2015


Ondřej Svoboda has uploaded a new change for review.

Change subject: sourceroute: replace _removeSourceRoute by parametrized versions
......................................................................

sourceroute: replace _removeSourceRoute by parametrized versions

Ifcfg configurator now has _remove_static_source_route and Iproute2
configurator got _remove_dynamic_source_route.

Change-Id: Ie4f864746e5e2b64e7ad54d898388f5d6edf527a
Signed-off-by: Ondřej Svoboda <osvoboda at redhat.com>
---
M vdsm/network/configurators/__init__.py
M vdsm/network/configurators/ifcfg.py
M vdsm/network/configurators/iproute2.py
3 files changed, 21 insertions(+), 17 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/12/41612/1

diff --git a/vdsm/network/configurators/__init__.py b/vdsm/network/configurators/__init__.py
index 6adcf00..6462ad1 100644
--- a/vdsm/network/configurators/__init__.py
+++ b/vdsm/network/configurators/__init__.py
@@ -134,12 +134,6 @@
                 source_route.prepare_configuration()
                 self.configureSourceRoute(source_route)
 
-    def _removeSourceRoute(self, device, source_route_class):
-        if device.ipv4.bootproto != 'dhcp' and device.master is None:
-            source_route = source_route_class(device.name)
-            if source_route.prepare_removal():
-                self.removeSourceRoute(source_route)
-
     def _setNewMtu(self, iface, ifaceVlans):
         """
         Update an interface's MTU when one of its users is removed.
diff --git a/vdsm/network/configurators/ifcfg.py b/vdsm/network/configurators/ifcfg.py
index ab46b4d..ddf97a3 100644
--- a/vdsm/network/configurators/ifcfg.py
+++ b/vdsm/network/configurators/ifcfg.py
@@ -166,7 +166,7 @@
     def removeBridge(self, bridge):
         DynamicSourceRoute.addInterfaceTracking(bridge)
         ifdown(bridge.name)
-        self._removeSourceRoute(bridge, StaticSourceRoute)
+        self._remove_static_source_route(bridge)
         utils.execCmd([constants.EXT_BRCTL, 'delbr', bridge.name])
         self.configApplier.removeBridge(bridge.name)
         if bridge.port:
@@ -175,7 +175,7 @@
     def removeVlan(self, vlan):
         DynamicSourceRoute.addInterfaceTracking(vlan)
         ifdown(vlan.name)
-        self._removeSourceRoute(vlan, StaticSourceRoute)
+        self._remove_static_source_route(vlan)
         self.configApplier.removeVlan(vlan.name)
         vlan.device.remove()
 
@@ -185,7 +185,7 @@
         to_be_removed = not netinfo.ifaceUsed(iface.name)
         if to_be_removed:
             ifdown(iface.name)
-        self._removeSourceRoute(iface, StaticSourceRoute)
+        self._remove_static_source_route(iface)
         return to_be_removed
 
     def _addSourceRoute(self, device):
@@ -252,10 +252,14 @@
         self._writeConfFile(source_route.routes, 'route', source_route.device)
         self._writeConfFile(source_route.rules, 'rule', source_route.device)
 
-    def removeSourceRoute(self, source_route):
-        logging.info('Removing source route for %s', source_route.device)
-        self._removeSourceRouteFile('rule', source_route.device)
-        self._removeSourceRouteFile('route', source_route.device)
+    def removeSourceRoute(self, device):
+        logging.info('Removing source route for %s', device)
+        self._removeSourceRouteFile('rule', device)
+        self._removeSourceRouteFile('route', device)
+
+    def _remove_static_source_route(self, device):
+        if device.ipv4.bootproto != 'dhcp' and device.master is None:
+            self.removeSourceRoute(device.name)
 
     def flush(self):
         super(Ifcfg, self).flush()
diff --git a/vdsm/network/configurators/iproute2.py b/vdsm/network/configurators/iproute2.py
index 8520d47..eb4d242 100644
--- a/vdsm/network/configurators/iproute2.py
+++ b/vdsm/network/configurators/iproute2.py
@@ -146,7 +146,7 @@
     def removeBridge(self, bridge):
         DynamicSourceRoute.addInterfaceTracking(bridge)
         self.configApplier.ifdown(bridge)
-        self._removeSourceRoute(bridge, DynamicSourceRoute)
+        self._remove_dynamic_source_route(bridge)
         self.configApplier.removeBridge(bridge)
         if bridge.port:
             bridge.port.remove()
@@ -154,7 +154,7 @@
     def removeVlan(self, vlan):
         DynamicSourceRoute.addInterfaceTracking(vlan)
         self.configApplier.ifdown(vlan)
-        self._removeSourceRoute(vlan, DynamicSourceRoute)
+        self._remove_dynamic_source_route(vlan)
         self.configApplier.removeVlan(vlan)
         vlan.device.remove()
 
@@ -171,7 +171,7 @@
             if bonding.master is None:
                 self.configApplier.removeIpConfig(bonding.name)
                 DynamicSourceRoute.addInterfaceTracking(bonding)
-                self._removeSourceRoute(bonding, DynamicSourceRoute)
+                self._remove_dynamic_source_route(bonding)
 
             if bonding.destroyOnMasterRemoval:
                 self._destroyBond(bonding)
@@ -190,7 +190,7 @@
             if nic.master is None:
                 self.configApplier.removeIpConfig(nic.name)
                 DynamicSourceRoute.addInterfaceTracking(nic)
-                self._removeSourceRoute(nic, DynamicSourceRoute)
+                self._remove_dynamic_source_route(nic)
             else:
                 self.configApplier.setIfaceMtu(nic.name,
                                                netinfo.DEFAULT_MTU)
@@ -218,6 +218,12 @@
         except IPRoute2Error as e:
             logging.error('Source route removal failed: %s' % e.message)
 
+    def _remove_dynamic_source_route(self, device):
+        if device.ipv4.bootproto != 'dhcp' and device.master is None:
+            source_route = DynamicSourceRoute(device.name)
+            if source_route.prepare_removal():
+                self.removeSourceRoute(source_route)
+
 
 class ConfigApplier(object):
     def _setIpConfig(self, name, ipv4, ipv6):


-- 
To view, visit https://gerrit.ovirt.org/41612
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie4f864746e5e2b64e7ad54d898388f5d6edf527a
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Ondřej Svoboda <osvoboda at redhat.com>


More information about the vdsm-patches mailing list