...
- Each cloud-region has a list of HPACapabilities and list of HPA flavors. Each HPA flavor is associated with set of discovered HPA capabilities. There are few ways to represent flavors and capabilities
- Approach 1:
- Represent HPA flavors in each cloud-region. (HPA flavors as children to the cloud-region This already exists)
- Represent HPA capabilities under each HPA flavor (HPA capabilities as children of each HPA flavor)
- Approach 2:
- Represent HPA flavors as children to the cloud-region. Also, represent HPA capabilities also children to the cloud-regions.
- Then provide relationship between flavors and capabilities.
- Approach 3:
- Approach 1 +
- Create another tree with capability to region+flavor list.
- Which approach to follow? Some guidance from A&AI team. Requirement is this:
- During VNF instantiation, OOF gets hold of hardware requirements and based on that requirements, it needs to find out the best cloud-region and flavor.
- Would Approach 3 seem possible?
- Approach 1:
- Each HPACapability is defined as
{Capability Name, Schema Version, hardware-architecture, [List of HPAAttributes] - names and values} - HPAAttribute is a list of <hpaAttributeKey, hpaAttributeValue>
- ComplexAttribute is a list of list of HPAAttributes. For eg: NUMA might have list of HPAttributes for every NUMA node.
- Refer Hardware Platform Enablement In ONAP for more specific Capability names and values.
A&AI Schema Changes
Example: Run time view of A&AI graph instance
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
<java-type name="CloudRegion"> <xml-root-element name="cloud-region" /> <java-attributes> <xml-element java-attribute="cloudOwner" name="cloud-owner" required="true" type="java.lang.String" xml-key="true"> <xml-properties> <xml-property name="description" value="Identifies the vendor and cloud name. First part of composite key should be formatted as vendor-cloudname" /> </xml-properties> </xml-element> <xml-element java-attribute="cloudRegionId" name="cloud-region-id" required="true" type="java.lang.String" xml-key="true"> <xml-properties> <xml-property name="description" value="Identifier used by the vendor for the region. Second part of composite key" /> </xml-properties> </xml-element> <xml-element java-attribute="cloudType" name="cloud-type" type="java.lang.String"> <xml-properties> <xml-property name="description" value="Type of the cloud (e.g., openstack)" /> </xml-properties> </xml-element> <xml-element java-attribute="ownerDefinedType" name="owner-defined-type" type="java.lang.String"> <xml-properties> <xml-property name="description" value="Cloud-owner defined type indicator (e.g., dcp, lcp)" /> </xml-properties> </xml-element> <xml-element java-attribute="cloudRegionVersion" name="cloud-region-version" type="java.lang.String"> <xml-properties> <xml-property name="description" value="Software version employed at the site. NOTE - THIS FIELD IS NOT KEPT UP TO DATE." /> </xml-properties> </xml-element> <xml-element java-attribute="identityUrl" name="identity-url" type="java.lang.String"> <xml-properties> <xml-property name="description" value="URL of the keystone identity service" /> </xml-properties> </xml-element> <xml-element java-attribute="cloudZone" name="cloud-zone" type="java.lang.String"> <xml-properties> <xml-property name="description" value="Zone where the cloud is homed. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED." /> </xml-properties> </xml-element> <xml-element java-attribute="complexName" name="complex-name" type="java.lang.String"> <xml-properties> <xml-property name="description" value="complex name for cloud-region instance. NOTE - THIS FIELD IS NOT CORRECTLY POPULATED." /> </xml-properties> </xml-element> <xml-element default-value="false" required="true" java-attribute="sriovAutomation" name="sriov-automation" type="java.lang.Boolean"> <xml-properties> <xml-property name="defaultValue" value="false"/> <xml-property name="description" value="Whether the cloud region supports (true) or does not support (false) SR-IOV automation." /> </xml-properties> </xml-element> <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> <xml-properties> <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> </xml-properties> </xml-element> <xml-element java-attribute="volumeGroups" name="volume-groups" type="inventory.aai.onap.org.v12.VolumeGroups" /> <xml-element java-attribute="tenants" name="tenants" type="inventory.aai.onap.org.v12.Tenants" /> <xml-element java-attribute="flavors" name="flavors" type="inventory.aai.onap.org.v12.Flavors" /> <xml-element java-attribute="groupAssignments" name="group-assignments" type="inventory.aai.onap.org.v12.GroupAssignments" /> <xml-element java-attribute="snapshots" name="snapshots" type="inventory.aai.onap.org.v12.Snapshots" /> <xml-element java-attribute="images" name="images" type="inventory.aai.onap.org.v12.Images" /> <xml-element java-attribute="dvsSwitches" name="dvs-switches" type="inventory.aai.onap.org.v12.DvsSwitches" /> <xml-element java-attribute="oamNetworks" name="oam-networks" type="inventory.aai.onap.org.v12.OamNetworks" /> <xml-element java-attribute="availabilityZones" name="availability-zones" type="inventory.aai.onap.org.v12.AvailabilityZones" /> <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v12.RelationshipList" /> <xml-element container-type="java.util.ArrayList" java-attribute="vipIpv4AddressList" name="vip-ipv4-address-list" type="inventory.aai.onap.org.v12.VipIpv4AddressList" /> <xml-element container-type="java.util.ArrayList" java-attribute="vipIpv6AddressList" name="vip-ipv6-address-list" type="inventory.aai.onap.org.v12.VipIpv6AddressList" /> <xml-element java-attribute="hpaCapabilities" name="hpa-capabilities" type="inventory.aai.onap.org.v12.HPACapabilities" /> </java-attributes> <xml-properties> <xml-property name="description" value="cloud-region designates an installation of a cloud cluster or region or instantiation. In cloud, this could be an LCP or DCP. Cloud regions are uniquely identified by a composite key, cloud-owner + cloud-region-id. The format of the cloud-owner is vendor-cloudname" /> <xml-property name="indexedProps" value="cloud-owner,cloud-region-id,cloud-type,owner-defined-type" /> <xml-property name="nameProps" value="owner-defined-type" /> <xml-property name="container" value="cloud-regions" /> <xml-property name="namespace" value="cloud-infrastructure" /> </xml-properties> </java-type> <!-- NEW NODES for HPA Capabilities --> <java-type name="HPACapabilities"> <xml-properties> <xml-property name="description" value="Collection of HPA Capabilities" /> </xml-properties> <xml-root-element name="hpa-capabilities" /> <java-attributes> <xml-element container-type="java.util.ArrayList" java-attribute="hpaCapability" name="hpa-capability" type="inventory.aai.onap.org.v12.HPACapability" /> </java-attributes> </java-type> <java-type name="HPACapability"> <xml-root-element name="hpa-capability" /> <java-attributes> <xml-element java-attribute="hpaCapabilityId" name="hpa-capability-id" type="java.lang.String" /> <xml-element java-attribute="hpaCapabilityName" name="hpa-capability-name" type="java.lang.String" /> <xml-element java-attribute="version" name="hpa-version" type="java.lang.String" /> <xml-element java-attribute="hardware-architecture" name="hpa-hw-arch" type="java.lang.String" /> <xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String"> <xml-properties> <xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." /> </xml-properties> </xml-element> <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v12.RelationshipList" /> <xml-element container-type="java.util.ArrayList" java-attribute="hpaFeatureAtrribute" name="hpa-attribute" type="inventory.aai.onap.org.v12.HPAFeatureAtrribute" /> </java-attributes> <xml-properties> <xml-elementproperty container-typename="java.util.ArrayListdescription" java-attributevalue="hpaFeatureAtrribute" name="hpa-attribute" type="inventory.aai.onap.org.v12.HPAComplexAtrribute" /> </java-attributes> <xml-properties> <xml-property name="description" value="Represents a HPA capability" /> <xml-property name="nameProps" Represents a HPA capability" /> <xml-property name="nameProps" value="hpa-capability-name" /> <xml-property name="indexedProps" value="hpa-capability-name,hardware-architecture" /> <xml-property name="dependentOn" value="cloud-region" /> <xml-property name="container" value="hpa-capabilities" /> </xml-properties> </java-type> <java-type name="HPAFeatureAttribute"> <xml-properties> <xml-property name="description" value="HPA Capability simple attributes" /> </xml-properties> <xml-root-element name="hpa-attribute" /> <java-attributes> <xml-element java-attribute="hpaAttributeKey" name="hpa-attr-key" type="java.lang.String" /> <xml-element java-attribute="hpaAttributeValue" name="hpa-attr-value" type="java.lang.String" /> <xml-element java-attribute="hpaAttributeValueType" name="hpa-attr-value-type" type="java.lang.String" /> </java-attributes> </java-type> <java-type name="HPAComplexAttribute"> <xml-properties> <xml-property name="description" value="HPA Capabilities with a set of FeatureAttributeList" /> </xml-properties> <xml-root-element name="hpa-complex-attribute" /> <java-attributes> <xml-element container-type="java.util.ArrayList" java-attribute="hpaFeatureAtrribute" name="hpa-attribute" type="inventory.aai.onap.org.v12.HPAFeatureAtrribute" /> </java-attributes> </java-type> |
...