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 6 Next »

CPS-1034 - Getting issue details... STATUS


#

Issue

Notes/Jira

Decision

1



Implementation Proposal


Problem Statement :  

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


Scenarios to keep in mind

  • We have to introduce a detail field in the NcmpEvent payload which can contain the previous state and other details.
  • We have to publish an event on public properties update ( even though we dont have any state change ???? ) 


Potential Solutions

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


Solution #1 : Code Triggers


  • Identify all the possible cm handle state transitions.

State Transition EventpreviousState targetState
NOTHING_TO_ADVISEDNOTHINGADVISED
ADVISED_TO_LOCKEDADVISEDLOCKED
LOCKED_TO_ADVISEDLOCKEDADVISED
ADVISED_TO_READYADVISEDREADY
READY_TO_LOCKEDREADYLOCKED
LOCKED_TO_READYLOCKEDREADY
ADVISED_TO_DELETINGADVISEDDELETING
READY_TO_DELETINGREADYDELETING
LOCKED_TO_DELETINGLOCKEDDELETING
DELETING_TO_DELETEDDELETINGDELETED


  • 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





2. Responsibilities of the state handlers

  • Accept : cmHandleId and other common params.
  • Set the object to the required state.
  • Persist the new state.
  • Send the correct event about the state change.


  • Identify the input and output params.
    I/P : examine the existing code , identify the commonalities and then propose.


Current State Transition:

  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 **  


References

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

CPS-858 Define Notifications on CM Handle Add (Ready) & Delete




  • No labels