mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 02:30:03 +01:00
Close the server when instructed, so that we can reload on the same port, and
diagnose a server that fails to start. Signed-off-by: Ewan Mellor <ewan@xensource.com>
This commit is contained in:
1 parent
bcf6d372d8
commit
549aad081d
1 file changed
+26
-14
@@ -16,6 +16,8 @@
|
||||
# Copyright (C) 2006 XenSource Ltd.
|
||||
#============================================================================
|
||||
|
||||
import errno
|
||||
import socket
|
||||
import types
|
||||
import xmlrpclib
|
||||
from xen.util.xmlrpclib2 import UnixXMLRPCServer, TCPXMLRPCServer
|
||||
@@ -105,20 +107,25 @@ class XMLRPCServer:
|
||||
"; authentication has been disabled for this server." or
|
||||
".")
|
||||
|
||||
if self.use_tcp:
|
||||
log.info("Opening TCP XML-RPC server on %s%d%s",
|
||||
self.host and '%s:' % self.host or
|
||||
'all interfaces, port ',
|
||||
self.port, authmsg)
|
||||
self.server = TCPXMLRPCServer((self.host, self.port),
|
||||
self.hosts_allowed,
|
||||
logRequests = False)
|
||||
else:
|
||||
log.info("Opening Unix domain socket XML-RPC server on %s%s",
|
||||
self.path, authmsg)
|
||||
self.server = UnixXMLRPCServer(self.path, self.hosts_allowed,
|
||||
logRequests = False)
|
||||
|
||||
try:
|
||||
if self.use_tcp:
|
||||
log.info("Opening TCP XML-RPC server on %s%d%s",
|
||||
self.host and '%s:' % self.host or
|
||||
'all interfaces, port ',
|
||||
self.port, authmsg)
|
||||
self.server = TCPXMLRPCServer((self.host, self.port),
|
||||
self.hosts_allowed,
|
||||
logRequests = False)
|
||||
else:
|
||||
log.info("Opening Unix domain socket XML-RPC server on %s%s",
|
||||
self.path, authmsg)
|
||||
self.server = UnixXMLRPCServer(self.path, self.hosts_allowed,
|
||||
logRequests = False)
|
||||
except socket.error, exn:
|
||||
log.error('Cannot start server: %s!', exn.args[1])
|
||||
ready = True
|
||||
running = False
|
||||
return
|
||||
|
||||
# Register Xen API Functions
|
||||
# -------------------------------------------------------------------
|
||||
@@ -177,6 +184,11 @@ class XMLRPCServer:
|
||||
|
||||
def cleanup(self):
|
||||
log.debug("XMLRPCServer.cleanup()")
|
||||
try:
|
||||
self.server.socket.close()
|
||||
except Exception, exn:
|
||||
log.exception(exn)
|
||||
pass
|
||||
|
||||
def shutdown(self):
|
||||
self.running = False
|
||||
|
||||