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.adapters.vnf;
24 import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
25 import static com.github.tomakehurst.wiremock.client.WireMock.get;
26 import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo;
27 import static org.mockito.Mockito.when;
28 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackGetStackVfModule_200;
29 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackGetStackVfModule_404;
30 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackPutStack;
31 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackResponseAccess;
32 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenstackGetWithResponse;
33 import java.util.HashMap;
34 import java.util.HashSet;
37 import javax.xml.ws.Holder;
38 import org.apache.http.HttpStatus;
39 import org.junit.Before;
40 import org.junit.Ignore;
41 import org.junit.Rule;
42 import org.junit.Test;
43 import org.junit.rules.ExpectedException;
44 import org.mockito.MockitoAnnotations;
45 import org.onap.so.adapters.vnf.exceptions.VnfAlreadyExists;
46 import org.onap.so.adapters.vnf.exceptions.VnfException;
47 import org.onap.so.adapters.vnf.exceptions.VnfNotFound;
48 import org.onap.so.db.catalog.beans.HeatEnvironment;
49 import org.onap.so.db.catalog.beans.HeatTemplate;
50 import org.onap.so.db.catalog.beans.HeatTemplateParam;
51 import org.onap.so.db.catalog.beans.VfModule;
52 import org.onap.so.db.catalog.beans.VfModuleCustomization;
53 import org.onap.so.db.catalog.beans.VnfResource;
54 import org.onap.so.entity.MsoRequest;
55 import org.onap.so.openstack.beans.HeatStatus;
56 import org.onap.so.openstack.beans.StackInfo;
57 import org.onap.so.openstack.beans.VnfRollback;
58 import org.onap.so.openstack.exceptions.MsoException;
59 import org.onap.so.openstack.utils.MsoHeatUtils;
60 import org.springframework.beans.factory.annotation.Autowired;
61 import com.github.tomakehurst.wiremock.client.WireMock;
64 public class MsoVnfAdapterImplTest extends BaseRestTestUtils {
66 public ExpectedException expectedException = ExpectedException.none();
69 private MsoHeatUtils heatUtils;
72 MsoVnfAdapterImpl instance;
74 String vnfName = "DEV-VF-1802-it3-pwt3-v6-vSAMP10a-addon2-Replace-1001/stackId";
78 public void healthCheckVNFTest() {
79 MsoVnfAdapterImpl instance = new MsoVnfAdapterImpl();
80 instance.healthCheck();
84 public void createVnfTest() throws Exception {
85 StackInfo info = new StackInfo();
86 info.setStatus(HeatStatus.CREATED);
88 mockOpenStackResponseAccess(wireMockServer, wireMockPort);
89 mockOpenStackGetStackVfModule_200(wireMockServer);
91 MsoRequest msoRequest = getMsoRequest();
93 Map<String, Object> map = new HashMap<>();
94 map.put("key1", "value1");
95 instance.createVfModule("MTN13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "",
96 "VFMOD", "volumeGroupHeatStackId|1", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map,
97 Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(),
98 new Holder<Map<String, String>>(), new Holder<VnfRollback>());
102 public void createVnfTest_HeatStatusUpdating() throws Exception {
103 expectedException.expect(VnfAlreadyExists.class);
104 mockOpenStackResponseAccess(wireMockServer, wireMockPort);
106 wireMockServer.stubFor(get(
107 urlPathEqualTo("/mockPublicUrl/stacks/DEV-VF-1802-it3-pwt3-v6-vSAMP10a-addon2-Replace-1001/stackId"))
108 .willReturn(aResponse().withHeader("Content-Type", "application/json")
109 .withBodyFile("OpenstackResponse_Stack_Updating_VfModule.json")
110 .withStatus(HttpStatus.SC_OK)));
112 MsoRequest msoRequest = getMsoRequest();
114 Map<String, Object> map = new HashMap<>();
115 map.put("key1", "value1");
116 instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "",
117 "VFMOD", "volumeGroupHeatStackId|1", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map,
118 Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(),
119 new Holder<Map<String, String>>(), new Holder<VnfRollback>());
123 public void createVnfTest_HeatStatusUpdated() throws Exception {
124 expectedException.expect(VnfAlreadyExists.class);
125 mockOpenStackResponseAccess(wireMockServer, wireMockPort);
127 wireMockServer.stubFor(get(
128 urlPathEqualTo("/mockPublicUrl/stacks/DEV-VF-1802-it3-pwt3-v6-vSAMP10a-addon2-Replace-1001/stackId"))
129 .willReturn(aResponse().withHeader("Content-Type", "application/json")
130 .withBodyFile("OpenstackResponse_StackId.json").withStatus(HttpStatus.SC_OK)));
132 MsoRequest msoRequest = getMsoRequest();
134 Map<String, Object> map = new HashMap<>();
135 map.put("key1", "value1");
136 instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "",
137 "VFMOD", "volumeGroupHeatStackId|1", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map,
138 Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(),
139 new Holder<Map<String, String>>(), new Holder<VnfRollback>());
143 public void createVnfTest_HeatStatusFailed() throws Exception {
144 expectedException.expect(VnfAlreadyExists.class);
145 mockOpenStackResponseAccess(wireMockServer, wireMockPort);
147 wireMockServer.stubFor(get(
148 urlPathEqualTo("/mockPublicUrl/stacks/DEV-VF-1802-it3-pwt3-v6-vSAMP10a-addon2-Replace-1001/stackId"))
149 .willReturn(aResponse().withHeader("Content-Type", "application/json")
150 .withBodyFile("OpenstackResponse_Stack_Failed_VfModule.json")
151 .withStatus(HttpStatus.SC_OK)));
153 MsoRequest msoRequest = getMsoRequest();
155 Map<String, Object> map = new HashMap<>();
156 map.put("key1", "value1");
157 instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "",
158 "VFMOD", "volumeGroupHeatStackId|1", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map,
159 Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(),
160 new Holder<Map<String, String>>(), new Holder<VnfRollback>());
164 public void createVnfTest_HeatStatusCreated() throws Exception {
165 expectedException.expect(VnfAlreadyExists.class);
166 mockOpenStackResponseAccess(wireMockServer, wireMockPort);
168 mockOpenStackGetStackVfModule_200(wireMockServer);
170 MsoRequest msoRequest = getMsoRequest();
172 Map<String, Object> map = new HashMap<>();
173 map.put("key1", "value1");
174 instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "",
175 "VFMOD", "volumeGroupHeatStackId|1", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map,
176 Boolean.TRUE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(),
177 new Holder<Map<String, String>>(), new Holder<VnfRollback>());
182 public void createVnfTest_ExceptionInGettingHeat() throws Exception {
183 expectedException.expect(VnfException.class);
184 MsoRequest msoRequest = getMsoRequest();
186 Map<String, Object> map = new HashMap<>();
187 map.put("key1", "value1");
188 instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "",
189 "VFMOD", "volumeGroupHeatStackId|1", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map,
190 Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(),
191 new Holder<Map<String, String>>(), new Holder<VnfRollback>());
195 public void createVnfTest_NestedHeatStatusNotFound() throws Exception {
196 expectedException.expect(VnfException.class);
197 mockOpenStackResponseAccess(wireMockServer, wireMockPort);
198 mockOpenStackGetStackVfModule_404(wireMockServer);
200 MsoRequest msoRequest = getMsoRequest();
202 Map<String, Object> map = new HashMap<>();
203 map.put("key1", "value1");
204 instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "",
205 "VFMOD", "volumeGroupHeatStackId", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map,
206 Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(),
207 new Holder<Map<String, String>>(), new Holder<VnfRollback>());
211 public void createVnfTest_ExceptionInGettingNestedHeat() throws Exception {
212 expectedException.expect(VnfException.class);
213 mockOpenStackResponseAccess(wireMockServer, wireMockPort);
214 mockOpenStackGetStackVfModule_404(wireMockServer);
215 wireMockServer.stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/volumeGroupHeatStackId"))
216 .willReturn(aResponse().withHeader("Content-Type", "application/json")
217 .withStatus(HttpStatus.SC_INTERNAL_SERVER_ERROR)));
219 MsoRequest msoRequest = getMsoRequest();
221 Map<String, Object> map = new HashMap<>();
222 map.put("key1", "value1");
223 instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "",
224 "VFMOD", "volumeGroupHeatStackId", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map,
225 Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(),
226 new Holder<Map<String, String>>(), new Holder<VnfRollback>());
230 public void createVnfTest_NestedBaseHeatStatus_NotFound() throws Exception {
231 expectedException.expect(VnfException.class);
232 mockOpenStackResponseAccess(wireMockServer, wireMockPort);
233 mockOpenStackGetStackVfModule_404(wireMockServer);
234 wireMockServer.stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/volumeGroupHeatStackId"))
235 .willReturn(aResponse().withHeader("Content-Type", "application/json")
236 .withBodyFile("OpenstackResponse_Stack_Created_VfModule.json").withStatus(HttpStatus.SC_OK)));
238 MsoRequest msoRequest = getMsoRequest();
240 Map<String, Object> map = new HashMap<>();
241 map.put("key1", "value1");
242 instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "",
243 "VFMOD", "volumeGroupHeatStackId", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map,
244 Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(),
245 new Holder<Map<String, String>>(), new Holder<VnfRollback>());
249 public void createVnfTest_ExceptionInGettingBaseNestedHeat() throws Exception {
250 expectedException.expect(VnfException.class);
251 mockOpenStackResponseAccess(wireMockServer, wireMockPort);
252 mockOpenStackGetStackVfModule_404(wireMockServer);
254 .stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/volumeGroupHeatStackId")).willReturn(aResponse()
255 .withBodyFile("OpenstackResponse_Stack_Created_VfModule.json").withStatus(HttpStatus.SC_OK)));
256 wireMockServer.stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/baseVfHeatStackId"))
257 .willReturn(aResponse().withStatus(HttpStatus.SC_INTERNAL_SERVER_ERROR)));
259 MsoRequest msoRequest = getMsoRequest();
261 Map<String, Object> map = new HashMap<>();
262 map.put("key1", "value1");
263 instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "",
264 "VFMOD", "volumeGroupHeatStackId", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map,
265 Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(),
266 new Holder<Map<String, String>>(), new Holder<VnfRollback>());
270 public void createVnfTest_ExceptionInCreateStack() throws Exception {
271 expectedException.expect(VnfException.class);
272 mockOpenStackResponseAccess(wireMockServer, wireMockPort);
273 mockOpenStackGetStackVfModule_404(wireMockServer);
275 .stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/volumeGroupHeatStackId")).willReturn(aResponse()
276 .withBodyFile("OpenstackResponse_Stack_Created_VfModule.json").withStatus(HttpStatus.SC_OK)));
277 wireMockServer.stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/baseVfHeatStackId")).willReturn(aResponse()
278 .withBodyFile("OpenstackResponse_Stack_Created_VfModule.json").withStatus(HttpStatus.SC_OK)));
280 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
281 VfModule vfModule = new VfModule();
282 vfModule.setIsBase(false);
284 HeatTemplate heatTemplate = new HeatTemplate();
285 heatTemplate.setTemplateBody("");
286 heatTemplate.setTimeoutMinutes(200);
287 vfModule.setModuleHeatTemplate(heatTemplate);
288 vfModuleCustomization.setVfModule(vfModule);
290 HeatEnvironment heatEnvironment = new HeatEnvironment();
291 heatEnvironment.setEnvironment("ist");
292 vfModuleCustomization.setHeatEnvironment(heatEnvironment);
294 MsoRequest msoRequest = getMsoRequest();
296 Map<String, Object> map = new HashMap<>();
297 map.put("key1", "value1");
298 instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "",
299 "VFMOD", "volumeGroupHeatStackId", "baseVfHeatStackId", "9b339a61-69ca-465f-86b8-1c72c582b8e8", map,
300 Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(),
301 new Holder<Map<String, String>>(), new Holder<VnfRollback>());
305 public void createVnfTest_ModelCustUuidIsNull() throws Exception {
306 expectedException.expect(VnfException.class);
307 mockOpenStackResponseAccess(wireMockServer, wireMockPort);
308 mockOpenStackGetStackVfModule_404(wireMockServer);
310 .stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/volumeGroupHeatStackId")).willReturn(aResponse()
311 .withBodyFile("OpenstackResponse_Stack_Created_VfModule.json").withStatus(HttpStatus.SC_OK)));
312 wireMockServer.stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/baseVfHeatStackId")).willReturn(aResponse()
313 .withBodyFile("OpenstackResponse_Stack_Created_VfModule.json").withStatus(HttpStatus.SC_OK)));
315 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
316 VfModule vfModule = new VfModule();
317 vfModule.setIsBase(false);
319 HeatTemplate heatTemplate = new HeatTemplate();
320 heatTemplate.setTemplateBody("");
321 heatTemplate.setTimeoutMinutes(200);
322 vfModule.setModuleHeatTemplate(heatTemplate);
323 vfModuleCustomization.setVfModule(vfModule);
325 HeatEnvironment heatEnvironment = new HeatEnvironment();
326 heatEnvironment.setEnvironment("ist");
327 vfModuleCustomization.setHeatEnvironment(heatEnvironment);
329 VnfResource vnfResource = new VnfResource();
330 vnfResource.setAicVersionMin("1");
331 vnfResource.setAicVersionMin("3");
334 MsoRequest msoRequest = getMsoRequest();
336 Map<String, Object> map = new HashMap<>();
337 map.put("key1", "value1");
338 instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "",
339 "XVFMOD", "volumeGroupHeatStackId", "baseVfHeatStackId", null, map, Boolean.FALSE, Boolean.TRUE,
340 Boolean.FALSE, msoRequest, new Holder<>(), new Holder<Map<String, String>>(),
341 new Holder<VnfRollback>());
345 public void createVnfTest_HeatEnvironment_ContainsParameters() throws Exception {
346 expectedException.expect(VnfException.class);
347 mockOpenStackResponseAccess(wireMockServer, wireMockPort);
348 mockOpenStackGetStackVfModule_404(wireMockServer);
350 .stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/volumeGroupHeatStackId")).willReturn(aResponse()
351 .withBodyFile("OpenstackResponse_Stack_Created_VfModule.json").withStatus(HttpStatus.SC_OK)));
352 wireMockServer.stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/baseVfHeatStackId")).willReturn(aResponse()
353 .withBodyFile("OpenstackResponse_Stack_Created_VfModule.json").withStatus(HttpStatus.SC_OK)));
355 MsoRequest msoRequest = getMsoRequest();
357 Map<String, Object> map = new HashMap<>();
358 map.put("key1", "value1");
359 instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "",
360 "VFMOD", "volumeGroupHeatStackId", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map,
361 Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(),
362 new Holder<Map<String, String>>(), new Holder<VnfRollback>());
365 private MsoRequest getMsoRequest() {
366 MsoRequest msoRequest = new MsoRequest();
367 msoRequest.setRequestId("12345");
368 msoRequest.setServiceInstanceId("12345");
373 public void updateVnfTest_CloudSiteIdNotFound() throws Exception {
374 expectedException.expect(VnfException.class);
375 MsoRequest msoRequest = getMsoRequest();
377 Map<String, Object> map = new HashMap<>();
378 map.put("key1", "value1");
379 instance.updateVfModule("mdt1", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "vSAMP12",
380 "VFMOD", "volumeGroupHeatStackId|1", "baseVfHeatStackId", "vfModuleStackId",
381 "88a6ca3ee0394ade9403f075db23167e", map, msoRequest, new Holder<Map<String, String>>(),
382 new Holder<VnfRollback>());
386 public void updateVnfTest_HeatStackNotFound() throws Exception {
387 expectedException.expect(VnfNotFound.class);
388 MsoRequest msoRequest = getMsoRequest();
389 mockOpenStackResponseAccess(wireMockServer, wireMockPort);
390 Map<String, Object> map = new HashMap<>();
391 map.put("key1", "value1");
392 instance.updateVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", vnfName, "VFMOD",
393 "volumeGroupHeatStackId", "baseVfHeatStackId", "vfModuleStackId", "88a6ca3ee0394ade9403f075db23167e",
394 map, msoRequest, new Holder<Map<String, String>>(), new Holder<VnfRollback>());
398 public void updateVnfTest_ExceptionInGettingNestedHeatStack() throws Exception {
399 expectedException.expect(VnfException.class);
400 MsoRequest msoRequest = getMsoRequest();
401 mockOpenStackResponseAccess(wireMockServer, wireMockPort);
402 mockOpenStackGetStackVfModule_200(wireMockServer);
403 wireMockServer.stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/volumeGroupHeatStackId"))
404 .willReturn(aResponse().withHeader("Content-Type", "application/json")
405 .withStatus(HttpStatus.SC_INTERNAL_SERVER_ERROR)));
406 Map<String, Object> map = new HashMap<>();
407 map.put("key1", "value1");
408 instance.updateVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", vnfName, "VFMOD",
409 "volumeGroupHeatStackId", "baseVfHeatStackId", "vfModuleStackId", "88a6ca3ee0394ade9403f075db23167e",
410 map, msoRequest, new Holder<Map<String, String>>(), new Holder<VnfRollback>());
414 public void updateVnfTest_NestedHeatStackNotFound() throws Exception {
415 expectedException.expect(VnfException.class);
416 MsoRequest msoRequest = getMsoRequest();
417 mockOpenStackResponseAccess(wireMockServer, wireMockPort);
418 mockOpenStackGetStackVfModule_200(wireMockServer);
419 wireMockServer.stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/volumeGroupHeatStackId")).willReturn(
420 aResponse().withHeader("Content-Type", "application/json").withStatus(HttpStatus.SC_NOT_FOUND)));
421 Map<String, Object> map = new HashMap<>();
422 map.put("key1", "value1");
423 instance.updateVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", vnfName, "VFMOD",
424 "volumeGroupHeatStackId", "baseVfHeatStackId", "vfModuleStackId", "88a6ca3ee0394ade9403f075db23167e",
425 map, msoRequest, new Holder<Map<String, String>>(), new Holder<VnfRollback>());
429 public void updateVnfTest_ExceptionInGettingNestedBaseHeatStack() throws Exception {
430 expectedException.expect(VnfException.class);
431 MsoRequest msoRequest = getMsoRequest();
432 mockOpenStackResponseAccess(wireMockServer, wireMockPort);
433 mockOpenStackGetStackVfModule_200(wireMockServer);
434 mockOpenstackGetWithResponse(wireMockServer, "/mockPublicUrl/stacks/volumeGroupHeatStackId", HttpStatus.SC_OK,
435 "OpenstackResponse_Stack_Created_VfModule.json");
436 mockOpenstackGetWithResponse(wireMockServer, "/mockPublicUrl/stacks/baseVfHeatStackId",
437 HttpStatus.SC_INTERNAL_SERVER_ERROR, "OpenstackResponse_Stack_Created_VfModule.json");
438 Map<String, Object> map = new HashMap<>();
439 map.put("key1", "value1");
440 instance.updateVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", vnfName, "VFMOD",
441 "volumeGroupHeatStackId", "baseVfHeatStackId", "vfModuleStackId", "88a6ca3ee0394ade9403f075db23167e",
442 map, msoRequest, new Holder<Map<String, String>>(), new Holder<VnfRollback>());
446 public void updateVnfTest_NestedBaseHeatStackNotFound() throws Exception {
447 expectedException.expect(VnfException.class);
448 MsoRequest msoRequest = getMsoRequest();
449 mockOpenStackResponseAccess(wireMockServer, wireMockPort);
450 mockOpenStackGetStackVfModule_200(wireMockServer);
451 mockOpenstackGetWithResponse(wireMockServer, "/mockPublicUrl/stacks/volumeGroupHeatStackId", HttpStatus.SC_OK,
452 "OpenstackResponse_Stack_Created_VfModule.json");
453 mockOpenstackGetWithResponse(wireMockServer, "/mockPublicUrl/stacks/baseVfHeatStackId", HttpStatus.SC_NOT_FOUND,
454 "OpenstackResponse_Stack_Created_VfModule.json");
455 Map<String, Object> map = new HashMap<>();
456 map.put("key1", "value1");
457 instance.updateVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", vnfName, "VFMOD",
458 "volumeGroupHeatStackId", "baseVfHeatStackId", "vfModuleStackId", "88a6ca3ee0394ade9403f075db23167e",
459 map, msoRequest, new Holder<Map<String, String>>(), new Holder<VnfRollback>());
463 public void updateVnfTest_MissingParams() throws Exception {
464 expectedException.expect(VnfException.class);
465 MsoRequest msoRequest = getMsoRequest();
466 mockOpenStackResponseAccess(wireMockServer, wireMockPort);
467 mockOpenStackGetStackVfModule_200(wireMockServer);
468 mockOpenstackGetWithResponse(wireMockServer, "/mockPublicUrl/stacks/volumeGroupHeatStackId", HttpStatus.SC_OK,
469 "OpenstackResponse_Stack_Created_VfModule.json");
470 mockOpenstackGetWithResponse(wireMockServer, "/mockPublicUrl/stacks/baseVfHeatStackId", HttpStatus.SC_OK,
471 "OpenstackResponse_Stack_Created_VfModule.json");
472 Map<String, Object> map = new HashMap<>();
473 map.put("key1", "value1");
474 instance.updateVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", vnfName, "VFMOD",
475 "volumeGroupHeatStackId", "baseVfHeatStackId", "vfModuleStackId", "88a6ca3ee0394ade9403f075db23167e",
476 map, msoRequest, new Holder<Map<String, String>>(), new Holder<VnfRollback>());
480 public void updateVnfTest_UpdateStackException() throws Exception {
481 expectedException.expect(VnfException.class);
482 MsoRequest msoRequest = getMsoRequest();
483 mockOpenStackResponseAccess(wireMockServer, wireMockPort);
484 mockOpenStackGetStackVfModule_200(wireMockServer);
485 mockOpenstackGetWithResponse(wireMockServer, "/mockPublicUrl/stacks/volumeGroupHeatStackId", HttpStatus.SC_OK,
486 "OpenstackResponse_Stack_Created_VfModule.json");
487 mockOpenstackGetWithResponse(wireMockServer, "/mockPublicUrl/stacks/baseVfHeatStackId", HttpStatus.SC_OK,
488 "OpenstackResponse_Stack_Created_VfModule.json");
490 VfModuleCustomization vfModuleCustomization = getVfModuleCustomization();
491 vfModuleCustomization.getVfModule().getModuleHeatTemplate().setParameters(new HashSet<>());
492 Map<String, Object> map = new HashMap<>();
493 map.put("key1", "value1");
494 instance.updateVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", vnfName, "VFMOD",
495 "volumeGroupHeatStackId", "baseVfHeatStackId", "vfModuleStackId", "88a6ca3ee0394ade9403f075db23167e",
496 map, msoRequest, new Holder<Map<String, String>>(), new Holder<VnfRollback>());
500 public void updateVnfTest() throws Exception {
501 MsoRequest msoRequest = getMsoRequest();
502 mockOpenStackResponseAccess(wireMockServer, wireMockPort);
503 mockOpenstackGetWithResponse(wireMockServer, "/mockPublicUrl/stacks/" + vnfName, HttpStatus.SC_OK,
504 "OpenstackResponse_Stack_UpdateComplete.json");
505 mockOpenstackGetWithResponse(wireMockServer, "/mockPublicUrl/stacks/volumeGroupHeatStackId", HttpStatus.SC_OK,
506 "OpenstackResponse_Stack_Created_VfModule.json");
507 mockOpenstackGetWithResponse(wireMockServer, "/mockPublicUrl/stacks/baseVfHeatStackId", HttpStatus.SC_OK,
508 "OpenstackResponse_Stack_Created_VfModule.json");
509 mockOpenStackPutStack(wireMockServer, "null/stackId", HttpStatus.SC_OK);
510 mockOpenstackGetWithResponse(wireMockServer, "/mockPublicUrl/stacks/null/stackId", HttpStatus.SC_OK,
511 "OpenstackResponse_Stack_UpdateComplete.json");
513 VfModuleCustomization vfModuleCustomization = getVfModuleCustomization();
514 vfModuleCustomization.getVfModule().getModuleHeatTemplate().setParameters(new HashSet<>());
515 Map<String, Object> map = new HashMap<>();
516 map.put("key1", "value1");
517 instance.updateVfModule("MTN13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", vnfName, "VFMOD",
518 "volumeGroupHeatStackId", "baseVfHeatStackId", "vfModuleStackId",
519 "b4ea86b4-253f-11e7-93ae-92361f002671", map, msoRequest, new Holder<Map<String, String>>(),
520 new Holder<VnfRollback>());
525 public void deleteVnfTest() throws MsoException {
527 Map<String, Object> outputs = new HashMap<>();
528 outputs.put("Key1", "value1");
529 when(heatUtils.queryStackForOutputs("mdt1", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vSAMP12"))
530 .thenReturn(outputs);
532 MsoVnfAdapterImpl instance = new MsoVnfAdapterImpl();
533 MsoRequest msoRequest = getMsoRequest();
535 instance.deleteVfModule("mdt1", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vSAMP12", msoRequest,
536 new Holder<Map<String, String>>());
537 } catch (Exception e) {
542 private VfModuleCustomization getVfModuleCustomization() {
543 VfModuleCustomization vfModuleCustomization = new VfModuleCustomization();
544 VfModule vfModule = new VfModule();
545 vfModule.setIsBase(false);
547 HeatTemplate heatTemplate = new HeatTemplate();
548 heatTemplate.setTemplateBody("");
549 heatTemplate.setTimeoutMinutes(200);
550 HeatTemplateParam heatTemplateParam = new HeatTemplateParam();
551 heatTemplateParam.setParamAlias("ParamAlias");
552 heatTemplateParam.setRequired(true);
553 heatTemplateParam.setParamName("test");
554 Set set = new HashSet();
555 set.add(heatTemplateParam);
556 heatTemplate.setParameters(set);
557 vfModule.setModuleHeatTemplate(heatTemplate);
558 vfModuleCustomization.setVfModule(vfModule);
560 HeatEnvironment heatEnvironment = new HeatEnvironment();
561 heatEnvironment.setEnvironment("parameters:ist");
562 vfModuleCustomization.setHeatEnvironment(heatEnvironment);
563 return vfModuleCustomization;