Add check in git pull for when in detached head state and lowered the timeout slightly
diff --git a/TestON/drivers/common/cli/onosclidriver.py b/TestON/drivers/common/cli/onosclidriver.py
index 0b3e033..7b7a0bd 100644
--- a/TestON/drivers/common/cli/onosclidriver.py
+++ b/TestON/drivers/common/cli/onosclidriver.py
@@ -844,7 +844,7 @@
self.handle.sendline("git pull " + comp1)
uptodate = 0
- i=self.handle.expect(['fatal','Username\sfor\s(.*):\s','Unpacking\sobjects',pexpect.TIMEOUT,'Already up-to-date','Aborting'],timeout=1800)
+ i=self.handle.expect(['fatal','Username\sfor\s(.*):\s','Unpacking\sobjects',pexpect.TIMEOUT,'Already up-to-date','Aborting','You\sare\snot\scurrently\son\sa\sbranch'],timeout=1700)
#debug
#main.log.report(self.name +": \n"+"git pull response: " + str(self.handle.before) + str(self.handle.after))
if i==0:
@@ -866,6 +866,9 @@
elif i==5:
main.log.info(self.name + ": Git Pull - Aborting... Are there conflicting git files?")
return main.ERROR
+ elif i==6:
+ main.log.info(self.name + ": Git Pull - You are not currently on a branch so git pull failed!")
+ return main.ERROR
else:
main.log.error(self.name + ": Git Pull - Unexpected response, check for pull errors")
return main.ERROR
@@ -926,7 +929,6 @@
main.log.info(self.name + ": Build success!")
elif i == 3:
main.log.info(self.name + ": Build complete")
- self.handle.sendline("./build-ramcloud-java-bindings.sh")
self.handle.expect("\$", timeout=60)
return main.TRUE
elif i == 4:
diff --git a/TestON/tests/ONOSSanity4/ONOSSanity4.py b/TestON/tests/ONOSSanity4/ONOSSanity4.py
index 6bd2367..209a664 100644
--- a/TestON/tests/ONOSSanity4/ONOSSanity4.py
+++ b/TestON/tests/ONOSSanity4/ONOSSanity4.py
@@ -55,15 +55,16 @@
main.Zookeeper2.start()
main.Zookeeper3.start()
main.Zookeeper4.start()
+ time.sleep(3)
main.RC1.del_db()
main.RC2.del_db()
main.RC3.del_db()
main.RC4.del_db()
+ time.sleep(5)
main.ONOS1.start_all()
main.ONOS2.start_all()
main.ONOS3.start_all()
main.ONOS4.start_all()
-
#main.step("Start Up Mininet")
main.step("Start up Rest Server")
main.ONOS1.start_rest()
diff --git a/TestON/tests/RCOnosSanity4nodesJ/RCOnosSanity4nodesJ.params b/TestON/tests/RCOnosSanity4nodesJ/RCOnosSanity4nodesJ.params
index 8c482b0..b7ad203 100644
--- a/TestON/tests/RCOnosSanity4nodesJ/RCOnosSanity4nodesJ.params
+++ b/TestON/tests/RCOnosSanity4nodesJ/RCOnosSanity4nodesJ.params
@@ -1,6 +1,5 @@
<PARAMS>
- <testcases>1,2,21,3,31,4,41,5,6,7,3,4,5,6,7,66</testcases>
- <FLOWDEF>~/flowdef_files/Center_Triangle/flowdef_20.txt</FLOWDEF>
+ <testcases>1,2,21,3,31,6,7,6,7,6,7,4,5,6,7,6,7,66</testcases>
<CASE1>
<destination>h6</destination>
<target>h40</target>
@@ -38,7 +37,10 @@
<ip4>10.128.100.24</ip4>
<port4>6633</port4>
</CTRL>
- <RestIP>10.128.100.21</RestIP>
+ <RestIP>10.128.4.151</RestIP>
+ <RestIP2>10.128.4.152</RestIP2>
+ <RestIP3>10.128.4.153</RestIP3>
+ <RestIP4>10.128.4.154</RestIP4>
<NR_Switches>25</NR_Switches>
<NR_Links>50</NR_Links>
<RESTCALL>
diff --git a/TestON/tests/RCOnosSanity4nodesJ/RCOnosSanity4nodesJ.py b/TestON/tests/RCOnosSanity4nodesJ/RCOnosSanity4nodesJ.py
index e7a5fa0..d7c493f 100644
--- a/TestON/tests/RCOnosSanity4nodesJ/RCOnosSanity4nodesJ.py
+++ b/TestON/tests/RCOnosSanity4nodesJ/RCOnosSanity4nodesJ.py
@@ -81,7 +81,7 @@
data = main.Zookeeper1.isup()
utilities.assert_equals(expect=main.TRUE,actual=data,onpass="Zookeeper is up!",onfail="Zookeeper is down...")
main.step("Testing startup RamCloud")
- data = main.RamCloud1.status_serv()
+ data = main.RamCloud1.status_serv() and main.RamCloud2.status_serv() and main.RamCloud3.status_serv() and main.RamCloud4.status_serv()
if data == main.FALSE:
main.RamCloud1.stop_coor()
main.RamCloud1.stop_serv()
@@ -95,9 +95,13 @@
main.RamCloud2.start_serv()
main.RamCloud3.start_serv()
main.RamCloud4.start_serv()
+ time.sleep(5)
+ data = main.RamCloud1.status_serv() and main.RamCloud2.status_serv() and main.RamCloud3.status_serv() and main.RamCloud4.status_serv()
+
+
utilities.assert_equals(expect=main.TRUE,actual=data,onpass="RamCloud is up!",onfail="RamCloud is down...")
main.step("Testing startup ONOS")
- data = main.ONOS1.isup()
+ data = main.ONOS1.isup() and main.ONOS2.isup() and main.ONOS3.isup() and main.ONOS4.isup()
for i in range(3):
if data == main.FALSE:
#main.log.report("Something is funny... restarting ONOS")
@@ -105,7 +109,7 @@
time.sleep(3)
#main.ONOS1.start()
#time.sleep(5)
- data = main.ONOS1.isup()
+ data = main.ONOS1.isup() and main.ONOS2.isup() and main.ONOS3.isup() and main.ONOS4.isup()
else:
break
utilities.assert_equals(expect=main.TRUE,actual=data,onpass="ONOS is up and running!",onfail="ONOS didn't start...")
@@ -389,14 +393,15 @@
main.log.report("Bring Link between s1 and s2 up, then ping until all hosts are reachable or fail after 10 attempts")
import time
main.case("Bringing Link up... ")
+ result = main.Mininet1.link(END1='s1',END2='s3',OPTION="down")
result = main.Mininet1.link(END1=main.params['LINK']['begin'],END2=main.params['LINK']['end'],OPTION="up")
utilities.assert_equals(expect=main.TRUE,actual=result,onpass="Link UP!",onfail="Link not brought up...")
- time.sleep(5)
+ time.sleep(10)
strtTime = time.time()
- result = main.ONOS1.check_status_report(main.params['RestIP'],main.params['NR_Switches'],main.params['NR_Links'])
- for i in range(2):
+ result = main.ONOS1.check_status_report(main.params['RestIP'],main.params['NR_Switches'],str(int(main.params['NR_Links'])-2))
+ for i in range(10):
if result == main.FALSE:
- time.sleep(5)
+ time.sleep(15)
result = main.ONOS1.check_status_report(main.params['RestIP'],main.params['NR_Switches'],main.params['NR_Links'])
else:
break
@@ -424,6 +429,7 @@
main.log.report("\tTime to complete ping test: "+str(round(endTime-strtTime,2))+" seconds")
else:
main.log.report("\tPING TESTS FAILED")
+ result = main.Mininet1.link(END1='s1',END2='s3',OPTION="up")
utilities.assert_equals(expect=main.TRUE,actual=result,onpass="NO PACKET LOSS, HOST IS REACHABLE",onfail="PACKET LOST, HOST IS NOT REACHABLE")
@@ -555,7 +561,7 @@
else:# check if rest server is working
main.log.error("Issue with find host")
result4 = main.FALSE
- time.sleep(6)
+ time.sleep(20)
Reststatus, Switch, Port = main.ONOS1.find_host(RestIP1,RestPort,url,mac)
main.log.report("Number of host with IP=10.0.0.1 found by ONOS is: " + str(Reststatus))
if Reststatus ==1:
diff --git a/TestON/tests/RRCOnosSanity4nodesJ/RRCOnosSanity4nodesJ.params b/TestON/tests/RRCOnosSanity4nodesJ/RRCOnosSanity4nodesJ.params
index cee149e..6fd0e9a 100644
--- a/TestON/tests/RRCOnosSanity4nodesJ/RRCOnosSanity4nodesJ.params
+++ b/TestON/tests/RRCOnosSanity4nodesJ/RRCOnosSanity4nodesJ.params
@@ -1,5 +1,5 @@
<PARAMS>
- <testcases>1,2,21,31,4,41,5,6,7,4,5,6,7</testcases>
+ <testcases>1,2,21,31,41,5,6,7,66</testcases>
<FLOWDEF>~/flowdef_files/Center_Triangle/flowdef_20.txt</FLOWDEF>
<CASE1>
<destination>h6</destination>
@@ -41,8 +41,10 @@
<NR_Switches>25</NR_Switches>
<NR_Links>50</NR_Links>
<RESTCALL>
- <restIP1>10.128.100.21</restIP1>
- <restIP2>10.128.100.22</restIP2>
+ <restIP1>10.128.4.151</restIP1>
+ <restIP2>10.128.4.152</restIP2>
+ <restIP3>10.128.4.153</restIP3>
+ <restIP4>10.128.4.154</restIP4>
<restPort>8080</restPort>
<restURL>/wm/onos/topology/devices</restURL>
</RESTCALL>
diff --git a/TestON/tests/RRCOnosSanity4nodesJ/RRCOnosSanity4nodesJ.py b/TestON/tests/RRCOnosSanity4nodesJ/RRCOnosSanity4nodesJ.py
index 5f1db04..b81b08a 100644
--- a/TestON/tests/RRCOnosSanity4nodesJ/RRCOnosSanity4nodesJ.py
+++ b/TestON/tests/RRCOnosSanity4nodesJ/RRCOnosSanity4nodesJ.py
@@ -9,16 +9,6 @@
#Tests the startup of Zookeeper1, RamCloud1, and ONOS1 to be certain that all started up successfully
def CASE1(self,main) : #Check to be sure ZK, Cass, and ONOS are up, then get ONOS version
import time
- main.Zookeeper1.stop()
- main.Zookeeper2.stop()
- main.Zookeeper3.stop()
- main.Zookeeper4.stop()
- main.RamCloud1.stop_coor()
- main.RamCloud1.stop_serv()
- main.RamCloud2.stop_serv()
- main.RamCloud3.stop_serv()
- main.RamCloud4.stop_serv()
-
main.ONOS1.handle.sendline("cp ~/onos.properties.reactive ~/ONOS/conf/onos.properties")
main.ONOS2.handle.sendline("cp ~/onos.properties.reactive ~/ONOS/conf/onos.properties")
main.ONOS3.handle.sendline("cp ~/onos.properties.reactive ~/ONOS/conf/onos.properties")
@@ -28,11 +18,18 @@
main.Zookeeper2.start()
main.Zookeeper3.start()
main.Zookeeper4.start()
- time.sleep(3)
+ main.RamCloud1.stop_coor()
+ main.RamCloud1.stop_serv()
+ main.RamCloud2.stop_serv()
+ main.RamCloud3.stop_serv()
+ main.RamCloud4.stop_serv()
+ time.sleep(10)
main.RamCloud1.del_db()
main.RamCloud2.del_db()
main.RamCloud3.del_db()
main.RamCloud4.del_db()
+ time.sleep(10)
+ main.log.report("Pulling latest code from github to all nodes")
for i in range(2):
uptodate = main.ONOS1.git_pull()
main.ONOS2.git_pull()
@@ -46,7 +43,7 @@
main.ONOS2.git_pull("ONOS1 master")
main.ONOS3.git_pull("ONOS1 master")
main.ONOS4.git_pull("ONOS1 master")
- #if uptodate==0:
+ #if uptodate==0
if 1:
main.ONOS1.git_compile()
main.ONOS2.git_compile()
@@ -72,11 +69,11 @@
main.ONOS2.start()
main.ONOS3.start()
main.ONOS4.start()
- main.ONOS1.start_rest()
- time.sleep(5)
- test= main.ONOS1.rest_status()
+ main.ONOS2.start_rest()
+ time.sleep(10)
+ test= main.ONOS2.rest_status()
if test == main.FALSE:
- main.ONOS1.start_rest()
+ main.ONOS2.start_rest()
main.ONOS1.get_version()
main.log.report("Startup check Zookeeper1, RamCloud1, and ONOS1 connections")
main.case("Checking if the startup was clean...")
@@ -84,7 +81,7 @@
data = main.Zookeeper1.isup()
utilities.assert_equals(expect=main.TRUE,actual=data,onpass="Zookeeper is up!",onfail="Zookeeper is down...")
main.step("Testing startup RamCloud")
- data = main.RamCloud1.status_serv()
+ data = main.RamCloud1.status_serv() and main.RamCloud2.status_serv() and main.RamCloud3.status_serv() and main.RamCloud4.status_serv()
if data == main.FALSE:
main.RamCloud1.stop_coor()
main.RamCloud1.stop_serv()
@@ -98,17 +95,25 @@
main.RamCloud2.start_serv()
main.RamCloud3.start_serv()
main.RamCloud4.start_serv()
+ time.sleep(5)
+ data = main.RamCloud1.status_serv() and main.RamCloud2.status_serv() and main.RamCloud3.status_serv() and main.RamCloud4.status_serv()
+
+
utilities.assert_equals(expect=main.TRUE,actual=data,onpass="RamCloud is up!",onfail="RamCloud is down...")
main.step("Testing startup ONOS")
- data = main.ONOS1.isup()
- if data == main.FALSE:
- main.log.report("Something is funny... restarting ONOS")
- # main.ONOS1.stop()
- time.sleep(3)
- # main.ONOS1.start()
- # time.sleep(5)
- data = main.ONOS1.isup()
+ data = main.ONOS1.isup() and main.ONOS2.isup() and main.ONOS3.isup() and main.ONOS4.isup()
+ for i in range(3):
+ if data == main.FALSE:
+ #main.log.report("Something is funny... restarting ONOS")
+ #main.ONOS1.stop()
+ time.sleep(3)
+ #main.ONOS1.start()
+ #time.sleep(5)
+ data = main.ONOS1.isup() and main.ONOS2.isup() and main.ONOS3.isup() and main.ONOS4.isup()
+ else:
+ break
utilities.assert_equals(expect=main.TRUE,actual=data,onpass="ONOS is up and running!",onfail="ONOS didn't start...")
+ time.sleep(20)
#**********************************************************************************************************************************************************************************************
#Assign Controllers
@@ -148,7 +153,6 @@
time.sleep(1)
main.Mininet1.assign_sw_controller(sw=str(j),count=4,ip1=main.params['CTRL']['ip1'],port1=main.params['CTRL']['port1'],ip2=main.params['CTRL']['ip2'],port2=main.params['CTRL']['port2'],ip3=main.params['CTRL']['ip3'],port3=main.params['CTRL']['port3'],ip4=main.params['CTRL']['ip4'],port4=main.params['CTRL']['port4'])
main.Mininet1.get_sw_controller("s1")
- main.ONOS1.purge()
# **********************************************************************************************************************************************************************************************
#Add Flows
@@ -162,10 +166,12 @@
main.step("Cleaning out any leftover flows...")
#main.ONOS1.delete_flow("all")
strtTime = time.time()
- print("hello")
main.ONOS1.rm_flow()
print("world")
main.ONOS1.ad_flow()
+ time.sleep(2)
+ main.ONOS1.ad_flow()
+ print("hello")
# main.ONOS1.add_flow(main.params['FLOWDEF']['testONip'],main.params['FLOWDEF']['user'],main.params['FLOWDEF']['password'],main.params['FLOWDEF']['flowDef'])
main.case("Checking flows")
@@ -306,7 +312,7 @@
strtTime = time.time()
result = main.ONOS1.check_status_report(main.params['RestIP'],main.params['NR_Switches'],main.params['NR_Links'])
- for i in range(2):
+ for i in range(10):
if result == main.FALSE:
time.sleep(5)
result = main.ONOS1.check_status_report(main.params['RestIP'],main.params['NR_Switches'],main.params['NR_Links'])
@@ -349,7 +355,7 @@
strtTime = time.time()
result = main.ONOS1.check_status_report(main.params['RestIP'],main.params['NR_Switches'],str(int(main.params['NR_Links'])-2))
- for i in range(2):
+ for i in range(10):
if result == main.FALSE:
time.sleep(5)
result = main.ONOS1.check_status_report(main.params['RestIP'],main.params['NR_Switches'],str(int(main.params['NR_Links'])-2))
@@ -392,9 +398,12 @@
time.sleep(5)
strtTime = time.time()
result = main.ONOS1.check_status_report(main.params['RestIP'],main.params['NR_Switches'],main.params['NR_Links'])
- for i in range(2):
+ for i in range(10):
if result == main.FALSE:
- time.sleep(5)
+ time.sleep(15)
+ main.ONOS2.check_status_report(main.params['restIP2'],main.params['NR_Switches'],main.params['NR_Links'])
+ main.ONOS3.check_status_report(main.params['restIP3'],main.params['NR_Switches'],main.params['NR_Links'])
+ main.ONOS4.check_status_report(main.params['restIP4'],main.params['NR_Switches'],main.params['NR_Links'])
result = main.ONOS1.check_status_report(main.params['RestIP'],main.params['NR_Switches'],main.params['NR_Links'])
else:
break
@@ -437,8 +446,8 @@
RestIP1 = main.params['RESTCALL']['restIP1']
RestPort = main.params['RESTCALL']['restPort']
url = main.params['RESTCALL']['restURL']
-
- t_topowait = 0
+
+ t_topowait = 5
t_restwait = 10
main.log.report( "Wait time from topo change to ping set to " + str(t_topowait))
main.log.report( "Wait time from ping to rest call set to " + str(t_restwait))
@@ -448,10 +457,10 @@
ping = main.Mininet1.pingHost(src = str(host),target = "10.0.0.254")
time.sleep(t_restwait)
Reststatus, Switch, Port = main.ONOS1.find_host(RestIP1,RestPort,url, mac)
- main.log.report("Number of host with MAC address = " + mac + " found by ONOS is: " + str(Reststatus))
+ main.log.report("Number of host with MAC address = " + mac + " found by ONOS is: " + str(Reststatus))
if Reststatus == 1:
main.log.report("\t PASSED - Found host mac = " + mac + "; attached to switchDPID = " +"".join(Switch) + "; at port = " + str(Port[0]))
- result1 = main.TRUE
+ result1 = main.TRUE
elif Reststatus > 1:
main.log.report("\t FAILED - Host " + host + " with MAC:" + mac + " has " + str(Reststatus) + " duplicated mac addresses. FAILED")
main.log.report("switches are: " + "; ".join(Switch))
@@ -465,7 +474,7 @@
result1 = main.FALSE
- ##### Step to yank out "s1-eth1" from s1, which is on autoONOS1 #####
+ ##### Step to yank out "s1-eth1" from s1, which is on autoONOS1 #####
main.log.report("Yank out s1-eth1")
main.case("Yankout s6-eth1 (link to h1) from s1")
@@ -481,7 +490,7 @@
main.log.report("Number of host with MAC = " + mac + " found by ONOS is: " + str(Reststatus))
if Reststatus == 1:
main.log.report("\tFAILED - Found host MAC = " + mac + "; attached to switchDPID = " + "".join(Switch) + "; at port = " + str(Port))
- result2 = main.FALSE
+ result2 = main.FALSE
elif Reststatus > 1:
main.log.report("\t FAILED - Host " + host + " with MAC:" + str(mac) + " has " + str(Reststatus) + " duplicated IP addresses. FAILED")
main.log.report("switches are: " + "; ".join(Switch))
@@ -494,7 +503,7 @@
else:# check if rest server is working
main.log.error("Issue with find host")
result2 = main.FALSE
-
+
##### Step to plug "s1-eth1" to s6, which is on autoONOS3 ######
main.log.report("Plug s1-eth1 into s6")
main.case("Plug s1-eth1 to s6")
@@ -515,7 +524,7 @@
main.log.report("\t FAILED - Host " + host + " with MAC:" + str(mac) + " has " + str(Reststatus) + " duplicated IP addresses. FAILED")
main.log.report("switches are: " + "; ".join(Switch))
main.log.report("Ports are: " + "; ".join(Port))
- main.log.report("MACs are: " + "; ".join(MAC))
+ main.log.report("MACs are: " + "; ".join(MAC))
result3 = main.FALSE
elif Reststatus == 0 and Switch == []:
main.log.report("\t FAILED - Host " + host + " with MAC:" + str(mac) + " does not exist. FAILED")
@@ -523,7 +532,7 @@
else:# check if rest server is working
main.log.error("Issue with find host")
result3 = main.FALSE
-
+
###### Step to put interface "s1-eth1" back to s1"#####
main.log.report("Move s1-eth1 back on to s1")
main.case("Move s1-eth1 back to s1")
@@ -545,7 +554,7 @@
main.log.report("\t FAILED - Host " + host + " with MAC:" + str(mac) + " has " + str(Reststatuas) + " duplicated IP addresses. FAILED")
main.log.report("switches are: " + "; ".join(Switch))
main.log.report("Ports are: " + "; ".join(Port))
- main.log.report("MACs are: " + "; ".join(MAC))
+ main.log.report("MACs are: " + "; ".join(MAC))
result4 = main.FALSE
elif Reststatus == 0 and Switch == []:
main.log.report("\t FAILED -Host " + host + " with MAC:" + str(mac) + " does not exist. FAILED")
@@ -553,11 +562,19 @@
else:# check if rest server is working
main.log.error("Issue with find host")
result4 = main.FALSE
+ time.sleep(20)
+ Reststatus, Switch, Port = main.ONOS1.find_host(RestIP1,RestPort,url,mac)
+ main.log.report("Number of host with IP=10.0.0.1 found by ONOS is: " + str(Reststatus))
+ if Reststatus ==1:
+ main.log.report("\t FAILED - Host " + host + "with MAC:" + str(mac) + "was still found after expected timeout")
+ elif Reststatus>1:
+ main.log.report("\t FAILED - Host " + host + "with MAC:" + str(mac) + "was still found after expected timeout(multiple found)")
+ elif Reststatus==0:
+ main.log.report("\t PASSED - Device cleared after timeout")
result = result1 and result2 and result3 and result4
utilities.assert_equals(expect=main.TRUE,actual=result,onpass="DEVICE DISCOVERY TEST PASSED PLUG/UNPLUG/MOVE TEST",onfail="DEVICE DISCOVERY TEST FAILED")
-
# Run a pure ping test.
def CASE31(self, main):
@@ -587,6 +604,7 @@
main.log.report("\tPING TEST FAIL")
utilities.assert_equals(expect=main.TRUE,actual=result,onpass="NO PACKET LOSS, HOST IS REACHABLE",onfail="PACKET LOST, HOST IS NOT REACHABLE")
+
def CASE66(self, main):
main.log.report("Checking ONOS logs for exceptions")
count = 0
diff --git a/TestON/tests/RRCOnosSanity4nodesJ/RRCOnosSanity4nodesJ.topo b/TestON/tests/RRCOnosSanity4nodesJ/RRCOnosSanity4nodesJ.topo
index a03746a..c5c5dee 100644
--- a/TestON/tests/RRCOnosSanity4nodesJ/RRCOnosSanity4nodesJ.topo
+++ b/TestON/tests/RRCOnosSanity4nodesJ/RRCOnosSanity4nodesJ.topo
@@ -130,7 +130,7 @@
<COMPONENTS>
# Specify the Option for mininet
<arg1> --custom ~/mininet/custom/topo-onos4nodeNEW.py </arg1>
- <arg2> --topo mytopo</arg2>
+ <arg2> --topo mytopo --arp --mac</arg2>
<controller> remote </controller>
</COMPONENTS>
</Mininet1>