Change management and PNF support
[vid.git] / vid-app-common / src / main / webapp / app / vid / scripts / services / aaiService.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 AaiService = function ($http, $log, PropertyService, UtilityService, COMPONENT, FIELD, $q) {\r
24     return {\r
25         getSubscriberName : function(globalCustomerId,\r
26                                      successCallbackFunction) {\r
27             $log\r
28                 .debug("AaiService:getSubscriberName: globalCustomerId: "\r
29                     + globalCustomerId);\r
30             $http.get(\r
31                 COMPONENT.AAI_SUB_DETAILS_PATH\r
32                 + globalCustomerId + COMPONENT.ASSIGN + Math.random(),\r
33                 {\r
34                     timeout : PropertyService\r
35                         .getServerResponseTimeoutMsec()\r
36                 }).then(function(response) {\r
37                 var subName = "";\r
38                 if (response.data) {\r
39                     subName = response.data[FIELD.ID.SUBNAME];\r
40                 }\r
41                 successCallbackFunction(subName);\r
42             })["catch"]\r
43             (UtilityService.runHttpErrorHandler);\r
44         },\r
45 \r
46 \r
47         runNamedQuery : function (namedQueryId, globalCustomerId, serviceType, serviceInstanceId, successCallback, errorCallback) {\r
48 \r
49             var url = COMPONENT.AAI_SUB_VIEWEDIT_PATH +\r
50                 COMPONENT.FORWARD_SLASH + encodeURIComponent(namedQueryId) +\r
51                 COMPONENT.FORWARD_SLASH + encodeURIComponent(globalCustomerId) +\r
52                 COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceType) +\r
53                 COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceInstanceId);\r
54             $http.get(url, {}, {\r
55 \r
56 \r
57                 timeout : PropertyService.getServerResponseTimeoutMsec()\r
58             }).then(function(response) {\r
59                 if (response.data != null) {\r
60                     successCallback(response);\r
61                 } else {\r
62                     errorCallback(response);\r
63                 }\r
64             }, function(response) {\r
65                 errorCallback(response);\r
66             });\r
67         },\r
68 \r
69 \r
70         getVNFInformationByServiceTypeAndId : function (globalCustomerId, serviceType, serviceInstanceId, successCallback, errorCallback) {\r
71 \r
72             var url = COMPONENT.AAI_GET_VNF_INFO +\r
73                 COMPONENT.FORWARD_SLASH + encodeURIComponent(globalCustomerId) +\r
74                 COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceType) +\r
75                 COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceInstanceId);\r
76             $http.get(url, {}, {\r
77                 timeout : PropertyService.getServerResponseTimeoutMsec()\r
78             }).then(function(response) {\r
79                 if (response.data != null) {\r
80                     successCallback(response);\r
81                 } else {\r
82                     errorCallback(response);\r
83                 }\r
84             }, function(response) {\r
85                 errorCallback(response);\r
86             });\r
87         },\r
88 \r
89 \r
90         getSubDetails : function(selectedSubscriber, selectedServiceInstance, successCallback, errorCallback) {\r
91             var subscriber;\r
92             var displayData;\r
93             $http.get( COMPONENT.AAI_SUB_DETAILS_PATH  + selectedSubscriber, {}, {\r
94 \r
95 \r
96                 timeout : PropertyService.getServerResponseTimeoutMsec()\r
97             }).then(function(response) {\r
98                 displayData = [];\r
99                 subscriber = response.data;\r
100                 var subscriberName = subscriber[FIELD.ID.SUBNAME];\r
101                 if (subscriber[FIELD.ID.SERVICE_SUBSCRIPTIONS] != null) {\r
102                     angular.forEach(subscriber[FIELD.ID.SERVICE_SUBSCRIPTIONS][FIELD.ID.SERVICE_SUBSCRIPTION], function(serviceSubscription, key) {\r
103                         var serviceInstanceId = [];\r
104                         var serviceType = "";\r
105                         if (serviceSubscription[FIELD.ID.SERVICETYPE] != null) {\r
106                             serviceType = serviceSubscription[FIELD.ID.SERVICETYPE];\r
107                         } else {\r
108                             serviceType = FIELD.PROMPT.NO_SERVICE_SUB;\r
109                         }\r
110                         if (serviceSubscription[FIELD.ID.SERVICE_INSTANCES] != null) {\r
111                             angular.forEach(serviceSubscription[FIELD.ID.SERVICE_INSTANCES][FIELD.ID.SERVICE_INSTANCE], function(instValue, instKey) {\r
112                                 // put them together, i guess\r
113                                 var inst = { "serviceInstanceId": instValue[FIELD.ID.SERVICE_INSTANCE_ID],\r
114                                     "aaiModelInvariantId": instValue[FIELD.ID.MODEL_INVAR_ID],\r
115                                     "aaiModelVersionId": instValue[FIELD.ID.MODEL_VERSION_ID],\r
116                                     "serviceInstanceName": instValue[FIELD.ID.SERVICE_INSTANCE_NAME]\r
117                                 };\r
118                                 if (selectedServiceInstance != null) {\r
119                                     if ((instValue[FIELD.ID.SERVICE_INSTANCE_ID] == selectedServiceInstance ) || (instValue[FIELD.ID.SERVICE_INSTANCE_NAME] == selectedServiceInstance)) {\r
120                                         serviceInstanceId.push(inst);\r
121                                     }\r
122                                 } else {\r
123                                     serviceInstanceId.push(inst);\r
124                                 }\r
125                             });\r
126                         } else {\r
127                             if (serviceInstanceId == []) {\r
128                                 serviceInstanceId = [ FIELD.PROMPT.NO_SERVICE_INSTANCE ];\r
129                             }\r
130                         }\r
131                         angular.forEach(serviceInstanceId, function(subVal, subKey) {\r
132                             displayData.push({\r
133                                 globalCustomerId        : selectedSubscriber,\r
134                                 subscriberName          : subscriberName,\r
135                                 serviceType             : serviceType,\r
136                                 serviceInstanceId       : subVal.serviceInstanceId,\r
137                                 aaiModelInvariantId             : subVal.aaiModelInvariantId,\r
138                                 aaiModelVersionId\r
139                                     : subVal.aaiModelVersionId,\r
140                                 serviceInstanceName     : subVal.serviceInstanceName,\r
141                                 isPermitted: serviceSubscription[FIELD.ID.IS_PERMITTED]\r
142                             });\r
143                         });\r
144                     });\r
145                 } else {\r
146                     displayData.push({\r
147                         globalCustomerId        : selectedSubscriber,\r
148                         subscriberName          : selectedSubscriberName,\r
149                         serviceType             : FIELD.PROMPT.NO_SERVICE_SUB,\r
150                         serviceInstanceId       : FIELD.PROMPT.NO_SERVICE_INSTANCE\r
151                     });\r
152                 }\r
153                 successCallback(displayData, subscriberName);\r
154             }, function(response) {\r
155                 errorCallback(response);});\r
156         },\r
157 \r
158         getSubList : function(successCallback, errorCallback ) {\r
159 \r
160             $http.get( FIELD.ID.AAI_GET_FULL_SUBSCRIBERS, {}, {\r
161 \r
162 \r
163                 timeout : PropertyService.getServerResponseTimeoutMsec()\r
164             }).then(function(response) {\r
165                 var customerList = [];\r
166                 if (response.data.customer != null) {\r
167                     angular.forEach(response.data.customer, function(subVal, subKey) {\r
168                         var cust = { "globalCustomerId": subVal[FIELD.ID.GLOBAL_CUSTOMER_ID], "subscriberName": subVal[FIELD.ID.SUBNAME],\r
169                             "isPermitted": subVal[FIELD.ID.IS_PERMITTED], };\r
170                         customerList.push(cust);\r
171                     });\r
172                     successCallback(customerList);\r
173                 } else {\r
174                     errorCallback(response);\r
175                 }\r
176             },function(response) {\r
177                 errorCallback(response);\r
178             });\r
179         },\r
180 \r
181         getServices2 : function(successCallback, errorCallback ) {\r
182 \r
183             $http.get( FIELD.ID.AAI_GET_SERVICES, {}, {\r
184 \r
185 \r
186                 timeout : PropertyService.getServerResponseTimeoutMsec()\r
187             }).then(function(response) {\r
188                 var customerList = [];\r
189                 if (response.data != null) {\r
190                     var serviceIdList = [];\r
191                     angular.forEach(response.data, function(value, key) {\r
192                         angular.forEach(value, function(subVal, key) {\r
193                             var newVal = { "id" : subVal[FIELD.ID.SERVICE_ID], "description" : subVal[FIELD.ID.SERVICE_DESCRIPTION] ,\r
194                                 "isPermitted" : subVal[FIELD.ID.IS_PERMITTED]\r
195 \r
196                             };serviceIdList.push(newVal);\r
197                         });\r
198                     });\r
199                     successCallback(serviceIdList);\r
200                 } else {\r
201                     errorCallback(response);\r
202                 }\r
203             },function(response) {\r
204                 errorCallback(response);\r
205             });\r
206         },\r
207 \r
208         getSubscriptionServiceTypeList : function(globalCustomerId,\r
209                                                   successCallbackFunction) {\r
210             $log\r
211                 .debug("AaiService:getSubscriptionServiceTypeList: globalCustomerId: "\r
212                     + globalCustomerId);\r
213             if ( UtilityService.hasContents(globalCustomerId) ) {\r
214                 $http.get(\r
215                     COMPONENT.AAI_SUB_DETAILS_PATH\r
216                     + globalCustomerId + COMPONENT.ASSIGN + Math.random(),\r
217                     {\r
218                         timeout : PropertyService\r
219                             .getServerResponseTimeoutMsec()\r
220                     }).then(function(response) {\r
221                     if (response.data && response.data[FIELD.ID.SERVICE_SUBSCRIPTIONS]) {\r
222                         var serviceTypes = [];\r
223                         var serviceSubscriptions = response.data[FIELD.ID.SERVICE_SUBSCRIPTIONS][FIELD.ID.SERVICE_SUBSCRIPTION];\r
224 \r
225                         for (var i = 0; i < serviceSubscriptions.length; i++) {\r
226                             serviceTypes.push({\r
227                                 "name":serviceSubscriptions[i][FIELD.ID.SERVICETYPE],\r
228                                 "isPermitted": serviceSubscriptions[i][FIELD.ID.IS_PERMITTED],\r
229                                 "id": i\r
230                             });}\r
231                         successCallbackFunction(serviceTypes);\r
232                     } else {\r
233                         successCallbackFunction([]);\r
234                     }\r
235                 })["catch"]\r
236                 (UtilityService.runHttpErrorHandler);\r
237             }\r
238         },\r
239         getLcpCloudRegionTenantList : function(globalCustomerId, serviceType,\r
240                                                successCallbackFunction) {\r
241             $log\r
242                 .debug("AaiService:getLcpCloudRegionTenantList: globalCustomerId: "\r
243                     + globalCustomerId);\r
244             var url =   COMPONENT.AAI_GET_TENANTS\r
245                 + globalCustomerId + COMPONENT.FORWARD_SLASH + serviceType + COMPONENT.ASSIGN + Math.random();\r
246 \r
247             $http.get(url,\r
248                 {\r
249                     timeout : PropertyService\r
250                         .getServerResponseTimeoutMsec()\r
251                 }).then(function(response) {\r
252                 var lcpCloudRegionTenants = [];\r
253                 var aaiLcpCloudRegionTenants = response.data;\r
254 \r
255                 lcpCloudRegionTenants.push({\r
256                     "cloudRegionId": "",\r
257                     "tenantName": FIELD.PROMPT.REGION,\r
258                     "tenantId": ""\r
259                 });\r
260 \r
261                 for (var i = 0; i < aaiLcpCloudRegionTenants.length; i++) {\r
262                     lcpCloudRegionTenants.push({\r
263                         "cloudRegionId": aaiLcpCloudRegionTenants[i][COMPONENT.CLOUD_REGION_ID],\r
264                         "tenantName": aaiLcpCloudRegionTenants[i][COMPONENT.TENANT_NAME],\r
265                         "tenantId": aaiLcpCloudRegionTenants[i][COMPONENT.TENANT_ID],\r
266                         "isPermitted": aaiLcpCloudRegionTenants[i][COMPONENT.IS_PERMITTED]});\r
267                 }\r
268 \r
269                 successCallbackFunction(lcpCloudRegionTenants);\r
270             })["catch"]\r
271             (UtilityService.runHttpErrorHandler);\r
272         },\r
273         getSubscribers : function(successCallbackFunction) {\r
274             $log\r
275                 .debug("AaiService:getSubscribers");\r
276             var url =  FIELD.ID.AAI_GET_SUBSCRIBERS + COMPONENT.ASSIGN + Math.random();\r
277 \r
278             $http.get(url,\r
279                 {\r
280                     timeout : PropertyService\r
281                         .getServerResponseTimeoutMsec()\r
282                 }).then(function(response) {\r
283                 if (response.data) {\r
284                     successCallbackFunction(response.data.customer);\r
285                 } else {\r
286                     successCallbackFunction([]);\r
287                 }\r
288             })["catch"]\r
289             (UtilityService.runHttpErrorHandler);\r
290         },\r
291         getProvOptionsFromSystemProp : function(successCallbackFunction) {\r
292             $log\r
293                 .debug("AaiService:getProvOptionsFromSystemProp");\r
294             var url =  COMPONENT.GET_SYSTEM_PROP_VNF_PROV_STATUS_PATH;\r
295 \r
296             $http.get(url,\r
297                 {\r
298                     timeout : PropertyService\r
299                         .getServerResponseTimeoutMsec()\r
300                 }).then(function(response) {\r
301                 if (response.data) {\r
302                     successCallbackFunction(response);\r
303                 } else {\r
304                     successCallbackFunction([]);\r
305                 }\r
306             })["catch"]\r
307             (UtilityService.runHttpErrorHandler);\r
308         },\r
309         getLoggedInUserID : function(successCallbackFunction) {\r
310             $log\r
311                 .debug("AaiService:getLoggedInUserID");\r
312             var url = COMPONENT.GET_USER_ID;\r
313 \r
314             $http.get(url,\r
315                 {\r
316                     transformResponse: [function (data) {\r
317                         return data;\r
318                     }],\r
319                     timeout : PropertyService\r
320                         .getServerResponseTimeoutMsec()\r
321                 }).then(function(response) {\r
322                 if (response.data) {\r
323                     successCallbackFunction(response);\r
324                 } else {\r
325                     successCallbackFunction([]);\r
326                 }\r
327             },function(failure){console.log("failure")})["catch"]\r
328             (UtilityService.runHttpErrorHandler);\r
329         },\r
330         getServices : function(successCallbackFunction) {\r
331             $log\r
332                 .debug("AaiService:getServices");\r
333             var url =  COMPONENT.AAI_GET_SERVICES + COMPONENT.ASSIGN + Math.random();\r
334 \r
335             $http.get(url,\r
336                 {\r
337                     timeout: PropertyService\r
338                         .getServerResponseTimeoutMsec()\r
339                 }).then(function (response) {\r
340                 if (response.data) {\r
341                     successCallbackFunction(response);\r
342                 } else {\r
343                     successCallbackFunction([]);\r
344                 }\r
345             })["catch"]\r
346             (UtilityService.runHttpErrorHandler);\r
347         },\r
348 \r
349         getAicZones: function (successCallbackFunction) {\r
350             $log\r
351                 .debug("getAicZones:getAicZones");\r
352             var url = COMPONENT.AAI_GET_AIC_ZONES +COMPONENT.ASSIGN + Math.random();\r
353 \r
354             $http.get(url,\r
355                 {\r
356                     timeout : PropertyService\r
357                         .getServerResponseTimeoutMsec()\r
358                 }).then(function(response) {\r
359                 if (response.data) {\r
360                     successCallbackFunction(response);\r
361                 } else {\r
362                     successCallbackFunction([]);\r
363                 }\r
364             })["catch"]\r
365             (UtilityService.runHttpErrorHandler);},\r
366         getAicZoneForPNF: function (globalCustomerId,serviceType,serviceInstanceId,successCallbackFunction) {\r
367             $log\r
368                 .debug("getAicZones:getAicZones");\r
369             var url = COMPONENT.AAI_GET_AIC_ZONE_FOR_PNF\r
370                 .replace('@serviceInstanceId', serviceInstanceId)\r
371                 .replace('@globalCustomerId', globalCustomerId)\r
372                 .replace('@serviceType', serviceType);\r
373             $http.get(url,\r
374                 {\r
375                     timeout : PropertyService\r
376                         .getServerResponseTimeoutMsec()\r
377                 }).then(function(response) {\r
378                 successCallbackFunction(response.data);\r
379             })["catch"]\r
380             (UtilityService.runHttpErrorHandler);},\r
381 \r
382         getServiceModels : function(globalCustomerId,serviceType,successCallbackFunction) {\r
383             $log\r
384                 .debug("AaiService:getServices");\r
385             var url =   COMPONENT.AAI_GET_SERVICES + COMPONENT.FORWARD_SLASH+globalCustomerId+ COMPONENT.FORWARD_SLASH +serviceType+COMPONENT.ASSIGN + Math.random();\r
386 \r
387             $http.get(url,\r
388                 {\r
389                     timeout : PropertyService\r
390                         .getServerResponseTimeoutMsec()\r
391                 }).then(function(response) {\r
392                 if (response.data) {\r
393                     successCallbackFunction(response);\r
394                 } else {\r
395                     successCallbackFunction([]);\r
396                 }\r
397             })["catch"]\r
398             (UtilityService.runHttpErrorHandler);\r
399         },\r
400         getServiceModelsByServiceType : function(namedQueryId,globalCustomerId,serviceType,successCallbackFunction) {\r
401             $log\r
402                 .debug("AaiService:getServiceModelsByServiceType");\r
403             var url =   COMPONENT.AAI_GET_SERVICES_BY_TYPE+COMPONENT.FORWARD_SLASH+namedQueryId+COMPONENT.FORWARD_SLASH+globalCustomerId+COMPONENT.FORWARD_SLASH +serviceType+COMPONENT.ASSIGN + Math.random();\r
404 \r
405             $http.get(url,\r
406                 {\r
407                     timeout : PropertyService\r
408                         .getServerResponseTimeoutMsec()\r
409                 }).then(function(response) {\r
410                 if (response.data) {\r
411                     successCallbackFunction(response);\r
412                 } else {\r
413                     successCallbackFunction([]);\r
414                 }\r
415             })["catch"]\r
416             (UtilityService.runHttpErrorHandler);\r
417         },\r
418 \r
419                 getVnfsByCustomerIdAndServiceType: function(globalSubscriberId, serviceType){\r
420             var deferred = $q.defer();\r
421 \r
422             if (UtilityService.hasContents(globalSubscriberId) &&\r
423                                 UtilityService.hasContents(serviceType) ) {\r
424 \r
425                 $http.get(COMPONENT.AAI_GET_VNF_BY_CUSTOMERID_AND_SERVICETYPE + globalSubscriberId + COMPONENT.FORWARD_SLASH\r
426                                         + serviceType )\r
427                     .success(function (response) {\r
428                         if(response) {\r
429                             deferred.resolve({data: response});\r
430                         } else {\r
431                             deferred.resolve({data: []});\r
432                         }\r
433                     }).error(function (data, status, headers, config) {\r
434                     deferred.reject({message: data, status: status});\r
435                 });\r
436             }\r
437 \r
438             return deferred.promise;\r
439         },\r
440 \r
441         getVnfVersionsByInvariantId: function(modelInvariantId){\r
442             var deferred = $q.defer();\r
443 \r
444             if (UtilityService.hasContents(modelInvariantId)) {\r
445                 var body = {"versions" : modelInvariantId}\r
446                 $http.post(( COMPONENT.AAI_GET_VERSION_BY_INVARIANT_ID),body)\r
447 \r
448                     .success(function (response) {\r
449                         if(response) {\r
450                             deferred.resolve({data: response});\r
451                         } else {\r
452                             deferred.resolve({data: []});\r
453                         }\r
454                     }).error(function (data, status, headers, config) {\r
455                     deferred.reject({message: data, status: status});\r
456                 });\r
457             }\r
458 \r
459             return deferred.promise;\r
460         },\r
461 \r
462         getSubscriberServiceTypes: function(subscriberUuid) {\r
463             var deferred = $q.defer();\r
464             $log.debug("AaiService:getSubscriberServiceTypes: subscriberUuid: " + subscriberUuid);\r
465 \r
466             if (UtilityService.hasContents(subscriberUuid)) {\r
467                 $http.get(COMPONENT.AAI_SUB_DETAILS_PATH + subscriberUuid + COMPONENT.ASSIGN + Math.random())\r
468                     .success(function (response) {\r
469                         if(response && [FIELD.ID.SERVICE_SUBSCRIPTIONS]) {\r
470                             deferred.resolve({data: response[FIELD.ID.SERVICE_SUBSCRIPTIONS][FIELD.ID.SERVICE_SUBSCRIPTION]});\r
471                         } else {\r
472                             deferred.resolve({data: []});\r
473                         }\r
474                     }).error(function (data, status, headers, config) {\r
475                     deferred.reject({message: data, status: status});\r
476                 });\r
477             }\r
478 \r
479             return deferred.promise;\r
480         }\r
481     }};\r
482 \r
483 appDS2.factory("AaiService", ["$http", "$log", "PropertyService",\r
484     "UtilityService", "COMPONENT", "FIELD", "$q", AaiService]);\r