()
| 118 | |
| 119 | |
| 120 | def main(): |
| 121 | parser = argparse.ArgumentParser() |
| 122 | parser.add_argument("--host", type=str, default="localhost", |
| 123 | help="Address or hostname to listen on") |
| 124 | parser.add_argument("--port", type=int, default=5005, |
| 125 | help="Port number to listen on") |
| 126 | parser.add_argument("--tls", nargs=2, default=None, |
| 127 | metavar=('CERTFILE', 'KEYFILE'), |
| 128 | help="Enable transport-level security") |
| 129 | parser.add_argument("--verify_client", type=bool, default=False, |
| 130 | help="enable mutual TLS and verify the client if True") |
| 131 | |
| 132 | args = parser.parse_args() |
| 133 | tls_certificates = [] |
| 134 | scheme = "grpc+tcp" |
| 135 | if args.tls: |
| 136 | scheme = "grpc+tls" |
| 137 | with open(args.tls[0], "rb") as cert_file: |
| 138 | tls_cert_chain = cert_file.read() |
| 139 | with open(args.tls[1], "rb") as key_file: |
| 140 | tls_private_key = key_file.read() |
| 141 | tls_certificates.append((tls_cert_chain, tls_private_key)) |
| 142 | |
| 143 | location = f"{scheme}://{args.host}:{args.port}" |
| 144 | |
| 145 | server = FlightServer(args.host, location, |
| 146 | tls_certificates=tls_certificates, |
| 147 | verify_client=args.verify_client) |
| 148 | print("Serving on", location) |
| 149 | server.serve() |
| 150 | |
| 151 | |
| 152 | if __name__ == '__main__': |
no test coverage detected