blob: 8586a7a5a4a08603d6424d1cabc2d80f33ccf312 [file] [log] [blame]
andrewonlab4a5c4472014-10-09 12:11:41 -04001
2#Testing the basic functionality of ONOS Next
3#For sanity and driver functionality excercises only.
4
andrewonlab7735d852014-10-09 13:02:47 -04005import time
6import sys
7import os
andrewonlab2d355162014-10-10 00:43:59 -04008import re
9import time
andrewonlab7735d852014-10-09 13:02:47 -040010
andrewonlab4a5c4472014-10-09 12:11:41 -040011class ONOSNextTest:
12 def __init__(self):
13 self.default = ''
14
15 def CASE1(self, main):
16 '''
17 Startup sequence:
18 git pull
19 mvn clean install
20 onos-package
21 cell <name>
22 onos-verify-cell
23 onos-install -f
24 onos-wait-for-start
25 '''
andrewonlab7735d852014-10-09 13:02:47 -040026
andrewonlab084307e2014-10-09 14:06:09 -040027 cell_name = main.params['ENV']['cellName']
28 ONOS1_ip = main.params['CTRL']['ip1']
andrew@onlab.us59e8f692014-10-09 21:41:48 -040029 ONOS1_port = main.params['CTRL']['port1']
Jon Hallea7818b2014-10-09 14:30:59 -040030
andrewonlab8d0d7d72014-10-09 16:33:15 -040031 main.case("Setting up test environment")
Jon Hall3be576e2014-10-09 22:23:03 -040032
33 main.step("Git checkout and pull master")
andrewonlab94282092014-10-10 13:00:11 -040034 #main.ONOSbench.git_checkout("master")
35 #git_pull_result = main.ONOSbench.git_pull()
Jon Hall3be576e2014-10-09 22:23:03 -040036
andrewonlab8d0d7d72014-10-09 16:33:15 -040037
andrewonlab2b30bd32014-10-09 16:48:55 -040038 main.step("Using mvn clean & install")
andrewonlabf103e9f2014-10-10 00:59:07 -040039 #clean_install_result = main.ONOSbench.clean_install()
40 clean_install_result = main.TRUE
andrewonlab2b30bd32014-10-09 16:48:55 -040041
andrewonlab8d0d7d72014-10-09 16:33:15 -040042 main.step("Creating ONOS package")
andrewonlab7735d852014-10-09 13:02:47 -040043 package_result = main.ONOSbench.onos_package()
andrewonlab8d0d7d72014-10-09 16:33:15 -040044
andrewonlab94282092014-10-10 13:00:11 -040045 main.step("Creating cell file")
46 cell_file_result = main.ONOSbench.create_cell_file(
47 "10.128.20.10", "temp_cell_2", "10.128.10.90",
48 "10.128.10.11", "10.128.10.12", "10.128.10.13")
49
andrewonlab8d0d7d72014-10-09 16:33:15 -040050 main.step("Applying cell variable to environment")
andrewonlab084307e2014-10-09 14:06:09 -040051 cell_result = main.ONOSbench.set_cell(cell_name)
andrewonlabc03bf6c2014-10-09 14:56:18 -040052 verify_result = main.ONOSbench.verify_cell()
andrewonlab2fe32ad2014-10-09 16:36:40 -040053
54 main.step("Installing ONOS package")
Jon Hall7993bfc2014-10-09 16:30:14 -040055 onos_install_result = main.ONOSbench.onos_install()
56 onos1_isup = main.ONOSbench.isup()
andrewonlab8d0d7d72014-10-09 16:33:15 -040057
58 main.step("Starting ONOS service")
59 start_result = main.ONOSbench.onos_start(ONOS1_ip)
60
Jon Hall7993bfc2014-10-09 16:30:14 -040061 case1_result = (clean_install_result and package_result and\
andrewonlab2b30bd32014-10-09 16:48:55 -040062 cell_result and verify_result and onos_install_result and\
andrewonlabf103e9f2014-10-10 00:59:07 -040063 onos1_isup and start_result )
andrewonlab0748d2a2014-10-09 13:24:17 -040064 utilities.assert_equals(expect=main.TRUE, actual=case1_result,
65 onpass="Test startup successful",
66 onfail="Test startup NOT successful")
andrewonlab4a5c4472014-10-09 12:11:41 -040067
andrewonlab05e362f2014-10-10 00:40:57 -040068 def CASE11(self, main):
andrewonlab2b30bd32014-10-09 16:48:55 -040069 '''
70 Cleanup sequence:
71 onos-service <node_ip> stop
72 onos-uninstall
73
74 TODO: Define rest of cleanup
75
76 '''
77
78 ONOS1_ip = main.params['CTRL']['ip1']
79
80 main.case("Cleaning up test environment")
81
andrewonlab057c06a2014-10-09 17:19:21 -040082 main.step("Testing ONOS kill function")
83 kill_result = main.ONOSbench.onos_kill(ONOS1_ip)
84
andrewonlab2b30bd32014-10-09 16:48:55 -040085 main.step("Stopping ONOS service")
86 stop_result = main.ONOSbench.onos_stop(ONOS1_ip)
87
88 main.step("Uninstalling ONOS service")
andrewonlab057c06a2014-10-09 17:19:21 -040089 uninstall_result = main.ONOSbench.onos_uninstall()
andrewonlab4a5c4472014-10-09 12:11:41 -040090
andrewonlab05e362f2014-10-10 00:40:57 -040091 def CASE3(self, main):
92 '''
93 Test 'onos' command and its functionality in driver
94 '''
95
96 ONOS1_ip = main.params['CTRL']['ip1']
andrewonlab05e362f2014-10-10 00:40:57 -040097
98 main.case("Testing 'onos' command")
99
andrewonlabf103e9f2014-10-10 00:59:07 -0400100 main.step("Sending command 'onos -w <onos-ip> system:name'")
101 cmdstr1 = "system:name"
102 cmd_result1 = main.ONOSbench.onos_cli(ONOS1_ip, cmdstr1)
103 main.log.info("onos command returned: "+cmd_result1)
104
105 main.step("Sending command 'onos -w <onos-ip> onos:topology'")
106 cmdstr2 = "onos:topology"
107 cmd_result2 = main.ONOSbench.onos_cli(ONOS1_ip, cmdstr2)
108 main.log.info("onos command returned: "+cmd_result2)
109
andrewonlabf103e9f2014-10-10 00:59:07 -0400110 def CASE4(self, main):
111 main.step("Assigning switches to controllers")
112 for i in range(1,29):
113 main.Mininet1.assign_sw_controller(sw=str(i),
114 ip1=ONOS1_ip, port1=ONOS1_port)
115 switch_mastership = main.TRUE
116 for i in range (1,29):
117 response = main.Mininet1.get_sw_controller("s"+str(i))
118 print("Response is " + str(response))
119 if re.search("tcp:"+ONOS1_ip,response):
120 switch_mastership = switch_mastership and main.TRUE
121 else:
122 switch_mastership = main.FALSE
123
124 #REACTIVE FWD test
125 main.step("Pingall")
126 ping_result = main.FALSE
127 while ping_result == main.FALSE:
128 time1 = time.time()
129 ping_result = main.Mininet1.pingall()
130 time2 = time.time()
131 print "Time for pingall: %2f seconds" % (time2 - time1)
132
133 case4_result = switch_mastership and ping_result
134 utilities.assert_equals(expect=main.TRUE, actual=case4_result,
135 onpass="Test successful",
136 onfail="Test NOT successful")
137