X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=src%2Fnepi%2Fresources%2Flinux%2Fnode.py;h=ff19bbb6880cdf193e21387a691f1a2cb9929bf1;hb=76ec8fbc6c987d4208dd6d987de55a2ca543962f;hp=7092a672aa436cefb047ee5d774e5566172ed851;hpb=d50ba1a08e541ded7a8b322493ebb1d0cc59c6ff;p=nepi.git diff --git a/src/nepi/resources/linux/node.py b/src/nepi/resources/linux/node.py index 7092a672..ff19bbb6 100644 --- a/src/nepi/resources/linux/node.py +++ b/src/nepi/resources/linux/node.py @@ -145,7 +145,7 @@ class LinuxNode(ResourceManager): _rtype = "linux::Node" _help = "Controls Linux host machines ( either localhost or a host " \ "that can be accessed using a SSH key)" - _backend_type = "linux" + _platform = "linux" @classmethod def _register_attributes(cls): @@ -844,17 +844,18 @@ class LinuxNode(ResourceManager): 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 @@ -893,25 +894,26 @@ class LinuxNode(ResourceManager): 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. @@ -935,10 +937,10 @@ class LinuxNode(ResourceManager): 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 """ @@ -958,9 +960,9 @@ class LinuxNode(ResourceManager): # 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