Enhance the schema for VIPs and ip address 89/9989/1
authorLin, Jerry (jl319x) <jl319x@att.com>
Fri, 1 Sep 2017 20:04:09 +0000 (16:04 -0400)
committerLin, Jerry (jl319x) <jl319x@att.com>
Fri, 1 Sep 2017 20:14:11 +0000 (16:14 -0400)
Issue-Id: AAI-260

Change-Id: Iffd6da011b82a6b92f46b52810236c6e67ef0d36
Signed-off-by: Lin, Jerry (jl319x) <jl319x@att.com>
aai-core/src/main/resources/dbedgerules/DbEdgeRules_v11.json
aai-schema/src/main/resources/aai_schema/aai_schema_v11.xsd
aai-schema/src/main/resources/oxm/aai_oxm_v11.xml

index 8be2a8c..7b97315 100644 (file)
                        "delete-other-v": "NONE",
                        "SVC-INFRA": "NONE",
                        "prevent-delete": "NONE"
+               },
+               {
+                       "from": "vnfc",
+                       "to": "vip-ipv4-address-list",
+                       "label": "uses",
+                       "direction": "OUT",
+                       "multiplicity": "Many2Many",
+                       "contains-other-v": "NONE",
+                       "delete-other-v": "NONE",
+                       "SVC-INFRA": "NONE",
+                       "prevent-delete": "NONE"
+               },
+               {
+                       "from": "vnfc",
+                       "to": "vip-ipv6-address-list",
+                       "label": "uses",
+                       "direction": "OUT",
+                       "multiplicity": "Many2Many",
+                       "contains-other-v": "NONE",
+                       "delete-other-v": "NONE",
+                       "SVC-INFRA": "NONE",
+                       "prevent-delete": "NONE"
+               },
+               {
+                       "from": "l3-interface-ipv4-address-list",
+                       "to": "vnfc",
+                       "label": "belongsTo",
+                       "direction": "IN",
+                       "multiplicity": "Many2One",
+                       "contains-other-v": "${direction}",
+                       "delete-other-v": "${direction}",
+                       "SVC-INFRA": "NONE",
+                       "prevent-delete": "NONE"
+               },
+               {
+                       "from": "l3-interface-ipv6-address-list",
+                       "to": "vnfc",
+                       "label": "belongsTo",
+                       "direction": "IN",
+                       "multiplicity": "Many2One",
+                       "contains-other-v": "${direction}",
+                       "delete-other-v": "${direction}",
+                       "SVC-INFRA": "NONE",
+                       "prevent-delete": "NONE"
                }
        ]
 }
index 70cfa32..2fd6bd6 100644 (file)
@@ -678,7 +678,7 @@ xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
     <xs:complexType>
       <xs:annotation>
         <xs:appinfo>
-          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="l3-interface-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface")</annox:annotate>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="l3-interface-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id",dependentOn="vlan,l-interface,vnfc")</annox:annotate>
         </xs:appinfo>
       </xs:annotation>
       <xs:sequence>
@@ -1150,6 +1150,13 @@ xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
             </xs:appinfo>
           </xs:annotation>
         </xs:element>
+        <xs:element name="allowed-address-pairs" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Freeform field for storing an ip address, list of ip addresses or a subnet block.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
         <xs:element ref="tns:vlans" minOccurs="0"/>
         <xs:element ref="tns:sriov-vfs" minOccurs="0"/>
         <xs:element ref="tns:l-interfaces" minOccurs="0"/>
@@ -1856,6 +1863,20 @@ xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
             </xs:appinfo>
           </xs:annotation>
         </xs:element>
+        <xs:element name="cloud-extra-info" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="ESR inputs extra information about the VIM or Cloud which will be decoded by MultiVIM.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="cloud-epa-caps" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="MultiVIM will discover and expose EPA capabilities.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
         <xs:element name="resource-version" type="xs:string" minOccurs="0">
           <xs:annotation>
             <xs:appinfo>
@@ -4642,6 +4663,8 @@ xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
           </xs:annotation>
         </xs:element>
         <xs:element ref="tns:relationship-list" minOccurs="0"/>
+        <xs:element ref="tns:l3-interface-ipv4-address-list" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:element ref="tns:l3-interface-ipv6-address-list" minOccurs="0" maxOccurs="unbounded"/>
       </xs:sequence>
     </xs:complexType>
   </xs:element>
@@ -4817,6 +4840,13 @@ xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
             </xs:appinfo>
           </xs:annotation>
         </xs:element>
+        <xs:element name="subnet-sequence" type="xs:int" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="sequence of the subnet")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
         <xs:element ref="tns:host-routes" minOccurs="0"/>
         <xs:element ref="tns:relationship-list" minOccurs="0"/>
       </xs:sequence>
@@ -6526,6 +6556,142 @@ xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
       </xs:sequence>
     </xs:complexType>
   </xs:element>
+  <xs:element name="vip-ipv4-address-list">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="IPv4 Address Range",indexedProps="vip-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vip-ipv4-address" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="IP address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vip-ipv4-prefix-length" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Prefix length, 32 for single address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vlan-id-inner" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Inner VLAN tag")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vlan-id-outer" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Outer VLAN tag")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-floating" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicator of fixed or floating address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="neutron-network-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="neutron-subnet-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="vip-ipv6-address-list">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.openecomp.aai.annotations.Metadata(description="IPv6 Address Range",indexedProps="vip-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="vip-ipv6-address" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(isKey=true,description="IP address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vip-ipv6-prefix-length" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Prefix length, 128 for single address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vlan-id-inner" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Inner VLAN tag")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="vlan-id-outer" type="xs:unsignedInt" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Outer VLAN tag")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="is-floating" type="xs:boolean" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Indicator of fixed or floating address")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="resource-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Used for optimistic concurrency.  Must be empty on create, valid on update and delete.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="neutron-network-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron network id of the interface that address belongs to")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="neutron-subnet-id" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.openecomp.aai.annotations.Metadata(description="Neutron id of subnet that address belongs to")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
   <xs:element name="network">
     <xs:complexType>
       <xs:annotation>
@@ -6552,6 +6718,8 @@ xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
         <xs:element ref="tns:route-table-references" minOccurs="0"/>
         <xs:element ref="tns:instance-groups" minOccurs="0"/>
         <xs:element ref="tns:zones" minOccurs="0"/>
+        <xs:element ref="tns:vip-ipv4-address-list" minOccurs="0"/>
+        <xs:element ref="tns:vip-ipv6-address-list" minOccurs="0"/>
       </xs:sequence>
     </xs:complexType>
   </xs:element>
index 0076980..0434bd0 100644 (file)
                                                <xml-property name="defaultValue" value="false"/>
                                                <xml-property name="description" value="Flag indicating the interface uses the IP Unnumbered configuration." />
                                        </xml-properties>
+                               </xml-element>
+                               <xml-element java-attribute="allowedAddressPairs" name="allowed-address-pairs" type="java.lang.String">
+                                       <xml-properties>
+                                               <xml-property name="description" value="Freeform field for storing an ip address, list of ip addresses or a subnet block." />
+                                       </xml-properties>
                                </xml-element>                          
                                <xml-element java-attribute="vlans" name="vlans" type="inventory.aai.onap.org.v11.Vlans" />
                                <xml-element java-attribute="sriovVfs" name="sriov-vfs" type="inventory.aai.onap.org.v11.SriovVfs" />
                        <xml-properties>
                                <xml-property name="description" value="IPv4 Address Range" />
                                <xml-property name="indexedProps" value="l3-interface-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id" />
-                               <xml-property name="dependentOn" value="vlan,l-interface" />
+                               <xml-property name="dependentOn" value="vlan,l-interface,vnfc" />
                        </xml-properties>
                </java-type>
 
                                <xml-element java-attribute="routeTableReferences" name="route-table-references" type="inventory.aai.onap.org.v11.RouteTableReferences" />
                                <xml-element java-attribute="instanceGroups" name="instance-groups" type="inventory.aai.onap.org.v11.InstanceGroups" />
                                <xml-element java-attribute="zones" name="zones" type="inventory.aai.onap.org.v11.Zones" />
+                               <xml-element java-attribute="vipIpv4AddressList" name="vip-ipv4-address-list" type="inventory.aai.onap.org.v11.VipIpv4AddressList" />
+                               <xml-element java-attribute="vipIpv6AddressList" name="vip-ipv6-address-list" type="inventory.aai.onap.org.v11.VipIpv6AddressList" />
                        </java-attributes>
                </java-type>
 
                                        </xml-properties>
                                </xml-element>
                                <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" />
+                               <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv4AddressList" name="l3-interface-ipv4-address-list" type="inventory.aai.onap.org.v11.L3InterfaceIpv4AddressList" />
+                               <xml-element container-type="java.util.ArrayList" java-attribute="l3InterfaceIpv6AddressList" name="l3-interface-ipv6-address-list" type="inventory.aai.onap.org.v11.L3InterfaceIpv6AddressList" />
                        </java-attributes>
                        <xml-properties>
                                <xml-property name="indexedProps" value="vnfc-name,prov-status,nfc-function,nfc-naming-code,ipaddress-v4-oam-vip,in-maint,is-closed-loop-disabled,group-notation,model-invariant-id,model-version-id" />
                                                <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="subnetSequence" name="subnet-sequence" type="java.lang.Integer">
+                                       <xml-properties>
+                                               <xml-property name="description" value="sequence of the subnet" />
+                                       </xml-properties>
+                               </xml-element>          
                                <xml-element java-attribute="hostRoutes" name="host-routes" type="inventory.aai.onap.org.v11.HostRoutes" />
                                <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" />                           
                        </java-attributes>
                                <xml-property name="container" value="host-routes" />
                        </xml-properties>
                </java-type>
+               <java-type name="VipIpv4AddressList">
+                       <xml-root-element name="vip-ipv4-address-list" />
+                       <java-attributes>
+                               <xml-element java-attribute="vipIpv4Address" name="vip-ipv4-address" required="true" type="java.lang.String" xml-key="true">
+                                       <xml-properties>
+                                               <xml-property name="description" value="IP address" />
+                                       </xml-properties>
+                               </xml-element>
+                               <xml-element java-attribute="vipIpv4PrefixLength" name="vip-ipv4-prefix-length" type="java.lang.Long">
+                                       <xml-properties>
+                                               <xml-property name="description" value="Prefix length, 32 for single address" />
+                                       </xml-properties>
+                               </xml-element>
+                               <xml-element java-attribute="vlanIdInner" name="vlan-id-inner" type="java.lang.Long">
+                                       <xml-properties>
+                                               <xml-property name="description" value="Inner VLAN tag" />
+                                       </xml-properties>
+                               </xml-element>
+                               <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long">
+                                       <xml-properties>
+                                               <xml-property name="description" value="Outer VLAN tag" />
+                                       </xml-properties>
+                               </xml-element>
+                               <xml-element java-attribute="isFloating" name="is-floating" type="java.lang.Boolean">
+                                       <xml-properties>
+                                               <xml-property name="description" value="Indicator of fixed or floating address" />
+                                       </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="neutronNetworkId" name="neutron-network-id" type="java.lang.String">
+                                       <xml-properties>
+                                               <xml-property name="description" value="Neutron network id of the interface that address belongs to" />
+                                       </xml-properties>
+                               </xml-element>
+                               <xml-element java-attribute="neutronSubnetId" name="neutron-subnet-id" type="java.lang.String">
+                                       <xml-properties>
+                                               <xml-property name="description" value="Neutron id of subnet that address belongs to" />
+                                       </xml-properties>
+                               </xml-element>
+                               <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" />
+                       </java-attributes>
+                       <xml-properties>
+                               <xml-property name="description" value="IPv4 Address Range" />
+                               <xml-property name="indexedProps" value="vip-ipv4-address,vlan-id-inner,neutron-network-id,neutron-subnet-id" />
+                       </xml-properties>
+               </java-type>
+               
+               <java-type name="VipIpv6AddressList">
+                       <xml-root-element name="vip-ipv6-address-list" />
+                       <java-attributes>
+                               <xml-element java-attribute="vipIpv6Address" name="vip-ipv6-address" required="true" type="java.lang.String" xml-key="true">
+                                       <xml-properties>
+                                               <xml-property name="description" value="IP address" />
+                                       </xml-properties>
+                               </xml-element>
+                               <xml-element java-attribute="vipIpv6PrefixLength" name="vip-ipv6-prefix-length" type="java.lang.Long">
+                                       <xml-properties>
+                                               <xml-property name="description" value="Prefix length, 128 for single address" />
+                                       </xml-properties>
+                               </xml-element>
+                               <xml-element java-attribute="vlanIdInner" name="vlan-id-inner" type="java.lang.Long">
+                                       <xml-properties>
+                                               <xml-property name="description" value="Inner VLAN tag" />
+                                       </xml-properties>
+                               </xml-element>
+                               <xml-element java-attribute="vlanIdOuter" name="vlan-id-outer" type="java.lang.Long">
+                                       <xml-properties>
+                                               <xml-property name="description" value="Outer VLAN tag" />
+                                       </xml-properties>
+                               </xml-element>
+                               <xml-element java-attribute="isFloating" name="is-floating" type="java.lang.Boolean">
+                                       <xml-properties>
+                                               <xml-property name="description" value="Indicator of fixed or floating address" />
+                                       </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="neutronNetworkId" name="neutron-network-id" type="java.lang.String">
+                                       <xml-properties>
+                                               <xml-property name="description" value="Neutron network id of the interface that address belongs to" />
+                                       </xml-properties>
+                               </xml-element>
+                               <xml-element java-attribute="neutronSubnetId" name="neutron-subnet-id" type="java.lang.String">
+                                       <xml-properties>
+                                               <xml-property name="description" value="Neutron id of subnet that address belongs to" />
+                                       </xml-properties>
+                               </xml-element>
+                               <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v11.RelationshipList" />
+                       </java-attributes>
+                       <xml-properties>
+                               <xml-property name="description" value="IPv6 Address Range" />
+                               <xml-property name="indexedProps" value="vip-ipv6-address,vlan-id-inner,neutron-network-id,neutron-subnet-id" />
+                       </xml-properties>
+               </java-type>
        </java-types>
 </xml-bindings>