Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 11 Next »

Add a flag to support major versioning:

  • insert this flag as a property "migrateMajorVersion" into the serviceTemplate similarly as startPhase with default false. 
  org.onap.policy.clamp.acm.AutomationCompositionElement:
    version: 1.0.1
    derived_from: tosca.nodetypes.Root
    properties:
      provider:
        type: string
        required: false
      migrateMajorVersion:
        type: boolean
        required: false
        default: false
        metadata:
            common: true
         description: Allow to migrate to major version
      startPhase:
        type: integer
        required: false
        constraints:
        - greater-or-equal: 0
        metadata:
            common: true
        description: A value indicating the start phase in which this automation composition element will be started,
                     the first start phase is zero. Automation composition elements are started in their start_phase
                     order and stopped in reverse start phase order. Automation composition elements with the same start
                     phase are started and stopped simultaneously


Versioning Validation:

Composition Element definitionNew Composition Element definitionCompatibilityValidation
Key 1.0.1Key 1.0.1IDENTICALOK
Key 1.0.1Key 1.0.1+build1PATCHOK
Key 1.0.1Key 1.0.2PATCHOK
Key 1.0.1Key 1.1.0MINOROK
Key 1.0.1Key 2.0.1MAJOR

FAIL

or OK based on flag

 and WARN log

KeyDiff 1.0.1Key 1.0.1DIFFERENTFAIL

Example:
Creation composition "1.2.3" and prime (compositionId):

    onap.policy.clamp.ac.element.AutomationCompositionDefinition:
      version: 1.2.3
      type: org.onap.policy.clamp.acm.AutomationComposition
      type_version: 1.0.1
      description: Automation composition for Demo
      properties:
        provider: ONAP
        elements:
          - name: onap.policy.clamp.ac.element.Policy_AutomationCompositionElement
            version: 1.2.3


Creation Instance and deploy:

elements:
  709c62b3-8918-41b9-a747-d21eb79c6c30:
    id: 709c62b3-8918-41b9-a747-d21eb79c6c30
    definition:
       name: onap.policy.clamp.ac.element.Policy_AutomationCompositionElement
       version: 1.2.3


Creation Composition 1.2.4 and prime (compositionTargetId):

    onap.policy.clamp.ac.element.AutomationCompositionDefinition:
      version: 1.2.4
      type: org.onap.policy.clamp.acm.AutomationComposition
      type_version: 1.0.1
      description: Automation composition for Demp
      properties:
        provider: ONAP
        elements:
          - name: onap.policy.clamp.ac.element.Policy_AutomationCompositionElement
            version: 1.2.4


Migration Instance from 1.2.3 to 1.2.4:

elements:
  709c62b3-8918-41b9-a747-d21eb79c6c30:
    id: 709c62b3-8918-41b9-a747-d21eb79c6c30
    definition:
       name: onap.policy.clamp.ac.element.Policy_AutomationCompositionElement
       version: 1.2.4


public void migrate(UUID instanceId, AcElementDeploy element, UUID compositionTargetId,
        Map<String, Object> properties) throws PfModelException {


Retrieve outProperties from composition 1.2.3 and 1.2.4

var automationComposition = participantIntermediaryApi.getAutomationComposition(instanceId);
var compositionId = automationComposition.getCompositionId();

var acElementDefinition = participantIntermediaryApi.getAcElementDefinition(compositionId,
    new ToscaConceptIdentifier("onap.policy.clamp.ac.element.Policy_AutomationCompositionElement", "1.2.3"));
var outProperties123 = acElementDefinition.getOutProperties();

var acElementDefinition = participantIntermediaryApi.getAcElementDefinition(compositionTargetId,
    new ToscaConceptIdentifier("onap.policy.clamp.ac.element.Policy_AutomationCompositionElement", "1.2.4"));
var outProperties124 = acElementDefinition.getOutProperties();


Retrieve outProperties in real scenario

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

  • No labels