59 lines
1.9 KiB
Python
59 lines
1.9 KiB
Python
from Tools import *
|
|
|
|
|
|
class Connmon:
|
|
|
|
def __init__(self, config):
|
|
self.logger = logging.getLogger('browbeat.Connmon')
|
|
self.config = config
|
|
self.tools = Tools(self.config)
|
|
return None
|
|
|
|
# Start connmond
|
|
def start_connmon(self, retry=None):
|
|
self.stop_connmon()
|
|
tool = "connmond"
|
|
connmond = self.tools.find_cmd(tool)
|
|
if not connmond:
|
|
self.logger.error("Unable to find {}".format(tool))
|
|
as_sudo = self.config['connmon']['sudo']
|
|
cmd = ""
|
|
if as_sudo:
|
|
cmd += "sudo "
|
|
cmd += "screen -X -S connmond kill"
|
|
self.tools.run_cmd(cmd)
|
|
self.logger.info("Starting connmond")
|
|
cmd = ""
|
|
cmd += "{} --config /etc/connmon.cfg > /tmp/connmond 2>&1 &".format(
|
|
connmond)
|
|
self.tools.run_cmd(cmd)
|
|
if self.check_connmon_results is False:
|
|
if retry is None:
|
|
self.start_connmon(retry=True)
|
|
else:
|
|
return False
|
|
else:
|
|
return True
|
|
|
|
def check_connmon_results(self, result_file='/tmp/connmon_results.csv'):
|
|
return os.path.isfile(result_file)
|
|
|
|
# Stop connmond
|
|
def stop_connmon(self):
|
|
self.logger.info("Stopping connmond")
|
|
return self.tools.run_cmd("pkill -9 connmond")
|
|
|
|
# Create Connmon graphs
|
|
def connmon_graphs(self, result_dir, test_name):
|
|
cmd = "python graphing/connmonplot.py {}/connmon/{}.csv".format(result_dir,
|
|
test_name)
|
|
return self.tools.run_cmd(cmd)
|
|
|
|
# Move connmon results
|
|
def move_connmon_results(self, result_dir, test_name):
|
|
path = "%s/connmon" % result_dir
|
|
if not os.path.exists(path):
|
|
os.mkdir(path)
|
|
return shutil.move("/tmp/connmon_results.csv",
|
|
"{}/connmon/{}.csv".format(result_dir, test_name))
|