forked from MFALHI/netplugin
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsanity.py
More file actions
executable file
·92 lines (74 loc) · 3.29 KB
/
Copy pathsanity.py
File metadata and controls
executable file
·92 lines (74 loc) · 3.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#!/usr/bin/python
# sanity tests
import api.tbed
import api.tutils
import time
import sys
import api.objmodel
import testcases.tcBasic
import testcases.tcPolicy
import testcases.tcNetwork
import testcases.tcTrigger
import argparse
import os
import exceptions
import traceback
# Create the parser and sub parser
parser = argparse.ArgumentParser()
parser.add_argument('--version', action='version', version='1.0.0')
parser.add_argument("-nodes", required=True, help="list of nodes(comma seperated)")
parser.add_argument("-iteration", default="3", help="Number of iterations")
parser.add_argument("-user", default='vagrant', help="User id for ssh")
parser.add_argument("-password", default='vagrant', help="password for ssh")
parser.add_argument("-binpath", default='/opt/gopath/bin', help="netplugin/netmaster binary path")
parser.add_argument("-containers", default='0', help="number of containers")
# Parse the args
args = parser.parse_args()
addrList = args.nodes.split(",")
numCntr = len(addrList) * 2
if args.containers != '0':
numCntr = int(args.containers)
numIteration = int(args.iteration)
api.tutils.info("Running " + str(numIteration) + " iterations with " + str(numCntr) + " containers on " + str(len(addrList)) + " nodes")
try:
# Time when test started
startTime = time.time()
# Setup testbed
testbed = api.tbed.Testbed(addrList, args.user, args.password, args.binpath)
time.sleep(15)
testbed.chekForNetpluginErrors()
# Run vlan tests
testcases.tcNetwork.testAddDeleteTenant(testbed, numCntr, numIteration, encap="vlan")
testcases.tcNetwork.testAddDeleteNetwork(testbed, (numCntr * 3), numIteration, encap="vlan")
testcases.tcBasic.startRemoveContainer(testbed, numCntr, numIteration, encap="vlan")
testcases.tcBasic.startStopContainer(testbed, numCntr, numIteration, encap="vlan")
# Run vxlan tests
testcases.tcNetwork.testAddDeleteTenant(testbed, numCntr, numIteration, encap="vxlan")
testcases.tcNetwork.testAddDeleteNetwork(testbed, (numCntr * 3), numIteration, encap="vxlan")
testcases.tcBasic.startRemoveContainer(testbed, numCntr, numIteration, encap="vxlan")
testcases.tcBasic.startStopContainer(testbed, numCntr, numIteration, encap="vxlan")
# Run policy tests. We support this in "vxlan" mode only today
testcases.tcPolicy.testBasicPolicy(testbed, numCntr, numIteration)
testcases.tcPolicy.testPolicyAddDeleteRule(testbed, numCntr, numIteration)
testcases.tcPolicy.testPolicyFromEpg(testbed, numCntr, numIteration)
# Run multiple triggers on the Testbed
testcases.tcTrigger.testMultiTrigger(testbed, (numIteration * 6))
# Cleanup testbed
testbed.cleanup()
# Calculate how long it took
doneTime = time.time()
elapsedTime = doneTime - startTime
api.tutils.log("Test started at " + time.asctime(time.localtime(startTime)))
api.tutils.log("Test ended at " + time.asctime(time.localtime(doneTime)))
if elapsedTime > 120.0:
api.tutils.log("Tests took " + str(elapsedTime/60) + " minutes")
else:
api.tutils.log("Tests took " + str(elapsedTime) + " seconds")
api.tutils.info("Sanity passed")
except exceptions.KeyboardInterrupt:
print "\n\n Keyboard interrupt.... Exiting\n"
os._exit(1)
except: # catch *all* exceptions
print "Exception: "
traceback.print_exc()
os._exit(1)