diff options
author | an4828 <nekrassov@att.com> | 2018-01-22 17:17:34 -0500 |
---|---|---|
committer | an4828 <nekrassov@att.com> | 2018-01-22 17:20:00 -0500 |
commit | c489a2eb22484e798c39a978bc8b61821b92322f (patch) | |
tree | 5aafe90efc15f8ced47e0d14c5f23a86a07f03e1 /dcae-analytics-aai/src/main/java/org/openecomp | |
parent | baaecfc19132034168beb64a0c1e7813c7c17c4a (diff) |
TCA: Replace any openecomp reference by onap
Change-Id: I7c6d812ab5c1d7b30c63653d1974b0b1abc099be
Signed-off-by: an4828 <nekrassov@att.com>
Issue-ID: DCAEGEN2-224
Signed-off-by: an4828 <nekrassov@att.com>
Diffstat (limited to 'dcae-analytics-aai/src/main/java/org/openecomp')
12 files changed, 0 insertions, 962 deletions
diff --git a/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/AAIClientFactory.java b/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/AAIClientFactory.java deleted file mode 100644 index 0a8d4ca..0000000 --- a/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/AAIClientFactory.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * ===============================LICENSE_START====================================== - * dcae-analytics - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============================LICENSE_END=========================================== - */ - -package org.openecomp.dcae.apod.analytics.aai; - -import com.google.inject.AbstractModule; -import com.google.inject.Guice; -import com.google.inject.Injector; -import org.openecomp.dcae.apod.analytics.aai.domain.config.AAIHttpClientConfig; -import org.openecomp.dcae.apod.analytics.aai.module.AnalyticsAAIModule; -import org.openecomp.dcae.apod.analytics.aai.service.AAIEnrichmentClient; -import org.openecomp.dcae.apod.analytics.aai.service.AAIEnrichmentClientFactory; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Factory to create A&AI API Client. - * - * @author Rajiv Singla . Creation Date: 9/18/2017. - */ -public class AAIClientFactory { - - private static final Logger LOG = LoggerFactory.getLogger(AAIClientFactory.class); - - private final Injector injector; - - public AAIClientFactory(final AbstractModule guiceModule) { - LOG.info("Creating instance of AAI Client Factory with Module: {}", guiceModule.getClass().getSimpleName()); - this.injector = Guice.createInjector(guiceModule); - } - - /** - * Creates an instance of {@link AAIEnrichmentClient}. - * - * @param aaiHttpClientConfig A&AI Http Client Config - * - * @return An instance of A&AI Enrichment Client to fetch enrichment details from A&AI API. - */ - public AAIEnrichmentClient getEnrichmentClient(final AAIHttpClientConfig aaiHttpClientConfig) { - LOG.info("Creating instance of A&AI Enrichment Client with A&AI HttpClientConfig: {}", aaiHttpClientConfig); - final AAIEnrichmentClientFactory aaiEnrichmentClientFactory = - injector.getInstance(AAIEnrichmentClientFactory.class); - return aaiEnrichmentClientFactory.create(aaiHttpClientConfig); - } - - - /** - * Static method used to create an instance of {@link AAIClientFactory} itself using default - * guice {@link AnalyticsAAIModule} - * - * @return An instance of AAI Client Factory with {@link AnalyticsAAIModule} guice module configuration - */ - public static AAIClientFactory create() { - return new AAIClientFactory(new AnalyticsAAIModule()); - } - -} diff --git a/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/domain/config/AAIEnrichmentConfig.java b/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/domain/config/AAIEnrichmentConfig.java deleted file mode 100644 index 19c284f..0000000 --- a/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/domain/config/AAIEnrichmentConfig.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * ===============================LICENSE_START====================================== - * dcae-analytics - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============================LICENSE_END=========================================== - */ - -package org.openecomp.dcae.apod.analytics.aai.domain.config; - -import java.io.Serializable; - -/** - * <p> - * Marker interface for all A&AI API Enrichment Configs - * </p> - * - * @author Rajiv Singla . Creation Date: 9/14/2017. - */ -public interface AAIEnrichmentConfig extends Serializable { -} diff --git a/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/domain/config/AAIHttpClientConfig.java b/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/domain/config/AAIHttpClientConfig.java deleted file mode 100644 index 37190a0..0000000 --- a/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/domain/config/AAIHttpClientConfig.java +++ /dev/null @@ -1,131 +0,0 @@ -/* - * ===============================LICENSE_START====================================== - * dcae-analytics - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============================LICENSE_END=========================================== - */ - -package org.openecomp.dcae.apod.analytics.aai.domain.config; - -import com.google.common.base.Objects; - -import java.net.URL; - -/** - * Contains parameters required to create an instance of A&AI Http Client - * - * @author Rajiv Singla . Creation Date: 9/21/2017. - */ -public class AAIHttpClientConfig implements AAIEnrichmentConfig { - - private static final long serialVersionUID = 1L; - - private final String aaiHost; - private final Integer aaiHostPortNumber; - private final String aaiProtocol; - private final String aaiUserName; - private final String aaiUserPassword; - private final URL aaiProxyURL; - private final boolean aaiIgnoreSSLCertificateErrors; - - AAIHttpClientConfig(final String aaiHost, final Integer aaiHostPortNumber, final String aaiProtocol, - final String aaiUserName, final String aaiUserPassword, final URL aaiProxyURL, - final boolean aaiIgnoreSSLCertificateErrors) { - this.aaiHost = aaiHost; - this.aaiHostPortNumber = aaiHostPortNumber; - this.aaiProtocol = aaiProtocol; - this.aaiUserName = aaiUserName; - this.aaiUserPassword = aaiUserPassword; - this.aaiProxyURL = aaiProxyURL; - this.aaiIgnoreSSLCertificateErrors = aaiIgnoreSSLCertificateErrors; - } - - /** - * Provides A&AI Http Client Host - * - * @return A&AI Http Client Host - */ - public String getAaiHost() { - return aaiHost; - } - - /** - * Provides A&AI Http Client Host Port Number - * - * @return A&AI Http Client Host Port Number - */ - public Integer getAaiHostPortNumber() { - return aaiHostPortNumber; - } - - /** - * Provides A&AI Http Client Protocol - * - * @return A&AI Http Client Protocol - */ - public String getAaiProtocol() { - return aaiProtocol; - } - - /** - * Provides A&AI Http Client UserName - * - * @return A&AI Http Client UserName - */ - public String getAaiUserName() { - return aaiUserName; - } - - /** - * Provides A&AI Http Client UserPassword - * - * @return A&AI Http Client UserPassword - */ - public String getAaiUserPassword() { - return aaiUserPassword; - } - - /** - * Returns A&AI Proxy url - * - * @return A&AI Proxy url - */ - public URL getAaiProxyURL() { - return aaiProxyURL; - } - - /** - * Returns true if SSL Certificate errors can be ignored for A&AI Http client - * - * @return true if SSL Certificate errors can be ignored for A&AI Http client - */ - public boolean isAaiIgnoreSSLCertificateErrors() { - return aaiIgnoreSSLCertificateErrors; - } - - - @Override - public String toString() { - return Objects.toStringHelper(this) - .add("aaiHost", aaiHost) - .add("aaiHostPortNumber", aaiHostPortNumber) - .add("aaiProtocol", aaiProtocol) - .add("aaiUserName", aaiUserName) - .add("aaiProxyHost", aaiProxyURL == null ? null : aaiProxyURL.getHost()) - .add("aaiIgnoreSSLCertificateErrors", aaiIgnoreSSLCertificateErrors) - .toString(); - } -} diff --git a/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/domain/config/AAIHttpClientConfigBuilder.java b/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/domain/config/AAIHttpClientConfigBuilder.java deleted file mode 100644 index 3df0050..0000000 --- a/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/domain/config/AAIHttpClientConfigBuilder.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * ===============================LICENSE_START====================================== - * dcae-analytics - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============================LICENSE_END=========================================== - */ - -package org.openecomp.dcae.apod.analytics.aai.domain.config; - -import org.openecomp.dcae.apod.analytics.common.AnalyticsConstants; - -import java.io.Serializable; -import java.net.URL; - -/** - * A&AI Http Client Config Builder used to create immutable instance of {@link AAIHttpClientConfig} - * - * @author Rajiv Singla . Creation Date: 9/21/2017. - */ -public class AAIHttpClientConfigBuilder implements Serializable { - - private static final long serialVersionUID = 1L; - - private String aaiHost; - private Integer aaiHostPortNumber; - private String aaiProtocol; - private String aaiUserName; - private String aaiUserPassword; - private URL aaiProxyURL; - private boolean aaiIgnoreSSLCertificateErrors; - - public AAIHttpClientConfigBuilder(final String aaiHost) { - this.aaiHost = aaiHost; - this.aaiHostPortNumber = AnalyticsConstants.DEFAULT_PORT_NUMBER; - this.aaiProtocol = AnalyticsConstants.DEFAULT_PROTOCOL; - this.aaiUserName = AnalyticsConstants.DEFAULT_USER_NAME; - this.aaiUserPassword = AnalyticsConstants.DEFAULT_USER_PASSWORD; - this.aaiIgnoreSSLCertificateErrors = AnalyticsConstants - .TCA_DEFAULT_AAI_ENRICHMENT_IGNORE_SSL_CERTIFICATE_ERRORS; - } - - public AAIHttpClientConfigBuilder setAaiHostPortNumber(final Integer aaiHostPortNumber) { - this.aaiHostPortNumber = aaiHostPortNumber; - return this; - } - - public AAIHttpClientConfigBuilder setAaiProtocol(final String aaiProtocol) { - this.aaiProtocol = aaiProtocol; - return this; - } - - public AAIHttpClientConfigBuilder setAaiUserName(final String aaiUserName) { - this.aaiUserName = aaiUserName; - return this; - } - - public AAIHttpClientConfigBuilder setAaiUserPassword(final String aaiUserPassword) { - this.aaiUserPassword = aaiUserPassword; - return this; - } - - public AAIHttpClientConfigBuilder setAaiProxyURL(final URL aaiProxyURL) { - this.aaiProxyURL = aaiProxyURL; - return this; - } - - public AAIHttpClientConfigBuilder setAaiIgnoreSSLCertificateErrors(final boolean aaiIgnoreSSLCertificateErrors) { - this.aaiIgnoreSSLCertificateErrors = aaiIgnoreSSLCertificateErrors; - return this; - } - - public AAIHttpClientConfig build() { - return new AAIHttpClientConfig(aaiHost, aaiHostPortNumber, aaiProtocol, aaiUserName, aaiUserPassword, - aaiProxyURL, aaiIgnoreSSLCertificateErrors); - } -} diff --git a/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/module/AnalyticsAAIModule.java b/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/module/AnalyticsAAIModule.java deleted file mode 100644 index 9074798..0000000 --- a/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/module/AnalyticsAAIModule.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * ===============================LICENSE_START====================================== - * dcae-analytics - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============================LICENSE_END=========================================== - */ - -package org.openecomp.dcae.apod.analytics.aai.module; - -import com.google.inject.AbstractModule; -import com.google.inject.assistedinject.FactoryModuleBuilder; -import org.openecomp.dcae.apod.analytics.aai.service.AAIEnrichmentClient; -import org.openecomp.dcae.apod.analytics.aai.service.AAIEnrichmentClientFactory; -import org.openecomp.dcae.apod.analytics.aai.service.AAIEnrichmentClientImpl; -import org.openecomp.dcae.apod.analytics.aai.service.AAIHttpClient; -import org.openecomp.dcae.apod.analytics.aai.service.AAIHttpClientFactory; -import org.openecomp.dcae.apod.analytics.aai.service.AAIHttpClientImpl; - -/** - * <p> - * Guice Module to bind concrete implementation of interfaces used in Analytics A&AI API - * </p> - * - * @author Rajiv Singla . Creation Date: 9/18/2017. - */ -public class AnalyticsAAIModule extends AbstractModule { - - /** - * Configures A&AI API guice modules - */ - @Override - protected void configure() { - - install(new FactoryModuleBuilder().implement(AAIHttpClient.class, AAIHttpClientImpl.class) - .build(AAIHttpClientFactory.class)); - - install(new FactoryModuleBuilder().implement(AAIEnrichmentClient.class, AAIEnrichmentClientImpl.class) - .build(AAIEnrichmentClientFactory.class)); - - } -} diff --git a/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/service/AAIEnrichmentClient.java b/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/service/AAIEnrichmentClient.java deleted file mode 100644 index 8813cdf..0000000 --- a/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/service/AAIEnrichmentClient.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * ===============================LICENSE_START====================================== - * dcae-analytics - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============================LICENSE_END=========================================== - */ - -package org.openecomp.dcae.apod.analytics.aai.service; - -import java.util.Map; - -/** - * <p> - * A client used to get enrichment details from A&AI - * </p> - * - * @author Rajiv Singla . Creation Date: 9/15/2017. - */ -public interface AAIEnrichmentClient { - - /** - * Provides enrichment details from A&AI API and returns them as string. If no enrichment lookup fails returns null - * - * @param aaiAPIPath A&AI API Path - * @param queryParams A&AI Query Params map - * @param headers A&AI HTTP Headers - * - * @return Enrichment details from A&AI API and returns them as string. If enrichment lookup fails returns null - */ - String getEnrichmentDetails(String aaiAPIPath, Map<String, String> queryParams, Map<String, String> headers); - -} diff --git a/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/service/AAIEnrichmentClientFactory.java b/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/service/AAIEnrichmentClientFactory.java deleted file mode 100644 index bd4a4f2..0000000 --- a/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/service/AAIEnrichmentClientFactory.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * ===============================LICENSE_START====================================== - * dcae-analytics - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============================LICENSE_END=========================================== - */ - -package org.openecomp.dcae.apod.analytics.aai.service; - -import org.openecomp.dcae.apod.analytics.aai.domain.config.AAIHttpClientConfig; - -/** - * Factory to initialize instance of {@link AAIEnrichmentClient} for Guice DI injection purposes. - * - * @author Rajiv Singla . Creation Date: 9/19/2017. - */ -public interface AAIEnrichmentClientFactory { - - /** - * Provides an instance of A&AI Enrichment Client used to get details from A&AI API - * - * @param aaiHttpClientConfig A&AI Http Client config used to create A&AI Enrichment client - * - * @return an instance of A&AI Enrichment Client used to get details from A&AI API - */ - AAIEnrichmentClient create(AAIHttpClientConfig aaiHttpClientConfig); -} diff --git a/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/service/AAIEnrichmentClientImpl.java b/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/service/AAIEnrichmentClientImpl.java deleted file mode 100644 index 229ab17..0000000 --- a/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/service/AAIEnrichmentClientImpl.java +++ /dev/null @@ -1,202 +0,0 @@ -/* - * ===============================LICENSE_START====================================== - * dcae-analytics - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============================LICENSE_END=========================================== - */ - -package org.openecomp.dcae.apod.analytics.aai.service; - -import com.google.common.base.Optional; -import com.google.inject.Inject; -import com.google.inject.assistedinject.Assisted; -import org.apache.commons.lang3.StringUtils; -import org.apache.http.HttpEntity; -import org.apache.http.HttpResponse; -import org.apache.http.client.ResponseHandler; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.utils.URIBuilder; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.util.EntityUtils; -import org.openecomp.dcae.apod.analytics.aai.domain.config.AAIHttpClientConfig; -import org.openecomp.dcae.apod.analytics.common.utils.HTTPUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.IOException; -import java.net.URI; -import java.net.URISyntaxException; -import java.util.Iterator; -import java.util.Map; - -import javax.annotation.Nonnull; - - -/** - * A concrete implementation for {@link AAIEnrichmentClient} which uses A&AI REST API to get A&AI Enrichment details - * - * @author Rajiv Singla . Creation Date: 9/18/2017. - */ -public class AAIEnrichmentClientImpl implements AAIEnrichmentClient { - - private static final Logger LOG = LoggerFactory.getLogger(AAIEnrichmentClientImpl.class); - - private final CloseableHttpClient closeableHttpClient; - private final String aaiProtocol; - private final String aaiHost; - private final Integer aaiHostPortNumber; - - @Inject - public AAIEnrichmentClientImpl(@Assisted final AAIHttpClientConfig aaiHttpClientConfig, - final AAIHttpClientFactory aaiHttpClientFactory) { - final AAIHttpClient aaiHttpClient = aaiHttpClientFactory.create(aaiHttpClientConfig); - closeableHttpClient = aaiHttpClient.getAAIHttpClient(); - aaiProtocol = aaiHttpClientConfig.getAaiProtocol(); - aaiHost = aaiHttpClientConfig.getAaiHost(); - aaiHostPortNumber = aaiHttpClientConfig.getAaiHostPortNumber(); - } - - - /** - * Provides enrichment details from A&AI API and returns them as string. If no enrichment lookup fails returns null - * - * @param aaiAPIPath A&AI API Path - * @param queryParams A&AI Query Params map - * @param headers A&AI HTTP Headers - * - * @return Enrichment details from A&AI API and returns them as string. If enrichment lookup fails returns null - */ - @Override - public String getEnrichmentDetails(final String aaiAPIPath, final Map<String, String> queryParams, - final Map<String, String> headers) { - - final URI enrichmentURI = - createAAIEnrichmentURI(aaiProtocol, aaiHost, aaiHostPortNumber, aaiAPIPath, queryParams); - - if (enrichmentURI == null) { - return null; - } - - // create new get request - final HttpGet getRequest = new HttpGet(enrichmentURI); - // add http headers - for (Map.Entry<String, String> headersEntry : headers.entrySet()) { - getRequest.addHeader(headersEntry.getKey(), headersEntry.getValue()); - } - - Optional<String> enrichmentDetails = Optional.absent(); - // execute http get request - try { - enrichmentDetails = closeableHttpClient.execute(getRequest, aaiResponseHandler()); - } catch (IOException ex) { - LOG.error("Failed to get A&AI Enrichment Details for A&AI Enrichment URI: {} A&AI Error: {}", - enrichmentURI, ex); - } - - // return response - if (enrichmentDetails.isPresent()) { - return enrichmentDetails.get(); - } else { - return null; - } - } - - /** - * Create A&AI API Enrichment URI. If invalid URI - null will be returned - * - * @param protocol A&AI API protocol - * @param hostName A&AI API hostname - * @param portNumber A&AI API port number - * @param path A&AI API path - * @param queryParams A&AI API query parameters - * - * @return A&AI API Enrichment URI - */ - private URI createAAIEnrichmentURI(final String protocol, final String hostName, - final Integer portNumber, final String path, - Map<String, String> queryParams) { - - final URIBuilder uriBuilder = new URIBuilder().setScheme(protocol).setHost(hostName).setPort(portNumber) - .setPath(path); - - // creates custom query string which is not encoded - final String customQuery = createCustomQuery(queryParams); - if (StringUtils.isNoneBlank(customQuery)) { - uriBuilder.setCustomQuery(customQuery); - } - - URI enrichmentURI = null; - try { - enrichmentURI = uriBuilder.build(); - } catch (URISyntaxException e) { - LOG.error("URI Syntax Exception when creating A&AI Enrichment URI. " + - "Protocol: {}, HostName: {}, Port: {}, Path: {}, Custom Query String: {}, Exception: {}", - protocol, hostName, portNumber, path, customQuery, e); - } - - LOG.trace("Created A&AI Enrichment URI: {}", enrichmentURI); - return enrichmentURI; - } - - /** - * Creates Custom Query string to be used for A&AI API URI as A&AI currently does not expect encoded - * query params. - * - * @param queryParams query param map - * - * @return custom query string which does not encode query param values - */ - private static String createCustomQuery(@Nonnull final Map<String, String> queryParams) { - final StringBuilder queryStringBuilder = new StringBuilder(""); - final Iterator<Map.Entry<String, String>> queryParamIterator = queryParams.entrySet().iterator(); - while (queryParamIterator.hasNext()) { - final Map.Entry<String, String> queryParamsEntry = queryParamIterator.next(); - queryStringBuilder.append(queryParamsEntry.getKey()); - queryStringBuilder.append("="); - queryStringBuilder.append(queryParamsEntry.getValue()); - if (queryParamIterator.hasNext()) { - queryStringBuilder.append("&"); - } - } - return queryStringBuilder.toString(); - } - - /** - * Response Handler for A&AI Enrichment API - * - * @return Response Handler that - */ - static ResponseHandler<Optional<String>> aaiResponseHandler() { - return new ResponseHandler<Optional<String>>() { - @Override - public Optional<String> handleResponse(final HttpResponse response) throws IOException { - final int responseCode = response.getStatusLine().getStatusCode(); - final HttpEntity responseEntity = response.getEntity(); - if (HTTPUtils.isSuccessfulResponseCode(responseCode) && null != responseEntity) { - final String aaiResponse = EntityUtils.toString(responseEntity); - return Optional.of(aaiResponse); - } else { - String aaiResponse = responseEntity != null ? EntityUtils.toString(responseEntity) : ""; - LOG.error("Unable to fetch response from A&AI API. A&AI Response Code: {}, " + - "A&AI Response Message: {}", responseCode, aaiResponse); - return Optional.absent(); - } - } - }; - } - -} - diff --git a/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/service/AAIHttpClient.java b/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/service/AAIHttpClient.java deleted file mode 100644 index a4adad9..0000000 --- a/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/service/AAIHttpClient.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * ===============================LICENSE_START====================================== - * dcae-analytics - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============================LICENSE_END=========================================== - */ - -package org.openecomp.dcae.apod.analytics.aai.service; - -import org.apache.http.impl.client.CloseableHttpClient; - -/** - * An HTTP Client used to make REST calls to A&AI Enrichment API - * - * @author Rajiv Singla . Creation Date: 9/19/2017. - */ -public interface AAIHttpClient { - - /** - * Provides an instance of {@link CloseableHttpClient} used to make REST calls to A&AI Enrichment API - * - * @return An instance of Closeable HTTP Client used to make A&AI API Rest calls - */ - CloseableHttpClient getAAIHttpClient(); - -} diff --git a/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/service/AAIHttpClientFactory.java b/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/service/AAIHttpClientFactory.java deleted file mode 100644 index e977639..0000000 --- a/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/service/AAIHttpClientFactory.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * ===============================LICENSE_START====================================== - * dcae-analytics - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============================LICENSE_END=========================================== - */ - -package org.openecomp.dcae.apod.analytics.aai.service; - -import org.openecomp.dcae.apod.analytics.aai.domain.config.AAIHttpClientConfig; - -/** - * Factory to initialize instance of {@link AAIHttpClient} for Guice DI injection purposes. - * - * @author Rajiv Singla . Creation Date: 9/22/2017. - */ -public interface AAIHttpClientFactory { - - /** - * Provides an instance of A&AI HTTP Client - * - * @param aaiHttpClientConfig A&AI HTTP Client Config - * - * @return An instance of A&AI HTTP Client - */ - AAIHttpClient create(AAIHttpClientConfig aaiHttpClientConfig); - -} diff --git a/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/service/AAIHttpClientImpl.java b/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/service/AAIHttpClientImpl.java deleted file mode 100644 index 34631b1..0000000 --- a/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/service/AAIHttpClientImpl.java +++ /dev/null @@ -1,159 +0,0 @@ -/* - * ===============================LICENSE_START====================================== - * dcae-analytics - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============================LICENSE_END=========================================== - */ - -package org.openecomp.dcae.apod.analytics.aai.service; - -import com.google.inject.Inject; -import com.google.inject.assistedinject.Assisted; -import org.apache.commons.lang3.StringUtils; -import org.apache.http.HttpHost; -import org.apache.http.auth.AuthScope; -import org.apache.http.auth.Credentials; -import org.apache.http.auth.UsernamePasswordCredentials; -import org.apache.http.client.CredentialsProvider; -import org.apache.http.conn.ssl.NoopHostnameVerifier; -import org.apache.http.impl.client.BasicCredentialsProvider; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClientBuilder; -import org.apache.http.impl.client.HttpClients; -import org.apache.http.impl.conn.DefaultProxyRoutePlanner; -import org.apache.http.ssl.SSLContextBuilder; -import org.openecomp.dcae.apod.analytics.aai.domain.config.AAIHttpClientConfig; -import org.openecomp.dcae.apod.analytics.aai.utils.ssl.AlwaysTrustingTrustStrategy; -import org.openecomp.dcae.apod.analytics.common.exception.DCAEAnalyticsRuntimeException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.net.URL; -import java.security.KeyManagementException; -import java.security.KeyStoreException; -import java.security.NoSuchAlgorithmException; - -/** - * <p> - * A concrete implementation of {@link AAIHttpClient} which provides Apache {@link CloseableHttpClient} for - * making rest calls to A&AI Enrichment API. - * </p> - * - * @author Rajiv Singla . Creation Date: 9/19/2017. - */ -public class AAIHttpClientImpl implements AAIHttpClient { - - private static final Logger LOG = LoggerFactory.getLogger(AAIHttpClientImpl.class); - - private final AAIHttpClientConfig aaiHttpClientConfig; - - @Inject - public AAIHttpClientImpl(@Assisted final AAIHttpClientConfig aaiHttpClientConfig) { - this.aaiHttpClientConfig = aaiHttpClientConfig; - } - - /** - * Provides an instance of {@link CloseableHttpClient} used to make REST calls to A&AI Enrichment API - * - * @return An instance of Closeable HTTP Client used to make A&AI API Rest calls - */ - @Override - public CloseableHttpClient getAAIHttpClient() { - - final HttpClientBuilder httpClientBuilder = HttpClients.custom().useSystemProperties(); - final boolean aaiIgnoreSSLCertificateErrors = aaiHttpClientConfig.isAaiIgnoreSSLCertificateErrors(); - - // Setup SSL Context to ignore SSL certificate issues if ignoreSSLCertificateErrors is true - LOG.info("SSL Certificate Errors attributed is set to : {}", aaiIgnoreSSLCertificateErrors); - - if (aaiIgnoreSSLCertificateErrors) { - LOG.warn("SSL Certificate Errors will be ignored for this A&AI Http Client Instance"); - try { - SSLContextBuilder sslContextBuilder = new SSLContextBuilder(); - sslContextBuilder.loadTrustMaterial(null, new AlwaysTrustingTrustStrategy()); - httpClientBuilder.setSSLContext(sslContextBuilder.build()); - } catch (NoSuchAlgorithmException e) { - final String errorMessage = "NoSuchAlgorithmException while setting SSL Context for AAI HTTP Client."; - throw new DCAEAnalyticsRuntimeException(errorMessage, LOG, e); - } catch (KeyStoreException e) { - final String errorMessage = "KeyStoreException while setting SSL Context for AAI HTTP Client."; - throw new DCAEAnalyticsRuntimeException(errorMessage, LOG, e); - } catch (KeyManagementException e) { - final String errorMessage = "KeyManagementException while setting SSL Context for AAI HTTP Client."; - throw new DCAEAnalyticsRuntimeException(errorMessage, LOG, e); - } - - httpClientBuilder.setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE); - - } else { - LOG.info("SSL Certification Errors will be enforced for A&AI Http Client instance"); - } - - // Setup credentials and proxy - final String aaiUserName = aaiHttpClientConfig.getAaiUserName(); - - final CredentialsProvider credentialsProvider = new BasicCredentialsProvider(); - - if (aaiUserName != null) { - final String aaiHost = aaiHttpClientConfig.getAaiHost(); - final Integer aaiHostPortNumber = aaiHttpClientConfig.getAaiHostPortNumber(); - final String aaiUserPassword = aaiHttpClientConfig.getAaiUserPassword(); - LOG.info("Setting A&AI host credentials for AAI Host: {}", aaiHost); - final AuthScope aaiHostPortAuthScope = new AuthScope(aaiHost, aaiHostPortNumber); - final Credentials aaiCredentials = new UsernamePasswordCredentials(aaiUserName, aaiUserPassword); - credentialsProvider.setCredentials(aaiHostPortAuthScope, aaiCredentials); - } else { - LOG.warn("A&AI userName not present. No credentials set for A&AI authentication"); - } - - final URL aaiProxyURL = aaiHttpClientConfig.getAaiProxyURL(); - - if (aaiProxyURL != null) { - final String aaiProxyHost = aaiProxyURL.getHost(); - final Integer aaiProxyPortNumber = aaiProxyURL.getPort(); - final String aaiProxyProtocol = aaiProxyURL.getProtocol(); - final HttpHost proxy = new HttpHost(aaiProxyHost, aaiProxyPortNumber, aaiProxyProtocol); - LOG.info("Setting A&AI Http Client default proxy as: {}", proxy); - final DefaultProxyRoutePlanner routePlanner = new DefaultProxyRoutePlanner(proxy); - httpClientBuilder.setRoutePlanner(routePlanner); - - final String userInfo = aaiProxyURL.getUserInfo(); - if (StringUtils.isNotBlank(userInfo)) { - final String[] userInfoArray = userInfo.split(":"); - final String aaiProxyUsername = userInfoArray[0]; - String aaiProxyPassword = null; - if (userInfoArray.length > 1) { - aaiProxyPassword = userInfoArray[1]; - } - LOG.info("Setting A&AI Http Client proxy credentials with username: {}", aaiProxyUsername); - final AuthScope aaiProxyAuthScope = new AuthScope(aaiProxyHost, aaiProxyPortNumber); - final Credentials aaiProxyCredentials = new UsernamePasswordCredentials(aaiProxyUsername, - aaiProxyPassword); - credentialsProvider.setCredentials(aaiProxyAuthScope, aaiProxyCredentials); - } else { - LOG.debug("NO A&AI Proxy Username present.Bypassing setting up A&AI Proxy authentication credentials"); - } - } else { - LOG.debug("A&AI proxy not Enabled - bypassing setting A&AI Proxy settings"); - } - - // setup credentials provider - httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider); - - return httpClientBuilder.build(); - } - -} diff --git a/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/utils/ssl/AlwaysTrustingTrustStrategy.java b/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/utils/ssl/AlwaysTrustingTrustStrategy.java deleted file mode 100644 index b11680b..0000000 --- a/dcae-analytics-aai/src/main/java/org/openecomp/dcae/apod/analytics/aai/utils/ssl/AlwaysTrustingTrustStrategy.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * ===============================LICENSE_START====================================== - * dcae-analytics - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============================LICENSE_END=========================================== - */ - -package org.openecomp.dcae.apod.analytics.aai.utils.ssl; - -import org.apache.http.ssl.TrustStrategy; - -import java.security.cert.CertificateException; -import java.security.cert.X509Certificate; - -/** - * An implementation of SSL Trust Strategy which does no SSL certificate validation effectively - * bypassing any SSL certificate related issues - * - * @author Rajiv Singla . Creation Date: 9/19/2017. - */ -public class AlwaysTrustingTrustStrategy implements TrustStrategy { - /** - * Determines whether the certificate chain can be trusted without consulting the trust manager - * configured in the actual SSL context. This method can be used to override the standard JSSE - * certificate verification process. - * <p> - * Please note that, if this method returns {@code false}, the trust manager configured - * in the actual SSL context can still clear the certificate as trusted. - * - * @param chain the peer certificate chain - * @param authType the authentication type based on the client certificate - * - * @return {@code true} if the certificate can be trusted without verification by - * the trust manager, {@code false} otherwise. - * - * @throws CertificateException thrown if the certificate is not trusted or invalid. - */ - @Override - public boolean isTrusted(X509Certificate[] chain, String authType) throws CertificateException { - return true; - } -} |