Skip to content
Snippets Groups Projects
Commit 0ba7451c authored by Michael Reuscher's avatar Michael Reuscher
Browse files

new way to pull data from hosts

parent 5a252097
No related branches found
No related tags found
1 merge request!4Python driver and data analysis part
...@@ -15,7 +15,7 @@ stop_requested = False ...@@ -15,7 +15,7 @@ stop_requested = False
# Function to print terminal output and handle errors # Function to print terminal output and handle errors
def terminal_output(output, errors, return_code): def terminal_output(output, errors, return_code, msg):
if return_code > 0: if return_code > 0:
logger.error(f'return code: {return_code}') logger.error(f'return code: {return_code}')
if errors: if errors:
...@@ -23,20 +23,25 @@ def terminal_output(output, errors, return_code): ...@@ -23,20 +23,25 @@ def terminal_output(output, errors, return_code):
if output: if output:
logger.info(output) logger.info(output)
else: else:
logger.info(output) if output:
logger.info(output)
logger.info(msg)
# Function to pull data from remote machines to the local machine # Function to pull data from remote machines to the local machine
def pull_data(source_path, desti_path): def pull_data(source_path, desti_path):
desti = os.path.join(desti_path, 'output')
os.makedirs(desti, mode=0o777, exist_ok=True)
if args.hosts: if args.hosts:
for host in args.hosts: for host in args.hosts:
ssh_target = f'{args.user}@{host}' ssh_target = f'{args.user}@{host}'
scp_cmd = f'scp -r {ssh_target}:{source_path} {desti_path}' scp_cmd = f'scp -r {ssh_target}:{source_path}/*{host}* {desti}'
subprocess.run(scp_cmd, shell=True, check=True) subprocess.run(scp_cmd, shell=True, check=True)
def rm_data(t_data_path): def rm_data(t_data_path):
if args.hosts: if args.hosts:
logger.info('remove test_data folder')
host = args.hosts[0] host = args.hosts[0]
ssh_target = f'{args.user}@{host}' ssh_target = f'{args.user}@{host}'
rm_cmd = f'ssh {ssh_target} rm -r {t_data_path}' rm_cmd = f'ssh {ssh_target} rm -r {t_data_path}'
...@@ -53,8 +58,9 @@ def handle_sigint(signum, frame): ...@@ -53,8 +58,9 @@ def handle_sigint(signum, frame):
re = subprocess.run(kill_cmd, shell=True) re = subprocess.run(kill_cmd, shell=True)
ou = re.stdout ou = re.stdout
er = re.stderr er = re.stderr
logger.info(f'{ou} {er}') rc = re.returncode
logger.info(f'{kill_target} killed') terminal_msg = f'{kill_target} killed'
terminal_output(ou, er, rc, terminal_msg)
# Function to run the detector simulation with the given event arguments # Function to run the detector simulation with the given event arguments
...@@ -83,14 +89,15 @@ def run_sim(e_dict, d_path, sim_path, main_path): ...@@ -83,14 +89,15 @@ def run_sim(e_dict, d_path, sim_path, main_path):
for folder_name, host, future in futures: for folder_name, host, future in futures:
output, errors, result = future.result() output, errors, result = future.result()
terminal_output(output, errors, result) terminal_msg = f'{folder_name}_{host if host else ""} done!'
if not stop_requested:
terminal_output(output, errors, result, terminal_msg)
if output: if output:
if host: if host:
stat_file_name = f'statistics_{folder_name}_{host}' stat_file_name = f'statistics_{folder_name}_{host}'
else: else:
stat_file_name = f'statistics_{folder_name}_lokal' stat_file_name = f'statistics_{folder_name}_lokal'
op.write_statistics(main_path, stat_file_name, output) op.write_statistics(main_path, stat_file_name, output)
logger.info(f'{folder_name}_{host if host else ""} done!')
# --- MAIN --- # --- MAIN ---
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment