def main(prog_name=os.path.basename(sys.argv[0]), args=None): if args is None: args = sys.argv[1:] parser = create_parser(prog_name) args = parser.parse_args(args) if args.verbose is None: verbose_level = 0 else: verbose_level = args.verbose setup_loggers(verbose_level=verbose_level) if not args.command: parser.print_help() sys.exit(1) if args.command == 'json': do_json_command(args) elif args.command == 'show': do_show_command(args) elif args.command == 'list': do_list_command(args) elif args.command == 'delete': do_delete_command(args) elif args.command == "generate-test-enclave": do_generate_test_enclave_info_command(args) elif args.command == "generate-signing-key": do_generate_signing_key_command(args) elif args.command == "ping": do_ping_command(args) else: raise PdoCliException("invalid command: {}".format(args.command))
def do_json_command(args): json_file_name, wait = args.json_file, args.wait try: with open(json_file_name) as json_file: json_input = json_file.read().strip() json_file.close() except OSError as err: raise PdoCliException('Failed to read json inout file: {}'.format(str(err))) address_family = "" if args.enclave: address_family = PdoAddressHelper().get_enclave_registry_family_name() elif args.contract: address_family = PdoAddressHelper().get_contract_registry_family_name() elif args.ccl: address_family = PdoAddressHelper().get_ccl_family_name() print(address_family) enclave_private_key = "" if args.enclave_keyfile: try: with open(args.enclave_keyfile) as fd: enclave_private_key = fd.read().strip() fd.close() except OSError as err: raise PdoCliException( 'Failed to read private key: {}'.format(str(err))) client = PdoCliClient( url=DEFAULT_URL if args.url is None else args.url, verbose=args.verbose > 0, keyfile=_get_keyfile(args), enclave_signing_private_key=enclave_private_key) client.execute_json_transaction(json_input, address_family, wait)