object party_migration extends Helpful
party migration commands!
The following group contains a set of party migration commands. These commands can be used to migrate a party from one node to another. The commands come with some limitations / caveats / capabilities:
- If the party is not managed by the source participant, then the appropriate topology state needs to be manually prepared before running any of the steps. - In theory, we don't need to migrate the party off the origin node. This means we can support parties on multiple participants. However, when the parties are re-enabled, we need to ensure that they are re-enabled synchronously on all participants. This can currently not be guaranteed / enforced. Therefore, this operation is quite brittle.
- Annotations
- @Summary(s = "Commands useful to migrate parties from one participant to another", flag = FeatureFlag.Repair) @Group(name = "Party Migration")
- Alphabetic
- By Inheritance
- party_migration
- Helpful
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def help(methodName: String)(implicit consoleEnvironment: ConsoleEnvironment): Unit
- Definition Classes
- Helpful
- Annotations
- @Summary(s = "Help for specific commands (use help() or help(\"method\") for more information)", flag = console.this.Help.Summary.<init>$default$2) @Topic(t = Seq("Top-level Commands"))
- def help()(implicit consoleEnvironment: ConsoleEnvironment): Unit
- Definition Classes
- Helpful
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- def step1_store_acs(sourceParticipant: ParticipantReference, parties: Set[PartyId], partiesOffboarding: Boolean, targetFile: String)(implicit env: ConsoleEnvironment): Unit
- Annotations
- @Summary(s = "Step 1 of party migration: Download the ACS on the source participant", flag = console.this.Help.Summary.<init>$default$2) @Description(s = """On the source participant, download the contract set to a file which must be shipped to the target participant.
|The domain must be quiet during party migration such that no contracts are added until all steps have been completed.""")
- def step2_import_acs(targetParticipant: ParticipantReference, parties: Set[PartyId], sourceFile: String, ignoreAcsCheck: Boolean = false)(implicit env: ConsoleEnvironment): Unit
- Annotations
- @Summary(s = "Step 2 of party migration: Import the contract state to the target node", flag = console.this.Help.Summary.<init>$default$2) @Description(s = """Import the active contract set into the target participant for the given party-id.
|The domain must be quiet during party migration such that no contracts are added until all steps have been completed.""")
- def step3_delegate_party_to_target_node(owningParticipant: ParticipantReference, parties: Set[PartyId], targetParticipantId: ParticipantId, targetPermission: ParticipantPermission = ParticipantPermission.Submission)(implicit env: ConsoleEnvironment): Unit
- Annotations
- @Summary(s = "Step 3 of party migration: Add a delegation to the target participant", flag = console.this.Help.Summary.<init>$default$2) @Description(s = """On the participant node that controls the party (owningParticipant), permission the party for the target participant.
|This will add a corresponding FROM party to participant topology transaction.
|The domain must be quiet during party migration such that no contracts are added until all steps have been completed.""")
- def step4_enable_party_on_target(targetParticipant: ParticipantReference, parties: Set[PartyId], permission: ParticipantPermission = ParticipantPermission.Submission)(implicit env: ConsoleEnvironment): Unit
- Annotations
- @Summary(s = "Step 4 of party migration: Enable party on target participant", flag = console.this.Help.Summary.<init>$default$2) @Description(s = """On the target participant node, accept the hosting of the parties.
|This will add a corresponding TO party to participant topology transaction.
|The domain must be quiet during party migration such that no contracts are added until all steps have been completed.""")
- def step5_remove_party_delegation_from_source(owningParticipant: ParticipantReference, parties: Set[PartyId], sourceParticipantId: ParticipantId): Unit
- Annotations
- @Summary(s = "Step 5 of party migration: Remove delegation of party to source participant", flag = console.this.Help.Summary.<init>$default$2) @Description(s = """If the party should be migrated off a participant node, remove the delegation to it.
|The domain must be quiet during party migration such that no contracts are added until all steps have been completed.""")
- def step6_cleanup_source(sourceParticipant: ParticipantReference, sourceFile: String, offboardedParties: Set[PartyId], batchSize: Int = 1000): Unit
- Annotations
- @Summary(s = "Step 6 of party migration: Optionally remove contract data from source", flag = console.this.Help.Summary.<init>$default$2) @Description(s = """If the parties should be migrated off a participant node, use this step to remove all contracts from the source participant.""")
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])