Skip to content

Commit 6f7908e

Browse files
canton-network-daDA Automation
andauthored
Update Splice from CCI (#223)
Signed-off-by: DA Automation <splice-maintainers@digitalasset.com> Co-authored-by: DA Automation <splice-maintainers@digitalasset.com>
1 parent 7345124 commit 6f7908e

File tree

11 files changed

+271
-103
lines changed

11 files changed

+271
-103
lines changed

apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ExternalPartySetupProposalIntegrationTest.scala

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -166,9 +166,11 @@ class ExternalPartySetupProposalIntegrationTest
166166
.getExternalPartyBalance(aliceParty)
167167
.totalUnlockedCoin shouldBe "0.0000000000"
168168
aliceValidatorWalletClient.transferPreapprovalSend(aliceParty, 2000.0, UUID.randomUUID.toString)
169-
aliceValidatorBackend
170-
.getExternalPartyBalance(aliceParty)
171-
.totalUnlockedCoin shouldBe "2000.0000000000"
169+
eventually() {
170+
aliceValidatorBackend
171+
.getExternalPartyBalance(aliceParty)
172+
.totalUnlockedCoin shouldBe "2000.0000000000"
173+
}
172174

173175
// Onboard and Create/Accept ExternalPartySetupProposal for Bob
174176
val onboardingBob @ OnboardingResult(bobParty, _, _) =

apps/app/src/test/scala/org/lfdecentralizedtrust/splice/integration/tests/ManualStartIntegrationTest.scala

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,11 @@ class ManualStartIntegrationTest
190190
startAllSync(allCnApps*)
191191
}
192192

193+
// Wait for automation to start and the user to be reported as onboarded
194+
clue("Alice is reported as onboarded") {
195+
waitForWalletUser(aliceWalletClient)
196+
}
197+
193198
actAndCheck(
194199
"Alice taps some coin again",
195200
aliceWalletClient.tap(200),

apps/common/src/main/openapi/common-internal.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,7 @@ components:
193193
- vote_request_contract_ids
194194
properties:
195195
vote_request_contract_ids:
196+
description: Contract IDs of Daml template `Splice.DsoRules:VoteRequest`.
196197
type: array
197198
items:
198199
type: string
@@ -203,11 +204,15 @@ components:
203204
- vote_requests
204205
properties:
205206
vote_requests:
207+
description: |
208+
Contracts of Daml template `Splice.DsoRules:VoteRequest` that match
209+
`vote_request_contract_ids` in the request.
206210
type: array
207211
items:
208212
$ref: "./common-external.yaml#/components/schemas/Contract"
209213

210214
LookupDsoRulesVoteRequestResponse:
215+
description: A contract of Daml template `Splice.DsoRules:VoteRequest`.
211216
type: object
212217
required:
213218
- dso_rules_vote_request
@@ -216,6 +221,7 @@ components:
216221
$ref: "./common-external.yaml#/components/schemas/Contract"
217222

218223
ListDsoRulesVoteRequestsResponse:
224+
description: Contracts of Daml template `Splice.DsoRules:VoteRequest`.
219225
type: object
220226
required:
221227
- dso_rules_vote_requests
@@ -259,6 +265,7 @@ components:
259265
- validator_licenses
260266
properties:
261267
validator_licenses:
268+
description: Contracts of Daml template `Splice.ValidatorLicense:ValidatorLicense`.
262269
type: array
263270
items:
264271
$ref: "../../../../common/src/main/openapi/common-external.yaml#/components/schemas/Contract"

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class MediatorAdminConnection(
3232
loggerFactory: NamedLoggerFactory,
3333
grpcClientMetrics: GrpcClientMetrics,
3434
retryProvider: RetryProvider,
35-
)(implicit ec: ExecutionContextExecutor, tracer: Tracer)
35+
)(implicit protected val ec: ExecutionContextExecutor, tracer: Tracer)
3636
extends TopologyAdminConnection(
3737
config,
3838
apiLoggingConfig,
@@ -60,7 +60,8 @@ class MediatorAdminConnection(
6060
MediatorAdministrationCommands.Initialize(
6161
domainId,
6262
SequencerConnections.single(sequencerConnection),
63-
SequencerConnectionValidation.All,
63+
// TODO(#10985) Consider enabling this.
64+
SequencerConnectionValidation.Disabled,
6465
)
6566
)
6667

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

Lines changed: 28 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ class ParticipantAdminConnection(
7575
loggerFactory: NamedLoggerFactory,
7676
grpcClientMetrics: GrpcClientMetrics,
7777
retryProvider: RetryProvider,
78-
)(implicit ec: ExecutionContextExecutor, tracer: Tracer)
78+
)(implicit protected val ec: ExecutionContextExecutor, tracer: Tracer)
7979
extends TopologyAdminConnection(
8080
config,
8181
apiLoggingConfig,
@@ -171,7 +171,8 @@ class ParticipantAdminConnection(
171171
ParticipantAdminCommands.DomainConnectivity.RegisterDomain(
172172
config,
173173
handshakeOnly,
174-
SequencerConnectionValidation.All,
174+
// TODO(#10985) Consider enabling this
175+
SequencerConnectionValidation.Disabled,
175176
)
176177
)
177178

@@ -364,30 +365,37 @@ class ParticipantAdminConnection(
364365
runCmd(
365366
ParticipantAdminCommands.DomainConnectivity.ModifyDomainConnection(
366367
config,
367-
SequencerConnectionValidation.All,
368+
// TODO(#10985) Consider enabling this
369+
SequencerConnectionValidation.Disabled,
368370
)
369371
)
370372

371373
def modifyDomainConnectionConfig(
372374
domain: DomainAlias,
373375
f: DomainConnectionConfig => Option[DomainConnectionConfig],
374-
)(implicit traceContext: TraceContext): Future[Boolean] =
375-
for {
376-
oldConfig <- getDomainConnectionConfig(domain)
377-
newConfig = f(oldConfig)
378-
configModified <- newConfig match {
379-
case None =>
380-
logger.trace("No update to domain connection config required")
381-
Future.successful(false)
382-
case Some(config) =>
383-
logger.info(
384-
s"Updating to new domain connection config for domain $domain. Old config: $oldConfig, new config: $config"
385-
)
386-
for {
387-
_ <- setDomainConnectionConfig(config)
388-
} yield true
389-
}
390-
} yield configModified
376+
)(implicit traceContext: TraceContext): Future[Boolean] = {
377+
retryProvider.retryForClientCalls(
378+
"modify_domain_connection",
379+
"Set the new domain connection if required",
380+
for {
381+
oldConfig <- getDomainConnectionConfig(domain)
382+
newConfig = f(oldConfig)
383+
configModified <- newConfig match {
384+
case None =>
385+
logger.trace("No update to domain connection config required")
386+
Future.successful(false)
387+
case Some(config) =>
388+
logger.info(
389+
s"Updating to new domain connection config for domain $domain. Old config: $oldConfig, new config: $config"
390+
)
391+
for {
392+
_ <- setDomainConnectionConfig(config)
393+
} yield true
394+
}
395+
} yield configModified,
396+
logger,
397+
)
398+
}
391399

392400
private def modifyOrRegisterDomainConnectionConfig(
393401
config: DomainConnectionConfig,

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ class SequencerAdminConnection(
4545
loggerFactory: NamedLoggerFactory,
4646
grpcClientMetrics: GrpcClientMetrics,
4747
retryProvider: RetryProvider,
48-
)(implicit ec: ExecutionContextExecutor, tracer: Tracer)
48+
)(implicit protected val ec: ExecutionContextExecutor, tracer: Tracer)
4949
extends TopologyAdminConnection(
5050
config,
5151
apiLoggingConfig,

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

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,22 @@ import com.digitalasset.canton.admin.api.client.commands.GrpcAdminCommand
77
import com.digitalasset.canton.admin.api.client.data.NodeStatus
88
import com.digitalasset.canton.tracing.TraceContext
99

10-
import scala.concurrent.Future
10+
import scala.concurrent.{ExecutionContextExecutor, Future}
1111

1212
trait StatusAdminConnection {
13-
this: AppConnection =>
14-
13+
this: AppConnection & RetryProvider.Has =>
14+
protected implicit val ec: ExecutionContextExecutor
1515
protected type Status <: NodeStatus.Status
1616
protected def getStatusRequest: GrpcAdminCommand[_, _, NodeStatus[Status]]
1717

18-
def getStatus(implicit traceContext: TraceContext): Future[NodeStatus[Status]] = runCmd(
19-
getStatusRequest
20-
)
18+
def getStatus(implicit traceContext: TraceContext): Future[NodeStatus[Status]] =
19+
retryProvider.retryForClientCalls(
20+
"status",
21+
"Get node status",
22+
runCmd(
23+
getStatusRequest
24+
),
25+
logger,
26+
)
2127

2228
}

0 commit comments

Comments
 (0)