Add Support for Locking VNF Target Types 57/11757/1
authordaniel <dc443y@att.com>
Mon, 11 Sep 2017 19:42:59 +0000 (14:42 -0500)
committerdaniel <dc443y@att.com>
Mon, 11 Sep 2017 20:50:32 +0000 (15:50 -0500)
Fixed the target lock to support vnf target_types.
Generic-vnf.vnf-id and generic-vnf.vnf-name are also
supported when retrieving the target instance from the onset.
These changes are relfected in the vFW and vCPE junits as
they now work with VNF target types.

Issue-ID: POLICY-222
Change-Id: I92abeb02c769d35f3a9912cce6eaaec4c9cc8efb
Signed-off-by: Daniel Cruz <dc443y@att.com>
controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopEventManager.java
controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/VCPEControlLoopTest.java
controlloop/templates/template.demo/src/test/java/org/onap/policy/template/demo/VFWControlLoopTest.java
controlloop/templates/template.demo/src/test/resources/yaml/policy_ControlLoop_vFW.yaml

index b61eabc..0fe97bc 100644 (file)
@@ -531,6 +531,7 @@ public class ControlLoopEventManager implements LockCallback, Serializable {
                        if (! event.target.equalsIgnoreCase("VM_NAME") &&
                                ! event.target.equalsIgnoreCase("VNF_NAME") &&
                                ! event.target.equalsIgnoreCase("vserver.vserver-name") &&
+                               ! event.target.equalsIgnoreCase("generic-vnf.vnf-id") &&
                                ! event.target.equalsIgnoreCase("generic-vnf.vnf-name") ) {
                                throw new ControlLoopException("target field invalid - expecting VM_NAME or VNF_NAME");
                        }
@@ -556,9 +557,16 @@ public class ControlLoopEventManager implements LockCallback, Serializable {
                                case PNF:
                                        break;
                                case VM:
+                               case VNF:
                                        if (this.onset.target.equalsIgnoreCase("vserver.vserver-name")) {
                                                return this.onset.AAI.get("vserver.vserver-name");
                                        }
+                                       else if (this.onset.target.equalsIgnoreCase("generic-vnf.vnf-id")) {
+                                           return this.onset.AAI.get("generic-vnf.vnf-id");
+                                       }
+                                       else if (this.onset.target.equalsIgnoreCase("generic-vnf.vnf-name")) {
+                                           return this.onset.AAI.get("generic-vnf.vnf-name");
+                                       }
                                        break;
                                default:
                                        break;
index a34ee6c..182e398 100644 (file)
@@ -294,7 +294,7 @@ public class VCPEControlLoopTest {
             /*
              * One final check to make sure the lock is released 
              */
-            assertFalse(PolicyGuard.isLocked(TargetType.VM, triggerSourceName, requestID));
+            assertFalse(PolicyGuard.isLocked(TargetType.VNF, triggerSourceName, requestID));
         }
         else {
             fail("Operation Denied by Guard");
@@ -389,13 +389,12 @@ public class VCPEControlLoopTest {
         VirtualControlLoopEvent event = new VirtualControlLoopEvent();
         event.closedLoopControlName = policy.getControlLoop().getControlLoopName();
         event.requestID = requestID;
-        event.target = "vserver.vserver-name";
+        event.target = "generic-vnf.vnf-id";
         event.closedLoopAlarmStart = Instant.now();
         event.AAI = new HashMap<>();
         event.AAI.put("cloud-region.identity-url", "foo");
         event.AAI.put("vserver.selflink", "bar");
         event.AAI.put("vserver.is-closed-loop-disabled", "false");
-        event.AAI.put("vserver.vserver-name", "testGenericVnfName");
         event.AAI.put("generic-vnf.vnf-id", "testGenericVnfId");
         event.closedLoopEventStatus = ControlLoopEventStatus.ONSET;
         kieSession.insert(event);
@@ -415,14 +414,14 @@ public class VCPEControlLoopTest {
         VirtualControlLoopEvent event = new VirtualControlLoopEvent();
         event.closedLoopControlName = policy.getControlLoop().getControlLoopName();
         event.requestID = requestID;
-        event.target = "vserver.vserver-name";
+        event.target = "generic-vnf.vnf-id";
         event.closedLoopAlarmStart = Instant.now().minusSeconds(5);
         event.closedLoopAlarmEnd = Instant.now();
         event.AAI = new HashMap<>();
         event.AAI.put("cloud-region.identity-url", "foo");
         event.AAI.put("vserver.selflink", "bar");
         event.AAI.put("vserver.is-closed-loop-disabled", "false");
-        event.AAI.put("generic-vnf.vnf-name", "testGenericVnfName");
+        event.AAI.put("generic-vnf.vnf-id", "testGenericVnfId");
         event.closedLoopEventStatus = ControlLoopEventStatus.ABATED;
         kieSession.insert(event);
     }
index 25920e8..e2b688d 100644 (file)
@@ -289,7 +289,7 @@ public class VFWControlLoopTest {
             /*
              * One final check to make sure the lock is released 
              */
-            assertFalse(PolicyGuard.isLocked(TargetType.VM, triggerSourceName, requestID));
+            assertFalse(PolicyGuard.isLocked(TargetType.VNF, triggerSourceName, requestID));
         }
         else {
             fail("Operation Denied by Guard");
@@ -384,13 +384,13 @@ public class VFWControlLoopTest {
         VirtualControlLoopEvent event = new VirtualControlLoopEvent();
         event.closedLoopControlName = policy.getControlLoop().getControlLoopName();
         event.requestID = requestID;
-        event.target = "vserver.vserver-name";
+        event.target = "generic-vnf.vnf-id";
         event.closedLoopAlarmStart = Instant.now();
         event.AAI = new HashMap<>();
         event.AAI.put("cloud-region.identity-url", "foo");
         event.AAI.put("vserver.selflink", "bar");
         event.AAI.put("vserver.is-closed-loop-disabled", "false");
-        event.AAI.put("vserver.vserver-name", "testGenericVnfName");
+        event.AAI.put("generic-vnf.vnf-id", "testGenericVnfID");
         event.closedLoopEventStatus = ControlLoopEventStatus.ONSET;
         kieSession.insert(event);
         Thread.sleep(2000);
@@ -409,14 +409,14 @@ public class VFWControlLoopTest {
         VirtualControlLoopEvent event = new VirtualControlLoopEvent();
         event.closedLoopControlName = policy.getControlLoop().getControlLoopName();
         event.requestID = requestID;
-        event.target = "vserver.vserver-name";
+        event.target = "generic-vnf.vnf-id";
         event.closedLoopAlarmStart = Instant.now().minusSeconds(5);
         event.closedLoopAlarmEnd = Instant.now();
         event.AAI = new HashMap<>();
         event.AAI.put("cloud-region.identity-url", "foo");
         event.AAI.put("vserver.selflink", "bar");
         event.AAI.put("vserver.is-closed-loop-disabled", "false");
-        event.AAI.put("generic-vnf.vnf-name", "testGenericVnfName");
+        event.AAI.put("generic-vnf.vnf-id", "testGenericVnfID");
         event.closedLoopEventStatus = ControlLoopEventStatus.ABATED;
         kieSession.insert(event);
     }
index e78b1ca..d15c461 100644 (file)
@@ -17,7 +17,7 @@ policies:
     recipe: ModifyConfig
     target:
       resourceID: Eace933104d443b496b8.nodes.heat.vpg
-      type: VM
+      type: VNF
     retry: 0
     timeout: 300
     success: final_success