mirror of
https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
synced 2025-11-01 19:28:00 +00:00
run_cv_scenario.py: fixes strange return failure message plus...
- updates print statements to logger - starts work on report name Signed-off-by: Jed Reynolds <jed@bitratchet.com>
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#!/usr/bin/env python3
|
||||
# This script will set the LANforge to a BLANK database then it will load the specified database
|
||||
# and start a graphical report
|
||||
import logging
|
||||
import argparse
|
||||
import importlib
|
||||
import os
|
||||
@@ -14,6 +15,8 @@ if sys.version_info[0] != 3:
|
||||
exit(1)
|
||||
|
||||
sys.path.append(os.path.join(os.path.abspath(__file__ + "../../../")))
|
||||
logger = logging.getLogger(__name__)
|
||||
lf_logger_config = importlib.import_module("py-scripts.lf_logger_config")
|
||||
|
||||
LFUtils = importlib.import_module("py-json.LANforge.LFUtils")
|
||||
lfcli_base = importlib.import_module("py-json.LANforge.lfcli_base")
|
||||
@@ -32,7 +35,7 @@ Realm = realm.Realm
|
||||
|
||||
class RunCvScenario(LFCliBase):
|
||||
def __init__(self, lfhost="localhost", lfport=8080, debug_=False, lanforge_db_=None, cv_scenario_=None,
|
||||
cv_test_=None, test_scenario_=None):
|
||||
cv_test_=None, test_scenario_=None, report_file_name=None):
|
||||
super().__init__(_lfjson_host=lfhost, _lfjson_port=lfport, _debug=debug_, _exit_on_error=True,
|
||||
_exit_on_fail=True)
|
||||
self.lanforge_db = lanforge_db_
|
||||
@@ -40,7 +43,7 @@ class RunCvScenario(LFCliBase):
|
||||
self.cv_test = cv_test_
|
||||
self.test_profile = test_scenario_
|
||||
self.localrealm = Realm(lfclient_host=lfhost, lfclient_port=lfport, debug_=debug_)
|
||||
self.report_name = None
|
||||
self.report_name = report_file_name
|
||||
self.load_timeout_sec = 2 * 60
|
||||
|
||||
def get_report_file_name(self):
|
||||
@@ -62,7 +65,7 @@ class RunCvScenario(LFCliBase):
|
||||
while (attempts > 0) and (port_counter > 0):
|
||||
sleep(1)
|
||||
attempts -= 1
|
||||
print("looking for ports like vap+")
|
||||
logger.debug("looking for ports like vap+")
|
||||
port_list = self.localrealm.find_ports_like("vap+")
|
||||
alias_map = LFUtils.portListToAliasMap(port_list)
|
||||
port_counter = len(alias_map)
|
||||
@@ -74,8 +77,8 @@ class RunCvScenario(LFCliBase):
|
||||
break
|
||||
|
||||
if (port_counter != 0) and (attempts == 0):
|
||||
print("There appears to be a vAP in this database, quitting.")
|
||||
pprint.pprint(alias_map)
|
||||
logger.error("There appears to be a vAP in this database, quitting.")
|
||||
logger.error(pprint.pformat(alias_map))
|
||||
exit(1)
|
||||
|
||||
data = {
|
||||
@@ -103,7 +106,7 @@ class RunCvScenario(LFCliBase):
|
||||
load_completed = False
|
||||
while not load_completed:
|
||||
if time.time() > (begin_time + self.load_timeout_sec):
|
||||
print("Unable to load database within %d sec" % self.load_timeout_sec)
|
||||
logger.error("Unable to load database within %d sec" % self.load_timeout_sec)
|
||||
exit(1)
|
||||
events_response = self.json_get("/events/since/%s" % previous_event_id)
|
||||
pronoun = None
|
||||
@@ -112,7 +115,7 @@ class RunCvScenario(LFCliBase):
|
||||
elif "event" in events_response:
|
||||
pronoun = "event"
|
||||
if not pronoun:
|
||||
pprint.pprint(("events response", events_response))
|
||||
logger.debug(pprint.pformat(("events response", events_response)))
|
||||
raise ValueError("incorrect events response")
|
||||
for event_o in events_response[pronoun]:
|
||||
if load_completed:
|
||||
@@ -123,7 +126,7 @@ class RunCvScenario(LFCliBase):
|
||||
if not record["event description"]:
|
||||
continue
|
||||
if record["event description"].startswith("LOAD COMPLETED at "):
|
||||
print("load completed: %s " % record["event description"])
|
||||
logger.info("load completed: %s " % record["event description"])
|
||||
load_completed = True
|
||||
break
|
||||
if not load_completed:
|
||||
@@ -133,10 +136,10 @@ class RunCvScenario(LFCliBase):
|
||||
status_response = self.json_get("/")
|
||||
if "text_records_last_updated_ms" in status_response:
|
||||
blobs_last_updated = int(status_response["text_records_last_updated_ms"])
|
||||
# print("*** blobs updated at %d" % blobs_last_updated)
|
||||
logger.debug("blobs updated at %d" % blobs_last_updated)
|
||||
else:
|
||||
begin_time = round(time.time() * 1000)
|
||||
print("no text_records_last_updated_ms, using %d " % begin_time)
|
||||
logger.info("no text_records_last_updated_ms, using %d " % begin_time)
|
||||
# next we will want to sync our text blobs up
|
||||
self.json_post("/cli-json/show_text_blob", {
|
||||
"type": "ALL",
|
||||
@@ -147,12 +150,12 @@ class RunCvScenario(LFCliBase):
|
||||
while not load_completed:
|
||||
sleep(1)
|
||||
if time.time() > (begin_time + (6 * 1000)):
|
||||
print("waited %d sec for text blobs to update" % self.load_timeout_sec)
|
||||
logger.info("waited %d sec for text blobs to update" % self.load_timeout_sec)
|
||||
break
|
||||
status_response = self.json_get("/")
|
||||
if "text_records_last_updated_ms" in status_response:
|
||||
updated = int(status_response["text_records_last_updated_ms"])
|
||||
print(", , , , , , , , , updated at %d" % updated)
|
||||
logger.debug("text_records updated at %d" % updated)
|
||||
if updated > blobs_last_updated:
|
||||
break
|
||||
else:
|
||||
@@ -162,7 +165,7 @@ class RunCvScenario(LFCliBase):
|
||||
"name": "ALL"
|
||||
})
|
||||
delta: float = (time.time() * 1000) - begin_time
|
||||
print("blobs loaded in %d ms" % delta)
|
||||
logger.debug("blobs loaded in %d ms" % delta)
|
||||
|
||||
# next show duts
|
||||
self.json_post("/cli-json/show_dut", {"name": "ALL"})
|
||||
@@ -207,46 +210,54 @@ class RunCvScenario(LFCliBase):
|
||||
try:
|
||||
debug_par = ""
|
||||
if debug_:
|
||||
debug_par = "?_debug=1"
|
||||
debug_par = "?__debug=1"
|
||||
if command.endswith("is_built"):
|
||||
print("Waiting for scenario to build...", end='')
|
||||
logger.info("Waiting for scenario to build...", )
|
||||
self.localrealm.wait_while_building(debug_=False)
|
||||
print("...proceeding")
|
||||
logger.info("...proceeding")
|
||||
elif command.startswith("sleep "):
|
||||
nap = int(command.split(" ")[1])
|
||||
print("sleeping %d..." % nap)
|
||||
logger.info("sleeping %d..." % nap)
|
||||
sleep(nap)
|
||||
print("...proceeding")
|
||||
logger.info("...proceeding")
|
||||
elif command == "cv list_instances":
|
||||
response_json = []
|
||||
print("running %s..." % command, end='')
|
||||
logger.debug("running %s..." % command)
|
||||
response = self.json_post("/gui-json/cmd%s" % debug_par,
|
||||
data,
|
||||
debug_=debug_,
|
||||
response_json_list_=response_json)
|
||||
if debug_:
|
||||
LFUtils.debug_printer.pprint(response)
|
||||
logger.debug(pprint.pformat(response))
|
||||
|
||||
# TODO: update report file location
|
||||
# elif command.startswith("cv get test_ref 'Report Location:'"),
|
||||
# self.report_file = ...
|
||||
else:
|
||||
response_json = []
|
||||
print("running %s..." % command, end='')
|
||||
logger.debug("running %s..." % command)
|
||||
self.json_post("/gui-json/cmd%s" % debug_par, data, debug_=False,
|
||||
response_json_list_=response_json)
|
||||
if debug_:
|
||||
LFUtils.debug_printer.pprint(response_json)
|
||||
print("...proceeding")
|
||||
logger.debug(pprint.pformat(response_json))
|
||||
logger.info("...proceeding")
|
||||
except Exception as x:
|
||||
print(x)
|
||||
logger.error(x)
|
||||
|
||||
self._pass("report finished", print_=True)
|
||||
return True
|
||||
|
||||
def stop(self):
|
||||
pass
|
||||
logger.warning("Stop method does nothing")
|
||||
return True
|
||||
|
||||
def cleanup(self):
|
||||
pass
|
||||
logger.warning("Cleanup method does nothing")
|
||||
return True
|
||||
|
||||
|
||||
def main():
|
||||
logger_config = lf_logger_config.lf_logger_config()
|
||||
lfjson_host = "localhost"
|
||||
lfjson_port = 8080
|
||||
parser = argparse.ArgumentParser(
|
||||
@@ -264,6 +275,9 @@ Example:
|
||||
parser.add_argument("-n", "--cv_test", type=str, help="Chamber View test")
|
||||
parser.add_argument("-s", "--test_profile", type=str, help="Name of the saved CV test profile")
|
||||
parser.add_argument("--debug", help='Enable debugging', default=False, action="store_true")
|
||||
parser.add_argument("--log_level", help='debug message verbosity', type=str)
|
||||
# TODO: update report output file or directory
|
||||
# parser.add_argument("--report_file_name", help="name of the report file", type=str)
|
||||
|
||||
args = parser.parse_args()
|
||||
if args.lfmgr is not None:
|
||||
@@ -273,7 +287,12 @@ Example:
|
||||
debug = False
|
||||
if args.debug is not None:
|
||||
debug = args.debug
|
||||
run_cv_scenario = RunCvScenario(lfjson_host, lfjson_port, debug_=debug)
|
||||
|
||||
report_file_n = "untitled_report"
|
||||
if args.report_file_name:
|
||||
report_file_n = args.report_file_name
|
||||
|
||||
run_cv_scenario = RunCvScenario(lfjson_host, lfjson_port, debug_=debug, report_file_name=report_file_n)
|
||||
|
||||
if args.lanforge_db is not None:
|
||||
run_cv_scenario.lanforge_db = args.lanforge_db
|
||||
@@ -283,6 +302,17 @@ Example:
|
||||
run_cv_scenario.cv_test = args.cv_test
|
||||
if args.test_profile is not None:
|
||||
run_cv_scenario.test_profile = args.test_profile
|
||||
if args.log_level is not None:
|
||||
if args.log_level == 'debug':
|
||||
logger_config.set_level_debug()
|
||||
elif args.log_level == 'info':
|
||||
logger_config.set_level_info()
|
||||
elif args.log_level == 'warning':
|
||||
logger_config.set_level_warning()
|
||||
elif args.log_level == 'error':
|
||||
logger_config.set_level_error()
|
||||
elif args.log_level == 'critical':
|
||||
logger_config.set_level_critical()
|
||||
|
||||
if (run_cv_scenario.lanforge_db is None) or (run_cv_scenario.lanforge_db == ""):
|
||||
raise ValueError("Please specificy scenario database name with --scenario_db")
|
||||
@@ -307,8 +337,12 @@ Example:
|
||||
print(run_cv_scenario.get_fail_message())
|
||||
exit(1)
|
||||
|
||||
report_file = run_cv_scenario.get_report_file_name()
|
||||
print("Report file saved to " + report_file)
|
||||
# TODO: report file name is not finished
|
||||
# report_file = run_cv_scenario.get_report_file_name()
|
||||
# if report_file:
|
||||
# print("Report file saved to: %s" % report_file)
|
||||
# else:
|
||||
# print("Report file location missing")
|
||||
|
||||
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
Reference in New Issue
Block a user