|
@@ -6,6 +6,7 @@ from ClusterConfig import *
|
|
|
import DirectNotifyGlobal
|
|
import DirectNotifyGlobal
|
|
|
import DirectObject
|
|
import DirectObject
|
|
|
import Task
|
|
import Task
|
|
|
|
|
+import os
|
|
|
|
|
|
|
|
class ClusterClient(DirectObject.DirectObject):
|
|
class ClusterClient(DirectObject.DirectObject):
|
|
|
notify = DirectNotifyGlobal.directNotify.newCategory("ClusterClient")
|
|
notify = DirectNotifyGlobal.directNotify.newCategory("ClusterClient")
|
|
@@ -13,27 +14,28 @@ class ClusterClient(DirectObject.DirectObject):
|
|
|
|
|
|
|
|
def __init__(self, configList, clusterSyncFlag):
|
|
def __init__(self, configList, clusterSyncFlag):
|
|
|
# First start up servers using direct daemon
|
|
# First start up servers using direct daemon
|
|
|
- clusterDaemonClient = base.config.GetString(
|
|
|
|
|
- 'cluster-daemon-client', 'localhost')
|
|
|
|
|
|
|
+ # What is the name of the client machine?
|
|
|
|
|
+ clusterDaemonClient = os.popen('uname -n').read()
|
|
|
|
|
+ clusterDaemonClient.replace('\n', '')
|
|
|
|
|
+ # What daemon port are we using to communicate between client/servers
|
|
|
clusterDaemonPort = base.config.GetInt(
|
|
clusterDaemonPort = base.config.GetInt(
|
|
|
'cluster-daemon-port', CLUSTER_DAEMON_PORT)
|
|
'cluster-daemon-port', CLUSTER_DAEMON_PORT)
|
|
|
|
|
+ # Create a daemon
|
|
|
self.daemon = DirectD()
|
|
self.daemon = DirectD()
|
|
|
- print 'LISTEN'
|
|
|
|
|
|
|
+ # Start listening for the response
|
|
|
self.daemon.listenTo(clusterDaemonPort)
|
|
self.daemon.listenTo(clusterDaemonPort)
|
|
|
|
|
+ # Contact server daemons and start up remote server application
|
|
|
for serverConfig in configList:
|
|
for serverConfig in configList:
|
|
|
serverCommand = (SERVER_STARTUP_STRING %
|
|
serverCommand = (SERVER_STARTUP_STRING %
|
|
|
(serverConfig.serverPort,
|
|
(serverConfig.serverPort,
|
|
|
clusterSyncFlag,
|
|
clusterSyncFlag,
|
|
|
clusterDaemonClient,
|
|
clusterDaemonClient,
|
|
|
clusterDaemonPort))
|
|
clusterDaemonPort))
|
|
|
- print 'BOOTSTRAP', serverCommand
|
|
|
|
|
self.daemon.clientReady(serverConfig.serverName,
|
|
self.daemon.clientReady(serverConfig.serverName,
|
|
|
clusterDaemonPort,
|
|
clusterDaemonPort,
|
|
|
serverCommand)
|
|
serverCommand)
|
|
|
- print 'WAITING'
|
|
|
|
|
if not self.daemon.waitForServers(len(configList)):
|
|
if not self.daemon.waitForServers(len(configList)):
|
|
|
- print 'ERROR'
|
|
|
|
|
- print 'DONE'
|
|
|
|
|
|
|
+ print 'Cluster Client, no response from servers'
|
|
|
self.qcm=QueuedConnectionManager()
|
|
self.qcm=QueuedConnectionManager()
|
|
|
self.serverList = []
|
|
self.serverList = []
|
|
|
self.msgHandler = ClusterMsgHandler(ClusterClient.MGR_NUM, self.notify)
|
|
self.msgHandler = ClusterMsgHandler(ClusterClient.MGR_NUM, self.notify)
|