diff options
author | Ian Campbell <ian.campbell@citrix.com> | 2013-07-31 16:15:49 +0100 |
---|---|---|
committer | Ian Campbell <ian.campbell@citrix.com> | 2013-08-20 15:33:37 +0100 |
commit | 9af42f3598ba6f4b38384fdd2038c30f7ec763b9 (patch) | |
tree | 3b03b3aa9bd8973ed75a84e1f34985f2f4125674 /tools/python | |
parent | d72e8bcf12eb0b9e0fcfbc48406b5c4cbf9a84ef (diff) | |
download | xen-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/Makefile | 4 | ||||
-rw-r--r-- | tools/python/xen/xend/xend | 110 | ||||
-rwxr-xr-x | tools/python/xen/xm/xm | 7 |
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) |