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.AAIEdgeLabel;
31 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
32 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
33 import org.onap.so.client.aai.mapper.AAIObjectMapper;
34 import org.onap.so.db.catalog.beans.OrchestrationStatus;
35 import org.springframework.beans.factory.annotation.Autowired;
36 import org.springframework.stereotype.Component;
39 public class AAIConfigurationResources {
41 private InjectionHelper injectionHelper;
44 private AAIObjectMapper aaiObjectMapper;
47 * A&AI call to create configuration
49 * @param configuration
51 public void createConfiguration(Configuration configuration) {
52 AAIResourceUri configurationURI = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configuration.getConfigurationId());
53 configuration.setOrchestrationStatus(OrchestrationStatus.ASSIGNED);
54 org.onap.aai.domain.yang.Configuration aaiConfiguration = aaiObjectMapper.mapConfiguration(configuration);
55 injectionHelper.getAaiClient().create(configurationURI, aaiConfiguration);
59 * method to get Configuration details from A&AI
61 * @param configurationId
64 public Optional<org.onap.aai.domain.yang.Configuration> getConfiguration(String configurationId) {
65 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
66 return injectionHelper.getAaiClient().get(org.onap.aai.domain.yang.Configuration.class, aaiResourceUri);
70 * A&AI call to update configuration
72 * @param configuration
74 public void updateConfiguration(Configuration configuration) {
75 AAIResourceUri configurationURI = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configuration.getConfigurationId());
76 org.onap.aai.domain.yang.Configuration aaiConfiguration = aaiObjectMapper.mapConfiguration(configuration);
77 injectionHelper.getAaiClient().update(configurationURI, aaiConfiguration);
80 * A&AI call to disconnect configuration relation with service instance
81 * @param configurationId
82 * @param serviceInstanceId
85 public void disconnectConfigurationToServiceInstance(String configurationId, String serviceInstanceId){
86 AAIResourceUri configurationURI = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
87 AAIResourceUri serviceInstanceURI = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE,
89 injectionHelper.getAaiClient().disconnect(configurationURI,serviceInstanceURI);
93 * A&AI call to add vrf configuration relationship with Vnr Configuration
95 * @param vrfConfigurationId
96 * @param vnrConfigurationId
98 public void connectVrfConfigurationToVnrConfiguration(String vrfConfigurationId, String vnrConfigurationId) {
99 AAIResourceUri vnrConfigurationUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, vnrConfigurationId);
100 AAIResourceUri vrfConfigurationUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, vrfConfigurationId);
101 injectionHelper.getAaiClient().connect(vrfConfigurationUri, vnrConfigurationUri);
105 * A&AI call to add configuration relationship with PnfObject
108 * @param configurationId
110 public void connectConfigurationToPnfObject(String pnfId, String configurationId) {
111 AAIResourceUri pnfUri = AAIUriFactory.createResourceUri(AAIObjectType.PNF, pnfId);
112 AAIResourceUri configurationUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
113 injectionHelper.getAaiClient().connect(configurationUri, pnfUri);
117 * A&AI call to add configuration relationship with service instance
119 * @param configurationId
120 * @param serviceInstanceId
122 public void connectConfigurationToServiceInstance(String configurationId, String serviceInstanceId) {
123 AAIResourceUri configurationURI = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
124 AAIResourceUri serviceInstanceURI = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE,
126 injectionHelper.getAaiClient().connect(configurationURI, serviceInstanceURI);
130 * A&AI call to add configuration relationship with service instance
132 * @param configurationId
133 * @param serviceInstanceId
136 public void connectConfigurationToServiceInstance(String configurationId, String serviceInstanceId, AAIEdgeLabel aaiLabel) {
137 AAIResourceUri configurationURI = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
138 AAIResourceUri serviceInstanceURI = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE,
140 injectionHelper.getAaiClient().connect(configurationURI, serviceInstanceURI, aaiLabel);
144 * A&AI call to add configuration relationship with generic-vnf
146 * @param configurationId
147 * @param genericVnfId
149 public void connectConfigurationToGenericVnf(String configurationId, String genericVnfId) {
150 AAIResourceUri configurationURI = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
151 AAIResourceUri genericVnfURI = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, genericVnfId);
152 injectionHelper.getAaiClient().connect(configurationURI, genericVnfURI);
156 * A&AI call to add configuration relationship with vpn-binding
158 * @param configurationId
162 public void connectConfigurationToVpnBinding(String configurationId, String vpnId) {
163 AAIResourceUri configurationURI = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
164 AAIResourceUri vpnBindingURI = AAIUriFactory.createResourceUri(AAIObjectType.VPN_BINDING, vpnId);
165 injectionHelper.getAaiClient().connect(configurationURI, vpnBindingURI);
168 public void connectConfigurationToVfModule(String configurationId, String vnfId, String vfModuleId){
169 AAIResourceUri configurationURI = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
170 AAIResourceUri vfModuleURI = AAIUriFactory.createResourceUri(AAIObjectType.VF_MODULE, vnfId, vfModuleId);
171 injectionHelper.getAaiClient().connect(configurationURI, vfModuleURI);
174 public void connectConfigurationToVnfc(String configurationId, String vnfcName){
175 AAIResourceUri configurationURI = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
176 AAIResourceUri vnfcURI = AAIUriFactory.createResourceUri(AAIObjectType.VNFC, vnfcName);
177 injectionHelper.getAaiClient().connect(configurationURI, vnfcURI);
180 public void connectConfigurationToL3Network(String configurationId, String networkId){
181 AAIResourceUri configurationURI = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
182 AAIResourceUri networkURI = AAIUriFactory.createResourceUri(AAIObjectType.L3_NETWORK, networkId);
183 injectionHelper.getAaiClient().connect(configurationURI, networkURI);
187 * method to delete Configuration details in A&AI
189 * @param configurationId
191 public void deleteConfiguration(String configurationId) {
192 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
193 injectionHelper.getAaiClient().delete(aaiResourceUri);
196 * method to delete Configuration details in A&AI
198 * @param configuration
200 public void deleteConfiguration(Configuration configuration) {
201 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configuration.getConfigurationId());
202 injectionHelper.getAaiClient().delete(aaiResourceUri);
206 * Get Configuration from AAI using related Link
207 * @param relatedLink related link - URI
208 * @return AAI Configuration object
210 public Optional<org.onap.aai.domain.yang.Configuration> getConfigurationFromRelatedLink(String relatedLink){
211 return injectionHelper.getAaiClient()
212 .get(org.onap.aai.domain.yang.Configuration.class, AAIUriFactory.createResourceFromExistingURI(AAIObjectType.CONFIGURATION, UriBuilder.fromPath(relatedLink).build()));
215 public void updateOrchestrationStatusConfiguration(Configuration configuration, OrchestrationStatus orchestrationStatus) {
216 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configuration.getConfigurationId());
217 configuration.setOrchestrationStatus(orchestrationStatus);
218 org.onap.aai.domain.yang.Configuration aaiConfiguration = aaiObjectMapper.mapConfiguration(configuration);
219 injectionHelper.getAaiClient().update(aaiResourceUri, aaiConfiguration);