Assaf Muller has uploaded a new change for review.
Change subject: Functional Tests [3/3]: Added static source routing functional test ......................................................................
Functional Tests [3/3]: Added static source routing functional test
Change-Id: I4188e6ee5daea12fbd35cb8e1c87782e9605c7cd Signed-off-by: Assaf Muller amuller@redhat.com --- M tests/functional/networkTests.py 1 file changed, 44 insertions(+), 0 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/41/18041/1
diff --git a/tests/functional/networkTests.py b/tests/functional/networkTests.py index 10e42dc..296ed2d 100644 --- a/tests/functional/networkTests.py +++ b/tests/functional/networkTests.py @@ -29,6 +29,8 @@ from vdsm.ipwrapper import ruleAdd, ruleDel, routeAdd, routeDel, routeExists, \ ruleExists, Route, Rule
+from vdsm.netinfo import prefix2netmask +
NETWORK_NAME = 'test-network' VLAN_ID = '27' @@ -442,3 +444,45 @@ self.assertTrue(routeExists(route)) routeDel(route) self.assertFalse(routeExists(route)) + + @permutations([[True], [False]]) + @RequireDummyMod + @ValidateRunningAsRoot + def testSourceRouting(self, bridged=True): + with dummyIf(1) as nics: + status, msg = self.vdsm_net.setupNetworks( + {NETWORK_NAME: + {'nic': nics[0], 'bridged': bridged, 'ipaddr': IP_ADDRESS, + 'netmask': prefix2netmask(int(IP_CIDR)), + 'gateway': IP_GATEWAY}}, + {}, {'connectivityCheck': False}) + self.assertEqual(status, SUCCESS, msg) + self.assertTrue(self.vdsm_net.networkExists(NETWORK_NAME, bridged)) + + deviceName = NETWORK_NAME if bridged else nics[0] + + # Assert that routes and rules exist + routes = [Route(network='0.0.0.0/0', ipaddr=IP_GATEWAY, + device=deviceName, table=IP_TABLE), + Route(network=IP_NETWORK_AND_CIDR, + ipaddr=IP_ADDRESS, device=deviceName, + table=IP_TABLE)] + rules = [Rule(source=IP_NETWORK_AND_CIDR, table=IP_TABLE), + Rule(destination=IP_NETWORK_AND_CIDR, table=IP_TABLE, + srcDevice=deviceName)] + + for route in routes: + self.assertTrue(routeExists(route)) + for rule in rules: + self.assertTrue(ruleExists(rule)) + + status, msg = self.vdsm_net.setupNetworks( + {NETWORK_NAME: {'remove': True}}, + {}, {'connectivityCheck': False}) + self.assertEqual(status, SUCCESS, msg) + + # Assert that routes and rules don't exist + for route in routes: + self.assertFalse(routeExists(route)) + for rule in rules: + self.assertFalse(ruleExists(rule))