return self.execute(cmd, with_lock = True)
def run_and_wait(self, command, home,
- shfile = "cmd.sh",
- env = None,
- overwrite = True,
- pidfile = "pidfile",
- ecodefile = "exitcode",
- stdin = None,
- stdout = "stdout",
- stderr = "stderr",
- sudo = False,
- tty = False,
- raise_on_error = True):
+ shfile="cmd.sh",
+ env=None,
+ overwrite=True,
+ wait_run=True,
+ pidfile="pidfile",
+ ecodefile="exitcode",
+ stdin=None,
+ stdout="stdout",
+ stderr="stderr",
+ sudo=False,
+ tty=False,
+ raise_on_error=True):
"""
Uploads the 'command' to a bash script in the host.
Then runs the script detached in background in the host, and
pidfile = pidfile,
raise_on_error = raise_on_error)
- # wait until command finishes to execute
- self.wait_run(pid, ppid)
-
- (eout, err), proc = self.check_errors(home,
- ecodefile = ecodefile,
- stderr = stderr)
+ if wait_run:
+ # wait until command finishes to execute
+ self.wait_run(pid, ppid)
+
+ (eout, err), proc = self.check_errors(home,
+ ecodefile = ecodefile,
+ stderr = stderr)
- # Out is what was written in the stderr file
- if err:
- msg = " Failed to run command '%s' " % command
- self.error(msg, eout, err)
+ # Out is what was written in the stderr file
+ if err:
+ msg = " Failed to run command '%s' " % command
+ self.error(msg, eout, err)
- if raise_on_error:
- raise RuntimeError, msg
+ if raise_on_error:
+ raise RuntimeError, msg
(out, oerr), proc = self.check_output(home, stdout)
return (out, err), proc
-
+
def exitcode(self, home, ecodefile = "exitcode"):
"""
Get the exit code of an application.
return ExitCode.ERROR
def upload_command(self, command,
- shfile = "cmd.sh",
- ecodefile = "exitcode",
- overwrite = True,
- env = None):
+ shfile="cmd.sh",
+ ecodefile="exitcode",
+ overwrite=True,
+ env=None):
""" Saves the command as a bash script file in the remote host, and
forces to save the exit code of the command execution to the ecodefile
"""
# Add environ to command
command = environ + command
- return self.upload(command, shfile, text = True, overwrite = overwrite)
+ return self.upload(command, shfile, text=True, overwrite=overwrite)
- def format_environment(self, env, inline = False):
+ def format_environment(self, env, inline=False):
""" Formats the environment variables for a command to be executed
either as an inline command
(i.e. export PYTHONPATH=src/..; export LALAL= ..;python script.py) or