コード例 #1
0
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))
コード例 #2
0
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)