From b663a1c1ec7ccdfe6136a6dc5e0f428ae0ae9f6a Mon Sep 17 00:00:00 2001 From: pbatko-da Date: Thu, 10 Mar 2022 14:48:28 +0100 Subject: [PATCH] WriteParticipantPruningService propagates rich error codes on prune failure [DPP-861] (#13238) changelog_begin changelog_end --- .../services/admin/ApiParticipantPruningService.scala | 3 ++- .../ledger/participant/state/kvutils/app/RunnerSpec.scala | 8 +++++++- .../daml/ledger/participant/state/v2/PruningResult.scala | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/ledger/participant-integration-api/src/main/scala/platform/apiserver/services/admin/ApiParticipantPruningService.scala b/ledger/participant-integration-api/src/main/scala/platform/apiserver/services/admin/ApiParticipantPruningService.scala index 6f46773eda82..c15522dcb225 100644 --- a/ledger/participant-integration-api/src/main/scala/platform/apiserver/services/admin/ApiParticipantPruningService.scala +++ b/ledger/participant-integration-api/src/main/scala/platform/apiserver/services/admin/ApiParticipantPruningService.scala @@ -23,6 +23,7 @@ import com.daml.platform.ApiOffset.ApiOffsetConverter import com.daml.platform.api.grpc.GrpcApiService import com.daml.platform.apiserver.services.logging import com.daml.platform.server.api.ValidationLogger +import com.daml.platform.server.api.validation.ErrorFactories import io.grpc.{ServerServiceDefinition, StatusRuntimeException} import scala.concurrent.{ExecutionContext, Future} @@ -110,7 +111,7 @@ final class ApiParticipantPruningService private ( .prune(pruneUpTo, submissionId, pruneAllDivulgedContracts) .asScala .flatMap { - case NotPruned(status) => Future.failed(status.asRuntimeException()) + case NotPruned(status) => Future.failed(ErrorFactories.grpcError(status)) case ParticipantPruned => logger.info(s"Pruned participant ledger up to ${pruneUpTo.toApiString} inclusively.") Future.successful(()) diff --git a/ledger/participant-state/kvutils/app/src/test/scala/com/daml/ledger/participant/state/kvutils/app/RunnerSpec.scala b/ledger/participant-state/kvutils/app/src/test/scala/com/daml/ledger/participant/state/kvutils/app/RunnerSpec.scala index 75292349c263..8255fc3ac58a 100644 --- a/ledger/participant-state/kvutils/app/src/test/scala/com/daml/ledger/participant/state/kvutils/app/RunnerSpec.scala +++ b/ledger/participant-state/kvutils/app/src/test/scala/com/daml/ledger/participant/state/kvutils/app/RunnerSpec.scala @@ -333,7 +333,13 @@ object RunnerSpec { submissionId: Ref.SubmissionId, pruneAllDivulgedContracts: Boolean, ): CompletionStage[PruningResult] = CompletableFuture.completedFuture( - PruningResult.NotPruned(Status.UNIMPLEMENTED.withDescription("prune")) + PruningResult.NotPruned( + com.google.rpc.Status + .newBuilder() + .setCode(Status.UNIMPLEMENTED.getCode.value()) + .setMessage("prune") + .build() + ) ) } }) diff --git a/ledger/participant-state/src/main/scala/com/daml/ledger/participant/state/v2/PruningResult.scala b/ledger/participant-state/src/main/scala/com/daml/ledger/participant/state/v2/PruningResult.scala index 0b5b1082e475..9dc131b8f7af 100644 --- a/ledger/participant-state/src/main/scala/com/daml/ledger/participant/state/v2/PruningResult.scala +++ b/ledger/participant-state/src/main/scala/com/daml/ledger/participant/state/v2/PruningResult.scala @@ -3,7 +3,7 @@ package com.daml.ledger.participant.state.v2 -import io.grpc.Status +import com.google.rpc.Status sealed trait PruningResult extends Product with Serializable