Rename Completion.deduplication_time to deduplication_duration [KVL-1057] (#10900)

* Rename Completion.deduplication_time to deduplication_duration

CHANGELOG_BEGIN
CHANGELOG_END

* Breaking protobuf change: regenerate `buf` image

Breaking-Proto: true

* Re-compute sha256s of migrations

* Fix expected error message

Co-authored-by: Fabio Tudone <fabio.tudone@digitalasset.com>
This commit is contained in:
Gerolf Seitz 2021-09-16 12:41:45 +02:00 committed by GitHub
parent 8e22bb6b2d
commit 8a391189a6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 108 additions and 103 deletions

Binary file not shown.

View File

@ -69,6 +69,6 @@ message Completion {
// It is measured in record time of completions. // It is measured in record time of completions.
// //
// Must be non-negative. // Must be non-negative.
google.protobuf.Duration deduplication_time = 9; google.protobuf.Duration deduplication_duration = 9;
} }
} }

View File

@ -146,7 +146,7 @@ trait FieldValidations {
val result = Duration.ofSeconds(duration.seconds, duration.nanos.toLong) val result = Duration.ofSeconds(duration.seconds, duration.nanos.toLong)
validateDuration( validateDuration(
result, result,
s"The given deduplication time of $result exceeds the maximum deduplication time of $maxDeduplicationDuration", s"The given deduplication duration of $result exceeds the maximum deduplication time of $maxDeduplicationDuration",
).map(DeduplicationPeriod.DeduplicationDuration) ).map(DeduplicationPeriod.DeduplicationDuration)
} }

View File

@ -39,7 +39,7 @@ class SubmitRequestValidatorTest
val label = "label" val label = "label"
val constructor = "constructor" val constructor = "constructor"
val submitter = "party" val submitter = "party"
val deduplicationTime = new Duration().withSeconds(10) val deduplicationDuration = new Duration().withSeconds(10)
val command = Command.of( val command = Command.of(
Command.Command.Create( Command.Command.Create(
CreateCommand.of( CreateCommand.of(
@ -62,7 +62,7 @@ class SubmitRequestValidatorTest
commandId = commandId.unwrap, commandId = commandId.unwrap,
party = submitter, party = submitter,
commands = Seq(command), commands = Seq(command),
deduplicationPeriod = DeduplicationPeriodProto.DeduplicationTime(deduplicationTime), deduplicationPeriod = DeduplicationPeriodProto.DeduplicationTime(deduplicationDuration),
minLedgerTimeAbs = None, minLedgerTimeAbs = None,
minLedgerTimeRel = None, minLedgerTimeRel = None,
) )
@ -74,8 +74,8 @@ class SubmitRequestValidatorTest
val timeDelta = java.time.Duration.ofSeconds(1) val timeDelta = java.time.Duration.ofSeconds(1)
val maxDeduplicationDuration = java.time.Duration.ofDays(1) val maxDeduplicationDuration = java.time.Duration.ofDays(1)
val deduplicationDuration = java.time.Duration.ofSeconds( val deduplicationDuration = java.time.Duration.ofSeconds(
api.deduplicationTime.seconds, api.deduplicationDuration.seconds,
api.deduplicationTime.nanos.toLong, api.deduplicationDuration.nanos.toLong,
) )
val emptyCommands = ApiCommands( val emptyCommands = ApiCommands(
@ -335,7 +335,7 @@ class SubmitRequestValidatorTest
} }
} }
"not allow negative deduplication time" in { "not allow negative deduplication duration" in {
forAll( forAll(
Table( Table(
"deduplication period", "deduplication period",
@ -357,7 +357,7 @@ class SubmitRequestValidatorTest
} }
} }
"not allow deduplication time exceeding maximum deduplication time" in { "not allow deduplication time exceeding maximum deduplication duration" in {
val durationSecondsExceedingMax = val durationSecondsExceedingMax =
internal.maxDeduplicationDuration.plusSeconds(1).getSeconds internal.maxDeduplicationDuration.plusSeconds(1).getSeconds
forAll( forAll(
@ -379,7 +379,7 @@ class SubmitRequestValidatorTest
Some(internal.maxDeduplicationDuration), Some(internal.maxDeduplicationDuration),
), ),
INVALID_ARGUMENT, INVALID_ARGUMENT,
s"Invalid field deduplication_period: The given deduplication time of ${java.time.Duration s"Invalid field deduplication_period: The given deduplication duration of ${java.time.Duration
.ofSeconds(durationSecondsExceedingMax)} exceeds the maximum deduplication time of ${internal.maxDeduplicationDuration}", .ofSeconds(durationSecondsExceedingMax)} exceeds the maximum deduplication time of ${internal.maxDeduplicationDuration}",
) )
} }

View File

@ -50,7 +50,7 @@ private[testtool] abstract class CommandDeduplicationBase(
testGivenAllParticipants( testGivenAllParticipants(
s"${testNamingPrefix}SimpleDeduplicationBasic", s"${testNamingPrefix}SimpleDeduplicationBasic",
"Deduplicate commands within the deduplication time window", "Deduplicate commands within the deduplication duration window",
allocate(SingleParty), allocate(SingleParty),
runConcurrently = false, runConcurrently = false,
)(implicit ec => )(implicit ec =>

View File

@ -79,7 +79,7 @@ abstract class KVCommandDeduplicationBase(
// The [[Completion.deduplicationPeriod]] is set only for append-only ledgers // The [[Completion.deduplicationPeriod]] is set only for append-only ledgers
if (deduplicationFeatures.appendOnlySchema) { if (deduplicationFeatures.appendOnlySchema) {
val expectedCompletionDeduplicationPeriod = val expectedCompletionDeduplicationPeriod =
Completion.DeduplicationPeriod.DeduplicationTime( Completion.DeduplicationPeriod.DeduplicationDuration(
maxDeduplicationDuration.asProtobuf maxDeduplicationDuration.asProtobuf
) )
assert( assert(

View File

@ -1 +1 @@
b91197c8bc9b1942ad70fcae54aa8b9ca1b0bf380e46b08c038a9bf3764fbc35 86ded6839752d76bb3e3e6cde7f4ec103dea6cee6382b6695de95e84dd74d2da

View File

@ -120,8 +120,8 @@ CREATE TABLE participant_command_completions (
-- 2. a duration (split into two columns, seconds and nanos, mapping protobuf's 1:1) -- 2. a duration (split into two columns, seconds and nanos, mapping protobuf's 1:1)
-- 3. an initial timestamp -- 3. an initial timestamp
deduplication_offset VARCHAR, deduplication_offset VARCHAR,
deduplication_time_seconds BIGINT, deduplication_duration_seconds BIGINT,
deduplication_time_nanos INT, deduplication_duration_nanos INT,
deduplication_start BIGINT, deduplication_start BIGINT,
-- The three columns below are `NULL` if the completion is for an accepted transaction. -- The three columns below are `NULL` if the completion is for an accepted transaction.
-- The `rejection_status_details` column contains a Protocol-Buffers-serialized message of type -- The `rejection_status_details` column contains a Protocol-Buffers-serialized message of type

View File

@ -1 +1 @@
1d1d77ce01814bbfabe592ef224193b05743fc6d1459b487fcc7fc527110b2c9 fe940b22140c0a1da0a3e54c0087c8872828e4cb08bdcc30bbaa1db84f98b62b

View File

@ -123,10 +123,10 @@ CREATE TABLE participant_command_completions
-- 1. an initial offset -- 1. an initial offset
-- 2. a duration (split into two columns, seconds and nanos, mapping protobuf's 1:1) -- 2. a duration (split into two columns, seconds and nanos, mapping protobuf's 1:1)
-- 3. an initial timestamp -- 3. an initial timestamp
deduplication_offset VARCHAR2(4000), deduplication_offset VARCHAR2(4000),
deduplication_time_seconds NUMBER, deduplication_duration_seconds NUMBER,
deduplication_time_nanos NUMBER, deduplication_duration_nanos NUMBER,
deduplication_start NUMBER, deduplication_start NUMBER,
submitters CLOB NOT NULL CONSTRAINT ensure_json_submitters CHECK (submitters IS JSON), submitters CLOB NOT NULL CONSTRAINT ensure_json_submitters CHECK (submitters IS JSON),
command_id NVARCHAR2(1000) NOT NULL, command_id NVARCHAR2(1000) NOT NULL,

View File

@ -1 +1 @@
281330bf9e361ecf12a2160c93ba3ce006a5a40564b6e5cf987b3ead71009ddb 0b505bc0df2ffb4815a252f470ff820328c32fec4fdab46921c07674af852740

View File

@ -15,6 +15,6 @@ ALTER TABLE participant_command_completions
-- 2. an initial timestamp -- 2. an initial timestamp
-- 3. a duration (split into two columns, seconds and nanos, mapping protobuf's 1:1) -- 3. a duration (split into two columns, seconds and nanos, mapping protobuf's 1:1)
ADD COLUMN deduplication_offset text, ADD COLUMN deduplication_offset text,
ADD COLUMN deduplication_time_seconds bigint, ADD COLUMN deduplication_duration_seconds bigint,
ADD COLUMN deduplication_time_nanos integer, ADD COLUMN deduplication_duration_nanos integer,
ADD COLUMN deduplication_start timestamp; ADD COLUMN deduplication_start timestamp;

View File

@ -30,8 +30,8 @@ private[platform] object CompletionFromTransaction {
applicationId: String, applicationId: String,
maybeSubmissionId: Option[String] = None, maybeSubmissionId: Option[String] = None,
maybeDeduplicationOffset: Option[String] = None, maybeDeduplicationOffset: Option[String] = None,
maybeDeduplicationTimeSeconds: Option[Long] = None, maybeDeduplicationDurationSeconds: Option[Long] = None,
maybeDeduplicationTimeNanos: Option[Int] = None, maybeDeduplicationDurationNanos: Option[Int] = None,
): CompletionStreamResponse = ): CompletionStreamResponse =
CompletionStreamResponse.of( CompletionStreamResponse.of(
checkpoint = Some(toApiCheckpoint(recordTime, offset)), checkpoint = Some(toApiCheckpoint(recordTime, offset)),
@ -43,8 +43,8 @@ private[platform] object CompletionFromTransaction {
maybeStatus = Some(OkStatus), maybeStatus = Some(OkStatus),
maybeSubmissionId = maybeSubmissionId, maybeSubmissionId = maybeSubmissionId,
maybeDeduplicationOffset = maybeDeduplicationOffset, maybeDeduplicationOffset = maybeDeduplicationOffset,
maybeDeduplicationTimeSeconds = maybeDeduplicationTimeSeconds, maybeDeduplicationDurationSeconds = maybeDeduplicationDurationSeconds,
maybeDeduplicationTimeNanos = maybeDeduplicationTimeNanos, maybeDeduplicationDurationNanos = maybeDeduplicationDurationNanos,
) )
), ),
) )
@ -57,8 +57,8 @@ private[platform] object CompletionFromTransaction {
applicationId: String, applicationId: String,
maybeSubmissionId: Option[String] = None, maybeSubmissionId: Option[String] = None,
maybeDeduplicationOffset: Option[String] = None, maybeDeduplicationOffset: Option[String] = None,
maybeDeduplicationTimeSeconds: Option[Long] = None, maybeDeduplicationDurationSeconds: Option[Long] = None,
maybeDeduplicationTimeNanos: Option[Int] = None, maybeDeduplicationDurationNanos: Option[Int] = None,
): CompletionStreamResponse = ): CompletionStreamResponse =
CompletionStreamResponse.of( CompletionStreamResponse.of(
checkpoint = Some(toApiCheckpoint(recordTime, offset)), checkpoint = Some(toApiCheckpoint(recordTime, offset)),
@ -70,8 +70,8 @@ private[platform] object CompletionFromTransaction {
maybeStatus = Some(status), maybeStatus = Some(status),
maybeSubmissionId = maybeSubmissionId, maybeSubmissionId = maybeSubmissionId,
maybeDeduplicationOffset = maybeDeduplicationOffset, maybeDeduplicationOffset = maybeDeduplicationOffset,
maybeDeduplicationTimeSeconds = maybeDeduplicationTimeSeconds, maybeDeduplicationDurationSeconds = maybeDeduplicationDurationSeconds,
maybeDeduplicationTimeNanos = maybeDeduplicationTimeNanos, maybeDeduplicationDurationNanos = maybeDeduplicationDurationNanos,
) )
), ),
) )
@ -89,8 +89,8 @@ private[platform] object CompletionFromTransaction {
maybeStatus: Option[StatusProto], maybeStatus: Option[StatusProto],
maybeSubmissionId: Option[String], maybeSubmissionId: Option[String],
maybeDeduplicationOffset: Option[String], maybeDeduplicationOffset: Option[String],
maybeDeduplicationTimeSeconds: Option[Long], maybeDeduplicationDurationSeconds: Option[Long],
maybeDeduplicationTimeNanos: Option[Int], maybeDeduplicationDurationNanos: Option[Int],
): Completion = { ): Completion = {
val completionWithMandatoryFields = Completion( val completionWithMandatoryFields = Completion(
commandId = commandId, commandId = commandId,
@ -100,8 +100,8 @@ private[platform] object CompletionFromTransaction {
) )
val maybeDeduplicationPeriod = toApiDeduplicationPeriod( val maybeDeduplicationPeriod = toApiDeduplicationPeriod(
maybeDeduplicationOffset = maybeDeduplicationOffset, maybeDeduplicationOffset = maybeDeduplicationOffset,
maybeDeduplicationTimeSeconds = maybeDeduplicationTimeSeconds, maybeDeduplicationDurationSeconds = maybeDeduplicationDurationSeconds,
maybeDeduplicationTimeNanos = maybeDeduplicationTimeNanos, maybeDeduplicationDurationNanos = maybeDeduplicationDurationNanos,
) )
(maybeSubmissionId, maybeDeduplicationPeriod) match { (maybeSubmissionId, maybeDeduplicationPeriod) match {
case (Some(submissionId), Some(deduplicationPeriod)) => case (Some(submissionId), Some(deduplicationPeriod)) =>
@ -124,27 +124,30 @@ private[platform] object CompletionFromTransaction {
private def toApiDeduplicationPeriod( private def toApiDeduplicationPeriod(
maybeDeduplicationOffset: Option[String], maybeDeduplicationOffset: Option[String],
maybeDeduplicationTimeSeconds: Option[Long], maybeDeduplicationDurationSeconds: Option[Long],
maybeDeduplicationTimeNanos: Option[Int], maybeDeduplicationDurationNanos: Option[Int],
): Option[Completion.DeduplicationPeriod] = ): Option[Completion.DeduplicationPeriod] =
// The only invariant that should hold, considering legacy data, is that either // The only invariant that should hold, considering legacy data, is that either
// the deduplication time seconds and nanos are both populated, or neither is. // the deduplication duration seconds and nanos are both populated, or neither is.
(maybeDeduplicationOffset, (maybeDeduplicationTimeSeconds, maybeDeduplicationTimeNanos)) match { (
maybeDeduplicationOffset,
(maybeDeduplicationDurationSeconds, maybeDeduplicationDurationNanos),
) match {
case (None, (None, None)) => None case (None, (None, None)) => None
case (Some(offset), _) => case (Some(offset), _) =>
Some(Completion.DeduplicationPeriod.DeduplicationOffset(offset)) Some(Completion.DeduplicationPeriod.DeduplicationOffset(offset))
case (_, (Some(deduplicationTimeSeconds), Some(deduplicationTimeNanos))) => case (_, (Some(deduplicationDurationSeconds), Some(deduplicationDurationNanos))) =>
Some( Some(
Completion.DeduplicationPeriod.DeduplicationTime( Completion.DeduplicationPeriod.DeduplicationDuration(
new Duration( new Duration(
seconds = deduplicationTimeSeconds, seconds = deduplicationDurationSeconds,
nanos = deduplicationTimeNanos, nanos = deduplicationDurationNanos,
) )
) )
) )
case _ => case _ =>
throw new IllegalArgumentException( throw new IllegalArgumentException(
"One of deduplication time seconds and nanos has been provided " + "One of deduplication duration seconds and nanos has been provided " +
"but they must be either both provided or both absent" "but they must be either both provided or both absent"
) )
} }

View File

@ -128,8 +128,8 @@ object DbDto {
rejection_status_details: Option[Array[Byte]], rejection_status_details: Option[Array[Byte]],
submission_id: Option[String], submission_id: Option[String],
deduplication_offset: Option[String], deduplication_offset: Option[String],
deduplication_time_seconds: Option[Long], deduplication_duration_seconds: Option[Long],
deduplication_time_nanos: Option[Int], deduplication_duration_nanos: Option[Int],
deduplication_start: Option[Long], deduplication_start: Option[Long],
) extends DbDto ) extends DbDto

View File

@ -268,7 +268,7 @@ object UpdateToDbDto {
transactionId: Option[Ref.TransactionId], transactionId: Option[Ref.TransactionId],
completionInfo: CompletionInfo, completionInfo: CompletionInfo,
): DbDto.CommandCompletion = { ): DbDto.CommandCompletion = {
val (deduplicationOffset, deduplicationTimeSeconds, deduplicationTimeNanos) = val (deduplicationOffset, deduplicationDurationSeconds, deduplicationDurationNanos) =
completionInfo.optDeduplicationPeriod completionInfo.optDeduplicationPeriod
.map { .map {
case DeduplicationOffset(offset) => case DeduplicationOffset(offset) =>
@ -290,8 +290,8 @@ object UpdateToDbDto {
rejection_status_details = None, rejection_status_details = None,
submission_id = completionInfo.submissionId, submission_id = completionInfo.submissionId,
deduplication_offset = deduplicationOffset, deduplication_offset = deduplicationOffset,
deduplication_time_seconds = deduplicationTimeSeconds, deduplication_duration_seconds = deduplicationDurationSeconds,
deduplication_time_nanos = deduplicationTimeNanos, deduplication_duration_nanos = deduplicationDurationNanos,
deduplication_start = None, deduplication_start = None,
) )
} }

View File

@ -45,8 +45,8 @@ trait CompletionStorageBackendTemplate extends CompletionStorageBackend {
application_id, application_id,
submission_id, submission_id,
deduplication_offset, deduplication_offset,
deduplication_time_seconds, deduplication_duration_seconds,
deduplication_time_nanos, deduplication_duration_nanos,
deduplication_start deduplication_start
FROM FROM
participant_command_completions participant_command_completions
@ -73,9 +73,9 @@ trait CompletionStorageBackendTemplate extends CompletionStorageBackend {
private val deduplicationOffsetColumn: RowParser[Option[String]] = private val deduplicationOffsetColumn: RowParser[Option[String]] =
str("deduplication_offset").? str("deduplication_offset").?
private val deduplicationTimeSecondsColumn: RowParser[Option[Long]] = private val deduplicationTimeSecondsColumn: RowParser[Option[Long]] =
long("deduplication_time_seconds").? long("deduplication_duration_seconds").?
private val deduplicationTimeNanosColumn: RowParser[Option[Int]] = private val deduplicationTimeNanosColumn: RowParser[Option[Int]] =
int("deduplication_time_nanos").? int("deduplication_duration_nanos").?
private val deduplicationStartColumn: RowParser[Option[Instant]] = private val deduplicationStartColumn: RowParser[Option[Instant]] =
instantFromMicros("deduplication_start").? instantFromMicros("deduplication_start").?
@ -94,8 +94,8 @@ trait CompletionStorageBackendTemplate extends CompletionStorageBackend {
applicationId = applicationId, applicationId = applicationId,
maybeSubmissionId = submissionId, maybeSubmissionId = submissionId,
maybeDeduplicationOffset = deduplicationOffset, maybeDeduplicationOffset = deduplicationOffset,
maybeDeduplicationTimeSeconds = deduplicationTimeSeconds, maybeDeduplicationDurationSeconds = deduplicationTimeSeconds,
maybeDeduplicationTimeNanos = deduplicationTimeNanos, maybeDeduplicationDurationNanos = deduplicationTimeNanos,
) )
} }
@ -125,8 +125,8 @@ trait CompletionStorageBackendTemplate extends CompletionStorageBackend {
applicationId = applicationId, applicationId = applicationId,
maybeSubmissionId = submissionId, maybeSubmissionId = submissionId,
maybeDeduplicationOffset = deduplicationOffset, maybeDeduplicationOffset = deduplicationOffset,
maybeDeduplicationTimeSeconds = deduplicationTimeSeconds, maybeDeduplicationDurationSeconds = deduplicationTimeSeconds,
maybeDeduplicationTimeNanos = deduplicationTimeNanos, maybeDeduplicationDurationNanos = deduplicationTimeNanos,
) )
} }

View File

@ -215,8 +215,10 @@ private[backend] object AppendOnlySchema {
"rejection_status_details" -> fieldStrategy.byteaOptional(_.rejection_status_details), "rejection_status_details" -> fieldStrategy.byteaOptional(_.rejection_status_details),
"submission_id" -> fieldStrategy.stringOptional(_.submission_id), "submission_id" -> fieldStrategy.stringOptional(_.submission_id),
"deduplication_offset" -> fieldStrategy.stringOptional(_.deduplication_offset), "deduplication_offset" -> fieldStrategy.stringOptional(_.deduplication_offset),
"deduplication_time_seconds" -> fieldStrategy.bigintOptional(_.deduplication_time_seconds), "deduplication_duration_seconds" -> fieldStrategy.bigintOptional(
"deduplication_time_nanos" -> fieldStrategy.intOptional(_.deduplication_time_nanos), _.deduplication_duration_seconds
),
"deduplication_duration_nanos" -> fieldStrategy.intOptional(_.deduplication_duration_nanos),
"deduplication_start" -> fieldStrategy.bigintOptional(_.deduplication_start), "deduplication_start" -> fieldStrategy.bigintOptional(_.deduplication_start),
) )

View File

@ -217,8 +217,8 @@ private[backend] object StorageBackendTestValues {
applicationId: String = someApplicationId, applicationId: String = someApplicationId,
submissionId: Option[String] = Some(UUID.randomUUID().toString), submissionId: Option[String] = Some(UUID.randomUUID().toString),
deduplicationOffset: Option[String] = None, deduplicationOffset: Option[String] = None,
deduplicationTimeSeconds: Option[Long] = None, deduplicationDurationSeconds: Option[Long] = None,
deduplicationTimeNanos: Option[Int] = None, deduplicationDurationNanos: Option[Int] = None,
deduplicationStart: Option[Timestamp] = None, deduplicationStart: Option[Timestamp] = None,
): DbDto.CommandCompletion = ): DbDto.CommandCompletion =
DbDto.CommandCompletion( DbDto.CommandCompletion(
@ -233,8 +233,8 @@ private[backend] object StorageBackendTestValues {
rejection_status_details = None, rejection_status_details = None,
submission_id = submissionId, submission_id = submissionId,
deduplication_offset = deduplicationOffset, deduplication_offset = deduplicationOffset,
deduplication_time_seconds = deduplicationTimeSeconds, deduplication_duration_seconds = deduplicationDurationSeconds,
deduplication_time_nanos = deduplicationTimeNanos, deduplication_duration_nanos = deduplicationDurationNanos,
deduplication_start = deduplicationStart.map(_.micros), deduplication_start = deduplicationStart.map(_.micros),
) )

View File

@ -149,14 +149,14 @@ private[backend] trait StorageBackendTestsCompletions
dtoCompletion( dtoCompletion(
offset(2), offset(2),
submitter = party, submitter = party,
deduplicationTimeSeconds = Some(seconds), deduplicationDurationSeconds = Some(seconds),
deduplicationTimeNanos = Some(nanos), deduplicationDurationNanos = Some(nanos),
), ),
dtoCompletion( dtoCompletion(
offset(3), offset(3),
submitter = party, submitter = party,
deduplicationTimeSeconds = None, deduplicationDurationSeconds = None,
deduplicationTimeNanos = None, deduplicationDurationNanos = None,
), ),
) )
@ -172,11 +172,11 @@ private[backend] trait StorageBackendTestsCompletions
val List(completionWithDeduplicationOffset, completionWithoutDeduplicationOffset) = val List(completionWithDeduplicationOffset, completionWithoutDeduplicationOffset) =
completions completions
completionWithDeduplicationOffset.completions should have length 1 completionWithDeduplicationOffset.completions should have length 1
completionWithDeduplicationOffset.completions.head.deduplicationPeriod.deduplicationTime should be( completionWithDeduplicationOffset.completions.head.deduplicationPeriod.deduplicationDuration should be(
Some(expectedDuration) Some(expectedDuration)
) )
completionWithoutDeduplicationOffset.completions should have length 1 completionWithoutDeduplicationOffset.completions should have length 1
completionWithoutDeduplicationOffset.completions.head.deduplicationPeriod.deduplicationTime should not be defined completionWithoutDeduplicationOffset.completions.head.deduplicationPeriod.deduplicationDuration should not be defined
} }
} }
@ -186,7 +186,7 @@ private[backend] trait StorageBackendTestsCompletions
val nanos = 10 val nanos = 10
val expectedErrorMessage = val expectedErrorMessage =
"One of deduplication time seconds and nanos has been provided " + "One of deduplication duration seconds and nanos has been provided " +
"but they must be either both provided or both absent" "but they must be either both provided or both absent"
val dtos1 = Vector( val dtos1 = Vector(
@ -194,8 +194,8 @@ private[backend] trait StorageBackendTestsCompletions
dtoCompletion( dtoCompletion(
offset(2), offset(2),
submitter = party, submitter = party,
deduplicationTimeSeconds = Some(seconds), deduplicationDurationSeconds = Some(seconds),
deduplicationTimeNanos = None, deduplicationDurationNanos = None,
), ),
) )
@ -215,8 +215,8 @@ private[backend] trait StorageBackendTestsCompletions
dtoCompletion( dtoCompletion(
offset(3), offset(3),
submitter = party, submitter = party,
deduplicationTimeSeconds = None, deduplicationDurationSeconds = None,
deduplicationTimeNanos = Some(nanos), deduplicationDurationNanos = Some(nanos),
) )
) )

View File

@ -265,8 +265,8 @@ class UpdateToDbDtoSpec extends AnyWordSpec with Matchers {
rejection_status_details = Some(StatusDetails.of(status.details).toByteArray), rejection_status_details = Some(StatusDetails.of(status.details).toByteArray),
submission_id = Some(someSubmissionId), submission_id = Some(someSubmissionId),
deduplication_offset = None, deduplication_offset = None,
deduplication_time_seconds = None, deduplication_duration_seconds = None,
deduplication_time_nanos = None, deduplication_duration_nanos = None,
deduplication_start = None, deduplication_start = None,
), ),
DbDto.CommandDeduplication( DbDto.CommandDeduplication(
@ -342,8 +342,8 @@ class UpdateToDbDtoSpec extends AnyWordSpec with Matchers {
rejection_status_details = None, rejection_status_details = None,
submission_id = Some(someSubmissionId), submission_id = Some(someSubmissionId),
deduplication_offset = None, deduplication_offset = None,
deduplication_time_seconds = None, deduplication_duration_seconds = None,
deduplication_time_nanos = None, deduplication_duration_nanos = None,
deduplication_start = None, deduplication_start = None,
), ),
) )
@ -415,8 +415,8 @@ class UpdateToDbDtoSpec extends AnyWordSpec with Matchers {
rejection_status_details = None, rejection_status_details = None,
submission_id = completionInfo.submissionId, submission_id = completionInfo.submissionId,
deduplication_offset = None, deduplication_offset = None,
deduplication_time_nanos = None, deduplication_duration_nanos = None,
deduplication_time_seconds = None, deduplication_duration_seconds = None,
deduplication_start = None, deduplication_start = None,
), ),
) )
@ -500,8 +500,8 @@ class UpdateToDbDtoSpec extends AnyWordSpec with Matchers {
rejection_status_details = None, rejection_status_details = None,
submission_id = completionInfo.submissionId, submission_id = completionInfo.submissionId,
deduplication_offset = None, deduplication_offset = None,
deduplication_time_nanos = None, deduplication_duration_nanos = None,
deduplication_time_seconds = None, deduplication_duration_seconds = None,
deduplication_start = None, deduplication_start = None,
), ),
) )
@ -585,8 +585,8 @@ class UpdateToDbDtoSpec extends AnyWordSpec with Matchers {
rejection_status_details = None, rejection_status_details = None,
submission_id = completionInfo.submissionId, submission_id = completionInfo.submissionId,
deduplication_offset = None, deduplication_offset = None,
deduplication_time_nanos = None, deduplication_duration_nanos = None,
deduplication_time_seconds = None, deduplication_duration_seconds = None,
deduplication_start = None, deduplication_start = None,
), ),
) )
@ -753,8 +753,8 @@ class UpdateToDbDtoSpec extends AnyWordSpec with Matchers {
rejection_status_details = None, rejection_status_details = None,
submission_id = completionInfo.submissionId, submission_id = completionInfo.submissionId,
deduplication_offset = None, deduplication_offset = None,
deduplication_time_nanos = None, deduplication_duration_nanos = None,
deduplication_time_seconds = None, deduplication_duration_seconds = None,
deduplication_start = None, deduplication_start = None,
), ),
) )
@ -855,8 +855,8 @@ class UpdateToDbDtoSpec extends AnyWordSpec with Matchers {
rejection_status_details = None, rejection_status_details = None,
submission_id = completionInfo.submissionId, submission_id = completionInfo.submissionId,
deduplication_offset = None, deduplication_offset = None,
deduplication_time_nanos = None, deduplication_duration_nanos = None,
deduplication_time_seconds = None, deduplication_duration_seconds = None,
deduplication_start = None, deduplication_start = None,
), ),
) )
@ -981,8 +981,8 @@ class UpdateToDbDtoSpec extends AnyWordSpec with Matchers {
rejection_status_details = None, rejection_status_details = None,
submission_id = completionInfo.submissionId, submission_id = completionInfo.submissionId,
deduplication_offset = None, deduplication_offset = None,
deduplication_time_nanos = None, deduplication_duration_nanos = None,
deduplication_time_seconds = None, deduplication_duration_seconds = None,
deduplication_start = None, deduplication_start = None,
), ),
) )
@ -1084,8 +1084,8 @@ class UpdateToDbDtoSpec extends AnyWordSpec with Matchers {
rejection_status_details = None, rejection_status_details = None,
submission_id = completionInfo.submissionId, submission_id = completionInfo.submissionId,
deduplication_offset = None, deduplication_offset = None,
deduplication_time_nanos = None, deduplication_duration_nanos = None,
deduplication_time_seconds = None, deduplication_duration_seconds = None,
deduplication_start = None, deduplication_start = None,
), ),
) )
@ -1164,8 +1164,8 @@ class UpdateToDbDtoSpec extends AnyWordSpec with Matchers {
rejection_status_details = None, rejection_status_details = None,
submission_id = completionInfo.submissionId, submission_id = completionInfo.submissionId,
deduplication_offset = None, deduplication_offset = None,
deduplication_time_nanos = None, deduplication_duration_nanos = None,
deduplication_time_seconds = None, deduplication_duration_seconds = None,
deduplication_start = None, deduplication_start = None,
), ),
) )
@ -1231,8 +1231,8 @@ class UpdateToDbDtoSpec extends AnyWordSpec with Matchers {
( (
"Deduplication period", "Deduplication period",
"Expected deduplication offset", "Expected deduplication offset",
"Expected deduplication time seconds", "Expected deduplication duration seconds",
"Expected deduplication time nanos", "Expected deduplication duration nanos",
), ),
(None, None, None, None), (None, None, None, None),
( (
@ -1255,8 +1255,8 @@ class UpdateToDbDtoSpec extends AnyWordSpec with Matchers {
case ( case (
deduplicationPeriod, deduplicationPeriod,
expectedDeduplicationOffset, expectedDeduplicationOffset,
expectedDeduplicationTimeSeconds, expectedDeduplicationDurationSeconds,
expectedDeduplicationTimeNanos, expectedDeduplicationDurationNanos,
) => ) =>
val completionInfo = someCompletionInfo.copy(optDeduplicationPeriod = deduplicationPeriod) val completionInfo = someCompletionInfo.copy(optDeduplicationPeriod = deduplicationPeriod)
val update = state.Update.CommandRejected( val update = state.Update.CommandRejected(
@ -1281,8 +1281,8 @@ class UpdateToDbDtoSpec extends AnyWordSpec with Matchers {
rejection_status_details = Some(StatusDetails.of(status.details).toByteArray), rejection_status_details = Some(StatusDetails.of(status.details).toByteArray),
submission_id = Some(someSubmissionId), submission_id = Some(someSubmissionId),
deduplication_offset = expectedDeduplicationOffset, deduplication_offset = expectedDeduplicationOffset,
deduplication_time_seconds = expectedDeduplicationTimeSeconds, deduplication_duration_seconds = expectedDeduplicationDurationSeconds,
deduplication_time_nanos = expectedDeduplicationTimeNanos, deduplication_duration_nanos = expectedDeduplicationDurationNanos,
deduplication_start = None, deduplication_start = None,
), ),
DbDto.CommandDeduplication( DbDto.CommandDeduplication(
@ -1313,8 +1313,8 @@ class UpdateToDbDtoSpec extends AnyWordSpec with Matchers {
case ( case (
deduplicationPeriod, deduplicationPeriod,
expectedDeduplicationOffset, expectedDeduplicationOffset,
expectedDeduplicationTimeSeconds, expectedDeduplicationDurationSeconds,
expectedDeduplicationTimeNanos, expectedDeduplicationDurationNanos,
) => ) =>
val completionInfo = someCompletionInfo.copy(optDeduplicationPeriod = deduplicationPeriod) val completionInfo = someCompletionInfo.copy(optDeduplicationPeriod = deduplicationPeriod)
val update = state.Update.TransactionAccepted( val update = state.Update.TransactionAccepted(
@ -1367,8 +1367,8 @@ class UpdateToDbDtoSpec extends AnyWordSpec with Matchers {
rejection_status_details = None, rejection_status_details = None,
submission_id = Some(someSubmissionId), submission_id = Some(someSubmissionId),
deduplication_offset = expectedDeduplicationOffset, deduplication_offset = expectedDeduplicationOffset,
deduplication_time_seconds = expectedDeduplicationTimeSeconds, deduplication_duration_seconds = expectedDeduplicationDurationSeconds,
deduplication_time_nanos = expectedDeduplicationTimeNanos, deduplication_duration_nanos = expectedDeduplicationDurationNanos,
deduplication_start = None, deduplication_start = None,
), ),
) )