From d8a243cd5d8a66025a7d25b92186c8f7fa1adea0 Mon Sep 17 00:00:00 2001 From: Dan Timoney Date: Wed, 3 Aug 2022 15:29:55 -0400 Subject: Update ccsdk/oran for ODL Sulfur Updated ccsdk/oran to use ODL Sulfur version of parent poms, and made changes to deal with removal of Builder abstract class in Sulfur. Issue-ID: CCSDK-3694 Signed-off-by: Dan Timoney Change-Id: I67aa78d8e0f5641c6acbfe5892966bad5346ca20 --- .../features/a1/adapter/A1AdapterProvider.java | 245 ++++++++++++++++++++- .../features/a1/adapter/A1AdapterProviderTest.java | 22 +- 2 files changed, 244 insertions(+), 23 deletions(-) (limited to 'a1-adapter/a1-adapter-api/provider/src') 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 boolean hasGraph(final String svcOperation, Builder 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 void setUpAndExecuteOperation(final String svcOperation, Builder inputBuilder, - Builder 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 void executeOperation(final String svcOperation, Properties parms, Builder 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 void setBody(Builder 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 void setHttpResponse(Builder 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> 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> 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> 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> 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> result = a1AdapterProviderMock.putA1Policy(inputBuilder.build()); assertEquals(OK_RESPONSE, String.valueOf(result.get().getResult().getHttpStatus())); -- cgit 1.2.3-korg