1 package org.onap.so.apihandlerinfra.infra.rest;
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.AAIObjectPlurals;
13 import org.onap.so.client.aai.AAIObjectType;
14 import org.onap.so.client.aai.AAIResourcesClient;
15 import org.onap.so.client.aai.entities.AAIResultWrapper;
16 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
17 import org.slf4j.Logger;
18 import org.slf4j.LoggerFactory;
19 import org.springframework.stereotype.Component;
22 public class AAIDataRetrieval {
24 private static final String VF_MODULE_NOT_FOUND_IN_INVENTORY_VNF_ID = "VF Module Not Found In Inventory, VnfId: ";
26 private AAIResourcesClient aaiResourcesClient;
28 private static final Logger logger = LoggerFactory.getLogger(AAIDataRetrieval.class);
30 public ServiceInstance getServiceInstance(String serviceInstanceId) {
31 return this.getAaiResourcesClient()
32 .get(ServiceInstance.class,
33 AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE, serviceInstanceId))
35 logger.debug("No Service Instance found in A&AI ServiceInstanceId: {}", serviceInstanceId);
40 public VfModule getAAIVfModule(String vnfId, String vfModuleId) {
41 return this.getAaiResourcesClient()
42 .get(VfModule.class, AAIUriFactory.createResourceUri(AAIObjectType.VF_MODULE, vnfId, vfModuleId))
44 logger.debug("No Vf Module found in A&AI VnfId: {}" + ", VfModuleId: {}", vnfId, vfModuleId);
49 public GenericVnf getGenericVnf(String vnfId) {
50 return this.getAaiResourcesClient()
51 .get(GenericVnf.class, AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId))
53 logger.debug("No Generic VNF found in A&AI VnfId: {}", vnfId);
58 public VolumeGroup getVolumeGroup(String vnfId, String volumeGroupId) throws AAIEntityNotFound {
59 AAIResultWrapper wrapper =
60 this.getAaiResourcesClient().get(AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId)
61 .relatedTo(AAIObjectType.VOLUME_GROUP, volumeGroupId));
62 Optional<VolumeGroup> volume = wrapper.asBean(VolumeGroup.class);
63 if (volume.isPresent()) {
66 logger.debug("No VolumeGroup in A&AI found: {}", vnfId);
71 public L3Network getNetwork(String networkId) {
72 return this.getAaiResourcesClient()
73 .get(L3Network.class, AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, networkId))
75 logger.debug("No Network found in A&AI NetworkId: {}", networkId);
81 public boolean isVolumeGroupRelatedToVFModule(String volumeGroupId) {
82 return this.getAaiResourcesClient().exists(AAIUriFactory
83 .createResourceUri(AAIObjectType.VOLUME_GROUP, volumeGroupId).relatedTo(AAIObjectPlurals.VF_MODULE));
86 public boolean isVnfRelatedToVolumes(String vnfId) {
87 return this.getAaiResourcesClient().exists(AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId)
88 .relatedTo(AAIObjectPlurals.VOLUME_GROUP));
91 public boolean isNetworkRelatedToModules(String networkId) {
92 return this.getAaiResourcesClient().exists(AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, networkId)
93 .relatedTo(AAIObjectPlurals.VF_MODULE));
96 public boolean isServiceRelatedToNetworks(String serviceInstanceId) {
97 return this.getAaiResourcesClient()
98 .exists(AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE, serviceInstanceId)
99 .relatedTo(AAIObjectPlurals.L3_NETWORK));
102 public boolean isServiceRelatedToGenericVnf(String serviceInstanceId) {
103 return this.getAaiResourcesClient()
104 .exists(AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE, serviceInstanceId)
105 .relatedTo(AAIObjectPlurals.GENERIC_VNF));
108 public boolean isServiceRelatedToConfiguration(String serviceInstanceId) {
109 return this.getAaiResourcesClient()
110 .exists(AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE, serviceInstanceId)
111 .relatedTo(AAIObjectPlurals.CONFIGURATION));
114 public Service getService(String serviceId) {
115 return this.getAaiResourcesClient()
116 .get(Service.class, AAIUriFactory.createResourceUri(AAIObjectType.SERVICE, serviceId)).orElseGet(() -> {
117 logger.debug("No Service found in A&AI ServiceId: {}", serviceId);
122 public Tenant getTenant(String cloudOwner, String cloudRegion, String tenantId) {
123 return this.getAaiResourcesClient()
125 AAIUriFactory.createResourceUri(AAIObjectType.TENANT, cloudOwner, cloudRegion, tenantId))
127 logger.debug("No Tenant found in A&AI TenantId: {}", tenantId);
132 protected AAIResourcesClient getAaiResourcesClient() {
133 if (aaiResourcesClient == null) {
134 aaiResourcesClient = new AAIResourcesClient();
136 return aaiResourcesClient;