Giuseppe Vallarelli has uploaded a new change for review.

Change subject: [WIP] Feature hidden bond: Adding support for hiding bonds.
......................................................................

[WIP] Feature hidden bond: Adding support for hiding bonds.

Bonds can be hidden, hiding a bond requires hiding the underlying
nic slaves.

Change-Id: I3c734e27f674b47644b2c3c14861d7ee53670a7d
Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=965927
Signed-off-by: Giuseppe Vallarelli <[email protected]>
---
M lib/vdsm/config.py.in
M lib/vdsm/netinfo.py
2 files changed, 23 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/25/15825/1

diff --git a/lib/vdsm/config.py.in b/lib/vdsm/config.py.in
index 4e4769f..494f94d 100644
--- a/lib/vdsm/config.py.in
+++ b/lib/vdsm/config.py.in
@@ -67,6 +67,10 @@
             'Comma-separated list of fnmatch-patterns for host nics to be '
             'hidden from vdsm.'),
 
+        ('hidden_bonds', 'bond*',
+            'Comma-separated list of fnmatch-patterns for host bonds to be '
+            'hidden from vdsm.'),
+
         ('default_bridge', 'engine', None),
 
         ('migration_downtime', '500',
diff --git a/lib/vdsm/netinfo.py b/lib/vdsm/netinfo.py
index 964d30d..3102641 100644
--- a/lib/vdsm/netinfo.py
+++ b/lib/vdsm/netinfo.py
@@ -59,26 +59,42 @@
     res = []
     hidden_nics = config.get('vars', 'hidden_nics').split(',')
     fake_nics = config.get('vars', 'fake_nics').split(',')
+    hidden_bonds = config.get('vars', 'hidden_bonds').split(',')
 
     for b in glob.glob('/sys/class/net/*'):
         nic = b.split('/')[-1]
         if not os.path.exists(os.path.join(b, 'device')):
             if _match_nic_name(nic, fake_nics):
                 res.append(nic)
-        elif not _match_nic_name(nic, hidden_nics):
+        # De Morgan's law "not (A or B)"
+        # is the same as "(not A) and (not B)"
+        elif not (_match_nic_name(nic, hidden_nics) or
+                  slaveOfBonds(nic, hidden_bonds)):
             res.append(nic)
 
     return res
 
 
+def slaveOfBonds(nic, hidden_bonds):
+    for bond in hidden_bonds:
+        if slaves(bond):
+            return True
+    return False
+
+
 def bondings():
+    hidden_bonds = config.get('vars', 'hidden_bonds').split(',')
+    res = []
     try:
-        return open(BONDING_MASTERS).readline().split()
+        for bond in open(BONDING_MASTERS).readline().split():
+            if not _match_nic_name(bond, hidden_bonds):
+                res.append(bond)
     except IOError as e:
         if e.errno == os.errno.ENOENT:
-            return []
+            return res
         else:
             raise
+    return res
 
 
 def vlans():


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I3c734e27f674b47644b2c3c14861d7ee53670a7d
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Giuseppe Vallarelli <[email protected]>
_______________________________________________
vdsm-patches mailing list
[email protected]
https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches

Reply via email to