git://git.onelab.eu
/
bootmanager.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
d192e03
)
Revert "Revert "replace deprecated popen2 with subprocess""
author
S.Çağlar Onur
<caglar@cs.princeton.edu>
Fri, 27 Aug 2010 16:36:44 +0000
(12:36 -0400)
committer
S.Çağlar Onur
<caglar@cs.princeton.edu>
Fri, 27 Aug 2010 16:36:44 +0000
(12:36 -0400)
This reverts commit
e33917845bcb7537ced58a3acaa8c297d8eba1f1
.
source/utils.py
patch
|
blob
|
history
diff --git
a/source/utils.py
b/source/utils.py
index
10607cc
..
f57a0a3
100644
(file)
--- a/
source/utils.py
+++ b/
source/utils.py
@@
-11,7
+11,8
@@
# expected /proc/partitions format
import os, sys, shutil
# expected /proc/partitions format
import os, sys, shutil
-import popen2
+import subprocess
+import shlex
import socket
import fcntl
import string
import socket
import fcntl
import string
@@
-132,18
+133,19
@@
def sysexec( cmd, log= None, fsck = False ):
if VERBOSE_MODE:
print ("sysexec >>> %s" % cmd)
if VERBOSE_MODE:
print ("sysexec >>> %s" % cmd)
- prog = popen2.Popen4( cmd, 0 )
- if prog is None:
+ try:
+ prog = subprocess.Popen(shlex.split(cmd), stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ except OSError:
raise BootManagerException, \
raise BootManagerException, \
- "Unable to create instance of
popen2.Popen4
" \
+ "Unable to create instance of
subprocess.Popen
" \
"for command: %s" % cmd
"for command: %s" % cmd
+ try:
+ (stdoutdata, stderrdata) = prog.communicate()
+ except KeyboardInterrupt:
+ raise BootManagerException, "Interrupted by user"
if log is not None:
if log is not None:
- try:
- for line in prog.fromchild:
- log.write( line )
- except KeyboardInterrupt:
- raise BootManagerException, "Interrupted by user"
+ log.write(stdoutdata)
returncode = prog.wait()
returncode = prog.wait()
@@
-162,6
+164,7
@@
def sysexec( cmd, log= None, fsck = False ):
else:
if returncode != 0:
raise BootManagerException, "Running %s failed (rc=%d)" % (cmd,returncode)
else:
if returncode != 0:
raise BootManagerException, "Running %s failed (rc=%d)" % (cmd,returncode)
+
prog = None
return 1
prog = None
return 1