57 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/python3
 | |
| 
 | |
| import http.client
 | |
| import os
 | |
| import json
 | |
| import subprocess
 | |
| import threading
 | |
| 
 | |
| # Needs to be declared here to allow Python 3 modules to be used
 | |
| def prepare_test(testname = "replication"):
 | |
|     subprocess.call(os.getcwd() + "/non_native_setup " + str(testname), shell=True)
 | |
| 
 | |
| prepare_test("maxinfo.py")
 | |
| 
 | |
| # Test all Maxinfo HTTP entry points
 | |
| entry_points = ["/services",
 | |
| 		"/listeners",
 | |
| 		"/modules",
 | |
| 		"/monitors",
 | |
| 		"/sessions",
 | |
| 		"/clients",
 | |
| 		"/servers",
 | |
| 		"/variables",
 | |
| 		"/status",
 | |
| 		"/event/times"]
 | |
| 
 | |
| decoder = json.JSONDecoder()
 | |
| 
 | |
| def test_thr(thrnum):
 | |
|     for r in range(0,10):
 | |
|         for i in entry_points:
 | |
|             data = ""
 | |
|             try:
 | |
|                 conn = http.client.HTTPConnection(os.getenv("maxscale_network"), 8080)
 | |
|                 conn.request("GET", i)
 | |
|                 req = conn.getresponse()
 | |
|                 data = req.read().decode('ascii')
 | |
|                 json.loads(data)
 | |
|             except Exception as ex:
 | |
|                 print("Thread", thrnum, "Exception (", ex, "):", data)
 | |
|                 exit(1)
 | |
| 
 | |
| thr = []
 | |
| 
 | |
| for i in range(0, 10):
 | |
|     thr.append(threading.Thread(target=test_thr, args=(i,)))
 | |
| 
 | |
| print("Created", len(thr), "threads")
 | |
| 
 | |
| for i in thr:
 | |
|     i.start()
 | |
| 
 | |
| print("Started threads")
 | |
| 
 | |
| for i in thr:
 | |
|     i.join()
 | 
