Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Updated flow to match data model

Sequence Diagram

Image RemovedImage Added

Expand
titleClick here to view PlantUML Source

@startuml
Title

Application

LCM

Step

4

-

Create

Instance

Config
skinparam

sequenceArrowThickness

2
skinparam

ParticipantPadding

5
skinparam

BoxPadding

10
skinparam

ArrowColor

#blue
autonumber

Box

Personnel

#lightblue

   Actor

sOP

as

"SMO

Operator"

<<INT

OTF>>
End

box

Box

"SMO"

#gold

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

box

==

Configure

==

Note

over

MC,IC

In

this

step

the

VI

frameworks

is

expected

to

be

populated.

Normally

the

configuration

would

provide

back

the

"definition"

to

enable

a

GUI

since

we

don't

have

a

GUI

the

sOP

has

a

predefined

configuration

instance.
end

note

sOP

->

IC

:

POST

PUT ../

configurations {instanceConfig}
IC -> MC : GET ../applications/<instanceConfig.applicationVersionID>
alt if application.state is NOT Available then
note left of IC : Return Error; Expected State: Available found State:<application.state>
else
IC -> VI : GET ../Frameworks/<FrameworkID> IC -> MC : GET ../applications/<applicationVersionID>/deployments?applicationType=<framework.apptype>
alt if deployment not found then
note left of IC : Return Error; Expected Deployment type: <framework.apptype> not found
else
IC -> IC :
Note left : Store instance configuration
end if
end if
alt if status is success then
IC -> IC :
note left: set state to DEPLOYABLE
end if
IC --> sOP : status

serviceConfig/V1/serviceConfigurations/{serviceConfigLabel} {serviceInstanceConfig}

note left of IC
The Service Config is a container for resource configurations. As such there
Is nothing to modify therefore PUT is used for create since the user defines
The label. However there is no update allowed.
End note

IC -> IC :
Note Left : Check if Label already exists
Alt if ServiceConfigLabel already exists then
   IC --> sOP : 409 conflict: {ServiceConfigLabel} already exists.
End

IC -> MC : GET ..modelCatalof/v1/applications/{serviceInstanceConfig.applicationVersionID}
Alt if 404 not found then
   IC --> sOP : 412 Precondition failed: {appVersionID} not found.
Else if application.state is NOT Available then
   IC --> sOP : 412 Precondition failed: Application state Available expected but found {application.state}
end

IC -> MC : GET ..modelCatalof/v1/applications/{serviceInstanceConfig.applicationVersionID}/applicationServiceModels/{serviceInstanceConfig.serviceModelID}
Alt if 404 not found then
   IC --> sOP : 412 Precondition failed: {ServiceModelID} not found.
end

IC -> IC :
Note left: Create record, State=CREATING

IC --> sOP : return 202 created

Loop for each serviceResource in the ServiceModel
   sOP -> IC : PUT ../serviceConfig/V1/serviceConfigurations/{serviceConfigLabel}/resourceConfigurations/{resourceConfigLabel} {resourceConfig}

   IC -> IC :
   Alt if 404 not found then
      IC --> sOP : 412 Precondition failed: {serviceConfigLabel} not found.
   end
   Note left of IC
     serviceConfig = GET ../serviceConfigurations/{resourceConfig.ServiceConfigID}
   end note

   IC -> VI :
   Alt if 404 not found then
      IC --> sOP : 412 Precondition failed: {RICDeploymentID} not found.
   end
   Note left of IC
     managementFunction = GET ../deployments/v1/deployments/{resourceConfig.RICDeploymentID}
   end note

   IC -> MC :
   Alt if 404 not found then
      IC --> sOP : 412 Precondition failed: {ApplicationID}.{ServiceModelID} not found.
   end
   Note left of IC
     serviceModel = GET  ../modelCatalog/{resourceConfig.applicationID}/applicationServiceModels/{resourceConfig.serviceModelID}
   end note

   IC -> MC :
   Alt if 404 not found then
      IC --> sOP : 412 Precondition failed: {applicationID}.{serviceModelID}.{resourceID} not found.
   end
   Note left of IC
     resourceModel = GET  ../modelCatalog/{resourceConfig.applicationID}/applicationServiceModels/{resourceConfig.serviceModelID}/serviceResources/{resourceConfig.resourceID}
   end note

   alt if {managementFunction.appType} <> {resourceModel.resourceType} then
      IC --> sOP : 412 Precondition failed: expected {managementFunction.appType} but found {resourceModel.resourceType}
   end if

   IC -> IC :
   Note left: Create record, State=READY

   group serviceConfig State Check
      Note left of IC : Set serviceConfigTargetState = READY
      Loop For each resource in ServiceModelResources
         IC -> IC
         Note left: GET resourceConfig with resourceID={resource}
         Alt if 404 not found then
           Note left of IC
             Set serviceConfigTargetState = CREATING
             Exit loop
           End note
         End if
      End

      Alt If serviceConfig.State <> serviceConfigTargetState then
         IC -> IC :
         Note left: Update ServiceConfig State to READY
      End if
   End

   IC --> sOP : return 202 created

End

@enduml