mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
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>
This commit is contained in:
1 parent
d72e8bcf12
commit
9af42f3598
4 files changed
+5
-1
No files matched your search
@@ -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
|
||||
|
||||
@@ -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())
|
||||
Executable
+7
@@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- mode: python; -*-
|
||||
import sys
|
||||
|
||||
from xen.xm import main
|
||||
|
||||
main.main(sys.argv)
|
||||