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 com.google.gson.Gson;
24 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
25 import org.openecomp.sdc.be.model.*;
26 import org.openecomp.sdc.ci.tests.api.Urls;
27 import org.openecomp.sdc.ci.tests.config.Config;
28 import org.openecomp.sdc.ci.tests.datatypes.ComponentInstanceReqDetails;
29 import org.openecomp.sdc.ci.tests.datatypes.http.HttpHeaderEnum;
30 import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
31 import org.openecomp.sdc.ci.tests.utils.Utils;
33 import java.io.IOException;
34 import java.util.HashMap;
35 import java.util.List;
38 import static org.testng.Assert.assertTrue;
40 public class ComponentInstanceRestUtils extends BaseRestUtils {
41 // public static String acceptHeaderDate = "application/json";
42 static Config config = Config.instance();
43 public static Gson gson = new Gson();
45 // 'componentType' can be 'services' or 'resources'
47 public static RestResponse createComponentInstance(ComponentInstanceReqDetails componentInstanceReqDetails,
48 User sdncModifierDetails, Component component) throws Exception {
49 return createComponentInstance(componentInstanceReqDetails, sdncModifierDetails, component.getUniqueId(),
50 component.getComponentType());
53 public static RestResponse createComponentInstance(ComponentInstanceReqDetails componentInstanceReqDetails,
54 User sdncModifierDetails, String componentId, ComponentTypeEnum componentType) throws Exception {
56 return createComponentInstance(componentInstanceReqDetails, sdncModifierDetails, componentId,
57 ComponentTypeEnum.findParamByType(componentType));
60 public static RestResponse createComponentInstance(ComponentInstanceReqDetails componentInstanceReqDetails,
61 User sdncModifierDetails, String componentId, String componentType) throws Exception {
62 Config config = Utils.getConfig();
63 String userId = sdncModifierDetails.getUserId();
64 String serviceBodyJson = gson.toJson(componentInstanceReqDetails);
65 String url = String.format(Urls.CREATE_COMPONENT_INSTANCE, config.getCatalogBeHost(), config.getCatalogBePort(),
66 componentType, componentId);
67 RestResponse createResourceInstance = sendPost(url, serviceBodyJson, userId, acceptHeaderData);
68 if (createResourceInstance.getErrorCode().equals(BaseRestUtils.STATUS_CODE_CREATED)) {
69 String uniqueId = ResponseParser.getValueFromJsonResponse(createResourceInstance.getResponse(), "uniqueId");
70 componentInstanceReqDetails.setUniqueId(uniqueId);
71 // Gson gson = new Gson();
72 // ResourceInstanceReqDetails fromJson =
73 // gson.fromJson(createResourceInstance.getResponse(),
74 // ResourceInstanceReqDetails.class);
75 // componentInstanceReqDetails.setUniqueId(fromJson.getUniqueId());
77 return createResourceInstance;
80 public static RestResponse getComponentInstances(ComponentTypeEnum type, String componentId, User user)
83 Config config = Utils.getConfig();
85 Map<String, String> headersMap = new HashMap<>();
86 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), contentTypeHeaderData);
87 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), acceptHeaderData);
88 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), user.getUserId());
90 String url = String.format(Urls.GET_COMPONENT_INSTANCES, config.getCatalogBeHost(), config.getCatalogBePort(),
91 ComponentTypeEnum.findParamByType(type), componentId);
93 RestResponse sendGetServerRequest = sendGet(url, user.getUserId(), headersMap);
95 return sendGetServerRequest;
99 public static RestResponse deleteComponentInstance(User sdncModifierDetails, String componentId,
100 String resourceInstanceId, ComponentTypeEnum componentType) throws Exception {
102 return deleteComponentInstance(sdncModifierDetails, componentId, resourceInstanceId,
103 ComponentTypeEnum.findParamByType(componentType));
106 public static RestResponse deleteComponentInstance(User sdncModifierDetails, String componentId,
107 String resourceInstanceId, String componentTypeString) throws Exception {
108 Config config = Utils.getConfig();
109 String userId = sdncModifierDetails.getUserId();
110 String url = String.format(Urls.DELETE_COMPONENT_INSTANCE, config.getCatalogBeHost(), config.getCatalogBePort(),
111 componentTypeString, componentId, resourceInstanceId);
112 RestResponse sendCreateUserRequest = sendDelete(url, userId);
113 return sendCreateUserRequest;
116 public static RestResponse updateComponentInstance(ComponentInstanceReqDetails componentInstanceReqDetails,
117 User sdncModifierDetails, String componentId, ComponentTypeEnum componentType) throws IOException {
119 Config config = Utils.getConfig();
120 String userId = sdncModifierDetails.getUserId();
121 String serviceBodyJson = gson.toJson(componentInstanceReqDetails);
122 String url = String.format(Urls.UPDATE_COMPONENT_INSTANCE, config.getCatalogBeHost(), config.getCatalogBePort(),
123 ComponentTypeEnum.findParamByType(componentType), componentId,
124 componentInstanceReqDetails.getUniqueId());
125 RestResponse updateResourceInstance = sendPost(url, serviceBodyJson, userId, acceptHeaderData);
126 return updateResourceInstance;
129 //Tal G - CI for New API Multiple Instance Update
130 public static RestResponse updateMultipleComponentInstance(
131 List<ComponentInstanceReqDetails> componentInstanceReqDetailsList, User sdncModifierDetails,
132 String componentId, ComponentTypeEnum componentType) throws IOException {
133 Config config = Utils.getConfig();
134 String userId = sdncModifierDetails.getUserId();
135 String serviceBodyJson = gson.toJson(componentInstanceReqDetailsList.toArray());
136 String url = String.format(Urls.UPDATE_MULTIPLE_COMPONENT_INSTANCE, config.getCatalogBeHost(),
137 config.getCatalogBePort(), ComponentTypeEnum.findParamByType(componentType), componentId);
138 RestResponse updateResourceInstance = sendPost(url, serviceBodyJson, userId, acceptHeaderData);
139 return updateResourceInstance;
142 public static RestResponse associateInstances(RequirementCapabilityRelDef relation, User sdncModifierDetails,
143 String componentId, ComponentTypeEnum componentTypeEnum) throws IOException {
145 Config config = Utils.getConfig();
147 String componentType = "";
148 switch (componentTypeEnum) {
150 componentType = ComponentTypeEnum.RESOURCE_PARAM_NAME;
153 componentType = ComponentTypeEnum.SERVICE_PARAM_NAME;
158 String serviceBodyJson = gson.toJson(relation);
159 String url = String.format(Urls.ASSOCIATE__RESOURCE_INSTANCE, config.getCatalogBeHost(),
160 config.getCatalogBePort(), componentType, componentId);
162 RestResponse associateInstance = sendPost(url, serviceBodyJson, sdncModifierDetails.getUserId(),
164 return associateInstance;
168 public static RestResponse dissociateInstances(RequirementCapabilityRelDef relation, User sdncModifierDetails,
169 String componentId, ComponentTypeEnum componentTypeEnum) throws IOException {
171 Config config = Utils.getConfig();
173 String componentType = "";
174 switch (componentTypeEnum) {
176 componentType = ComponentTypeEnum.RESOURCE_PARAM_NAME;
179 componentType = ComponentTypeEnum.SERVICE_PARAM_NAME;
184 String serviceBodyJson = gson.toJson(relation);
185 String url = String.format(Urls.DISSOCIATE__RESOURCE_INSTANCE, config.getCatalogBeHost(),
186 config.getCatalogBePort(), componentType, componentId);
188 RestResponse associateInstance = sendPut(url, serviceBodyJson, sdncModifierDetails.getUserId(),
190 return associateInstance;
194 public static void checkComponentInstanceType(RestResponse response, String expectedComponentType) {
195 String actualComponentType = ResponseParser.getComponentTypeFromResponse(response);
196 assertTrue(expectedComponentType.equals(actualComponentType),
197 "Failed. expected: " + expectedComponentType + ", actual: " + actualComponentType + "/");
200 public static RestResponse updatePropertyValueOnResourceInstance(Component component, ComponentInstance instDetails,
201 User user, ComponentInstanceProperty updatedInstanceProperty) throws IOException {
203 Config config = Utils.getConfig();
205 Map<String, String> headersMap = new HashMap<>();
206 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), contentTypeHeaderData);
207 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), acceptHeaderData);
208 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), user.getUserId());
210 String url = String.format(Urls.UPDATE_PROPERTY_TO_RESOURCE_INSTANCE, config.getCatalogBeHost(),
211 config.getCatalogBePort(), ComponentTypeEnum.findParamByType(component.getComponentType()),
212 component.getUniqueId(), instDetails.getUniqueId());
213 String body = gson.toJson(updatedInstanceProperty);
215 RestResponse sendGetServerRequest = sendPost(url, body, user.getUserId(), acceptHeaderData);
216 return sendGetServerRequest;
220 public static RestResponse changeComponentInstanceVersion(Component container,
221 ComponentInstance componentInstanceToReplace, Component newInstance, User sdncModifierDetails)
224 return changeComponentInstanceVersion(container.getUniqueId(), componentInstanceToReplace, newInstance,
225 sdncModifierDetails, container.getComponentType());
228 public static RestResponse changeComponentInstanceVersion(String containerUID,
229 ComponentInstance componentInstanceToReplace, Component component, User sdncModifierDetails,
230 ComponentTypeEnum componentType) throws IOException {
232 Config config = Utils.getConfig();
233 String resourceUid = ("{\"componentUid\":\"" + component.getUniqueId() + "\"}");
234 String url = String.format(Urls.CHANGE__RESOURCE_INSTANCE_VERSION, config.getCatalogBeHost(),
235 config.getCatalogBePort(), ComponentTypeEnum.findParamByType(componentType), containerUID,
236 componentInstanceToReplace.getUniqueId());
237 RestResponse changeResourceInstanceVersion = sendPost(url, resourceUid, sdncModifierDetails.getUserId(),
240 if (changeResourceInstanceVersion.getErrorCode() == 200
241 || changeResourceInstanceVersion.getErrorCode() == 201) {
242 Gson gson = new Gson();
243 // ResourceInstanceReqDetails
244 // convertResourceInstanceResponseToJavaObject =
245 // ResponseParser.convertResourceInstanceResponseToJavaObject(createResourceInstance.getResponse());
246 ComponentInstanceReqDetails fromJson = gson.fromJson(changeResourceInstanceVersion.getResponse(),
247 ComponentInstanceReqDetails.class);
249 componentInstanceToReplace.setUniqueId(fromJson.getUniqueId());
253 return changeResourceInstanceVersion;
257 public static RestResponse changeComponentInstanceVersion(String componentUniqueId,
258 String serviceInstanceToReplaceUniqueId, String serviceUniqueId, User sdncModifierDetails,
259 ComponentTypeEnum componentType) throws IOException {
260 Config config = Utils.getConfig();
261 String resourceUid = ("{\"componentUid\":\"" + serviceUniqueId + "\"}");
262 String url = String.format(Urls.CHANGE__RESOURCE_INSTANCE_VERSION, config.getCatalogBeHost(),
263 config.getCatalogBePort(), ComponentTypeEnum.findParamByType(componentType), componentUniqueId,
264 serviceInstanceToReplaceUniqueId);
265 RestResponse changeResourceInstanceVersion = sendPost(url, resourceUid, sdncModifierDetails.getUserId(),
267 return changeResourceInstanceVersion;
270 public static CapReqDef getInstancesCapabilitiesRequirements(Component component, String userId) throws Exception {
272 String url = String.format(Urls.GET_INSTANCE_REQUIRMENTS_CAPABILITIES,
273 Utils.getConfig().getCatalogBeHost(), Utils.getConfig().getCatalogBePort(),
274 ComponentTypeEnum.findParamByType(component.getComponentType()), component.getUniqueId());
276 RestResponse getComponentReqCap = sendGet(url, userId);
277 assertTrue(getComponentReqCap.getErrorCode() == STATUS_CODE_GET_SUCCESS);
278 return ResponseParser.parseToObject(getComponentReqCap.getResponse(), CapReqDef.class);