Change in vdsm[master]: net: report expected devices in OVS netinfo

phoracek at redhat.com phoracek at redhat.com
Wed May 4 23:22:23 UTC 2016


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

Change subject: net: report expected devices in OVS netinfo
......................................................................

net: report expected devices in OVS netinfo

Change-Id: I5bdf8c0cd4eb2f11dfd8145d82b0d9f866595583
Bug-Url: https://bugzilla.redhat.com/1195208
Signed-off-by: Petr Horáček <phoracek at redhat.com>
---
M lib/vdsm/network/ovs/info.py
M tests/network/ovs_info_test.py
2 files changed, 52 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/67/57067/1

diff --git a/lib/vdsm/network/ovs/info.py b/lib/vdsm/network/ovs/info.py
index 2f6b87b..b652c44 100644
--- a/lib/vdsm/network/ovs/info.py
+++ b/lib/vdsm/network/ovs/info.py
@@ -141,7 +141,7 @@
                 'dhcpv6': is_dhcpv6}
 
 
-def get_netinfo(ovs_bridges=None):
+def _get_netinfo(ovs_bridges=None):
 
     def _get_southbound_port(ports):
         southbound = None
@@ -234,3 +234,52 @@
                 networking['bonds'][port] = bond_info
 
     return networking
+
+
+def _copy_port_info(source_dict, destination_dict):
+    KEYS = ['mtu', 'addr', 'ipv4addrs', 'gateway', 'netmask', 'dhcpv4',
+            'ipv6addrs', 'ipv6autoconf', 'ipv6gateway', 'dhcpv6', 'cfg']
+    for key in KEYS:
+        destination_dict[key] = source_dict[key]
+
+
+def _fake_expected_devices(netinfo):
+    bridges = {}
+    vlans = {}
+    nics = {}
+    for net, attrs in six.iteritems(netinfo):
+        bridge_info = {
+            'bridged': True,
+            'ports': attrs['ports'],
+            'stp': attrs['stp']
+        }
+        _copy_port_info(attrs, bridge_info)
+        bridges[net] = bridge_info
+
+        vlanid = attrs['vlanid']
+        if vlanid is not None:
+            iface = attrs['bond'] or attrs['nics'][0]
+            vlan_info = {
+                'vlanid': vlanid,
+                'iface': iface
+            }
+            vlan_info.update(EMPTY_PORT_INFO)
+            vlan_name = '%s.%s' % (iface, vlanid)
+            vlans[vlan_name] = vlan_info
+
+        for nic in attrs['nics']:
+            nic_info = {
+                'speed': 1000  # lie
+            }
+            nic_info.update(EMPTY_PORT_INFO)
+            nics[nic] = nic_info
+
+    netinfo['bridges'] = bridges
+    netinfo['vlans'] = vlans
+    netinfo['nics'] = nics
+
+    return netinfo
+
+
+def get_netinfo(ovs_bridges=None):
+    return _fake_expected_devices(_get_netinfo(ovs_bridges))
diff --git a/tests/network/ovs_info_test.py b/tests/network/ovs_info_test.py
index 3382ef7..3b5fcd9 100644
--- a/tests/network/ovs_info_test.py
+++ b/tests/network/ovs_info_test.py
@@ -257,8 +257,8 @@
             }
         }
 
-        obtained_networks = info.get_netinfo(bridges)['networks']
+        obtained_networks = info._get_netinfo(bridges)['networks']
         self.assertEquals(obtained_networks, expected_networks)
 
-        obtained_bonds = info.get_netinfo(bridges)['bondings']
+        obtained_bonds = info._get_netinfo(bridges)['bondings']
         self.assertEquals(obtained_bonds, expected_bonds)


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

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