53 lines
1.6 KiB
Python
53 lines
1.6 KiB
Python
|
# 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)
|