mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-10-31 02:38:03 +00:00 
			
		
		
		
	jbr_monitor_bssids.py now has logic to load scenario and wait for it to finish loading
This commit is contained in:
		| @@ -44,6 +44,7 @@ if sys.version_info[0] != 3: | ||||
| import os | ||||
| import importlib | ||||
| import argparse | ||||
| import time | ||||
| from http.client import HTTPResponse | ||||
| from typing import Optional | ||||
| from pprint import pprint, pformat | ||||
| @@ -160,6 +161,8 @@ class BssidMonitor(Realm): | ||||
|                                                           debug=self.debug, | ||||
|                                                           errors_warnings=err_warn_list) | ||||
|         last_event_id = event_response["id"] | ||||
|         if not self.wait_for_load_to_finish(since_id=last_event_id): | ||||
|             exit(1) | ||||
|  | ||||
|         # load a database | ||||
|         response: HTTPResponse = self.lf_command.post_load(name="BLANK", | ||||
| @@ -171,10 +174,39 @@ class BssidMonitor(Realm): | ||||
|         if not response: | ||||
|             raise ConnectionError("lf_command::post_load returned no response") | ||||
|  | ||||
|  | ||||
|         # create a series of stations | ||||
|         for bssid in self.bssid_list: | ||||
|             print("build: bssid: %s" % bssid) | ||||
|  | ||||
|     def wait_for_load_to_finish(self, since_id:int=None): | ||||
|         completed = False | ||||
|         timer = 0 | ||||
|         timeout = 60 | ||||
|         while not completed: | ||||
|             new_events = self.lf_query.events_since(event_id=since_id) | ||||
|             if new_events: | ||||
|                 for event_tup in new_events: | ||||
|                     for event_id in event_tup.keys(): | ||||
|                         event_record = event_tup[event_id] | ||||
|                         # pprint(event_record) | ||||
|                         if event_record['event description'].startswith('LOAD COMPLETED'): | ||||
|                             completed = True | ||||
|                             self.lf_query.logger.warning('Scenario loaded after %s seconds' % timer) | ||||
|                             break | ||||
|             if completed: | ||||
|                 break | ||||
|             else: | ||||
|                 timer += 1 | ||||
|                 time.sleep(1) | ||||
|                 if timer > timeout: | ||||
|                     completed = True | ||||
|                     print('Scenario failed to load after %s seconds' % timeout) | ||||
|                     break | ||||
|                 else: | ||||
|                     print('Waiting %s out of %s seconds to load scenario' % (timer, timeout)) | ||||
|         return completed | ||||
|  | ||||
|  | ||||
|     def start(self): | ||||
|         pass | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Jed Reynolds
					Jed Reynolds