d54e60d1534278f15eb82d7b1ec377709d794763
[so.git] /
1 package org.onap.so.apihandlerinfra.infra.rest.validators;
2
3 import java.util.Map;
4 import java.util.Optional;
5 import java.util.regex.Pattern;
6 import org.onap.so.apihandlerinfra.Action;
7 import org.onap.so.apihandlerinfra.Actions;
8 import org.onap.so.apihandlerinfra.infra.rest.AAIDataRetrieval;
9 import org.onap.so.serviceinstancebeans.ServiceInstancesRequest;
10 import org.springframework.beans.factory.annotation.Autowired;
11
12
13 public class VnfDeleteValidator implements RequestValidator {
14
15     @Autowired
16     AAIDataRetrieval aaiDataRetrieval;
17
18     @Override
19     public boolean shouldRunFor(String requestUri, ServiceInstancesRequest request, Actions action) {
20         return Pattern.compile("[Vv][5-8]/serviceInstances/[^/]+/vnfs/[^/]+").matcher(requestUri).matches()
21                 && action.equals(Action.deleteInstance);
22     }
23
24     @Override
25     public Optional<String> validate(Map<String, String> instanceIdMap, ServiceInstancesRequest request,
26             Map<String, String> queryParams) {
27         if (aaiDataRetrieval.isVnfRelatedToVolumes(instanceIdMap.get("vnfInstanceId"))) {
28             return Optional.of("Cannot delete vnf it is still related to existing volume groups");
29         } else {
30             return Optional.empty();
31         }
32     }
33
34 }