From 21362791e6488bb36f543f0319b195e24f239dcb Mon Sep 17 00:00:00 2001 From: Jim Hahn Date: Tue, 10 Nov 2020 11:39:51 -0500 Subject: Allow mixed case in check of prov-status 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 --- .../controller/usecases/UsecasesEventManager.java | 5 +++-- .../usecases/UsecasesEventManagerTest.java | 26 ++++++++++++++++++++++ .../eventmanager/ControlLoopEventManager2.java | 5 +++-- .../eventmanager/ControlLoopEventManager2Test.java | 26 ++++++++++++++++++++++ 4 files changed, 58 insertions(+), 4 deletions(-) (limited to 'controlloop/common') diff --git a/controlloop/common/controller-usecases/src/main/java/org/onap/policy/drools/apps/controller/usecases/UsecasesEventManager.java b/controlloop/common/controller-usecases/src/main/java/org/onap/policy/drools/apps/controller/usecases/UsecasesEventManager.java index d92fbcfad..091b26b2d 100644 --- a/controlloop/common/controller-usecases/src/main/java/org/onap/policy/drools/apps/controller/usecases/UsecasesEventManager.java +++ b/controlloop/common/controller-usecases/src/main/java/org/onap/policy/drools/apps/controller/usecases/UsecasesEventManager.java @@ -707,8 +707,9 @@ public class UsecasesEventManager extends ControlLoopEventManager implements Ste */ private static boolean isProvStatusInactive(VirtualControlLoopEvent event) { Map 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))); } /** diff --git a/controlloop/common/controller-usecases/src/test/java/org/onap/policy/drools/apps/controller/usecases/UsecasesEventManagerTest.java b/controlloop/common/controller-usecases/src/test/java/org/onap/policy/drools/apps/controller/usecases/UsecasesEventManagerTest.java index b87e56da6..d4979fb79 100644 --- a/controlloop/common/controller-usecases/src/test/java/org/onap/policy/drools/apps/controller/usecases/UsecasesEventManagerTest.java +++ b/controlloop/common/controller-usecases/src/test/java/org/onap/policy/drools/apps/controller/usecases/UsecasesEventManagerTest.java @@ -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(); diff --git a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManager2.java b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManager2.java index b738cefe1..1b3ae9220 100644 --- a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManager2.java +++ b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManager2.java @@ -545,8 +545,9 @@ public abstract class ControlLoopEventManager2 implements ManagerContext, Serial */ private static boolean isProvStatusInactive(VirtualControlLoopEvent event) { Map 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))); } /** diff --git a/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManager2Test.java b/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManager2Test.java index da37e6fc3..d3c217c9f 100644 --- a/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManager2Test.java +++ b/controlloop/common/eventmanager/src/test/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManager2Test.java @@ -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(); -- cgit 1.2.3-korg