Add response section to PAP status message 28/85528/1
authorjhh <jorge.hernandez-herrero@att.com>
Wed, 17 Apr 2019 04:09:49 +0000 (23:09 -0500)
committerjhh <jorge.hernandez-herrero@att.com>
Wed, 17 Apr 2019 04:10:46 +0000 (23:10 -0500)
Change-Id: I26bf9f515c8639c030e8beb9e8b37a6a632da686
Issue-ID: POLICY-1655
Signed-off-by: jhh <jorge.hernandez-herrero@att.com>
feature-lifecycle/src/main/java/org/onap/policy/drools/lifecycle/LifecycleFsm.java
feature-lifecycle/src/main/java/org/onap/policy/drools/lifecycle/LifecycleStateActive.java
feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/ControllerSupport.java
feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleStateActiveTest.java
feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleStatePassiveTest.java
feature-lifecycle/src/test/java/org/onap/policy/drools/lifecycle/LifecycleStateRunningTest.java
feature-lifecycle/src/test/resources/logback-test.xml [new file with mode: 0644]

index 8e1e993..ada29ed 100644 (file)
@@ -147,7 +147,7 @@ public class LifecycleFsm implements Startable {
      * Start a controller event.
      */
     public synchronized void start(@NonNull PolicyController controller) {
-        logger.info("lifecycle event: start controller: {}" + controller.getName());
+        logger.info("lifecycle event: start controller: {}", controller.getName());
         for (ToscaPolicyTypeIdentifier id : controller.getPolicyTypes()) {
             policyTypesMap.put(id, controller);
         }
@@ -237,7 +237,7 @@ public class LifecycleFsm implements Startable {
             status.setResponse(response);
         }
 
-        return client.send(statusPayload(state));
+        return client.send(status);
     }
 
     protected void setGroupAction(String group, String subgroup) {
index 38ea091..2dacdd1 100644 (file)
@@ -20,6 +20,7 @@
 
 package org.onap.policy.drools.lifecycle;
 
+import java.util.Collections;
 import lombok.NonNull;
 import lombok.ToString;
 import org.onap.policy.drools.system.PolicyController;
@@ -53,6 +54,7 @@ public class LifecycleStateActive extends LifecycleStateRunning {
 
     @Override
     protected boolean stateChangeToPassive(PdpStateChange change) {
+        undeployPolicies(Collections.emptyList());
         fsm.transitionToAction(new LifecycleStatePassive(fsm));
         return fsm.statusAction(response(change.getRequestId(), PdpResponseStatus.SUCCESS, null));
     }
index d5ac423..c22a0d8 100644 (file)
@@ -58,6 +58,12 @@ public class ControllerSupport {
      * Create controller.
      */
     public PolicyController createController() throws IOException {
+        try {
+            getController();
+        } catch (IllegalArgumentException e) {
+            ;
+        }
+
         ReleaseId coordinates =
             KieUtils.installArtifact(Paths.get(JUNIT_KMODULE_PATH).toFile(),
                 Paths.get(JUNIT_KMODULE_POM_PATH).toFile(),
index 554f2ef..d28ab14 100644 (file)
@@ -195,22 +195,16 @@ public class LifecycleStateActiveTest extends LifecycleStateRunningTest {
 
         PdpUpdate update = new PdpUpdate();
         update.setName(NetworkUtil.getHostname());
-        update.setPdpGroup("Z");
-        update.setPdpSubgroup("z");
+        update.setPdpGroup("W");
+        update.setPdpSubgroup("w");
         update.setPolicies(Collections.emptyList());
 
-        long originalInterval = fsm.getStatusTimerSeconds();
-        long interval = 10 * originalInterval;
-        update.setPdpHeartbeatIntervalMs(interval * 1000L);
-
         fsm.start(controllerSupport.getController());
-
         assertTrue(fsm.update(update));
 
         assertEquals(PdpState.ACTIVE, fsm.state());
-        assertEquals(interval, fsm.getStatusTimerSeconds());
-        assertEquals("Z", fsm.getGroup());
-        assertEquals("z", fsm.getSubgroup());
+        assertEquals("W", fsm.getGroup());
+        assertEquals("w", fsm.getSubgroup());
 
         String restartV1 =
             new String(Files.readAllBytes(Paths.get("src/test/resources/tosca-policy-operational-restart.json")));
@@ -316,6 +310,15 @@ public class LifecycleStateActiveTest extends LifecycleStateRunningTest {
         assertTrue(factPolicies.stream().anyMatch((ff) -> Objects.equals(toscaPolicyFirewall, ff)));
         assertEquals(2, fsm.policiesMap.size());
 
+        long originalInterval = fsm.getStatusTimerSeconds();
+        long interval = 10 * originalInterval;
+        update.setPdpHeartbeatIntervalMs(interval * 1000L);
+
+        assertTrue(fsm.update(update));
+
+        assertEquals(PdpState.ACTIVE, fsm.state());
+        assertEquals(interval, fsm.getStatusTimerSeconds());
+
         fsm.shutdown();
     }
 }
index 775dc8b..b96779a 100644 (file)
@@ -180,6 +180,12 @@ public class LifecycleStatePassiveTest extends LifecycleStateRunningTest {
 
         assertTrue(fsm.update(update));
 
+        int qlength = fsm.client.getSink().getRecentEvents().length;
+        PdpStatus lastStatus = new StandardCoder()
+                                    .decode(fsm.client.getSink().getRecentEvents()[qlength - 1], PdpStatus.class);
+        assertEquals(update.getRequestId(), lastStatus.getRequestId());
+        assertEquals(update.getRequestId(), lastStatus.getResponse().getResponseTo());
+
         assertEquals(PdpState.PASSIVE, fsm.state());
         assertEquals(interval, fsm.getStatusTimerSeconds());
         assertEquals("Z", fsm.getGroup());
index 6da9dc1..25cce3a 100644 (file)
@@ -42,7 +42,7 @@ public abstract class LifecycleStateRunningTest {
         LoggerUtil.setLevel(LoggerUtil.ROOT_LOGGER, "INFO");
         LoggerUtil.setLevel("org.onap.policy.common.endpoints", "WARN");
         LoggerUtil.setLevel("org.onap.policy.drools", "INFO");
-        SystemPersistence.manager.setConfigurationDir("src/test/resources");
+        SystemPersistence.manager.setConfigurationDir("target/test-classes");
         controllerSupport.createController();
     }
 
@@ -51,7 +51,6 @@ public abstract class LifecycleStateRunningTest {
      */
     @AfterClass
     public static void tearDown() {
-        controllerSupport.destroyController();
         try {
             Files.deleteIfExists(Paths.get(SystemPersistence.manager.getConfigurationPath().toString(),
                                      CONTROLLER_NAME + "-controller.properties.bak"));
diff --git a/feature-lifecycle/src/test/resources/logback-test.xml b/feature-lifecycle/src/test/resources/logback-test.xml
new file mode 100644 (file)
index 0000000..bde0b5e
--- /dev/null
@@ -0,0 +1,28 @@
+<!--
+  ============LICENSE_START=======================================================
+  Copyright (C) 2019 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=========================================================
+-->
+
+<configuration>
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%M:%line - %msg%n</pattern>
+        </encoder>
+    </appender>
+    <root level="INFO">
+        <appender-ref ref="STDOUT" />
+    </root>
+</configuration>
\ No newline at end of file