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.openecomp.sdc.ci.tests.utils.rest;
23 import static org.testng.Assert.assertTrue;
25 import java.io.IOException;
26 import java.util.HashMap;
27 import java.util.List;
30 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
31 import org.openecomp.sdc.be.model.Component;
32 import org.openecomp.sdc.be.model.ComponentInstance;
33 import org.openecomp.sdc.be.model.ComponentInstanceProperty;
34 import org.openecomp.sdc.be.model.RequirementCapabilityRelDef;
35 import org.openecomp.sdc.be.model.User;
36 import org.openecomp.sdc.ci.tests.api.Urls;
37 import org.openecomp.sdc.ci.tests.config.Config;
38 import org.openecomp.sdc.ci.tests.datatypes.ComponentInstanceReqDetails;
39 import org.openecomp.sdc.ci.tests.datatypes.http.HttpHeaderEnum;
40 import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
41 import org.openecomp.sdc.ci.tests.utils.Utils;
43 import com.google.gson.Gson;
45 public class ComponentInstanceRestUtils extends BaseRestUtils {
46 public static String acceptHeaderDate = "application/json";
47 static Config config = Config.instance();
48 public static Gson gson = new Gson();
50 // 'componentType' can be 'services' or 'resources'
52 public static RestResponse createComponentInstance(ComponentInstanceReqDetails componentInstanceReqDetails,
53 User sdncModifierDetails, Component component) throws Exception {
54 return createComponentInstance(componentInstanceReqDetails, sdncModifierDetails, component.getUniqueId(),
55 component.getComponentType());
58 public static RestResponse createComponentInstance(ComponentInstanceReqDetails componentInstanceReqDetails,
59 User sdncModifierDetails, String componentId, ComponentTypeEnum componentType) throws Exception {
61 return createComponentInstance(componentInstanceReqDetails, sdncModifierDetails, componentId,
62 ComponentTypeEnum.findParamByType(componentType));
65 public static RestResponse createComponentInstance(ComponentInstanceReqDetails componentInstanceReqDetails,
66 User sdncModifierDetails, String componentId, String componentType) throws Exception {
67 Config config = Utils.getConfig();
68 String userId = sdncModifierDetails.getUserId();
69 String serviceBodyJson = gson.toJson(componentInstanceReqDetails);
70 String url = String.format(Urls.CREATE_COMPONENT_INSTANCE, config.getCatalogBeHost(), config.getCatalogBePort(),
71 componentType, componentId);
72 RestResponse createResourceInstance = sendPost(url, serviceBodyJson, userId, acceptHeaderData);
73 if (createResourceInstance.getErrorCode().equals(BaseRestUtils.STATUS_CODE_CREATED)) {
74 String uniqueId = ResponseParser.getValueFromJsonResponse(createResourceInstance.getResponse(), "uniqueId");
75 componentInstanceReqDetails.setUniqueId(uniqueId);
76 // Gson gson = new Gson();
77 // ResourceInstanceReqDetails fromJson =
78 // gson.fromJson(createResourceInstance.getResponse(),
79 // ResourceInstanceReqDetails.class);
80 // componentInstanceReqDetails.setUniqueId(fromJson.getUniqueId());
82 return createResourceInstance;
85 public static RestResponse getComponentInstances(ComponentTypeEnum type, String componentId, User user)
88 Config config = Utils.getConfig();
90 Map<String, String> headersMap = new HashMap<String, String>();
91 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), contentTypeHeaderData);
92 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), acceptHeaderData);
93 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), user.getUserId());
95 String url = String.format(Urls.GET_COMPONENT_INSTANCES, config.getCatalogBeHost(), config.getCatalogBePort(),
96 ComponentTypeEnum.findParamByType(type), componentId);
98 RestResponse sendGetServerRequest = sendGet(url, user.getUserId(), headersMap);
100 return sendGetServerRequest;
104 public static RestResponse deleteComponentInstance(User sdncModifierDetails, String componentId,
105 String resourceInstanceId, ComponentTypeEnum componentType) throws Exception {
107 return deleteComponentInstance(sdncModifierDetails, componentId, resourceInstanceId,
108 ComponentTypeEnum.findParamByType(componentType));
111 public static RestResponse deleteComponentInstance(User sdncModifierDetails, String componentId,
112 String resourceInstanceId, String componentTypeString) throws Exception {
113 Config config = Utils.getConfig();
114 String userId = sdncModifierDetails.getUserId();
115 String url = String.format(Urls.DELETE_COMPONENT_INSTANCE, config.getCatalogBeHost(), config.getCatalogBePort(),
116 componentTypeString, componentId, resourceInstanceId);
117 RestResponse sendCreateUserRequest = sendDelete(url, userId);
118 return sendCreateUserRequest;
121 public static RestResponse updateComponentInstance(ComponentInstanceReqDetails componentInstanceReqDetails,
122 User sdncModifierDetails, String componentId, ComponentTypeEnum componentType) throws IOException {
124 Config config = Utils.getConfig();
125 String userId = sdncModifierDetails.getUserId();
126 String serviceBodyJson = gson.toJson(componentInstanceReqDetails);
127 String url = String.format(Urls.UPDATE_COMPONENT_INSTANCE, config.getCatalogBeHost(), config.getCatalogBePort(),
128 ComponentTypeEnum.findParamByType(componentType), componentId,
129 componentInstanceReqDetails.getUniqueId());
130 RestResponse updateResourceInstance = sendPost(url, serviceBodyJson, userId, acceptHeaderData);
131 return updateResourceInstance;
134 //Tal G - CI for New API Multiple Instance Update
135 public static RestResponse updateMultipleComponentInstance(
136 List<ComponentInstanceReqDetails> componentInstanceReqDetailsList, User sdncModifierDetails,
137 String componentId, ComponentTypeEnum componentType) throws IOException {
138 Config config = Utils.getConfig();
139 String userId = sdncModifierDetails.getUserId();
140 String serviceBodyJson = gson.toJson(componentInstanceReqDetailsList.toArray());
141 String url = String.format(Urls.UPDATE_MULTIPLE_COMPONENT_INSTANCE, config.getCatalogBeHost(),
142 config.getCatalogBePort(), ComponentTypeEnum.findParamByType(componentType), componentId);
143 RestResponse updateResourceInstance = sendPost(url, serviceBodyJson, userId, acceptHeaderData);
144 return updateResourceInstance;
147 public static RestResponse associateInstances(RequirementCapabilityRelDef relation, User sdncModifierDetails,
148 String componentId, ComponentTypeEnum componentTypeEnum) throws IOException {
150 Config config = Utils.getConfig();
152 String componentType = "";
153 switch (componentTypeEnum) {
155 componentType = ComponentTypeEnum.RESOURCE_PARAM_NAME;
158 componentType = ComponentTypeEnum.SERVICE_PARAM_NAME;
163 String serviceBodyJson = gson.toJson(relation);
164 String url = String.format(Urls.ASSOCIATE__RESOURCE_INSTANCE, config.getCatalogBeHost(),
165 config.getCatalogBePort(), componentType, componentId);
167 RestResponse associateInstance = sendPost(url, serviceBodyJson, sdncModifierDetails.getUserId(),
169 return associateInstance;
173 public static RestResponse dissociateInstances(RequirementCapabilityRelDef relation, User sdncModifierDetails,
174 String componentId, ComponentTypeEnum componentTypeEnum) throws IOException {
176 Config config = Utils.getConfig();
178 String componentType = "";
179 switch (componentTypeEnum) {
181 componentType = ComponentTypeEnum.RESOURCE_PARAM_NAME;
184 componentType = ComponentTypeEnum.SERVICE_PARAM_NAME;
189 String serviceBodyJson = gson.toJson(relation);
190 String url = String.format(Urls.DISSOCIATE__RESOURCE_INSTANCE, config.getCatalogBeHost(),
191 config.getCatalogBePort(), componentType, componentId);
193 RestResponse associateInstance = sendPut(url, serviceBodyJson, sdncModifierDetails.getUserId(),
195 return associateInstance;
199 public static void checkComponentInstanceType(RestResponse response, String expectedComponentType) {
200 String actualComponentType = ResponseParser.getComponentTypeFromResponse(response);
201 assertTrue(expectedComponentType.equals(actualComponentType),
202 "Failed. expected: " + expectedComponentType + ", actual: " + actualComponentType + "/");
205 public static RestResponse updatePropertyValueOnResourceInstance(Component component, ComponentInstance instDetails,
206 User user, ComponentInstanceProperty updatedInstanceProperty) throws IOException {
208 Config config = Utils.getConfig();
210 Map<String, String> headersMap = new HashMap<String, String>();
211 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), contentTypeHeaderData);
212 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), acceptHeaderData);
213 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), user.getUserId());
215 String url = String.format(Urls.UPDATE_PROPERTY_TO_RESOURCE_INSTANCE, config.getCatalogBeHost(),
216 config.getCatalogBePort(), ComponentTypeEnum.findParamByType(component.getComponentType()),
217 component.getUniqueId(), instDetails.getUniqueId());
218 String body = gson.toJson(updatedInstanceProperty);
220 RestResponse sendGetServerRequest = sendPost(url, body, user.getUserId(), acceptHeaderData);
221 return sendGetServerRequest;
225 public static RestResponse changeComponentInstanceVersion(Component container,
226 ComponentInstance componentInstanceToReplace, Component newInstance, User sdncModifierDetails)
229 return changeComponentInstanceVersion(container.getUniqueId(), componentInstanceToReplace, newInstance,
230 sdncModifierDetails, container.getComponentType());
233 public static RestResponse changeComponentInstanceVersion(String containerUID,
234 ComponentInstance componentInstanceToReplace, Component component, User sdncModifierDetails,
235 ComponentTypeEnum componentType) throws IOException {
237 Config config = Utils.getConfig();
238 String resourceUid = ("{\"componentUid\":\"" + component.getUniqueId() + "\"}");
239 String url = String.format(Urls.CHANGE__RESOURCE_INSTANCE_VERSION, config.getCatalogBeHost(),
240 config.getCatalogBePort(), ComponentTypeEnum.findParamByType(componentType), containerUID,
241 componentInstanceToReplace.getUniqueId());
242 RestResponse changeResourceInstanceVersion = sendPost(url, resourceUid, sdncModifierDetails.getUserId(),
245 if (changeResourceInstanceVersion.getErrorCode() == 200
246 || changeResourceInstanceVersion.getErrorCode() == 201) {
247 Gson gson = new Gson();
248 // ResourceInstanceReqDetails
249 // convertResourceInstanceResponseToJavaObject =
250 // ResponseParser.convertResourceInstanceResponseToJavaObject(createResourceInstance.getResponse());
251 ComponentInstanceReqDetails fromJson = gson.fromJson(changeResourceInstanceVersion.getResponse(),
252 ComponentInstanceReqDetails.class);
254 componentInstanceToReplace.setUniqueId(fromJson.getUniqueId());
258 return changeResourceInstanceVersion;
262 public static RestResponse changeComponentInstanceVersion(String componentUniqueId,
263 String serviceInstanceToReplaceUniqueId, String serviceUniqueId, User sdncModifierDetails,
264 ComponentTypeEnum componentType) throws IOException {
265 Config config = Utils.getConfig();
266 String resourceUid = ("{\"componentUid\":\"" + serviceUniqueId + "\"}");
267 String url = String.format(Urls.CHANGE__RESOURCE_INSTANCE_VERSION, config.getCatalogBeHost(),
268 config.getCatalogBePort(), ComponentTypeEnum.findParamByType(componentType), componentUniqueId,
269 serviceInstanceToReplaceUniqueId);
270 RestResponse changeResourceInstanceVersion = sendPost(url, resourceUid, sdncModifierDetails.getUserId(),
272 return changeResourceInstanceVersion;