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