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