import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSession;
import javax.net.ssl.SSLSocketFactory;
-import javax.ws.rs.HttpMethod;
import org.apache.commons.codec.binary.Base64;
import org.onap.ccsdk.sli.adaptors.aai.AAIService.TransactionIdTracker;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
-import com.sun.jersey.api.client.config.DefaultClientConfig;
-import com.sun.jersey.client.urlconnection.HTTPSProperties;
import org.apache.http.impl.EnglishReasonPhraseCatalog;
/**
if(keystorePath != null && keystorePassword != null && (new File(keystorePath)).exists())
{
- DefaultClientConfig config = new DefaultClientConfig();
//both jersey and HttpURLConnection can use this
SSLContext ctx = null;
try {
}
ctx.init(kmf.getKeyManagers(), null, null);
- config.getProperties().put(HTTPSProperties.PROPERTY_HTTPS_PROPERTIES, new HTTPSProperties( new HostnameVerifier() {
- @Override
- public boolean verify( String s, SSLSession sslSession ) {
- return ignoreCertificateHostError;
- }
- }, ctx));
CTX = ctx;
LOG.debug("SSLContext created");
responseMessage = con.getResponseMessage();
} catch(Exception exc) {
responseMessage = EnglishReasonPhraseCatalog.INSTANCE.getReason(responseCode,null);
+ } finally {
if(responseMessage == null)
responseMessage = NOT_PROVIDED;
}
responseMessage = con.getResponseMessage();
} catch(Exception exc) {
responseMessage = EnglishReasonPhraseCatalog.INSTANCE.getReason(responseCode,null);
+ } finally {
if(responseMessage == null)
responseMessage = NOT_PROVIDED;
}
responseMessage = conn.getResponseMessage();
} catch(Exception exc) {
responseMessage = EnglishReasonPhraseCatalog.INSTANCE.getReason(responseCode,null);
+ } finally {
if(responseMessage == null)
responseMessage = NOT_PROVIDED;
}
responseMessage = con.getResponseMessage();
} catch(Exception exc) {
responseMessage = EnglishReasonPhraseCatalog.INSTANCE.getReason(responseCode,null);
+ } finally {
if(responseMessage == null)
responseMessage = NOT_PROVIDED;
}
responseMessage = con.getResponseMessage();
} catch(Exception exc) {
responseMessage = EnglishReasonPhraseCatalog.INSTANCE.getReason(responseCode,null);
+ } finally {
if(responseMessage == null)
responseMessage = NOT_PROVIDED;
}
public static final String TARGET_URI = "org.onap.ccsdk.sli.adaptors.aai.uri";
+ public static final String AAI_VERSION = "org.onap.ccsdk.sli.adaptors.aai.version";
+
// Availability zones query
public static final String QUERY_PATH = "org.onap.ccsdk.sli.adaptors.aai.path.query";
// node query (1602)
public static final String QUERY_NODES_PATH = "org.onap.ccsdk.sli.adaptors.aai.query.nodes";
+ private static final String VERSION_PATTERN = "/v$/";
+
protected abstract Logger getLogger();
public abstract AAIExecutorInterface getExecutor();
getLogger().debug("About to process related link of {}", relatedLink);
if(relatedLink != null) {
if(relatedLink.contains("v$"))
- relatedLink = relatedLink.replace("v$", "v14");
+ relatedLink = relatedLink.replace(VERSION_PATTERN, "/v14/");
relationship.setRelatedLink(relatedLink);
} else {
Map<String, String> relParams = new HashMap<>();
if (relatedLink != null) {
if(relatedLink.contains("v$"))
- relatedLink = relatedLink.replace("v$", "v14");
+ relatedLink = relatedLink.replace(VERSION_PATTERN, AAIRequest.getSupportedAAIVersion());
relationship.setRelatedLink(relatedLink);
} else {
Map<String, String> relParams = new HashMap<>();
private QueryStatus processDeleteRelationshipList(String resource, String key, SvcLogicContext ctx, HashMap<String, String> nameValues) {
try {
- AAIRequest request = AAIRequest.createRequest(resource, nameValues);
+ AAIRequest request = AAIRequest.createRequest(resource.split(":")[0], nameValues);
if(request == null) {
return QueryStatus.FAILURE;
}
import java.net.URL;
import java.net.URLDecoder;
import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.BitSet;
}
InputStream in = url.openStream();
- Reader reader = new InputStreamReader(in, "UTF-8");
+ Reader reader = new InputStreamReader(in, StandardCharsets.UTF_8);
Properties properties = new Properties();
properties.load(reader);
public String getTargetUri() {
return targetUri;
}
+
+ public static final String getSupportedAAIVersion() {
+ return configProperties.getProperty(AAIDeclarations.AAI_VERSION, "/v14/");
+ }
}
public class AAIServiceUtils {
+ private static final String VERSION_PATTERN = "/v$/";
+
private static final Logger LOG = LoggerFactory.getLogger(AAIService.class);
private AAIServiceUtils() {
if (term.startsWith("$") && (ctx != null)) {
// Resolve any index variables.
- return ("'" + resolveCtxVariable(term.substring(1), ctx) + "'");
+ term = ("'" + resolveCtxVariable(term.substring(1), ctx) + "'");
+ if (term.contains(VERSION_PATTERN) && (ctx != null)) {
+ return term.replace(VERSION_PATTERN, AAIRequest.getSupportedAAIVersion());
+ }
+ return term;
+ } else if (term.contains(VERSION_PATTERN) && (ctx != null)) {
+ return term.replace(VERSION_PATTERN, AAIRequest.getSupportedAAIVersion());
} else if (term.startsWith("'") || term.startsWith("\"")) {
return (term);
} else {
--- /dev/null
+package org.onap.ccsdk.sli.adaptors.aai;
+
+public interface HttpMethod {
+ public static final String GET = "GET";
+ public static final String HEAD = "HEAD";
+ public static final String PATCH = "PATCH";
+ public static final String POST = "POST";
+ public static final String PUT = "PUT";
+ public static final String DELETE = "DELETE";
+}
connection.timeout=60000
read.timeout=60000
+# aai version
+org.onap.ccsdk.sli.adaptors.aai.version=/v14/
+
# query
org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v14/search/sdn-zone-query
org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v14/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name}
connection.timeout=60000
read.timeout=60000
+# aai version
+org.onap.ccsdk.sli.adaptors.aai.version=/v14/
+
# query
org.onap.ccsdk.sli.adaptors.aai.path.query=/aai/v14/search/sdn-zone-query
org.onap.ccsdk.sli.adaptors.aai.query.nodes=/aai/v14/search/nodes-query?search-node-type={node-type}&filter={entity-identifier}:EQUALS:{entity-name}