summaryrefslogtreecommitdiffstats
path: root/a1-adapter/a1-adapter-api/provider
diff options
context:
space:
mode:
Diffstat (limited to 'a1-adapter/a1-adapter-api/provider')
-rw-r--r--a1-adapter/a1-adapter-api/provider/pom.xml2
-rw-r--r--a1-adapter/a1-adapter-api/provider/src/main/java/org/onap/ccsdk/features/a1/adapter/A1AdapterProvider.java245
-rw-r--r--a1-adapter/a1-adapter-api/provider/src/test/java/org/onap/ccsdk/features/a1/adapter/A1AdapterProviderTest.java22
3 files changed, 245 insertions, 24 deletions
diff --git a/a1-adapter/a1-adapter-api/provider/pom.xml b/a1-adapter/a1-adapter-api/provider/pom.xml
index 407bceca..fdb3836b 100644
--- a/a1-adapter/a1-adapter-api/provider/pom.xml
+++ b/a1-adapter/a1-adapter-api/provider/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>binding-parent</artifactId>
- <version>2.4.0</version>
+ <version>2.4.1</version>
<relativePath/>
</parent>
diff --git a/a1-adapter/a1-adapter-api/provider/src/main/java/org/onap/ccsdk/features/a1/adapter/A1AdapterProvider.java b/a1-adapter/a1-adapter-api/provider/src/main/java/org/onap/ccsdk/features/a1/adapter/A1AdapterProvider.java
index 40dfcbc5..b6950247 100644
--- a/a1-adapter/a1-adapter-api/provider/src/main/java/org/onap/ccsdk/features/a1/adapter/A1AdapterProvider.java
+++ b/a1-adapter/a1-adapter-api/provider/src/main/java/org/onap/ccsdk/features/a1/adapter/A1AdapterProvider.java
@@ -53,7 +53,6 @@ import org.opendaylight.yang.gen.v1.org.onap.a1.adapter.rev200122.PutA1PolicyInp
import org.opendaylight.yang.gen.v1.org.onap.a1.adapter.rev200122.PutA1PolicyInputBuilder;
import org.opendaylight.yang.gen.v1.org.onap.a1.adapter.rev200122.PutA1PolicyOutput;
import org.opendaylight.yang.gen.v1.org.onap.a1.adapter.rev200122.PutA1PolicyOutputBuilder;
-import org.opendaylight.yangtools.concepts.Builder;
import org.opendaylight.yangtools.concepts.ObjectRegistration;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
@@ -179,7 +178,7 @@ public class A1AdapterProvider implements AutoCloseable, A1ADAPTERAPIService {
return Futures.immediateFuture(putPolicyResult);
}
- private <T> boolean hasGraph(final String svcOperation, Builder<T> response) {
+ private boolean hasGraph(final String svcOperation, DeleteA1PolicyOutputBuilder response) {
try {
return a1AdapterClient.hasGraph(A1_ADAPTER_API, svcOperation, null, SYNC);
} catch (Exception e) {
@@ -189,8 +188,65 @@ public class A1AdapterProvider implements AutoCloseable, A1ADAPTERAPIService {
return false;
}
- private <U, T> void setUpAndExecuteOperation(final String svcOperation, Builder<U> inputBuilder,
- Builder<T> responseBuilder) {
+ private boolean hasGraph(final String svcOperation, GetA1PolicyOutputBuilder response) {
+ try {
+ return a1AdapterClient.hasGraph(A1_ADAPTER_API, svcOperation, null, SYNC);
+ } catch (Exception e) {
+ log.error("Caught exception looking for service logic, {}", e.getMessage());
+ setHttpResponse(response, SC_INTERNAL_SERVER_ERROR);
+ }
+ return false;
+ }
+
+ private boolean hasGraph(final String svcOperation, GetA1PolicyStatusOutputBuilder response) {
+ try {
+ return a1AdapterClient.hasGraph(A1_ADAPTER_API, svcOperation, null, SYNC);
+ } catch (Exception e) {
+ log.error("Caught exception looking for service logic, {}", e.getMessage());
+ setHttpResponse(response, SC_INTERNAL_SERVER_ERROR);
+ }
+ return false;
+ }
+
+ private boolean hasGraph(final String svcOperation, GetA1PolicyTypeOutputBuilder response) {
+ try {
+ return a1AdapterClient.hasGraph(A1_ADAPTER_API, svcOperation, null, SYNC);
+ } catch (Exception e) {
+ log.error("Caught exception looking for service logic, {}", e.getMessage());
+ setHttpResponse(response, SC_INTERNAL_SERVER_ERROR);
+ }
+ return false;
+ }
+
+ private boolean hasGraph(final String svcOperation, PutA1PolicyOutputBuilder response) {
+ try {
+ return a1AdapterClient.hasGraph(A1_ADAPTER_API, svcOperation, null, SYNC);
+ } catch (Exception e) {
+ log.error("Caught exception looking for service logic, {}", e.getMessage());
+ setHttpResponse(response, SC_INTERNAL_SERVER_ERROR);
+ }
+ return false;
+ }
+
+ private void setUpAndExecuteOperation(final String svcOperation, DeleteA1PolicyInputBuilder inputBuilder,
+ DeleteA1PolicyOutputBuilder responseBuilder) {
+ log.info("Adding INPUT data for {} input: {}", svcOperation, inputBuilder);
+ // add input to parms
+ Properties parms = new Properties();
+ MdsalHelper.toProperties(parms, inputBuilder.build());
+ logSliParameters(parms);
+ // Call SLI sync method
+ if (hasGraph(svcOperation, responseBuilder)) {
+ log.info("A1AdapterClient has a Directed Graph for '{}'", svcOperation);
+ executeOperation(svcOperation, parms, responseBuilder);
+ } else {
+ log.error("No service logic active for A1Adapter: '{}'", svcOperation);
+ setHttpResponse(responseBuilder, Integer.valueOf(SC_SERVICE_UNAVAILABLE));
+ }
+ }
+
+ private void setUpAndExecuteOperation(final String svcOperation, GetA1PolicyInputBuilder inputBuilder,
+ GetA1PolicyOutputBuilder responseBuilder) {
log.info("Adding INPUT data for {} input: {}", svcOperation, inputBuilder);
// add input to parms
Properties parms = new Properties();
@@ -206,7 +262,58 @@ public class A1AdapterProvider implements AutoCloseable, A1ADAPTERAPIService {
}
}
- private <T> void executeOperation(final String svcOperation, Properties parms, Builder<T> response) {
+ private void setUpAndExecuteOperation(final String svcOperation, GetA1PolicyStatusInputBuilder inputBuilder,
+ GetA1PolicyStatusOutputBuilder responseBuilder) {
+ log.info("Adding INPUT data for {} input: {}", svcOperation, inputBuilder);
+ // add input to parms
+ Properties parms = new Properties();
+ MdsalHelper.toProperties(parms, inputBuilder.build());
+ logSliParameters(parms);
+ // Call SLI sync method
+ if (hasGraph(svcOperation, responseBuilder)) {
+ log.info("A1AdapterClient has a Directed Graph for '{}'", svcOperation);
+ executeOperation(svcOperation, parms, responseBuilder);
+ } else {
+ log.error("No service logic active for A1Adapter: '{}'", svcOperation);
+ setHttpResponse(responseBuilder, Integer.valueOf(SC_SERVICE_UNAVAILABLE));
+ }
+ }
+
+ private void setUpAndExecuteOperation(final String svcOperation, GetA1PolicyTypeInputBuilder inputBuilder,
+ GetA1PolicyTypeOutputBuilder responseBuilder) {
+ log.info("Adding INPUT data for {} input: {}", svcOperation, inputBuilder);
+ // add input to parms
+ Properties parms = new Properties();
+ MdsalHelper.toProperties(parms, inputBuilder.build());
+ logSliParameters(parms);
+ // Call SLI sync method
+ if (hasGraph(svcOperation, responseBuilder)) {
+ log.info("A1AdapterClient has a Directed Graph for '{}'", svcOperation);
+ executeOperation(svcOperation, parms, responseBuilder);
+ } else {
+ log.error("No service logic active for A1Adapter: '{}'", svcOperation);
+ setHttpResponse(responseBuilder, Integer.valueOf(SC_SERVICE_UNAVAILABLE));
+ }
+ }
+
+ private void setUpAndExecuteOperation(final String svcOperation, PutA1PolicyInputBuilder inputBuilder,
+ PutA1PolicyOutputBuilder responseBuilder) {
+ log.info("Adding INPUT data for {} input: {}", svcOperation, inputBuilder);
+ // add input to parms
+ Properties parms = new Properties();
+ MdsalHelper.toProperties(parms, inputBuilder.build());
+ logSliParameters(parms);
+ // Call SLI sync method
+ if (hasGraph(svcOperation, responseBuilder)) {
+ log.info("A1AdapterClient has a Directed Graph for '{}'", svcOperation);
+ executeOperation(svcOperation, parms, responseBuilder);
+ } else {
+ log.error("No service logic active for A1Adapter: '{}'", svcOperation);
+ setHttpResponse(responseBuilder, Integer.valueOf(SC_SERVICE_UNAVAILABLE));
+ }
+ }
+
+ private void executeOperation(final String svcOperation, Properties parms, DeleteA1PolicyOutputBuilder response) {
try {
Properties responseParms =
a1AdapterClient.execute(A1_ADAPTER_API, svcOperation, null, SYNC, response, parms);
@@ -219,7 +326,95 @@ public class A1AdapterProvider implements AutoCloseable, A1ADAPTERAPIService {
}
}
- private <T> void setBody(Builder<T> responseBuilder, String body) {
+ private void executeOperation(final String svcOperation, Properties parms, GetA1PolicyOutputBuilder response) {
+ try {
+ Properties responseParms =
+ a1AdapterClient.execute(A1_ADAPTER_API, svcOperation, null, SYNC, response, parms);
+ logResponse(responseParms);
+ setBody(response, responseParms.getProperty(RESPONSE_BODY));
+ setHttpResponse(response, Integer.valueOf(responseParms.getProperty(RESPONSE_CODE)));
+ } catch (Exception e) {
+ log.error("Caught exception executing service logic for {}, {}", svcOperation, e.getMessage());
+ setHttpResponse(response, Integer.valueOf(SC_INTERNAL_SERVER_ERROR));
+ }
+ }
+
+ private void executeOperation(final String svcOperation, Properties parms, GetA1PolicyStatusOutputBuilder response) {
+ try {
+ Properties responseParms =
+ a1AdapterClient.execute(A1_ADAPTER_API, svcOperation, null, SYNC, response, parms);
+ logResponse(responseParms);
+ setBody(response, responseParms.getProperty(RESPONSE_BODY));
+ setHttpResponse(response, Integer.valueOf(responseParms.getProperty(RESPONSE_CODE)));
+ } catch (Exception e) {
+ log.error("Caught exception executing service logic for {}, {}", svcOperation, e.getMessage());
+ setHttpResponse(response, Integer.valueOf(SC_INTERNAL_SERVER_ERROR));
+ }
+ }
+
+ private void executeOperation(final String svcOperation, Properties parms, GetA1PolicyTypeOutputBuilder response) {
+ try {
+ Properties responseParms =
+ a1AdapterClient.execute(A1_ADAPTER_API, svcOperation, null, SYNC, response, parms);
+ logResponse(responseParms);
+ setBody(response, responseParms.getProperty(RESPONSE_BODY));
+ setHttpResponse(response, Integer.valueOf(responseParms.getProperty(RESPONSE_CODE)));
+ } catch (Exception e) {
+ log.error("Caught exception executing service logic for {}, {}", svcOperation, e.getMessage());
+ setHttpResponse(response, Integer.valueOf(SC_INTERNAL_SERVER_ERROR));
+ }
+ }
+
+ private void executeOperation(final String svcOperation, Properties parms, PutA1PolicyOutputBuilder response) {
+ try {
+ Properties responseParms =
+ a1AdapterClient.execute(A1_ADAPTER_API, svcOperation, null, SYNC, response, parms);
+ logResponse(responseParms);
+ setBody(response, responseParms.getProperty(RESPONSE_BODY));
+ setHttpResponse(response, Integer.valueOf(responseParms.getProperty(RESPONSE_CODE)));
+ } catch (Exception e) {
+ log.error("Caught exception executing service logic for {}, {}", svcOperation, e.getMessage());
+ setHttpResponse(response, Integer.valueOf(SC_INTERNAL_SERVER_ERROR));
+ }
+ }
+
+ private void setBody(DeleteA1PolicyOutputBuilder responseBuilder, String body) {
+ try {
+ Method method = responseBuilder.getClass().getMethod("setBody", String.class);
+ method.invoke(responseBuilder, body);
+ } catch (Exception reflectionException) {
+ throw new MissingResponseMethodRuntimeException(reflectionException);
+ }
+ }
+
+ private void setBody(GetA1PolicyOutputBuilder responseBuilder, String body) {
+ try {
+ Method method = responseBuilder.getClass().getMethod("setBody", String.class);
+ method.invoke(responseBuilder, body);
+ } catch (Exception reflectionException) {
+ throw new MissingResponseMethodRuntimeException(reflectionException);
+ }
+ }
+
+ private void setBody(GetA1PolicyStatusOutputBuilder responseBuilder, String body) {
+ try {
+ Method method = responseBuilder.getClass().getMethod("setBody", String.class);
+ method.invoke(responseBuilder, body);
+ } catch (Exception reflectionException) {
+ throw new MissingResponseMethodRuntimeException(reflectionException);
+ }
+ }
+
+ private void setBody(GetA1PolicyTypeOutputBuilder responseBuilder, String body) {
+ try {
+ Method method = responseBuilder.getClass().getMethod("setBody", String.class);
+ method.invoke(responseBuilder, body);
+ } catch (Exception reflectionException) {
+ throw new MissingResponseMethodRuntimeException(reflectionException);
+ }
+ }
+
+ private void setBody(PutA1PolicyOutputBuilder responseBuilder, String body) {
try {
Method method = responseBuilder.getClass().getMethod("setBody", String.class);
method.invoke(responseBuilder, body);
@@ -228,7 +423,43 @@ public class A1AdapterProvider implements AutoCloseable, A1ADAPTERAPIService {
}
}
- private <T> void setHttpResponse(Builder<T> responseBuilder, Integer response) {
+ private void setHttpResponse(DeleteA1PolicyOutputBuilder responseBuilder, Integer response) {
+ try {
+ Method method = responseBuilder.getClass().getMethod("setHttpStatus", Integer.class);
+ method.invoke(responseBuilder, response);
+ } catch (Exception reflectionException) {
+ throw new MissingResponseMethodRuntimeException(reflectionException);
+ }
+ }
+
+ private void setHttpResponse(GetA1PolicyOutputBuilder responseBuilder, Integer response) {
+ try {
+ Method method = responseBuilder.getClass().getMethod("setHttpStatus", Integer.class);
+ method.invoke(responseBuilder, response);
+ } catch (Exception reflectionException) {
+ throw new MissingResponseMethodRuntimeException(reflectionException);
+ }
+ }
+
+ private void setHttpResponse(GetA1PolicyStatusOutputBuilder responseBuilder, Integer response) {
+ try {
+ Method method = responseBuilder.getClass().getMethod("setHttpStatus", Integer.class);
+ method.invoke(responseBuilder, response);
+ } catch (Exception reflectionException) {
+ throw new MissingResponseMethodRuntimeException(reflectionException);
+ }
+ }
+
+ private void setHttpResponse(GetA1PolicyTypeOutputBuilder responseBuilder, Integer response) {
+ try {
+ Method method = responseBuilder.getClass().getMethod("setHttpStatus", Integer.class);
+ method.invoke(responseBuilder, response);
+ } catch (Exception reflectionException) {
+ throw new MissingResponseMethodRuntimeException(reflectionException);
+ }
+ }
+
+ private void setHttpResponse(PutA1PolicyOutputBuilder responseBuilder, Integer response) {
try {
Method method = responseBuilder.getClass().getMethod("setHttpStatus", Integer.class);
method.invoke(responseBuilder, response);
diff --git a/a1-adapter/a1-adapter-api/provider/src/test/java/org/onap/ccsdk/features/a1/adapter/A1AdapterProviderTest.java b/a1-adapter/a1-adapter-api/provider/src/test/java/org/onap/ccsdk/features/a1/adapter/A1AdapterProviderTest.java
index 890ff72c..b68a99e5 100644
--- a/a1-adapter/a1-adapter-api/provider/src/test/java/org/onap/ccsdk/features/a1/adapter/A1AdapterProviderTest.java
+++ b/a1-adapter/a1-adapter-api/provider/src/test/java/org/onap/ccsdk/features/a1/adapter/A1AdapterProviderTest.java
@@ -35,17 +35,7 @@ import org.mockito.Mockito;
import org.mockito.junit.jupiter.MockitoExtension;
import org.opendaylight.mdsal.binding.api.NotificationPublishService;
import org.opendaylight.mdsal.binding.api.RpcProviderService;
-import org.opendaylight.yang.gen.v1.org.onap.a1.adapter.rev200122.DeleteA1PolicyInputBuilder;
-import org.opendaylight.yang.gen.v1.org.onap.a1.adapter.rev200122.DeleteA1PolicyOutput;
-import org.opendaylight.yang.gen.v1.org.onap.a1.adapter.rev200122.GetA1PolicyInputBuilder;
-import org.opendaylight.yang.gen.v1.org.onap.a1.adapter.rev200122.GetA1PolicyOutput;
-import org.opendaylight.yang.gen.v1.org.onap.a1.adapter.rev200122.GetA1PolicyStatusInputBuilder;
-import org.opendaylight.yang.gen.v1.org.onap.a1.adapter.rev200122.GetA1PolicyStatusOutput;
-import org.opendaylight.yang.gen.v1.org.onap.a1.adapter.rev200122.GetA1PolicyTypeInputBuilder;
-import org.opendaylight.yang.gen.v1.org.onap.a1.adapter.rev200122.GetA1PolicyTypeOutput;
-import org.opendaylight.yang.gen.v1.org.onap.a1.adapter.rev200122.PutA1PolicyInputBuilder;
-import org.opendaylight.yang.gen.v1.org.onap.a1.adapter.rev200122.PutA1PolicyOutput;
-import org.opendaylight.yangtools.concepts.Builder;
+import org.opendaylight.yang.gen.v1.org.onap.a1.adapter.rev200122.*;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -82,7 +72,7 @@ class A1AdapterProviderTest {
DeleteA1PolicyInputBuilder inputBuilder = new DeleteA1PolicyInputBuilder();
when(a1AdapterClient.hasGraph(module, rpc, null, mode)).thenReturn(true);
when(
- a1AdapterClient.execute(eq(module), eq(rpc), eq(null), eq(mode), any(Builder.class), any(Properties.class)))
+ a1AdapterClient.execute(eq(module), eq(rpc), eq(null), eq(mode), any(DeleteA1PolicyOutputBuilder.class), any(Properties.class)))
.thenReturn(respProps);
ListenableFuture<RpcResult<DeleteA1PolicyOutput>> result =
a1AdapterProviderMock.deleteA1Policy(inputBuilder.build());
@@ -97,7 +87,7 @@ class A1AdapterProviderTest {
GetA1PolicyInputBuilder inputBuilder = new GetA1PolicyInputBuilder();
when(a1AdapterClient.hasGraph(module, rpc, null, mode)).thenReturn(true);
when(
- a1AdapterClient.execute(eq(module), eq(rpc), eq(null), eq(mode), any(Builder.class), any(Properties.class)))
+ a1AdapterClient.execute(eq(module), eq(rpc), eq(null), eq(mode), any(GetA1PolicyOutputBuilder.class), any(Properties.class)))
.thenReturn(respProps);
ListenableFuture<RpcResult<GetA1PolicyOutput>> result = a1AdapterProviderMock.getA1Policy(inputBuilder.build());
assertEquals(OK_RESPONSE, String.valueOf(result.get().getResult().getHttpStatus()));
@@ -111,7 +101,7 @@ class A1AdapterProviderTest {
GetA1PolicyTypeInputBuilder inputBuilder = new GetA1PolicyTypeInputBuilder();
when(a1AdapterClient.hasGraph(module, rpc, null, mode)).thenReturn(true);
when(
- a1AdapterClient.execute(eq(module), eq(rpc), eq(null), eq(mode), any(Builder.class), any(Properties.class)))
+ a1AdapterClient.execute(eq(module), eq(rpc), eq(null), eq(mode), any(GetA1PolicyTypeOutputBuilder.class), any(Properties.class)))
.thenReturn(respProps);
ListenableFuture<RpcResult<GetA1PolicyTypeOutput>> result =
a1AdapterProviderMock.getA1PolicyType(inputBuilder.build());
@@ -126,7 +116,7 @@ class A1AdapterProviderTest {
GetA1PolicyStatusInputBuilder inputBuilder = new GetA1PolicyStatusInputBuilder();
when(a1AdapterClient.hasGraph(module, rpc, null, mode)).thenReturn(true);
when(
- a1AdapterClient.execute(eq(module), eq(rpc), eq(null), eq(mode), any(Builder.class), any(Properties.class)))
+ a1AdapterClient.execute(eq(module), eq(rpc), eq(null), eq(mode), any(GetA1PolicyStatusOutputBuilder.class), any(Properties.class)))
.thenReturn(respProps);
ListenableFuture<RpcResult<GetA1PolicyStatusOutput>> result =
a1AdapterProviderMock.getA1PolicyStatus(inputBuilder.build());
@@ -141,7 +131,7 @@ class A1AdapterProviderTest {
PutA1PolicyInputBuilder inputBuilder = new PutA1PolicyInputBuilder();
when(a1AdapterClient.hasGraph(module, rpc, null, mode)).thenReturn(true);
when(
- a1AdapterClient.execute(eq(module), eq(rpc), eq(null), eq(mode), any(Builder.class), any(Properties.class)))
+ a1AdapterClient.execute(eq(module), eq(rpc), eq(null), eq(mode), any(PutA1PolicyOutputBuilder.class), any(Properties.class)))
.thenReturn(respProps);
ListenableFuture<RpcResult<PutA1PolicyOutput>> result = a1AdapterProviderMock.putA1Policy(inputBuilder.build());
assertEquals(OK_RESPONSE, String.valueOf(result.get().getResult().getHttpStatus()));