Disable VnfDeleteValidator for non-alacarte requests. 60/125760/1
authorJozsef Csongvai <jozsef.csongvai@bell.ca>
Tue, 30 Mar 2021 14:06:04 +0000 (10:06 -0400)
committerJozsef Csongvai <jozsef.csongvai@bell.ca>
Mon, 15 Nov 2021 16:19:31 +0000 (11:19 -0500)
The validator will fail if there are active vf-modules for the vnf.
The downstream vnf-delete macro will delete these vf-modules so the
validator should not apply for this flow.

Change-Id: If45c872e3b06d9dbb925bff21f7643694503c481
Issue-ID: SO-3801
Signed-off-by: Jozsef Csongvai <jozsef.csongvai@bell.ca>
mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/validators/VnfDeleteValidator.java
mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/infra/rest/validator/VnfDeleteValidatorTest.java

index 44bab7e..3dc4e8e 100644 (file)
@@ -19,7 +19,8 @@ public class VnfDeleteValidator implements RequestValidator {
     @Override
     public boolean shouldRunFor(String requestUri, ServiceInstancesRequest request, Actions action) {
         return Pattern.compile("[Vv][5-8]/serviceInstances/[^/]+/vnfs/[^/]+").matcher(requestUri).matches()
-                && action.equals(Action.deleteInstance);
+                && action.equals(Action.deleteInstance)
+                && Boolean.TRUE.equals(request.getRequestDetails().getRequestParameters().getALaCarte());
     }
 
     @Override
index 6eb6fc9..9b14104 100644 (file)
@@ -15,6 +15,8 @@ import org.mockito.junit.MockitoJUnitRunner;
 import org.onap.so.apihandlerinfra.Action;
 import org.onap.so.apihandlerinfra.infra.rest.AAIDataRetrieval;
 import org.onap.so.apihandlerinfra.infra.rest.validators.VnfDeleteValidator;
+import org.onap.so.serviceinstancebeans.RequestDetails;
+import org.onap.so.serviceinstancebeans.RequestParameters;
 import org.onap.so.serviceinstancebeans.ServiceInstancesRequest;
 
 
@@ -31,10 +33,24 @@ public class VnfDeleteValidatorTest {
 
     private Map<String, String> instanceIdMap = new HashMap<>();
 
+    public ServiceInstancesRequest createServiceInstancesRequest(boolean alacarte) {
+        ServiceInstancesRequest sir = new ServiceInstancesRequest();
+        sir.setRequestDetails(new RequestDetails());
+        sir.getRequestDetails().setRequestParameters(new RequestParameters());
+        sir.getRequestDetails().getRequestParameters().setaLaCarte(alacarte);
+        return sir;
+    }
+
     @Test
     public void validateURIMatchTest() {
         assertEquals(true, vnfValidator.shouldRunFor("v8/serviceInstances/uasdfasdf/vnfs/asdfasdf",
-                new ServiceInstancesRequest(), Action.deleteInstance));
+                createServiceInstancesRequest(true), Action.deleteInstance));
+    }
+
+    @Test
+    public void validateURIMatchNonAlacarteTest() {
+        assertEquals(false, vnfValidator.shouldRunFor("v8/serviceInstances/uasdfasdf/vnfs/asdfasdf",
+                createServiceInstancesRequest(false), Action.deleteInstance));
     }
 
     @Test