Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Data centers typically have flavors (openstack calls them flavors,  Azure calls them VM sizes and AWS calls them as Instance types). Each flavor is represented by hardware features.   When these are discovered by ONAP,  there are few ways to represent them in A&AI DB. 
    • Approach 1:
      • flavors as children to the cloud-region (Already existing)
      • Represent HPA capabilities under each flavor (HPA capabilities as children of each flavor)
    • Approach 2:
      • flavors as children to the cloud-region (Already existing). 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?
  • Each HPACapability is defined as 
    {Capability NameHPACapability-id,HPAFeature, Schema Version, hardware-architecture, [List of HPAAttributes] - names and values}
  • HPAFeatureAttribute is <hpaAttributeKey, hpaAttributeValue>
  • Refer Hardware Platform Enablement In ONAP for more specific Capability names and values.

...

Code Block
languagexml
themeEmacs
titleModified AAI Schema
collapsetrue
<java-type name="Flavor">
    <xml-root-element name="flavor"/>
    <java-attributes>
        <xml-element java-attribute="flavorId" name="flavor-id" required="true" type="java.lang.String" xml-key="true">
            <xml-properties>
                <xml-property name="description" value="Flavor id, expected to be unique across cloud-region."/>
            </xml-properties>
        </xml-element>
        <xml-element java-attribute="flavorName" name="flavor-name" required="true" type="java.lang.String">
            <xml-properties>
                <xml-property name="description" value="Flavor name"/>
            </xml-properties>
        </xml-element>
        <xml-element java-attribute="flavorVcpus" name="flavor-vcpus" type="java.lang.Integer">
            <xml-properties>
                <xml-property name="description" value="Number of CPUs"/>
            </xml-properties>
        </xml-element>
        <xml-element java-attribute="flavorRam" name="flavor-ram" type="java.lang.Integer">
            <xml-properties>
                <xml-property name="description" value="Amount of memory"/>
            </xml-properties>
        </xml-element>
        <xml-element java-attribute="flavorDisk" name="flavor-disk" type="java.lang.Integer">
            <xml-properties>
                <xml-property name="description" value="Disk space"/>
            </xml-properties>
        </xml-element>
        <xml-element java-attribute="flavorEphemeral" name="flavor-ephemeral" type="java.lang.Integer">
            <xml-properties>
                <xml-property name="description" value="Amount of ephemeral disk space"/>
            </xml-properties>
        </xml-element>
        <xml-element java-attribute="flavorSwap" name="flavor-swap" type="java.lang.String">
            <xml-properties>
                <xml-property name="description" value="amount of swap space allocation"/>
            </xml-properties>
        </xml-element>
        <xml-element java-attribute="flavorIsPublic" name="flavor-is-public" type="java.lang.Boolean">
            <xml-properties>
                <xml-property name="description"
                              value="whether flavor is available to all users or private to the tenant it was created in."/>
            </xml-properties>
        </xml-element>
        <xml-element java-attribute="flavorSelflink" name="flavor-selflink" required="true" type="java.lang.String">
            <xml-properties>
                <xml-property name="description" value="URL to endpoint where AAI can get more details"/>
            </xml-properties>
        </xml-element>
        <xml-element java-attribute="flavorDisabled" name="flavor-disabled" type="java.lang.Boolean">
            <xml-properties>
                <xml-property name="description" value="Boolean as to whether this flavor is no longer enabled"/>
            </xml-properties>
        </xml-element>
        <xml-element java-attribute="hpaCapabilities" name="hpa-capabilities"
                     type="inventory.aai.onap.org.v13.HpaCapabilities">
            <xml-properties>
                <xml-property name="description" value="List of HPA Capabilities associated with this flavor"/>
            </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.v13.RelationshipList"/>
    </java-attributes>
    <xml-properties>
        <xml-property name="description" value="Openstack flavor."/>
        <xml-property name="nameProps" value="flavor-name"/>
        <xml-property name="indexedProps" value="flavor-name,flavor-id"/>
        <xml-property name="dependentOn" value="cloud-region"/>
        <xml-property name="container" value="flavors"/>
    </xml-properties>
</java-type>

<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.v13.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" 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="hpaCapabilityNamehpaFeature" name="hpa-capability-namefeature" required="true" type="java.lang.String">
        <xml-properties>
            <xml-property name="description" value="Name of the HPACapability"/>
        </xml-properties>
    </xml-element>
    <xml-element java-attribute="version" name="hpa-version" type="java.lang.String">
        <xml-properties>
            <xml-property name="description" value="HPA schema version"/>
        </xml-properties>
    </xml-element>
    <xml-element java-attribute="hardwareArchitecture" name="hpa-hw-arch" type="java.lang.String">
        <xml-properties>
            <xml-property name="description" value="Hardware architecture"/>
        </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.v13.RelationshipList"/>
    <xml-element container-type="java.util.ArrayList" java-attribute="hpaSimpleAttributehpaFeatureAttribute" name="hpa-simplefeature-attribute"
                 type="inventory.aai.onap.org.v13.HpaSimpleAttributeHpaFeatureAttribute"/>
</java-attributes>
<xml-properties>
    <xml-property name="description" value="Represents a HPA capability"/>
    <xml-property name="nameProps" value="hpa-capability-namefeature"/>
    <xml-property name="indexedProps" value="hpa-capability-namefeature,hpa-hw-arch,hpa-capability-id"/>
    <xml-property name="dependentOn" value="flavor"/>
    <xml-property name="container" value="hpa-capabilities"/>
</xml-properties>
</java-type>

<java-type name="HpaSimpleAttributeHpaFeatureAttribute">
<xml-root-element name="hpa-simplefeature-attribute"/>
<java-attributes>
    <xml-element java-attribute="hpaAttributeKey" name="hpa-attr-key" type="java.lang.String">
        <xml-properties>
            <xml-property name="description" value="name of the specific HPA attribute"/>
        </xml-properties>
    </xml-element>
    <xml-element java-attribute="hpaAttributeValue" name="hpa-attr-value" type="java.lang.String">
        <xml-properties>
            <xml-property name="description"
value="value of the specific HPA attribute"/>         </xml-properties>     </xml-element>     <xml-element java-attribute="hpaAttributeValueType" name="hpa-attr-value-type" type="java.lang.String">
        <xml-properties>
            <xml-property name="description" value="Data JSON string specifying the value, unit and type of the specific value (Integer/String/etc..)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.v13.RelationshipList"/>
</java-attributes>
<xml-properties>
    <xml-property name="description" value="HPA Capability simpleFeature attributes"/>
    <xml-property name="container" value="hpa-capability"/>
</xml-properties>
</java-type>

...