# Monitor support # # This software may be distributed under the terms of the BSD license. # See README for more details. import remotehost import config import rutils import monitor import time import os import logging logger = logging.getLogger() def run_monitor(devices, setup_params, refs, duts, monitors, seconds=None): try: air_monitor = [] output = "\n\tPCAP files:\n" # setup log dir local_log_dir = setup_params['local_log_dir'] # add/run monitors if requested air_monitors = monitor.create(devices, setup_params, refs, duts, monitors) for air_monitor in air_monitors: monitor.setup(air_monitor) monitor.run(air_monitor, setup_params) logger.warning(air_monitor.name + " - monitor started ...") if seconds != None: time.sleep(int(seconds)) else: input("\tPress Enter to end capturing...") # destroy monitor / get pcap monitor.destroy(devices, air_monitors) for air_monitor in air_monitors: for log in air_monitor.logs: head, tail = os.path.split(log) output = output + "\t" + local_log_dir + "/" + tail + "\n" air_monitor.get_logs(local_log_dir) return output except: for air_monitor in air_monitors: monitor.destroy(devices, air_monitors) air_monitor.get_logs(local_log_dir) raise def test_run_monitor(devices, setup_params, refs, duts, monitors): """TC run standalone monitor""" return run_monitor(devices, setup_params, refs, duts, monitors)