b29c8070c8e25009182c1ff6a72e1bc795490fcb
[so.git] / common / src / main / java / org / onap / so / client / aai / AAIConfigurationClient.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.aai;
22
23 import org.onap.so.client.aai.entities.Configuration;
24 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
25 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
26 import org.onap.so.serviceinstancebeans.RequestDetails;
27
28 public class AAIConfigurationClient {
29
30         private AAIResourcesClient aaiClient;
31
32         private static final String ORCHESTRATION_STATUS = "PreCreated";
33
34         public AAIConfigurationClient() {
35                 aaiClient = new AAIResourcesClient();
36         }
37
38         public void createConfiguration(RequestDetails requestDetails, String configurationId, String configurationType,
39                         String configurationSubType) {
40
41                 AAIResourceUri uri = getConfigurationURI(configurationId);
42                 Configuration payload = configurePayload(requestDetails, configurationId, configurationType, configurationSubType);
43                 
44                 aaiClient.create(uri, payload);
45         }
46         
47         public Configuration configurePayload(RequestDetails requestDetails, String configurationId, String configurationType,
48                         String configurationSubType) {
49                 
50                 Configuration payload = new Configuration();
51                 payload.setConfigurationId(configurationId);
52                 payload.setConfigurationType(configurationType);
53                 payload.setConfigurationSubType(configurationSubType);
54                 payload.setModelInvariantId(requestDetails.getModelInfo().getModelInvariantId());
55                 payload.setModelVersionId(requestDetails.getModelInfo().getModelVersionId());
56                 payload.setOrchestrationStatus(ORCHESTRATION_STATUS);
57                 payload.setOperationalStatus("");
58                 payload.setConfigurationSelflink(getConfigurationURI(configurationId).build().getPath());
59                 payload.setModelCustomizationId(requestDetails.getModelInfo().getModelCustomizationId());
60                 
61                 return payload;
62         }
63
64         public void deleteConfiguration(String uuid) {
65                 aaiClient.delete(getConfigurationURI(uuid));
66         }
67
68         public void updateOrchestrationStatus(String uuid, String payload) {
69                 aaiClient.update(getConfigurationURI(uuid), payload);
70         }
71
72         public Configuration getConfiguration(String uuid) {
73                 return aaiClient.get(Configuration.class, getConfigurationURI(uuid)).orElse(null);
74         }
75
76         public boolean configurationExists(String uuid) {
77                 return aaiClient.exists(getConfigurationURI(uuid));
78         }
79
80         public AAIResourceUri getConfigurationURI(String uuid) {
81                 return AAIUriFactory.createResourceUri(AAIObjectType.CONFIGURATION, uuid);
82         }
83 }