aboutsummaryrefslogtreecommitdiffstats
path: root/tools/python
diff options
context:
space:
mode:
authorIan Campbell <ian.campbell@citrix.com>2013-07-31 16:15:49 +0100
committerIan Campbell <ian.campbell@citrix.com>2013-08-20 15:33:37 +0100
commit9af42f3598ba6f4b38384fdd2038c30f7ec763b9 (patch)
tree3b03b3aa9bd8973ed75a84e1f34985f2f4125674 /tools/python
parentd72e8bcf12eb0b9e0fcfbc48406b5c4cbf9a84ef (diff)
downloadxen-9af42f3598ba6f4b38384fdd2038c30f7ec763b9.tar.gz
xen-9af42f3598ba6f4b38384fdd2038c30f7ec763b9.tar.bz2
xen-9af42f3598ba6f4b38384fdd2038c30f7ec763b9.zip
tools: move xm and xend under tools python
Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com> Acked-by: Matt Wilson <msw@amazon.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Diffstat (limited to 'tools/python')
-rw-r--r--tools/python/Makefile4
-rw-r--r--tools/python/xen/xend/xend110
-rwxr-xr-xtools/python/xen/xm/xm7
3 files changed, 121 insertions, 0 deletions
diff --git a/tools/python/Makefile b/tools/python/Makefile
index 9be11225fa..8461d0fe4d 100644
--- a/tools/python/Makefile
+++ b/tools/python/Makefile
@@ -23,6 +23,10 @@ install: install-dtd
CC="$(CC)" CFLAGS="$(CFLAGS)" $(PYTHON) setup.py install \
$(PYTHON_PREFIX_ARG) --root="$(DESTDIR)" --force
+ $(INSTALL_DIR) $(DESTDIR)$(SBINDIR)
+ $(INSTALL_PYTHON_PROG) xen/xm/xm $(DESTDIR)$(SBINDIR)/xm
+ $(INSTALL_PYTHON_PROG) xen/xend/xend $(DESTDIR)$(SBINDIR)/xend
+
install-dtd: all
$(INSTALL_DIR) $(DESTDIR)$(SHAREDIR)/xen
$(INSTALL_DATA) xen/xm/create.dtd $(DESTDIR)$(SHAREDIR)/xen
diff --git a/tools/python/xen/xend/xend b/tools/python/xen/xend/xend
new file mode 100644
index 0000000000..9ef021054c
--- /dev/null
+++ b/tools/python/xen/xend/xend
@@ -0,0 +1,110 @@
+#!/usr/bin/env python
+# -*- mode: python; -*-
+#============================================================================
+# Copyright (C) 2004 Mike Wray <mike.wray@hp.com>
+# Copyright (C) 2005-2006 XenSource Inc
+#============================================================================
+
+"""Xen management daemon.
+ Provides console server and HTTP management api.
+
+ Run:
+ xend start
+
+ Restart:
+ xend restart
+
+ The daemon is stopped with:
+ xend stop
+
+ The daemon should reconnect to device control interfaces
+ and recover its state when restarted.
+
+ On Solaris, the daemons are SMF managed, and you should not attempt
+ to start xend by hand.
+"""
+import fcntl
+import glob
+import os
+import os.path
+import sys
+import socket
+import signal
+import time
+import commands
+
+from xen.xend.server import SrvDaemon
+
+class CheckError(ValueError):
+ pass
+
+def hline():
+ print >>sys.stderr, "*" * 70
+
+def msg(message):
+ print >>sys.stderr, "*" * 3, message
+
+def check_logging():
+ """Check python logging is installed and raise an error if not.
+ Logging is standard from Python 2.3 on.
+ """
+ try:
+ import logging
+ except ImportError:
+ hline()
+ msg("Python logging is not installed.")
+ msg("Use 'make install-logging' at the xen root to install.")
+ msg("")
+ msg("Alternatively download and install from")
+ msg("http://www.red-dove.com/python_logging.html")
+ hline()
+ raise CheckError("logging is not installed")
+
+def check_user():
+ """Check that the effective user id is 0 (root).
+ """
+ if os.geteuid() != 0:
+ hline()
+ msg("Xend must be run as root.")
+ hline()
+ raise CheckError("invalid user")
+
+def start_daemon(daemon, *args):
+ if os.fork() == 0:
+ os.execvp(daemon, (daemon,) + args)
+
+def start_blktapctrl():
+ start_daemon("blktapctrl", "")
+
+def main():
+ try:
+ check_logging()
+ check_user()
+ except CheckError:
+ sys.exit(1)
+
+ daemon = SrvDaemon.instance()
+ if not sys.argv[1:]:
+ print 'usage: %s {start|stop|reload|restart}' % sys.argv[0]
+ elif sys.argv[1] == 'start':
+ if os.uname()[0] != "SunOS":
+ start_blktapctrl()
+ return daemon.start()
+ elif sys.argv[1] == 'trace_start':
+ start_blktapctrl()
+ return daemon.start(trace=1)
+ elif sys.argv[1] == 'stop':
+ return daemon.stop()
+ elif sys.argv[1] == 'reload':
+ return daemon.reloadConfig()
+ elif sys.argv[1] == 'restart':
+ start_blktapctrl()
+ return daemon.stop() or daemon.start()
+ elif sys.argv[1] == 'status':
+ return daemon.status()
+ else:
+ print 'not an option:', sys.argv[1]
+ return 1
+
+if __name__ == '__main__':
+ sys.exit(main())
diff --git a/tools/python/xen/xm/xm b/tools/python/xen/xm/xm
new file mode 100755
index 0000000000..f4fd200346
--- /dev/null
+++ b/tools/python/xen/xm/xm
@@ -0,0 +1,7 @@
+#!/usr/bin/env python
+# -*- mode: python; -*-
+import sys
+
+from xen.xm import main
+
+main.main(sys.argv)