()
| 117 | |
| 118 | |
| 119 | def main(): |
| 120 | parser = argparse.ArgumentParser() |
| 121 | subcommands = parser.add_subparsers() |
| 122 | |
| 123 | cmd_list = subcommands.add_parser('list') |
| 124 | cmd_list.set_defaults(action='list') |
| 125 | _add_common_arguments(cmd_list) |
| 126 | cmd_list.add_argument('-l', '--list', action='store_true', |
| 127 | help="Print more details.") |
| 128 | |
| 129 | cmd_do = subcommands.add_parser('do') |
| 130 | cmd_do.set_defaults(action='do') |
| 131 | _add_common_arguments(cmd_do) |
| 132 | cmd_do.add_argument('action_type', type=str, |
| 133 | help="The action type to run.") |
| 134 | |
| 135 | cmd_put = subcommands.add_parser('put') |
| 136 | cmd_put.set_defaults(action='put') |
| 137 | _add_common_arguments(cmd_put) |
| 138 | cmd_put.add_argument('file', type=str, |
| 139 | help="CSV file to upload.") |
| 140 | |
| 141 | cmd_get = subcommands.add_parser('get') |
| 142 | cmd_get.set_defaults(action='get') |
| 143 | _add_common_arguments(cmd_get) |
| 144 | cmd_get_descriptor = cmd_get.add_mutually_exclusive_group(required=True) |
| 145 | cmd_get_descriptor.add_argument('-p', '--path', type=str, action='append', |
| 146 | help="The path for the descriptor.") |
| 147 | cmd_get_descriptor.add_argument('-c', '--command', type=str, |
| 148 | help="The command for the descriptor.") |
| 149 | |
| 150 | args = parser.parse_args() |
| 151 | if not hasattr(args, 'action'): |
| 152 | parser.print_help() |
| 153 | sys.exit(1) |
| 154 | |
| 155 | commands = { |
| 156 | 'list': list_flights, |
| 157 | 'do': do_action, |
| 158 | 'get': get_flight, |
| 159 | 'put': push_data, |
| 160 | } |
| 161 | host, port = args.host.split(':') |
| 162 | port = int(port) |
| 163 | scheme = "grpc+tcp" |
| 164 | connection_args = {} |
| 165 | if args.tls: |
| 166 | scheme = "grpc+tls" |
| 167 | if args.tls_roots: |
| 168 | with open(args.tls_roots, "rb") as root_certs: |
| 169 | connection_args["tls_root_certs"] = root_certs.read() |
| 170 | if args.mtls: |
| 171 | with open(args.mtls[0], "rb") as cert_file: |
| 172 | tls_cert_chain = cert_file.read() |
| 173 | with open(args.mtls[1], "rb") as key_file: |
| 174 | tls_private_key = key_file.read() |
| 175 | connection_args["cert_chain"] = tls_cert_chain |
| 176 | connection_args["private_key"] = tls_private_key |
no test coverage detected