Allow mixed case in check of prov-status 71/114771/1
authorJim Hahn <jrh3@att.com>
Tue, 10 Nov 2020 16:39:51 +0000 (11:39 -0500)
committerJim Hahn <jrh3@att.com>
Tue, 10 Nov 2020 16:40:22 +0000 (11:40 -0500)
Apparently SO/AAI in Frankfurt are setting the prov-status to "active"
instead of "ACTIVE".  Modified the code to ignore case when comparing.

Issue-ID: POLICY-2890-prov-status2
Change-Id: I9e868d320dadcb3ac51570718d10f33d0011ae47
Signed-off-by: Jim Hahn <jrh3@att.com>
controlloop/common/controller-usecases/src/main/java/org/onap/policy/drools/apps/controller/usecases/UsecasesEventManager.java
controlloop/common/controller-usecases/src/test/java/org/onap/policy/drools/apps/controller/usecases/UsecasesEventManagerTest.java
controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManager2.java
controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManager2Test.java

index d92fbcf..091b26b 100644 (file)
@@ -707,8 +707,9 @@ public class UsecasesEventManager extends ControlLoopEventManager implements Ste
      */
     private static boolean isProvStatusInactive(VirtualControlLoopEvent event) {
         Map<String, String> aai = event.getAai();
-        return !(PROV_STATUS_ACTIVE.equals(aai.getOrDefault(VSERVER_PROV_STATUS, PROV_STATUS_ACTIVE))
-                        && PROV_STATUS_ACTIVE.equals(aai.getOrDefault(GENERIC_VNF_PROV_STATUS, PROV_STATUS_ACTIVE)));
+        return !(PROV_STATUS_ACTIVE.equalsIgnoreCase(aai.getOrDefault(VSERVER_PROV_STATUS, PROV_STATUS_ACTIVE))
+                        && PROV_STATUS_ACTIVE.equalsIgnoreCase(
+                                        aai.getOrDefault(GENERIC_VNF_PROV_STATUS, PROV_STATUS_ACTIVE)));
     }
 
     /**
index b87e56d..d4979fb 100644 (file)
@@ -188,10 +188,36 @@ public class UsecasesEventManagerTest {
         assertThatThrownBy(() -> new UsecasesEventManager(params, event, workMem))
                         .hasMessage("is-closed-loop-disabled is set to true on VServer or VNF");
 
+        // vserver ACTIVE
+        event.setAai(addAai(orig, UsecasesConstants.VSERVER_PROV_STATUS,
+                        UsecasesConstants.PROV_STATUS_ACTIVE.toUpperCase()));
+        assertThatCode(() -> new UsecasesEventManager(params, event, workMem)).doesNotThrowAnyException();
+
+        // vserver active
+        event.setAai(addAai(orig, UsecasesConstants.VSERVER_PROV_STATUS,
+                        UsecasesConstants.PROV_STATUS_ACTIVE.toLowerCase()));
+        assertThatCode(() -> new UsecasesEventManager(params, event, workMem)).doesNotThrowAnyException();
+
+        // vserver inactive
         event.setAai(addAai(orig, UsecasesConstants.VSERVER_PROV_STATUS, "inactive"));
         assertThatThrownBy(() -> new UsecasesEventManager(params, event, workMem))
                         .hasMessage("prov-status is not ACTIVE on VServer or VNF");
 
+        // vnf ACTIVE
+        event.setAai(addAai(orig, UsecasesConstants.GENERIC_VNF_PROV_STATUS,
+                        UsecasesConstants.PROV_STATUS_ACTIVE.toUpperCase()));
+        assertThatCode(() -> new UsecasesEventManager(params, event, workMem)).doesNotThrowAnyException();
+
+        // vnf active
+        event.setAai(addAai(orig, UsecasesConstants.GENERIC_VNF_PROV_STATUS,
+                        UsecasesConstants.PROV_STATUS_ACTIVE.toLowerCase()));
+        assertThatCode(() -> new UsecasesEventManager(params, event, workMem)).doesNotThrowAnyException();
+
+        // vnf inactive
+        event.setAai(addAai(orig, UsecasesConstants.GENERIC_VNF_PROV_STATUS, "inactive"));
+        assertThatThrownBy(() -> new UsecasesEventManager(params, event, workMem))
+                        .hasMessage("prov-status is not ACTIVE on VServer or VNF");
+
         // valid
         event.setAai(orig);
         assertThatCode(() -> mgr.checkEventSyntax(event)).doesNotThrowAnyException();
index b738cef..1b3ae92 100644 (file)
@@ -545,8 +545,9 @@ public abstract class ControlLoopEventManager2 implements ManagerContext, Serial
      */
     private static boolean isProvStatusInactive(VirtualControlLoopEvent event) {
         Map<String, String> aai = event.getAai();
-        return !(PROV_STATUS_ACTIVE.equals(aai.getOrDefault(VSERVER_PROV_STATUS, PROV_STATUS_ACTIVE))
-                        && PROV_STATUS_ACTIVE.equals(aai.getOrDefault(GENERIC_VNF_PROV_STATUS, PROV_STATUS_ACTIVE)));
+        return !(PROV_STATUS_ACTIVE.equalsIgnoreCase(aai.getOrDefault(VSERVER_PROV_STATUS, PROV_STATUS_ACTIVE))
+                        && PROV_STATUS_ACTIVE.equalsIgnoreCase(
+                                        aai.getOrDefault(GENERIC_VNF_PROV_STATUS, PROV_STATUS_ACTIVE)));
     }
 
     /**
index da37e6f..d3c217c 100644 (file)
@@ -183,10 +183,36 @@ public class ControlLoopEventManager2Test {
         assertThatThrownBy(() -> new ControlLoopEventManager2Drools(params, event, workMem))
                         .hasMessage("is-closed-loop-disabled is set to true on VServer or VNF");
 
+        // vserver ACTIVE
+        event.setAai(addAai(orig, ControlLoopEventManager2.VSERVER_PROV_STATUS,
+                        ControlLoopEventManager2.PROV_STATUS_ACTIVE.toUpperCase()));
+        assertThatCode(() -> new ControlLoopEventManager2Drools(params, event, workMem)).doesNotThrowAnyException();
+
+        // vserver active
+        event.setAai(addAai(orig, ControlLoopEventManager2.VSERVER_PROV_STATUS,
+                        ControlLoopEventManager2.PROV_STATUS_ACTIVE.toLowerCase()));
+        assertThatCode(() -> new ControlLoopEventManager2Drools(params, event, workMem)).doesNotThrowAnyException();
+
+        // vserver inactive
         event.setAai(addAai(orig, ControlLoopEventManager2.VSERVER_PROV_STATUS, "inactive"));
         assertThatThrownBy(() -> new ControlLoopEventManager2Drools(params, event, workMem))
                         .hasMessage("prov-status is not ACTIVE on VServer or VNF");
 
+        // vnf ACTIVE
+        event.setAai(addAai(orig, ControlLoopEventManager2.GENERIC_VNF_PROV_STATUS,
+                        ControlLoopEventManager2.PROV_STATUS_ACTIVE.toUpperCase()));
+        assertThatCode(() -> new ControlLoopEventManager2Drools(params, event, workMem)).doesNotThrowAnyException();
+
+        // vnf active
+        event.setAai(addAai(orig, ControlLoopEventManager2.GENERIC_VNF_PROV_STATUS,
+                        ControlLoopEventManager2.PROV_STATUS_ACTIVE.toLowerCase()));
+        assertThatCode(() -> new ControlLoopEventManager2Drools(params, event, workMem)).doesNotThrowAnyException();
+
+        // vnf inactive
+        event.setAai(addAai(orig, ControlLoopEventManager2.GENERIC_VNF_PROV_STATUS, "inactive"));
+        assertThatThrownBy(() -> new ControlLoopEventManager2Drools(params, event, workMem))
+                        .hasMessage("prov-status is not ACTIVE on VServer or VNF");
+
         // valid
         event.setAai(orig);
         assertThatCode(() -> mgr.checkEventSyntax(event)).doesNotThrowAnyException();