Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Use of different version in composition definition element

...

Code Block
languagejava
var automationComposition = participantIntermediaryApi.getAutomationComposition(instanceId);
var compositionId = automationComposition.getCompositionId();
var acElementDefinitionsFrom = participantIntermediaryApi.getAcElementsDefinitions(compositionId);
var acElementDefinitionFrom = acElementsDefinitionsFrom.values().stream()
    .filter(el -> el.getAcElementDefinitionId().getName().equals(element.getDefinition().getName())).findFirst().get();
var outPropertiesFrom = acElementDefinitionFrom.getOutProperties();

var acElementDefinitionTo = participantIntermediaryApi.getAcElementDefinition(compositionTargetId, element.getDefinition());
var outPropertiesTo = acElementDefinitionTo.getOutProperties();


Migration precheck

Assumptions:

  • Only the participants can execute a precheck.
  • Precheck is executed before the migration, if it fail the migration will be not executed.
  • User needs to receive the result of the precheck.
  • Acm-runtime needs to handle the precheck fail in a different way it handles migration fail.

Solution 1: change the current flow of migration

User can send the action migration POST as before. the The migration flow will be not backwards-compatible.

  • User send migration action
  • Acm-runtime stores the migration data (instance properties and composition target) in secondary table. the instance will be in "MIGRATING-PRECHECK" state
  • Acm-runtime sends migration-precheck message to participants
  • Participant receives migration-precheck message and executes the precheck and sends the result
  • Acm-runtime receives precheck-result messages from all participants
  • If all precheck result are OK for all participants, Acm-runtime update properties and composition target from secondary table and sends migration-execution message to participants. The instance will be in "MIGRATING" state
  • If there is a precheck result failed, Acm-runtime has to show this result into the instance, deployState will be in "DEPLOYED" state, (instance properties will be as before). Data in secondary table will be cleaned.

Solution 2: create a new flow for migration-precheck.

User can send the action migration-precheck POST. The user can do the action migration POST after that. The migration flow is still backwards-compatible.

  • User send migration-precheck action
  • Acm-runtime set the instance in "MIGRATING-PRECHECK" state
  • Acm-runtime sends migration-precheck message to participants
  • Participant receives migration-precheck message and executes the precheck and sends the result
  • Acm-runtime receives precheck-result messages from all participants
  • Acm-runtime shows this result into the instance and deployState will be in "DEPLOYED" state