summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLin, Jerry (jl319x) <jl319x@att.com>2017-09-01 16:04:09 -0400
committerLin, Jerry (jl319x) <jl319x@att.com>2017-09-01 16:14:11 -0400
commitd74484c9204cfa150d87b88ac4d6cb3e4c72a983 (patch)
tree1628c7d6027a1909a2844261e9163807c81842f3
parent752504bac2b1066f9c8a979b54fccc8281ef8aeb (diff)
Enhance the schema for VIPs and ip address
Issue-Id: AAI-260 Change-Id: Iffd6da011b82a6b92f46b52810236c6e67ef0d36 Signed-off-by: Lin, Jerry (jl319x) <jl319x@att.com>
-rw-r--r--aai-core/src/main/resources/dbedgerules/DbEdgeRules_v11.json44
-rw-r--r--aai-schema/src/main/resources/aai_schema/aai_schema_v11.xsd170
-rw-r--r--aai-schema/src/main/resources/oxm/aai_oxm_v11.xml117
3 files changed, 329 insertions, 2 deletions
diff --git a/aai-core/src/main/resources/dbedgerules/DbEdgeRules_v11.json b/aai-core/src/main/resources/dbedgerules/DbEdgeRules_v11.json
index 8be2a8cc..7b973150 100644
--- a/aai-core/src/main/resources/dbedgerules/DbEdgeRules_v11.json
+++ b/aai-core/src/main/resources/dbedgerules/DbEdgeRules_v11.json
@@ -1968,6 +1968,50 @@
"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"
}
]
}
diff --git a/aai-schema/src/main/resources/aai_schema/aai_schema_v11.xsd b/aai-schema/src/main/resources/aai_schema/aai_schema_v11.xsd
index 70cfa328..2fd6bd6b 100644
--- a/aai-schema/src/main/resources/aai_schema/aai_schema_v11.xsd
+++ b/aai-schema/src/main/resources/aai_schema/aai_schema_v11.xsd
@@ -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>
diff --git a/aai-schema/src/main/resources/oxm/aai_oxm_v11.xml b/aai-schema/src/main/resources/oxm/aai_oxm_v11.xml
index 00769800..0434bd0f 100644
--- a/aai-schema/src/main/resources/oxm/aai_oxm_v11.xml
+++ b/aai-schema/src/main/resources/oxm/aai_oxm_v11.xml
@@ -832,6 +832,11 @@
<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" />
@@ -988,7 +993,7 @@
<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>
@@ -2503,6 +2508,8 @@
<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>
@@ -3289,6 +3296,8 @@
</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" />
@@ -3619,6 +3628,11 @@
<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>
@@ -5740,5 +5754,106 @@
<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>