mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-11-04 04:38:02 +00:00 
			
		
		
		
	Improved output to help with automated testing
This commit is contained in:
		
							
								
								
									
										149
									
								
								connectTest.py
									
									
									
									
									
								
							
							
						
						
									
										149
									
								
								connectTest.py
									
									
									
									
									
								
							@@ -2,13 +2,16 @@
 | 
				
			|||||||
import os
 | 
					import os
 | 
				
			||||||
import time
 | 
					import time
 | 
				
			||||||
import sys
 | 
					import sys
 | 
				
			||||||
 | 
					if 'py-json' not in sys.path:
 | 
				
			||||||
	sys.path.append('py-json')
 | 
						sys.path.append('py-json')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import json
 | 
					import json
 | 
				
			||||||
import pprint
 | 
					import pprint
 | 
				
			||||||
from LANforge import LFRequest
 | 
					from LANforge import LFRequest
 | 
				
			||||||
from LANforge import LFUtils
 | 
					from LANforge import LFUtils
 | 
				
			||||||
import create_genlink as genl
 | 
					import create_genlink as genl
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if sys.version_info[0] != 3:
 | 
					if sys.version_info[0] != 3:
 | 
				
			||||||
    print("This script requires Python 3")
 | 
					    print("This script requires Python 3")
 | 
				
			||||||
    exit()
 | 
					    exit()
 | 
				
			||||||
@@ -20,6 +23,7 @@ def execWrap(cmd):
 | 
				
			|||||||
		print("\nError with " + cmd + ",bye\n")
 | 
							print("\nError with " + cmd + ",bye\n")
 | 
				
			||||||
		exit(1)
 | 
							exit(1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def jsonReq(mgrURL, reqURL, data, debug=False):
 | 
					def jsonReq(mgrURL, reqURL, data, debug=False):
 | 
				
			||||||
	lf_r = LFRequest.LFRequest(mgrURL + reqURL)
 | 
						lf_r = LFRequest.LFRequest(mgrURL + reqURL)
 | 
				
			||||||
	lf_r.addPostData(data)
 | 
						lf_r.addPostData(data)
 | 
				
			||||||
@@ -34,15 +38,16 @@ def jsonReq(mgrURL, reqURL, data, debug=False):
 | 
				
			|||||||
def getJsonInfo(mgrURL, reqURL, name):
 | 
					def getJsonInfo(mgrURL, reqURL, name):
 | 
				
			||||||
	lf_r = LFRequest.LFRequest(mgrURL + reqURL)
 | 
						lf_r = LFRequest.LFRequest(mgrURL + reqURL)
 | 
				
			||||||
	json_response = lf_r.getAsJson()
 | 
						json_response = lf_r.getAsJson()
 | 
				
			||||||
	print(name)
 | 
						return json_response
 | 
				
			||||||
	j_printer = pprint.PrettyPrinter(indent=2)
 | 
						#print(name)
 | 
				
			||||||
	j_printer.pprint(json_response)
 | 
						#j_printer = pprint.PrettyPrinter(indent=2)
 | 
				
			||||||
 | 
						#j_printer.pprint(json_response)
 | 
				
			||||||
	#for record in json_response[key]:
 | 
						#for record in json_response[key]:
 | 
				
			||||||
	#	j_printer.pprint(record)
 | 
						#	j_printer.pprint(record)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def removeEndps(mgrURL, endpNames):
 | 
					def removeEndps(mgrURL, endpNames):
 | 
				
			||||||
	for name in endpNames:
 | 
						for name in endpNames:
 | 
				
			||||||
		print(f"Removing endp {name}")
 | 
							#print(f"Removing endp {name}")
 | 
				
			||||||
		data = {
 | 
							data = {
 | 
				
			||||||
		"endp_name":name
 | 
							"endp_name":name
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
@@ -50,18 +55,18 @@ def removeEndps(mgrURL, endpNames):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
def removeCX(mgrURL, cxNames):
 | 
					def removeCX(mgrURL, cxNames):
 | 
				
			||||||
	for name in cxNames:
 | 
						for name in cxNames:
 | 
				
			||||||
		print(f"Removing CX {name}")
 | 
							#print(f"Removing CX {name}")
 | 
				
			||||||
		data = {
 | 
							data = {
 | 
				
			||||||
		"test_mgr":"all",
 | 
							"test_mgr":"all",
 | 
				
			||||||
		"cx_name":name
 | 
							"cx_name":name
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		jsonReq(mgrURL,"cli-json/rm_cx", data)
 | 
							jsonReq(mgrURL,"cli-json/rm_cx", data)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					print("Creating endpoints and cross connects")
 | 
				
			||||||
#create cx for tcp and udp
 | 
					#create cx for tcp and udp
 | 
				
			||||||
cmd = ("perl lf_firemod.pl --action create_cx --cx_name test1 --use_ports sta00000,eth1 --use_speeds  360000,150000 --endp_type tcp")
 | 
					cmd = ("./lf_firemod.pl --action create_cx --cx_name testTCP --use_ports sta00000,eth1 --use_speeds  360000,150000 --endp_type tcp > /tmp/connectTest.log")
 | 
				
			||||||
execWrap(cmd)
 | 
					execWrap(cmd)
 | 
				
			||||||
cmd = ("perl lf_firemod.pl --action create_cx --cx_name test2 --use_ports sta00000,eth1 --use_speeds  360000,150000 --endp_type udp")
 | 
					cmd = ("./lf_firemod.pl --action create_cx --cx_name testUDP --use_ports sta00000,eth1 --use_speeds  360000,150000 --endp_type udp >> /tmp/connectTest.log")
 | 
				
			||||||
execWrap(cmd)
 | 
					execWrap(cmd)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#create l4 endpoint
 | 
					#create l4 endpoint
 | 
				
			||||||
@@ -135,64 +140,144 @@ data = {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
jsonReq(mgrURL,url,data)
 | 
					jsonReq(mgrURL,url,data)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#get data before running traffic
 | 
				
			||||||
 | 
					testTCPA = getJsonInfo(mgrURL, "endp/testTCP-A?fields=tx+bytes,rx+bytes", "testTCP-A")
 | 
				
			||||||
 | 
					testTCPATX = testTCPA['endpoint']['tx bytes']
 | 
				
			||||||
 | 
					testTCPARX = testTCPA['endpoint']['rx bytes']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					testTCPB = getJsonInfo(mgrURL, "endp/testTCP-B?fields=tx+bytes,rx+bytes", "testTCP-B")
 | 
				
			||||||
 | 
					testTCPBTX = testTCPB['endpoint']['tx bytes']
 | 
				
			||||||
 | 
					testTCPBRX = testTCPB['endpoint']['rx bytes']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					testUDPA = getJsonInfo(mgrURL, "endp/testUDP-A?fields=tx+bytes,rx+bytes", "testUDP-A")
 | 
				
			||||||
 | 
					testUDPATX = testUDPA['endpoint']['tx bytes']
 | 
				
			||||||
 | 
					testUDPARX = testUDPA['endpoint']['rx bytes']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					testUDPB = getJsonInfo(mgrURL, "endp/testUDP-B?fields=tx+bytes,rx+bytes", "testUDP-B")
 | 
				
			||||||
 | 
					testUDPBTX = testUDPB['endpoint']['tx bytes']
 | 
				
			||||||
 | 
					testUDPBRX = testUDPB['endpoint']['rx bytes']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					l4Test = getJsonInfo(mgrURL, "layer4/l4Test?fields=bytes-rd", "l4Test")
 | 
				
			||||||
 | 
					l4TestBR = l4Test['endpoint']['bytes-rd']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					genTest1 = getJsonInfo(mgrURL, "generic/genTest1?fields=last+results", "genTest1")
 | 
				
			||||||
 | 
					genTest1LR = genTest1['endpoint']['last results']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#start cx traffic
 | 
					#start cx traffic
 | 
				
			||||||
cxNames = ["test1","test2", "CX_l4Test", "CX_fioTest", "CX_genTest1"]
 | 
					print("\nStarting CX Traffic")
 | 
				
			||||||
 | 
					cxNames = ["testTCP","testUDP", "CX_l4Test", "CX_fioTest", "CX_genTest1"]
 | 
				
			||||||
for name in range(len(cxNames)):
 | 
					for name in range(len(cxNames)):
 | 
				
			||||||
	cmd = (f"perl lf_firemod.pl --mgr localhost --quiet 0 --action do_cmd --cmd \"set_cx_state default_tm {cxNames[name]} RUNNING\"")
 | 
						cmd = (f"./lf_firemod.pl --mgr localhost --quiet yes --action do_cmd --cmd \"set_cx_state default_tm {cxNames[name]} RUNNING\" >> /tmp/connectTest.log")
 | 
				
			||||||
	execWrap(cmd)
 | 
						execWrap(cmd)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#print("Sleeping for 5 seconds")
 | 
				
			||||||
time.sleep(5)
 | 
					time.sleep(5)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#show tx and rx bytes for ports
 | 
					#show tx and rx bytes for ports
 | 
				
			||||||
time.sleep(5)
 | 
					"""
 | 
				
			||||||
print("eth1")
 | 
					print("eth1")
 | 
				
			||||||
cmd = ("perl ./lf_portmod.pl --quiet 1 --manager localhost --port_name eth1 --show_port \"Txb,Rxb\"")
 | 
					cmd = ("./lf_portmod.pl --quiet 1 --manager localhost --port_name eth1 --show_port \"Txb,Rxb\"")
 | 
				
			||||||
execWrap(cmd)
 | 
					execWrap(cmd)
 | 
				
			||||||
print("sta00000")
 | 
					print("sta00000")
 | 
				
			||||||
cmd = ("perl ./lf_portmod.pl --quiet 1 --manager localhost --port_name sta00000 --show_port \"Txb,Rxb\"")
 | 
					cmd = ("./lf_portmod.pl --quiet 1 --manager localhost --port_name sta00000 --show_port \"Txb,Rxb\"")
 | 
				
			||||||
execWrap(cmd)
 | 
					execWrap(cmd)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#show tx and rx for endpoints PERL
 | 
					#show tx and rx for endpoints PERL
 | 
				
			||||||
time.sleep(5)
 | 
					print("testTCP-A")
 | 
				
			||||||
print("test1-A")
 | 
					cmd = ("./lf_firemod.pl --action show_endp --endp_name testTCP-A --endp_vals \"Tx Bytes,Rx Bytes\"")
 | 
				
			||||||
cmd = ("./lf_firemod.pl --action show_endp --endp_name test1-A --endp_vals tx_bps,rx_bps")
 | 
					 | 
				
			||||||
execWrap(cmd)
 | 
					execWrap(cmd)
 | 
				
			||||||
print("test1-B")
 | 
					print("testTCP-B")
 | 
				
			||||||
cmd = ("./lf_firemod.pl --action show_endp --endp_name test1-B --endp_vals tx_bps,rx_bps")
 | 
					cmd = ("./lf_firemod.pl --action show_endp --endp_name testTCP-B --endp_vals  \"Tx Bytes,Rx Bytes\"")
 | 
				
			||||||
execWrap(cmd)
 | 
					execWrap(cmd)
 | 
				
			||||||
print("test2-A")
 | 
					print("testUDP-A")
 | 
				
			||||||
cmd = ("./lf_firemod.pl --action show_endp --endp_name test2-A --endp_vals tx_bps,rx_bps")
 | 
					cmd = ("./lf_firemod.pl --action show_endp --endp_name testUDP-A --endp_vals  \"Tx Bytes,Rx Bytes\"")
 | 
				
			||||||
execWrap(cmd)
 | 
					execWrap(cmd)
 | 
				
			||||||
print("test2-B")
 | 
					print("testUDP-B")
 | 
				
			||||||
cmd = ("./lf_firemod.pl --action show_endp --endp_name test2-B --endp_vals tx_bps,rx_bps")
 | 
					cmd = ("./lf_firemod.pl --action show_endp --endp_name testUDP-B --endp_vals  \"Tx Bytes,Rx Bytes\"")
 | 
				
			||||||
execWrap(cmd)
 | 
					execWrap(cmd)
 | 
				
			||||||
print("l4Test")
 | 
					print("l4Test")
 | 
				
			||||||
cmd = ("./lf_firemod.pl --action show_endp --endp_name l4Test --endp_vals Bytes-Read-Total")
 | 
					cmd = ("./lf_firemod.pl --action show_endp --endp_name l4Test --endp_vals Bytes-Read-Total")
 | 
				
			||||||
execWrap(cmd)
 | 
					execWrap(cmd)
 | 
				
			||||||
print("fioTest")
 | 
					print("fioTest")
 | 
				
			||||||
cmd = ("./lf_firemod.pl --action show_endp --endp_name fioTest")
 | 
					cmd = ("./lf_firemod.pl --action show_endp --endp_name fioTest --endp_vals \"Bytes Written,Bytes Read\"")
 | 
				
			||||||
execWrap(cmd)
 | 
					execWrap(cmd)
 | 
				
			||||||
print("genTest1")
 | 
					print("genTest1")
 | 
				
			||||||
cmd = ("./lf_firemod.pl --action show_endp --endp_name genTest1")
 | 
					cmd = ("./lf_firemod.pl --action show_endp --endp_name genTest1")
 | 
				
			||||||
execWrap(cmd)
 | 
					execWrap(cmd)
 | 
				
			||||||
 | 
					"""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#show tx and rx for endpoints JSON
 | 
					 | 
				
			||||||
getJsonInfo(mgrURL, "endp/test1-A?fields=tx+bytes,rx+bytes", "test1-A")
 | 
					 | 
				
			||||||
getJsonInfo(mgrURL, "endp/test1-B?fields=tx+bytes,rx+bytes", "test1-B")
 | 
					 | 
				
			||||||
getJsonInfo(mgrURL, "endp/test2-A?fields=tx+bytes,rx+bytes", "test2-A")
 | 
					 | 
				
			||||||
getJsonInfo(mgrURL, "endp/test2-B?fields=tx+bytes,rx+bytes", "test2-B")
 | 
					 | 
				
			||||||
getJsonInfo(mgrURL, "layer4/l4Test?fields=bytes-rd", "l4Test")
 | 
					 | 
				
			||||||
getJsonInfo(mgrURL, "generic/genTest1?fields=last+results", "genTest1")
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#stop cx traffic
 | 
					#stop cx traffic
 | 
				
			||||||
 | 
					print("Stopping CX Traffic")
 | 
				
			||||||
for name in range(len(cxNames)):
 | 
					for name in range(len(cxNames)):
 | 
				
			||||||
	cmd = (f"perl lf_firemod.pl --mgr localhost --quiet 0 --action do_cmd --cmd \"set_cx_state default_tm {cxNames[name]} STOPPED\"")
 | 
						cmd = (f"./lf_firemod.pl --mgr localhost --quiet yes --action do_cmd --cmd \"set_cx_state default_tm {cxNames[name]} STOPPED\"  >> /tmp/connectTest.log")
 | 
				
			||||||
	execWrap(cmd)
 | 
						execWrap(cmd)
 | 
				
			||||||
 | 
					#print("Sleeping for 15 seconds")
 | 
				
			||||||
 | 
					time.sleep(15)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#get data for endpoints JSON
 | 
				
			||||||
 | 
					print("Collecting Data")
 | 
				
			||||||
 | 
					ptestTCPA = getJsonInfo(mgrURL, "endp/testTCP-A?fields=tx+bytes,rx+bytes", "testTCP-A")
 | 
				
			||||||
 | 
					ptestTCPATX = ptestTCPA['endpoint']['tx bytes']
 | 
				
			||||||
 | 
					ptestTCPARX = ptestTCPA['endpoint']['rx bytes']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ptestTCPB = getJsonInfo(mgrURL, "endp/testTCP-B?fields=tx+bytes,rx+bytes", "testTCP-B")
 | 
				
			||||||
 | 
					ptestTCPBTX = ptestTCPB['endpoint']['tx bytes']
 | 
				
			||||||
 | 
					ptestTCPBRX = ptestTCPB['endpoint']['rx bytes']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ptestUDPA = getJsonInfo(mgrURL, "endp/testUDP-A?fields=tx+bytes,rx+bytes", "testUDP-A")
 | 
				
			||||||
 | 
					ptestUDPATX = ptestUDPA['endpoint']['tx bytes']
 | 
				
			||||||
 | 
					ptestUDPARX = ptestUDPA['endpoint']['rx bytes']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ptestUDPB = getJsonInfo(mgrURL, "endp/testUDP-B?fields=tx+bytes,rx+bytes", "testUDP-B")
 | 
				
			||||||
 | 
					ptestUDPBTX = ptestUDPB['endpoint']['tx bytes']
 | 
				
			||||||
 | 
					ptestUDPBRX = ptestUDPB['endpoint']['rx bytes']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pl4Test = getJsonInfo(mgrURL, "layer4/l4Test?fields=bytes-rd", "l4Test")
 | 
				
			||||||
 | 
					pl4TestBR = pl4Test['endpoint']['bytes-rd']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pgenTest1 = getJsonInfo(mgrURL, "generic/genTest1?fields=last+results", "genTest1")
 | 
				
			||||||
 | 
					pgenTest1LR = pgenTest1['endpoint']['last results']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#print("Sleeping for 5 seconds")
 | 
				
			||||||
 | 
					time.sleep(5)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#compare pre-test values to post-test values
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def compareVals(name, preVal, postVal):
 | 
				
			||||||
 | 
						print(f"Comparing {name}")
 | 
				
			||||||
 | 
						if postVal > preVal:
 | 
				
			||||||
 | 
							print("		Test Passed")
 | 
				
			||||||
 | 
						else:
 | 
				
			||||||
 | 
							print(f"	Test Failed: {name} did not increase after 5 seconds")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					print("\n")
 | 
				
			||||||
 | 
					compareVals("testTCP-A TX", testTCPATX, ptestTCPATX)
 | 
				
			||||||
 | 
					compareVals("testTCP-A RX", testTCPARX, ptestTCPARX)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					compareVals("testTCP-B TX", testTCPBTX, ptestTCPBTX)
 | 
				
			||||||
 | 
					compareVals("testTCP-B RX", testTCPBRX, ptestTCPBRX)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					compareVals("testUDP-A TX", testUDPATX, ptestUDPATX)
 | 
				
			||||||
 | 
					compareVals("testUDP-A RX", testUDPARX, ptestUDPARX)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					compareVals("testUDP-B TX", testUDPBTX, ptestUDPBTX)
 | 
				
			||||||
 | 
					compareVals("testUDP-B RX", testUDPBRX, ptestUDPBRX)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					compareVals("l4Test Bytes Read", l4TestBR, pl4TestBR)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					compareVals("genTest1 Last Results", genTest1LR, pgenTest1LR)
 | 
				
			||||||
 | 
					print("\n")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#remove all endpoints and cxs
 | 
					#remove all endpoints and cxs
 | 
				
			||||||
endpNames = ["test1-A", "test1-B", "test2-A", "test2-B", "l4Test", "fioTest", "genTest1", "genTest2"]
 | 
					print("Cleaning up...")
 | 
				
			||||||
 | 
					endpNames = ["testTCP-A", "testTCP-B", "testUDP-A", "testUDP-B", "l4Test", "fioTest", "genTest1", "genTest2"]
 | 
				
			||||||
removeCX(mgrURL, cxNames)
 | 
					removeCX(mgrURL, cxNames)
 | 
				
			||||||
removeEndps(mgrURL, endpNames)
 | 
					removeEndps(mgrURL, endpNames)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user