def stopConnecting(self): """Stop attempting to connect.""" if self.state != "connecting": raise error.NotConnectingError("we're not trying to connect") self.state = "disconnected" self.transport.failIfNotConnected(error.UserError()) del self.transport
def caller(self, *args, **kw): def execute(client): def store_tubes(res): if cmd == "use": self._msg("BeanstalkClient - store_tubes: USE %s" % args[0]) self.used_tube = args[0] elif cmd == "watch": self._msg("BeanstalkClient - store_tubes: WATCH %s" % args[0]) self.watched_tubes |= frozenset([args[0]]) elif cmd == "ignore": self._msg("BeanstalkClient - store_tubes: IGNORE %s" % args[0]) self.watched_tubes -= frozenset([args[0]]) return res return getattr(client.protocol, cmd)(*args, **kw).addCallback(store_tubes) def execute_on_connect(fail=None): if fail: fail.trap('twisted.internet.error.ConnectionClosed') return self._waiter.push().addCallback(execute).addErrback( execute_on_connect) if self.protocol: return execute(self).addErrback(execute_on_connect) elif self.factory.continueTrying: return execute_on_connect() else: return defer.fail( error.NotConnectingError( "Can't send command - not connected and not even trying" ))