Allow mixed case in check of prov-status 69/114769/1
authorJim Hahn <jrh3@att.com>
Tue, 10 Nov 2020 15:12:53 +0000 (10:12 -0500)
committerJim Hahn <jrh3@att.com>
Tue, 10 Nov 2020 15:34:18 +0000 (10:34 -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-status
Change-Id: Ibe2bcf451dcdc05361f40d2c5c5146eb6a9cb620
Signed-off-by: Jim Hahn <jrh3@att.com>
controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManager.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
controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManagerTest.java

index 6e88ce9..08cd82f 100644 (file)
@@ -768,8 +768,9 @@ public class ControlLoopEventManager implements Serializable {
      */
     protected 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 5f611c0..b3bd2e3 100644 (file)
@@ -554,8 +554,9 @@ public class ControlLoopEventManager2 implements ManagerContext, Serializable {
      */
     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 d09c2c8..e38ef2f 100644 (file)
@@ -193,6 +193,19 @@ public class ControlLoopEventManager2Test {
         assertThatThrownBy(() -> new ControlLoopEventManager2(params, event, workMem))
                         .hasMessage("prov-status is not ACTIVE on VServer or VNF");
 
+        // test with both prov-status flags, with mixed case
+        event.setAai(addAai(orig, ControlLoopEventManager2.VSERVER_PROV_STATUS, "ACTIVE"));
+        assertThatCode(() -> new ControlLoopEventManager2(params, event, workMem)).doesNotThrowAnyException();
+
+        event.setAai(addAai(orig, ControlLoopEventManager2.VSERVER_PROV_STATUS, "active"));
+        assertThatCode(() -> new ControlLoopEventManager2(params, event, workMem)).doesNotThrowAnyException();
+
+        event.setAai(addAai(orig, ControlLoopEventManager2.GENERIC_VNF_PROV_STATUS, "ACTIVE"));
+        assertThatCode(() -> new ControlLoopEventManager2(params, event, workMem)).doesNotThrowAnyException();
+
+        event.setAai(addAai(orig, ControlLoopEventManager2.GENERIC_VNF_PROV_STATUS, "active"));
+        assertThatCode(() -> new ControlLoopEventManager2(params, event, workMem)).doesNotThrowAnyException();
+
         // valid
         event.setAai(orig);
         assertThatCode(() -> mgr.checkEventSyntax(event)).doesNotThrowAnyException();
index db16c45..7c89f18 100644 (file)
@@ -733,13 +733,25 @@ public class ControlLoopEventManagerTest {
         aai.remove(ControlLoopEventManager.VSERVER_PROV_STATUS);
         assertFalse(ControlLoopEventManager.isProvStatusInactive(onset));
 
+        // null, ACTIVE
+        aai.remove(ControlLoopEventManager.GENERIC_VNF_PROV_STATUS);
+        aai.put(ControlLoopEventManager.VSERVER_PROV_STATUS, ControlLoopEventManager.PROV_STATUS_ACTIVE.toUpperCase());
+        assertFalse(ControlLoopEventManager.isProvStatusInactive(onset));
+
         // null, active
         aai.remove(ControlLoopEventManager.GENERIC_VNF_PROV_STATUS);
-        aai.put(ControlLoopEventManager.VSERVER_PROV_STATUS, ControlLoopEventManager.PROV_STATUS_ACTIVE);
+        aai.put(ControlLoopEventManager.VSERVER_PROV_STATUS, ControlLoopEventManager.PROV_STATUS_ACTIVE.toLowerCase());
+        assertFalse(ControlLoopEventManager.isProvStatusInactive(onset));
+
+        // ACTIVE, null
+        aai.put(ControlLoopEventManager.GENERIC_VNF_PROV_STATUS,
+                        ControlLoopEventManager.PROV_STATUS_ACTIVE.toUpperCase());
+        aai.remove(ControlLoopEventManager.VSERVER_PROV_STATUS);
         assertFalse(ControlLoopEventManager.isProvStatusInactive(onset));
 
         // active, null
-        aai.put(ControlLoopEventManager.GENERIC_VNF_PROV_STATUS, ControlLoopEventManager.PROV_STATUS_ACTIVE);
+        aai.put(ControlLoopEventManager.GENERIC_VNF_PROV_STATUS,
+                        ControlLoopEventManager.PROV_STATUS_ACTIVE.toLowerCase());
         aai.remove(ControlLoopEventManager.VSERVER_PROV_STATUS);
         assertFalse(ControlLoopEventManager.isProvStatusInactive(onset));