def Serve(self, port, pem_dir): """ Sets up the gRPC Server with insecure connection on port :param port: port to listen on. :param pem_dir: Directory including certificates :return: None """ # Create gRPC server server = grpc.server(futures.ThreadPoolExecutor(max_workers=10)) SSE.add_ConnectorServicer_to_server(self, server) if pem_dir: # Secure connection with open(os.path.join(pem_dir, 'sse_server_key.pem'), 'rb') as f: private_key = f.read() with open(os.path.join(pem_dir, 'sse_server_cert.pem'), 'rb') as f: cert_chain = f.read() with open(os.path.join(pem_dir, 'root_cert.pem'), 'rb') as f: root_cert = f.read() credentials = grpc.ssl_server_credentials([(private_key, cert_chain)], root_cert, True) server.add_secure_port('[::]:{}'.format(port), credentials) logging.info('*** Running server in secure mode on port: {} ***'.format(port)) else: # Insecure connection server.add_insecure_port('[::]:{}'.format(port)) logging.info('*** Running server in insecure mode on port: {} ***'.format(port)) # Start gRPC server server.start() try: while True: time.sleep(_ONE_DAY_IN_SECONDS) except KeyboardInterrupt: server.stop(0)
def Serve(self, port, key, certificate): """ Server :param port: port to listen on. :param key: key to use for secure mode. :param certificate: certificate to use for secure mode. :return: None """ server = grpc.server(futures.ThreadPoolExecutor(max_workers=10)) SSE.add_ConnectorServicer_to_server(self, server) if key and certificate: with open(key, 'rb') as f: private_key = f.read() with open(certificate, 'rb') as f: cert_chain = f.read() credentials = grpc.ssl_server_credentials([(private_key, cert_chain)]) server.add_secure_port('[::]:{}'.format(port), credentials) logging.info( '*** Running server in secure mode on port: {} ***'.format( port)) else: server.add_insecure_port('[::]:{}'.format(port)) logging.info( '*** Running server in insecure mode on port: {} ***'.format( port)) server.start() try: while True: time.sleep(_ONE_DAY_IN_SECONDS) except KeyboardInterrupt: server.stop(0)
def Serve(self, port, pem_dir): """ Server :param port: port to listen on. :param pem_dir: Directory including certificates :return: None """ server = grpc.server(futures.ThreadPoolExecutor( max_workers=10)) ## TW : Returns a server than can service RPCs SSE.add_ConnectorServicer_to_server( self, server ) ## TW: This basically maps the functions and the "GetCapabilities", "ExecuteFunction" and "ExecuteScript" from the servicer to the gRPC server. if pem_dir: ## TW: If there are any authentication certificates: # Secure connection with open(os.path.join(pem_dir, 'sse_server_key.pem'), 'rb') as f: private_key = f.read() with open(os.path.join(pem_dir, 'sse_server_cert.pem'), 'rb') as f: cert_chain = f.read() with open(os.path.join(pem_dir, 'root_cert.pem'), 'rb') as f: root_cert = f.read() credentials = grpc.ssl_server_credentials( [(private_key, cert_chain)], root_cert, True) server.add_secure_port('[::]:{}'.format(port), credentials) logging.info( '*** Running server in secure mode on port: {} ***'.format( port)) else: # Insecure connection server.add_insecure_port('[::]:{}'.format(port)) logging.info( '*** Running server in insecure mode on port: {} ***'.format( port)) server.start( ) ## TW: Start the server (that will be used to service RPCs) try: while True: time.sleep(_ONE_DAY_IN_SECONDS) except KeyboardInterrupt: server.stop(0)
def Serve(self, port, pem_dir): """ Server :param port: port to listen on. :param pem_dir: Directory including certificates :return: None """ server = grpc.server(futures.ThreadPoolExecutor(max_workers=10),\ options=[('grpc.max_message_length', _MAX_MESSAGE_LENGTH),('grpc.max_send_message_length', _MAX_MESSAGE_LENGTH),\ ('grpc.max_receive_message_length', _MAX_MESSAGE_LENGTH),('grpc.max_metadata_size', _MAX_MESSAGE_LENGTH)]) SSE.add_ConnectorServicer_to_server(self, server) if pem_dir: # Secure connection with open(os.path.join(pem_dir, 'sse_server_key.pem'), 'rb') as f: private_key = f.read() with open(os.path.join(pem_dir, 'sse_server_cert.pem'), 'rb') as f: cert_chain = f.read() with open(os.path.join(pem_dir, 'root_cert.pem'), 'rb') as f: root_cert = f.read() credentials = grpc.ssl_server_credentials( [(private_key, cert_chain)], root_cert, True) server.add_secure_port('[::]:{}'.format(port), credentials) logging.info( '*** Running server in secure mode on port: {} ***'.format( port)) else: # Insecure connection server.add_insecure_port('[::]:{}'.format(port)) logging.info( '*** Running server in insecure mode on port: {} ***'.format( port)) server.start() try: while True: time.sleep(_ONE_DAY_IN_SECONDS) except KeyboardInterrupt: server.stop(0)