Antoni Segura Puimedon has uploaded a new change for review.

Change subject: net_functional_tests: bondWithManyVlans.
......................................................................

net_functional_tests: bondWithManyVlans.

This patch adds a tests for adding several vlanned networks over
a bond. It also adds two methods to utils to share network
information.

Change-Id: Ie9da7bd407cfbd9acab5e20384bff1254c26ffc5
Signed-off-by: Antoni S. Puimedon <[email protected]>
---
M tests/functional/networkTests.py
M tests/functional/utils.py
2 files changed, 59 insertions(+), 8 deletions(-)


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

diff --git a/tests/functional/networkTests.py b/tests/functional/networkTests.py
index c9392dd..5536972 100644
--- a/tests/functional/networkTests.py
+++ b/tests/functional/networkTests.py
@@ -46,6 +46,40 @@
     @permutations([[True], [False]])
     @RequireDummyMod
     @ValidateRunningAsRoot
+    def testSetupNetworksAddBondWithManyVlans(self, bridged):
+        VLAN_COUNT = 5
+        network_names = [NETWORK_NAME + str(tag) for tag in range(VLAN_COUNT)]
+        with dummyIf(2) as nics:
+            networks = dict((vlan_net,
+                             {'vlan': str(tag), 'bonding': BONDING_NAME,
+                              'bridged': bridged})
+                             for tag, vlan_net in enumerate(network_names))
+            bondings = {BONDING_NAME: {'nics': nics}}
+
+            with self.vdsm_net.pinger():
+                status, msg = self.vdsm_net.setupNetworks(networks, bondings,
+                                                          {})
+            net_info = self.vdsm_net.getNetInfo()
+            self.assertEqual(status, SUCCESS, msg)
+            for vlan_net in network_names:
+                self.assertTrue(self.vdsm_net.networkExists(vlan_net, bridged,
+                                                            net_info))
+                self.assertTrue(self.vdsm_net.bondExists(BONDING_NAME, nics,
+                                                         net_info))
+                self.assertTrue(self.vdsm_net.vlanExists(BONDING_NAME + '.' +
+                                networks[vlan_net]['vlan'], net_info))
+
+            with self.vdsm_net.pinger():
+                for vlan_net in network_names:
+                    status, msg = self.vdsm_net.setupNetworks({vlan_net:
+                        {'remove': True}}, {}, {})
+                    self.assertEqual(status, SUCCESS, msg)
+                    self.assertFalse(self.vdsm_net.networkExists(NETWORK_NAME))
+
+    @cleanupNet
+    @permutations([[True], [False]])
+    @RequireDummyMod
+    @ValidateRunningAsRoot
     def testSetupNetworksAddDelBondedNetwork(self, bridged):
         with dummyIf(2) as nics:
             with self.vdsm_net.pinger():
@@ -54,8 +88,11 @@
                         {'bonding': BONDING_NAME, 'bridged': bridged}},
                     {BONDING_NAME: {'nics': nics, 'options': 'mode=2'}}, {})
             self.assertEqual(status, SUCCESS, msg)
-            self.assertTrue(self.vdsm_net.networkExists(NETWORK_NAME, bridged))
-            self.assertTrue(self.vdsm_net.bondExists(BONDING_NAME, nics))
+            net_info = self.vdsm_net.getNetInfo()
+            self.assertTrue(self.vdsm_net.networkExists(NETWORK_NAME, bridged,
+                                                        net_info))
+            self.assertTrue(self.vdsm_net.bondExists(BONDING_NAME, nics,
+                                                     net_info))
 
             with self.vdsm_net.pinger():
                 status, msg = self.vdsm_net.setupNetworks(
@@ -105,8 +142,12 @@
                                                    nics=nics,
                                                    opts={'bridged': bridged})
             self.assertEqual(status, SUCCESS, msg)
-            self.assertTrue(self.vdsm_net.networkExists(NETWORK_NAME))
-            self.assertTrue(self.vdsm_net.bondExists(BONDING_NAME, nics))
+
+            net_info = self.vdsm_net.getNetInfo()
+            self.assertTrue(self.vdsm_net.networkExists(NETWORK_NAME, bridged,
+                                                        net_info))
+            self.assertTrue(self.vdsm_net.bondExists(BONDING_NAME, nics,
+                                                     net_info))
 
             status, msg = self.vdsm_net.delNetwork(NETWORK_NAME)
             self.assertEqual(status, SUCCESS, msg)
diff --git a/tests/functional/utils.py b/tests/functional/utils.py
index 557d679..c4d6fdf 100644
--- a/tests/functional/utils.py
+++ b/tests/functional/utils.py
@@ -153,17 +153,27 @@
         result = self.vdscli.setupNetworks(networks, bonds, options)
         return result['status']['code'], result['status']['message']
 
-    def networkExists(self, network_name, bridged=None):
-        info = netinfo.NetInfo(self.vdscli.getVdsCapabilities()['info'])
+    def networkExists(self, network_name, bridged=None, info=None):
+        if info is None:
+            info = netinfo.NetInfo(self.vdscli.getVdsCapabilities()['info'])
         return network_name in info.networks and \
             (bridged is None or info.networks[network_name]['bridged'] ==
              bridged)
 
-    def bondExists(self, bond_name, nics=None):
-        info = netinfo.NetInfo(self.vdscli.getVdsCapabilities()['info'])
+    def bondExists(self, bond_name, nics=None, info=None):
+        if info is None:
+            info = netinfo.NetInfo(self.vdscli.getVdsCapabilities()['info'])
         return bond_name in info.bondings and \
             (not nics or set(nics) == set(info.bondings[bond_name]['slaves']))
 
+    def vlanExists(self, vlan_name, info=None):
+        if info is None:
+            info = netinfo.NetInfo(self.vdscli.getVdsCapabilities()['info'])
+        return vlan_name in info.vlans
+
+    def getNetInfo(self):
+        return netinfo.NetInfo(self.vdscli.getVdsCapabilities()['info'])
+
     @contextmanager
     def pinger(self):
         """Keeps pinging vdsm for operations that need it"""


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

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

Reply via email to