def test_annotate(): impl = NoopAnnotateCommunicationService() host = 'localhost' port = find_port() timeout = 5 comm_id = '1-2-3-4' comm = create_comm(comm_id) comm_uuid_uuidString = comm.uuid.uuidString comm_metadata_tool = comm.metadata.tool comm_metadata_timestamp = comm.metadata.timestamp with SubprocessAnnotateCommunicationServiceWrapper(impl, host, port, timeout=timeout): transport = TSocket.TSocket(host, port) transport = TTransport.TFramedTransport(transport) protocol = TCompactProtocol.TCompactProtocolAccelerated(transport) cli = AnnotateCommunicationService.Client(protocol) transport.open() res = cli.annotate(comm) transport.close() assert res.id == comm_id assert res.uuid.uuidString == comm_uuid_uuidString assert res.metadata.tool == comm_metadata_tool assert res.metadata.timestamp == comm_metadata_timestamp
def invoke(self, endpointUrl='', params=[]): ''' invoke endpoint :return: ''' result = None transport = None try: # Make socket transport = TSocket.TSocket(self.url.host, self.url.port) # Buffering is critical. Raw sockets are very slow transport = TTransport.TBufferedTransport(transport) # Wrap in a protocol protocol = TCompactProtocol.TCompactProtocolAccelerated(transport) # Create a client to use the protocol encoder client = BoarpcService.Client(protocol) # Connect! transport.open() endpointMetas = endpointUrl.split('.') result = client.dispatcher(NetUtils.getIp(), endpointMetas[0], endpointMetas[1], endpointMetas[2], params) finally: if transport is not None: transport.close() return result
def test_search_communications(): impl = FooSearch() host = 'localhost' port = find_port() timeout = 5 terms = ['foo', 'bar'] query = SearchQuery(type=SearchType.COMMUNICATIONS, terms=[t for t in terms]) with SubprocessSearchServiceWrapper(impl, host, port, timeout=timeout): transport = TSocket.TSocket(host, port) transport = TTransport.TFramedTransport(transport) protocol = TCompactProtocol.TCompactProtocolAccelerated(transport) cli = SearchService.Client(protocol) transport.open() res = cli.search(query) transport.close() assert res.uuid.uuidString == '12345678-1234-5678-1234-567812345678' assert len(res.searchResultItems) == 2 assert res.searchResultItems[0].communicationId == 'foo' assert res.searchResultItems[0].score == 42. assert res.searchResultItems[1].communicationId == 'bar' assert res.searchResultItems[1].score == 42. assert res.metadata.tool == 'Foo Search'
def Auth(self, isopen=True): self.transport = THttpClient.THttpClient(self.host) self.transport.setCustomHeaders(self.headers) self.protocol = TCompactProtocol.TCompactProtocolAccelerated( self.transport) self._auth = AuthService.Client(self.protocol) if isopen: self.transport.open() return self._auth
def is_accelerated(): ''' Return whether this concrete-python installation has accelerated serialization. Returns: True if this concrete-python installation is accelerated, False otherwise ''' try: transport = TTransport.TMemoryBuffer() TCompactProtocol.TCompactProtocolAccelerated(transport, fallback=False) return True except Exception: return False
def test_get_metadata(): impl = NoopAnnotateCommunicationService() host = 'localhost' port = find_port() timeout = 5 with SubprocessAnnotateCommunicationServiceWrapper(impl, host, port, timeout=timeout): transport = TSocket.TSocket(host, port) transport = TTransport.TFramedTransport(transport) protocol = TCompactProtocol.TCompactProtocolAccelerated(transport) cli = AnnotateCommunicationService.Client(protocol) transport.open() metadata = cli.getMetadata() transport.close() assert NoopAnnotateCommunicationService.METADATA_TOOL == metadata.tool
#!/usr/bin/env python import sys from thrift.transport import TTransport from thrift.protocol import TCompactProtocol try: transport = TTransport.TMemoryBuffer() TCompactProtocol.TCompactProtocolAccelerated(transport, fallback=False) sys.stderr.write('Thrift is accelerated\n') sys.exit(0) except Exception: sys.stderr.write('ERROR: Thrift is NOT accelerated\n') sys.exit(-1)