Change in vdsm[master]: pyroute2: ports target is not set

phoracek at redhat.com phoracek at redhat.com
Thu Aug 7 12:13:54 UTC 2014


Petr Horáček has uploaded a new change for review.

Change subject: pyroute2: ports target is not set
......................................................................

pyroute2: ports target is not set

Network tests using pyroute2 sometimes raise:
CommitException: ports target is not set.
It seems quite random to me (I didn't find the cause).

Anyway, I looked at some pyroute2 examples in its docs and i
found, that they add bridge and its port in one with statement, so
i removed addBridgePort() function from pyroute2 and changed
addBridge() to work that way.

Change-Id: I3f3bf85f161e498f396e3cf130fb8308ae932860
Signed-off-by: Petr Horáček <phoracek at redhat.com>
---
M vdsm/network/configurators/pyroute_two.py
1 file changed, 15 insertions(+), 6 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/01/31201/1

diff --git a/vdsm/network/configurators/pyroute_two.py b/vdsm/network/configurators/pyroute_two.py
index 9fe63b5..33184af 100644
--- a/vdsm/network/configurators/pyroute_two.py
+++ b/vdsm/network/configurators/pyroute_two.py
@@ -25,6 +25,7 @@
 from . import libvirt
 from .dhclient import DhcpClient
 from .iproute2 import Iproute2
+from ..sourceroute import DynamicSourceRoute
 
 try:
     from pyroute2 import IPDB
@@ -48,6 +49,15 @@
         self.configApplier = None
         self.runningConfig.save()
         self.runningConfig = None
+
+    def configureBridge(self, bridge, **opts):
+        self.configApplier.addBridge(bridge, **opts)
+        DynamicSourceRoute.addInterfaceTracking(bridge)
+        self.configApplier.setIfaceConfigAndUp(bridge)
+        self._addSourceRoute(bridge)
+        if 'custom' in opts and 'bridge_opts' in opts['custom']:
+            self.configApplier._setBridgeOpts(bridge,
+                                              opts['custom']['bridge_opts'])
 
 
 class ConfigApplier(object):
@@ -93,12 +103,11 @@
             self.setIfaceMtu(iface.name, iface.mtu)
         self.ifup(iface)
 
-    def addBridge(self, bridge):
-        self.ip.create(kind='bridge', ifname=bridge.name).commit()
-
-    def addBridgePort(self, bridge):
-        with self.ip.interfaces[bridge.name] as i:
-            i.add_port(self.ip.interfaces[bridge.port.name])
+    def addBridge(self, bridge, **opts):
+        with self.ip.create(kind='bridge', ifname=bridge.name) as i:
+            if bridge.port:
+                bridge.port.configure(**opts)
+                i.add_port(self.ip.interfaces[bridge.port.name])
 
     def removeBridge(self, bridge):
         with self.ip.interfaces[bridge.name] as i:


-- 
To view, visit http://gerrit.ovirt.org/31201
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I3f3bf85f161e498f396e3cf130fb8308ae932860
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Petr Horáček <phoracek at redhat.com>


More information about the vdsm-patches mailing list