aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJozsef Csongvai <jozsef.csongvai@bell.ca>2021-03-30 10:06:04 -0400
committerMichal Grzesik <michal.grzesik@orange.com>2021-11-17 11:17:39 +0000
commitd84cfb0bd5806af231e01ef1bc9271bf25f89ad9 (patch)
tree91a87fd4f16a21528b4d85f92b8fecfeadbf6fe7
parent4ca055af415aa965426a973d38d9d3b5fe201578 (diff)
Disable VnfDeleteValidator for non-alacarte requests.
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> (cherry picked from commit 16785537a48d0ca0847b826226d7d81731dba271)
-rw-r--r--mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/validators/VnfDeleteValidator.java3
-rw-r--r--mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/infra/rest/validator/VnfDeleteValidatorTest.java18
2 files changed, 19 insertions, 2 deletions
diff --git a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/validators/VnfDeleteValidator.java b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/validators/VnfDeleteValidator.java
index 44bab7e087..3dc4e8e4ac 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/validators/VnfDeleteValidator.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/main/java/org/onap/so/apihandlerinfra/infra/rest/validators/VnfDeleteValidator.java
@@ -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
diff --git a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/infra/rest/validator/VnfDeleteValidatorTest.java b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/infra/rest/validator/VnfDeleteValidatorTest.java
index 6eb6fc95d6..9b1410439e 100644
--- a/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/infra/rest/validator/VnfDeleteValidatorTest.java
+++ b/mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/infra/rest/validator/VnfDeleteValidatorTest.java
@@ -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