Commit 82b3357abf8212c7cd2f8edb2c91f4a398053997
1 parent
dd27c2bc
Exists in
dev
Adding foreground flag for new-start command in pyros.py
Showing
1 changed file
with
13 additions
and
9 deletions
Show diff stats
pyros.py
... | ... | @@ -245,14 +245,17 @@ def die(msg: str = ""): |
245 | 245 | |
246 | 246 | |
247 | 247 | # TODO: implement is_async |
248 | -def execProcess(command, from_venv=False, is_async=False): | |
248 | +def execProcess(command, from_venv=False, is_async=False,foreground=False): | |
249 | 249 | from_venv_str = " from venv ("+VENV_PYTHON+")" if from_venv else "" |
250 | 250 | # printFullTerm(Colors.BLUE, "Executing command" + " [" + command + "]" + from_venv_str) |
251 | 251 | log.debug("Executing command" + " [" + command + "]" + from_venv_str) |
252 | 252 | if from_venv: |
253 | 253 | command = VENV_PYTHON+' ' + command |
254 | 254 | print(f"EXECUTING {command}") |
255 | - process = subprocess.Popen(command, shell=True) | |
255 | + if foreground: | |
256 | + process = subprocess.Popen(command, shell=True) | |
257 | + else: | |
258 | + process = subprocess.Popen(command, shell=True,stdout=subprocess.DEVNULL,stderr=subprocess.STDOUT) | |
256 | 259 | if is_async: |
257 | 260 | # current_processes.append(process) |
258 | 261 | return process |
... | ... | @@ -268,15 +271,15 @@ def execProcess(command, from_venv=False, is_async=False): |
268 | 271 | return True if process.returncode == 0 else False |
269 | 272 | |
270 | 273 | |
271 | -def execProcessFromVenv(command: str, is_async=False): | |
274 | +def execProcessFromVenv(command: str, is_async=False,foreground=False): | |
272 | 275 | # return execProcess(command, from_venv=True, is_async) |
273 | - return execProcess(command, True, is_async) | |
276 | + return execProcess(command, True, is_async,foreground) | |
274 | 277 | |
275 | 278 | # TODO: fusionner dans execProcess avec param is_async |
276 | 279 | |
277 | 280 | |
278 | -def execProcessFromVenvAsync(command: str): | |
279 | - return execProcessFromVenv(command, True) | |
281 | +def execProcessFromVenvAsync(command: str,foreground=False): | |
282 | + return execProcessFromVenv(command, True,foreground) | |
280 | 283 | """ |
281 | 284 | args = command.split() |
282 | 285 | printFullTerm( |
... | ... | @@ -998,13 +1001,14 @@ def start(agent: str, configfile: str, observatory: str, unit: str, computer_hos |
998 | 1001 | |
999 | 1002 | |
1000 | 1003 | |
1001 | -@pyros_launcher.command(help="Launch an agent") | |
1004 | +@pyros_launcher.command(help="Launch agentSST") | |
1002 | 1005 | # @global_test_options |
1003 | 1006 | @click.option('--configfile', '-c', help='the configuration file to be used') |
1004 | 1007 | @click.option('--observatory', '-o', help='the observatory name to be used') |
1005 | 1008 | @click.option('--unit', '-u', help='the unit name to be used') |
1006 | 1009 | @click.option("--computer_hostname","-cp", help="The name of simulated computer hostname") |
1007 | -def new_start(configfile: str, observatory: str, unit: str, computer_hostname: str): | |
1010 | +@click.option("--foreground","-fg", is_flag=True, help="Print stdout and error in terminal") | |
1011 | +def new_start(configfile: str, observatory: str, unit: str, computer_hostname: str,foreground:bool): | |
1008 | 1012 | log.debug("Running start command") |
1009 | 1013 | try: |
1010 | 1014 | from config.pyros.config_pyros import ConfigPyros |
... | ... | @@ -1110,7 +1114,7 @@ def new_start(configfile: str, observatory: str, unit: str, computer_hostname: s |
1110 | 1114 | # Append this process ( [process id, agent_name, result=failure] ) |
1111 | 1115 | # ("result" will be updated at the end of execution) |
1112 | 1116 | current_processes.append( |
1113 | - [execProcessFromVenvAsync(cmd), agent_name, -1]) | |
1117 | + [execProcessFromVenvAsync(cmd,foreground), agent_name, -1]) | |
1114 | 1118 | # self.change_dir("..") |
1115 | 1119 | os.chdir(current_dir) |
1116 | 1120 | ... | ... |