def connectionMade(self): prologue = protocol.build_prologue(self._cluster_id) self.transport.write(prologue) self.connected = True return stateful.StatefulProtocol.connectionMade(self)
def connect(self): '''Create client socket and connect to server''' import socket self._socket = socket.create_connection(self._address) prologue = protocol.build_prologue(self._cluster_id) self._socket.sendall(prologue)
def test_data_received_without_handler(self): '''Test behaviour when data is received when no handler is registered''' expected = protocol.build_prologue(self.CLUSTER_ID) client = self._create_client(_FakeTransport(self, expected, '')) client.dataReceived(''.join(chr(i) for i in (0, 0, 0, 0))) return client.transport.loseConnectionDeferred
def test_delete(self): '''Test a successful 'delete' (void) call''' expected = protocol.build_prologue(self.CLUSTER_ID) expected += ''.join(protocol.Delete('key').serialize()) to_send = ''.join(chr(i) for i in (0, 0, 0, 0)) client = self._create_client(_FakeTransport(self, expected, to_send)) deferred = client.delete('key') deferred.addCallback(lambda value: self.assertEquals(value, None)) return deferred
def connect(self): if self._socket: self._socket.close() self._socket = None try: self._socket = socket.create_connection( self._address, ArakoonClientConfig.getConnectionTimeout()) self._socket.setblocking(False) data = protocol.build_prologue(self._cluster_id) self._socket.sendall(data) self._connected = True except Exception: LOGGER.exception('Unable to connect to %s', self._address)
def connect(self): if self._socket: self._socket.close() self._socket = None try: self._socket = socket.create_connection(self._address, ArakoonClientConfig.getConnectionTimeout()) self._socket.setblocking(False) data = protocol.build_prologue(self._cluster_id) self._socket.sendall(data) self._connected = True except Exception: LOGGER.exception('Unable to connect to %s', self._address)
def connect(self): """Create client socket and connect to server""" import socket self._socket = socket.create_connection(self._address) after_idle_sec = 20 interval_sec = 20 max_fails = 3 self._socket.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) self._socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPIDLE, after_idle_sec) self._socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPINTVL, interval_sec) self._socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPCNT, max_fails) prologue = protocol.build_prologue(self._cluster_id) self._socket.sendall(prologue)
def test_disconnect(self): '''Test disconnect''' expected = protocol.build_prologue(self.CLUSTER_ID) expected += ''.join( protocol.Hello('testsuite', 'pyrakoon_test').serialize()) # This is not enough data, so we can test disconnect to_send = chr(0) client = self._create_client(_FakeTransport(self, expected, to_send)) deferred = client.hello('testsuite', 'pyrakoon_test') deferred.addErrback(lambda exc: exc.trap(error.ConnectionDone)) client.connectionLost() return deferred
def test_not_found_exception(self): '''Test a failing 'get' call''' expected = protocol.build_prologue(self.CLUSTER_ID) expected += ''.join(protocol.Get(False, 'key').serialize()) to_send = ''.join(chr(i) for i in itertools.chain( (errors.NotFound.CODE, 0, 0, 0), (3, 0, 0, 0), bytes_('key'), )) client = self._create_client(_FakeTransport(self, expected, to_send)) deferred = client.get('key') deferred.addErrback(lambda exc: exc.trap(errors.NotFound)) return deferred
def test_who_master(self): '''Test a successful 'who_master' (no-argument) call''' expected = protocol.build_prologue(self.CLUSTER_ID) expected += ''.join(protocol.WhoMaster().serialize()) to_send = ''.join(chr(i) for i in itertools.chain( (0, 0, 0, 0), (1,), (6, 0, 0, 0), bytes_('master'), )) client = self._create_client(_FakeTransport(self, expected, to_send)) deferred = client.who_master() deferred.addCallback(lambda value: self.assertEquals(value, 'master')) return deferred
def test_disconnect(self): '''Test disconnect''' expected = protocol.build_prologue(self.CLUSTER_ID) expected += ''.join(protocol.Hello('testsuite', 'pyrakoon_test').serialize()) # This is not enough data, so we can test disconnect to_send = chr(0) client = self._create_client(_FakeTransport(self, expected, to_send)) deferred = client.hello('testsuite', 'pyrakoon_test') deferred.addErrback( lambda exc: exc.trap(error.ConnectionDone)) client.connectionLost() return deferred
def test_hello(self): '''Test a successful 'hello' call''' expected = protocol.build_prologue(self.CLUSTER_ID) expected += ''.join(protocol.Hello('testsuite', 'pyrakoon_test').serialize()) to_send = ''.join(chr(i) for i in itertools.chain( (0, 0, 0, 0), (11, 0, 0, 0), bytes_('arakoon/1.0'), )) client = self._create_client(_FakeTransport(self, expected, to_send)) deferred = client.hello('testsuite', 'pyrakoon_test') deferred.addCallback( lambda value: self.assertEquals(value, 'arakoon/1.0')) return deferred
def connect(self): if self._socket: self._socket.close() self._socket = None try: self._socket = socket.create_connection(self._address, self._timeout) after_idle_sec = 20 interval_sec = 20 max_fails = 3 self._socket.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) self._socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPIDLE, after_idle_sec) self._socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPINTVL, interval_sec) self._socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPCNT, max_fails) if self._tls: kwargs = { 'ssl_version': ssl.PROTOCOL_TLSv1, 'cert_reqs': ssl.CERT_OPTIONAL, 'do_handshake_on_onnect' : True } if self._tls_ca_cert: kwargs['cert_reqs'] = ssl.CERT_REQUIRED kwargs['ca_certs'] = self._tls_ca_cert if self._tls_cert: cert, key = self._tls_cert kwargs['keyfile'] = key kwargs['certfile'] = cert self._socket = ssl.wap_socket(self._socket, **kwargs) data = protocol.build_prologue(self._cluster_id) self._socket.sendall(data) self._connected = True except Exception as e: LOGGER.exception('%s: Unable to connect to %s', e, self._address)