fa07ab57202e32a6886c32d14fd2bb40d35a407e
[so.git] / adapters / mso-vnfm-adapter / mso-vnfm-etsi-adapter / src / main / java / org / onap / so / adapters / vnfmadapter / extclients / aai / AaiServiceProviderImpl.java
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2019 Nordix Foundation.
4  * ================================================================================
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  * SPDX-License-Identifier: Apache-2.0
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.so.adapters.vnfmadapter.extclients.aai;
22
23 import org.onap.aai.domain.yang.EsrSystemInfoList;
24 import org.onap.aai.domain.yang.EsrVnfm;
25 import org.onap.aai.domain.yang.EsrVnfmList;
26 import org.onap.aai.domain.yang.GenericVnf;
27 import org.onap.aai.domain.yang.Vserver;
28 import org.onap.so.client.aai.AAIObjectType;
29 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
30 import org.onap.vnfmadapter.v1.model.Tenant;
31 import org.slf4j.Logger;
32 import org.slf4j.LoggerFactory;
33 import org.springframework.beans.factory.annotation.Autowired;
34 import org.springframework.stereotype.Service;
35 import java.util.List;
36
37 @Service
38 public class AaiServiceProviderImpl implements AaiServiceProvider {
39
40     private static final Logger logger = LoggerFactory.getLogger(AaiServiceProviderImpl.class);
41     private final AaiClientProvider aaiClientProvider;
42
43     @Autowired
44     public AaiServiceProviderImpl(final AaiClientProvider aaiClientProvider) {
45         this.aaiClientProvider = aaiClientProvider;
46     }
47
48     @Override
49     public GenericVnf invokeGetGenericVnf(final String vnfId) {
50         return aaiClientProvider.getAaiClient()
51                 .get(GenericVnf.class, AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId))
52                 .orElseGet(() -> {
53                     logger.debug("No vnf found in AAI with ID: {}", vnfId);
54                     return null;
55                 });
56     }
57
58     @Override
59     public List<GenericVnf> invokeQueryGenericVnf(final String selfLink) {
60         return aaiClientProvider.getAaiClient()
61                 .get(List.class,
62                         AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNFS).queryParam("selflink", selfLink))
63                 .orElseGet(() -> {
64                     logger.debug("No vnf found in AAI with selflink: {}", selfLink);
65                     return null;
66                 });
67     }
68
69     @Override
70     public EsrVnfmList invokeGetVnfms() {
71         return aaiClientProvider.getAaiClient()
72                 .get(EsrVnfmList.class, AAIUriFactory.createResourceUri(AAIObjectType.VNFM_LIST)).orElseGet(() -> {
73                     logger.debug("No VNFMs in AAI");
74                     return null;
75                 });
76     }
77
78     @Override
79     public EsrVnfm invokeGetVnfm(final String vnfmId) {
80         return aaiClientProvider.getAaiClient()
81                 .get(EsrVnfm.class, AAIUriFactory.createResourceUri(AAIObjectType.VNFM, vnfmId)).orElseGet(() -> {
82                     logger.debug("VNFM not found in AAI");
83                     return null;
84                 });
85     }
86
87     @Override
88     public EsrSystemInfoList invokeGetVnfmEsrSystemInfoList(final String vnfmId) {
89         return aaiClientProvider.getAaiClient()
90                 .get(EsrSystemInfoList.class,
91                         AAIUriFactory.createResourceUri(AAIObjectType.VNFM_ESR_SYSTEM_INFO_LIST, vnfmId))
92                 .orElseGet(() -> {
93                     logger.debug("VNFM ESR system info list not found in AAI");
94                     return null;
95                 });
96     }
97
98     @Override
99     public void invokePutGenericVnf(final GenericVnf vnf) {
100         aaiClientProvider.getAaiClient()
101                 .update(AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnf.getVnfId()), vnf);
102     }
103
104     @Override
105     public void invokePutVserver(final String cloudOwner, final String cloudRegion, final String tenant,
106             final Vserver vserver) {
107         aaiClientProvider.getAaiClient().update(AAIUriFactory.createResourceUri(AAIObjectType.VSERVER, cloudOwner,
108                 cloudRegion, tenant, vserver.getVserverId()), vserver);
109     }
110
111     @Override
112     public void invokeDeleteVserver(final String cloudOwner, final String cloudRegion, final String tenant,
113             final String vserverId) {
114         aaiClientProvider.getAaiClient().delete(
115                 AAIUriFactory.createResourceUri(AAIObjectType.VSERVER, cloudOwner, cloudRegion, tenant, vserverId));
116     }
117
118     @Override
119     public Tenant invokeGetTenant(final String cloudOwner, final String cloudRegion, final String tenantId) {
120         return aaiClientProvider.getAaiClient()
121                 .get(Tenant.class,
122                         AAIUriFactory.createResourceUri(AAIObjectType.TENANT, cloudOwner, cloudRegion, tenantId))
123                 .orElseGet(() -> {
124                     logger.debug("Tenant not found in AAI");
125                     return null;
126                 });
127     }
128
129     @Override
130     public EsrSystemInfoList invokeGetCloudRegionEsrSystemInfoList(final String cloudOwner, final String cloudRegion) {
131         return aaiClientProvider
132                 .getAaiClient().get(EsrSystemInfoList.class, AAIUriFactory
133                         .createResourceUri(AAIObjectType.CLOUD_ESR_SYSTEM_INFO_LIST, cloudOwner, cloudRegion))
134                 .orElseGet(() -> {
135                     logger.debug("Cloud esr system info list not found in AAI");
136                     return null;
137                 });
138     }
139
140 }