f412720af72498dc1decfa1aa55d28b4dfe4c169
[so.git] / bpmn / so-bpmn-tasks / src / main / java / org / onap / so / client / orchestration / AAIConfigurationResources.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
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
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
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=========================================================
19  */
20
21 package org.onap.so.client.orchestration;
22
23 import java.util.Optional;
24
25 import javax.ws.rs.core.UriBuilder;
26
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;
37
38 @Component
39 public class AAIConfigurationResources {
40         @Autowired
41         private InjectionHelper injectionHelper;
42
43         @Autowired
44         private AAIObjectMapper aaiObjectMapper;
45
46     /**
47      * A&AI call to create configuration
48      *
49      * @param configuration
50      */
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);
56     }
57
58     /**
59      *  method to get Configuration details from A&AI
60      *
61      * @param configurationId
62      * @return
63      */
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);
67     }
68
69     /**
70      * A&AI call to update configuration
71      *
72      * @param configuration
73      */
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);
78     }
79     /**
80      * A&AI call to disconnect configuration relation with service instance
81      * @param configurationId
82      * @param serviceInstanceId
83      */
84
85     public void disconnectConfigurationToServiceInstance(String configurationId, String serviceInstanceId){
86         AAIResourceUri configurationURI = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
87         AAIResourceUri serviceInstanceURI = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE,
88                 serviceInstanceId);
89         injectionHelper.getAaiClient().disconnect(configurationURI,serviceInstanceURI);
90     }
91
92     /**
93      * A&AI call to add vrf configuration relationship with Vnr Configuration
94      *
95      * @param vrfConfigurationId
96      * @param vnrConfigurationId
97      */
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);
102     }
103
104     /**
105      * A&AI call to add configuration relationship with PnfObject
106      *
107      * @param pnfId
108      * @param configurationId
109      */
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);
114     }
115
116     /**
117      * A&AI call to add configuration relationship with service instance
118      *
119      * @param configurationId
120      * @param serviceInstanceId
121      */
122     public void connectConfigurationToServiceInstance(String configurationId, String serviceInstanceId) {
123         AAIResourceUri configurationURI = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
124         AAIResourceUri serviceInstanceURI = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE,
125                 serviceInstanceId);
126         injectionHelper.getAaiClient().connect(configurationURI, serviceInstanceURI);
127     }
128     
129     /**
130      * A&AI call to add configuration relationship with service instance
131      *
132      * @param configurationId
133      * @param serviceInstanceId
134      * @param aaiLabel
135      */
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,
139                 serviceInstanceId);
140         injectionHelper.getAaiClient().connect(configurationURI, serviceInstanceURI, aaiLabel);
141     }
142
143     /**
144      * A&AI call to add configuration relationship with generic-vnf
145      *
146      * @param configurationId
147      * @param genericVnfId
148      */
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);
153     }
154
155     /**
156      * A&AI call to add configuration relationship with vpn-binding
157      *
158      * @param configurationId
159      * @param vpnId
160      *
161      */
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);
166     }
167
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);
172     }
173
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);
178     }
179
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);
184     }
185
186     /**
187      * method to delete Configuration details in A&AI
188      *
189      * @param configurationId
190      */
191     public void deleteConfiguration(String configurationId) {
192         AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configurationId);
193         injectionHelper.getAaiClient().delete(aaiResourceUri);
194     }
195     /**
196      * method to delete Configuration details in A&AI
197      *
198      * @param configuration
199      */
200     public void deleteConfiguration(Configuration configuration) {
201         AAIResourceUri aaiResourceUri = AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, configuration.getConfigurationId());
202         injectionHelper.getAaiClient().delete(aaiResourceUri);
203     }
204
205     /**
206      * Get Configuration from AAI using related Link
207      * @param relatedLink related link - URI
208      * @return AAI Configuration object
209      */
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()));
213     }
214
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);
220         }
221 }