Change the header to SO
[so.git] / bpmn / MSOInfrastructureBPMN / src / test / java / org / openecomp / mso / bpmn / infrastructure / DoCreateVfModuleRollbackTest.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 org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDeleteGenericVnf;\r
24 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDeleteVfModuleId;\r
25 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithDepth;\r
26 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetVfModuleId;\r
27 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchGenericVnf;\r
28 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchVfModuleId;\r
29 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutGenericVnf;\r
30 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutVfModuleIdNoResponse;\r
31 import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;\r
32 import static org.openecomp.mso.bpmn.mock.StubResponseVNFAdapter.mockVNFDelete;\r
33 \r
34 import java.io.IOException;\r
35 import java.util.HashMap;\r
36 import java.util.Map;\r
37 import java.util.UUID;\r
38 \r
39 import org.camunda.bpm.engine.test.Deployment;\r
40 import org.junit.Test;\r
41 import org.openecomp.mso.bpmn.common.WorkflowTest;\r
42 import org.openecomp.mso.bpmn.core.RollbackData;\r
43 import org.openecomp.mso.bpmn.core.WorkflowException;\r
44 \r
45 /**\r
46  * Unit test for DoDeleteVfModule.bpmn.\r
47  */\r
48 public class DoCreateVfModuleRollbackTest extends WorkflowTest {\r
49         private final CallbackSet callbacks = new CallbackSet();\r
50         \r
51         private static final String EOL = "\n";\r
52 \r
53         private final String vnfAdapterDeleteCallback = \r
54                 "<deleteVfModuleResponse>" + EOL +\r
55                 "    <vnfId>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnfId>" + EOL +\r
56                 "    <vfModuleId>973ed047-d251-4fb9-bf1a-65b8949e0a73</vfModuleId>" + EOL +\r
57                 "    <vfModuleDeleted>true</vfModuleDeleted>" + EOL +\r
58                 "    <messageId>{{MESSAGE-ID}}</messageId>" + EOL +\r
59                 "</deleteVfModuleResponse>" + EOL;\r
60                         \r
61         private final String vnfAdapterDeleteCallbackFail = \r
62                         "<vfModuleException>" + EOL +\r
63                         "    <message>Error processing request to VNF-Async. Not Found.</message>" + EOL +\r
64                         "    <category>INTERNAL</category>" + EOL +\r
65                         "    <rolledBack>false</rolledBack>" + EOL +\r
66                         "    <messageId>{{MESSAGE-ID}}</messageId>" + EOL +\r
67                         "</vfModuleException>" + EOL;\r
68                                 \r
69         private final String sdncAdapterDeleteCallback =\r
70                 "<output xmlns=\"org:openecomp:sdnctl:l3api\">" + EOL +\r
71                 "  <svc-request-id>{{REQUEST-ID}}</svc-request-id>" + EOL +\r
72                 "  <ack-final-indicator>Y</ack-final-indicator>" + EOL +\r
73                 "</output>" + EOL;\r
74         \r
75         public DoCreateVfModuleRollbackTest() throws IOException {\r
76                 callbacks.put("sdncChangeDelete", sdncAdapterDeleteCallback);\r
77                 callbacks.put("sdncDelete", sdncAdapterDeleteCallback);\r
78                 callbacks.put("vnfDelete", vnfAdapterDeleteCallback);\r
79                 callbacks.put("vnfDeleteFail", vnfAdapterDeleteCallbackFail);\r
80         }\r
81 \r
82         @Test\r
83         \r
84         @Deployment(resources = {\r
85                         "subprocess/DoCreateVfModuleRollback.bpmn",\r
86                         "subprocess/PrepareUpdateAAIVfModule.bpmn",\r
87                         "subprocess/UpdateAAIVfModule.bpmn",\r
88                         "subprocess/UpdateAAIGenericVnf.bpmn",\r
89                         "subprocess/DeleteAAIVfModule.bpmn",\r
90                         "subprocess/SDNCAdapterV1.bpmn",\r
91                         "subprocess/VnfAdapterRestV1.bpmn"\r
92                 })\r
93         public void  TestCreateVfModuleRollbackSuccess() {\r
94                 logStart();\r
95 \r
96                 mockSDNCAdapter("/SDNCAdapter", "SvcAction>delete", 200, "DeleteGenericVNFV1/sdncAdapterResponse.xml");\r
97                 mockVNFDelete("a27ce5a9-29c4-4c22-a017-6615ac73c721", "/973ed047-d251-4fb9-bf1a-65b8949e0a73", 202);\r
98                 MockDeleteGenericVnf("a27ce5a9-29c4-4c22-a017-6615ac73c721", "0000021", 200);\r
99                 MockDeleteVfModuleId("a27ce5a9-29c4-4c22-a017-6615ac73c721", "973ed047-d251-4fb9-bf1a-65b8949e0a73", "0000073", 200);\r
100                 MockPutVfModuleIdNoResponse("a27ce5a9-29c4-4c22-a017-6615ac73c721", "MMSC", "973ed047-d251-4fb9-bf1a-65b8949e0a73");\r
101                 MockPutGenericVnf("a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
102                 MockGetGenericVnfByIdWithDepth("a27ce5a9-29c4-4c22-a017-6615ac73c721", 1, "DoCreateVfModuleRollback/GenericVnf.xml");\r
103                 MockGetVfModuleId("a27ce5a9-29c4-4c22-a017-6615ac73c721", "973ed047-d251-4fb9-bf1a-65b8949e0a73", "DoCreateVfModuleRollback/GenericVnfVfModule.xml", 200);\r
104                 MockPatchGenericVnf("a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
105                 MockPatchVfModuleId("a27ce5a9-29c4-4c22-a017-6615ac73c721", "973ed047-d251-4fb9-bf1a-65b8949e0a73");\r
106                 \r
107                 String businessKey = UUID.randomUUID().toString();\r
108                 Map<String, Object> variables = new HashMap<String, Object>();\r
109                 RollbackData rollbackData = new RollbackData();\r
110                 rollbackData.put("VFMODULE", "source", "PORTAL");\r
111                 rollbackData.put("VFMODULE", "vnfid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
112                 rollbackData.put("VFMODULE", "vnfname", "STMTN5MMSC21");\r
113                 rollbackData.put("VFMODULE", "vnftype", "asc_heat-int");\r
114                 rollbackData.put("VFMODULE", "vfmoduleid", "973ed047-d251-4fb9-bf1a-65b8949e0a73");\r
115                 rollbackData.put("VFMODULE", "vfmodulename", "STMTN5MMSC21-MMSC::module-0-0");\r
116                 rollbackData.put("VFMODULE", "tenantid", "fba1bd1e195a404cacb9ce17a9b2b421");\r
117                 rollbackData.put("VFMODULE", "aiccloudregion", "RDM2WAGPLCP");\r
118                 rollbackData.put("VFMODULE", "heatstackid", "thisisaheatstack");\r
119                 rollbackData.put("VFMODULE", "contrailNetworkPolicyFqdn0", "MSOTest:DefaultPolicyFQDN1");\r
120                 rollbackData.put("VFMODULE", "contrailNetworkPolicyFqdn1", "MSOTest:DefaultPolicyFQDN2");\r
121                 rollbackData.put("VFMODULE", "oamManagementV6Address", "2000:abc:bce:1111");\r
122                 rollbackData.put("VFMODULE", "oamManagementV4Address", "127.0.0.1");\r
123                 \r
124                 rollbackData.put("VFMODULE", "rollbackPrepareUpdateVfModule", "true");\r
125                 rollbackData.put("VFMODULE", "rollbackVnfAdapterCreate", "true");\r
126                 rollbackData.put("VFMODULE", "rollbackUpdateAAIVfModule", "true");\r
127                 rollbackData.put("VFMODULE", "rollbackSDNCRequestActivate", "true");\r
128                 rollbackData.put("VFMODULE", "rollbackCreateAAIVfModule", "true");\r
129                 rollbackData.put("VFMODULE", "rollbackCreateNetworkPoliciesAAI", "true");\r
130                 rollbackData.put("VFMODULE", "rollbackUpdateVnfAAI", "true");\r
131                 \r
132         \r
133                 \r
134                 variables.put("isDebugLogEnabled","true");\r
135                 variables.put("mso-request-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
136                 variables.put("mso-service-instance-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
137                 rollbackData.put("VFMODULE", "msorequestid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
138                 rollbackData.put("VFMODULE", "serviceinstanceid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
139                 variables.put("rollbackData", rollbackData);\r
140                 variables.put("sdncVersion", "1702");\r
141                 invokeSubProcess("DoCreateVfModuleRollback", businessKey, variables);\r
142 \r
143                 // "changedelete" operation not required for deleting a Vf Module\r
144 //              injectSDNCCallbacks(callbacks, "sdncChangeDelete");\r
145                 injectVNFRestCallbacks(callbacks, "vnfDelete");\r
146                 waitForRunningProcessCount("vnfAdapterDeleteV1", 0, 120000);\r
147                 injectSDNCCallbacks(callbacks, "sdncDelete");\r
148 \r
149                 waitForProcessEnd(businessKey, 10000);\r
150                 WorkflowException wfe = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");\r
151                 checkVariable(businessKey, "WorkflowException", null);\r
152                 if (wfe != null) {\r
153                         System.out.println("TestCreateVfModuleSuccess: ErrorCode=" + wfe.getErrorCode() +\r
154                                         ", ErrorMessage=" + wfe.getErrorMessage());\r
155                 }\r
156                 logEnd();\r
157         }\r
158 \r
159         \r
160 }\r
161 \r