# HG changeset patch
# User jrb44@xxxxxxxxxxxxxxxxx
# Node ID 17a9f111fa93b38b28bc8679ee8d35b45b7627bc
# Parent 2d5b92e7c79a714640397b6c7d797a56aa230f8b
Temporary workaround to xend start problem.
Signed-off-by: James Bulpin <james@xxxxxxxxxxxxx>
diff -r 2d5b92e7c79a -r 17a9f111fa93 tools/python/xen/xend/Vifctl.py
--- a/tools/python/xen/xend/Vifctl.py Fri Oct 21 17:29:26 2005
+++ b/tools/python/xen/xend/Vifctl.py Fri Oct 21 17:51:42 2005
@@ -20,8 +20,8 @@
"""
import os
+import xen.util.process
import XendRoot
-
def network(op):
"""Call a network control script.
@@ -32,4 +32,6 @@
raise ValueError('Invalid operation: ' + op)
script = XendRoot.instance().get_network_script()
if script:
- os.spawnl(os.P_WAIT, script, script, op)
+ xen.util.process.runscript(script + " " + op)
+ #os.spawnl(os.P_WAIT, script, script, op)
+
diff -r 2d5b92e7c79a -r 17a9f111fa93 tools/python/xen/util/process.py
--- /dev/null Fri Oct 21 17:29:26 2005
+++ b/tools/python/xen/util/process.py Fri Oct 21 17:51:42 2005
@@ -0,0 +1,39 @@
+# Copyright (C) 2005 Christian Limpach <Christian.Limpach@xxxxxxxxxxxx>
+
+# os.system() replacement which outputs through the logger
+
+import popen2
+import select
+import string
+
+from xen.xend.XendLogging import log
+
+def runscript(cmd):
+ # split after first space, then grab last component of path
+ cmdname = "[%s] " % cmd.split()[0].split('/')[-1]
+ # run command and grab stdin, stdout and stderr
+ cout, cin, cerr = popen2.popen3(cmd)
+ # close stdin to get command to terminate if it waits for input
+ cin.close()
+ # wait for output and process
+ p = select.poll()
+ p.register(cout)
+ p.register(cerr)
+ stdout = ""
+ while True:
+ r = p.poll()
+ for (fd, event) in r:
+ if event == select.POLLHUP:
+ cout.close()
+ cerr.close()
+ return stdout
+ if fd == cout.fileno():
+ stdout = stdout + cout.readline()
+ if fd == cerr.fileno():
+ l = cerr.readline()
+ if l[0] == '-':
+ log.debug(cmdname + l[1:].rstrip())
+ elif l[0] == '*':
+ log.info(cmdname + l[1:].rstrip())
+ else:
+ log.error(cmdname + l.rstrip())
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|