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 * method to delete Configuration details in A&AI
154 * @param configurationId
156 public void deleteConfiguration(String configurationId) {
157 AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
158 injectionHelper.getAaiClient().delete(aaiResourceUri);
162 * Get Configuration from AAI using related Link
163 * @param relatedLink related link - URI
164 * @return AAI Configuration object
166 public Optional<org.onap.aai.domain.yang.Configuration> getConfigurationFromRelatedLink(String relatedLink){
167 return injectionHelper.getAaiClient()
168 .get(org.onap.aai.domain.yang.Configuration.class, AAIUriFactory.createResourceFromExistingURI(AAIObjectType.CONFIGURATION, UriBuilder.fromPath(relatedLink).build()));