2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 ONAP Intellectual Property. All rights
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END=========================================================
22 package org.onap.ccsdk.sli.adaptors.aai;
24 import java.io.UnsupportedEncodingException;
25 import java.net.MalformedURLException;
27 import java.util.Properties;
29 import org.onap.ccsdk.sli.adaptors.aai.data.AAIDatum;
30 import org.openecomp.aai.inventory.v11.L3InterfaceIpv6AddressList;
32 import com.fasterxml.jackson.core.JsonProcessingException;
33 import com.fasterxml.jackson.databind.ObjectMapper;
35 public class L3InterfaceIpv6AddressListRequest extends AAIRequest {
38 * Note: there are 3 possible paths:
39 * /network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
40 * /network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
41 * /network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
42 * /network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
43 * /inventory/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
44 * /inventory/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
45 * /inventory/cloud-infrastructure/cloud-regions/cloud-region/{cloud-owner}/{cloud-region-id}/tenants/tenant/{tenant-id}/vservers/vserver/{vserver-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
46 * /inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
47 * /inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
48 * /inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
49 * /inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
50 * /inventory/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
51 * /inventory/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
52 * /inventory/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
53 * /inventory/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
54 * /inventory/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
55 * /inventory/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
56 * /inventory/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
57 * /inventory/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
58 * /inventory/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
59 * /inventory/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
60 * /inventory/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv6-address-list/{l3-interface-ipv6-address}
63 public static final String L3_INTERFACE_IPV6_ADDRESS_LIST_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.l3.interface.ipv6.address.list";
64 public static final String VLAN_L3_INTERFACE_IPV6_ADDRESS_LIST_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.vlan.l3.interface.ipv6.address.list";
66 private final String l3_interface_ipv6_address_list_path;
67 private final String vlan_l3_interface_ipv6_address_list_path;
69 public static final String L3_INTERFACE_IPV6_ADDRESS = "l3-interface-ipv6-address";
70 public static final String LIST_L3_INTERFACE_IPV6_ADDRESS = "l3-interface-ipv6-address-list.l3-interface-ipv6-address";
71 public static final String VLAN_INTERFACE = "vlan-interface";
72 public static final String VLAN_VLAN_INTERFACE = "vlan.vlan-interface";
74 public L3InterfaceIpv6AddressListRequest() {
75 l3_interface_ipv6_address_list_path = configProperties.getProperty(L3_INTERFACE_IPV6_ADDRESS_LIST_PATH);
76 vlan_l3_interface_ipv6_address_list_path = configProperties.getProperty(VLAN_L3_INTERFACE_IPV6_ADDRESS_LIST_PATH);
80 public URL getRequestQueryUrl(String method) throws UnsupportedEncodingException, MalformedURLException {
81 return this.getRequestUrl(method, null);
85 public URL getRequestUrl(String method, String resourceVersion) throws UnsupportedEncodingException, MalformedURLException {
87 String request_url = target_uri+l3_interface_ipv6_address_list_path;
89 if(requestProperties.containsKey(VLAN_INTERFACE) || requestProperties.containsKey(VLAN_VLAN_INTERFACE)){
90 request_url = target_uri+vlan_l3_interface_ipv6_address_list_path;
91 request_url = processVLanRequestPathData(request_url, requestProperties);
94 request_url = processPathData(request_url, requestProperties);
95 request_url = LInterfaceRequest.processPathData(request_url, requestProperties);
96 // request_url = GenericVnfRequest.processPathData(request_url, requestProperties);
98 if(resourceVersion != null) {
99 request_url = request_url +"?resource-version="+resourceVersion;
101 URL http_req_url = new URL(request_url);
103 aaiService.LOGwriteFirstTrace(method, http_req_url.toString());
108 public static String processVLanRequestPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException {
111 if(requestProperties.containsKey(VLAN_VLAN_INTERFACE)) {
112 key = VLAN_VLAN_INTERFACE;
113 } else if(requestProperties.containsKey(VLAN_INTERFACE)) {
114 key = VLAN_INTERFACE;
116 aaiService.logKeyError(String.format("%s,%s", VLAN_INTERFACE, VLAN_VLAN_INTERFACE));
119 String encoded_vnf = encodeQuery(requestProperties.getProperty(key));
121 request_url = request_url.replace("{vlan-interface}", encoded_vnf) ;
122 aaiService.LOGwriteDateTrace("vlan-interface", requestProperties.getProperty(key));
127 public String toJSONString() {
128 ObjectMapper mapper = getObjectMapper();
129 L3InterfaceIpv6AddressList vnfc = (L3InterfaceIpv6AddressList)requestDatum;
130 String json_text = null;
132 json_text = mapper.writeValueAsString(vnfc);
133 } catch (JsonProcessingException exc) {
134 handleException(this, exc);
141 public String[] getArgsList() {
144 L3_INTERFACE_IPV6_ADDRESS,
145 LIST_L3_INTERFACE_IPV6_ADDRESS,
148 LInterfaceRequest.INTERFACE_NAME,
149 LInterfaceRequest.LINTERFACE_INTERFACE_NAME,
158 public Class<? extends AAIDatum> getModelClass() {
159 return L3InterfaceIpv6AddressList.class;
162 public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException {
163 String key = L3_INTERFACE_IPV6_ADDRESS;
164 if(requestProperties.containsKey(LIST_L3_INTERFACE_IPV6_ADDRESS)) {
165 key = LIST_L3_INTERFACE_IPV6_ADDRESS;
168 if(!requestProperties.containsKey(key)) {
169 aaiService.logKeyError(String.format("%s,%s", L3_INTERFACE_IPV6_ADDRESS, LIST_L3_INTERFACE_IPV6_ADDRESS));
172 String encoded_vnf = encodeQuery(requestProperties.getProperty(key));
174 request_url = request_url.replace("{l3-interface-ipv6-address}", encoded_vnf) ;
176 aaiService.LOGwriteDateTrace("l3-interface-ipv6-address", requestProperties.getProperty(key));