diff options
author | Jozsef Csongvai <jozsef.csongvai@bell.ca> | 2021-03-30 10:06:04 -0400 |
---|---|---|
committer | Jozsef Csongvai <jozsef.csongvai@bell.ca> | 2021-11-15 11:19:31 -0500 |
commit | 16785537a48d0ca0847b826226d7d81731dba271 (patch) | |
tree | d9ec2abc9c3ec871a9fb23b1193ba867f9ed88ab | |
parent | 5365faad48bafa61d1dd94a2be23c824a42780cb (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>
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 |