Merge "Support get resource recipe groovy common method"
[so.git] / bpmn / MSOInfrastructureBPMN / src / test / java / org / openecomp / mso / bpmn / infrastructure / DoCreateVnfAndModulesRollbackTest.java
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 \r
64         private final String vnfAdapterDeleteCallback =\r
65                 "<deleteVfModuleResponse>" + EOL +\r
66                 "    <vnfId>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnfId>" + EOL +\r
67                 "    <vfModuleId>973ed047-d251-4fb9-bf1a-65b8949e0a73</vfModuleId>" + EOL +\r
68                 "    <vfModuleDeleted>true</vfModuleDeleted>" + EOL +\r
69                 "    <messageId>{{MESSAGE-ID}}</messageId>" + EOL +\r
70                 "</deleteVfModuleResponse>" + EOL;\r
71 \r
72         private final String vnfAdapterDeleteCallbackFail =\r
73                         "<vfModuleException>" + EOL +\r
74                         "    <message>Error processing request to VNF-Async. Not Found.</message>" + EOL +\r
75                         "    <category>INTERNAL</category>" + EOL +\r
76                         "    <rolledBack>false</rolledBack>" + EOL +\r
77                         "    <messageId>{{MESSAGE-ID}}</messageId>" + EOL +\r
78                         "</vfModuleException>" + EOL;\r
79 \r
80         private final String sdncAdapterDeleteCallback =\r
81                 "<output xmlns=\"com:att:sdnctl:l3api\">" + EOL +\r
82                 "  <svc-request-id>{{REQUEST-ID}}</svc-request-id>" + EOL +\r
83                 "  <ack-final-indicator>Y</ack-final-indicator>" + EOL +\r
84                 "</output>" + EOL;\r
85 \r
86         public DoCreateVnfAndModulesRollbackTest() throws IOException {\r
87                 callbacks.put("sdncChangeDelete", sdncAdapterDeleteCallback);\r
88                 callbacks.put("sdncDelete", sdncAdapterDeleteCallback);\r
89                 callbacks.put("vnfDelete", vnfAdapterDeleteCallback);\r
90                 callbacks.put("vnfDeleteFail", vnfAdapterDeleteCallbackFail);\r
91                 callbacks.put("deactivate", FileUtil.readResourceFile(\r
92                                 "__files/VfModularity/SDNCTopologyActivateCallback.xml"));\r
93                 callbacks.put("unassign", FileUtil.readResourceFile(\r
94                                 "__files/VfModularity/SDNCTopologyActivateCallback.xml"));\r
95         }\r
96 \r
97         @Test\r
98         @Ignore\r
99         @Deployment(resources = {\r
100                         "subprocess/DoCreateVnfAndModulesRollback.bpmn",\r
101                         "subprocess/DoCreateVfModuleRollback.bpmn",\r
102                         "subprocess/PrepareUpdateAAIVfModule.bpmn",\r
103                         "subprocess/UpdateAAIVfModule.bpmn",\r
104                         "subprocess/UpdateAAIGenericVnf.bpmn",\r
105                         "subprocess/DeleteAAIVfModule.bpmn",\r
106                         "subprocess/SDNCAdapterV1.bpmn",\r
107                         "subprocess/VnfAdapterRestV1.bpmn",\r
108                         "subprocess/GenericGetVnf.bpmn",\r
109                         "subprocess/GenericDeleteVnf.bpmn",\r
110                         "subprocess/DoDeleteVnf.bpmn"\r
111                 })\r
112         public void  TestDoCreateVnfAndModulesRollbackSuccess_BaseOnly() {\r
113                 // delete the Base Module and Generic Vnf\r
114                 // vnf-id=a27ce5a9-29c4-4c22-a017-6615ac73c721, vf-module-id=973ed047-d251-4fb9-bf1a-65b8949e0a73\r
115                 String request =\r
116                         "<vnf-request xmlns=\"http://org.openecomp/mso/infra/vnf-request/v1\">" + EOL +\r
117                         "  <request-info>" + EOL +\r
118                         "    <action>DELETE_VF_MODULE</action>" + EOL +\r
119                         "    <source>PORTAL</source>" + EOL +\r
120                         "  </request-info>" + EOL +\r
121                         "  <vnf-inputs>" + EOL +\r
122                         "    <vnf-id>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnf-id>" + EOL +\r
123                         "    <vnf-name>STMTN5MMSC21</vnf-name>" + EOL +\r
124                         "    <vnf-type>asc_heat-int</vnf-type>" + EOL +\r
125                         "    <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a73</vf-module-id>" + EOL +\r
126                         "    <vf-module-name>STMTN5MMSC21-MMSC::module-0-0</vf-module-name>" + EOL +\r
127                         "    <service-id>00000000-0000-0000-0000-000000000000</service-id>" + EOL +\r
128                         "    <service-type>SDN-ETHERNET-INTERNET</service-type>" + EOL +\r
129                         "    <tenant-id>fba1bd1e195a404cacb9ce17a9b2b421</tenant-id>" + EOL +\r
130                         "    <orchestration-status>pending-delete</orchestration-status>" + EOL +\r
131                         "    <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>" + EOL +\r
132                         "  </vnf-inputs>" + EOL +\r
133                         "  <vnf-params xmlns:tns=\"http://org.openecomp/mso/infra/vnf-request/v1\"/>" + EOL +\r
134                         "</vnf-request>" + EOL;\r
135                 logStart();\r
136                 mockSDNCAdapter("/SDNCAdapter", "SvcAction>changedelete", 200, "DeleteGenericVNFV1/sdncAdapterResponse.xml");\r
137                 mockSDNCAdapter("/SDNCAdapter", "SvcAction>delete", 200, "DeleteGenericVNFV1/sdncAdapterResponse.xml");\r
138                 mockVNFDelete(".*", "/.*", 202);\r
139                 mockVfModuleDelete("78987");\r
140                 MockPatchVfModuleId("a27ce5a9-29c4-4c22-a017-6615ac73c721", "973ed047-d251-4fb9-bf1a-65b8949e0a73");\r
141                 MockPatchGenericVnf("a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
142                 MockGetGenericVnfByName("STMTN5MMSC21", "DoCreateVfModule_getVnfResponse.xml");\r
143                 MockGetGenericVnfById("/a27ce5a9-29c4-4c22-a017-6615ac73c721.*", "DoCreateVfModule_getVnfResponse.xml", 200);\r
144                 MockPutVfModuleId("a27ce5a9-29c4-4c22-a017-6615ac73c721", "973ed047-d251-4fb9-bf1a-65b8949e0a73");\r
145                 MockDeleteGenericVnf("a27ce5a9-29c4-4c22-a017-6615ac73c721", "0000021");\r
146                 MockDeleteVfModuleId("a27ce5a9-29c4-4c22-a017-6615ac73c721", "973ed047-d251-4fb9-bf1a-65b8949e0a73", "0000073", 200);\r
147                 String businessKey = UUID.randomUUID().toString();\r
148                 Map<String, Object> variables = new HashMap<>();\r
149                 RollbackData rollbackData = new RollbackData();\r
150 \r
151                 rollbackData.put("VFMODULE_BASE", "source", "PORTAL");\r
152                 rollbackData.put("VFMODULE_BASE", "vnfid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
153                 rollbackData.put("VFMODULE_BASE", "vnfname", "STMTN5MMSC21");\r
154                 rollbackData.put("VFMODULE_BASE", "vnftype", "asc_heat-int");\r
155                 rollbackData.put("VFMODULE_BASE", "vfmoduleid", "973ed047-d251-4fb9-bf1a-65b8949e0a73");\r
156                 rollbackData.put("VFMODULE_BASE", "vfmodulename", "STMTN5MMSC21-MMSC::module-0-0");\r
157                 rollbackData.put("VFMODULE_BASE", "tenantid", "fba1bd1e195a404cacb9ce17a9b2b421");\r
158                 rollbackData.put("VFMODULE_BASE", "aiccloudregion", "RDM2WAGPLCP");\r
159                 rollbackData.put("VFMODULE_BASE", "heatstackid", "thisisaheatstack");\r
160                 rollbackData.put("VFMODULE_BASE", "contrailNetworkPolicyFqdn0", "MSOTest:DefaultPolicyFQDN1");\r
161                 rollbackData.put("VFMODULE_BASE", "contrailNetworkPolicyFqdn1", "MSOTest:DefaultPolicyFQDN2");\r
162                 rollbackData.put("VFMODULE_BASE", "oamManagementV6Address", "2000:abc:bce:1111");\r
163                 rollbackData.put("VFMODULE_BASE", "oamManagementV4Address", "127.0.0.1");\r
164 \r
165                 rollbackData.put("VFMODULE_BASE", "rollbackPrepareUpdateVfModule", "true");\r
166                 rollbackData.put("VFMODULE_BASE", "rollbackVnfAdapterCreate", "true");\r
167                 rollbackData.put("VFMODULE_BASE", "rollbackUpdateAAIVfModule", "true");\r
168                 rollbackData.put("VFMODULE_BASE", "rollbackSDNCRequestActivate", "true");\r
169                 rollbackData.put("VFMODULE_BASE", "rollbackCreateAAIVfModule", "true");\r
170                 rollbackData.put("VFMODULE_BASE", "rollbackCreateNetworkPoliciesAAI", "true");\r
171                 rollbackData.put("VFMODULE_BASE", "rollbackUpdateVnfAAI", "true");\r
172 \r
173                 rollbackData.put("VNF", "vnfId", "testVnfId123");\r
174 \r
175                 rollbackData.put("VNFANDMODULES", "numOfCreatedAddOnModules", "0");\r
176 \r
177                 variables.put("isDebugLogEnabled","true");\r
178                 variables.put("mso-request-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
179                 variables.put("mso-service-instance-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
180                 rollbackData.put("VFMODULE_BASE", "msorequestid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
181                 rollbackData.put("VFMODULE_BASE", "serviceinstanceid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
182 \r
183                 variables.put("rollbackData", rollbackData);\r
184                 invokeSubProcess("DoCreateVnfAndModulesRollback", businessKey, variables);\r
185 \r
186                 // "changedelete" operation not required for deleting a Vf Module\r
187 //              injectSDNCCallbacks(callbacks, "sdncChangeDelete");\r
188                 injectVNFRestCallbacks(callbacks, "vnfDelete");\r
189                 //waitForRunningProcessCount("DoCreateVnfAndModulesRollback", 0, 120000);\r
190                 injectSDNCCallbacks(callbacks, "sdncDelete");\r
191 \r
192                 waitForProcessEnd(businessKey, 10000);\r
193                 WorkflowException wfe = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");\r
194                 checkVariable(businessKey, "WorkflowException", null);\r
195                 if (wfe != null) {\r
196                         System.out.println("TestCreateVfModuleSuccess: ErrorCode=" + wfe.getErrorCode() +\r
197                                         ", ErrorMessage=" + wfe.getErrorMessage());\r
198                 }\r
199                 logEnd();\r
200         }\r
201 \r
202         @Test\r
203         @Deployment(resources = {\r
204                         "subprocess/DoCreateVnfAndModulesRollback.bpmn",\r
205                         "subprocess/PrepareUpdateAAIVfModule.bpmn",\r
206                         "subprocess/UpdateAAIVfModule.bpmn",\r
207                         "subprocess/UpdateAAIGenericVnf.bpmn",\r
208                         "subprocess/DeleteAAIVfModule.bpmn",\r
209                         "subprocess/SDNCAdapterV1.bpmn",\r
210                         "subprocess/GenericGetVnf.bpmn",\r
211                         "subprocess/GenericDeleteVnf.bpmn",\r
212                         "subprocess/DoDeleteVnf.bpmn"\r
213                 })\r
214         public void  TestDoCreateVnfAndModulesRollbackSuccess_vnfOnly() {\r
215                 // delete the Base Module and Generic Vnf\r
216                 // vnf-id=a27ce5a9-29c4-4c22-a017-6615ac73c721, vf-module-id=973ed047-d251-4fb9-bf1a-65b8949e0a73\r
217                 String request =\r
218                         "<vnf-request xmlns=\"http://org.openecomp/mso/infra/vnf-request/v1\">" + EOL +\r
219                         "  <request-info>" + EOL +\r
220                         "    <action>DELETE_VF_MODULE</action>" + EOL +\r
221                         "    <source>PORTAL</source>" + EOL +\r
222                         "  </request-info>" + EOL +\r
223                         "  <vnf-inputs>" + EOL +\r
224                         "    <vnf-id>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnf-id>" + EOL +\r
225                         "    <vnf-name>STMTN5MMSC21</vnf-name>" + EOL +\r
226                         "    <vnf-type>asc_heat-int</vnf-type>" + EOL +\r
227                         "    <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a73</vf-module-id>" + EOL +\r
228                         "    <vf-module-name>STMTN5MMSC21-MMSC::module-0-0</vf-module-name>" + EOL +\r
229                         "    <service-id>00000000-0000-0000-0000-000000000000</service-id>" + EOL +\r
230                         "    <service-type>SDN-ETHERNET-INTERNET</service-type>" + EOL +\r
231                         "    <tenant-id>fba1bd1e195a404cacb9ce17a9b2b421</tenant-id>" + EOL +\r
232                         "    <orchestration-status>pending-delete</orchestration-status>" + EOL +\r
233                         "    <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>" + EOL +\r
234                         "  </vnf-inputs>" + EOL +\r
235                         "  <vnf-params xmlns:tns=\"http://org.openecomp/mso/infra/vnf-request/v1\"/>" + EOL +\r
236                         "</vnf-request>" + EOL;\r
237                 logStart();\r
238                 MockGetGenericVnfById("testVnfId123.*", "GenericFlows/getGenericVnfByNameResponse.xml");\r
239                 MockDeleteGenericVnf("testVnfId123", "testReVer123");\r
240                 MockDoDeleteVfModule_SDNCSuccess();\r
241                 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");\r
242                 String businessKey = UUID.randomUUID().toString();\r
243                 Map<String, Object> variables = new HashMap<>();\r
244                 RollbackData rollbackData = new RollbackData();\r
245 \r
246                 rollbackData.put("VNF", "vnfId", "testVnfId123");\r
247                 rollbackData.put("VNF", "rollbackVnfCreate", "true");\r
248                 rollbackData.put("VNF", "rollbackSDNCAssign", "true");\r
249                 rollbackData.put("VNF", "rollbackSDNCActivate", "true");\r
250                 rollbackData.put("VNFANDMODULES", "numOfCreatedAddOnModules", "0");\r
251 \r
252 \r
253                 variables.put("isDebugLogEnabled","true");\r
254                 variables.put("mso-request-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
255                 variables.put("mso-service-instance-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
256 \r
257 \r
258                 variables.put("rollbackData", rollbackData);\r
259                 variables.put("sdncVersion", "1707");\r
260                 invokeSubProcess("DoCreateVnfAndModulesRollback", businessKey, variables);\r
261 \r
262                 // "changedelete" operation not required for deleting a Vf Module\r
263 //              injectSDNCCallbacks(callbacks, "sdncChangeDelete");\r
264 \r
265                 //waitForRunningProcessCount("DoCreateVnfAndModulesRollback", 0, 120000);\r
266         //      injectSDNCCallbacks(callbacks, "sdncDelete");\r
267 \r
268                 waitForProcessEnd(businessKey, 10000);\r
269                 WorkflowException wfe = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");\r
270                 checkVariable(businessKey, "WorkflowException", null);\r
271                 if (wfe != null) {\r
272                         System.out.println("TestCreateVfModuleSuccess: ErrorCode=" + wfe.getErrorCode() +\r
273                                         ", ErrorMessage=" + wfe.getErrorMessage());\r
274                 }\r
275                 logEnd();\r
276         }\r
277 \r
278         @Test\r
279         @Ignore\r
280         @Deployment(resources = {\r
281                         "subprocess/DoCreateVnfAndModulesRollback.bpmn",\r
282                         "subprocess/DoCreateVfModuleRollback.bpmn",\r
283                         "subprocess/PrepareUpdateAAIVfModule.bpmn",\r
284                         "subprocess/UpdateAAIVfModule.bpmn",\r
285                         "subprocess/UpdateAAIGenericVnf.bpmn",\r
286                         "subprocess/DeleteAAIVfModule.bpmn",\r
287                         "subprocess/SDNCAdapterV1.bpmn",\r
288                         "subprocess/VnfAdapterRestV1.bpmn",\r
289                         "subprocess/GenericGetVnf.bpmn",\r
290                         "subprocess/GenericDeleteVnf.bpmn",\r
291                         "subprocess/DoDeleteVnf.bpmn"\r
292                 })\r
293         public void  TestDoCreateVnfAndModulesRollbackSuccess_AddOn() {\r
294                 // delete the Base Module and Generic Vnf\r
295                 // vnf-id=a27ce5a9-29c4-4c22-a017-6615ac73c721, vf-module-id=973ed047-d251-4fb9-bf1a-65b8949e0a73\r
296                 String request =\r
297                         "<vnf-request xmlns=\"http://org.openecomp/mso/infra/vnf-request/v1\">" + EOL +\r
298                         "  <request-info>" + EOL +\r
299                         "    <action>DELETE_VF_MODULE</action>" + EOL +\r
300                         "    <source>PORTAL</source>" + EOL +\r
301                         "  </request-info>" + EOL +\r
302                         "  <vnf-inputs>" + EOL +\r
303                         "    <vnf-id>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnf-id>" + EOL +\r
304                         "    <vnf-name>STMTN5MMSC21</vnf-name>" + EOL +\r
305                         "    <vnf-type>asc_heat-int</vnf-type>" + EOL +\r
306                         "    <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a73</vf-module-id>" + EOL +\r
307                         "    <vf-module-name>STMTN5MMSC21-MMSC::module-0-0</vf-module-name>" + EOL +\r
308                         "    <service-id>00000000-0000-0000-0000-000000000000</service-id>" + EOL +\r
309                         "    <service-type>SDN-ETHERNET-INTERNET</service-type>" + EOL +\r
310                         "    <tenant-id>fba1bd1e195a404cacb9ce17a9b2b421</tenant-id>" + EOL +\r
311                         "    <orchestration-status>pending-delete</orchestration-status>" + EOL +\r
312                         "    <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>" + EOL +\r
313                         "  </vnf-inputs>" + EOL +\r
314                         "  <vnf-params xmlns:tns=\"http://org.openecomp/mso/infra/vnf-request/v1\"/>" + EOL +\r
315                         "</vnf-request>" + EOL;\r
316                 logStart();\r
317                 mockSDNCAdapter("/SDNCAdapter", "SvcAction>changedelete", 200, "DeleteGenericVNFV1/sdncAdapterResponse.xml");\r
318                 mockSDNCAdapter("/SDNCAdapter", "SvcAction>delete", 200, "DeleteGenericVNFV1/sdncAdapterResponse.xml");\r
319                 mockVNFDelete(".*", "/.*", 202);\r
320                 mockVfModuleDelete("78987");\r
321                 MockGetGenericVnfByName("STMTN5MMSC21", "DoCreateVfModule_getVnfResponse.xml");\r
322                 MockGetGenericVnfById("/a27ce5a9-29c4-4c22-a017-6615ac73c721", "DoCreateVfModule_getVnfResponse.xml", 200);\r
323                 MockGetGenericVnfByIdWithDepth("a27ce5a9-29c4-4c22-a017-6615ac73c721", 1, "DoCreateVfModuleRollback/GenericVnf.xml");\r
324                 MockPatchVfModuleId("a27ce5a9-29c4-4c22-a017-6615ac73c721", "973ed047-d251-4fb9-bf1a-65b8949e0a73");\r
325                 MockPatchGenericVnf("a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
326                 MockPutVfModuleId("a27ce5a9-29c4-4c22-a017-6615ac73c721", "973ed047-d251-4fb9-bf1a-65b8949e0a73");\r
327                 MockDeleteGenericVnf("a27ce5a9-29c4-4c22-a017-6615ac73c721", "0000021");\r
328                 MockDeleteVfModuleId("", "", "", 200);\r
329                 String businessKey = UUID.randomUUID().toString();\r
330                 Map<String, Object> variables = new HashMap<>();\r
331                 RollbackData rollbackData = new RollbackData();\r
332         \r
333                 rollbackData.put("VFMODULE_BASE", "source", "PORTAL");\r
334                 rollbackData.put("VFMODULE_BASE", "vnfid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
335                 rollbackData.put("VFMODULE_BASE", "vnfname", "STMTN5MMSC21");\r
336                 rollbackData.put("VFMODULE_BASE", "vnftype", "asc_heat-int");\r
337                 rollbackData.put("VFMODULE_BASE", "vfmoduleid", "973ed047-d251-4fb9-bf1a-65b8949e0a73");\r
338                 rollbackData.put("VFMODULE_BASE", "vfmodulename", "STMTN5MMSC21-MMSC::module-0-0");\r
339                 rollbackData.put("VFMODULE_BASE", "tenantid", "fba1bd1e195a404cacb9ce17a9b2b421");\r
340                 rollbackData.put("VFMODULE_BASE", "aiccloudregion", "RDM2WAGPLCP");\r
341                 rollbackData.put("VFMODULE_BASE", "heatstackid", "thisisaheatstack");\r
342                 rollbackData.put("VFMODULE_BASE", "contrailNetworkPolicyFqdn0", "MSOTest:DefaultPolicyFQDN1");\r
343                 rollbackData.put("VFMODULE_BASE", "contrailNetworkPolicyFqdn1", "MSOTest:DefaultPolicyFQDN2");\r
344                 rollbackData.put("VFMODULE_BASE", "oamManagementV6Address", "2000:abc:bce:1111");\r
345                 rollbackData.put("VFMODULE_BASE", "oamManagementV4Address", "127.0.0.1");\r
346                 rollbackData.put("VFMODULE_BASE", "rollbackPrepareUpdateVfModule", "true");\r
347                 rollbackData.put("VFMODULE_BASE", "rollbackVnfAdapterCreate", "true");\r
348                 rollbackData.put("VFMODULE_BASE", "rollbackUpdateAAIVfModule", "true");\r
349                 rollbackData.put("VFMODULE_BASE", "rollbackSDNCRequestActivate", "true");\r
350                 rollbackData.put("VFMODULE_BASE", "rollbackCreateAAIVfModule", "true");\r
351                 rollbackData.put("VFMODULE_BASE", "rollbackCreateNetworkPoliciesAAI", "true");\r
352                 rollbackData.put("VFMODULE_BASE", "rollbackUpdateVnfAAI", "true");\r
353                 rollbackData.put("VFMODULE_BASE", "msorequestid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
354                 rollbackData.put("VFMODULE_BASE", "serviceinstanceid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
355         \r
356         \r
357                 rollbackData.put("VFMODULE_ADDON_1", "source", "PORTAL");\r
358                 rollbackData.put("VFMODULE_ADDON_1", "vnfid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
359                 rollbackData.put("VFMODULE_ADDON_1", "vnfname", "STMTN5MMSC21");\r
360                 rollbackData.put("VFMODULE_ADDON_1", "vnftype", "asc_heat-int");\r
361                 rollbackData.put("VFMODULE_ADDON_1", "vfmoduleid", "973ed047-d251-4fb9-bf1a-65b8949e0a73");\r
362                 rollbackData.put("VFMODULE_ADDON_1", "vfmodulename", "STMTN5MMSC21-MMSC::module-0-0");\r
363                 rollbackData.put("VFMODULE_ADDON_1", "tenantid", "fba1bd1e195a404cacb9ce17a9b2b421");\r
364                 rollbackData.put("VFMODULE_ADDON_1", "aiccloudregion", "RDM2WAGPLCP");\r
365                 rollbackData.put("VFMODULE_ADDON_1", "heatstackid", "thisisaheatstack");\r
366                 rollbackData.put("VFMODULE_ADDON_1", "contrailNetworkPolicyFqdn0", "MSOTest:DefaultPolicyFQDN1");\r
367                 rollbackData.put("VFMODULE_ADDON_1", "contrailNetworkPolicyFqdn1", "MSOTest:DefaultPolicyFQDN2");\r
368                 rollbackData.put("VFMODULE_ADDON_1", "oamManagementV6Address", "2000:abc:bce:1111");\r
369                 rollbackData.put("VFMODULE_ADDON_1", "oamManagementV4Address", "127.0.0.1");\r
370                 rollbackData.put("VFMODULE_ADDON_1", "rollbackPrepareUpdateVfModule", "true");\r
371                 rollbackData.put("VFMODULE_ADDON_1", "rollbackVnfAdapterCreate", "true");\r
372                 rollbackData.put("VFMODULE_ADDON_1", "rollbackUpdateAAIVfModule", "true");\r
373                 rollbackData.put("VFMODULE_ADDON_1", "rollbackSDNCRequestActivate", "true");\r
374                 rollbackData.put("VFMODULE_ADDON_1", "rollbackCreateAAIVfModule", "true");\r
375                 rollbackData.put("VFMODULE_ADDON_1", "rollbackCreateNetworkPoliciesAAI", "true");\r
376                 rollbackData.put("VFMODULE_ADDON_1", "rollbackUpdateVnfAAI", "true");\r
377                 rollbackData.put("VFMODULE_ADDON_1", "msorequestid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
378                 rollbackData.put("VFMODULE_ADDON_1", "serviceinstanceid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
379         \r
380                 rollbackData.put("VNF", "vnfId", "testVnfId123");\r
381         \r
382                 rollbackData.put("VNFANDMODULES", "numOfCreatedAddOnModules", "1");\r
383         \r
384                 variables.put("isDebugLogEnabled","true");\r
385                 variables.put("mso-request-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
386                 variables.put("mso-service-instance-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
387         \r
388         \r
389                 variables.put("rollbackData", rollbackData);\r
390                 invokeSubProcess("DoCreateVnfAndModulesRollback", businessKey, variables);\r
391         \r
392                 // "changedelete" operation not required for deleting a Vf Module\r
393         //      injectSDNCCallbacks(callbacks, "sdncChangeDelete");\r
394                 injectVNFRestCallbacks(callbacks, "vnfDelete");\r
395                 injectVNFRestCallbacks(callbacks, "vnfDelete");\r
396                 //waitForRunningProcessCount("DoCreateVnfAndModulesRollback", 0, 120000);\r
397                 injectSDNCCallbacks(callbacks, "sdncDelete");\r
398         \r
399                 waitForProcessEnd(businessKey, 10000);\r
400                 WorkflowException wfe = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");\r
401                 checkVariable(businessKey, "WorkflowException", null);\r
402                 if (wfe != null) {\r
403                         System.out.println("TestCreateVfModuleSuccess: ErrorCode=" + wfe.getErrorCode() +\r
404                                         ", ErrorMessage=" + wfe.getErrorMessage());\r
405                 }\r
406                 logEnd();\r
407         }\r
408         \r
409         public static void MockDoDeleteVfModule_SDNCSuccess() {\r
410                 stubFor(post(urlEqualTo("/SDNCAdapter"))\r
411                                   .withRequestBody(containing("SvcAction>deactivate"))\r
412                                   .willReturn(aResponse()\r
413                                   .withStatus(200)\r
414                                   .withHeader("Content-Type", "text/xml")\r
415                                   .withBodyFile("DeleteGenericVNFV1/sdncAdapterResponse.xml")));\r
416                 stubFor(post(urlEqualTo("/SDNCAdapter"))\r
417                                   .withRequestBody(containing("SvcAction>unassign"))\r
418                                   .willReturn(aResponse()\r
419                                   .withStatus(200)\r
420                                   .withHeader("Content-Type", "text/xml")\r
421                                   .withBodyFile("DeleteGenericVNFV1/sdncAdapterResponse.xml")));\r
422         }\r
423 \r
424 \r
425 }