xref: /aosp_15_r20/external/autotest/server/cros/cellular/callbox_server.py (revision 9c5db1993ded3edbeafc8092d69fe5de2ee02df7)
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