488535024b86a068f5884497046bb8ca36ae7c2b
[so.git] / bpmn / MSOCommonBPMN / src / main / groovy / org / openecomp / mso / bpmn / common / scripts / CatalogDbUtils.groovy
1 /*-\r
2  * ============LICENSE_START=======================================================\r
3  * OPENECOMP - MSO\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.common.scripts\r
22 \r
23 import org.json.JSONObject;\r
24 import org.json.JSONArray;\r
25 import org.json.XML;\r
26 import org.springframework.web.util.UriUtils;\r
27 \r
28 import org.openecomp.mso.bpmn.core.json.JsonUtils\r
29 \r
30 \r
31 import groovy.json.JsonBuilder\r
32 import groovy.json.JsonSlurper\r
33 import groovy.util.slurpersupport.GPathResult\r
34 import groovy.xml.QName;\r
35 \r
36 import org.openecomp.mso.logger.MsoLogger;\r
37 import org.openecomp.mso.rest.APIResponse;\r
38 import org.openecomp.mso.rest.RESTClient\r
39 import org.openecomp.mso.rest.RESTConfig\r
40 \r
41 \r
42 /***\r
43  * Utilities for accessing Catalog DB Adapter to retrieve Networks, VNF/VFModules, AllottedResources and complete ServiceResources information\r
44  *\r
45  */\r
46 \r
47 class CatalogDbUtils {\r
48 \r
49         MsoUtils utils = new MsoUtils()\r
50         JsonUtils jsonUtils = new JsonUtils()\r
51         MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL);\r
52         static private String defaultDbAdapterVersion = "v2"\r
53 \r
54         public JSONArray getAllNetworksByServiceModelUuid(String catalogDbEndpoint, String serviceModelUuid) {\r
55                 JSONArray networksList = null\r
56                 String endPoint = catalogDbEndpoint + "/" + defaultDbAdapterVersion + "/serviceNetworks?serviceModelUuid=" + UriUtils.encode(serviceModelUuid, "UTF-8")\r
57                 try {\r
58                         String catalogDbResponse = getResponseFromCatalogDb(endPoint)\r
59 \r
60                         if (catalogDbResponse != null) {\r
61                                 networksList = parseNetworksJson(catalogDbResponse, "serviceNetworks", "v1")\r
62                         }\r
63 \r
64                 }\r
65                 catch (Exception e) {\r
66                         utils.log("ERROR", "Exception in Querying Catalog DB: " + e.message)\r
67                 }\r
68 \r
69                 return networksList\r
70         }\r
71         \r
72         public JSONArray getAllNetworksByServiceModelUuid(String catalogDbEndpoint, String serviceModelUuid, String catalogUtilsVersion) {\r
73                 JSONArray networksList = null\r
74                 String endPoint = catalogDbEndpoint + "/" + defaultDbAdapterVersion + "/serviceNetworks?serviceModelUuid=" + UriUtils.encode(serviceModelUuid, "UTF-8") \r
75                 try {\r
76                         String catalogDbResponse = getResponseFromCatalogDb(endPoint)\r
77 \r
78                         if (catalogDbResponse != null) {\r
79                                 networksList = parseNetworksJson(catalogDbResponse, "serviceNetworks", catalogUtilsVersion)\r
80 \r
81                         }\r
82 \r
83                 }\r
84                 catch (Exception e) {\r
85                         utils.log("ERROR", "Exception in Querying Catalog DB: " + e.message)\r
86                 }\r
87 \r
88                 return networksList\r
89         }\r
90 \r
91         public JSONArray getAllNetworksByServiceModelInvariantUuid(String catalogDbEndpoint, String serviceModelInvariantUuid) {\r
92                 JSONArray networksList = null\r
93                 String endPoint = catalogDbEndpoint + "/" + defaultDbAdapterVersion + "/serviceNetworks?serviceModelInvariantUuid=" + UriUtils.encode(serviceModelInvariantUuid, "UTF-8")\r
94                 try {\r
95                         String catalogDbResponse = getResponseFromCatalogDb(endPoint)\r
96 \r
97                         if (catalogDbResponse != null) {\r
98                                 networksList = parseNetworksJson(catalogDbResponse, "serviceNetworks", "v1")\r
99                         }\r
100 \r
101                 }\r
102                 catch (Exception e) {\r
103                         utils.log("ERROR", "Exception in Querying Catalog DB: " + e.message)\r
104                 }\r
105 \r
106                 return networksList\r
107         }\r
108         \r
109         public JSONArray getAllNetworksByServiceModelInvariantUuid(String catalogDbEndpoint, String serviceModelInvariantUuid, String catalogUtilsVersion) {\r
110                 JSONArray networksList = null\r
111                 String endPoint = catalogDbEndpoint + "/" + defaultDbAdapterVersion + "/serviceNetworks?serviceModelInvariantUuid=" + UriUtils.encode(serviceModelInvariantUuid, "UTF-8")\r
112 \r
113                 try {\r
114                         String catalogDbResponse = getResponseFromCatalogDb(endPoint)\r
115 \r
116                         if (catalogDbResponse != null) {\r
117                                 networksList = parseNetworksJson(catalogDbResponse, "serviceNetworks", catalogUtilsVersion)\r
118                         }\r
119 \r
120                 }\r
121                 catch (Exception e) {\r
122                         utils.log("ERROR", "Exception in Querying Catalog DB: " + e.message)\r
123                 }\r
124 \r
125                 return networksList\r
126         }\r
127 \r
128         public JSONArray getAllNetworksByServiceModelInvariantUuidAndServiceModelVersion(String catalogDbEndpoint, String serviceModelInvariantUuid, String serviceModelVersion) {\r
129                 JSONArray networksList = null\r
130                 String endPoint = catalogDbEndpoint + "/" + defaultDbAdapterVersion + "/serviceNetworks?serviceModelInvariantUuid=" + UriUtils.encode(serviceModelInvariantUuid, "UTF-8") + "&serviceModelVersion=" + UriUtils.encode(serviceModelVersion, "UTF-8")     \r
131                 try {\r
132                         String catalogDbResponse = getResponseFromCatalogDb(endPoint)\r
133 \r
134                         if (catalogDbResponse != null) {\r
135                                 networksList = parseNetworksJson(catalogDbResponse, "serviceNetworks", "v1")\r
136                         }\r
137 \r
138                 }\r
139                 catch (Exception e) {\r
140                         utils.log("ERROR", "Exception in Querying Catalog DB: " + e.message)\r
141                 }\r
142 \r
143                 return networksList\r
144         }\r
145         \r
146         public JSONArray getAllNetworksByServiceModelInvariantUuidAndServiceModelVersion(String catalogDbEndpoint, String serviceModelInvariantUuid, String serviceModelVersion, String catalogUtilsVersion) {\r
147                 JSONArray networksList = null\r
148                 String endPoint = catalogDbEndpoint + "/" + defaultDbAdapterVersion + "/serviceNetworks?serviceModelInvariantUuid=" + UriUtils.encode(serviceModelInvariantUuid, "UTF-8") + "&serviceModelVersion=" + UriUtils.encode(serviceModelVersion, "UTF-8")\r
149 \r
150                 try {\r
151                         String catalogDbResponse = getResponseFromCatalogDb(endPoint)\r
152 \r
153                         if (catalogDbResponse != null) {\r
154                                 networksList = parseNetworksJson(catalogDbResponse, "serviceNetworks", catalogUtilsVersion)\r
155                         }\r
156 \r
157                 }\r
158                 catch (Exception e) {\r
159                         utils.log("ERROR", "Exception in Querying Catalog DB: " + e.message)\r
160                 }\r
161 \r
162                 return networksList\r
163         }\r
164 \r
165         public JSONArray getAllNetworksByNetworkModelCustomizationUuid(String catalogDbEndpoint, String networkModelCustomizationUuid) {\r
166                 JSONArray networksList = null\r
167                 String endPoint = catalogDbEndpoint + "/" + defaultDbAdapterVersion + "/serviceNetworks?networkModelCustomizationUuid=" + UriUtils.encode(networkModelCustomizationUuid, "UTF-8")\r
168                 try {\r
169                         String catalogDbResponse = getResponseFromCatalogDb(endPoint)\r
170 \r
171                         if (catalogDbResponse != null) {\r
172                                 networksList = parseNetworksJson(catalogDbResponse, "serviceNetworks", "v1")\r
173                         }\r
174 \r
175                 }\r
176                 catch (Exception e) {\r
177                         utils.log("ERROR", "Exception in Querying Catalog DB: " + e.message)\r
178                 }\r
179 \r
180                 return networksList\r
181         }\r
182         \r
183         public JSONArray getAllNetworksByNetworkModelCustomizationUuid(String catalogDbEndpoint, String networkModelCustomizationUuid, String catalogUtilsVersion) {\r
184                 JSONArray networksList = null\r
185                 String endPoint = catalogDbEndpoint + "/" + defaultDbAdapterVersion + "/serviceNetworks?networkModelCustomizationUuid=" + UriUtils.encode(networkModelCustomizationUuid, "UTF-8")\r
186 \r
187                 try {\r
188                         String catalogDbResponse = getResponseFromCatalogDb(endPoint)\r
189 \r
190                         if (catalogDbResponse != null) {\r
191                                 networksList = parseNetworksJson(catalogDbResponse, "serviceNetworks", catalogUtilsVersion)\r
192                         }\r
193 \r
194                 }\r
195                 catch (Exception e) {\r
196                         utils.log("ERROR", "Exception in Querying Catalog DB: " + e.message)\r
197                 }\r
198 \r
199                 return networksList\r
200         }\r
201 \r
202         public JSONArray getAllNetworksByNetworkType(String catalogDbEndpoint, String networkType) {\r
203                 JSONArray networksList = null\r
204                 String endPoint = catalogDbEndpoint + "/" + defaultDbAdapterVersion + "/serviceNetworks?networkType=" + UriUtils.encode(networkType, "UTF-8")\r
205                 try {\r
206                         String catalogDbResponse = getResponseFromCatalogDb(endPoint)\r
207 \r
208                         if (catalogDbResponse != null) {\r
209                                 networksList = parseNetworksJson(catalogDbResponse, "serviceNetworks", "v1")\r
210                         }\r
211 \r
212                 }\r
213                 catch (Exception e) {\r
214                         utils.log("ERROR", "Exception in Querying Catalog DB: " + e.message)\r
215                 }\r
216 \r
217                 return networksList\r
218         }\r
219         \r
220         public JSONArray getAllNetworksByNetworkType(String catalogDbEndpoint, String networkType, String catalogUtilsVersion) {\r
221                 JSONArray networksList = null\r
222                 String endPoint = catalogDbEndpoint + "/" + defaultDbAdapterVersion + "/serviceNetworks?networkType=" + UriUtils.encode(networkType, "UTF-8")\r
223                 try {\r
224                         String catalogDbResponse = getResponseFromCatalogDb(endPoint)\r
225 \r
226                         if (catalogDbResponse != null) {\r
227                                 networksList = parseNetworksJson(catalogDbResponse, "serviceNetworks", catalogUtilsVersion)\r
228 \r
229                         }\r
230 \r
231                 }\r
232                 catch (Exception e) {\r
233                         utils.log("ERROR", "Exception in Querying Catalog DB: " + e.message)\r
234                 }\r
235 \r
236                 return networksList\r
237         }\r
238 \r
239 \r
240         public JSONArray getAllVnfsByServiceModelUuid(String catalogDbEndpoint, String serviceModelUuid) {\r
241                 JSONArray vnfsList = null\r
242                 String endPoint = catalogDbEndpoint + "/" + defaultDbAdapterVersion + "/serviceVnfs?serviceModelUuid=" + UriUtils.encode(serviceModelUuid, "UTF-8")\r
243                 try {\r
244                         msoLogger.debug("ENDPOINT: " + endPoint)\r
245                         String catalogDbResponse = getResponseFromCatalogDb(endPoint)\r
246 \r
247                         if (catalogDbResponse != null) {\r
248                                 vnfsList = parseVnfsJson(catalogDbResponse, "serviceVnfs", "v1")\r
249                         }\r
250 \r
251                 }\r
252                 catch (Exception e) {\r
253                         utils.log("ERROR", "Exception in Querying Catalog DB: " + e.message)\r
254                 }\r
255 \r
256                 return vnfsList\r
257         }\r
258         \r
259         public JSONArray getAllVnfsByServiceModelUuid(String catalogDbEndpoint, String serviceModelUuid, String catalogUtilsVersion) {\r
260                 JSONArray vnfsList = null\r
261                 String endPoint = catalogDbEndpoint + "/" + defaultDbAdapterVersion + "/serviceVnfs?serviceModelUuid=" + UriUtils.encode(serviceModelUuid, "UTF-8")\r
262                 try {\r
263                         msoLogger.debug("ENDPOINT: " + endPoint)\r
264                         String catalogDbResponse = getResponseFromCatalogDb(endPoint)\r
265 \r
266                         if (catalogDbResponse != null) {\r
267                                 vnfsList = parseVnfsJson(catalogDbResponse, "serviceVnfs", catalogUtilsVersion)\r
268 \r
269                         }\r
270 \r
271                 }\r
272                 catch (Exception e) {\r
273                         utils.log("ERROR", "Exception in Querying Catalog DB: " + e.message)\r
274                 }\r
275 \r
276                 return vnfsList\r
277         }\r
278 \r
279         public JSONArray getAllVnfsByServiceModelInvariantUuid(String catalogDbEndpoint, String serviceModelInvariantUuid) {\r
280                 JSONArray vnfsList = null\r
281                 String endPoint = catalogDbEndpoint + "/" + defaultDbAdapterVersion + "/serviceVnfs?serviceModelInvariantUuid=" + UriUtils.encode(serviceModelInvariantUuid, "UTF-8")\r
282                 try {\r
283                         msoLogger.debug("ENDPOINT: " + endPoint)\r
284                         String catalogDbResponse = getResponseFromCatalogDb(endPoint)\r
285 \r
286                         if (catalogDbResponse != null) {\r
287                                 vnfsList = parseVnfsJson(catalogDbResponse, "serviceVnfs", "v1")\r
288                         }\r
289 \r
290                 }\r
291                 catch (Exception e) {\r
292                         utils.log("ERROR", "Exception in Querying Catalog DB: " + e.message)\r
293                 }\r
294 \r
295                 return vnfsList\r
296         }\r
297         \r
298         public JSONArray getAllVnfsByServiceModelInvariantUuid(String catalogDbEndpoint, String serviceModelInvariantUuid, String catalogUtilsVersion) {\r
299                 JSONArray vnfsList = null\r
300                 String endPoint = catalogDbEndpoint + "/" + defaultDbAdapterVersion + "/serviceVnfs?serviceModelInvariantUuid=" + UriUtils.encode(serviceModelInvariantUuid, "UTF-8")\r
301                 try {\r
302                         msoLogger.debug("ENDPOINT: " + endPoint)\r
303                         String catalogDbResponse = getResponseFromCatalogDb(endPoint)\r
304 \r
305                         if (catalogDbResponse != null) {\r
306                                 vnfsList = parseVnfsJson(catalogDbResponse, "serviceVnfs", catalogUtilsVersion)\r
307 \r
308                         }\r
309 \r
310                 }\r
311                 catch (Exception e) {\r
312                         utils.log("ERROR", "Exception in Querying Catalog DB: " + e.message)\r
313                 }\r
314 \r
315                 return vnfsList\r
316         }\r
317 \r
318         public JSONArray getAllVnfsByServiceModelInvariantUuidAndServiceModelVersion(String catalogDbEndpoint, String serviceModelInvariantUuid, String serviceModelVersion) {\r
319                 JSONArray vnfsList = null\r
320                 String endPoint = catalogDbEndpoint + "/" + defaultDbAdapterVersion + "/serviceVnfs?serviceModelInvariantUuid=" + UriUtils.encode(serviceModelInvariantUuid, "UTF-8") + "&serviceModelVersion=" + UriUtils.encode(serviceModelVersion, "UTF-8")\r
321                 try {\r
322                         msoLogger.debug("ENDPOINT: " + endPoint)\r
323                         String catalogDbResponse = getResponseFromCatalogDb(endPoint)\r
324 \r
325                         if (catalogDbResponse != null) {\r
326                                 vnfsList = parseVnfsJson(catalogDbResponse, "serviceVnfs", "v1")\r
327                         }\r
328 \r
329                 }\r
330                 catch (Exception e) {\r
331                         utils.log("ERROR", "Exception in Querying Catalog DB: " + e.message)\r
332                 }\r
333 \r
334                 return vnfsList\r
335         }\r
336         \r
337         public JSONArray getAllVnfsByServiceModelInvariantUuidAndServiceModelVersion(String catalogDbEndpoint, String serviceModelInvariantUuid, String serviceModelVersion, String catalogUtilsVersion) {\r
338                 JSONArray vnfsList = null\r
339                 String endPoint = catalogDbEndpoint + "/" + defaultDbAdapterVersion + "/serviceVnfs?serviceModelInvariantUuid=" + UriUtils.encode(serviceModelInvariantUuid, "UTF-8") + "&serviceModelVersion=" + UriUtils.encode(serviceModelVersion, "UTF-8")\r
340                 try {\r
341                         msoLogger.debug("ENDPOINT: " + endPoint)\r
342                         String catalogDbResponse = getResponseFromCatalogDb(endPoint)\r
343 \r
344                         if (catalogDbResponse != null) {\r
345                                 vnfsList = parseVnfsJson(catalogDbResponse, "serviceVnfs", catalogUtilsVersion)\r
346 \r
347                         }\r
348 \r
349                 }\r
350                 catch (Exception e) {\r
351                         utils.log("ERROR", "Exception in Querying Catalog DB: " + e.message)\r
352                 }\r
353 \r
354                 return vnfsList\r
355         }\r
356 \r
357         public JSONArray getAllVnfsByVnfModelCustomizationUuid(String catalogDbEndpoint, String vnfModelCustomizationUuid) {\r
358                 JSONArray vnfsList = null\r
359                 String endPoint = catalogDbEndpoint + "/" + defaultDbAdapterVersion + "/serviceVnfs?vnfModelCustomizationUuid=" + UriUtils.encode(vnfModelCustomizationUuid, "UTF-8")\r
360                 try {\r
361                         msoLogger.debug("ENDPOINT: " + endPoint)\r
362                         String catalogDbResponse = getResponseFromCatalogDb(endPoint)\r
363 \r
364                         if (catalogDbResponse != null) {\r
365                                 vnfsList = parseVnfsJson(catalogDbResponse, "serviceVnfs", "v1")\r
366                         }\r
367 \r
368                 }\r
369                 catch (Exception e) {\r
370                         utils.log("ERROR", "Exception in Querying Catalog DB: " + e.message)\r
371                 }\r
372 \r
373                 return vnfsList\r
374         }\r
375         \r
376         public JSONArray getAllVnfsByVnfModelCustomizationUuid(String catalogDbEndpoint, String vnfModelCustomizationUuid, String catalogUtilsVersion) {\r
377                 JSONArray vnfsList = null\r
378                 String endPoint = catalogDbEndpoint + "/" + defaultDbAdapterVersion + "/serviceVnfs?vnfModelCustomizationUuid=" + UriUtils.encode(vnfModelCustomizationUuid, "UTF-8")\r
379                 try {\r
380                         msoLogger.debug("ENDPOINT: " + endPoint)\r
381                         String catalogDbResponse = getResponseFromCatalogDb(endPoint)\r
382 \r
383                         if (catalogDbResponse != null) {\r
384                                 vnfsList = parseVnfsJson(catalogDbResponse, "serviceVnfs", catalogUtilsVersion)\r
385 \r
386                         }\r
387 \r
388                 }\r
389                 catch (Exception e) {\r
390                         utils.log("ERROR", "Exception in Querying Catalog DB: " + e.message)\r
391                 }\r
392 \r
393                 return vnfsList\r
394         }\r
395 \r
396 \r
397         public JSONArray getAllottedResourcesByServiceModelUuid(String catalogDbEndpoint, String serviceModelUuid) {\r
398                 JSONArray vnfsList = null\r
399                 String endPoint = catalogDbEndpoint + "/" + defaultDbAdapterVersion + "/ServiceAllottedResources?serviceModelUuid=" + UriUtils.encode(serviceModelUuid, "UTF-8")\r
400                 try {\r
401                         String catalogDbResponse = getResponseFromCatalogDb(endPoint)\r
402 \r
403                         if (catalogDbResponse != null) {\r
404                                 vnfsList = parseAllottedResourcesJson(catalogDbResponse, "serviceAllottedResources", "v1")\r
405                         }\r
406 \r
407                 }\r
408                 catch (Exception e) {\r
409                         utils.log("ERROR", "Exception in Querying Catalog DB: " + e.message)\r
410                 }\r
411 \r
412                 return vnfsList\r
413         }\r
414         \r
415         public JSONArray getAllottedResourcesByServiceModelUuid(String catalogDbEndpoint, String serviceModelUuid, String catalogUtilsVersion) {\r
416                 JSONArray vnfsList = null\r
417                 String endPoint = catalogDbEndpoint + "/" + defaultDbAdapterVersion + "/ServiceAllottedResources?serviceModelUuid=" + UriUtils.encode(serviceModelUuid, "UTF-8")\r
418 \r
419                 try {\r
420                         String catalogDbResponse = getResponseFromCatalogDb(endPoint)\r
421 \r
422                         if (catalogDbResponse != null) {\r
423                                 vnfsList = parseAllottedResourcesJson(catalogDbResponse, "serviceAllottedResources", catalogUtilsVersion)\r
424                         }\r
425 \r
426                 }\r
427                 catch (Exception e) {\r
428                         utils.log("ERROR", "Exception in Querying Catalog DB: " + e.message)\r
429                 }\r
430 \r
431                 return vnfsList\r
432         }\r
433 \r
434         public JSONArray getAllottedResourcesByServiceModelInvariantUuid(String catalogDbEndpoint, String serviceModelInvariantUuid) {\r
435                 JSONArray vnfsList = null\r
436                 String endPoint = catalogDbEndpoint + "/" + defaultDbAdapterVersion + "/serviceAllottedResources?serviceModelInvariantUuid=" + UriUtils.encode(serviceModelInvariantUuid, "UTF-8")\r
437                 try {\r
438                         String catalogDbResponse = getResponseFromCatalogDb(endPoint)\r
439 \r
440                         if (catalogDbResponse != null) {\r
441                                 vnfsList = parseAllottedResourcesJson(catalogDbResponse, "serviceAllottedResources", "v1")\r
442                         }\r
443 \r
444                 }\r
445                 catch (Exception e) {\r
446                         utils.log("ERROR", "Exception in Querying Catalog DB: " + e.message)\r
447                 }\r
448 \r
449                 return vnfsList\r
450         }\r
451         \r
452         public JSONArray getAllottedResourcesByServiceModelInvariantUuid(String catalogDbEndpoint, String serviceModelInvariantUuid, String catalogUtilsVersion) {\r
453                 JSONArray vnfsList = null\r
454                 String endPoint = catalogDbEndpoint + "/" + defaultDbAdapterVersion + "/serviceAllottedResources?serviceModelInvariantUuid=" + UriUtils.encode(serviceModelInvariantUuid, "UTF-8")\r
455                 try {\r
456                         String catalogDbResponse = getResponseFromCatalogDb(endPoint)\r
457 \r
458                         if (catalogDbResponse != null) {\r
459                                 vnfsList = parseAllottedResourcesJson(catalogDbResponse, "serviceAllottedResources", catalogUtilsVersion)\r
460                         }\r
461 \r
462                 }\r
463                 catch (Exception e) {\r
464                         utils.log("ERROR", "Exception in Querying Catalog DB: " + e.message)\r
465                 }\r
466 \r
467                 return vnfsList\r
468         }\r
469 \r
470         public JSONArray getAllottedResourcesByServiceModelInvariantUuidAndServiceModelVersion(String catalogDbEndpoint, String serviceModelInvariantUuid, String serviceModelVersion) {\r
471                 JSONArray vnfsList = null\r
472                 String endPoint = catalogDbEndpoint + "/" + defaultDbAdapterVersion + "/serviceAllottedResources?serviceModelInvariantUuid=" + UriUtils.encode(serviceModelInvariantUuid, "UTF-8") + "&serviceModelVersion=" + UriUtils.encode(serviceModelVersion, "UTF-8")\r
473                 try {\r
474                         String catalogDbResponse = getResponseFromCatalogDb(endPoint)\r
475 \r
476                         if (catalogDbResponse != null) {\r
477                                 vnfsList = parseAllottedResourcesJson(catalogDbResponse, "serviceAllottedResources", "v1")\r
478                         }\r
479 \r
480                 }\r
481                 catch (Exception e) {\r
482                         utils.log("ERROR", "Exception in Querying Catalog DB: " + e.message)\r
483                 }\r
484 \r
485                 return vnfsList\r
486         }\r
487         \r
488         public JSONArray getAllottedResourcesByServiceModelInvariantUuidAndServiceModelVersion(String catalogDbEndpoint, String serviceModelInvariantUuid, String serviceModelVersion, String catalogUtilsVersion) {\r
489                 JSONArray vnfsList = null\r
490                 String endPoint = catalogDbEndpoint + "/" + defaultDbAdapterVersion + "/serviceAllottedResources?serviceModelInvariantUuid=" + UriUtils.encode(serviceModelInvariantUuid, "UTF-8") + "&serviceModelVersion=" + UriUtils.encode(serviceModelVersion, "UTF-8")\r
491 \r
492                 try {\r
493                         String catalogDbResponse = getResponseFromCatalogDb(endPoint)\r
494 \r
495                         if (catalogDbResponse != null) {\r
496                                 vnfsList = parseAllottedResourcesJson(catalogDbResponse, "serviceAllottedResources", catalogUtilsVersion)\r
497                         }\r
498 \r
499                 }\r
500                 catch (Exception e) {\r
501                         utils.log("ERROR", "Exception in Querying Catalog DB: " + e.message)\r
502                 }\r
503 \r
504                 return vnfsList\r
505         }\r
506 \r
507         public JSONArray getAllottedResourcesByArModelCustomizationUuid(String catalogDbEndpoint, String arModelCustomizationUuid) {\r
508                 JSONArray vnfsList = null\r
509                 String endPoint = catalogDbEndpoint + "/" + defaultDbAdapterVersion + "/serviceAllottedResources?serviceModelCustomizationUuid=" + UriUtils.encode(arModelCustomizationUuid, "UTF-8")\r
510                 try {\r
511                         String catalogDbResponse = getResponseFromCatalogDb(endPoint)\r
512 \r
513                         if (catalogDbResponse != null) {\r
514                                 vnfsList = parseAllottedResourcesJson(catalogDbResponse, "serviceAllottedResources", "v1")\r
515                         }\r
516 \r
517                 }\r
518                 catch (Exception e) {\r
519                         utils.log("ERROR", "Exception in Querying Catalog DB: " + e.message)\r
520                 }\r
521 \r
522                 return vnfsList\r
523         }\r
524         \r
525         public JSONArray getAllottedResourcesByArModelCustomizationUuid(String catalogDbEndpoint, String arModelCustomizationUuid, String catalogUtilsVersion) {\r
526                 JSONArray vnfsList = null\r
527                 String endPoint = catalogDbEndpoint + "/" + defaultDbAdapterVersion + "/serviceAllottedResources?serviceModelCustomizationUuid=" + UriUtils.encode(arModelCustomizationUuid, "UTF-8")\r
528                 try {\r
529                         String catalogDbResponse = getResponseFromCatalogDb(endPoint)\r
530 \r
531                         if (catalogDbResponse != null) {\r
532                                 vnfsList = parseAllottedResourcesJson(catalogDbResponse, "serviceAllottedResources", catalogUtilsVersion)\r
533                         }\r
534 \r
535                 }\r
536                 catch (Exception e) {\r
537                         utils.log("ERROR", "Exception in Querying Catalog DB: " + e.message)\r
538                 }\r
539 \r
540                 return vnfsList\r
541         }\r
542 \r
543         public JSONObject getServiceResourcesByServiceModelInvariantUuid(String catalogDbEndpoint, String serviceModelInvariantUuid) {\r
544                 JSONObject resources = null\r
545                 String endPoint = catalogDbEndpoint + "/" + defaultDbAdapterVersion + "/serviceResources?serviceModelInvariantUuid=" + UriUtils.encode(serviceModelInvariantUuid, "UTF-8")\r
546 \r
547                 try {\r
548                         String catalogDbResponse = getResponseFromCatalogDb(endPoint)\r
549 \r
550                         if (catalogDbResponse != null) {\r
551                                 resources = parseServiceResourcesJson(catalogDbResponse, "v1")\r
552                         }\r
553 \r
554                 }\r
555                 catch (Exception e) {\r
556                         utils.log("ERROR", "Exception in Querying Catalog DB: " + e.message)\r
557                 }\r
558 \r
559                 return resources\r
560         }\r
561         \r
562         public JSONObject getServiceResourcesByServiceModelInvariantUuid(String catalogDbEndpoint, String serviceModelInvariantUuid, String catalogUtilsVersion) {\r
563                 JSONObject resources = null\r
564                 String endPoint = catalogDbEndpoint + "/" + defaultDbAdapterVersion + "/serviceResources?serviceModelInvariantUuid=" + UriUtils.encode(serviceModelInvariantUuid, "UTF-8")\r
565                 try {\r
566                         String catalogDbResponse = getResponseFromCatalogDb(endPoint)\r
567 \r
568                         if (catalogDbResponse != null) {\r
569                                 resources = parseServiceResourcesJson(catalogDbResponse, catalogUtilsVersion)\r
570                         }\r
571 \r
572                 }\r
573                 catch (Exception e) {\r
574                         utils.log("ERROR", "Exception in Querying Catalog DB: " + e.message)\r
575                 }\r
576 \r
577                 return resources\r
578         }       \r
579         \r
580 \r
581         public JSONObject getServiceResourcesByServiceModelInvariantUuidAndServiceModelVersion(String catalogDbEndpoint, String serviceModelInvariantUuid, String serviceModelVersion) {\r
582                 JSONObject resources = null\r
583                 String endPoint = catalogDbEndpoint + "/" + defaultDbAdapterVersion + "/serviceResources?serviceModelInvariantUuid=" + UriUtils.encode(serviceModelInvariantUuid, "UTF-8") + "&serviceModelVersion=" + UriUtils.encode(serviceModelVersion, "UTF-8")\r
584                 try {\r
585                         String catalogDbResponse = getResponseFromCatalogDb(endPoint)\r
586 \r
587                         if (catalogDbResponse != null) {\r
588                                 resources = parseServiceResourcesJson(catalogDbResponse)\r
589                         }\r
590 \r
591                 }\r
592                 catch (Exception e) {\r
593                         utils.log("ERROR", "Exception in Querying Catalog DB: " + e.message)\r
594                 }\r
595 \r
596                 return resources\r
597         }\r
598         \r
599         public JSONObject getServiceResourcesByServiceModelInvariantUuidAndServiceModelVersion(String catalogDbEndpoint, String serviceModelInvariantUuid, String serviceModelVersion, String catalogUtilsVersion) {\r
600                 JSONObject resources = null\r
601                 String endPoint = catalogDbEndpoint + "/" + defaultDbAdapterVersion + "/serviceResources?serviceModelInvariantUuid=" + UriUtils.encode(serviceModelInvariantUuid, "UTF-8") + "&serviceModelVersion=" + UriUtils.encode(serviceModelVersion, "UTF-8")\r
602                 try {\r
603                         String catalogDbResponse = getResponseFromCatalogDb(endPoint)\r
604 \r
605                         if (catalogDbResponse != null) {\r
606                                 resources = parseServiceResourcesJson(catalogDbResponse, catalogUtilsVersion)\r
607                         }\r
608 \r
609                 }\r
610                 catch (Exception e) {\r
611                         utils.log("ERROR", "Exception in Querying Catalog DB: " + e.message)\r
612                 }\r
613 \r
614                 return resources\r
615         }\r
616 \r
617 \r
618 \r
619         private JSONArray parseNetworksJson (String catalogDbResponse, String arrayName, String catalogUtilsVersion) {\r
620                 JSONArray modelInfos = null\r
621 \r
622                 msoLogger.debug("parseNetworksJson - catalogUtilsVersion is " + catalogUtilsVersion)\r
623                 try {\r
624                         // Create array of jsons\r
625 \r
626                         JSONObject responseJson = new JSONObject(catalogDbResponse)\r
627                         JSONArray networks = responseJson.getJSONArray(arrayName)\r
628                         modelInfos = new JSONArray()\r
629 \r
630                         for (int i = 0; i < networks.length(); i++) {\r
631                                 \r
632                                 JSONObject network = networks.getJSONObject(i)\r
633                                 JSONObject modelJson = new JSONObject()\r
634                                 JSONObject modelInfo = buildModelInfo("network", network, catalogUtilsVersion)\r
635                                 modelJson.put("modelInfo", modelInfo)\r
636                                 String networkType = jsonUtils.getJsonValueForKey(network, "networkType")\r
637                                 modelJson.put("networkType", networkType)\r
638                                 \r
639                                 switch (catalogUtilsVersion) {\r
640                                         case "v1":\r
641                                                 break\r
642                                         default:\r
643                                                 String toscaNodeType = jsonUtils.getJsonValueForKey(network, "toscaNodeType")\r
644                                                 modelJson.put("toscaNodeType", toscaNodeType)\r
645                                                 String networkTechnology = jsonUtils.getJsonValueForKey(network, "networkTechnology")\r
646                                                 modelJson.put("networkTechnology", networkTechnology)\r
647                                                 String networkRole = jsonUtils.getJsonValueForKey(network, "networkRole")\r
648                                                 modelJson.put("networkRole", networkRole)\r
649                                                 String networkScope = jsonUtils.getJsonValueForKey(network, "networkScope")\r
650                                                 modelJson.put("networkScope", networkScope)\r
651                                                 break                                           \r
652                                 }\r
653                                 modelInfos.put(modelJson)\r
654                         }\r
655 \r
656                         String modelInfosString = modelInfos.toString()\r
657                         msoLogger.debug("Returning networks JSON: " + modelInfosString)\r
658 \r
659                 } catch (Exception e) {\r
660                         utils.log("ERROR", "Exception in parsing Catalog DB Response: " + e.message)\r
661                 }\r
662 \r
663                 return modelInfos\r
664         }\r
665 \r
666         private JSONArray parseVnfsJson (String catalogDbResponse, String arrayName, String catalogUtilsVersion) {\r
667                 JSONArray modelInfos = null\r
668                 \r
669                 msoLogger.debug("parseVnfsJson - catalogUtilsVersion is " + catalogUtilsVersion)\r
670 \r
671                 try {\r
672                         // Create array of jsons\r
673 \r
674                         JSONObject responseJson = new JSONObject(catalogDbResponse)\r
675                         JSONArray vnfs = responseJson.getJSONArray(arrayName)\r
676                         modelInfos = new JSONArray()\r
677 \r
678                         for (int i = 0; i < vnfs.length(); i++) {\r
679                                 JSONObject vnf = vnfs.getJSONObject(i)\r
680 \r
681                                 msoLogger.debug(vnf.toString(2))\r
682                                 JSONObject modelInfo = buildModelInfo("vnf", vnf, catalogUtilsVersion)\r
683                                 JSONObject modelJson = new JSONObject()\r
684                                 modelJson.put("modelInfo", modelInfo)\r
685                                 switch(catalogUtilsVersion) {\r
686                                         case "v1":\r
687                                                 break\r
688                                         default:\r
689                                                 String toscaNodeType = jsonUtils.getJsonValueForKey(vnf, "toscaNodeType")\r
690                                                 modelJson.put("toscaNodeType", toscaNodeType)\r
691                                                 String nfType = jsonUtils.getJsonValueForKey(vnf, "nfType")\r
692                                                 modelJson.put("nfType", nfType)\r
693                                                 String nfRole = jsonUtils.getJsonValueForKey(vnf, "nfRole")\r
694                                                 modelJson.put("nfRole", nfRole)\r
695                                                 String nfCode = jsonUtils.getJsonValueForKey(vnf, "nfCode")\r
696                                                 modelJson.put("nfCode", nfCode)\r
697                                                 break                                           \r
698                                 }\r
699                                 \r
700                                 JSONObject vnfJson = vnf.getJSONObject("vnf")                                                                                           \r
701                                 JSONArray vfModules = null\r
702                                 try {\r
703                                         vfModules = vnfJson.getJSONArray("vfModules")\r
704                                 } catch (Exception e)\r
705                                 {\r
706                                         msoLogger.debug("Cannot find VF MODULE ARRAY: " + i + ", exception is " + e.message)\r
707                                 }\r
708 \r
709                                 if (vfModules != null) {\r
710                                         JSONArray vfModuleInfo = new JSONArray()\r
711                                         for (int j = 0; j < vfModules.length(); j++) {\r
712                                                 JSONObject vfModule = vfModules.getJSONObject(j)\r
713                                                 JSONObject vfModuleModelInfo = buildModelInfo("vfModule", vfModule, catalogUtilsVersion)\r
714                                                 JSONObject vfModuleModelJson = new JSONObject()\r
715                                                 vfModuleModelJson.put("modelInfo", vfModuleModelInfo)\r
716                                                 String vfModuleType = jsonUtils.getJsonValueForKey(vfModule, "type")\r
717                                                 vfModuleModelJson.put("vfModuleType", vfModuleType)\r
718                                                 switch(catalogUtilsVersion) {\r
719                                                         case "v1":\r
720                                                                 Integer isBase = jsonUtils.getJsonIntValueForKey(vfModule, "isBase")\r
721                                                                 if (isBase.intValue() == 1) {\r
722                                                                         vfModuleModelJson.put("isBase", "true")\r
723                                                                 }\r
724                                                                 else {\r
725                                                                         vfModuleModelJson.put("isBase", "false")\r
726                                                                 }\r
727                                                                 break\r
728                                                         default:\r
729                                                                 boolean isBase = jsonUtils.getJsonBooleanValueForKey(vfModule, "isBase")\r
730                                                                 vfModuleModelJson.put("isBase", isBase)\r
731                                                                 break\r
732                                                 }                                                                                       \r
733                                                 String vfModuleLabel = jsonUtils.getJsonValueForKey(vfModule, "label")\r
734                                                 vfModuleModelJson.put("vfModuleLabel", vfModuleLabel)\r
735                                                 Integer initialCount = jsonUtils.getJsonIntValueForKey(vfModule, "initialCount")\r
736                                                 vfModuleModelJson.put("initialCount", initialCount.intValue())\r
737                                                 vfModuleInfo.put(vfModuleModelJson)\r
738                                         }\r
739                                         modelJson.put("vfModules", vfModuleInfo)\r
740                                 }\r
741                                 modelInfos.put(modelJson)\r
742                         }\r
743                         \r
744                         String modelInfosString = modelInfos.toString()\r
745                         msoLogger.debug("Returning vnfs JSON: " + modelInfosString)\r
746 \r
747                 } catch (Exception e) {\r
748                         utils.log("ERROR", "Exception in parsing Catalog DB Response: " + e.message)\r
749                 }\r
750 \r
751                 return modelInfos\r
752         }\r
753 \r
754         private JSONArray parseAllottedResourcesJson (String catalogDbResponse, String arrayName, String catalogUtilsVersion) {\r
755                 JSONArray modelInfos = null\r
756                 \r
757                 msoLogger.debug("parseAllottedResourcesJson - catalogUtilsVersion is " + catalogUtilsVersion)\r
758 \r
759                 try {\r
760                         // Create array of jsons\r
761 \r
762                         JSONObject responseJson = new JSONObject(catalogDbResponse)\r
763                         JSONArray allottedResources = responseJson.getJSONArray(arrayName)\r
764                         modelInfos = new JSONArray()\r
765 \r
766                         for (int i = 0; i < allottedResources.length(); i++) {\r
767                                 JSONObject allottedResource = allottedResources.getJSONObject(i)\r
768                                 JSONObject modelInfo = buildModelInfo("allottedResource", allottedResource, catalogUtilsVersion)\r
769                                 JSONObject modelJson = new JSONObject()\r
770                                 modelJson.put("modelInfo", modelInfo)\r
771                                 switch(catalogUtilsVersion) {\r
772                                         case "v1":\r
773                                                 break\r
774                                         default:\r
775                                                 String toscaNodeType = jsonUtils.getJsonValueForKey(allottedResource, "toscaNodeType")\r
776                                                 modelJson.put("toscaNodeType", toscaNodeType)\r
777                                                 String parentServiceModelUuid = jsonUtils.getJsonValueForKey(allottedResource, "parentServiceModelUuid")\r
778                                                 modelJson.put("parentServiceModelUuid", parentServiceModelUuid)\r
779                                                 break\r
780                                 }\r
781                                                 \r
782                                 \r
783                                 modelInfos.put(modelJson)\r
784                         }\r
785 \r
786                         String modelInfosString = modelInfos.toString()\r
787                         msoLogger.debug("Returning allottedResources JSON: " + modelInfosString)\r
788 \r
789                 } catch (Exception e) {\r
790                         utils.log("ERROR", "Exception in parsing Catalog DB Response: " + e.message)\r
791                 }\r
792 \r
793                 return modelInfos\r
794         }\r
795 \r
796         private JSONObject parseServiceResourcesJson (String catalogDbResponse) {\r
797                 JSONObject serviceResources = new JSONObject()\r
798                 String catalogUtilsVersion = "v1"\r
799 \r
800                 try {\r
801                         // Create array of jsons\r
802 \r
803                         JSONObject responseJson = new JSONObject(catalogDbResponse)\r
804                         JSONObject serviceResourcesRoot = responseJson.getJSONObject("serviceResources")\r
805                         JSONArray vnfsArray = parseVnfsJson(serviceResourcesRoot.toString(), "vnfResources", catalogUtilsVersion)\r
806                         serviceResources.put("vnfs", vnfsArray)\r
807                         JSONArray networksArray = parseNetworksJson(serviceResourcesRoot.toString(), "networkResourceCustomization", catalogUtilsVersion)\r
808                         serviceResources.put("networks", networksArray)\r
809                         JSONArray allottedResourcesArray = parseAllottedResourcesJson(serviceResourcesRoot.toString(), "allottedResourceCustomization", catalogUtilsVersion)\r
810                         serviceResources.put("allottedResources", allottedResourcesArray)\r
811 \r
812                         String serviceResourcesString = serviceResources.toString()\r
813                         msoLogger.debug("Returning serviceResources JSON: " + serviceResourcesString)\r
814 \r
815                 } catch (Exception e) {\r
816                         utils.log("ERROR", "Exception in parsing Catalog DB Response: " + e.message)\r
817                 }\r
818 \r
819                 return serviceResources\r
820         }\r
821         \r
822         private JSONObject parseServiceResourcesJson (String catalogDbResponse, String catalogUtilsVersion) {\r
823                 JSONObject serviceResources = new JSONObject()\r
824                 JSONObject serviceResourcesObject = new JSONObject()\r
825                 String serviceResourcesString = ""              \r
826 \r
827                 try {\r
828                         // Create array of jsons\r
829 \r
830                         JSONObject responseJson = new JSONObject(catalogDbResponse)\r
831                         JSONObject serviceResourcesRoot = responseJson.getJSONObject("serviceResources")                        \r
832                         JSONObject modelInfo = buildModelInfo("", serviceResourcesRoot, catalogUtilsVersion)\r
833                         serviceResources.put("modelInfo", modelInfo)\r
834                         JSONArray vnfsArray = parseVnfsJson(serviceResourcesRoot.toString(), "serviceVnfs", catalogUtilsVersion)\r
835                         serviceResources.put("serviceVnfs", vnfsArray)\r
836                         JSONArray networksArray = parseNetworksJson(serviceResourcesRoot.toString(), "serviceNetworks", catalogUtilsVersion)\r
837                         serviceResources.put("serviceNetworks", networksArray)\r
838                         JSONArray allottedResourcesArray = parseAllottedResourcesJson(serviceResourcesRoot.toString(), "serviceAllottedResources", catalogUtilsVersion)\r
839                         serviceResources.put("serviceAllottedResources", allottedResourcesArray)\r
840                         serviceResourcesObject.put("serviceResources", serviceResources)\r
841 \r
842                         serviceResourcesString = serviceResourcesObject.toString()\r
843                         msoLogger.debug("Returning serviceResources JSON: " + serviceResourcesString)\r
844 \r
845                 } catch (Exception e) {\r
846                         utils.log("ERROR", "Exception in parsing Catalog DB Response: " + e.message)\r
847                 }\r
848 \r
849                 return serviceResourcesObject\r
850         }\r
851 \r
852         private JSONObject buildModelInfo(String modelType, JSONObject modelFromDb, String catalogUtilsVersion) {\r
853                 JSONObject modelInfo = null\r
854                 try {\r
855                         modelInfo = new JSONObject()\r
856                         modelInfo.put("modelType", modelType)\r
857                         String modelInvariantId = jsonUtils.getJsonValueForKey(modelFromDb, "modelInvariantUuid")\r
858                         modelInfo.put("modelInvariantId", modelInvariantId)\r
859                         if(modelType.equalsIgnoreCase("allottedResource")){\r
860                                 String modelInstanceName = jsonUtils.getJsonValueForKey(modelFromDb, "modelInstanceName")\r
861                                 modelInfo.put("modelInstanceName", modelInstanceName)\r
862                         }\r
863                         if (!"vfModule".equals(modelType) && !"vnf".equals(modelType)) {\r
864                                 String modelVersionId = jsonUtils.getJsonValueForKey(modelFromDb, "modelUuid")\r
865                                 modelInfo.put("modelVersionId", modelVersionId)\r
866                         }\r
867                         else {\r
868                                 String modelVersionId = jsonUtils.getJsonValueForKey(modelFromDb, "asdcUuid")\r
869                                 modelInfo.put("modelVersionId", modelVersionId)\r
870                         }\r
871                         String modelName = jsonUtils.getJsonValueForKey(modelFromDb, "modelName")\r
872                         modelInfo.put("modelName", modelName)\r
873                         String modelVersion = jsonUtils.getJsonValueForKey(modelFromDb, "modelVersion")\r
874                         modelInfo.put("modelVersion", modelVersion)\r
875                         if (!"vfModule".equals(modelType)) {\r
876                                 String modelCustomizationName = jsonUtils.getJsonValueForKey(modelFromDb, "modelCustomizationName")\r
877                                 modelInfo.put("modelCustomizationName", modelCustomizationName)\r
878                         }\r
879                         String modelCustomizationId = jsonUtils.getJsonValueForKey(modelFromDb, "modelCustomizationUuid")\r
880                         switch (catalogUtilsVersion) {\r
881                                 case "v1":\r
882                                         modelInfo.put("modelCustomizationId", modelCustomizationId)\r
883                                         break\r
884                                 default:\r
885                                         modelInfo.put("modelCustomizationUuid", modelCustomizationId)\r
886                                         break\r
887                         }                       \r
888                         JSONObject modelJson = new JSONObject()\r
889                         modelJson.put("modelInfo", modelInfo)\r
890                 }\r
891                 catch (Exception e) {\r
892                         utils.log("ERROR", "Exception while parsing model information: " + e.message)\r
893                 }\r
894                 return modelInfo\r
895         }\r
896 \r
897         private String getResponseFromCatalogDb (String endPoint) {\r
898                 try {\r
899                         RESTConfig config = new RESTConfig(endPoint);\r
900                         def responseData = ''\r
901                         def bpmnRequestId = UUID.randomUUID().toString()\r
902                         RESTClient client = new RESTClient(config).\r
903                                 addHeader('X-TransactionId', bpmnRequestId).\r
904                                 addHeader('X-FromAppId', 'BPMN').\r
905                                 addHeader('Content-Type', 'application/json').\r
906                                 addHeader('Accept','application/json');\r
907                         msoLogger.debug('sending GET to Catalog DB endpoint' + endPoint)\r
908                         APIResponse response = client.httpGet()\r
909 \r
910                         responseData = response.getResponseBodyAsString()\r
911                         if (responseData != null) {\r
912                                 msoLogger.debug("Received data from Catalog DB: " + responseData)\r
913                         }\r
914 \r
915                         msoLogger.debug('Response code:' + response.getStatusCode())\r
916                         msoLogger.debug('Response:' + System.lineSeparator() + responseData)\r
917                         if (response.getStatusCode() == 200) {\r
918                                 // parse response as needed\r
919                                 return responseData\r
920                         }\r
921                         else {\r
922                                 return null\r
923                         }\r
924                 }\r
925                 catch (Exception e) {\r
926                         msoLogger.debug("ERROR WHILE QUERYING CATALOG DB: " + e.message)\r
927                         return null\r
928                 }\r
929 \r
930         }\r
931 }\r