fbb9a224b3c2065d2d7f43cd0b3973c1b9786660
[so.git] / adapters / mso-openstack-adapters / src / test / java / org / onap / so / adapters / vnf / MsoVnfCloudifyAdapterImplTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
4  * ================================================================================
5  * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
6  * Copyright (C) 2018 Huawei Intellectual Property. All rights reserved.
7  * ================================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  * 
12  *      http://www.apache.org/licenses/LICENSE-2.0
13  * 
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  * ============LICENSE_END=========================================================
20  */
21
22 package org.onap.so.adapters.vnf;
23
24 import org.apache.http.HttpStatus;
25 import org.junit.Before;
26 import org.junit.Rule;
27 import org.junit.Test;
28 import org.junit.rules.ExpectedException;
29 import org.onap.so.adapters.vnf.exceptions.VnfException;
30 import org.onap.so.cloud.CloudConfig;
31 import org.onap.so.db.catalog.beans.CloudifyManager;
32 import org.onap.so.entity.MsoRequest;
33 import org.onap.so.openstack.beans.VnfRollback;
34 import org.springframework.beans.factory.annotation.Autowired;
35
36 import javax.xml.ws.Holder;
37 import java.util.HashMap;
38 import java.util.Map;
39
40 import static com.github.tomakehurst.wiremock.client.WireMock.*;
41
42 public class MsoVnfCloudifyAdapterImplTest extends BaseRestTestUtils {
43
44         @Rule
45         public ExpectedException expectedException = ExpectedException.none();
46         
47         @Autowired
48         private MsoVnfCloudifyAdapterImpl instance;
49
50         @Autowired
51         private CloudConfig cloudConfig;
52
53         @Before
54         public void before() throws Exception {
55                 super.setUp();
56                 CloudifyManager cloudifyManager = new CloudifyManager();
57                 cloudifyManager.setId("mtn13");
58                 cloudifyManager.setCloudifyUrl("http://localhost:"+wireMockPort+"/v2.0");
59                 cloudifyManager.setUsername("m93945");
60                 cloudifyManager.setPassword("93937EA01B94A10A49279D4572B48369");
61         }
62         
63         @Test 
64     public void queryVnfExceptionTest() throws Exception {
65                 reset();
66                 expectedException.expect(VnfException.class);
67         MsoRequest msoRequest = new MsoRequest();
68         msoRequest.setRequestId("12345");
69         msoRequest.setServiceInstanceId("12345");
70
71         instance.queryVnf("siteid", "CloudOwner", "1234", "vfname",
72                 msoRequest, new Holder<>(), new Holder<>(), new Holder<>(),
73                 new Holder<>());
74     }
75
76         @Test
77         public void queryVnfTest() throws Exception {
78                 MsoRequest msoRequest = new MsoRequest();
79                 msoRequest.setRequestId("12345");
80                 msoRequest.setServiceInstanceId("12345");
81                 stubFor(get(urlPathEqualTo("/v2.0/api/v3/deployments/vfname")).willReturn(aResponse()
82                                 .withBody("{ \"id\": \"123\" }")
83                                 .withStatus(HttpStatus.SC_OK)));
84                 
85                 stubFor(get(urlPathEqualTo("/v2.0/api/v3/deployments/vfname/outputs")).willReturn(aResponse()
86                                 .withBody("{ \"deployment_id\": \"123\",\"outputs\":{\"abc\":\"abc\"} }")
87                                 .withStatus(HttpStatus.SC_OK)));
88
89                 stubFor(get(urlMatching("/v2.0/api/v3/executions?.*")).willReturn(aResponse()
90                                 .withBody("{ \"items\": {\"id\": \"123\",\"workflow_id\":\"install\",\"status\":\"terminated\" } } ")
91                                 .withStatus(HttpStatus.SC_OK)));
92
93                 stubFor(get(urlPathEqualTo("/v2.0/api/v3/tokens")).willReturn(aResponse()
94                                 .withBodyFile("OpenstackResponse_Access.json")
95                                 .withStatus(HttpStatus.SC_OK)));
96                 
97                 instance.queryVnf("mtn13", "CloudOwner", "1234", "vfname",
98                                 msoRequest, new Holder<>(), new Holder<>(), new Holder<>(),
99                                 new Holder<>());
100         }
101
102         @Test
103         public void deleteVfModuleTest_ExceptionWhileQueryDeployment() throws Exception {
104                 expectedException.expect(VnfException.class);
105                 MsoRequest msoRequest = new MsoRequest();
106                 msoRequest.setRequestId("12345");
107                 msoRequest.setServiceInstanceId("12345");
108
109                 instance.deleteVfModule("mtn13", "CloudOwner", "1234", "vfname", msoRequest, new Holder<>());
110         }
111
112         @Test
113         public void deleteVfModuleTest_ExceptionWhileDeleteDeployment() throws Exception {
114                 expectedException.expect(VnfException.class);
115                 MsoRequest msoRequest = new MsoRequest();
116                 msoRequest.setRequestId("12345");
117                 msoRequest.setServiceInstanceId("12345");
118                 stubFor(get(urlPathEqualTo("/v2.0/api/v3/deployments/vfname")).willReturn(aResponse()
119                                 .withBody("{ \"id\": \"123\" }")
120                                 .withStatus(HttpStatus.SC_OK)));
121
122                 stubFor(get(urlPathEqualTo("/v2.0/api/v3/deployments/vfname/outputs")).willReturn(aResponse()
123                                 .withBody("{ \"deployment_id\": \"123\",\"outputs\":{\"abc\":\"abc\"} }")
124                                 .withStatus(HttpStatus.SC_OK)));
125
126                 stubFor(get(urlMatching("/v2.0/api/v3/executions?.*")).willReturn(aResponse()
127                                 .withBody("{ \"items\": {\"id\": \"123\",\"workflow_id\":\"install\",\"status\":\"terminated\" } } ")
128                                 .withStatus(HttpStatus.SC_OK)));
129
130                 stubFor(get(urlPathEqualTo("/v2.0/api/v3/tokens")).willReturn(aResponse()
131                                 .withBodyFile("OpenstackResponse_Access.json")
132                                 .withStatus(HttpStatus.SC_OK)));
133
134                 instance.deleteVfModule("mtn13", "CloudOwner", "1234", "vfname", msoRequest, new Holder<>());
135         }
136         
137         @Test
138     public void deleteVnfVnfExceptionTest() throws Exception {
139                 expectedException.expect(VnfException.class);
140         MsoRequest msoRequest = new MsoRequest();
141         msoRequest.setRequestId("12345");
142         msoRequest.setServiceInstanceId("12345");
143
144         instance.deleteVnf("12344", "CloudOwner", "234", "vnfname", msoRequest);
145
146     }
147
148         @Test
149         public void rollbackVnf() throws Exception {
150                 MsoRequest msoRequest = new MsoRequest();
151                 msoRequest.setRequestId("12345");
152                 msoRequest.setServiceInstanceId("12345");
153
154         VnfRollback vnfRollback = new VnfRollback();
155         vnfRollback.setModelCustomizationUuid("1234");
156         vnfRollback.setVfModuleStackId("2134");
157         vnfRollback.setVnfId("123");
158         vnfRollback.setModelCustomizationUuid("1234");
159
160         instance.rollbackVnf(vnfRollback);
161         }
162
163         @Test
164         public void rollbackVnf_Created() throws Exception {
165                 expectedException.expect(VnfException.class);
166                 MsoRequest msoRequest = new MsoRequest();
167                 msoRequest.setRequestId("12345");
168                 msoRequest.setServiceInstanceId("12345");
169
170                 VnfRollback vnfRollback = new VnfRollback();
171                 vnfRollback.setModelCustomizationUuid("1234");
172                 vnfRollback.setVfModuleStackId("2134");
173                 vnfRollback.setVnfId("123");
174                 vnfRollback.setModelCustomizationUuid("1234");
175                 vnfRollback.setVnfCreated(true);
176
177                 instance.rollbackVnf(vnfRollback);
178         }
179
180         @Test
181         public void createVfModuleVnfException() throws Exception {
182                 expectedException.expect(VnfException.class);
183                 MsoRequest msoRequest = new MsoRequest();
184                 msoRequest.setRequestId("12345");
185                 msoRequest.setServiceInstanceId("12345");
186
187                 instance.createVfModule("123", "CloudOwner", "123", "vf", "v1", "", "module-005", "", "create", "3245", "234", "123", new HashMap<>(), true, true, true,  msoRequest, new Holder<>(), new Holder<>(), new Holder<>());
188         }
189
190         @Test
191         public void createVfModule_ModelCustUuidIsNull() throws Exception {
192                 expectedException.expect(VnfException.class);
193                 MsoRequest msoRequest = new MsoRequest();
194                 msoRequest.setRequestId("12345");
195                 msoRequest.setServiceInstanceId("12345");
196
197                 instance.createVfModule("123", "CloudOwner", "123", "vf", "v1", "", "module-005", "", "create", "3245", "234", null, new 
198                                 HashMap<>(), true, true, true,  msoRequest, new Holder<>(), new Holder<>(), new Holder<>());
199         }
200
201         @Test
202         public void createVfModule_CloudSiteIdNotFound() throws Exception {
203                 expectedException.expect(VnfException.class);
204                 MsoRequest msoRequest = new MsoRequest();
205                 msoRequest.setRequestId("12345");
206                 msoRequest.setServiceInstanceId("12345");
207
208                 instance.createVfModule("123", "CloudOwner", "123", "vf", "v1", "", "module-005", "", "create", "3245", "234", "9b339a61-69ca-465f-86b8-1c72c582b8e8", new HashMap<>(), true, true, true,  msoRequest, new Holder<>(), new Holder<>(), new Holder<>());
209         }
210
211         @Test
212         public void createVfModule_MsoCloudifyManagerNotFound() throws Exception {
213                 expectedException.expect(VnfException.class);
214                 MsoRequest msoRequest = new MsoRequest();
215                 msoRequest.setRequestId("12345");
216                 msoRequest.setServiceInstanceId("12345");
217
218                 instance.createVfModule("mtn13", "CloudOwner", "123", "vf", "v1", "", "module-005", "", "create", "3245", "234", "9b339a61-69ca-465f-86b8-1c72c582b8e8", new HashMap<>(), true, true, true,  msoRequest, new Holder<>(), new Holder<>(), new Holder<>());
219         }
220
221         @Test
222         public void createVfModule() throws Exception {
223                 expectedException.expect(VnfException.class);
224                 MsoRequest msoRequest = new MsoRequest();
225                 msoRequest.setRequestId("12345");
226                 msoRequest.setServiceInstanceId("12345");
227
228                 stubFor(get(urlPathEqualTo("/v2.0/api/v3/deployments/vfname")).willReturn(aResponse()
229                                 .withBody("{ \"id\": \"123\" }")
230                                 .withStatus(HttpStatus.SC_OK)));
231
232                 stubFor(get(urlPathEqualTo("/v2.0/api/v3/deployments/vfname/outputs")).willReturn(aResponse()
233                                 .withBody("{ \"deployment_id\": \"123\",\"outputs\":{\"abc\":\"abc\"} }")
234                                 .withStatus(HttpStatus.SC_OK)));
235
236                 stubFor(get(urlMatching("/v2.0/api/v3/executions?.*")).willReturn(aResponse()
237                                 .withBody("{ \"items\": {\"id\": \"123\",\"workflow_id\":\"install\",\"status\":\"terminated\" } } ")
238                                 .withStatus(HttpStatus.SC_OK)));
239
240                 stubFor(get(urlPathEqualTo("/v2.0/api/v3/tokens")).willReturn(aResponse()
241                                 .withBodyFile("OpenstackResponse_Access.json")
242                                 .withStatus(HttpStatus.SC_OK)));
243
244                 instance.createVfModule("mtn13", "CloudOwner", "123", "vf", "v1", "", "vfname", "", "create", "3245", "234", "9b339a61-69ca-465f-86b8-1c72c582b8e8", new HashMap<>(), true, true, true,  msoRequest, new Holder<>(), new Holder<>(), new Holder<>());
245         }
246
247         @Test
248         public void updateVfModuleVnfException() throws Exception {
249                 expectedException.expect(VnfException.class);
250                 MsoRequest msoRequest = new MsoRequest();
251                 msoRequest.setRequestId("12345");
252                 msoRequest.setServiceInstanceId("12345");
253
254                 instance.updateVfModule("123", "CloudOwner", "1234", "fw", "v2", "vnf1", "create", "123", "12", "233", "234", new HashMap<>(), msoRequest, new Holder<>(), new Holder<>());
255         }
256
257         @Test
258         public void healthCheckVNFTest() {
259                 instance.healthCheck();
260         }
261
262         @Test
263         public void createVnfTest() {
264                 MsoRequest msoRequest = new MsoRequest();
265                 msoRequest.setRequestId("12345");
266                 msoRequest.setServiceInstanceId("12345");
267
268                 Map<String, Object> map = new HashMap<>();
269                 map.put("key1", "value1");
270                 try {
271                         instance.createVnf("mdt1", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "vSAMP12", "VFMOD",
272                                         "volumeGroupHeatStackId|1", map,
273                                         Boolean.FALSE, Boolean.TRUE, Boolean.TRUE, msoRequest, new Holder<>(), new Holder<>(),
274                 new Holder<>());
275                 } catch (Exception e) {
276                 }
277         }
278
279         @Test
280         public void updateVnfTest() {
281                 MsoRequest msoRequest = new MsoRequest();
282                 msoRequest.setRequestId("12345");
283                 msoRequest.setServiceInstanceId("12345");
284
285                 Map<String, Object> map = new HashMap<>();
286                 
287                 map.put("key1", "value1");
288                 try {
289                         instance.updateVnf("mdt1", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "vSAMP12", "VFMOD",
290                                         "volumeGroupHeatStackId|1",  map, msoRequest, new Holder<>(),
291                 new Holder<>());
292                 } catch (Exception e) {
293
294                 }
295         }
296
297         @Test
298         public void deleteVnfTest() {
299                 MsoRequest msoRequest = new MsoRequest();
300                 msoRequest.setRequestId("12345");
301                 msoRequest.setServiceInstanceId("12345");
302                 try {
303                         instance.deleteVnf("mdt1", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vSAMP12", msoRequest);
304                 } catch (Exception e) {
305
306                 }
307         }
308
309 }