diff options
Diffstat (limited to 'prh-aai-client')
4 files changed, 41 insertions, 69 deletions
diff --git a/prh-aai-client/src/main/java/org/onap/dcaegen2/services/prh/service/AAIConsumerClient.java b/prh-aai-client/src/main/java/org/onap/dcaegen2/services/prh/service/AAIConsumerClient.java index 0ada9072..99a4a8b2 100644 --- a/prh-aai-client/src/main/java/org/onap/dcaegen2/services/prh/service/AAIConsumerClient.java +++ b/prh-aai-client/src/main/java/org/onap/dcaegen2/services/prh/service/AAIConsumerClient.java @@ -42,7 +42,7 @@ import java.util.Optional; public class AAIConsumerClient { - Logger logger = LoggerFactory.getLogger(AAIConsumerClient.class); + private Logger logger = LoggerFactory.getLogger(AAIConsumerClient.class); private final CloseableHttpClient closeableHttpClient; private final String aaiHost; diff --git a/prh-aai-client/src/main/java/org/onap/dcaegen2/services/prh/service/AAIExtendedHttpClient.java b/prh-aai-client/src/main/java/org/onap/dcaegen2/services/prh/service/AAIExtendedHttpClient.java index cb884aed..14c7e8f3 100644 --- a/prh-aai-client/src/main/java/org/onap/dcaegen2/services/prh/service/AAIExtendedHttpClient.java +++ b/prh-aai-client/src/main/java/org/onap/dcaegen2/services/prh/service/AAIExtendedHttpClient.java @@ -21,11 +21,11 @@ package org.onap.dcaegen2.services.prh.service; import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel; -import java.io.IOException; +import java.net.URISyntaxException; import java.util.Optional; @FunctionalInterface public interface AAIExtendedHttpClient { - Optional<Integer> getHttpResponse(ConsumerDmaapModel consumerDmaapModel) throws IOException; + Optional<Integer> getHttpResponse(ConsumerDmaapModel consumerDmaapModel) throws URISyntaxException; } diff --git a/prh-aai-client/src/main/java/org/onap/dcaegen2/services/prh/service/AAIProducerClient.java b/prh-aai-client/src/main/java/org/onap/dcaegen2/services/prh/service/AAIProducerClient.java index 3a07e94d..4f48c1c3 100644 --- a/prh-aai-client/src/main/java/org/onap/dcaegen2/services/prh/service/AAIProducerClient.java +++ b/prh-aai-client/src/main/java/org/onap/dcaegen2/services/prh/service/AAIProducerClient.java @@ -41,11 +41,10 @@ import java.io.UnsupportedEncodingException; import java.net.URI; import java.net.URISyntaxException; import java.util.Map; -import java.util.Objects; import java.util.Optional; public class AAIProducerClient implements AAIExtendedHttpClient { - Logger logger = LoggerFactory.getLogger(AAIProducerClient.class); + private Logger logger = LoggerFactory.getLogger(AAIProducerClient.class); private final CloseableHttpClient closeableHttpClient; private final String aaiHost; @@ -66,30 +65,34 @@ public class AAIProducerClient implements AAIExtendedHttpClient { @Override - public Optional<Integer> getHttpResponse(ConsumerDmaapModel consumerDmaapModel) throws IOException { - Optional<HttpRequestBase> request = createRequest(consumerDmaapModel); + public Optional<Integer> getHttpResponse(ConsumerDmaapModel consumerDmaapModel) throws + URISyntaxException { try { - return closeableHttpClient.execute(request.get(), aaiResponseHandler()); - } catch (IOException e) { + return createRequest(consumerDmaapModel).flatMap(x->{ + try { + return closeableHttpClient.execute(x, aaiResponseHandler()); + } catch (IOException e) { + logger.warn("Exception while executing http client: ", e); + return Optional.empty(); + } + }); + } catch (URISyntaxException e ) { logger.warn("Exception while executing http client: ", e); - throw new IOException(); + throw e; } } - private URI createAAIExtendedURI(final String pnfName) { - URI extendedURI = null; - final URIBuilder uriBuilder = new URIBuilder() + private Optional<HttpRequestBase> createRequest(ConsumerDmaapModel consumerDmaapModel) throws URISyntaxException { + final URI extendedURI = createAAIExtendedURI(consumerDmaapModel.getPnfName()); + return createHttpRequest(extendedURI, consumerDmaapModel); + } + + private URI createAAIExtendedURI(final String pnfName) throws URISyntaxException { + return new URIBuilder() .setScheme(aaiProtocol) .setHost(aaiHost) .setPort(aaiHostPortNumber) - .setPath(aaiPath + "/" + pnfName); - try { - extendedURI = uriBuilder.build(); - logger.trace("Building extended URI: {}", extendedURI); - } catch (URISyntaxException e) { - logger.warn("Exception while building extended URI: ", e); - } - return extendedURI; + .setPath(aaiPath + "/" + pnfName).build(); } private ResponseHandler<Optional<Integer>> aaiResponseHandler() { @@ -109,47 +112,22 @@ public class AAIProducerClient implements AAIExtendedHttpClient { }; } - private HttpRequestBase createHttpRequest(URI extendedURI, ConsumerDmaapModel consumerDmaapModel) { - String jsonBody = CommonFunctions.createJsonBody(consumerDmaapModel); - - if (isExtendedURINotNull(extendedURI) && jsonBody != null && !"".equals(jsonBody)) { - return createHttpPatch(extendedURI, Optional.ofNullable(CommonFunctions.createJsonBody(consumerDmaapModel))); - } else { - return null; - } - } - - private Boolean isExtendedURINotNull(URI extendedURI) { - return extendedURI != null; - } - - - private Optional<StringEntity> createStringEntity(Optional<String> jsonBody) { - return Optional.of(parseJson(jsonBody).get()); + private Optional<HttpRequestBase> createHttpRequest(URI extendedURI, ConsumerDmaapModel consumerDmaapModel) { + return Optional.ofNullable(CommonFunctions.createJsonBody(consumerDmaapModel)).filter(x-> !x.isEmpty()).flatMap(myJson -> { + try { + return Optional.of(createHttpPatch(extendedURI, myJson)); + } catch (UnsupportedEncodingException e) { + logger.warn("Exception while executing http client: ", e); + } + return Optional.empty(); + }); } - private HttpPatch createHttpPatch(URI extendedURI, Optional<String> jsonBody) { + private HttpPatch createHttpPatch(URI extendedURI, String jsonBody) throws UnsupportedEncodingException { HttpPatch httpPatch = new HttpPatch(extendedURI); - Optional<StringEntity> stringEntity = createStringEntity(jsonBody); - httpPatch.setEntity(stringEntity.get()); + httpPatch.setEntity( new StringEntity(jsonBody)); + aaiHeaders.forEach(httpPatch::addHeader); + httpPatch.addHeader("Content-Type", "application/merge-patch+json"); return httpPatch; } - - private Optional<StringEntity> parseJson(Optional<String> jsonBody) { - Optional<StringEntity> stringEntity = Optional.empty(); - try { - stringEntity = Optional.of(new StringEntity(jsonBody.get())); - } catch (UnsupportedEncodingException e) { - logger.warn("Exception while parsing JSON: ", e); - } - return stringEntity; - } - - private Optional<HttpRequestBase> createRequest(ConsumerDmaapModel consumerDmaapModel) { - final URI extendedURI = createAAIExtendedURI(consumerDmaapModel.getPnfName()); - HttpRequestBase request = createHttpRequest(extendedURI, consumerDmaapModel); - aaiHeaders.forEach(Objects.requireNonNull(request)::addHeader); - Objects.requireNonNull(request).addHeader("Content-Type", "application/merge-patch+json"); - return Optional.of(request); - } } diff --git a/prh-aai-client/src/test/java/org/onap/dcaegen2/services/prh/service/AAIProducerClientTest.java b/prh-aai-client/src/test/java/org/onap/dcaegen2/services/prh/service/AAIProducerClientTest.java index dbe857e6..ec926294 100644 --- a/prh-aai-client/src/test/java/org/onap/dcaegen2/services/prh/service/AAIProducerClientTest.java +++ b/prh-aai-client/src/test/java/org/onap/dcaegen2/services/prh/service/AAIProducerClientTest.java @@ -24,15 +24,14 @@ import org.apache.http.client.ResponseHandler; import org.apache.http.client.methods.HttpPatch; import org.apache.http.impl.client.CloseableHttpClient; import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.onap.dcaegen2.services.prh.config.AAIClientConfiguration; import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel; import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModelForUnitTest; - import java.io.IOException; import java.lang.reflect.Field; +import java.net.URISyntaxException; import java.util.HashMap; import java.util.Map; import java.util.Optional; @@ -50,8 +49,9 @@ public class AAIProducerClientTest { private static ConsumerDmaapModel consumerDmaapModel = new ConsumerDmaapModelForUnitTest(); - @BeforeAll - public static void init() throws NoSuchFieldException, IllegalAccessException { + @Test + public void getHttpResponse_shouldReturnSuccessStatusCode() + throws IOException, URISyntaxException, NoSuchFieldException, IllegalAccessException { //given Map<String, String> aaiHeaders = new HashMap<>(); @@ -61,7 +61,6 @@ public class AAIProducerClientTest { aaiHeaders.put("Real-Time", "true"); aaiHeaders.put("Content-Type", "application/merge-patch+json"); - //when when(aaiHttpClientConfigurationMock.aaiHost()).thenReturn("eucalyptus.es-si-eu-dhn-20.eecloud.nsn-net.net"); when(aaiHttpClientConfigurationMock.aaiProtocol()).thenReturn("https"); when(aaiHttpClientConfigurationMock.aaiHostPortNumber()).thenReturn(1234); @@ -73,11 +72,6 @@ public class AAIProducerClientTest { testedObject = new AAIProducerClient(aaiHttpClientConfigurationMock); setField(); - } - - @Test - public void getHttpResponsePatch_shouldReturnSuccessStatusCode() throws IOException { - //when when(closeableHttpClientMock.execute(any(HttpPatch.class), any(ResponseHandler.class))) .thenReturn(Optional.of(SUCCESS)); Optional<Integer> actualResult = testedObject.getHttpResponse(consumerDmaapModel); |