fee7a3a8f4ba09c866705625ca1b001e4fec7ecf
[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.Service;
7 import org.onap.aai.domain.yang.ServiceInstance;
8 import org.onap.aai.domain.yang.Tenant;
9 import org.onap.aai.domain.yang.VfModule;
10 import org.onap.aai.domain.yang.VolumeGroup;
11 import org.onap.so.apihandlerinfra.infra.rest.exception.AAIEntityNotFound;
12 import org.onap.so.client.aai.AAIObjectType;
13 import org.onap.so.client.aai.AAIResourcesClient;
14 import org.onap.so.client.aai.entities.AAIResultWrapper;
15 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
16 import org.slf4j.Logger;
17 import org.slf4j.LoggerFactory;
18 import org.springframework.stereotype.Component;
19
20 @Component
21 public class AAIDataRetrieval {
22
23     private static final String VF_MODULE_NOT_FOUND_IN_INVENTORY_VNF_ID = "VF Module Not Found In Inventory, VnfId: ";
24
25     private AAIResourcesClient aaiResourcesClient;
26
27     private static final Logger logger = LoggerFactory.getLogger(AAIDataRetrieval.class);
28
29     public ServiceInstance getServiceInstance(String serviceInstanceId) {
30         return this.getAaiResourcesClient()
31                 .get(ServiceInstance.class,
32                         AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE, serviceInstanceId))
33                 .orElseGet(() -> {
34                     logger.debug("No Service Instance found in A&AI ServiceInstanceId: {}", serviceInstanceId);
35                     return null;
36                 });
37     }
38
39     public VfModule getAAIVfModule(String vnfId, String vfModuleId) {
40         return this.getAaiResourcesClient()
41                 .get(VfModule.class, AAIUriFactory.createResourceUri(AAIObjectType.VF_MODULE, vnfId, vfModuleId))
42                 .orElseGet(() -> {
43                     logger.debug("No Vf Module found in A&AI VnfId: {}" + ", VfModuleId: {}", vnfId, vfModuleId);
44                     return null;
45                 });
46     }
47
48     public GenericVnf getGenericVnf(String vnfId) {
49         return this.getAaiResourcesClient()
50                 .get(GenericVnf.class, AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId))
51                 .orElseGet(() -> {
52                     logger.debug("No Generic VNF found in A&AI VnfId: {}", vnfId);
53                     return null;
54                 });
55     }
56
57     public VolumeGroup getVolumeGroup(String vnfId, String volumeGroupId) throws AAIEntityNotFound {
58         AAIResultWrapper wrapper =
59                 this.getAaiResourcesClient().get(AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId)
60                         .relatedTo(AAIObjectType.VOLUME_GROUP, volumeGroupId));
61         Optional<VolumeGroup> volume = wrapper.asBean(VolumeGroup.class);
62         if (volume.isPresent()) {
63             return volume.get();
64         } else {
65             logger.debug("No VolumeGroup in A&AI found: {}", vnfId);
66             return null;
67         }
68     }
69
70     public L3Network getNetwork(String networkId) {
71         return this.getAaiResourcesClient()
72                 .get(L3Network.class, AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, networkId))
73                 .orElseGet(() -> {
74                     logger.debug("No Network found in A&AI NetworkId: {}", networkId);
75                     return null;
76                 });
77     }
78
79     public Service getService(String serviceId) {
80         return this.getAaiResourcesClient()
81                 .get(Service.class, AAIUriFactory.createResourceUri(AAIObjectType.SERVICE, serviceId)).orElseGet(() -> {
82                     logger.debug("No Service found in A&AI ServiceId: {}", serviceId);
83                     return null;
84                 });
85     }
86
87     public Tenant getTenant(String cloudOwner, String cloudRegion, String tenantId) {
88         return this.getAaiResourcesClient()
89                 .get(Tenant.class,
90                         AAIUriFactory.createResourceUri(AAIObjectType.TENANT, cloudOwner, cloudRegion, tenantId))
91                 .orElseGet(() -> {
92                     logger.debug("No Tenant found in A&AI TenantId: {}", tenantId);
93                     return null;
94                 });
95     }
96
97     protected AAIResourcesClient getAaiResourcesClient() {
98         if (aaiResourcesClient == null) {
99             aaiResourcesClient = new AAIResourcesClient();
100         }
101         return aaiResourcesClient;
102     }
103
104 }