diff options
author | Lin, Jerry (jl319x) <jl319x@att.com> | 2017-09-01 16:04:09 -0400 |
---|---|---|
committer | Lin, Jerry (jl319x) <jl319x@att.com> | 2017-09-01 16:14:11 -0400 |
commit | d74484c9204cfa150d87b88ac4d6cb3e4c72a983 (patch) | |
tree | 1628c7d6027a1909a2844261e9163807c81842f3 | |
parent | 752504bac2b1066f9c8a979b54fccc8281ef8aeb (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>
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> |