@startuml
Title Application LCM Step 3 - Catalog Package
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
Participant sPMGR as "Package Manager" <<RICAPP>>
Boundary MC as "Model Catalog" <<SMO MVC State Manager>>
end box
== Catalog ==
sOP -> sPMGR : Catalog (applicationVersionID, modelCatalogEndPoint)
sPMGR -> MC : GET ../applications/<applicationVersionID>
alt if application not found
note over sPMGR : Requested Version not in Catalog, return error
else if application.State is NOT VALIDATED then
note over sPMGR : Requested Version not in Validated State, return error
else
sPMGR -> sPMGR : GetDeploymentList
loop foreach defined deployment configuration
sPMGR -> MC : POST ../applications/<applicationVersionID>/deployments {deployment}
return deploymentID
sPMGR -> sPMGR : GetDeploymentDescriptor
sPMGR -> MC : POST ../applications/<applicationVersionID>/deployments/<deploymentID>/descriptor {deployment}
sPMGR -> sPMGR : GetPolicyProfiles
loop foreach Policy Profile
sPMGR -> MC : POST ../applications/<applicationVersionID>/deployments/<deploymentID>/policytype {policyProfile}
end
sPMGR -> sPMGR : GetDataConsumptionInfo
loop foreach dataConsumptionDefinition in dataConsumptionInfo
sPMGR -> MC : POST ../applications/<applicationVersionID>/deployments/<deploymentID>/consumes {dataConsumptionDefinition}
end
sPMGR -> sPMGR : GetDataPublicationInfo
loop foreach dataPublicationDefinition in dataPublicationInfo
sPMGR -> MC : POST ../applications/<applicationVersionID>/deployments/<deploymentID>/publishes {dataPublicationDefinition}
end
sPMGR -> sPMGR : GetDeploymentConfigurationSchema
sPMGR -> MC : POST ../applications/<applicationVersionID>/deployments/<deploymentID>/DeploymentConfiguration {deploymentConfiguration}
sPMGR -> sPMGR : GetApplicationConfigurationSchema
sPMGR -> MC : POST ../applications/<applicationVersionID>/deployments/<deploymentID>/ApplicationConfiguration {applicationConfiguration}
sPMGR -> sPMGR : GetDeploymentImages
loop foreach imageFile in deploymentImages
sPMGR -> MC : POST ../applications/<applicationVersionID>/deployments/<deploymentID>/images {imageFile}
end
sPMGR -> sPMGR : GetCertificates
loop foreach certificate in applicationCertificates
sPMGR -> MC : POST ../applications/<applicationVersionID>/deployments/<deploymentID>/certificates {certificate}
end
end
end if
sPMGR --> sOP : Status
@enduml
2 Comments
Martin Skorupski
Question:
I see here one "SET" request - what is the advantage of several independent SET requests?
David Kinsey
No real advantage, except object complexity. If we want one set then the entire object and its heirarchy, including sub-structure has to be known to the GET/SET pair. There is also more data for ML applications that is not represented here. I kept it this way such that the cataloging routines can simply be called without knowledge to sub-structure. It is of note to see that the Create of the objects under the application use POST instead of PUT. The main application version entry has an external key. These objects use POST such that the catalog provides the record key. This would change if it became one PUT (update) activity.