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.openecomp.sdnc.sli.aai;
24 import java.io.UnsupportedEncodingException;
25 import java.net.MalformedURLException;
27 import java.util.Properties;
29 import org.openecomp.aai.inventory.v10.L3InterfaceIpv4AddressList;
30 import org.openecomp.sdnc.sli.aai.data.AAIDatum;
32 import com.fasterxml.jackson.core.JsonProcessingException;
33 import com.fasterxml.jackson.databind.ObjectMapper;
35 public class L3InterfaceIpv4AddressListRequest extends AAIRequest {
38 * Note: there are 3 possible paths:
39 * /aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
40 * /aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
41 * /aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
42 * /aai/v7/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-ipv4-address-list/{l3-interface-ipv4-address}
43 * aaiv7:inventory/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
44 * aaiv7: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-ipv4-address-list/{l3-interface-ipv4-address}
45 * aaiv7: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-ipv4-address-list/{l3-interface-ipv4-address}
46 * aaiv7:inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
47 * aaiv7: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-ipv4-address-list/{l3-interface-ipv4-address}
48 * aaiv7:inventory/cloud-infrastructure/cloud-regions/pservers/pserver/{hostname}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
49 * aaiv7: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-ipv4-address-list/{l3-interface-ipv4-address}
50 * aaiv7:inventory/network/newvces/newvce/{vnf-id2}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
51 * aaiv7:inventory/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
52 * aaiv7:inventory/network/vpes/vpe/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
53 * aaiv7:inventory/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
54 * aaiv7:inventory/network/vpes/vpe/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
55 * aaiv7:inventory/network/vpls-pes/vpls-pe/{equipment-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
56 * aaiv7: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-ipv4-address-list/{l3-interface-ipv4-address}
57 * aaiv7:inventory/network/vpls-pes/vpls-pe/{equipment-name}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
58 * aaiv7: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-ipv4-address-list/{l3-interface-ipv4-address}
59 * aaiv7:inventory/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
60 * aaiv7:inventory/network/pnfs/pnf/{pnf-name}/p-interfaces/p-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}
63 public static final String L3_INTERFACE_IPV4_ADDRESS_LIST_PATH = "org.openecomp.sdnc.sli.aai.path.l3.interface.ipv4.address.list";
64 public static final String VLAN_L3_INTERFACE_IPV4_ADDRESS_LIST_PATH = "org.openecomp.sdnc.sli.aai.path.vlan.l3.interface.ipv4.address.list";
66 private final String l3_interface_ipv4_address_list_path;
67 private final String vlan_l3_interface_ipv4_address_list_path;
69 public static final String L3_INTERFACE_IPV4_ADDRESS = "l3-interface-ipv4-address";
70 public static final String LIST_L3_INTERFACE_IPV4_ADDRESS = "l3-interface-ipv4-address-list.l3-interface-ipv4-address";
71 public static final String VLAN_INTERFACE = "vlan-interface";
72 public static final String VLAN_VLAN_INTERFACE = "vlan.vlan-interface";
74 public L3InterfaceIpv4AddressListRequest() {
75 l3_interface_ipv4_address_list_path = configProperties.getProperty(L3_INTERFACE_IPV4_ADDRESS_LIST_PATH);
76 vlan_l3_interface_ipv4_address_list_path = configProperties.getProperty(VLAN_L3_INTERFACE_IPV4_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_ipv4_address_list_path;
89 if(requestProperties.containsKey(VLAN_INTERFACE) || requestProperties.containsKey(VLAN_VLAN_INTERFACE)){
90 request_url = target_uri+vlan_l3_interface_ipv4_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 L3InterfaceIpv4AddressList vnfc = (L3InterfaceIpv4AddressList)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_IPV4_ADDRESS,
145 LIST_L3_INTERFACE_IPV4_ADDRESS,
148 LInterfaceRequest.INTERFACE_NAME,
149 LInterfaceRequest.LINTERFACE_INTERFACE_NAME,
157 public Class<? extends AAIDatum> getModelClass() {
158 return L3InterfaceIpv4AddressList.class;
161 public static String processPathData(String request_url, Properties requestProperties) throws UnsupportedEncodingException {
162 String key = L3_INTERFACE_IPV4_ADDRESS;
163 if(requestProperties.containsKey(LIST_L3_INTERFACE_IPV4_ADDRESS)) {
164 key = LIST_L3_INTERFACE_IPV4_ADDRESS;
167 if(!requestProperties.containsKey(key)) {
168 aaiService.logKeyError(String.format("%s,%s", L3_INTERFACE_IPV4_ADDRESS, LIST_L3_INTERFACE_IPV4_ADDRESS));
171 String encoded_vnf = encodeQuery(requestProperties.getProperty(key));
173 request_url = request_url.replace("{l3-interface-ipv4-address}", encoded_vnf) ;
175 aaiService.LOGwriteDateTrace("l3-interface-ipv4-address", requestProperties.getProperty(key));
181 * @see org.openecomp.sdnc.sli.aai.PathConfigurator#configurePath(java.lang.String)
184 // public void processRequestPathValues(Map<String, String> nameValues) {
187 // "/aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}",
188 // "/aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/l-interfaces/l-interface/{interface-name}/vlans/vlan/{vlan-interface}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}",
189 // "/aai/v7/network/generic-vnfs/generic-vnf/{vnf-id}/lag-interfaces/lag-interface/{interface-name}/l-interfaces/l-interface/{interface-name}/l3-interface-ipv4-address-list/{l3-interface-ipv4-address}",
190 // "/aai/v7/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-ipv4-address-list/{l3-interface-ipv4-address}"
193 // List<String>keys = new LinkedList<String>();
194 // keys.addAll(nameValues.keySet());
195 // for(String key : keys) {
196 // if(key.contains(".")) {
197 // key = key.replaceAll("_", "-");
198 // if(!LIST_L3_INTERFACE_IPV4_ADDRESS.equals(key)) {
199 // int index = key.indexOf(".");
200 // String resource = key.substring(0, index);
201 // AAIRequest rx = createRequest(resource, nameValues);
203 // pathElements.add(rx);
208 // super.processRequestPathValues(nameValues);
210 // List<AAIRequest> pathElements = new LinkedList<AAIRequest>();