<java-type name="ComputeNodes"> <xml-properties> <xml-property name="description" value="List of ComputeNodes in a CloudRegion"/> </xml-properties> <xml-root-element name="compute-nodes"/> <java-attributes> <xml-element container-type="java.util.ArrayList" java-attribute="computeNode" name="compute-node" type="inventory.aai.onap.org.v14.ComputeNode"/> </java-attributes> </java-type> <java-type name="ComputeNode"> <xml-root-element name="compute-node"/> <java-attributes> <xml-element java-attribute="nodeName" name="node-name" required="true" type="java.lang.String" xml-key="true"> <xml-properties> <xml-property name="description" value="UUID to uniquely identify a HPA capability"/> </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="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v14.RelationshipList"/> <xml-element container-type="java.util.ArrayList" java-attribute="hpaCapacity" name="hpa-capacity" type="inventory.aai.onap.org.v14.HpaCapacity"/> </java-attributes> <xml-properties> <xml-property name="description" value="Represents a Compute Node with HPA capacity information"/> <xml-property name="indexedProps" value="node-name"/> <xml-property name="dependentOn" value="cloud-region"/> <xml-property name="container" value="compute-nodes"/> </xml-properties> </java-type> <java-type name="HpaCapacity"> <xml-root-element name="hpa-capacity"/> <java-attributes> <xml-element java-attribute="hpaCapacityKey" name="hpa-capacity-key" required="true" type="java.lang.String" xml-key="true"> <xml-properties> <xml-property name="description" value="Composite key formed with hpaFeature and append list of hpaFeatureAttributes needed for capacity check"/> </xml-properties> </xml-element> <xml-element java-attribute="hpaCapacityValue" name="hpa-capacity-value" type="java.lang.String"> <xml-properties> <xml-property name="description" value="JSON string specifying the capacity (total,free), unit and metadata of the specific HPA attribute"/> </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="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v14.RelationshipList"/> </java-attributes> <xml-properties> <xml-property name="description" value="HPA Capability Feature attributes"/> <xml-property name="indexedProps" value="hpa-attribute-key"/> <xml-property name="dependentOn" value="hpa-capability"/> </xml-properties> </java-type> |
{ "from": "compute-node", "to": "cloud-region", "label": "org.onap.relationships.inventory.BelongsTo", "direction": "OUT", "multiplicity": "MANY2ONE", "contains-other-v": "!${direction}", "delete-other-v": "NONE", "SVC-INFRA": "NONE", "prevent-delete": "!${direction}", "default": "true", "description":"" }, { "from": "compute-node", "to": "flavor", "label": "org.onap.relationships.inventory.AssociatedWith", "direction": "OUT", "multiplicity": "MANY2MANY", "contains-other-v": "!${direction}", "delete-other-v": "NONE", "SVC-INFRA": "NONE", "prevent-delete": "!${direction}", "default": "true", "description":"" } |
For each flavor in cloud-region-flavor-list
For each hpaCapability in HPACapabilities requirement
Match hpaCapability in flavor
If matching hpaCapability found,
Check-Capacity(hpaCapacityKey, flavor, threshold).
Get the compute Nodes associated with the input flavor.
getHPACapacityValue(hpaCapacityKey)
if( (free/total) < threshold): //Not enough capacity
return False and add to discard set
else:
return True and add to candidate list
return from List of HPACapacity.get(hpaCapacityKey)
"HPA_feature_qualifications"
: {
"HPA_features"
[
{
"HPA feature name"
: <
"HPA feature name AKA HPA capability Name"
>
"HPA capacity matching attributes"
[
"<Attribute Name>"
}
],
"HPA capacity check attribute"
: <
"Attribute Name"
>
]
}
Example configuration file:
"HPA feature qualifications"
:{
"HPA features"
: [
{
"PCIePassthrough"
, [
"pciVendorid"
,
"pciDeviceID"
],
"pciCount"
},
{
"basicCapabilites"
, [
"numVirtualCPU"
],
"numVirtualCPU"
},
{
"basicCapabilities"
, [
"virtualMemSize"
], "virtalMemSize:}
]
}
Examples of forming the composite key from the metadata file during capacity check.
HPAFeature | HPACapabilityAttribute | Composite hpaCapacityKey |
---|---|---|
basicCapabilities | numVirtualCpu | basicCapabilities_numVirtualCpu |
basicCapabilities | virtualMemSize | basicCapabilities_virtualMemSize |
pciePassthrough | pciVendorId pciDeviceId | pciePassthrough_${pciVendorId}_${pciDeviceId} ${VAR} - replace with the hpa-capability-attribute-value |
hugePages | memoryPageSize | hugePages_memoryPageSize_4KB hugePages_memoryPageSize_2MB hugePages_memoryPageSize_1GB |