adcbbb4d72fd830c1da670a3b38fbd0376524894
[so.git] /
1 /*-\r
2  * ============LICENSE_START=======================================================\r
3  * ONAP - SO\r
4  * ================================================================================\r
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.\r
6  * ================================================================================\r
7  * Licensed under the Apache License, Version 2.0 (the "License");\r
8  * you may not use this file except in compliance with the License.\r
9  * You may obtain a copy of the License at\r
10  *\r
11  *      http://www.apache.org/licenses/LICENSE-2.0\r
12  *\r
13  * Unless required by applicable law or agreed to in writing, software\r
14  * distributed under the License is distributed on an "AS IS" BASIS,\r
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
16  * See the License for the specific language governing permissions and\r
17  * limitations under the License.\r
18  * ============LICENSE_END=========================================================\r
19  */\r
20 \r
21 package org.openecomp.mso.bpmn.infrastructure;\r
22 \r
23 import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;\r
24 import static com.github.tomakehurst.wiremock.client.WireMock.containing;\r
25 import static com.github.tomakehurst.wiremock.client.WireMock.post;\r
26 import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;\r
27 import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;\r
28 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDeleteGenericVnf;\r
29 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDeleteVfModuleId;\r
30 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfById;\r
31 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithDepth;\r
32 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByName;\r
33 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchGenericVnf;\r
34 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchVfModuleId;\r
35 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutVfModuleId;\r
36 import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;\r
37 import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;\r
38 import static org.openecomp.mso.bpmn.mock.StubResponseVNFAdapter.mockVNFDelete;\r
39 import static org.openecomp.mso.bpmn.mock.StubResponseVNFAdapter.mockVfModuleDelete;\r
40 \r
41 import java.io.IOException;\r
42 import java.util.HashMap;\r
43 import java.util.Map;\r
44 import java.util.UUID;\r
45 \r
46 import org.camunda.bpm.engine.test.Deployment;\r
47 import org.junit.Ignore;\r
48 import org.junit.Test;\r
49 import org.openecomp.mso.bpmn.common.WorkflowTest;\r
50 import org.openecomp.mso.bpmn.core.RollbackData;\r
51 import org.openecomp.mso.bpmn.core.WorkflowException;\r
52 import org.openecomp.mso.bpmn.mock.FileUtil;\r
53 \r
54 /**\r
55  * Unit test for DoCreateVnfAndModulesRollback.bpmn.\r
56  */\r
57 public class DoCreateVnfAndModulesRollbackTest extends WorkflowTest {\r
58     private final CallbackSet callbacks = new CallbackSet();\r
59 \r
60     private static final String EOL = "\n";\r
61 \r
62 \r
63     private final String vnfAdapterDeleteCallback =\r
64             "<deleteVfModuleResponse>" + EOL +\r
65                     "    <vnfId>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnfId>" + EOL +\r
66                     "    <vfModuleId>973ed047-d251-4fb9-bf1a-65b8949e0a73</vfModuleId>" + EOL +\r
67                     "    <vfModuleDeleted>true</vfModuleDeleted>" + EOL +\r
68                     "    <messageId>{{MESSAGE-ID}}</messageId>" + EOL +\r
69                     "</deleteVfModuleResponse>" + EOL;\r
70 \r
71     private final String vnfAdapterDeleteCallbackFail =\r
72             "<vfModuleException>" + EOL +\r
73                     "    <message>Error processing request to VNF-Async. Not Found.</message>" + EOL +\r
74                     "    <category>INTERNAL</category>" + EOL +\r
75                     "    <rolledBack>false</rolledBack>" + EOL +\r
76                     "    <messageId>{{MESSAGE-ID}}</messageId>" + EOL +\r
77                     "</vfModuleException>" + EOL;\r
78 \r
79     private final String sdncAdapterDeleteCallback =\r
80             "<output xmlns=\"com:att:sdnctl:l3api\">" + EOL +\r
81                     "  <svc-request-id>{{REQUEST-ID}}</svc-request-id>" + EOL +\r
82                     "  <ack-final-indicator>Y</ack-final-indicator>" + EOL +\r
83                     "</output>" + EOL;\r
84 \r
85     public DoCreateVnfAndModulesRollbackTest() throws IOException {\r
86         callbacks.put("sdncChangeDelete", sdncAdapterDeleteCallback);\r
87         callbacks.put("sdncDelete", sdncAdapterDeleteCallback);\r
88         callbacks.put("vnfDelete", vnfAdapterDeleteCallback);\r
89         callbacks.put("vnfDeleteFail", vnfAdapterDeleteCallbackFail);\r
90         callbacks.put("deactivate", FileUtil.readResourceFile(\r
91                 "__files/VfModularity/SDNCTopologyActivateCallback.xml"));\r
92         callbacks.put("unassign", FileUtil.readResourceFile(\r
93                 "__files/VfModularity/SDNCTopologyActivateCallback.xml"));\r
94     }\r
95 \r
96     @Test\r
97     @Ignore\r
98     @Deployment(resources = {\r
99             "subprocess/DoCreateVnfAndModulesRollback.bpmn",\r
100             "subprocess/DoCreateVfModuleRollback.bpmn",\r
101             "subprocess/PrepareUpdateAAIVfModule.bpmn",\r
102             "subprocess/UpdateAAIVfModule.bpmn",\r
103             "subprocess/UpdateAAIGenericVnf.bpmn",\r
104             "subprocess/DeleteAAIVfModule.bpmn",\r
105             "subprocess/SDNCAdapterV1.bpmn",\r
106             "subprocess/VnfAdapterRestV1.bpmn",\r
107             "subprocess/GenericGetVnf.bpmn",\r
108             "subprocess/GenericDeleteVnf.bpmn",\r
109             "subprocess/DoDeleteVnf.bpmn"\r
110     })\r
111     public void TestDoCreateVnfAndModulesRollbackSuccess_BaseOnly() {\r
112         // delete the Base Module and Generic Vnf\r
113         // vnf-id=a27ce5a9-29c4-4c22-a017-6615ac73c721, vf-module-id=973ed047-d251-4fb9-bf1a-65b8949e0a73\r
114         String request =\r
115                 "<vnf-request xmlns=\"http://org.openecomp/mso/infra/vnf-request/v1\">" + EOL +\r
116                         "  <request-info>" + EOL +\r
117                         "    <action>DELETE_VF_MODULE</action>" + EOL +\r
118                         "    <source>PORTAL</source>" + EOL +\r
119                         "  </request-info>" + EOL +\r
120                         "  <vnf-inputs>" + EOL +\r
121                         "    <vnf-id>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnf-id>" + EOL +\r
122                         "    <vnf-name>STMTN5MMSC21</vnf-name>" + EOL +\r
123                         "    <vnf-type>asc_heat-int</vnf-type>" + EOL +\r
124                         "    <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a73</vf-module-id>" + EOL +\r
125                         "    <vf-module-name>STMTN5MMSC21-MMSC::module-0-0</vf-module-name>" + EOL +\r
126                         "    <service-id>00000000-0000-0000-0000-000000000000</service-id>" + EOL +\r
127                         "    <service-type>SDN-ETHERNET-INTERNET</service-type>" + EOL +\r
128                         "    <tenant-id>fba1bd1e195a404cacb9ce17a9b2b421</tenant-id>" + EOL +\r
129                         "    <orchestration-status>pending-delete</orchestration-status>" + EOL +\r
130                         "    <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>" + EOL +\r
131                         "  </vnf-inputs>" + EOL +\r
132                         "  <vnf-params xmlns:tns=\"http://org.openecomp/mso/infra/vnf-request/v1\"/>" + EOL +\r
133                         "</vnf-request>" + EOL;\r
134         logStart();\r
135         mockSDNCAdapter("/SDNCAdapter", "SvcAction>changedelete", 200, "DeleteGenericVNFV1/sdncAdapterResponse.xml");\r
136         mockSDNCAdapter("/SDNCAdapter", "SvcAction>delete", 200, "DeleteGenericVNFV1/sdncAdapterResponse.xml");\r
137         mockVNFDelete(".*", "/.*", 202);\r
138         mockVfModuleDelete("78987");\r
139         MockPatchVfModuleId("a27ce5a9-29c4-4c22-a017-6615ac73c721", "973ed047-d251-4fb9-bf1a-65b8949e0a73");\r
140         MockPatchGenericVnf("a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
141         MockGetGenericVnfByName("STMTN5MMSC21", "DoCreateVfModule_getVnfResponse.xml");\r
142         MockGetGenericVnfById("/a27ce5a9-29c4-4c22-a017-6615ac73c721.*", "DoCreateVfModule_getVnfResponse.xml", 200);\r
143         MockPutVfModuleId("a27ce5a9-29c4-4c22-a017-6615ac73c721", "973ed047-d251-4fb9-bf1a-65b8949e0a73");\r
144         MockDeleteGenericVnf("a27ce5a9-29c4-4c22-a017-6615ac73c721", "0000021");\r
145         MockDeleteVfModuleId("a27ce5a9-29c4-4c22-a017-6615ac73c721", "973ed047-d251-4fb9-bf1a-65b8949e0a73", "0000073", 200);\r
146         String businessKey = UUID.randomUUID().toString();\r
147         Map<String, Object> variables = new HashMap<>();\r
148         RollbackData rollbackData = new RollbackData();\r
149 \r
150         rollbackData.put("VFMODULE_BASE", "source", "PORTAL");\r
151         rollbackData.put("VFMODULE_BASE", "vnfid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
152         rollbackData.put("VFMODULE_BASE", "vnfname", "STMTN5MMSC21");\r
153         rollbackData.put("VFMODULE_BASE", "vnftype", "asc_heat-int");\r
154         rollbackData.put("VFMODULE_BASE", "vfmoduleid", "973ed047-d251-4fb9-bf1a-65b8949e0a73");\r
155         rollbackData.put("VFMODULE_BASE", "vfmodulename", "STMTN5MMSC21-MMSC::module-0-0");\r
156         rollbackData.put("VFMODULE_BASE", "tenantid", "fba1bd1e195a404cacb9ce17a9b2b421");\r
157         rollbackData.put("VFMODULE_BASE", "aiccloudregion", "RDM2WAGPLCP");\r
158         rollbackData.put("VFMODULE_BASE", "heatstackid", "thisisaheatstack");\r
159         rollbackData.put("VFMODULE_BASE", "contrailNetworkPolicyFqdn0", "MSOTest:DefaultPolicyFQDN1");\r
160         rollbackData.put("VFMODULE_BASE", "contrailNetworkPolicyFqdn1", "MSOTest:DefaultPolicyFQDN2");\r
161         rollbackData.put("VFMODULE_BASE", "oamManagementV6Address", "2000:abc:bce:1111");\r
162         rollbackData.put("VFMODULE_BASE", "oamManagementV4Address", "127.0.0.1");\r
163 \r
164         rollbackData.put("VFMODULE_BASE", "rollbackPrepareUpdateVfModule", "true");\r
165         rollbackData.put("VFMODULE_BASE", "rollbackVnfAdapterCreate", "true");\r
166         rollbackData.put("VFMODULE_BASE", "rollbackUpdateAAIVfModule", "true");\r
167         rollbackData.put("VFMODULE_BASE", "rollbackSDNCRequestActivate", "true");\r
168         rollbackData.put("VFMODULE_BASE", "rollbackCreateAAIVfModule", "true");\r
169         rollbackData.put("VFMODULE_BASE", "rollbackCreateNetworkPoliciesAAI", "true");\r
170         rollbackData.put("VFMODULE_BASE", "rollbackUpdateVnfAAI", "true");\r
171 \r
172         rollbackData.put("VNF", "vnfId", "testVnfId123");\r
173 \r
174         rollbackData.put("VNFANDMODULES", "numOfCreatedAddOnModules", "0");\r
175 \r
176         variables.put("isDebugLogEnabled", "true");\r
177         variables.put("mso-request-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
178         variables.put("mso-service-instance-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
179         rollbackData.put("VFMODULE_BASE", "msorequestid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
180         rollbackData.put("VFMODULE_BASE", "serviceinstanceid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
181 \r
182         variables.put("rollbackData", rollbackData);\r
183         invokeSubProcess("DoCreateVnfAndModulesRollback", businessKey, variables);\r
184 \r
185         // "changedelete" operation not required for deleting a Vf Module\r
186 //              injectSDNCCallbacks(callbacks, "sdncChangeDelete");\r
187         injectVNFRestCallbacks(callbacks, "vnfDelete");\r
188         //waitForRunningProcessCount("DoCreateVnfAndModulesRollback", 0, 120000);\r
189         injectSDNCCallbacks(callbacks, "sdncDelete");\r
190 \r
191         waitForProcessEnd(businessKey, 10000);\r
192         WorkflowException wfe = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");\r
193         checkVariable(businessKey, "WorkflowException", null);\r
194         if (wfe != null) {\r
195             System.out.println("TestCreateVfModuleSuccess: ErrorCode=" + wfe.getErrorCode() +\r
196                     ", ErrorMessage=" + wfe.getErrorMessage());\r
197         }\r
198         logEnd();\r
199     }\r
200 \r
201     @Test\r
202     @Deployment(resources = {\r
203             "subprocess/DoCreateVnfAndModulesRollback.bpmn",\r
204             "subprocess/PrepareUpdateAAIVfModule.bpmn",\r
205             "subprocess/UpdateAAIVfModule.bpmn",\r
206             "subprocess/UpdateAAIGenericVnf.bpmn",\r
207             "subprocess/DeleteAAIVfModule.bpmn",\r
208             "subprocess/SDNCAdapterV1.bpmn",\r
209             "subprocess/GenericGetVnf.bpmn",\r
210             "subprocess/GenericDeleteVnf.bpmn",\r
211             "subprocess/DoDeleteVnf.bpmn"\r
212     })\r
213     public void TestDoCreateVnfAndModulesRollbackSuccess_vnfOnly() {\r
214         // delete the Base Module and Generic Vnf\r
215         // vnf-id=a27ce5a9-29c4-4c22-a017-6615ac73c721, vf-module-id=973ed047-d251-4fb9-bf1a-65b8949e0a73\r
216         String request =\r
217                 "<vnf-request xmlns=\"http://org.openecomp/mso/infra/vnf-request/v1\">" + EOL +\r
218                         "  <request-info>" + EOL +\r
219                         "    <action>DELETE_VF_MODULE</action>" + EOL +\r
220                         "    <source>PORTAL</source>" + EOL +\r
221                         "  </request-info>" + EOL +\r
222                         "  <vnf-inputs>" + EOL +\r
223                         "    <vnf-id>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnf-id>" + EOL +\r
224                         "    <vnf-name>STMTN5MMSC21</vnf-name>" + EOL +\r
225                         "    <vnf-type>asc_heat-int</vnf-type>" + EOL +\r
226                         "    <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a73</vf-module-id>" + EOL +\r
227                         "    <vf-module-name>STMTN5MMSC21-MMSC::module-0-0</vf-module-name>" + EOL +\r
228                         "    <service-id>00000000-0000-0000-0000-000000000000</service-id>" + EOL +\r
229                         "    <service-type>SDN-ETHERNET-INTERNET</service-type>" + EOL +\r
230                         "    <tenant-id>fba1bd1e195a404cacb9ce17a9b2b421</tenant-id>" + EOL +\r
231                         "    <orchestration-status>pending-delete</orchestration-status>" + EOL +\r
232                         "    <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>" + EOL +\r
233                         "  </vnf-inputs>" + EOL +\r
234                         "  <vnf-params xmlns:tns=\"http://org.openecomp/mso/infra/vnf-request/v1\"/>" + EOL +\r
235                         "</vnf-request>" + EOL;\r
236         logStart();\r
237         MockGetGenericVnfById("testVnfId123.*", "GenericFlows/getGenericVnfByNameResponse.xml");\r
238         MockDeleteGenericVnf("testVnfId123", "testReVer123");\r
239         MockDoDeleteVfModule_SDNCSuccess();\r
240         mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");\r
241         String businessKey = UUID.randomUUID().toString();\r
242         Map<String, Object> variables = new HashMap<>();\r
243         RollbackData rollbackData = new RollbackData();\r
244 \r
245         rollbackData.put("VNF", "vnfId", "testVnfId123");\r
246         rollbackData.put("VNF", "rollbackVnfCreate", "true");\r
247         rollbackData.put("VNF", "rollbackSDNCAssign", "true");\r
248         rollbackData.put("VNF", "rollbackSDNCActivate", "true");\r
249         rollbackData.put("VNFANDMODULES", "numOfCreatedAddOnModules", "0");\r
250 \r
251 \r
252         variables.put("isDebugLogEnabled", "true");\r
253         variables.put("mso-request-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
254         variables.put("mso-service-instance-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
255 \r
256 \r
257         variables.put("rollbackData", rollbackData);\r
258         variables.put("sdncVersion", "1707");\r
259         invokeSubProcess("DoCreateVnfAndModulesRollback", businessKey, variables);\r
260 \r
261         // "changedelete" operation not required for deleting a Vf Module\r
262 //              injectSDNCCallbacks(callbacks, "sdncChangeDelete");\r
263 \r
264         //waitForRunningProcessCount("DoCreateVnfAndModulesRollback", 0, 120000);\r
265         //      injectSDNCCallbacks(callbacks, "sdncDelete");\r
266 \r
267         waitForProcessEnd(businessKey, 10000);\r
268         WorkflowException wfe = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");\r
269         checkVariable(businessKey, "WorkflowException", null);\r
270         if (wfe != null) {\r
271             System.out.println("TestCreateVfModuleSuccess: ErrorCode=" + wfe.getErrorCode() +\r
272                     ", ErrorMessage=" + wfe.getErrorMessage());\r
273         }\r
274         logEnd();\r
275     }\r
276 \r
277     @Test\r
278     @Ignore\r
279     @Deployment(resources = {\r
280             "subprocess/DoCreateVnfAndModulesRollback.bpmn",\r
281             "subprocess/DoCreateVfModuleRollback.bpmn",\r
282             "subprocess/PrepareUpdateAAIVfModule.bpmn",\r
283             "subprocess/UpdateAAIVfModule.bpmn",\r
284             "subprocess/UpdateAAIGenericVnf.bpmn",\r
285             "subprocess/DeleteAAIVfModule.bpmn",\r
286             "subprocess/SDNCAdapterV1.bpmn",\r
287             "subprocess/VnfAdapterRestV1.bpmn",\r
288             "subprocess/GenericGetVnf.bpmn",\r
289             "subprocess/GenericDeleteVnf.bpmn",\r
290             "subprocess/DoDeleteVnf.bpmn"\r
291     })\r
292     public void TestDoCreateVnfAndModulesRollbackSuccess_AddOn() {\r
293         // delete the Base Module and Generic Vnf\r
294         // vnf-id=a27ce5a9-29c4-4c22-a017-6615ac73c721, vf-module-id=973ed047-d251-4fb9-bf1a-65b8949e0a73\r
295         String request =\r
296                 "<vnf-request xmlns=\"http://org.openecomp/mso/infra/vnf-request/v1\">" + EOL +\r
297                         "  <request-info>" + EOL +\r
298                         "    <action>DELETE_VF_MODULE</action>" + EOL +\r
299                         "    <source>PORTAL</source>" + EOL +\r
300                         "  </request-info>" + EOL +\r
301                         "  <vnf-inputs>" + EOL +\r
302                         "    <vnf-id>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnf-id>" + EOL +\r
303                         "    <vnf-name>STMTN5MMSC21</vnf-name>" + EOL +\r
304                         "    <vnf-type>asc_heat-int</vnf-type>" + EOL +\r
305                         "    <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a73</vf-module-id>" + EOL +\r
306                         "    <vf-module-name>STMTN5MMSC21-MMSC::module-0-0</vf-module-name>" + EOL +\r
307                         "    <service-id>00000000-0000-0000-0000-000000000000</service-id>" + EOL +\r
308                         "    <service-type>SDN-ETHERNET-INTERNET</service-type>" + EOL +\r
309                         "    <tenant-id>fba1bd1e195a404cacb9ce17a9b2b421</tenant-id>" + EOL +\r
310                         "    <orchestration-status>pending-delete</orchestration-status>" + EOL +\r
311                         "    <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>" + EOL +\r
312                         "  </vnf-inputs>" + EOL +\r
313                         "  <vnf-params xmlns:tns=\"http://org.openecomp/mso/infra/vnf-request/v1\"/>" + EOL +\r
314                         "</vnf-request>" + EOL;\r
315         logStart();\r
316         mockSDNCAdapter("/SDNCAdapter", "SvcAction>changedelete", 200, "DeleteGenericVNFV1/sdncAdapterResponse.xml");\r
317         mockSDNCAdapter("/SDNCAdapter", "SvcAction>delete", 200, "DeleteGenericVNFV1/sdncAdapterResponse.xml");\r
318         mockVNFDelete(".*", "/.*", 202);\r
319         mockVfModuleDelete("78987");\r
320         MockGetGenericVnfByName("STMTN5MMSC21", "DoCreateVfModule_getVnfResponse.xml");\r
321         MockGetGenericVnfById("/a27ce5a9-29c4-4c22-a017-6615ac73c721", "DoCreateVfModule_getVnfResponse.xml", 200);\r
322         MockGetGenericVnfByIdWithDepth("a27ce5a9-29c4-4c22-a017-6615ac73c721", 1, "DoCreateVfModuleRollback/GenericVnf.xml");\r
323         MockPatchVfModuleId("a27ce5a9-29c4-4c22-a017-6615ac73c721", "973ed047-d251-4fb9-bf1a-65b8949e0a73");\r
324         MockPatchGenericVnf("a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
325         MockPutVfModuleId("a27ce5a9-29c4-4c22-a017-6615ac73c721", "973ed047-d251-4fb9-bf1a-65b8949e0a73");\r
326         MockDeleteGenericVnf("a27ce5a9-29c4-4c22-a017-6615ac73c721", "0000021");\r
327         MockDeleteVfModuleId("", "", "", 200);\r
328         String businessKey = UUID.randomUUID().toString();\r
329         Map<String, Object> variables = new HashMap<>();\r
330         RollbackData rollbackData = new RollbackData();\r
331 \r
332         rollbackData.put("VFMODULE_BASE", "source", "PORTAL");\r
333         rollbackData.put("VFMODULE_BASE", "vnfid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
334         rollbackData.put("VFMODULE_BASE", "vnfname", "STMTN5MMSC21");\r
335         rollbackData.put("VFMODULE_BASE", "vnftype", "asc_heat-int");\r
336         rollbackData.put("VFMODULE_BASE", "vfmoduleid", "973ed047-d251-4fb9-bf1a-65b8949e0a73");\r
337         rollbackData.put("VFMODULE_BASE", "vfmodulename", "STMTN5MMSC21-MMSC::module-0-0");\r
338         rollbackData.put("VFMODULE_BASE", "tenantid", "fba1bd1e195a404cacb9ce17a9b2b421");\r
339         rollbackData.put("VFMODULE_BASE", "aiccloudregion", "RDM2WAGPLCP");\r
340         rollbackData.put("VFMODULE_BASE", "heatstackid", "thisisaheatstack");\r
341         rollbackData.put("VFMODULE_BASE", "contrailNetworkPolicyFqdn0", "MSOTest:DefaultPolicyFQDN1");\r
342         rollbackData.put("VFMODULE_BASE", "contrailNetworkPolicyFqdn1", "MSOTest:DefaultPolicyFQDN2");\r
343         rollbackData.put("VFMODULE_BASE", "oamManagementV6Address", "2000:abc:bce:1111");\r
344         rollbackData.put("VFMODULE_BASE", "oamManagementV4Address", "127.0.0.1");\r
345         rollbackData.put("VFMODULE_BASE", "rollbackPrepareUpdateVfModule", "true");\r
346         rollbackData.put("VFMODULE_BASE", "rollbackVnfAdapterCreate", "true");\r
347         rollbackData.put("VFMODULE_BASE", "rollbackUpdateAAIVfModule", "true");\r
348         rollbackData.put("VFMODULE_BASE", "rollbackSDNCRequestActivate", "true");\r
349         rollbackData.put("VFMODULE_BASE", "rollbackCreateAAIVfModule", "true");\r
350         rollbackData.put("VFMODULE_BASE", "rollbackCreateNetworkPoliciesAAI", "true");\r
351         rollbackData.put("VFMODULE_BASE", "rollbackUpdateVnfAAI", "true");\r
352         rollbackData.put("VFMODULE_BASE", "msorequestid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
353         rollbackData.put("VFMODULE_BASE", "serviceinstanceid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
354 \r
355 \r
356         rollbackData.put("VFMODULE_ADDON_1", "source", "PORTAL");\r
357         rollbackData.put("VFMODULE_ADDON_1", "vnfid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
358         rollbackData.put("VFMODULE_ADDON_1", "vnfname", "STMTN5MMSC21");\r
359         rollbackData.put("VFMODULE_ADDON_1", "vnftype", "asc_heat-int");\r
360         rollbackData.put("VFMODULE_ADDON_1", "vfmoduleid", "973ed047-d251-4fb9-bf1a-65b8949e0a73");\r
361         rollbackData.put("VFMODULE_ADDON_1", "vfmodulename", "STMTN5MMSC21-MMSC::module-0-0");\r
362         rollbackData.put("VFMODULE_ADDON_1", "tenantid", "fba1bd1e195a404cacb9ce17a9b2b421");\r
363         rollbackData.put("VFMODULE_ADDON_1", "aiccloudregion", "RDM2WAGPLCP");\r
364         rollbackData.put("VFMODULE_ADDON_1", "heatstackid", "thisisaheatstack");\r
365         rollbackData.put("VFMODULE_ADDON_1", "contrailNetworkPolicyFqdn0", "MSOTest:DefaultPolicyFQDN1");\r
366         rollbackData.put("VFMODULE_ADDON_1", "contrailNetworkPolicyFqdn1", "MSOTest:DefaultPolicyFQDN2");\r
367         rollbackData.put("VFMODULE_ADDON_1", "oamManagementV6Address", "2000:abc:bce:1111");\r
368         rollbackData.put("VFMODULE_ADDON_1", "oamManagementV4Address", "127.0.0.1");\r
369         rollbackData.put("VFMODULE_ADDON_1", "rollbackPrepareUpdateVfModule", "true");\r
370         rollbackData.put("VFMODULE_ADDON_1", "rollbackVnfAdapterCreate", "true");\r
371         rollbackData.put("VFMODULE_ADDON_1", "rollbackUpdateAAIVfModule", "true");\r
372         rollbackData.put("VFMODULE_ADDON_1", "rollbackSDNCRequestActivate", "true");\r
373         rollbackData.put("VFMODULE_ADDON_1", "rollbackCreateAAIVfModule", "true");\r
374         rollbackData.put("VFMODULE_ADDON_1", "rollbackCreateNetworkPoliciesAAI", "true");\r
375         rollbackData.put("VFMODULE_ADDON_1", "rollbackUpdateVnfAAI", "true");\r
376         rollbackData.put("VFMODULE_ADDON_1", "msorequestid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
377         rollbackData.put("VFMODULE_ADDON_1", "serviceinstanceid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
378 \r
379         rollbackData.put("VNF", "vnfId", "testVnfId123");\r
380 \r
381         rollbackData.put("VNFANDMODULES", "numOfCreatedAddOnModules", "1");\r
382 \r
383         variables.put("isDebugLogEnabled", "true");\r
384         variables.put("mso-request-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
385         variables.put("mso-service-instance-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
386 \r
387 \r
388         variables.put("rollbackData", rollbackData);\r
389         invokeSubProcess("DoCreateVnfAndModulesRollback", businessKey, variables);\r
390 \r
391         // "changedelete" operation not required for deleting a Vf Module\r
392         //      injectSDNCCallbacks(callbacks, "sdncChangeDelete");\r
393         injectVNFRestCallbacks(callbacks, "vnfDelete");\r
394         injectVNFRestCallbacks(callbacks, "vnfDelete");\r
395         //waitForRunningProcessCount("DoCreateVnfAndModulesRollback", 0, 120000);\r
396         injectSDNCCallbacks(callbacks, "sdncDelete");\r
397 \r
398         waitForProcessEnd(businessKey, 10000);\r
399         WorkflowException wfe = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");\r
400         checkVariable(businessKey, "WorkflowException", null);\r
401         if (wfe != null) {\r
402             System.out.println("TestCreateVfModuleSuccess: ErrorCode=" + wfe.getErrorCode() +\r
403                     ", ErrorMessage=" + wfe.getErrorMessage());\r
404         }\r
405         logEnd();\r
406     }\r
407 \r
408     public static void MockDoDeleteVfModule_SDNCSuccess() {\r
409         stubFor(post(urlEqualTo("/SDNCAdapter"))\r
410                 .withRequestBody(containing("SvcAction>deactivate"))\r
411                 .willReturn(aResponse()\r
412                         .withStatus(200)\r
413                         .withHeader("Content-Type", "text/xml")\r
414                         .withBodyFile("DeleteGenericVNFV1/sdncAdapterResponse.xml")));\r
415         stubFor(post(urlEqualTo("/SDNCAdapter"))\r
416                 .withRequestBody(containing("SvcAction>unassign"))\r
417                 .willReturn(aResponse()\r
418                         .withStatus(200)\r
419                         .withHeader("Content-Type", "text/xml")\r
420                         .withBodyFile("DeleteGenericVNFV1/sdncAdapterResponse.xml")));\r
421     }\r
422 \r
423 \r
424 }