41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
"""Blueberry gRPC device controller.
|
|
|
|
This is a server to act as a mock device for testing the Blueberry gRPC
|
|
interface.
|
|
"""
|
|
|
|
from concurrent import futures
|
|
from absl import app
|
|
from absl import flags
|
|
|
|
import grpc
|
|
|
|
# Internal import
|
|
from blueberry.grpc import blueberry_device_controller_service
|
|
from blueberry.grpc.proto import blueberry_device_controller_pb2_grpc
|
|
|
|
|
|
_HOST = '[::]'
|
|
|
|
FLAGS = flags.FLAGS
|
|
flags.DEFINE_integer('port', 10000, 'port to listen on')
|
|
flags.DEFINE_integer('threads', 10, 'number of worker threads in thread pool')
|
|
|
|
|
|
def main(unused_argv):
|
|
server = grpc.server(
|
|
futures.ThreadPoolExecutor(max_workers=FLAGS.threads),
|
|
ports=(FLAGS.port,)) # pytype: disable=wrong-keyword-args
|
|
servicer = (
|
|
blueberry_device_controller_service.BlueberryDeviceControllerServicer())
|
|
blueberry_device_controller_pb2_grpc.add_BlueberryDeviceControllerServicer_to_server(
|
|
servicer, server)
|
|
server_creds = loas2.loas2_server_credentials()
|
|
server.add_secure_port(f'{_HOST}:{FLAGS.port}', server_creds)
|
|
server.start()
|
|
server.wait_for_termination()
|
|
|
|
|
|
if __name__ == '__main__':
|
|
app.run(main)
|