AAI-1492 Add ext-aai-network schema for CCVPN uc 43/60843/11
authorKeong Lim <keong.lim@huawei.com>
Thu, 16 Aug 2018 05:56:32 +0000 (15:56 +1000)
committerKeong Lim <keong.lim@huawei.com>
Mon, 10 Sep 2018 16:32:35 +0000 (02:32 +1000)
Issue-ID: AAI-1492
Add ext-aai-network element to network namespace.
Add components from network namespace.
Add esr-system-info component.
Add EdgeRules from ext-aai-network to esr-system-info, connectivity and
all the other schema elements.
Make esr-system-info dependentOn ext-aai-network.
Change sub-components of ext-aai-network to COUSIN edge as workaround.
Add relationship-list as workaround.

Change-Id: I8ec11660db7887c5aebcdbe2899c95c457f74e14
Signed-off-by: Keong Lim <keong.lim@huawei.com>
aai-schema/src/main/resources/onap/aai_schema/aai_schema_v14.xsd
aai-schema/src/main/resources/onap/dbedgerules/v14/DbEdgeRules_ccvpn_v14.json
aai-schema/src/main/resources/onap/oxm/v14/aai_oxm_v14.xml

index 22e7961..3058980 100644 (file)
@@ -2074,7 +2074,7 @@ xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
     <xs:complexType>
       <xs:annotation>
         <xs:appinfo>
-          <annox:annotate target="class">@org.onap.aai.annotations.Metadata(description="Persist common address information of external systems.",indexedProps="esr-system-info-id,system-name,system-type",searchable="esr-system-info-id,system-name,system-type",container="esr-system-info-list",dependentOn="cloud-region,esr-ems,esr-vnfm,esr-thirdparty-sdnc")</annox:annotate>
+          <annox:annotate target="class">@org.onap.aai.annotations.Metadata(description="Persist common address information of external systems.",indexedProps="esr-system-info-id,system-name,system-type",searchable="esr-system-info-id,system-name,system-type",container="esr-system-info-list",dependentOn="cloud-region,esr-ems,esr-vnfm,esr-thirdparty-sdnc,ext-aai-network")</annox:annotate>
         </xs:appinfo>
       </xs:annotation>
       <xs:sequence>
@@ -9299,6 +9299,40 @@ xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
       </xs:sequence>
     </xs:complexType>
   </xs:element>
+  <xs:element name="ext-aai-network">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:appinfo>
+          <annox:annotate target="class">@org.onap.aai.annotations.Metadata(description="Refer to an external AAI in another ONAP.",indexedProps="aai-id",searchable="aai-id",container="ext-aai-networks",namespace="network")</annox:annotate>
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:sequence>
+        <xs:element name="aai-id" type="xs:string">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(isKey=true,description="Unique ID of the referenced AAI.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="schema-version" type="xs:string" minOccurs="0">
+          <xs:annotation>
+            <xs:appinfo>
+              <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="Schema version of the referenced AAI.")</annox:annotate>
+            </xs:appinfo>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="tns:esr-system-info" minOccurs="0"/>
+        <xs:element ref="tns:relationship-list" minOccurs="0"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="ext-aai-networks">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="tns:ext-aai-network" minOccurs="0" maxOccurs="5000"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
   <xs:element name="network">
     <xs:complexType>
       <xs:annotation>
@@ -9336,6 +9370,7 @@ xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
         <xs:element ref="tns:sdwan-vpns" minOccurs="0"/>
         <xs:element ref="tns:devices" minOccurs="0"/>
         <xs:element ref="tns:wan-port-configs" minOccurs="0"/>
+        <xs:element ref="tns:ext-aai-networks" minOccurs="0"/>
       </xs:sequence>
     </xs:complexType>
   </xs:element>
index 1b37f47..a43c756 100644 (file)
                "prevent-delete": "NONE",
                "default": "true",
                "description":"For CCVPN Usecase"
+       },
+       {
+               "from": "ext-aai-network",
+               "to": "esr-system-info",
+               "label": "org.onap.relationships.inventory.Uses",
+               "direction": "OUT",
+               "multiplicity": "ONE2MANY",
+               "contains-other-v": "${direction}",
+               "delete-other-v": "${direction}",
+               "prevent-delete": "!${direction}",
+               "default": "true",
+               "description":"For CCVPN Usecase"
+       },
+       {
+               "from": "logical-link",
+               "to": "ext-aai-network",
+               "label": "org.onap.relationships.inventory.BelongsTo",
+               "direction": "OUT",
+               "multiplicity": "MANY2MANY",
+               "contains-other-v": "NONE",
+               "delete-other-v": "${direction}",
+               "prevent-delete": "!${direction}",
+               "default": "true",
+               "description":"For CCVPN Usecase"
+       },
+       {
+               "from": "vpn-binding",
+               "to": "ext-aai-network",
+               "label": "org.onap.relationships.inventory.BelongsTo",
+               "direction": "OUT",
+               "multiplicity": "MANY2MANY",
+               "contains-other-v": "NONE",
+               "delete-other-v": "${direction}",
+               "prevent-delete": "!${direction}",
+               "default": "true",
+               "description":"For CCVPN Usecase"
+       },
+       {
+               "from": "pnf",
+               "to": "ext-aai-network",
+               "label": "org.onap.relationships.inventory.BelongsTo",
+               "direction": "OUT",
+               "multiplicity": "MANY2MANY",
+               "contains-other-v": "NONE",
+               "delete-other-v": "${direction}",
+               "prevent-delete": "!${direction}",
+               "default": "true",
+               "description":"For CCVPN Usecase"
+       },
+       {
+               "from": "connectivity",
+               "to": "ext-aai-network",
+               "label": "org.onap.relationships.inventory.BelongsTo",
+               "direction": "OUT",
+               "multiplicity": "MANY2MANY",
+               "contains-other-v": "NONE",
+               "delete-other-v": "${direction}",
+               "prevent-delete": "!${direction}",
+               "default": "true",
+               "description":"For CCVPN Usecase"
+       },
+       {
+               "from": "lan-port-config",
+               "to": "ext-aai-network",
+               "label": "org.onap.relationships.inventory.BelongsTo",
+               "direction": "OUT",
+               "multiplicity": "MANY2MANY",
+               "contains-other-v": "NONE",
+               "delete-other-v": "${direction}",
+               "prevent-delete": "!${direction}",
+               "default": "true",
+               "description":"For CCVPN Usecase"
+       },
+       {
+               "from": "network-resource",
+               "to": "ext-aai-network",
+               "label": "org.onap.relationships.inventory.BelongsTo",
+               "direction": "OUT",
+               "multiplicity": "MANY2MANY",
+               "contains-other-v": "NONE",
+               "delete-other-v": "${direction}",
+               "prevent-delete": "!${direction}",
+               "default": "true",
+               "description":"For CCVPN Usecase"
+       },
+       {
+               "from": "site-resource",
+               "to": "ext-aai-network",
+               "label": "org.onap.relationships.inventory.BelongsTo",
+               "direction": "OUT",
+               "multiplicity": "MANY2MANY",
+               "contains-other-v": "NONE",
+               "delete-other-v": "${direction}",
+               "prevent-delete": "!${direction}",
+               "default": "true",
+               "description":"For CCVPN Usecase"
+       },
+       {
+               "from": "sdwan-vpn",
+               "to": "ext-aai-network",
+               "label": "org.onap.relationships.inventory.BelongsTo",
+               "direction": "OUT",
+               "multiplicity": "MANY2MANY",
+               "contains-other-v": "NONE",
+               "delete-other-v": "${direction}",
+               "prevent-delete": "!${direction}",
+               "default": "true",
+               "description":"For CCVPN Usecase"
+       },
+       {
+               "from": "device",
+               "to": "ext-aai-network",
+               "label": "org.onap.relationships.inventory.BelongsTo",
+               "direction": "OUT",
+               "multiplicity": "MANY2MANY",
+               "contains-other-v": "NONE",
+               "delete-other-v": "${direction}",
+               "prevent-delete": "!${direction}",
+               "default": "true",
+               "description":"For CCVPN Usecase"
+       },
+       {
+               "from": "wan-port-config",
+               "to": "ext-aai-network",
+               "label": "org.onap.relationships.inventory.BelongsTo",
+               "direction": "OUT",
+               "multiplicity": "MANY2MANY",
+               "contains-other-v": "NONE",
+               "delete-other-v": "${direction}",
+               "prevent-delete": "!${direction}",
+               "default": "true",
+               "description":"For CCVPN Usecase"
        }
   ]
 }
index 5873bba..a369c50 100644 (file)
                                <xml-property name="indexedProps" value="esr-system-info-id,system-name,system-type" />
                                <xml-property name="searchable" value="esr-system-info-id,system-name,system-type" />
                                <xml-property name="container" value="esr-system-info-list" />
-                               <xml-property name="dependentOn" value="cloud-region,esr-ems,esr-vnfm,esr-thirdparty-sdnc" />
+                               <xml-property name="dependentOn" value="cloud-region,esr-ems,esr-vnfm,esr-thirdparty-sdnc,ext-aai-network" />
                        </xml-properties>
                </java-type>
 
                                <xml-element java-attribute="sdwanVpns" name="sdwan-vpns" type="inventory.aai.onap.org.v14.SdwanVpns" />
                                <xml-element java-attribute="devices" name="devices" type="inventory.aai.onap.org.v14.Devices" />
                                <xml-element java-attribute="wanPortConfigs" name="wan-port-configs" type="inventory.aai.onap.org.v14.WanPortConfigs" />
+                               <xml-element java-attribute="extAaiNetworks" name="ext-aai-networks" type="inventory.aai.onap.org.v14.ExtAaiNetworks" />
             </java-attributes>
         </java-type>
         <java-type name="Configurations">
                        </java-attributes>
                </java-type>
 
+               <java-type name="ExtAaiNetworks">
+                       <xml-root-element name="ext-aai-networks" />
+                       <java-attributes>
+                               <xml-element container-type="java.util.ArrayList" java-attribute="extAaiNetwork" name="ext-aai-network" type="inventory.aai.onap.org.v14.ExtAaiNetwork" />
+                       </java-attributes>
+               </java-type>
+               <java-type name="ExtAaiNetwork">
+                       <xml-root-element name="ext-aai-network" />
+                       <java-attributes>
+                               <xml-element java-attribute="aaiId" name="aai-id" required="true" type="java.lang.String" xml-key="true">
+                                       <xml-properties>
+                                               <xml-property name="description" value="Unique ID of the referenced AAI." />
+                                       </xml-properties>
+                               </xml-element>
+                               <xml-element java-attribute="schemaVersion" name="schema-version" type="java.lang.String">
+                                       <xml-properties>
+                                               <xml-property name="description" value="Schema version of the referenced AAI." />
+                                       </xml-properties>
+                               </xml-element>
+                               <xml-element java-attribute="esrSystemInfo" name="esr-system-info" type="inventory.aai.onap.org.v14.EsrSystemInfo" />
+
+                               <!-- Want to use these as sub-components, but workaround is to use COUSIN edges in relationship-list.
+                               <xml-element java-attribute="logicalLinks" name="logical-links" type="inventory.aai.onap.org.v14.LogicalLinks" />
+                               <xml-element java-attribute="vpnBindings" name="vpn-bindings" type="inventory.aai.onap.org.v14.VpnBindings" />
+                               <xml-element java-attribute="pnfs" name="pnfs" type="inventory.aai.onap.org.v14.Pnfs" />
+
+                               <xml-element java-attribute="connectivities" name="connectivities" type="inventory.aai.onap.org.v14.Connectivities" />
+                               <xml-element java-attribute="lanPortConfigs" name="lan-port-configs" type="inventory.aai.onap.org.v14.LanPortConfigs" />
+                               <xml-element java-attribute="networkResources" name="network-resources" type="inventory.aai.onap.org.v14.NetworkResources" />
+                               <xml-element java-attribute="siteResources" name="site-resources" type="inventory.aai.onap.org.v14.SiteResources" />
+                               <xml-element java-attribute="sdwanVpns" name="sdwan-vpns" type="inventory.aai.onap.org.v14.SdwanVpns" />
+                               <xml-element java-attribute="devices" name="devices" type="inventory.aai.onap.org.v14.Devices" />
+                               <xml-element java-attribute="wanPortConfigs" name="wan-port-configs" type="inventory.aai.onap.org.v14.WanPortConfigs" /> -->
+                               <xml-element java-attribute="relationshipList" name="relationship-list" type="inventory.aai.onap.org.v14.RelationshipList" />
+                               </java-attributes>
+                       <xml-properties>
+                               <xml-property name="description" value="Refer to an external AAI in another ONAP." />
+                               <xml-property name="indexedProps" value="aai-id" />
+                               <xml-property name="searchable" value="aai-id" />
+                               <xml-property name="container" value="ext-aai-networks" />
+                               <xml-property name="namespace" value="network" />
+                       </xml-properties>
+               </java-type>
+
        </java-types>
 </xml-bindings>