1*9c5db199SXin Li# Copyright 2021 The Chromium OS Authors. All rights reserved. 2*9c5db199SXin Li# Use of this source code is governed by a BSD-style license that can be 3*9c5db199SXin Li# found in the LICENSE file. 4*9c5db199SXin Li 5*9c5db199SXin Liimport grpc 6*9c5db199SXin Li 7*9c5db199SXin Lifrom chromiumos.test.api import callbox_service_pb2 as cbp 8*9c5db199SXin Lifrom chromiumos.test.api import callbox_service_pb2_grpc as cbs 9*9c5db199SXin Li 10*9c5db199SXin Lifrom concurrent import futures 11*9c5db199SXin Li 12*9c5db199SXin Li 13*9c5db199SXin Liclass CallBoxServer(cbs.CallboxServiceServicer): 14*9c5db199SXin Li """Implements the callbox_service.proto API""" 15*9c5db199SXin Li 16*9c5db199SXin Li def CheckHealth(self, request, context): 17*9c5db199SXin Li """ Basic endpoint to check the service is up """ 18*9c5db199SXin Li return cbp.CheckHealthResponse() 19*9c5db199SXin Li 20*9c5db199SXin Li 21*9c5db199SXin Lidef serve(): 22*9c5db199SXin Li """Start/run the server with a single worker thread""" 23*9c5db199SXin Li server = grpc.server(futures.ThreadPoolExecutor(max_workers=1)) 24*9c5db199SXin Li cbs.add_CallboxServiceServicer_to_server(CallBoxServer(), server) 25*9c5db199SXin Li server.add_insecure_port('[::]:50051') 26*9c5db199SXin Li server.start() 27*9c5db199SXin Li return server 28*9c5db199SXin Li 29*9c5db199SXin Li 30*9c5db199SXin Liif __name__ == '__main__': 31*9c5db199SXin Li server = serve() 32*9c5db199SXin Li server.wait_for_termination() 33