Temporary workaround to xend start problem.

Signed-off-by: James Bulpin <james@xensource.com>
This commit is contained in:
jrb44@plym.cl.cam.ac.uk committed 2005-10-21 18:51:42 +01:00
1 parent 3f450621b6
commit 1bd54c9db6
2 files changed
+43 -2

No files matched your search

+39
View File
@@ -0,0 +1,39 @@
# Copyright (C) 2005 Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
# 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())
+4 -2
View File
@@ -20,9 +20,9 @@
"""
import os
import xen.util.process
import XendRoot
def network(op):
"""Call a network control script.
@@ -32,4 +32,6 @@ def network(op):
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)
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.