Beispiel #1
0
    def finalize_configured_target(self, invocation_id, target_id, config_id):
        """
        Finalize a resultstore invocation configured target

        Args:
            invocation_id (str): The invocation id for the configured target to finalize
            target_id (str): The target id for the configured target to finalize
            config_id (str): The confugration id for the configured target to finalize

        Returns:
            The response or error from the ResultStore v2 gRPC Stub Call
        """
        stub = resultstore_upload_pb2_grpc.ResultStoreUploadStub(
            self.credentials.get_active_channel())
        request = resultstore_upload_pb2.FinalizeConfiguredTargetRequest(
            authorization_token=self.authorization_token,
            name=get_name(invocation_id, target_id, config_id))
        try:
            response = stub.FinalizeConfiguredTarget(request)
        except grpc.RpcError as rpc_error:
            _LOGGER.error('Received error: %s', rpc_error)
            return rpc_error
        else:
            _LOGGER.info('Received message: %s', response)
            return response
Beispiel #2
0
    def batch_upload(self, resume_token, next_resume_token, invocation_id,
                     upload_requests):
        """
        Batch upload the provided upload_requests to the invocation

        Args:
            resume_token (bytes): Current resume token
            next_resume_token (bytes): Next resume token
            invocation_id (str): Invocation ID to upload to
            upload_requests (Sequence[UploadRequest]): List of UploadRequests to be uploaded

        Returns:
            The response or error from the ResultStore v2 gRPC Stub Call
        """
        invocation_name = 'invocations/' + invocation_id
        stub = resultstore_upload_pb2_grpc.ResultStoreUploadStub(
            self.credentials.get_active_channel())
        request = resultstore_upload_pb2.UploadBatchRequest(
            parent=invocation_name,
            resume_token=resume_token,
            next_resume_token=next_resume_token,
            authorization_token=self.authorization_token)
        request.upload_requests.extend(upload_requests)

        try:
            response = stub.UploadBatch(request)
        except grpc.RpcError as rpc_error:
            _LOGGER.error('Received error: %s', rpc_error)
            return rpc_error
        else:
            _LOGGER.info('Received message: %s', response)
            return response
Beispiel #3
0
    def update_target(self, target, update_fields):
        """
        Update a resultstore invocation target

        Args:
            target (google.devtools.resultstore.v2.Target): The Target
                to update
            update_fields (Sequence[str]): The list of paths specifying which fields to update

        Returns:
            The response or error from the ResultStore v2 gRPC Stub Call

        Raises:
            Error: If no update fields are provided
        """
        if not update_fields:
            raise Error('At least one update field must be provided.')
        stub = resultstore_upload_pb2_grpc.ResultStoreUploadStub(
            self.credentials.get_active_channel())
        request = resultstore_upload_pb2.UpdateTargetRequest(
            authorization_token=self.authorization_token)
        request.target.CopyFrom(target)
        request.update_mask.paths.extend(update_fields)
        try:
            response = stub.UpdateTarget(request)
        except grpc.RpcError as rpc_error:
            _LOGGER.error('Received error: %s', rpc_error)
            return rpc_error
        else:
            _LOGGER.info('Received message: %s', response)
            return response
Beispiel #4
0
    def create_action(self, action, parent=None):
        """
        Create a resultstore invocation configured target action

        Args:
            action (google.devtools.resultstore.v2.Action): The Action to create
            parent (str): The name of the parent resource of the Action to create

        Returns:
            The response or error from the ResultStore v2 gRPC Stub Call
        """
        stub = resultstore_upload_pb2_grpc.ResultStoreUploadStub(
            self.credentials.get_active_channel())
        request = resultstore_upload_pb2.CreateActionRequest(
            request_id=gen_new_uuid(),
            authorization_token=self.authorization_token,
            action_id=action.id.action_id,
        )
        request.action.CopyFrom(action)
        if parent is not None:
            request.parent = parent
            request.action.ClearField('id')
        else:
            request.parent = get_parent(action)
        try:
            response = stub.CreateAction(request)
        except grpc.RpcError as rpc_error:
            _LOGGER.error('Received error: %s', rpc_error)
            return rpc_error
        else:
            _LOGGER.info('Received message: %s', response)
            return response
Beispiel #5
0
    def create_target(self, target):
        """
        Create a resultstore invocation target

        Args:
            target (google.devtools.resultstore.v2.Target): The target to create

        Returns:
            The response or error from the ResultStore v2 gRPC Stub Call
        """
        stub = resultstore_upload_pb2_grpc.ResultStoreUploadStub(
            self.credentials.get_active_channel())
        request = resultstore_upload_pb2.CreateTargetRequest(
            request_id=gen_new_uuid(),
            authorization_token=self.authorization_token,
            parent=get_parent(target),
            target_id=target.id.target_id)
        request.target.CopyFrom(target)
        try:
            response = stub.CreateTarget(request)
        except grpc.RpcError as rpc_error:
            _LOGGER.error('Received error: %s', rpc_error)
            return rpc_error
        else:
            _LOGGER.info('Received message: %s', response)
            return response
Beispiel #6
0
    def create_configuration(self, config):
        """
        Create a resultstore invocation configuration

        Args:
            config (google.devtools.resultstore.v2.Configuration): The configuration to create

        Returns:
            The response or error from the ResultStore v2 gRPC Stub Call
        """
        stub = resultstore_upload_pb2_grpc.ResultStoreUploadStub(
            self.credentials.get_active_channel())
        request = resultstore_upload_pb2.CreateConfigurationRequest(
            request_id=gen_new_uuid(),
            authorization_token=self.authorization_token,
            parent=get_parent(config),
            config_id=config.id.configuration_id)
        request.configuration.CopyFrom(config)
        try:
            response = stub.CreateConfiguration(request)
        except grpc.RpcError as rpc_error:
            _LOGGER.error('Received error: %s', rpc_error)
            return rpc_error
        else:
            _LOGGER.info('Received message: %s', response)
            return response
Beispiel #7
0
    def create_invocation(self):
        """
        Create a resultstore invocation

        Args:
            resume_token (bytes): Initial resume token to put the invocation into batch mode

        Returns:
            The response or error from the ResultStore v2 gRPC Stub Call
        """
        request_id = gen_new_uuid()
        invocation = get_default_invocation()
        stub = resultstore_upload_pb2_grpc.ResultStoreUploadStub(
            self.credentials.get_active_channel())
        request = resultstore_upload_pb2.CreateInvocationRequest(
            request_id=request_id,
            authorization_token=self.authorization_token,
            invocation=invocation,
        )
        request.invocation.CopyFrom(invocation)
        request.invocation_id = invocation.id.invocation_id
        try:
            response = stub.CreateInvocation(request)
        except grpc.RpcError as rpc_error:
            _LOGGER.error('Received error: %s', rpc_error)
            return rpc_error
        else:
            _LOGGER.info('Received message: %s', response)
            return response