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;
24 import javax.ws.rs.core.UriBuilder;
25 import org.onap.so.bpmn.common.InjectionHelper;
26 import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
27 import org.onap.so.client.aai.AAIObjectType;
28 import org.onap.so.client.aai.entities.AAIEdgeLabel;
29 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
30 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
31 import org.onap.so.client.aai.mapper.AAIObjectMapper;
32 import org.onap.so.db.catalog.beans.OrchestrationStatus;
33 import org.springframework.beans.factory.annotation.Autowired;
34 import org.springframework.stereotype.Component;
37 public class AAIConfigurationResources {
39 private InjectionHelper injectionHelper;
42 private AAIObjectMapper aaiObjectMapper;
45 * A&AI call to create configuration
47 * @param configuration
49 public void createConfiguration(Configuration configuration) {
50 AAIResourceUri configurationURI =
51 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 =
75 AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configuration.getConfigurationId());
76 org.onap.aai.domain.yang.Configuration aaiConfiguration = aaiObjectMapper.mapConfiguration(configuration);
77 injectionHelper.getAaiClient().update(configurationURI, aaiConfiguration);
81 * A&AI call to disconnect configuration relation with service instance
83 * @param configurationId
84 * @param serviceInstanceId
87 public void disconnectConfigurationToServiceInstance(String configurationId, String serviceInstanceId) {
88 AAIResourceUri configurationURI = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
89 AAIResourceUri serviceInstanceURI =
90 AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE, serviceInstanceId);
91 injectionHelper.getAaiClient().disconnect(configurationURI, serviceInstanceURI);
95 * A&AI call to add vrf configuration relationship with Vnr Configuration
97 * @param vrfConfigurationId
98 * @param vnrConfigurationId
100 public void connectVrfConfigurationToVnrConfiguration(String vrfConfigurationId, String vnrConfigurationId) {
101 AAIResourceUri vnrConfigurationUri =
102 AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, vnrConfigurationId);
103 AAIResourceUri vrfConfigurationUri =
104 AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, vrfConfigurationId);
105 injectionHelper.getAaiClient().connect(vrfConfigurationUri, vnrConfigurationUri);
109 * A&AI call to add configuration relationship with PnfObject
112 * @param configurationId
114 public void connectConfigurationToPnfObject(String pnfId, String configurationId) {
115 AAIResourceUri pnfUri = AAIUriFactory.createResourceUri(AAIObjectType.PNF, pnfId);
116 AAIResourceUri configurationUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
117 injectionHelper.getAaiClient().connect(configurationUri, pnfUri);
121 * A&AI call to add configuration relationship with service instance
123 * @param configurationId
124 * @param serviceInstanceId
126 public void connectConfigurationToServiceInstance(String configurationId, String serviceInstanceId) {
127 AAIResourceUri configurationURI = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
128 AAIResourceUri serviceInstanceURI =
129 AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE, serviceInstanceId);
130 injectionHelper.getAaiClient().connect(configurationURI, serviceInstanceURI);
134 * A&AI call to add configuration relationship with service instance
136 * @param configurationId
137 * @param serviceInstanceId
140 public void connectConfigurationToServiceInstance(String configurationId, String serviceInstanceId,
141 AAIEdgeLabel aaiLabel) {
142 AAIResourceUri configurationURI = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
143 AAIResourceUri serviceInstanceURI =
144 AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE, serviceInstanceId);
145 injectionHelper.getAaiClient().connect(configurationURI, serviceInstanceURI, aaiLabel);
149 * A&AI call to add configuration relationship with generic-vnf
151 * @param configurationId
152 * @param genericVnfId
154 public void connectConfigurationToGenericVnf(String configurationId, String genericVnfId) {
155 AAIResourceUri configurationURI = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
156 AAIResourceUri genericVnfURI = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, genericVnfId);
157 injectionHelper.getAaiClient().connect(configurationURI, genericVnfURI);
161 * A&AI call to add configuration relationship with vpn-binding
163 * @param configurationId
167 public void connectConfigurationToVpnBinding(String configurationId, String vpnId) {
168 AAIResourceUri configurationURI = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
169 AAIResourceUri vpnBindingURI = AAIUriFactory.createResourceUri(AAIObjectType.VPN_BINDING, vpnId);
170 injectionHelper.getAaiClient().connect(configurationURI, vpnBindingURI);
173 public void connectConfigurationToVfModule(String configurationId, String vnfId, String vfModuleId) {
174 AAIResourceUri configurationURI = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
175 AAIResourceUri vfModuleURI = AAIUriFactory.createResourceUri(AAIObjectType.VF_MODULE, vnfId, vfModuleId);
176 injectionHelper.getAaiClient().connect(configurationURI, vfModuleURI);
179 public void connectConfigurationToVnfc(String configurationId, String vnfcName) {
180 AAIResourceUri configurationURI = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
181 AAIResourceUri vnfcURI = AAIUriFactory.createResourceUri(AAIObjectType.VNFC, vnfcName);
182 injectionHelper.getAaiClient().connect(configurationURI, vnfcURI);
185 public void connectConfigurationToL3Network(String configurationId, String networkId) {
186 AAIResourceUri configurationURI = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
187 AAIResourceUri networkURI = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, networkId);
188 injectionHelper.getAaiClient().connect(configurationURI, networkURI);
192 * method to delete Configuration details in A&AI
194 * @param configurationId
196 public void deleteConfiguration(String configurationId) {
197 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
198 injectionHelper.getAaiClient().delete(aaiResourceUri);
202 * method to delete Configuration details in A&AI
204 * @param configuration
206 public void deleteConfiguration(Configuration configuration) {
207 AAIResourceUri aaiResourceUri =
208 AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configuration.getConfigurationId());
209 injectionHelper.getAaiClient().delete(aaiResourceUri);
213 * Get Configuration from AAI using related Link
215 * @param relatedLink related link - URI
216 * @return AAI Configuration object
218 public Optional<org.onap.aai.domain.yang.Configuration> getConfigurationFromRelatedLink(String relatedLink) {
219 return injectionHelper.getAaiClient().get(org.onap.aai.domain.yang.Configuration.class, AAIUriFactory
220 .createResourceFromExistingURI(AAIObjectType.CONFIGURATION, UriBuilder.fromPath(relatedLink).build()));
223 public void updateOrchestrationStatusConfiguration(Configuration configuration,
224 OrchestrationStatus orchestrationStatus) {
225 AAIResourceUri aaiResourceUri =
226 AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configuration.getConfigurationId());
227 configuration.setOrchestrationStatus(orchestrationStatus);
228 org.onap.aai.domain.yang.Configuration aaiConfiguration = aaiObjectMapper.mapConfiguration(configuration);
229 injectionHelper.getAaiClient().update(aaiResourceUri, aaiConfiguration);