Cherry rAPP Startup

Sequence Diagram

 Click here to view PlantUML Source

@startuml
Autonumber
Skinparam sequenceArrowThickness 2
skinparam ParticipantPadding 5
skinparam BoxPadding 10

Box "SMO/Non-RT RIC Framework" #gold
   participant NFO as "NF Orchestration" <<INT OTF>>
   Boundary MC as "Model Catalog" <<SMO MVC State Manager>>
   Boundary VI as "Virtual Inventory" <<SMO MVC State Manager>>
   Boundary IC as "Instance Config" <<SMO MVC State Manager>>
   Participant AppMgr as "rAPPMgr" <<NRTRIC>>
end box

Box "SMO/Non-RT RIC\napplication execution environment " #goldenrod
   participant App as "Application" <<RICAPP>>
   participant Sidecar as "rAPP Sidecar" <<RICAPP>>
end box

Box "O-Cloud Platform"  #lightseagreen
   participant IMS as "Cloud Manager"
   participant DMS as "Deployment Manager"
End box

== Building Block Identity & Legend ==

note over NFO, DMS #royalblue
**<color: yellow>Building Block : rAPP Startup </color>**
end note

== Assumptions and Prerequisites ==

note over NFO, DMS #darkorange
Application and its sidecar were just created/started by the DMS.
end note

== Begin Building Block ==

Note Right of NFO
Message numbers are discontinous
In order to match same message numbers
In xAPP startup
End note

     Sidecar <-> App : connect
     Sidecar -> AppMgr : PUT ../xAPPs/<myAPPID>
     Note right of AppMgr
     Registration returns record contain:
        xAPPID,
        xAPPRegistrationTime,
        xAPPRestarts,
        configurationID
     end note
 
     alt if xAPPRestarts > 0 and ConfigurationID is not null then
        Sidecar -> AppMgr : GET ../configs/<configurationdID>
        AppMgr -> IC : GET ../configurations/< configurationdID>
        Sidecar -> App : Config(configuration)
     Else of ConfigurationID is Null and xAPPRestarts > MaxStartAttempts then
        Sidecar -> DMS : Fatal Error, don't restart
     Else
        Sidecar -> App : Config(configMap.configuration)
        Alt If successful then
           Sidecar -> AppMgr : POST ../configSchemas {configMap.configurationSchema}
           Note left : AppMgr simply returns success, nothing for it to do
Autonumber 10
           Sidecar -> AppMgr : POST ../configurations {configMap.configuration}
           Note left : rAppMgr simply returns success, nothing for it to do
        Else
Autonumber 13
           Sidecar -> App : Restart
           App -> DMS : Internal Error, restart
           Sidecar -> DMS : Internal Error, restart
        End if
     End if

@enduml