aboutsummaryrefslogtreecommitdiffstats
path: root/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIService.java
diff options
context:
space:
mode:
authorDan Timoney <dtimoney@att.com>2017-04-21 16:14:18 -0400
committerDan Timoney <dtimoney@att.com>2017-04-21 16:14:18 -0400
commit328d71305e529887d78bec5d028d54feaea737c1 (patch)
tree9c571511c9c7f402a84cac82cc41cee9f4e091cc /aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIService.java
parentec0f99bdd24468c1f662d6fcf6e2ca29b678da73 (diff)
[SDNC-5] Rebase SDN-C adaptors
Apply latest bug fixes, enhancements and port to OpenDaylight Boron. Change-Id: Ia7d29986eb12f98edbf075dae3cc9343af6791b6 Signed-off-by: Dan Timoney <dtimoney@att.com>
Diffstat (limited to 'aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIService.java')
-rw-r--r--aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIService.java790
1 files changed, 789 insertions, 1 deletions
diff --git a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIService.java b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIService.java
index 9dadd00..fe3317d 100644
--- a/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIService.java
+++ b/aai-service/provider/src/main/java/org/openecomp/sdnc/sli/aai/AAIService.java
@@ -383,6 +383,68 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe
return con;
}
+ /* (non-Javadoc)
+ * @see org.openecomp.sdnc.sli.resource.aic.AnAIClient#requestSdnZoneQuery(java.lang.String, java.lang.String, java.lang.String)
+ */
+ @Override
+ public SdnZoneResponse requestSdnZoneQuery(String service_type, String vnf_type, String physical_location) throws AAIServiceException {
+ SdnZoneResponse response = null;
+ InputStream inputStream = null;
+
+ try {
+ URL http_req_url = getRequestURL(service_type, vnf_type, physical_location);
+
+ HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.GET);
+
+ LOGwriteFirstTrace(HttpMethod.GET, http_req_url.toString());
+ LOGwriteDateTrace("service_type", service_type);
+ LOGwriteDateTrace("vnf_type", vnf_type);
+ LOGwriteDateTrace("physical_location", physical_location);
+
+ // Check for errors
+ int responseCode = con.getResponseCode();
+ if (responseCode == HttpURLConnection.HTTP_OK) {
+ inputStream = con.getInputStream();
+ } else {
+ inputStream = con.getErrorStream();
+ }
+
+ // Process the response
+ LOG.debug("HttpURLConnection result:" + responseCode);
+ if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8));
+ BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) );
+
+ ObjectMapper mapper = getObjectMapper();
+
+ if (responseCode == HttpURLConnection.HTTP_OK) {
+ response = mapper.readValue(reader, SdnZoneResponse.class);
+ LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, "SUCCESS", mapper.writeValueAsString(response));
+ } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) {
+ LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist.");
+ return response;
+ } else {
+ ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class);
+ LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse));
+ throw new AAIServiceException(responseCode, errorresponse);
+ }
+
+ } catch(AAIServiceException aaiexc) {
+ throw aaiexc;
+ } catch (Exception exc) {
+ LOG.warn("requestServiceInterfaceData", exc);
+ throw new AAIServiceException(exc);
+ } finally {
+ if(inputStream != null){
+ try {
+ inputStream.close();
+ } catch(Exception exc) {
+
+ }
+ }
+ }
+ return response;
+ }
+
@Override
public GenericVnf requestGenericVnfData(String vnf_id) throws AAIServiceException {
GenericVnf response = null;
@@ -441,6 +503,73 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe
return response;
}
+ /* (non-Javadoc)
+ * @see org.openecomp.sdnc.sli.resource.aic.AnAIClient#requestSdnZoneQuery(java.lang.String, java.lang.String, java.lang.String)
+ */
+ @Override
+ public Vce requestNetworkVceData(String vnf_id) throws AAIServiceException {
+ Vce response = null;
+ try {
+ AAIRequest request = AAIRequest.getRequestFromResource("vce");
+ request.addRequestProperty("vce.vnf-id", vnf_id);
+ String rv = executor.get(request);
+ if(rv != null) {
+ ObjectMapper mapper = getObjectMapper();
+ response = mapper.readValue(rv, Vce.class);
+ }
+ } catch(AAIServiceException aaiexc) {
+ throw aaiexc;
+ } catch (Exception exc) {
+ LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc);
+ throw new AAIServiceException(exc);
+ }
+
+ return response;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.openecomp.sdnc.sli.resource.aic.AnAIClient#requestSdnZoneQuery(java.lang.String, java.lang.String, java.lang.String)
+ */
+ @Override
+ public boolean deleteNetworkVceData(String vnf_id, String resourceVersion) throws AAIServiceException {
+ boolean response = false;
+
+ try {
+ AAIRequest request = AAIRequest.getRequestFromResource("vce");
+ request.addRequestProperty("vce.vnf-id", vnf_id);
+ response = executor.delete(request, resourceVersion);
+ } catch(AAIServiceException aaiexc) {
+ throw aaiexc;
+ } catch (Exception exc) {
+ LOG.warn("deleteNetworkVceData", exc);
+ throw new AAIServiceException(exc);
+ }
+ return response;
+ }
+
+ /* (non-Javadoc)
+ * @see org.openecomp.sdnc.sli.resource.aic.AnAIClient#postNetworkVceData(java.lang.String, org.openecomp.sdnc.sli.resource.aic.aai.VCERequest)
+ */
+ @Override
+ public boolean postNetworkVceData(String vnf_id, Vce data) throws AAIServiceException {
+ boolean response = false;
+
+ try {
+ AAIRequest request = AAIRequest.getRequestFromResource("vce");
+ request.addRequestProperty("vce.vnf-id", vnf_id);
+ request.setRequestObject(data);
+ response = executor.post(request);
+ } catch(AAIServiceException aaiexc) {
+ throw aaiexc;
+ } catch (Exception exc) {
+ LOG.warn("requestGenericVnfData", exc);
+ throw new AAIServiceException(exc);
+ }
+ return response;
+ }
+
+
@Override
public SearchResults requestServiceInstanceURL(String svc_instance_id) throws AAIServiceException {
SearchResults response = null;
@@ -708,7 +837,7 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe
{
String encrypted_url = selection;
String apnpattern =
- "/aai/v2/business/customers/customer/(.+)/service-subscriptions/service-subscription/(.+)/service-instances/service-instance/(.+)/";
+ "/aai/v10/business/customers/customer/(.+)/service-subscriptions/service-subscription/(.+)/service-instances/service-instance/(.+)/";
Pattern pattern = Pattern.compile(apnpattern);
try {
@@ -735,6 +864,188 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe
return encrypted_url;
}
+ @Override
+ public Vpe requestNetworkVpeData(String vnf_id) throws AAIServiceException {
+ Vpe response = null;
+
+ try {
+ AAIRequest request = AAIRequest.getRequestFromResource("vpe");
+ request.addRequestProperty("vpe.vnf-id", vnf_id);
+ String rv = executor.get(request);
+ if(rv != null) {
+ ObjectMapper mapper = getObjectMapper();
+ response = mapper.readValue(rv, Vpe.class);
+ }
+ } catch(AAIServiceException aaiexc) {
+ throw aaiexc;
+ } catch (Exception exc) {
+ LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc);
+ throw new AAIServiceException(exc);
+ }
+ return response;
+ }
+
+ @Override
+ public boolean postNetworkVpeData(String vnf_id, Vpe data) throws AAIServiceException {
+ boolean response = false;
+
+ try {
+ AAIRequest request = AAIRequest.getRequestFromResource("vpe");
+ request.addRequestProperty("vpe.vnf-id", vnf_id);
+ request.setRequestObject(data);
+ response = executor.post(request);
+ } catch(AAIServiceException aaiexc) {
+ throw aaiexc;
+ } catch (Exception exc) {
+ LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc);
+ throw new AAIServiceException(exc);
+ }
+
+ return response;
+ }
+
+ @Override
+ public boolean deleteNetworkVpeData(String vnf_id, String resourceVersion) throws AAIServiceException {
+ boolean response = false;
+
+ try {
+ AAIRequest request = AAIRequest.getRequestFromResource("vpe");
+ request.addRequestProperty("vpe.vnf-id", vnf_id);
+ response = executor.delete(request, resourceVersion);
+ } catch(AAIServiceException aaiexc) {
+ throw aaiexc;
+ } catch (Exception exc) {
+ LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc);
+ throw new AAIServiceException(exc);
+ }
+ return response;
+ }
+
+ @Override
+ public VplsPe requestNetworkVplsPeData(String equipment_name)throws AAIServiceException {
+ VplsPe response = null;
+
+ try {
+ AAIRequest request = AAIRequest.getRequestFromResource("vpls-pe");
+ request.addRequestProperty("vpls-pe.equipment-name", equipment_name);
+
+ String rv = executor.get(request);
+ if(rv != null) {
+ ObjectMapper mapper = getObjectMapper();
+ response = mapper.readValue(rv, VplsPe.class);
+ }
+ } catch(AAIServiceException aaiexc) {
+ throw aaiexc;
+ } catch (Exception exc) {
+ LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc);
+ throw new AAIServiceException(exc);
+ }
+ return response;
+ }
+
+ @Override
+ public boolean postNetworkVplsPeData(String equipment_name, VplsPe data) throws AAIServiceException {
+ boolean response = false;
+ try {
+ AAIRequest request = AAIRequest.getRequestFromResource("vpls-pe");
+ request.addRequestProperty("vpls-pe.equipment-name", equipment_name);
+ request.setRequestObject(data);
+ response = executor.post(request);
+ } catch(AAIServiceException aaiexc) {
+ throw aaiexc;
+ } catch (Exception exc) {
+ LOG.warn("requestGenericVnfData", exc);
+ throw new AAIServiceException(exc);
+ }
+ return response;
+ }
+
+ @Override
+ public boolean deleteNetworkVplsPeData(String vnf_id, String resourceVersion) throws AAIServiceException {
+ boolean response = false;
+
+ try {
+ AAIRequest request = AAIRequest.getRequestFromResource("vpls-pe");
+ request.addRequestProperty("vpls-pe.equipment-name", vnf_id);
+ response = executor.delete(request, resourceVersion);
+ } catch(AAIServiceException aaiexc) {
+ throw aaiexc;
+ } catch (Exception exc) {
+ LOG.warn("deleteNetworkVplsPeData", exc);
+ throw new AAIServiceException(exc);
+ }
+ return response;
+ }
+
+ @Override
+ public Complex requestNetworkComplexData(String pLocId) throws AAIServiceException {
+ Complex response = null;
+ InputStream inputStream = null;
+
+ try {
+ AAIRequest request = AAIRequest.getRequestFromResource("complex");
+ request.addRequestProperty("complex.physical-location-id", pLocId);
+
+ String rv = executor.get(request);
+ if(rv != null) {
+ ObjectMapper mapper = getObjectMapper();
+ response = mapper.readValue(rv, Complex.class);
+ }
+ } catch(AAIServiceException aaiexc) {
+ throw aaiexc;
+ } catch (Exception exc) {
+ LOG.warn("requestNetworkComplexData", exc);
+ throw new AAIServiceException(exc);
+ } finally {
+ if(inputStream != null){
+ try {
+ inputStream.close();
+ } catch(Exception exc) {
+
+ }
+ }
+ }
+ return response;
+ }
+
+ @Override
+ public boolean postNetworkComplexData(String vnf_id, Complex data) throws AAIServiceException {
+ boolean response = false;
+
+ try {
+ AAIRequest request = AAIRequest.getRequestFromResource("complex");
+ request.addRequestProperty("complex.physical-location-id", vnf_id);
+ request.setRequestObject(data);
+ response = executor.post(request);
+
+ } catch(AAIServiceException aaiexc) {
+ throw aaiexc;
+ } catch (Exception exc) {
+ LOG.warn("postNetworkComplexData", exc);
+ throw new AAIServiceException(exc);
+ }
+ return response;
+ }
+
+ @Override
+ public boolean deleteNetworkComplexData(String pLocId, String resourceVersion) throws AAIServiceException {
+ boolean response = false;
+
+ try {
+ AAIRequest request = AAIRequest.getRequestFromResource("complex");
+ request.addRequestProperty("complex.physical-location-id", pLocId);
+
+ response = executor.delete(request, resourceVersion);
+
+ } catch(AAIServiceException aaiexc) {
+ throw aaiexc;
+ } catch (Exception exc) {
+ LOG.warn("deleteNetworkComplexData", exc);
+ throw new AAIServiceException(exc);
+ }
+ return response;
+ }
+
/*
* (non-Javadoc)
* @see org.openecomp.sdnct.sli.aai.AAIClient#requestVServersData(java.lang.String, java.lang.String)
@@ -862,6 +1173,101 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe
}
+ /*
+ * (non-Javadoc)
+ * @see org.openecomp.sdnc.sli.aai.AAIClient#requestCtagPoolData(String)
+ */
+ @Override
+ public CtagPool requestCtagPoolData(String physical_location_id, String target_pe, String availability_zone_name) throws AAIServiceException {
+ CtagPool response = null;
+
+ try {
+ AAIRequest request = AAIRequest.getRequestFromResource("ctag-pool");
+
+ request.addRequestProperty("ctag-pool.target-pe", target_pe);
+ request.addRequestProperty("ctag-pool.availability-zone-name", availability_zone_name);
+ request.addRequestProperty("complex.physical-location-id", physical_location_id);
+
+ String rv = executor.get(request);
+ if(rv != null) {
+ ObjectMapper mapper = getObjectMapper();
+ response = mapper.readValue(rv, CtagPool.class);
+ }
+ } catch(AAIServiceException aaiexc) {
+ throw aaiexc;
+ } catch (Exception exc) {
+ LOG.warn("requestNetworkVceData", exc);
+ throw new AAIServiceException(exc);
+ }
+ return response;
+ }
+
+ //==================== DvsSwitch ======================
+ @Override
+ public DvsSwitch requestDvsSwitchData(String vnf_id) throws AAIServiceException {
+ DvsSwitch response = null;
+ InputStream inputStream = null;
+
+ try {
+ AAIRequest request = AAIRequest.getRequestFromResource("dvs-switch");
+ request.addRequestProperty("dvs-switch.switch-name", vnf_id);
+
+ String rv = executor.get(request);
+ if(rv != null) {
+ ObjectMapper mapper = getObjectMapper();
+ response = mapper.readValue(rv, DvsSwitch.class);
+ }
+ } catch(AAIServiceException aaiexc) {
+ throw aaiexc;
+ } catch (Exception exc) {
+ LOG.warn("requestDvsSwitchData", exc);
+ throw new AAIServiceException(exc);
+ } finally {
+ if(inputStream != null){
+ try {
+ inputStream.close();
+ } catch(Exception exc) {
+
+ }
+ }
+ }
+ return response;
+ }
+
+ @Override
+ public boolean postDvsSwitchData(String switch_name, DvsSwitch data) throws AAIServiceException {
+ boolean response = false;
+ try {
+ AAIRequest request = AAIRequest.getRequestFromResource("dvs-switch");
+ request.addRequestProperty("dvs-switch.switch-name", switch_name);
+ request.setRequestObject(data);
+ response = executor.post(request);
+ } catch(AAIServiceException aaiexc) {
+ throw aaiexc;
+ } catch (Exception exc) {
+ LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc);
+ throw new AAIServiceException(exc);
+ }
+ return response;
+ }
+
+ @Override
+ public boolean deleteDvsSwitchData(String vnf_id, String resourceVersion) throws AAIServiceException {
+ boolean response = false;
+ InputStream inputStream = null;
+
+ try {
+ AAIRequest request = AAIRequest.getRequestFromResource("dvs-switch");
+ request.addRequestProperty("dvs-switch.switch-name", vnf_id);
+ response = executor.delete(request, resourceVersion);
+ } catch(AAIServiceException aaiexc) {
+ throw aaiexc;
+ } catch (Exception exc) {
+ LOG.warn("deleteDvsSwitchData", exc);
+ throw new AAIServiceException(exc);
+ }
+ return response;
+ }
//================== End of DvsSwitch =================
//==================== PhysicalLink ======================
@Override
@@ -1033,6 +1439,116 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe
}
return response;
}
+ //================== End of PInterface =================
+ //==================== SitePairSet ======================
+ @Override
+ public SitePairSet requestSitePairSetData(String sitePairSetId) throws AAIServiceException {
+ SitePairSet response = null;
+
+ try {
+ AAIRequest request = AAIRequest.getRequestFromResource("site-pair-set");
+ request.addRequestProperty("site-pair-set.site-pair-set-id", sitePairSetId);
+ String rv = executor.get(request);
+ if(rv != null) {
+ ObjectMapper mapper = getObjectMapper();
+ response = mapper.readValue(rv, SitePairSet.class);
+ }
+ } catch(AAIServiceException aaiexc) {
+ throw aaiexc;
+ } catch (Exception exc) {
+ LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc);
+ throw new AAIServiceException(exc);
+ }
+ return response;
+ }
+
+ @Override
+ public boolean postSitePairSetData(String linkName, SitePairSet request) throws AAIServiceException {
+ InputStream inputStream = null;
+
+ try {
+
+ ObjectMapper mapper = getObjectMapper();
+ String json_text = mapper.writeValueAsString(request);
+
+ SSLSocketFactory sockFact = CTX.getSocketFactory();
+
+ String request_url = target_uri+site_pair_set_path;
+ String encoded_vnf = encodeQuery(linkName);
+ request_url = request_url.replace("{site-pair-set-id}", encoded_vnf) ;
+ URL http_req_url = new URL(request_url);
+
+ HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.PUT);
+
+ OutputStreamWriter osw = new OutputStreamWriter(con.getOutputStream());
+ osw.write(json_text);
+ osw.flush();
+ osw.close();
+
+
+ LOGwriteFirstTrace("PUT", request_url);
+ LOGwriteDateTrace("link-name", linkName);
+ LOGwriteDateTrace("SitePairSet", json_text);
+
+ // Check for errors
+ int responseCode = con.getResponseCode();
+ if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) {
+ inputStream = con.getInputStream();
+ } else {
+ inputStream = con.getErrorStream();
+ }
+
+ // Process the response
+ BufferedReader reader;
+ String line = null;
+ reader = new BufferedReader( new InputStreamReader( inputStream ) );
+
+ if (responseCode == HttpURLConnection.HTTP_OK || responseCode == HttpURLConnection.HTTP_CREATED || responseCode == HttpURLConnection.HTTP_ACCEPTED || responseCode == HttpURLConnection.HTTP_NO_CONTENT) {
+ StringBuilder stringBuilder = new StringBuilder();
+
+ while( ( line = reader.readLine() ) != null ) {
+ stringBuilder.append( line );
+ }
+ LOGwriteEndingTrace(responseCode, "SUCCESS", (stringBuilder != null) ? stringBuilder.toString() : "{no-data}");
+ return true;
+ } else {
+ ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class);
+ LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse));
+
+ throw new AAIServiceException(responseCode, errorresponse);
+ }
+ } catch(AAIServiceException aaiexc) {
+ throw aaiexc;
+ } catch (Exception exc) {
+ LOG.warn("postSitePairSetData", exc);
+ throw new AAIServiceException(exc);
+ } finally {
+ try {
+ if(inputStream != null)
+ inputStream.close();
+ } catch (Exception exc) {
+
+ }
+ }
+ }
+
+ @Override
+ public boolean deleteSitePairSetData(String linkName, String resourceVersion) throws AAIServiceException {
+ boolean response = false;
+
+ try {
+ AAIRequest request = AAIRequest.getRequestFromResource("site-pair-set");
+ request.addRequestProperty("site-pair-set.site-pair-set-id", linkName);
+ response = executor.delete(request, resourceVersion);
+ } catch(AAIServiceException aaiexc) {
+ throw aaiexc;
+ } catch (Exception exc) {
+ LOG.warn("deleteSitePairSetData", exc);
+ throw new AAIServiceException(exc);
+ }
+
+ return response;
+ }
//================== End of SitePairSet =================
//==================== Service ======================
@Override
@@ -1172,6 +1688,56 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe
}
@Override
+ public CtagPool dataChangeRequestCtagPoolData(URL url) throws AAIServiceException {
+
+ if(url == null) {
+ throw new NullPointerException();
+ }
+
+ return this.getResource(url.toString(), CtagPool.class);
+ }
+
+ @Override
+ public VplsPe dataChangeRequestVplsPeData(URL url) throws AAIServiceException {
+
+ if(url == null) {
+ throw new NullPointerException();
+ }
+
+ return this.getResource(url.toString(), VplsPe.class);
+ }
+
+ @Override
+ public Vpe dataChangeRequestVpeData(URL url) throws AAIServiceException {
+
+ if(url == null) {
+ throw new NullPointerException();
+ }
+
+ return this.getResource(url.toString(), Vpe.class);
+ }
+
+ @Override
+ public DvsSwitch dataChangeRequestDvsSwitchData(URL url) throws AAIServiceException {
+
+ if(url == null) {
+ throw new NullPointerException();
+ }
+
+ return this.getResource(url.toString(), DvsSwitch.class);
+ }
+
+ @Override
+ public OamNetwork dataChangeRequestOAMNetworkData(URL url) throws AAIServiceException {
+
+ if(url == null) {
+ throw new NullPointerException();
+ }
+
+ return this.getResource(url.toString(), OamNetwork.class);
+ }
+
+ @Override
public AvailabilityZone dataChangeRequestAvailabilityZoneData(URL url) throws AAIServiceException {
if(url == null) {
@@ -1181,6 +1747,16 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe
return this.getResource(url.toString(), AvailabilityZone.class);
}
+ @Override
+ public Complex dataChangeRequestComplexData(URL url) throws AAIServiceException {
+
+ if(url == null) {
+ throw new NullPointerException();
+ }
+
+ return this.getResource(url.toString(), Complex.class);
+ }
+
/* DELETE */
public boolean dataChangeDeleteVServerData(URL url) throws AAIServiceException {
@@ -1360,6 +1936,66 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe
}
@Override
+ public Pserver requestPServerData(String hostname) throws AAIServiceException {
+ Pserver response = null;
+ InputStream inputStream = null;
+
+ try {
+ AAIRequest request = AAIRequest.getRequestFromResource("pserver");
+ request.addRequestProperty("pserver.hostname", hostname);
+
+
+ String rv = executor.get(request);
+ if(rv != null) {
+ ObjectMapper mapper = getObjectMapper();
+ response = mapper.readValue(rv, Pserver.class);
+ }
+ } catch(AAIServiceException aaiexc) {
+ throw aaiexc;
+ } catch (Exception exc) {
+ LOG.warn("requestPServerData", exc);
+ throw new AAIServiceException(exc);
+ }
+ return response;
+ }
+
+ @Override
+ public boolean postPServerData(String hostname, Pserver data) throws AAIServiceException {
+ boolean response = false;
+ try {
+ AAIRequest request = AAIRequest.getRequestFromResource("pserver");
+ request.addRequestProperty("pserver.hostname", hostname);
+ request.setRequestObject(data);
+ response = executor.post(request);
+ } catch(AAIServiceException aaiexc) {
+ throw aaiexc;
+ } catch (Exception exc) {
+ LOG.warn(new Object(){}.getClass().getEnclosingMethod().getName(), exc);
+ throw new AAIServiceException(exc);
+ }
+ return response;
+ }
+
+ @Override
+ public boolean deletePServerData(String hostname, String resourceVersion) throws AAIServiceException {
+ boolean response = false;
+
+ try {
+ AAIRequest request = AAIRequest.getRequestFromResource("pserver");
+ request.addRequestProperty("pserver.hostname", hostname);
+ response = executor.delete(request, resourceVersion);
+ } catch(AAIServiceException aaiexc) {
+ throw aaiexc;
+ } catch (Exception exc) {
+ LOG.warn("deletePServerData", exc);
+ throw new AAIServiceException(exc);
+ }
+
+ return response;
+ }
+
+
+ @Override
public L3Network requestL3NetworkData(String networkId) throws AAIServiceException {
L3Network response = null;
InputStream inputStream = null;
@@ -1450,6 +2086,157 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe
}
+ @Override
+ public VpnBinding requestVpnBindingData(String vpnId) throws AAIServiceException {
+ VpnBinding response = null;
+
+ try {
+ AAIRequest request = AAIRequest.getRequestFromResource("vpn-binding");
+ request.addRequestProperty("vpn-binding.vpn-id", vpnId);
+
+ String rv = executor.get(request);
+ if(rv != null) {
+ ObjectMapper mapper = getObjectMapper();
+ response = mapper.readValue(rv, VpnBinding.class);
+ }
+ } catch(AAIServiceException aaiexc) {
+ throw aaiexc;
+ } catch (Exception exc) {
+ LOG.warn("requestVpnBindingData", exc);
+ throw new AAIServiceException(exc);
+ }
+ return response;
+ }
+
+ @Override
+ public boolean deleteVpnBindingData(String vpnId, String resourceVersion) throws AAIServiceException {
+ boolean response = false;
+
+ try {
+ AAIRequest request = AAIRequest.getRequestFromResource("vpn-binding");
+ request.addRequestProperty("vpn-binding.vpn-id", vpnId);
+ response = executor.delete(request, resourceVersion);
+ } catch(AAIServiceException aaiexc) {
+ throw aaiexc;
+ } catch (Exception exc) {
+ LOG.warn("deleteVpnBindingData", exc);
+ throw new AAIServiceException(exc);
+ }
+ return response;
+ }
+
+
+ @Override
+ public VnfImage requestVnfImageData(String att_uuid) throws AAIServiceException {
+ VnfImage response = null;
+
+ try {
+ AAIRequest request = AAIRequest.getRequestFromResource("vnf-image");
+ request.addRequestProperty("vnf-image.att-uuid", att_uuid);
+
+ String rv = executor.get(request);
+ if(rv != null) {
+ ObjectMapper mapper = getObjectMapper();
+ response = mapper.readValue(rv, VnfImage.class);
+ }
+ } catch(AAIServiceException aaiexc) {
+ throw aaiexc;
+ } catch (Exception exc) {
+ LOG.warn("requestVnfImageData", exc);
+ throw new AAIServiceException(exc);
+ }
+ return response;
+ }
+
+ @Override
+ public VnfImage requestVnfImageDataByVendorModel(String vendor, String model) throws AAIServiceException {
+ return requestVnfImageDataByVendorModelVersion(vendor, model, null);
+ }
+
+ @Override
+ public VnfImage requestVnfImageDataByVendorModelVersion(String vendor, String model, String version) throws AAIServiceException
+ {
+ List<VnfImage> responseList = new ArrayList<VnfImage>();
+ VnfImage response = null;
+ InputStream inputStream = null;
+
+ try {
+ String request_url = target_uri+vnf_image_query_path + (version==null? "": "&application-version={application_version}");
+ request_url = request_url.replace("{application_vendor}", encodeQuery(vendor)) ;
+ request_url = request_url.replace("{application_model}", encodeQuery(model)) ;
+ if(version != null) {
+ request_url = request_url.replace("{application_version}", encodeQuery(version)) ;
+ }
+ URL http_req_url = new URL(request_url);
+
+ HttpURLConnection con = getConfiguredConnection(http_req_url, HttpMethod.GET);
+
+ LOGwriteFirstTrace(HttpMethod.GET, http_req_url.toString());
+ LOGwriteDateTrace("application_vendor", vendor);
+ LOGwriteDateTrace("application_model", model);
+ if(version != null) {
+ LOGwriteDateTrace("application_version", version);
+ }
+
+ // Check for errors
+ int responseCode = con.getResponseCode();
+ if (responseCode == HttpURLConnection.HTTP_OK) {
+ inputStream = con.getInputStream();
+ } else {
+ inputStream = con.getErrorStream();
+ }
+
+ // Process the response
+ LOG.debug("HttpURLConnection result:" + responseCode);
+ if(inputStream == null) inputStream = new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8));
+ BufferedReader reader = new BufferedReader( new InputStreamReader( inputStream ) );
+
+ ObjectMapper mapper = getObjectMapper();
+
+ if (responseCode == HttpURLConnection.HTTP_OK) {
+// StringBuilder stringBuilder = new StringBuilder("\n");
+// String line = null;
+// while( ( line = reader.readLine() ) != null ) {
+// stringBuilder.append("\n").append( line );
+// }
+// LOG.info(stringBuilder.toString());
+ response = mapper.readValue(reader, VnfImage.class);
+ String original_buffer = mapper.writeValueAsString(response);
+ LOGwriteEndingTrace(HttpURLConnection.HTTP_OK, "SUCCESS", original_buffer);
+ if(response.getApplicationVendor() == null /*&& response.getAdditionalProperties() != null && !response.getAdditionalProperties().isEmpty()*/){
+ LOG.warn("A List of multiple VNF-IMAGE entries has been returned");
+ VnfImages listOfObjects = mapper.readValue(original_buffer, VnfImages.class);
+ if(!listOfObjects.getVnfImage().isEmpty()) {
+ response = listOfObjects.getVnfImage().get(0);
+ }
+ }
+ } else if(responseCode == HttpURLConnection.HTTP_NOT_FOUND ) {
+ LOGwriteEndingTrace(responseCode, "HTTP_NOT_FOUND", "Entry does not exist.");
+ return response;
+ } else {
+ ErrorResponse errorresponse = mapper.readValue(reader, ErrorResponse.class);
+ LOGwriteEndingTrace(responseCode, "FAILURE", mapper.writeValueAsString(errorresponse));
+ throw new AAIServiceException(responseCode, errorresponse);
+ }
+
+ } catch(AAIServiceException aaiexc) {
+ throw aaiexc;
+ } catch (Exception exc) {
+ LOG.warn("requestVnfImageData", exc);
+ throw new AAIServiceException(exc);
+ } finally {
+ if(inputStream != null){
+ try {
+ inputStream.close();
+ } catch(Exception exc) {
+
+ }
+ }
+ }
+ return response;
+ }
+
+
public boolean sendNotify(NotifyEvent event, String serviceInstanceId, String pathCode) throws AAIServiceException {
InputStream inputStream = null;
@@ -2589,6 +3376,7 @@ public class AAIService extends AAIDeclarations implements AAIClient, SvcLogicRe
}
private String rewriteKey(String resource, String key, SvcLogicContext ctx) {
+ LOG.info("AAI Deprecation - the format of request key is no longer supported. Please rewrite this key : " + key);
Class<? extends AAIDatum> clazz = null;
try {