コード例 #1
0
ファイル: tx.py プロジェクト: Incubaid/pyrakoon
    def connectionMade(self):
        prologue = protocol.build_prologue(self._cluster_id)
        self.transport.write(prologue)

        self.connected = True

        return stateful.StatefulProtocol.connectionMade(self)
コード例 #2
0
    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)
コード例 #3
0
ファイル: __init__.py プロジェクト: Incubaid/pyrakoon
    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)
コード例 #4
0
    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
コード例 #5
0
ファイル: test_tx.py プロジェクト: Incubaid/pyrakoon
    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
コード例 #6
0
    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
コード例 #7
0
ファイル: test_tx.py プロジェクト: Incubaid/pyrakoon
    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
コード例 #8
0
    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)
コード例 #9
0
ファイル: compat.py プロジェクト: Incubaid/pyrakoon
    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)
コード例 #10
0
ファイル: __init__.py プロジェクト: openvstorage/pyrakoon
    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)
コード例 #11
0
    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
コード例 #12
0
    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
コード例 #13
0
    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
コード例 #14
0
ファイル: test_tx.py プロジェクト: Incubaid/pyrakoon
    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
コード例 #15
0
    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
コード例 #16
0
ファイル: compat.py プロジェクト: DarumasLegs/pyrakoon
    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)