[VID-6] Initial rebase push
[vid.git] / vid-app-common / src / main / webapp / app / vid / scripts / services / deletionService.js
1 /*-\r
2  * ============LICENSE_START=======================================================\r
3  * VID\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 "use strict";\r
22 \r
23 var DeletionService = function($log, AaiService, AsdcService, DataService,\r
24         ComponentService, COMPONENT, FIELD, UtilityService) {\r
25 \r
26     var _this = this;\r
27 \r
28     var getAsyncOperationList = function() {\r
29         if (DataService.getLoggedInUserId() == null)\r
30                         getLoggedInUserID();\r
31                 switch (_this.componentId) {\r
32                 case COMPONENT.SERVICE:\r
33                         return [ getSubscribers, getLcpCloudRegionTenantList ];\r
34                 case COMPONENT.NETWORK:\r
35                         return [ getLcpCloudRegionTenantList ];\r
36                 case COMPONENT.VNF:\r
37                         return [ getLcpCloudRegionTenantList ];\r
38                 case COMPONENT.VF_MODULE:\r
39                         return [ getLcpCloudRegionTenantList ];\r
40                 case COMPONENT.VOLUME_GROUP:\r
41                         return [ getLcpCloudRegionTenantList ];\r
42                 }\r
43         };\r
44         \r
45         var getLcpCloudRegionTenantList = function() {\r
46                 //console.log ( "global customer id: " ); \r
47                 //console.log ( JSON.stringify (DataService.getGlobalCustomerId()) );\r
48                 \r
49                 //console.log ( "service type: " ); \r
50                 //console.log ( JSON.stringify (DataService.getServiceType()) );\r
51                 \r
52                 AaiService.getLcpCloudRegionTenantList(DataService\r
53                                 .getGlobalCustomerId(), DataService.getServiceType(), function(\r
54                                 response) {\r
55                         DataService.setCloudRegionTenantList(response);\r
56                         UtilityService.startNextAsyncOperation();\r
57                 });\r
58         };\r
59         \r
60         var getLoggedInUserID = function() {\r
61                 AaiService.getLoggedInUserID(function(response) {\r
62                         DataService.setLoggedInUserId(response.data);\r
63                         UtilityService.startNextAsyncOperation();\r
64                 });\r
65         };\r
66         \r
67         var getSubscribers = function() {\r
68                 AaiService.getSubscribers(function(response) {\r
69                         DataService.setSubscribers(response);\r
70                         UtilityService.startNextAsyncOperation();\r
71                 });\r
72         };\r
73         \r
74         var internalGetParametersHandler = function() {\r
75                 if (angular.isFunction(_this.getParametersHandler)) {\r
76                                 if (_this.componentId == COMPONENT.SERVICE) {\r
77                                         if ( DataService.getALaCarte() ) {\r
78                                                 _this.getParametersHandler({\r
79                                                         summaryList : getSummaryList(),\r
80                                                         userProvidedList : getUserProvidedList()\r
81                                                 }, true);\r
82                                         }\r
83                                         else {\r
84                                                 _this.getParametersHandler({\r
85                                                         summaryList : getSummaryList(),\r
86                                                         userProvidedList : getUserProvidedList()\r
87                                                 }, false);\r
88                                         }\r
89                         }\r
90                         else {\r
91                                 _this.getParametersHandler({\r
92                                         summaryList : getSummaryList(),\r
93                                         userProvidedList : getUserProvidedList()\r
94                                 }, false);\r
95                         }\r
96                 }\r
97         };\r
98         \r
99         var getSubscribersParameter = function() {\r
100                 var subscribers = DataService.getSubscribers();\r
101                 var parameter = FIELD.PARAMETER.SUBSCRIBER_NAME;\r
102                 parameter.optionList = [];\r
103 \r
104                 for (var i = 0; i < subscribers.length; i++) {\r
105                         parameter.optionList.push({\r
106                                 id : subscribers[i][FIELD.ID.GLOBAL_CUSTOMER_ID],\r
107                                 name : subscribers[i][FIELD.ID.SUBNAME]\r
108                         })\r
109                 }\r
110                 return parameter;\r
111         };\r
112         \r
113         var getServiceId = function() {\r
114                 var serviceIdList = DataService.getServiceIdList();\r
115                 var parameter = FIELD.PARAMETER.PRODUCT_FAMILY;\r
116                 parameter.optionList = new Array();\r
117                 for (var i = 0; i < serviceIdList.length; i++) {\r
118                         parameter.optionList.push({\r
119                                 id : serviceIdList[i].id,\r
120                                 name : serviceIdList[i].description\r
121                         });\r
122                 }\r
123                 return parameter;\r
124         };\r
125         \r
126         var getUserProvidedList = function() {\r
127 \r
128                 //var parameterList = [ FIELD.PARAMETER.INSTANCE_NAME ];\r
129 \r
130                 var parameterList = [];\r
131                 \r
132                 switch (_this.componentId) {\r
133                 case COMPONENT.SERVICE:\r
134                         if ( DataService.getALaCarte() ) {\r
135                                 parameterList = [];\r
136                         }\r
137                         else {\r
138                                 parameterList = parameterList.concat ([getLcpRegion(),\r
139                                     FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN,\r
140                                     FIELD.PARAMETER.TENANT_DISABLED ]);\r
141                         }\r
142                         break;\r
143                 case COMPONENT.NETWORK:\r
144                 case COMPONENT.VNF:\r
145                         parameterList = parameterList.concat([ //getServiceId(),\r
146                                         getLcpRegion(), FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN,\r
147                                         FIELD.PARAMETER.TENANT_DISABLED ]);\r
148                         break;\r
149                 case COMPONENT.VF_MODULE:\r
150                         parameterList = parameterList.concat([\r
151                                 getLcpRegion(),\r
152                                         FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN,\r
153                                         FIELD.PARAMETER.TENANT_DISABLED\r
154                         ]);\r
155                         \r
156                         break;\r
157                 case COMPONENT.VOLUME_GROUP:\r
158                         parameterList = parameterList.concat([ getLcpRegion(),\r
159                                         FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN,\r
160                                         FIELD.PARAMETER.TENANT_DISABLED ]);\r
161                 }\r
162 \r
163                 //parameterList.push(FIELD.PARAMETER.SUPPRESS_ROLLBACK);\r
164 \r
165                 //addArbitraryParameters(parameterList);\r
166 \r
167                 return parameterList;\r
168         };\r
169     var getSummaryList = function() {\r
170         switch (_this.componentId) {\r
171         case COMPONENT.NETWORK:\r
172         case COMPONENT.SERVICE:\r
173         case COMPONENT.VNF:\r
174         case COMPONENT.VF_MODULE:\r
175         case COMPONENT.VOLUME_GROUP:\r
176             var summaryList = [ {\r
177                 name : FIELD.NAME.SUBSCRIBER_NAME,\r
178                 value : DataService.getSubscriberName()\r
179             }, {\r
180                 name : FIELD.NAME.CUSTOMER_ID,\r
181                 value : DataService.getGlobalCustomerId()\r
182             }, {\r
183                 name : FIELD.NAME.SERVICE_UUID,\r
184                 value : DataService.getServiceUuid()\r
185             }, {\r
186                 name : FIELD.NAME.SERVICE_NAME,\r
187                 value : DataService.getServiceName()\r
188            /* }, {\r
189                 name : FIELD.NAME.USER_SERVICE_INSTANCE_NAME,\r
190                 value : DataService.getUserServiceInstanceName()*/\r
191             } ];\r
192 \r
193                 _this.parameterList = new Array();\r
194                 \r
195                 addToList(FIELD.NAME.SERVICE_NAME, DataService.getServiceName());\r
196 \r
197                 switch (_this.componentId) {\r
198                 case COMPONENT.SERVICE:\r
199                         addToList(FIELD.NAME.SERVICE_INVARIANT_UUID, DataService\r
200                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);\r
201                         addToList(FIELD.NAME.SERVICE_VERSION, DataService\r
202                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_VERSION]);\r
203                         addToList(FIELD.NAME.SERVICE_UUID, DataService\r
204                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME_VERSION_ID]);\r
205                         addToList(FIELD.NAME.SERVICE_DESCRIPTION, DataService\r
206                                         .getModelInfo(_this.componentId)[FIELD.ID.DESCRIPTION]);\r
207                         addToList(FIELD.NAME.SERVICE_CATEGORY, DataService\r
208                                         .getModelInfo(_this.componentId)[FIELD.ID.CATEGORY]);\r
209                         break;\r
210                 case COMPONENT.VF_MODULE:\r
211                         addToList(FIELD.NAME.SUBSCRIBER_NAME, DataService\r
212                                         .getSubscriberName());\r
213                         addToList(FIELD.NAME.SERVICE_INSTANCE_NAME, DataService\r
214                                         .getServiceInstanceName());\r
215                         addToList(FIELD.NAME.MODEL_NAME, DataService\r
216                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME]);\r
217                         addToList(FIELD.NAME.MODEL_INVARIANT_UUID, DataService\r
218                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);\r
219                         addToList(FIELD.NAME.MODEL_VERSION, DataService\r
220                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_VERSION]);\r
221                         addToList(FIELD.NAME.MODEL_UUID, DataService\r
222                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME_VERSION_ID]);\r
223                         break;\r
224                 case COMPONENT.NETWORK:\r
225                 case COMPONENT.VNF:\r
226                 case COMPONENT.VOLUME_GROUP:\r
227                         addToList(FIELD.NAME.SUBSCRIBER_NAME, DataService\r
228                                         .getSubscriberName());\r
229                         addToList(FIELD.NAME.SERVICE_INSTANCE_NAME, DataService\r
230                                         .getServiceInstanceName());\r
231                         addToList(FIELD.NAME.MODEL_NAME, DataService\r
232                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME]);\r
233                         addToList(FIELD.NAME.MODEL_INVARIANT_UUID, DataService\r
234                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);\r
235                         addToList(FIELD.NAME.MODEL_VERSION, DataService\r
236                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_VERSION]);\r
237                         addToList(FIELD.NAME.MODEL_UUID, DataService\r
238                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME_VERSION_ID]);\r
239                         break;\r
240                 }\r
241                 \r
242             /*var additionalList = ComponentService.getInventoryParameterList(\r
243                     _this.componentId, DataService.getInventoryItem());*/\r
244                 var additionalList = ComponentService.getDisplayNames(ComponentService\r
245                             .getInventoryParameterList(_this.componentId, DataService\r
246                                     .getInventoryItem(), true ));\r
247 \r
248             return summaryList.concat(ComponentService\r
249                     .getDisplayNames(additionalList));\r
250         }\r
251     };\r
252 \r
253     var getMsoUrl = function() {\r
254         switch (_this.componentId) {\r
255         case COMPONENT.NETWORK:\r
256             return "mso_delete_nw_instance/"\r
257                     + DataService.getServiceInstanceId() + "/networks/"\r
258                     + DataService.getNetworkInstanceId();\r
259         case COMPONENT.SERVICE:\r
260             return "mso_delete_svc_instance/"\r
261                     + DataService.getServiceInstanceId();\r
262         case COMPONENT.VNF:\r
263             return "mso_delete_vnf_instance/"\r
264                     + DataService.getServiceInstanceId() + "/vnfs/"\r
265                     + DataService.getVnfInstanceId();\r
266         case COMPONENT.VF_MODULE:\r
267             return "mso_delete_vfmodule_instance/"\r
268                     + DataService.getServiceInstanceId() + "/vnfs/"\r
269                     + DataService.getVnfInstanceId() + "/vfModules/"\r
270                     + DataService.getVfModuleInstanceId();\r
271         case COMPONENT.VOLUME_GROUP:\r
272             return "mso_delete_volumegroup_instance/"\r
273                     + DataService.getServiceInstanceId() + "/vnfs/"\r
274                     + DataService.getVnfInstanceId() + "/volumeGroups/"\r
275                     + DataService.getVolumeGroupInstanceId();\r
276         }\r
277     }\r
278 \r
279         var addToList = function(name, value) {\r
280                 _this.parameterList.push({\r
281                         name : name,\r
282                         value : value\r
283                 });\r
284         };\r
285         \r
286     var getMsoRequestDetails = function(parameterList) {\r
287         console.log("getMsoRequestDetails invoked");\r
288                 var inventoryInfo = ComponentService.getInventoryInfo(\r
289                         _this.componentId, DataService.getInventoryItem());\r
290                 var modelInfo = DataService.getModelInfo(_this.componentId);\r
291                 var requestorloggedInId = DataService.getLoggedInUserId();\r
292                 if (requestorloggedInId ==  null)\r
293                         requestorloggedInId = "";\r
294                 var requestDetails = {\r
295                                 modelInfo : {\r
296                                         modelType : _this.componentId,\r
297                                         modelInvariantId : modelInfo.modelInvariantId,\r
298                                         modelVersionId : modelInfo.modelNameVersionId,\r
299                                         modelName : modelInfo.modelName,\r
300                                         modelCustomizationName : modelInfo.modelCustomizationName,\r
301                                         modelCustomizationId : modelInfo.customizationUuid,\r
302                                         modelVersion : modelInfo.modelVersion\r
303                                 },\r
304                                 requestInfo : {\r
305                                         source : FIELD.ID.VID,\r
306                                         requestorId: requestorloggedInId\r
307                                 }\r
308                 };\r
309                 \r
310                 switch (_this.componentId) {\r
311                         case COMPONENT.SERVICE:\r
312                                 requestDetails.requestParameters = {\r
313                                         aLaCarte : DataService.getALaCarte()\r
314                                 };\r
315                                 if ( !(DataService.getALaCarte()) ) {\r
316                                         // for macro delete include cloud config.\r
317                                         var lcpRegion = getValueFromList(FIELD.ID.LCP_REGION, parameterList);\r
318                                         if (lcpRegion === FIELD.KEY.LCP_REGION_TEXT) {\r
319                                                 lcpRegion = getValueFromList(FIELD.ID.LCP_REGION_TEXT,\r
320                                                                 parameterList);\r
321                                         }\r
322                                         requestDetails.cloudConfiguration = {\r
323                                                 lcpCloudRegionId : lcpRegion,\r
324                                                 tenantId : getValueFromList(FIELD.ID.TENANT, parameterList)\r
325                                         };\r
326                                 }\r
327                             break;\r
328                         case COMPONENT.VNF:\r
329                             console.log("getMsoRequestDetails COMPONENT.VNF");\r
330                                 var lcpRegion = getValueFromList(FIELD.ID.LCP_REGION, parameterList);\r
331                                 if (lcpRegion === FIELD.KEY.LCP_REGION_TEXT) {\r
332                                         lcpRegion = getValueFromList(FIELD.ID.LCP_REGION_TEXT,\r
333                                                         parameterList);\r
334                                 }\r
335                                 requestDetails.cloudConfiguration = {\r
336                                         lcpCloudRegionId : lcpRegion,\r
337                                         tenantId : getValueFromList(FIELD.ID.TENANT, parameterList)\r
338                                 };\r
339         \r
340                                 break;\r
341                         case COMPONENT.VF_MODULE:\r
342                         case COMPONENT.NETWORK:\r
343                                         var lcpRegion = getValueFromList(FIELD.ID.LCP_REGION, parameterList);\r
344                                         if (lcpRegion === FIELD.KEY.LCP_REGION_TEXT) {\r
345                                                 lcpRegion = getValueFromList(FIELD.ID.LCP_REGION_TEXT,\r
346                                                                 parameterList);\r
347                                         }\r
348                                         requestDetails.cloudConfiguration = {\r
349                                                         lcpCloudRegionId : lcpRegion,\r
350                                                         tenantId : getValueFromList(FIELD.ID.TENANT, parameterList)\r
351                                         };      \r
352                                         break;\r
353                         case COMPONENT.VOLUME_GROUP:\r
354                                 var lcpRegion = getValueFromList(FIELD.ID.LCP_REGION, parameterList);\r
355                                 if (lcpRegion === FIELD.KEY.LCP_REGION_TEXT) {\r
356                                         lcpRegion = getValueFromList(FIELD.ID.LCP_REGION_TEXT,\r
357                                                         parameterList);\r
358                                 }\r
359                                 requestDetails.cloudConfiguration = {\r
360                                                 lcpCloudRegionId : lcpRegion,\r
361                                                 tenantId : getValueFromList(FIELD.ID.TENANT, parameterList)\r
362                                 };      \r
363                                 \r
364                                 break;\r
365                         default:\r
366                                 requestDetails.cloudConfiguration = {\r
367                                         lcpCloudRegionId : DataService.getLcpRegion(),\r
368                                         tenantId : DataService.getTenant()\r
369                                 };\r
370                 }\r
371                 return requestDetails;\r
372     }\r
373     \r
374     var getLcpRegion = function() {\r
375                 var cloudRegionTenantList = DataService.getCloudRegionTenantList();\r
376                 var parameter = "";\r
377                 if ( UtilityService.hasContents (cloudRegionTenantList) ) {\r
378                         parameter = FIELD.PARAMETER.LCP_REGION;\r
379                         parameter.optionList = new Array();\r
380                         for (var i = 0; i < cloudRegionTenantList.length; i++) {\r
381                                 for (var j = 0; j < parameter.optionList.length; j++) {\r
382                                         if (parameter.optionList[j].id === cloudRegionTenantList[i].cloudRegionId) {\r
383                                                 break;\r
384                                         }\r
385                                 }\r
386                                 if (j < parameter.optionList.length) {\r
387                                         continue;\r
388                                 }\r
389                                 parameter.optionList.push({\r
390                                         id : cloudRegionTenantList[i].cloudRegionId\r
391                                 });\r
392                         }\r
393                 }\r
394                 return parameter;\r
395         };\r
396         \r
397         var getTenantList = function(cloudRegionId) {\r
398                 var parameter = "";\r
399                 var cloudRegionTenantList = DataService.getCloudRegionTenantList();\r
400                 if ( UtilityService.hasContents (cloudRegionTenantList) ) {\r
401                         var parameter = FIELD.PARAMETER.TENANT_ENABLED;\r
402                         parameter.optionList = new Array();\r
403                         for (var i = 0; i < cloudRegionTenantList.length; i++) {\r
404                                 if (cloudRegionTenantList[i].cloudRegionId === cloudRegionId) {\r
405                                         parameter.optionList.push({\r
406                                                 id : cloudRegionTenantList[i].tenantId,\r
407                                                 name : cloudRegionTenantList[i].tenantName\r
408                                         });\r
409                                 }\r
410                         }\r
411                 }\r
412                 return parameter;\r
413 \r
414         };\r
415 \r
416         var addOptionList = function(parameter, optionSimpleArray) {\r
417                 var optionList = new Array();\r
418                 if (!angular.isArray(optionSimpleArray)) {\r
419                         return optionList;\r
420                 }\r
421                 for (var i = 0; i < optionSimpleArray.length; i++) {\r
422                         optionList.push({\r
423                                 name : optionSimpleArray[i]\r
424                         });\r
425                 }\r
426                 parameter.optionList = optionList;\r
427                 return parameter;\r
428         };\r
429 \r
430     var getValueFromList = function(id, parameterList) {\r
431                 for (var i = 0; i < parameterList.length; i++) {\r
432                         if (parameterList[i].id === id) {\r
433                                 return parameterList[i].value;\r
434                         }\r
435                 }\r
436         };\r
437 \r
438         var updateUserParameterList = function(updatedId, parameterListControl) {\r
439                 if (updatedId === FIELD.ID.LCP_REGION) {\r
440                         var list = parameterListControl.getList(updatedId);\r
441                         if (list[0].selectedIndex >= 0) {\r
442                                 parameterListControl\r
443                                                 .updateList([ getTenantList(list[0].value) ]);\r
444                         } else {\r
445                                 parameterListControl\r
446                                                 .updateList([ FIELD.PARAMETER.TENANT_DISABLED ]);\r
447                         }\r
448                         if (list[0].value === FIELD.KEY.LCP_REGION_TEXT) {\r
449                                 parameterListControl\r
450                                                 .updateList([ FIELD.PARAMETER.LCP_REGION_TEXT_VISIBLE ]);\r
451                         } else {\r
452                                 parameterListControl\r
453                                                 .updateList([ FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN ]);\r
454                         }\r
455                 } else if (updatedId === FIELD.ID.SUBSCRIBER_NAME) {\r
456                         var list = parameterListControl.getList(updatedId);\r
457                         if (list[0].selectedIndex >= 0) {\r
458                                 DataService.setGlobalCustomerId(list[0].value);\r
459 \r
460                                 AaiService.getSubscriptionServiceTypeList(DataService\r
461                                                 .getGlobalCustomerId(), function(response) {\r
462                                         DataService.setSubscriptionServiceTypeList(response);\r
463                                         var serviceTypeParameters = FIELD.PARAMETER.SERVICE_TYPE;\r
464                                         serviceTypeParameters.optionList = [];\r
465 \r
466                                         for (var i = 0; i < response.length; i++) {\r
467                                                 serviceTypeParameters.optionList.push({\r
468                                                         "id" : response[i],\r
469                                                         "name" : response[i]\r
470                                                 });\r
471                                         }\r
472                                         parameterListControl.updateList([ serviceTypeParameters ]);\r
473                                 });\r
474 \r
475                         } else {\r
476                                 parameterListControl\r
477                                                 .updateList([ FIELD.PARAMETER.SERVICE_TYPE_DISABLED ]);\r
478                         }\r
479                 }\r
480         };\r
481 \r
482     return {\r
483         initializeComponent : function(componentId) {\r
484             _this.componentId = ComponentService.initialize(componentId);\r
485         },\r
486         getComponentDisplayName : ComponentService.getComponentDisplayName,\r
487         getSummaryList : getSummaryList,\r
488         getParameters : function(getParametersHandler) {\r
489                 _this.getParametersHandler = getParametersHandler;\r
490                 UtilityService.setHttpErrorHandler(_this.httpErrorHandler);\r
491                 UtilityService.startAsyncOperations(getAsyncOperationList(),\r
492                                 internalGetParametersHandler);\r
493         },\r
494         updateUserParameterList : updateUserParameterList,\r
495         getMsoRequestDetails : getMsoRequestDetails,\r
496         getMsoUrl : getMsoUrl\r
497     }\r
498 }\r
499 \r
500 appDS2.factory("DeletionService", [ "$log", "AaiService", "AsdcService",\r
501         "DataService", "ComponentService", "COMPONENT", "FIELD",\r
502         "UtilityService", DeletionService ]);\r