summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--appc-outbound/appc-network-inventory-client/provider/src/main/java/org/onap/appc/instar/dme2client/Dme2Client.java195
1 files changed, 96 insertions, 99 deletions
diff --git a/appc-outbound/appc-network-inventory-client/provider/src/main/java/org/onap/appc/instar/dme2client/Dme2Client.java b/appc-outbound/appc-network-inventory-client/provider/src/main/java/org/onap/appc/instar/dme2client/Dme2Client.java
index 2e822d032..fc4003ac4 100644
--- a/appc-outbound/appc-network-inventory-client/provider/src/main/java/org/onap/appc/instar/dme2client/Dme2Client.java
+++ b/appc-outbound/appc-network-inventory-client/provider/src/main/java/org/onap/appc/instar/dme2client/Dme2Client.java
@@ -23,176 +23,173 @@
*/
package org.onap.appc.instar.dme2client;
+
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
+import com.sun.jersey.api.client.Client;
+import com.sun.jersey.api.client.ClientResponse;
+import com.sun.jersey.api.client.WebResource;
+import com.sun.jersey.api.client.config.DefaultClientConfig;
+import com.sun.jersey.api.client.filter.HTTPBasicAuthFilter;
+import com.sun.jersey.client.urlconnection.HTTPSProperties;
import java.io.FileInputStream;
+import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import java.nio.charset.Charset;
-import java.util.HashMap;
+import java.util.Map;
import java.util.Properties;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLContext;
import javax.ws.rs.HttpMethod;
import javax.ws.rs.core.MediaType;
-
import org.apache.commons.io.IOUtils;
import org.onap.appc.instar.utils.InstarClientConstant;
-
-
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-import com.sun.jersey.api.client.Client;
-import com.sun.jersey.api.client.ClientResponse;
-import com.sun.jersey.api.client.WebResource;
-import com.sun.jersey.api.client.config.DefaultClientConfig;
-import com.sun.jersey.api.client.filter.HTTPBasicAuthFilter;
-
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
public class Dme2Client {
private static final EELFLogger log = EELFManager.getInstance().getLogger(Dme2Client.class);
private static final String SDNC_CONFIG_DIR_VAR = "SDNC_CONFIG_DIR";
- //DME2Client client = null;
- Properties props = new Properties();
- String operationName ;
- String appendContext;
-String mask;
- String ipAddress;
- public Dme2Client(String optName, String subCtxt, HashMap<String, String> data) throws Exception{
+ private Properties properties = new Properties();
+ private String operationName;
+ private String appendContext;
+ private String mask;
+ private String ipAddress;
+
+ public Dme2Client(String optName, String subCtxt, Map<String, String> data) throws IOException {
log.info("Setting Properties for DME2 Client for INSTAR connection");
- this.operationName=optName;
+ this.operationName = optName;
this.appendContext = data.get(subCtxt);
-if("getVnfbyIpadress".equals(optName)){
+ if ("getVnfbyIpadress".equals(optName)) {
this.ipAddress = data.get("ipAddress");
this.mask = data.get("mask");
}
String propDir = System.getenv(SDNC_CONFIG_DIR_VAR);
- if (propDir == null)
- throw new Exception(" Cannot find Property file -" + SDNC_CONFIG_DIR_VAR);
+ if (propDir == null) {
+ throw new IOException("Cannot find Property file -" + SDNC_CONFIG_DIR_VAR);
+ }
String propFile = propDir + InstarClientConstant.OUTBOUND_PROPERTIES;
InputStream propStream = new FileInputStream(propFile);
- try
- {
- props.load(propStream);
- }
- catch (Exception e)
- {
- throw new Exception("Could not load properties file " + propFile, e);
- }
- finally
- {
- try
- {
+ try {
+ properties.load(propStream);
+ } catch (Exception e) {
+ throw new IOException("Could not load properties file " + propFile, e);
+ } finally {
+ try {
propStream.close();
- }
- catch (Exception e)
- {
+ } catch (Exception e) {
log.warn("Could not close FileInputStream", e);
}
}
}
- public ClientResponse sendtoInstar() throws Exception {
-
- log.info("Called Send with operation Name=" + this.operationName + "and = " + props.getProperty(operationName+InstarClientConstant.BASE_URL));
- String resourceUri = props.getProperty(operationName+InstarClientConstant.BASE_URL)+
- props.getProperty(operationName + InstarClientConstant.URL_SUFFIX);
- if(this.ipAddress!=null && this.mask == null){
- //resourceUri = resourceUri.substring(0,resourceUri.length() - 1) + "?";
- resourceUri = resourceUri + props.getProperty(operationName+InstarClientConstant.SUB_CONTEXT_BYIPADDRESS);
- resourceUri = resourceUri + ipAddress;
- }else if(mask!=null){
- //resourceUri = resourceUri.substring(0,resourceUri.length() - 1) + "?";
- resourceUri = resourceUri + props.getProperty(operationName+InstarClientConstant.SUB_CONTEXT_BYIPADDRESS) + ipAddress+ props.getProperty(operationName+InstarClientConstant.SUB_CONTEXT_BYMASK);
- resourceUri = resourceUri + mask ;
- }else{
- resourceUri=resourceUri+ props.getProperty(operationName + InstarClientConstant.SUB_CONTEXT)+ appendContext;
- }
+ public ClientResponse sendtoInstar() throws SvcLogicException {
+
+ log.info("Called Send with operation Name=" + this.operationName + "and = " +
+ properties.getProperty(operationName + InstarClientConstant.BASE_URL));
+
+ String resourceUri = buildResourceUri();
log.info("DME Endpoint URI:" + resourceUri);
+
Client client = null;
- WebResource webResource = null;
+ WebResource webResource;
ClientResponse clientResponse = null;
- String authorization = props.getProperty("authorization");
+ String authorization = properties.getProperty("authorization");
String requestDataType = "application/json";
- String responseDataType= MediaType.APPLICATION_JSON;
- String methodType = props.getProperty("getIpAddressByVnf_method");
+ String responseDataType = MediaType.APPLICATION_JSON;
+ String methodType = properties.getProperty("getIpAddressByVnf_method");
String request = "";
- String userId=props.getProperty("MechID");
- String password=props.getProperty("MechPass");
+ String userId = properties.getProperty("MechID");
+ String password = properties.getProperty("MechPass");
+
log.info("authorization = " + authorization + "methodType= " + methodType);
- try{
+
+ try {
DefaultClientConfig defaultClientConfig = new DefaultClientConfig();
System.setProperty("jsse.enableSNIExtension", "false");
- SSLContext sslContext = null;
+ SSLContext sslContext;
SecureRestClientTrustManager secureRestClientTrustManager = new SecureRestClientTrustManager();
sslContext = SSLContext.getInstance("SSL");
- sslContext.init(null, new javax.net.ssl.TrustManager[] { secureRestClientTrustManager }, null);
- defaultClientConfig.getProperties().put(
- com.sun.jersey.client.urlconnection.HTTPSProperties.PROPERTY_HTTPS_PROPERTIES,
- new com.sun.jersey.client.urlconnection.HTTPSProperties(getHostnameVerifier(), sslContext));
+ sslContext.init(null, new javax.net.ssl.TrustManager[]{secureRestClientTrustManager}, null);
+ defaultClientConfig
+ .getProperties()
+ .put(HTTPSProperties.PROPERTY_HTTPS_PROPERTIES, new HTTPSProperties(getHostnameVerifier(), sslContext));
client = Client.create(defaultClientConfig);
client.addFilter(new HTTPBasicAuthFilter(userId, password));
webResource = client.resource(new URI(resourceUri));
webResource.setProperty("Content-Type", "application/json;charset=UTF-8");
- if(HttpMethod.GET.equalsIgnoreCase(methodType)){
+ if (HttpMethod.GET.equalsIgnoreCase(methodType)) {
clientResponse = webResource.accept(responseDataType).get(ClientResponse.class);
- }else if(HttpMethod.POST.equalsIgnoreCase(methodType)){
+ } else if (HttpMethod.POST.equalsIgnoreCase(methodType)) {
clientResponse = webResource.type(requestDataType).post(ClientResponse.class, request);
- }else if(HttpMethod.PUT.equalsIgnoreCase(methodType)){
- clientResponse = webResource.type(requestDataType).put(ClientResponse.class,request);
- }else if(HttpMethod.DELETE.equalsIgnoreCase(methodType)){
+ } else if (HttpMethod.PUT.equalsIgnoreCase(methodType)) {
+ clientResponse = webResource.type(requestDataType).put(ClientResponse.class, request);
+ } else if (HttpMethod.DELETE.equalsIgnoreCase(methodType)) {
clientResponse = webResource.delete(ClientResponse.class);
}
-
return clientResponse;
- }catch (Exception e) {
- log.info("failed in RESTCONT Action ("+methodType+") for the resource " + resourceUri + ", falut message :"+e.getMessage());
- throw new Exception("Error While gettting Data from INSTAR" + e.getMessage());
- }
- finally {
+ } catch (Exception e) {
+ log.info(
+ "failed in RESTCONT Action (" + methodType + ") for the resource " + resourceUri + ", falut message :"
+ + e.getMessage());
+ throw new SvcLogicException("Error While gettting Data from INSTAR", e);
+
+ } finally {
// clean up.
- webResource = null;
- if(client != null){
+ if (client != null) {
client.destroy();
- client = null;
}
}
+ }
-
+ private String buildResourceUri() {
+ String resourceUri = properties.getProperty(operationName + InstarClientConstant.BASE_URL) +
+ properties.getProperty(operationName + InstarClientConstant.URL_SUFFIX);
+
+ if (ipAddress != null && mask == null) {
+ resourceUri = resourceUri
+ + properties.getProperty(operationName + InstarClientConstant.SUB_CONTEXT_BYIPADDRESS) + ipAddress;
+ } else if (mask != null) {
+ resourceUri = resourceUri
+ + properties.getProperty(operationName + InstarClientConstant.SUB_CONTEXT_BYIPADDRESS)
+ + ipAddress + properties.getProperty(operationName + InstarClientConstant.SUB_CONTEXT_BYMASK) + mask;
+ } else {
+ resourceUri = resourceUri
+ + properties.getProperty(operationName + InstarClientConstant.SUB_CONTEXT) + appendContext;
+ }
+ return resourceUri;
}
public String send() {
String response = null;
- try{
-
- if(props !=null &&
- props.getProperty(InstarClientConstant.MOCK_INSTAR) != null &&
- props.getProperty(InstarClientConstant.MOCK_INSTAR).equalsIgnoreCase("true"))
- return IOUtils.toString(Dme2Client.class.getClassLoader().getResourceAsStream("/tmp/sampleResponse"), Charset.defaultCharset());
-
+ try {
+ if (validateProperties()) {
+ return IOUtils.toString(Dme2Client.class.getClassLoader().getResourceAsStream("/tmp/sampleResponse"),
+ Charset.defaultCharset());
+ }
ClientResponse clientResponse = sendtoInstar();
- if(clientResponse != null){
+ if (clientResponse != null) {
response = clientResponse.getEntity(String.class);
log.info(clientResponse.getStatus() + " Status, Response :" + response);
-
}
} catch (Exception e) {
- e.printStackTrace();
+ log.error("Failed to send response", e);
}
return response;
}
- private HostnameVerifier getHostnameVerifier() {
- return new HostnameVerifier() {
- @Override
- public boolean verify(String hostname, javax.net.ssl.SSLSession sslSession) {
- return true;
- }
- };
+ private boolean validateProperties() {
+ return properties != null
+ && properties.getProperty(InstarClientConstant.MOCK_INSTAR) != null
+ && "true".equalsIgnoreCase(properties.getProperty(InstarClientConstant.MOCK_INSTAR));
}
-
+ private HostnameVerifier getHostnameVerifier() {
+ return (hostname, sslSession) -> true;
+ }
}