Change in vdsm[master]: netinfo: Make get() use getLinks

asegurap at redhat.com asegurap at redhat.com
Fri Nov 22 22:51:00 UTC 2013


Antoni Segura Puimedon has uploaded a new change for review.

Change subject: netinfo: Make get() use getLinks
......................................................................

netinfo: Make get() use getLinks

By making get() use getLinks we avoid getLinks being called by nics
and by vlans, so it is all in all one less process creation and
less work to retrieve vlans and bridges as well.

For that to be possible we add the isBridge and isBond to ipwrapper.

Change-Id: Ia80df220cbf3d07fd229246748a0b0ebdcb302d2
Signed-off-by: Antoni S. Puimedon <asegurap at redhat.com>
---
M lib/vdsm/ipwrapper.py
M lib/vdsm/netinfo.py
2 files changed, 13 insertions(+), 7 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/63/21563/1

diff --git a/lib/vdsm/ipwrapper.py b/lib/vdsm/ipwrapper.py
index a8661f8..5e5ec29 100644
--- a/lib/vdsm/ipwrapper.py
+++ b/lib/vdsm/ipwrapper.py
@@ -182,6 +182,9 @@
     def isBOND(self):
         return self.type == LinkType.BOND
 
+    def isBRIDGE(self):
+        return self.type == LinkType.BRIDGE
+
     def isDUMMY(self):
         return self.type == LinkType.DUMMY
 
@@ -214,6 +217,8 @@
             return (anyFnmatch(self.name, self._hiddenNics) or
                     (self.master and _bondExists(self.master) and
                      anyFnmatch(self.master, self._hiddenBonds)))
+        elif self.isBOND():
+            return anyFnmatch(self.name, self._hiddenBonds)
         return False
 
 
diff --git a/lib/vdsm/netinfo.py b/lib/vdsm/netinfo.py
index 8179edc..00640e2 100644
--- a/lib/vdsm/netinfo.py
+++ b/lib/vdsm/netinfo.py
@@ -526,11 +526,10 @@
 
 
 def get():
-    d = {}
+    d = {'networks': {}}
     gateways = getRoutes()
     ipv6routes = getIPv6Routes()
     paddr = permAddr()
-    d['networks'] = {}
 
     for net, netAttr in networks().iteritems():
         try:
@@ -542,11 +541,13 @@
         except KeyError:
             continue  # Do not report missing libvirt networks.
 
-    d['bridges'] = dict([_bridgeinfo(bridge, gateways, ipv6routes)
-                         for bridge in bridges()])
-    d['nics'] = dict([_nicinfo(nic, paddr) for nic in nics()])
-    d['bondings'] = dict([_bondinfo(bond) for bond in bondings()])
-    d['vlans'] = dict([_vlaninfo(vlan) for vlan in vlans()])
+    links = filter(lambda x: not x.isHidden(), getLinks())
+    d['bridges'] = dict(_bridgeinfo(dev.name, gateways, ipv6routes) for dev
+                        in links if dev.isBRIDGE())
+    d['nics'] = dict(_nicinfo(dev.name, paddr) for dev in links
+                     if dev.isNICLike())
+    d['bondings'] = dict(_bondinfo(dev.name) for dev in links if dev.isBOND())
+    d['vlans'] = dict(_vlaninfo(dev.name) for dev in links if dev.isVLAN())
     return d
 
 


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia80df220cbf3d07fd229246748a0b0ebdcb302d2
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Antoni Segura Puimedon <asegurap at redhat.com>


More information about the vdsm-patches mailing list