2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.onap.so.client.orchestration;
23 import java.util.Optional;
25 import javax.ws.rs.core.UriBuilder;
27 import org.onap.so.bpmn.common.InjectionHelper;
28 import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
29 import org.onap.so.client.aai.AAIObjectType;
30 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
31 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
32 import org.onap.so.client.aai.mapper.AAIObjectMapper;
33 import org.onap.so.db.catalog.beans.OrchestrationStatus;
34 import org.springframework.beans.factory.annotation.Autowired;
35 import org.springframework.stereotype.Component;
38 public class AAIConfigurationResources {
40 private InjectionHelper injectionHelper;
43 private AAIObjectMapper aaiObjectMapper;
46 * A&AI call to create configuration
48 * @param configuration
50 public void createConfiguration(Configuration configuration) {
51 AAIResourceUri configurationURI = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configuration.getConfigurationId());
52 configuration.setOrchestrationStatus(OrchestrationStatus.INVENTORIED);
53 org.onap.aai.domain.yang.Configuration aaiConfiguration = aaiObjectMapper.mapConfiguration(configuration);
54 injectionHelper.getAaiClient().create(configurationURI, aaiConfiguration);
58 * method to get Configuration details from A&AI
60 * @param configurationId
63 public Optional<org.onap.aai.domain.yang.Configuration> getConfiguration(String configurationId) {
64 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
65 return injectionHelper.getAaiClient().get(org.onap.aai.domain.yang.Configuration.class, aaiResourceUri);
69 * A&AI call to update configuration
71 * @param configuration
73 public void updateConfiguration(Configuration configuration) {
74 AAIResourceUri configurationURI = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configuration.getConfigurationId());
75 org.onap.aai.domain.yang.Configuration aaiConfiguration = aaiObjectMapper.mapConfiguration(configuration);
76 injectionHelper.getAaiClient().update(configurationURI, aaiConfiguration);
79 * A&AI call to disconnect configuration relation with service instance
80 * @param configurationId
81 * @param serviceInstanceId
84 public void disconnectConfigurationToServiceInstance(String configurationId, String serviceInstanceId){
85 AAIResourceUri configurationURI = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
86 AAIResourceUri serviceInstanceURI = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE,
88 injectionHelper.getAaiClient().disconnect(configurationURI,serviceInstanceURI);
92 * A&AI call to add vrf configuration relationship with Vnr Configuration
94 * @param vrfConfigurationId
95 * @param vnrConfigurationId
97 public void connectVrfConfigurationToVnrConfiguration(String vrfConfigurationId, String vnrConfigurationId) {
98 AAIResourceUri vnrConfigurationUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, vnrConfigurationId);
99 AAIResourceUri vrfConfigurationUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, vrfConfigurationId);
100 injectionHelper.getAaiClient().connect(vrfConfigurationUri, vnrConfigurationUri);
104 * A&AI call to add configuration relationship with PnfObject
107 * @param configurationId
109 public void connectConfigurationToPnfObject(String pnfId, String configurationId) {
110 AAIResourceUri pnfUri = AAIUriFactory.createResourceUri(AAIObjectType.PNF, pnfId);
111 AAIResourceUri configurationUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
112 injectionHelper.getAaiClient().connect(configurationUri, pnfUri);
116 * A&AI call to add configuration relationship with service instance
118 * @param configurationId
119 * @param serviceInstanceId
121 public void connectConfigurationToServiceInstance(String configurationId, String serviceInstanceId) {
122 AAIResourceUri configurationURI = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
123 AAIResourceUri serviceInstanceURI = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE,
125 injectionHelper.getAaiClient().connect(configurationURI, serviceInstanceURI);
129 * A&AI call to add configuration relationship with generic-vnf
131 * @param configurationId
132 * @param genericVnfId
134 public void connectConfigurationToGenericVnf(String configurationId, String genericVnfId) {
135 AAIResourceUri configurationURI = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
136 AAIResourceUri genericVnfURI = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, genericVnfId);
137 injectionHelper.getAaiClient().connect(configurationURI, genericVnfURI);
141 * A&AI call to add configuration relationship with vpn-binding
143 * @param configurationId
146 public void connectConfigurationToVpnBinding(String configurationId, String vpnId) {
147 AAIResourceUri configurationURI = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
148 AAIResourceUri vpnBindingURI = AAIUriFactory.createResourceUri(AAIObjectType.VPN_BINDING, vpnId);
149 injectionHelper.getAaiClient().connect(configurationURI, vpnBindingURI);
152 public void connectConfigurationToVfModule(String configurationId, String vfModuleId, String vnfId){
153 AAIResourceUri configurationURI = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
154 AAIResourceUri vfModuleURI = AAIUriFactory.createResourceUri(AAIObjectType.VF_MODULE, vnfId, vfModuleId);
155 injectionHelper.getAaiClient().connect(configurationURI, vfModuleURI);
158 public void connectConfigurationToVnfc(String configurationId, String vnfcName){
159 AAIResourceUri configurationURI = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
160 AAIResourceUri vnfcURI = AAIUriFactory.createResourceUri(AAIObjectType.VNFC, vnfcName);
161 injectionHelper.getAaiClient().connect(configurationURI, vnfcURI);
164 * method to delete Configuration details in A&AI
166 * @param configurationId
168 public void deleteConfiguration(String configurationId) {
169 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
170 injectionHelper.getAaiClient().delete(aaiResourceUri);
173 * method to delete Configuration details in A&AI
175 * @param configuration
177 public void deleteConfiguration(Configuration configuration) {
178 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configuration.getConfigurationId());
179 injectionHelper.getAaiClient().delete(aaiResourceUri);
183 * Get Configuration from AAI using related Link
184 * @param relatedLink related link - URI
185 * @return AAI Configuration object
187 public Optional<org.onap.aai.domain.yang.Configuration> getConfigurationFromRelatedLink(String relatedLink){
188 return injectionHelper.getAaiClient()
189 .get(org.onap.aai.domain.yang.Configuration.class, AAIUriFactory.createResourceFromExistingURI(AAIObjectType.CONFIGURATION, UriBuilder.fromPath(relatedLink).build()));
192 public void updateOrchestrationStatusConfiguration(Configuration configuration, OrchestrationStatus orchestrationStatus) {
193 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configuration.getConfigurationId());
194 configuration.setOrchestrationStatus(orchestrationStatus);
195 org.onap.aai.domain.yang.Configuration aaiConfiguration = aaiObjectMapper.mapConfiguration(configuration);
196 injectionHelper.getAaiClient().update(aaiResourceUri, aaiConfiguration);