The Virtual Inventory provides access to other existing deployments. It is expected to be a distributed catalog and domain areas with their own Life Cycle and versions would have different domain roots.
This might be implemented by two separate objects as O-Clouds may be inventoried and managed independent of deployments which span them. Therefore O-Clouds and Deployments have two separate domain roots for the inventory created by a "deployment".
For the purposes of this implementation we will assume the following:
The Controller for inventory will be RESTful. The service endpoints will be used:
- O-Clouds - {apiRoot}/OCloud/v1.
- Deployments - {apiroot}/deployment/v1
Click here to view plantUML...
@startsalt
{
scale 1.5
{T
+…/OCloud/v1
++/oclouds
+++/<oCloudID>
++++/resourcePools
+++++/<resourcePoolID>
++++++/resources
+++++++/<resourceID>
++++/deploymentServices
+++++/<DMSID>
++++++/resourcePools
+…/deployments/v1
++/deployments
+++/<deploymentID>
}
}
@endsalt
- The O-Cloud Inventory Model is represented in the class diagram below
Click here to view plantUML...
@startuml
Class EndPoint {
IPV6Endpoint : string
IPV4Endpoint : string
}
Class OCloud {
oCloudID : string
IMSEndPoint : EndPoint
DMSList : string[]
resourcePools : string []
images : string []
}
Class ResourcePool {
resourceID : string
locationID : string
resourceNodes : string[]
}
Class OCloudNode {
oCloudID : string
resourePoolID : string
resourceID : string
resourceType : ResourceType
}
Class DeploymentService {
OcloudID : string
OcloudDMSID : string
DMSEndPoint : EndPoint
resourcePools : string []
tenants : string []
}
OCloud -- EndPoint : > has a
DeploymentService -left- EndPoint : > has a
OCloud *-- ResourcePool
OCloud *-- DeploymentService
DeploymentService -right- ResourcePool : > allocates resources in
ResourcePool *-- OCloudNode
@enduml
- The deployment Inventory Model is represented in the class diagram below
Click here to view plantUML...
@startuml
Class Deployment {
deploymentID : string
deploymentTenant : string
serviceConfigID : string
resourceConfigID : string
hostingOcloudID : string
hostingOcloudDMSID : string
hostedOCloudLocation : string
}
Deployment -left- Tenant : uses >
Deployment -- OCloud : deployed on >
Deployment -- DeploymentService : managed by >
Deployment -- Location : uses resources at >
Deployment -- ResourceConfiguration : with configuration >
Deployment -right- ServiceConfiguration : for service with >
@enduml