/
Migration - Allow element version update

Migration - Allow element version update

Migration should allow the update of element definition versions.

Solution 1: add a flag in composition definition

The validation is active by default.

To disable the validation:

  • define the flag "migrateMajorVersion" as a property into the new composition definition 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



  • use the property "migrateMajorVersion".

    onap.policy.clamp.ac.element.Policy_AutomationCompositionElement: version: 1.2.4 type: org.onap.policy.clamp.acm.PolicyAutomationCompositionElement type_version: 1.0.0 description: Automation composition element for the operational policy for Performance Management Subscription Handling properties: provider: Ericsson startPhase: 0        migrateMajorVersion: false



Solution 2: add a property in properties file:

The validation is active by default.

To disable the validation, add migrate.validation.majorversion.enable property and set to false into properties file.

migrate: validation: majorversion: enable: false





Versioning Validation:

Composition Element definition

New Composition Element definition

Compatibility

Validation

Composition Element definition

New Composition Element definition

Compatibility

Validation

Key 1.0.1

Key 1.0.1

IDENTICAL

OK

Key 1.0.1

Key 1.0.1+build1

PATCH

OK

Key 1.0.1

Key 1.0.2

PATCH

OK

Key 1.0.1

Key 1.1.0

MINOR

OK

Key 1.0.1

Key 2.0.1

MAJOR

FAIL or OK based on flag

KeyDiff 1.0.1

Key 1.0.1

DIFFERENT

FAIL



Example:

Creation composition "1.2.3" and prime (compositionId):



Creation Instance and deploy:



Creation Composition 1.2.4 and prime (compositionTargetId):



Migration Instance from 1.2.3 to 1.2.4:



Implementation of the Participant using AcElementListenerV1

Participant has to implement the "migrate" method.

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: The hardcoded values in the code below is intended to show the implication to have different version:



  • Retrieve outProperties in real scenario



Implementation of the Participant using AcElementListenerV2

All data are already available into the respectively Objects.