Change in vdsm[master]: netinfo: add bridge option reporting

asegurap at redhat.com asegurap at redhat.com
Mon Apr 14 09:43:28 UTC 2014


Antoni Segura Puimedon has uploaded a new change for review.

Change subject: netinfo: add bridge option reporting
......................................................................

netinfo: add bridge option reporting

This patch adds reporting of the bridge options that reside in
/sys/class/net/<bridge_name>/bridge/<opt_name>

Change-Id: I91ecc4bb652c5f676e62297aa3d6640bfee596fd
Signed-off-by: Antoni S. Puimedon <asegurap at redhat.com>
---
M lib/vdsm/netinfo.py
M vdsm_api/vdsmapi-schema.json
2 files changed, 25 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/49/26749/1

diff --git a/lib/vdsm/netinfo.py b/lib/vdsm/netinfo.py
index bfc316c..1734966 100644
--- a/lib/vdsm/netinfo.py
+++ b/lib/vdsm/netinfo.py
@@ -65,6 +65,7 @@
 BONDING_MASTERS = '/sys/class/net/bonding_masters'
 BONDING_SLAVES = '/sys/class/net/%s/bonding/slaves'
 BONDING_OPT = '/sys/class/net/%s/bonding/%s'
+BRIDGING_OPT = '/sys/class/net/%s/bridge/%s'
 _BONDING_FAILOVER_MODES = frozenset(('1', '3'))
 _BONDING_LOADBALANCE_MODES = frozenset(('0', '2', '4', '5', '6'))
 _IFCFG_ZERO_SUFFIXED = frozenset(
@@ -176,6 +177,24 @@
         with open(path) as optFile:
             opts[os.path.basename(path)] = [
                 el for el in optFile.read().rstrip().split(' ') if el]
+    return opts
+
+
+def bridgeOpts(bridge, keys=None):
+    """Returns a dictionary of bridge option name and value. E.g.,
+    {'max_age': '2000', 'gc_timer': '332'}"""
+    BR_KEY_BLACKLIST = ('flush',)
+    if keys is None:
+        paths = iglob(BRIDGING_OPT % (bridge, '*'))
+    else:
+        paths = (BRIDGING_OPT % (bridge, key) for key in keys)
+    opts = {}
+    for path in paths:
+        key = os.path.basename(path)
+        if key in BR_KEY_BLACKLIST:
+            continue
+        with open(path) as optFile:
+            opts[key] = optFile.read().rstrip()
     return opts
 
 
@@ -512,7 +531,8 @@
     info.update({'gateway': getgateway(gateways, link.name),
                  'ipv6gateway': ipv6routes.get(link.name, '::'),
                  'ports': ports(link.name),
-                 'stp': bridge_stp_state(link.name)})
+                 'stp': bridge_stp_state(link.name),
+                 'opts': bridgeOpts(link.name)})
     return info
 
 
diff --git a/vdsm_api/vdsmapi-schema.json b/vdsm_api/vdsmapi-schema.json
index 31bd869..2523df1 100644
--- a/vdsm_api/vdsmapi-schema.json
+++ b/vdsm_api/vdsmapi-schema.json
@@ -589,6 +589,9 @@
 #
 # @qosOutbound: #optional BandwidthParams for outgoing traffic.
 #
+# @bridge_opts: A map containing information about the bridge specific options.
+#               (new in version 4.15.0)
+#
 # Since: 4.10.0
 # XXX: Add types for IP Address?
 ##
@@ -597,7 +600,7 @@
           'netmask': 'str', 'gateway': 'str', 'ipv6addrs': ['str'],
           'ipv6gateway': 'str', 'mtu': 'uint', 'cfg': 'StringMap',
           'bridged': 'bool', '*qosInbound': 'BandwidthParams',
-          '*qosOutbound': 'BandwidthParams'}}
+          '*qosOutbound': 'BandwidthParams', 'opts': 'StringMap'}}
 
 ##
 # @NetInfoBridgelessNetwork:


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I91ecc4bb652c5f676e62297aa3d6640bfee596fd
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