Versions Compared

Key

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

Jira
serverONAP Jira
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId425b2b0a-557c-3c0c-b515-579789cceedb
keyCPS-1034


#

Issue

Notes/Jira

Decision

1Agree on a solutionproceed with Solution#2 as it would be more scalable.

Implementation Proposal

...

Problem Statement :  

To publish the NcmpEvent when there is a change in the cmHandleState ( state transition )

...

  1. Use code triggers
  2. Any other solution ? Common State Handler


Solution #1 : Code Triggers

...

  • Create a cmHandleState handler which takes in the cmHandleState transition event
    --  Responsible for identifying the state transition
    --  Based on state transition call the relevant methods to create the NcmpEvent accordingly.


  • Identify the trigger points in the code where the actual state transitioning is happening and call the handler from there and provide the type of transition.


    Overview

Image RemovedImage Added

2. Solution #2

Responsibilities of the state handlers

...

  1. Create Registration (NEW to ADVISED)
  2. Module Sync Success ( ADVISED TO READY)
    Fail (ADVISED TO LOCKED)
  3. Retry ( LOCKED TO ADVISED ) 
  4. Deleting ( ADVISED to DELETING , READY to DELETING, LOCKED to DELETING )  / separate us **
  5. Deleted ( DELETING to DELETED )  separate us **  
    Jira
    serverONAP Jira
    columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-1120


At a high level the method signature should like below.

Code Block
languagejava
titleState Handler
    /**
     * Responsible for handling the state transition and publishing the lcm event if required.
     *
     * @param cmHandleId          cm handle id
     * @param yangModelCmHandle   cm handle represented as Yang Model
     * @param targetCmHandleState target cm handle state
     */
    void updateState(final String cmHandleId, final YangModelCmHandle yangModelCmHandle,
            final CmHandleState targetCmHandleState);



References

CPS-799 Spike: Define states and state handling for CM handle

...