-from nepi.util.sshfuncs import RUNNING, FINISHED, NOT_STARTED, STDOUT
+#
+# NEPI, a framework to manage network experiments
+# Copyright (C) 2013 INRIA
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+# Author: Alina Quereilhac <alina.quereilhac@inria.fr>
+
+from nepi.util.sshfuncs import ProcStatus, STDOUT
import subprocess
elif user:
command = "su %s ; %s " % (user, command)
+
p = subprocess.Popen(command,
stdout = subprocess.PIPE,
stderr = subprocess.PIPE,
stdin = stdin)
out, err = p.communicate()
- return ((out, err), proc)
+ return (out, err)
def lcopy(source, dest, recursive = False):
"""
command = ["cp"]
if recursive:
command.append("-R")
-
- command.append(src)
- command.append(dst)
-
+
+ if isinstance(dest, str):
+ dest = dest.split(";")
+
+ if isinstance(src, str):
+ src = src.split(";")
+
+ args.extend(src)
+
+ args.extend(dest)
+
p = subprocess.Popen(command,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
return (out,err),proc
-def lcheckpid(pidfile):
+def lgetpid(pidfile):
"""
Check the pidfile of a process spawned with remote_spawn.
})
if proc.wait():
- return NOT_STARTED
+ return ProcStatus.NOT_STARTED
status = False
if out:
status = (out.strip() == 'wait')
else:
- return NOT_STARTED
- return RUNNING if status else FINISHED
+ return ProcStatus.NOT_STARTED
+ return ProcStatus.RUNNING if status else ProcStatus.FINISHED
def lkill(pid, ppid, sudo = False):