344e5438c9f872f759c3562e71ed5db95865e511
[so.git] /
1 package org.onap.so.apihandlerinfra.infra.rest;
2
3 import java.util.Optional;
4 import org.onap.aai.domain.yang.GenericVnf;
5 import org.onap.aai.domain.yang.L3Network;
6 import org.onap.aai.domain.yang.ServiceInstance;
7 import org.onap.aai.domain.yang.VfModule;
8 import org.onap.aai.domain.yang.VolumeGroup;
9 import org.onap.so.apihandlerinfra.infra.rest.exception.AAIEntityNotFound;
10 import org.onap.so.client.aai.AAIObjectType;
11 import org.onap.so.client.aai.AAIResourcesClient;
12 import org.onap.so.client.aai.entities.AAIResultWrapper;
13 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
14 import org.slf4j.Logger;
15 import org.slf4j.LoggerFactory;
16 import org.springframework.stereotype.Component;
17
18 @Component
19 public class AAIDataRetrieval {
20
21     private static final String VF_MODULE_NOT_FOUND_IN_INVENTORY_VNF_ID = "VF Module Not Found In Inventory, VnfId: ";
22
23     private AAIResourcesClient aaiResourcesClient;
24
25     private static final Logger logger = LoggerFactory.getLogger(AAIDataRetrieval.class);
26
27     public ServiceInstance getServiceInstance(String serviceInstanceId) {
28         return this.getAaiResourcesClient()
29                 .get(ServiceInstance.class,
30                         AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE, serviceInstanceId))
31                 .orElseGet(() -> {
32                     logger.debug("No Service Instance found in A&AI ServiceInstanceId: {}", serviceInstanceId);
33                     return null;
34                 });
35     }
36
37
38     public VfModule getAAIVfModule(String vnfId, String vfModuleId) {
39         return this.getAaiResourcesClient()
40                 .get(VfModule.class, AAIUriFactory.createResourceUri(AAIObjectType.VF_MODULE, vnfId, vfModuleId))
41                 .orElseGet(() -> {
42                     logger.debug("No Vf Module found in A&AI VnfId: {}" + ", VfModuleId: {}", vnfId, vfModuleId);
43                     return null;
44                 });
45     }
46
47     public GenericVnf getGenericVnf(String vnfId) {
48         return this.getAaiResourcesClient()
49                 .get(GenericVnf.class, AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId))
50                 .orElseGet(() -> {
51                     logger.debug("No Generic VNF found in A&AI VnfId: {}", vnfId);
52                     return null;
53                 });
54     }
55
56     public VolumeGroup getVolumeGroup(String vnfId, String volumeGroupId) throws AAIEntityNotFound {
57         AAIResultWrapper wrapper =
58                 this.getAaiResourcesClient().get(AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId)
59                         .relatedTo(AAIObjectType.VOLUME_GROUP, volumeGroupId));
60         Optional<VolumeGroup> volume = wrapper.asBean(VolumeGroup.class);
61         if (volume.isPresent()) {
62             return volume.get();
63         } else {
64             logger.debug("No VolumeGroup in A&AI found: {}", vnfId);
65             return null;
66         }
67     }
68
69     public L3Network getNetwork(String networkId) {
70         return this.getAaiResourcesClient()
71                 .get(L3Network.class, AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, networkId))
72                 .orElseGet(() -> {
73                     logger.debug("No Network found in A&AI NetworkId: {}", networkId);
74                     return null;
75                 });
76     }
77
78     protected AAIResourcesClient getAaiResourcesClient() {
79         if (aaiResourcesClient == null) {
80             aaiResourcesClient = new AAIResourcesClient();
81         }
82         return aaiResourcesClient;
83     }
84
85 }