Skip to content

Commit 4541f20

Browse files
Remove use of legacy acs import endpoint (#3609)
fixes #3608 [ci] Signed-off-by: Moritz Kiefer <moritz.kiefer@purelyfunctional.org> Co-authored-by: Moritz Kiefer <moritz.kiefer@purelyfunctional.org>
1 parent 339a4af commit 4541f20

File tree

8 files changed

+25
-68
lines changed

8 files changed

+25
-68
lines changed

apps/common/src/main/scala/org/lfdecentralizedtrust/splice/environment/ParticipantAdminConnection.scala

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -380,32 +380,6 @@ class ParticipantAdminConnection(
380380
ByteString.copyFrom(chunks.asJava)
381381
)
382382

383-
def uploadAcsSnapshotLegacy(acsBytes: Seq[ByteString])(implicit
384-
traceContext: TraceContext
385-
): Future[Unit] = {
386-
val chunkedAcsBytes: Seq[ByteString] = acsBytes match {
387-
case Seq(bytes) =>
388-
// Caller has not chunked the bytes, this is possible for SVs that try to onboard or for validator recovery.
389-
// The chuning logic here matches what GrpcStreamingUtils.streamToServer does
390-
bytes.toByteArray.grouped(1024 * 1024 * 2).map(ByteString.copyFrom(_)).toSeq
391-
case _ => acsBytes
392-
}
393-
retryProvider.retryForClientCalls(
394-
"import_acs",
395-
"Imports the acs in the participantl",
396-
runCmd(
397-
ParticipantAdminCommands.ParticipantRepairManagement
398-
.ImportAcsOld(
399-
chunkedAcsBytes,
400-
IMPORT_ACS_WORKFLOW_ID_PREFIX,
401-
allowContractIdSuffixRecomputation = false,
402-
),
403-
timeoutOverride = Some(GrpcAdminCommand.DefaultUnboundedTimeout),
404-
).map(_ => ()),
405-
logger,
406-
)
407-
}
408-
409383
def uploadAcsSnapshot(acsBytes: Seq[ByteString])(implicit
410384
traceContext: TraceContext
411385
): Future[Unit] = {

apps/common/src/main/scala/org/lfdecentralizedtrust/splice/migration/DomainDataRestorer.scala

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ class DomainDataRestorer(
3535
sequencerConnections: SequencerConnections,
3636
dars: Seq[Dar],
3737
acsSnapshot: Seq[ByteString],
38-
legacyAcsImport: Boolean,
3938
)(implicit
4039
tc: TraceContext
4140
): Future[Unit] = {
@@ -66,7 +65,9 @@ class DomainDataRestorer(
6665
RetryFor.ClientCalls,
6766
)
6867
_ = logger.info("Importing the ACS")
69-
_ <- importAcs(acsSnapshot, legacyAcsImport)
68+
_ <- participantAdminConnection.uploadAcsSnapshot(
69+
acsSnapshot
70+
)
7071
_ = logger.info("Imported the ACS")
7172
_ <- participantAdminConnection.modifySynchronizerConnectionConfigAndReconnect(
7273
synchronizerAlias,
@@ -97,20 +98,6 @@ class DomainDataRestorer(
9798
}
9899
}
99100

100-
private def importAcs(acs: Seq[ByteString], legacyAcsImport: Boolean)(implicit
101-
tc: TraceContext
102-
) = {
103-
if (legacyAcsImport) {
104-
participantAdminConnection.uploadAcsSnapshotLegacy(
105-
acs
106-
)
107-
} else {
108-
participantAdminConnection.uploadAcsSnapshot(
109-
acs
110-
)
111-
}
112-
}
113-
114101
private def importDars(dars: Seq[Dar])(implicit tc: TraceContext) = {
115102
val packages = dars
116103
.map { dar =>

apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/migration/DomainDataSnapshot.scala

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ final case class DomainDataSnapshot(
2424
dars: Seq[Dar],
2525
// true if we exported for a proper migration, false for DR.
2626
synchronizerWasPaused: Boolean,
27-
acsFormat: http.DomainDataSnapshot.AcsFormat,
2827
) extends PrettyPrinting {
2928
// if output directory is specified we use the new format, otherwise the old one.
3029
// Only the DR endpoint should use the old one.
@@ -43,7 +42,7 @@ final case class DomainDataSnapshot(
4342
}.toVector,
4443
synchronizerWasPaused = Some(synchronizerWasPaused),
4544
separatePayloadFiles = Some(outputDirectory.isDefined),
46-
acsFormat = Some(acsFormat),
45+
acsFormat = Some(http.DomainDataSnapshot.AcsFormat.LedgerApi),
4746
)
4847
}
4948

@@ -85,16 +84,20 @@ object DomainDataSnapshot {
8584
Dar(dar.hash, ByteString.copyFrom(decoded))
8685
}
8786
val acsTimestamp = Instant.parse(src.acsTimestamp)
88-
Right(
89-
DomainDataSnapshot(
90-
src.genesisState.map(DomainMigrationEncoding.decode(src.separatePayloadFiles, _)),
91-
DomainMigrationEncoding.decode(src.separatePayloadFiles, src.acsSnapshot),
92-
acsTimestamp,
93-
dars,
94-
src.synchronizerWasPaused.getOrElse(false),
95-
acsFormat = src.acsFormat.getOrElse(http.DomainDataSnapshot.AcsFormat.AdminApi),
96-
)
97-
)
87+
src.acsFormat.getOrElse(http.DomainDataSnapshot.AcsFormat.AdminApi) match {
88+
case http.DomainDataSnapshot.AcsFormat.members.AdminApi =>
89+
Left("Admin API ACS Format is unsupported since splice 0.5")
90+
case http.DomainDataSnapshot.AcsFormat.members.LedgerApi =>
91+
Right(
92+
DomainDataSnapshot(
93+
src.genesisState.map(DomainMigrationEncoding.decode(src.separatePayloadFiles, _)),
94+
DomainMigrationEncoding.decode(src.separatePayloadFiles, src.acsSnapshot),
95+
acsTimestamp,
96+
dars,
97+
src.synchronizerWasPaused.getOrElse(false),
98+
)
99+
)
100+
}
98101
}
99102

100103
}

apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/migration/DomainDataSnapshotGenerator.scala

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import org.lfdecentralizedtrust.splice.environment.{
1010
RetryProvider,
1111
SequencerAdminConnection,
1212
}
13-
import org.lfdecentralizedtrust.splice.http.v0.definitions as http
1413
import org.lfdecentralizedtrust.splice.migration.{
1514
AcsExporter,
1615
DarExporter,
@@ -74,7 +73,6 @@ class DomainDataSnapshotGenerator(
7473
acsTimestamp = timestamp,
7574
dars,
7675
synchronizerWasPaused = false,
77-
acsFormat = http.DomainDataSnapshot.AcsFormat.LedgerApi,
7876
)
7977

8078
private def exportGenesisState(
@@ -165,7 +163,6 @@ class DomainDataSnapshotGenerator(
165163
acsTimestamp,
166164
dars,
167165
synchronizerWasPaused = true,
168-
acsFormat = http.DomainDataSnapshot.AcsFormat.LedgerApi,
169166
)
170167
logger.info(show"Finished generating $result")
171168
result

apps/sv/src/main/scala/org/lfdecentralizedtrust/splice/sv/onboarding/domainmigration/DomainMigrationInitializer.scala

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -292,8 +292,6 @@ class DomainMigrationInitializer(
292292
SequencerConnections.single(localSynchronizerNode.sequencerConnection),
293293
domainMigrationDump.domainDataSnapshot.dars,
294294
domainMigrationDump.domainDataSnapshot.acsSnapshot,
295-
legacyAcsImport =
296-
domainMigrationDump.domainDataSnapshot.acsFormat == http.DomainDataSnapshot.AcsFormat.AdminApi,
297295
)
298296
_ = logger.info("resumed domain")
299297
} yield {}

apps/validator/src/main/scala/org/lfdecentralizedtrust/splice/validator/ValidatorApp.scala

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ import org.lfdecentralizedtrust.splice.automation.{
3939
import org.lfdecentralizedtrust.splice.config.{NetworkAppClientConfig, SharedSpliceAppParameters}
4040
import org.lfdecentralizedtrust.splice.environment.*
4141
import org.lfdecentralizedtrust.splice.environment.ledger.api.DedupDuration
42-
import org.lfdecentralizedtrust.splice.http.v0.definitions as http
4342
import org.lfdecentralizedtrust.splice.http.v0.status.wallet.WalletResource as StatusWalletResource
4443
import org.lfdecentralizedtrust.splice.http.v0.external.ans.AnsResource
4544
import org.lfdecentralizedtrust.splice.http.v0.external.wallet.WalletResource as ExternalWalletResource
@@ -271,8 +270,6 @@ class ValidatorApp(
271270
sequencerConnections,
272271
migrationDump.dars,
273272
migrationDump.acsSnapshot,
274-
legacyAcsImport =
275-
migrationDump.acsFormat == http.DomainMigrationDump.AcsFormat.AdminApi,
276273
)
277274
}
278275
_ <- appInitStep("Restoring participant users data") {

apps/validator/src/main/scala/org/lfdecentralizedtrust/splice/validator/migration/DomainMigrationDump.scala

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ final case class DomainMigrationDump(
3030
createdAt: Instant,
3131
// true if we exported for a proper migration, false for DR.
3232
synchronizerWasPaused: Boolean,
33-
acsFormat: http.DomainMigrationDump.AcsFormat,
3433
) extends PrettyPrinting {
3534
override def pretty: Pretty[DomainMigrationDump.this.type] =
3635
Pretty.prettyNode(
@@ -63,7 +62,7 @@ final case class DomainMigrationDump(
6362
createdAt = createdAt.toString,
6463
synchronizerWasPaused = Some(synchronizerWasPaused),
6564
separatePayloadFiles = Some(outputDirectory.isDefined),
66-
acsFormat = Some(acsFormat),
65+
acsFormat = Some(http.DomainMigrationDump.AcsFormat.LedgerApi),
6766
)
6867
}
6968

@@ -94,6 +93,12 @@ object DomainMigrationDump {
9493
Dar(dar.hash, ByteString.copyFrom(decoded))
9594
}
9695
createdAt = Instant.parse(response.createdAt)
96+
_ <- response.acsFormat.getOrElse(http.DomainMigrationDump.AcsFormat.AdminApi) match {
97+
case http.DomainMigrationDump.AcsFormat.members.AdminApi =>
98+
Left("Admin API ACS Format is unsupported since splice 0.5")
99+
case http.DomainMigrationDump.AcsFormat.members.LedgerApi =>
100+
Right(())
101+
}
97102
} yield DomainMigrationDump(
98103
domainId = domainId,
99104
migrationId = migrationId,
@@ -104,6 +109,5 @@ object DomainMigrationDump {
104109
dars = dars,
105110
createdAt = createdAt,
106111
synchronizerWasPaused = response.synchronizerWasPaused.getOrElse(false),
107-
acsFormat = response.acsFormat.getOrElse(http.DomainMigrationDump.AcsFormat.AdminApi),
108112
)
109113
}

apps/validator/src/main/scala/org/lfdecentralizedtrust/splice/validator/migration/DomainMigrationDumpGenerator.scala

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import org.lfdecentralizedtrust.splice.environment.{
1414
RetryProvider,
1515
SpliceLedgerConnection,
1616
}
17-
import org.lfdecentralizedtrust.splice.http.v0.definitions as http
1817
import org.lfdecentralizedtrust.splice.identities.NodeIdentitiesStore
1918
import org.lfdecentralizedtrust.splice.migration.AcsExporter.AcsExportForParties.AllParticipantParties
2019
import org.lfdecentralizedtrust.splice.migration.{
@@ -76,7 +75,6 @@ class DomainMigrationDumpGenerator(
7675
dars = dars,
7776
createdAt = createdAt,
7877
synchronizerWasPaused = true,
79-
acsFormat = http.DomainMigrationDump.AcsFormat.LedgerApi,
8078
)
8179
logger.info(
8280
show"Finished generating $result"
@@ -116,7 +114,6 @@ class DomainMigrationDumpGenerator(
116114
dars = dars,
117115
createdAt = Instant.now(),
118116
synchronizerWasPaused = false,
119-
acsFormat = http.DomainMigrationDump.AcsFormat.LedgerApi,
120117
)
121118
}
122119
}

0 commit comments

Comments
 (0)