mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-10-31 18:58:01 +00:00 
			
		
		
		
	scenario.py: sleep 30 seconds if /events/ flag is not present
regression_test: work with new scenario.py Signed-off-by: Matthew Stidham <stidmatt@gmail.com>
This commit is contained in:
		| @@ -74,15 +74,15 @@ if [[ ${#MGR} -eq 0 ]]; then # Allow the user to change the radio they test agai | |||||||
|   MGR="localhost" |   MGR="localhost" | ||||||
| fi | fi | ||||||
|  |  | ||||||
| SCENARIO_CHECK="$(python3 -c "import requests; print(requests.get('http://${MGR}:8080/events/').status_code)")" | #SCENARIO_CHECK="$(python3 -c "import requests; print(requests.get('http://${MGR}:8080/events/').status_code)")" | ||||||
| if [[ ${SCENARIO_CHECK} -eq 200 ]]; then | #if [[ ${SCENARIO_CHECK} -eq 200 ]]; then | ||||||
|   pass | #  pass | ||||||
| else | #else | ||||||
|   echo "${SCENARIO_CHECK}" | #  echo "${SCENARIO_CHECK}" | ||||||
|   echo "Your LANforge Manager is out of date. Regression test requires LANforge version 5.4.4 or higher in order to run" | #  echo "Your LANforge Manager is out of date. Regression test requires LANforge version 5.4.4 or higher in order to run" | ||||||
|   echo "Please upgrade your LANforge using instructions found at https://www.candelatech.com/downloads.php#releases" | #  echo "Please upgrade your LANforge using instructions found at https://www.candelatech.com/downloads.php#releases" | ||||||
|   exit 1 | #  exit 1 | ||||||
| fi | #fi | ||||||
|  |  | ||||||
| if [ -d "/home/lanforge/lanforge_env" ] | if [ -d "/home/lanforge/lanforge_env" ] | ||||||
| then | then | ||||||
|   | |||||||
| @@ -4,6 +4,7 @@ import os | |||||||
| import importlib | import importlib | ||||||
| import argparse | import argparse | ||||||
| import time | import time | ||||||
|  | import requests | ||||||
|  |  | ||||||
| if sys.version_info[0] != 3: | if sys.version_info[0] != 3: | ||||||
|     print("This script requires Python 3") |     print("This script requires Python 3") | ||||||
| @@ -21,10 +22,8 @@ Realm = realm.Realm | |||||||
| def get_events(event_log, value): | def get_events(event_log, value): | ||||||
|     results = [] |     results = [] | ||||||
|     for event in event_log: |     for event in event_log: | ||||||
|         try: |         if event.values(): | ||||||
|             results.append(list(event.values())[0][value]) |             results.append(list(event.values())[0][value]) | ||||||
|         except: |  | ||||||
|             pass |  | ||||||
|     return results |     return results | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -54,6 +53,7 @@ class LoadScenario(Realm): | |||||||
|                  stop=None, |                  stop=None, | ||||||
|                  quiesce=None, |                  quiesce=None, | ||||||
|                  timeout=120, |                  timeout=120, | ||||||
|  |                  code=None, | ||||||
|                  debug=False): |                  debug=False): | ||||||
|         super().__init__(lfclient_host=mgr, |         super().__init__(lfclient_host=mgr, | ||||||
|                          lfclient_port=mgr_port, |                          lfclient_port=mgr_port, | ||||||
| @@ -67,9 +67,13 @@ class LoadScenario(Realm): | |||||||
|         self.stop = stop |         self.stop = stop | ||||||
|         self.quiesce = quiesce |         self.quiesce = quiesce | ||||||
|         self.timeout = timeout |         self.timeout = timeout | ||||||
|  |         self.code = code | ||||||
|  |         self.starting_events = None | ||||||
|  |  | ||||||
|         starting_events = self.json_get('/events/since=time/1h') |     def start_test(self): | ||||||
|  |         self.starting_events = self.json_get('/events/since=time/1h') | ||||||
|  |  | ||||||
|  |     def load_scenario(self): | ||||||
|         if self.scenario is not None: |         if self.scenario is not None: | ||||||
|             data = { |             data = { | ||||||
|                 "name": self.scenario, |                 "name": self.scenario, | ||||||
| @@ -93,12 +97,14 @@ class LoadScenario(Realm): | |||||||
|             print("Quiescing test group %s..." % self.quiesce) |             print("Quiescing test group %s..." % self.quiesce) | ||||||
|             self.json_post("/cli-json/quiesce_group", {"name": self.quiesce}) |             self.json_post("/cli-json/quiesce_group", {"name": self.quiesce}) | ||||||
|  |  | ||||||
|  |     def check_if_complete(self): | ||||||
|         completed = False |         completed = False | ||||||
|         timer = 0 |         timer = 0 | ||||||
|         while not completed: |         while not completed: | ||||||
|             current_events = self.json_get('/events/since=time/1h') |             current_events = self.json_get('/events/since=time/1h') | ||||||
|             new_events = find_new_events(starting_events, current_events) |             new_events = find_new_events(self.starting_events, current_events) | ||||||
|             target_events = [event for event in get_events(new_events, 'event description') if event.startswith('LOAD COMPLETED')] |             target_events = [event for event in get_events(new_events, 'event description') if | ||||||
|  |                              event.startswith('LOAD COMPLETED')] | ||||||
|             if 'LOAD-DB:  Load attempt has been completed.' in get_events(new_events, 'event description'): |             if 'LOAD-DB:  Load attempt has been completed.' in get_events(new_events, 'event description'): | ||||||
|                 completed = True |                 completed = True | ||||||
|                 print('Scenario %s fully loaded after %s seconds' % (self.scenario, timer)) |                 print('Scenario %s fully loaded after %s seconds' % (self.scenario, timer)) | ||||||
| @@ -153,16 +159,29 @@ def main(): | |||||||
|     parser.add_argument('--timeout', help='Stop trying to load scenario after this many seconds', default=120) |     parser.add_argument('--timeout', help='Stop trying to load scenario after this many seconds', default=120) | ||||||
|     args = parser.parse_args() |     args = parser.parse_args() | ||||||
|  |  | ||||||
|     LoadScenario(mgr=args.mgr, |     code = requests.get('http://%s:8080/events' % args.mgr) | ||||||
|                  scenario=args.load, |     scenario = LoadScenario(mgr=args.mgr, | ||||||
|                  action=args.action, |                             scenario=args.load, | ||||||
|                  clean_dut=args.clean_dut, |                             action=args.action, | ||||||
|                  clean_chambers=args.clean_chambers, |                             clean_dut=args.clean_dut, | ||||||
|                  start=args.start, |                             clean_chambers=args.clean_chambers, | ||||||
|                  stop=args.stop, |                             start=args.start, | ||||||
|                  quiesce=args.quiesce, |                             stop=args.stop, | ||||||
|                  timeout=args.timeout, |                             quiesce=args.quiesce, | ||||||
|                  debug=args.debug) |                             timeout=args.timeout, | ||||||
|  |                             code=code, | ||||||
|  |                             debug=args.debug) | ||||||
|  |     if code == 200: | ||||||
|  |         scenario.start_test() | ||||||
|  |  | ||||||
|  |     scenario.load_scenario() | ||||||
|  |  | ||||||
|  |     if code != 200: | ||||||
|  |         print('sleeping 30 seconds, please upgrade your LANforge for a better experience, more information at https://www.candelatech.com/downloads.php#releases') | ||||||
|  |         time.sleep(30) | ||||||
|  |  | ||||||
|  |     if code == 200: | ||||||
|  |         scenario.check_if_complete() | ||||||
|  |  | ||||||
|     # scenario_loader.load_scenario() |     # scenario_loader.load_scenario() | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Matthew Stidham
					Matthew Stidham