def _listen(self): factory = Factory() factory.protocol = FaultManagerProtocol factory.messageProcessor = self point = TCP4ServerEndpoint(reactor, self._port) d = point.listen(factory) d.addErrback(self._onListenError)
def _connectToFaultManager(self): factory = Factory() factory.protocol = ServerProtocol factory.messageProcessor = self factory.onConnect = self.connectedToFaultManager factory.onDisconnect = self.disconnectedFromFaultManager point = TCP4ClientEndpoint(reactor, self._faultManagerAddress, self._faultManagerPort) d = point.connect(factory) d.addErrback(self._onListenError)
def _listen(self): factory = Factory() factory.protocol = ServerProtocol factory.messageProcessor = self factory.onConnect = self.clientConnected factory.onDisconnect = self.clientDisconnected point = TCP4ServerEndpoint(reactor, self._localPort) d = point.listen(factory) d.addErrback(self._onListenError)
def _backupState(self): for (address, port) in self._replicaList: if not (address == self._localAddress and port == self._localPort): #don't connect to ourselves factory = Factory() factory.protocol = ServerProtocol factory.messageProcessor = self factory.onConnect = self.connectedToBackup factory.onDisconnect = None point = TCP4ClientEndpoint(reactor, address, port, timeout=2) d = point.connect(factory)
def _connectToReplica(self): if self._replicaIndexToAttempt < len(self._replicaList): factory = Factory() factory.protocol = ClientProtocol factory.messageProcessor = self factory.onConnect = self.connectedToServerReplica factory.onDisconnect = self.disconnectedFromServerReplica (replicaAddress, replicaPort) = self._replicaList[self._replicaIndexToAttempt] print "Connecting to primary replica", replicaAddress + ":" + str(replicaPort) point = TCP4ClientEndpoint(reactor, replicaAddress, replicaPort) d = point.connect(factory) d.addErrback(self._onServerReplicaConnectError) self._replicaIndexToAttempt += 1 else: #if we run out of replicas, send OperationComplete with result set to None #so that performOperation will raise an exception self._operationCompleteCondition.acquire() self._operationResult = None self._operationCompleteCondition.notifyAll() self._operationCompleteCondition.release()