f75897dda11798709374b39b45a60d84ed21dd63
[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 NetworkDeleteValidator 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/[^/]+/networks/[^/]+").matcher(requestUri).matches()
21                 && action.equals(Action.deleteInstance);
22
23     }
24
25     @Override
26     public Optional<String> validate(Map<String, String> instanceIdMap, ServiceInstancesRequest request,
27             Map<String, String> queryParams) {
28         if (aaiDataRetrieval.isNetworkRelatedToModules(instanceIdMap.get("networkInstanceId"))) {
29             return Optional.of("Cannot delete network it is still related to existing vf-modules");
30         } else {
31             return Optional.empty();
32         }
33     }
34 }