Adding basic logging to CDS Simulator 07/113607/2
authora.sreekumar <ajith.sreekumar@bell.ca>
Wed, 7 Oct 2020 10:26:37 +0000 (11:26 +0100)
committera.sreekumar <ajith.sreekumar@bell.ca>
Wed, 7 Oct 2020 10:35:59 +0000 (11:35 +0100)
1) Adding log statements to capture actions taken by CDS Simulator.
2) Fixing the way CDSRequest input is read from a String. StandardCoder
decode method cannot directly decode from a String to protobuf type.

Change-Id: I597c64ffb095f6a518b0b6c67c1617ca789ad7d6
Issue-ID: POLICY-2828
Signed-off-by: a.sreekumar <ajith.sreekumar@bell.ca>
models-interactions/model-simulators/src/main/java/org/onap/policy/simulators/CdsSimulator.java
models-interactions/model-simulators/src/test/java/org/onap/policy/simulators/CdsSimulatorTest.java

index 3418780..6c505b3 100644 (file)
@@ -39,8 +39,13 @@ import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceIn
 import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceOutput;
 import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceOutput.Builder;
 import org.onap.policy.common.utils.resources.ResourceUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class CdsSimulator {
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(CdsSimulator.class);
+
     @Getter
     private final int port;
 
@@ -83,6 +88,7 @@ public class CdsSimulator {
 
                     @Override
                     public void onNext(final ExecutionServiceInput executionServiceInput) {
+                        LOGGER.info("Received request input to CDS: {}", executionServiceInput);
                         try {
                             String responseString = getResponseString(executionServiceInput, countOfSuccesfulEvents);
                             Builder builder = ExecutionServiceOutput.newBuilder();
@@ -141,11 +147,14 @@ public class CdsSimulator {
         } else {
             resourceName = resourceName + ".json";
         }
+        LOGGER.info("Fetching response from {}", resourceName);
         String responseString = ResourceUtils.getResourceAsString(resourceLocation + resourceName);
         if (responseString == null) {
+            LOGGER.info("Expected response file {} not found in {}", resourceName, resourceLocation);
             responseString = ResourceUtils.getResourceAsString(resourceLocation
                 + "DefaultResponseEvent.json");
         }
+        LOGGER.debug("Returning response from CDS Simulator: {}", responseString);
         return responseString;
     }
 }
index 6e9c223..cd4f3b5 100644 (file)
@@ -24,6 +24,7 @@ package org.onap.policy.simulators;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
+import com.google.protobuf.util.JsonFormat;
 import io.grpc.ManagedChannel;
 import io.grpc.internal.DnsNameResolverProvider;
 import io.grpc.internal.PickFirstLoadBalancerProvider;
@@ -42,6 +43,7 @@ import org.junit.Test;
 import org.onap.ccsdk.cds.controllerblueprints.processing.api.BluePrintProcessingServiceGrpc;
 import org.onap.ccsdk.cds.controllerblueprints.processing.api.BluePrintProcessingServiceGrpc.BluePrintProcessingServiceStub;
 import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceInput;
+import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceInput.Builder;
 import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceOutput;
 import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.common.utils.coder.StandardCoder;
@@ -72,7 +74,9 @@ public class CdsSimulatorTest {
     @Test
     public void test() throws Exception {
         String reqstr = IOUtils.toString(getClass().getResource("cds/cds.request.json"), StandardCharsets.UTF_8);
-        ExecutionServiceInput request = coder.decode(reqstr, ExecutionServiceInput.class);
+        Builder builder = ExecutionServiceInput.newBuilder();
+        JsonFormat.parser().ignoringUnknownFields().merge(reqstr, builder);
+        ExecutionServiceInput request = builder.build();
         ManagedChannel channel = NettyChannelBuilder.forAddress(Util.LOCALHOST, sim.getPort())
             .nameResolverFactory(new DnsNameResolverProvider())
             .loadBalancerFactory(new PickFirstLoadBalancerProvider()).usePlaintext().build();