From 9af42f3598ba6f4b38384fdd2038c30f7ec763b9 Mon Sep 17 00:00:00 2001 From: Ian Campbell Date: Wed, 31 Jul 2013 16:15:49 +0100 Subject: tools: move xm and xend under tools python Signed-off-by: Ian Campbell Reviewed-by: Andrew Cooper Acked-by: Matt Wilson Acked-by: Ian Jackson --- tools/python/Makefile | 4 ++ tools/python/xen/xend/xend | 110 +++++++++++++++++++++++++++++++++++++++++++++ tools/python/xen/xm/xm | 7 +++ 3 files changed, 121 insertions(+) create mode 100644 tools/python/xen/xend/xend create mode 100755 tools/python/xen/xm/xm (limited to 'tools/python') 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 +# 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) -- cgit v1.2.3