366327a9dab64431e834bccec1bab8037c109d91
[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 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:onap: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<>();\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         variables.put("isDebugLogEnabled", "true");\r
134         variables.put("mso-request-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
135         variables.put("mso-service-instance-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
136         rollbackData.put("VFMODULE", "msorequestid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
137         rollbackData.put("VFMODULE", "serviceinstanceid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
138         variables.put("rollbackData", rollbackData);\r
139         variables.put("sdncVersion", "1702");\r
140         invokeSubProcess("DoCreateVfModuleRollback", businessKey, variables);\r
141 \r
142         // "changedelete" operation not required for deleting a Vf Module\r
143 //              injectSDNCCallbacks(callbacks, "sdncChangeDelete");\r
144         injectVNFRestCallbacks(callbacks, "vnfDelete");\r
145         waitForRunningProcessCount("vnfAdapterDeleteV1", 0, 120000);\r
146         injectSDNCCallbacks(callbacks, "sdncDelete");\r
147 \r
148         waitForProcessEnd(businessKey, 10000);\r
149         WorkflowException wfe = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");\r
150         checkVariable(businessKey, "WorkflowException", null);\r
151         if (wfe != null) {\r
152             System.out.println("TestCreateVfModuleSuccess: ErrorCode=" + wfe.getErrorCode() +\r
153                     ", ErrorMessage=" + wfe.getErrorMessage());\r
154         }\r
155         logEnd();\r
156     }\r
157 \r
158 \r
159 }\r
160 \r