Loading buildgrid/_app/commands/cmd_cas.py +19 −14 Original line number Diff line number Diff line Loading @@ -27,8 +27,9 @@ from urllib.parse import urlparse import click import grpc from buildgrid.utils import merkle_maker, create_digest from buildgrid.client.cas import upload from buildgrid._protos.build.bazel.remote.execution.v2 import remote_execution_pb2, remote_execution_pb2_grpc from buildgrid.utils import merkle_maker from ..cli import pass_context Loading Loading @@ -66,27 +67,31 @@ def cli(context, remote, instance_name, client_key, client_cert, server_cert): @cli.command('upload-files', short_help="Upload files to the CAS server.") @click.argument('files', nargs=-1, type=click.File('rb'), required=True) @click.argument('files', nargs=-1, type=click.Path(exists=True, dir_okay=False), required=True) @pass_context def upload_files(context, files): stub = remote_execution_pb2_grpc.ContentAddressableStorageStub(context.channel) sent_digests, file_map = [], {} with upload(context.channel, instance=context.instance_name) as cas: for file_path in files: context.logger.info("Queueing {}".format(file_path)) requests = [] for file in files: chunk = file.read() requests.append(remote_execution_pb2.BatchUpdateBlobsRequest.Request( digest=create_digest(chunk), data=chunk)) file_digest = cas.upload_file(file_path, queue=True) request = remote_execution_pb2.BatchUpdateBlobsRequest(instance_name=context.instance_name, requests=requests) assert file_digest.hash and file_digest.size_bytes context.logger.info("Sending: {}".format(request)) response = stub.BatchUpdateBlobs(request) context.logger.info("Response: {}".format(response)) file_map[file_digest.hash] = file_path sent_digests.append(file_digest) for file_digest in sent_digests: file_path = file_map[file_digest.hash] if file_digest.ByteSize(): context.logger.info("{}: {}".format(file_path, file_digest.hash)) else: context.logger.info("{}: FAILED".format(file_path)) @cli.command('upload-dir', short_help="Upload a directory to the CAS server.") @click.argument('directory', nargs=1, type=click.Path(), required=True) @click.argument('directory', nargs=1, type=click.Path(exists=True, file_okay=False), required=True) @pass_context def upload_dir(context, directory): context.logger.info("Uploading directory to cas") Loading Loading
buildgrid/_app/commands/cmd_cas.py +19 −14 Original line number Diff line number Diff line Loading @@ -27,8 +27,9 @@ from urllib.parse import urlparse import click import grpc from buildgrid.utils import merkle_maker, create_digest from buildgrid.client.cas import upload from buildgrid._protos.build.bazel.remote.execution.v2 import remote_execution_pb2, remote_execution_pb2_grpc from buildgrid.utils import merkle_maker from ..cli import pass_context Loading Loading @@ -66,27 +67,31 @@ def cli(context, remote, instance_name, client_key, client_cert, server_cert): @cli.command('upload-files', short_help="Upload files to the CAS server.") @click.argument('files', nargs=-1, type=click.File('rb'), required=True) @click.argument('files', nargs=-1, type=click.Path(exists=True, dir_okay=False), required=True) @pass_context def upload_files(context, files): stub = remote_execution_pb2_grpc.ContentAddressableStorageStub(context.channel) sent_digests, file_map = [], {} with upload(context.channel, instance=context.instance_name) as cas: for file_path in files: context.logger.info("Queueing {}".format(file_path)) requests = [] for file in files: chunk = file.read() requests.append(remote_execution_pb2.BatchUpdateBlobsRequest.Request( digest=create_digest(chunk), data=chunk)) file_digest = cas.upload_file(file_path, queue=True) request = remote_execution_pb2.BatchUpdateBlobsRequest(instance_name=context.instance_name, requests=requests) assert file_digest.hash and file_digest.size_bytes context.logger.info("Sending: {}".format(request)) response = stub.BatchUpdateBlobs(request) context.logger.info("Response: {}".format(response)) file_map[file_digest.hash] = file_path sent_digests.append(file_digest) for file_digest in sent_digests: file_path = file_map[file_digest.hash] if file_digest.ByteSize(): context.logger.info("{}: {}".format(file_path, file_digest.hash)) else: context.logger.info("{}: FAILED".format(file_path)) @cli.command('upload-dir', short_help="Upload a directory to the CAS server.") @click.argument('directory', nargs=1, type=click.Path(), required=True) @click.argument('directory', nargs=1, type=click.Path(exists=True, file_okay=False), required=True) @pass_context def upload_dir(context, directory): context.logger.info("Uploading directory to cas") Loading