[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] Many files:



ChangeSet 1.1426.1.1, 2005/05/17 11:50:52+01:00, cl349@xxxxxxxxxxxxxxxxxxxx

        Many files:
          Make interface to network/block scripts consistent:
          - output on stdout is returned to the script caller
          - output on stderr is logged at the error level, messages with a '-' 
prefix
            are logged at the debug level and messages with a '*' prefix are 
logged
            at the info level.
        Signed-off-by: Christian Limpach <Christian.Limpach@xxxxxxxxxxxx>



 examples/block-enbd        |    4 ++--
 examples/block-file        |    4 ++--
 examples/network           |    6 +++---
 examples/network-nat       |    6 +++---
 examples/vif-bridge        |    6 +++---
 examples/vif-nat           |    6 +++---
 examples/vif-route         |    6 +++---
 python/xen/util/process.py |   16 +++++++++++-----
 python/xen/xend/Blkctl.py  |    9 ++++-----
 python/xen/xend/Vifctl.py  |    9 ++++++---
 10 files changed, 40 insertions(+), 32 deletions(-)


diff -Nru a/tools/examples/block-enbd b/tools/examples/block-enbd
--- a/tools/examples/block-enbd 2005-05-17 10:04:39 -04:00
+++ b/tools/examples/block-enbd 2005-05-17 10:04:39 -04:00
@@ -27,7 +27,7 @@
        ;;
 
        *)
-               echo 'Unknown command: ' $1
-               echo 'Valid commands are: bind, unbind'
+               echo 'Unknown command: ' $1 >&2
+               echo 'Valid commands are: bind, unbind' >&2
                exit 1
 esac
diff -Nru a/tools/examples/block-file b/tools/examples/block-file
--- a/tools/examples/block-file 2005-05-17 10:04:39 -04:00
+++ b/tools/examples/block-file 2005-05-17 10:04:39 -04:00
@@ -25,7 +25,7 @@
        ;;
 
        *)
-               echo 'Unknown command: ' $1
-               echo 'Valid commands are: bind, unbind'
+               echo 'Unknown command: ' $1 >&2
+               echo 'Valid commands are: bind, unbind' >&2
                exit 1
 esac
diff -Nru a/tools/examples/network b/tools/examples/network
--- a/tools/examples/network    2005-05-17 10:04:39 -04:00
+++ b/tools/examples/network    2005-05-17 10:04:39 -04:00
@@ -53,7 +53,7 @@
 netdev=${netdev:-eth0}
 antispoof=${antispoof:-yes}
 
-echo "network $OP bridge=$bridge netdev=$netdev antispoof=$antispoof"
+echo "*network $OP bridge=$bridge netdev=$netdev antispoof=$antispoof" >&2
 
 # Usage: transfer_addrs src dst
 # Copy all IP addresses (including aliases) from device $src to device $dst.
@@ -232,7 +232,7 @@
        ;;
 
     *)
-       echo 'Unknown command: ' ${OP}
-       echo 'Valid commands are: start, stop, status'
+       echo 'Unknown command: ' ${OP} >&2
+       echo 'Valid commands are: start, stop, status' >&2
        exit 1
 esac
diff -Nru a/tools/examples/network-nat b/tools/examples/network-nat
--- a/tools/examples/network-nat        2005-05-17 10:04:39 -04:00
+++ b/tools/examples/network-nat        2005-05-17 10:04:39 -04:00
@@ -32,7 +32,7 @@
 # antispoofing not yet implemented
 antispoof=${antispoof:-no}
 
-echo "network-nat $OP netdev=$netdev antispoof=$antispoof"
+echo "*network-nat $OP netdev=$netdev antispoof=$antispoof" >&2
 
 
 op_start() {
@@ -71,7 +71,7 @@
        ;;
 
     *)
-       echo 'Unknown command: ' ${OP}
-       echo 'Valid commands are: start, stop, status'
+       echo 'Unknown command: ' ${OP} >&2
+       echo 'Valid commands are: start, stop, status' >&2
        exit 1
 esac
diff -Nru a/tools/examples/vif-bridge b/tools/examples/vif-bridge
--- a/tools/examples/vif-bridge 2005-05-17 10:04:39 -04:00
+++ b/tools/examples/vif-bridge 2005-05-17 10:04:39 -04:00
@@ -34,7 +34,7 @@
 # Exit if anything goes wrong
 set -e 
 
-echo "vif-bridge $*"
+echo "*vif-bridge $*" >&2
 
 # Operation name.
 OP=$1
@@ -63,8 +63,8 @@
         iptcmd='-D'
         ;;
     *)
-        echo 'Invalid command: ' $OP
-        echo 'Valid commands are: up, down'
+        echo 'Invalid command: ' $OP >&2
+        echo 'Valid commands are: up, down' >&2
         exit 1
         ;;
 esac
diff -Nru a/tools/examples/vif-nat b/tools/examples/vif-nat
--- a/tools/examples/vif-nat    2005-05-17 10:04:39 -04:00
+++ b/tools/examples/vif-nat    2005-05-17 10:04:39 -04:00
@@ -23,7 +23,7 @@
 # Exit if anything goes wrong
 set -e 
 
-echo "vif-nat $*"
+echo "*vif-nat $*" >&2
 
 # Operation name.
 OP=$1
@@ -56,8 +56,8 @@
         ipcmd='d'
         ;;
     *)
-        echo 'Invalid command: ' $OP
-        echo 'Valid commands are: up, down'
+        echo 'Invalid command: ' $OP >&2
+        echo 'Valid commands are: up, down' >&2
         exit 1
         ;;
 esac
diff -Nru a/tools/examples/vif-route b/tools/examples/vif-route
--- a/tools/examples/vif-route  2005-05-17 10:04:39 -04:00
+++ b/tools/examples/vif-route  2005-05-17 10:04:39 -04:00
@@ -24,7 +24,7 @@
 # Exit if anything goes wrong
 set -e 
 
-echo "vif-route $*"
+echo "*vif-route $*" >&2
 
 # Operation name.
 OP=$1
@@ -57,8 +57,8 @@
         ipcmd='d'
         ;;
     *)
-        echo 'Invalid command: ' $OP
-        echo 'Valid commands are: up, down'
+        echo 'Invalid command: ' $OP >&2
+        echo 'Valid commands are: up, down' >&2
         exit 1
         ;;
 esac
diff -Nru a/tools/python/xen/util/process.py b/tools/python/xen/util/process.py
--- a/tools/python/xen/util/process.py  2005-05-17 10:04:39 -04:00
+++ b/tools/python/xen/util/process.py  2005-05-17 10:04:39 -04:00
@@ -4,10 +4,11 @@
 
 import popen2
 import select
+import string
 
 from xen.xend.XendLogging import log
 
-def system(cmd):
+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
@@ -18,14 +19,19 @@
     p = select.poll()
     p.register(cout)
     p.register(cerr)
+    stdout = ""
     while True:
         r = p.poll()
         for (fd, event) in r:
             if event == select.POLLHUP:
-                return
+                return stdout
             if fd == cout.fileno():
-                l = cout.readline()
-                log.info(cmdname + l.rstrip())
+                stdout = stdout + cout.readline()
             if fd == cerr.fileno():
                 l = cerr.readline()
-                log.error(cmdname + l.rstrip())
+                if l[0] == '-':
+                    log.debug(cmdname + l[1:].rstrip())
+                elif l[0] == '*':
+                    log.info(cmdname + l[1:].rstrip())
+                else:
+                    log.error(cmdname + l.rstrip())
diff -Nru a/tools/python/xen/xend/Blkctl.py b/tools/python/xen/xend/Blkctl.py
--- a/tools/python/xen/xend/Blkctl.py   2005-05-17 10:04:39 -04:00
+++ b/tools/python/xen/xend/Blkctl.py   2005-05-17 10:04:39 -04:00
@@ -4,6 +4,7 @@
 import os.path
 import sys
 import string
+import xen.util.process
 
 from xen.xend import XendRoot
 
@@ -38,8 +39,6 @@
     script = os.path.join(SCRIPT_DIR, script)
     args = [op] + string.split(dets, ':')
     args = ' '.join(args)
-    out = os.popen(script + ' ' + args)
-
-    output = _readline(out)
-    out.close()
-    return string.rstrip(output)
+    ret = xen.util.process.runscript(script + ' ' + args)
+    if len(ret):
+        return ret.splitlines()[0]
diff -Nru a/tools/python/xen/xend/Vifctl.py b/tools/python/xen/xend/Vifctl.py
--- a/tools/python/xen/xend/Vifctl.py   2005-05-17 10:04:39 -04:00
+++ b/tools/python/xen/xend/Vifctl.py   2005-05-17 10:04:39 -04:00
@@ -36,7 +36,9 @@
     else:
         args.append("antispoof=no")
     args = ' '.join(args)
-    xen.util.process.system(script + ' ' + args)
+    ret = xen.util.process.runscript(script + ' ' + args)
+    if len(ret):
+        return ret.splitlines()[0]
 
 def set_vif_name(vif_old, vif_new):
     if vif_old == vif_new:
@@ -81,5 +83,6 @@
         ips = ' '.join(ipaddr)
         args.append("ip='%s'" % ips)
     args = ' '.join(args)
-    os.system(script + ' ' + args)
-
+    ret = xen.util.process.runscript(script + ' ' + args)
+    if len(ret):
+        return ret.splitlines()[0]

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.