Merge from ECOMP's repository
[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, featureFlags) {\r
24 \r
25     function getServiceInstance(serviceInstanceIdentifier, findBy) {\r
26         serviceInstanceIdentifier.trim();\r
27 \r
28         return $http.get(COMPONENT.AAI_GET_SERVICE_INSTANCE_PATH + serviceInstanceIdentifier + "/" + findBy + "?r=" + Math.random(), {}, {\r
29             timeout: PropertyService.getServerResponseTimeoutMsec()\r
30         });\r
31     }\r
32 \r
33     function getPnfByName(pnfName) {\r
34         var deferred = $q.defer();\r
35         var url = COMPONENT.AAI_GET_PNF_BY_NAME+ encodeURIComponent(pnfName)  ;\r
36         var config = { timeout: PropertyService.getServerResponseTimeoutMsec() };\r
37 \r
38         $http.get(url, config)\r
39             .success(function (response) {\r
40                 deferred.resolve({data: response});\r
41             })\r
42             .error(function(data, status, headers, config) {\r
43                 deferred.reject({message: data, status: status});\r
44             });\r
45 \r
46         return deferred.promise;\r
47     }\r
48     function getGlobalCustomerIdFromServiceInstanceResponse(response) {\r
49         var globalCustomerId = "";\r
50         if (angular.isArray(response.data[FIELD.ID.RESULT_DATA])) {\r
51             var customerIndex = 5;\r
52             var customerIdIndex = 6;\r
53             var itemIndex = 0;\r
54 \r
55             var item = response.data[FIELD.ID.RESULT_DATA][itemIndex];\r
56             var url = item[FIELD.ID.RESOURCE_LINK];\r
57             var urlParts = url.split("/");\r
58             if (urlParts[customerIndex] === FIELD.ID.CUSTOMER) {\r
59                 globalCustomerId = urlParts[customerIdIndex];\r
60             }\r
61         }\r
62         return globalCustomerId;\r
63     }\r
64 \r
65     function searchServiceInstances(query) {\r
66         return $http.get( COMPONENT.SEARCH_SERVICE_INSTANCES  + query, {}, {\r
67             timeout : PropertyService.getServerResponseTimeoutMsec()\r
68         }).then(function (response) {\r
69             var displayData = response.data[FIELD.ID.SERVICE_INSTANCES];\r
70             if (!displayData || !displayData.length) {\r
71                 displayData = [{\r
72                     globalCustomerId    : null,\r
73                     subscriberName      : null,\r
74                     serviceType                 : FIELD.PROMPT.NO_SERVICE_SUB,\r
75                     serviceInstanceId   : FIELD.PROMPT.NO_SERVICE_INSTANCE\r
76                 }];\r
77             }\r
78             return {displayData: displayData};\r
79         });\r
80     };\r
81 \r
82     function getJoinedQueryString(queries) {\r
83         return queries.filter(function (val) {return val;}).join("&");\r
84     }\r
85 \r
86     return {\r
87         getSubscriberName : function(globalCustomerId,\r
88                                      successCallbackFunction) {\r
89             $log\r
90                 .debug("AaiService:getSubscriberName: globalCustomerId: "\r
91                     + globalCustomerId);\r
92             $http.get(\r
93                 COMPONENT.AAI_SUB_DETAILS_PATH\r
94                 + globalCustomerId + COMPONENT.ASSIGN + Math.random(),\r
95                 {\r
96                     timeout : PropertyService\r
97                         .getServerResponseTimeoutMsec()\r
98                 }).then(function(response) {\r
99                 var result = {};\r
100                 if (response.data) {\r
101                     result.subscriberName = response.data[FIELD.ID.SUBNAME];\r
102                     result.serviceSubscriptions = response.data[FIELD.ID.SERVICE_SUBSCRIPTIONS];\r
103                 }\r
104                 successCallbackFunction(result);\r
105             })["catch"]\r
106             (UtilityService.runHttpErrorHandler);\r
107         },\r
108 \r
109         runNamedQuery : function (namedQueryId, globalCustomerId, serviceType, serviceInstanceId, successCallback, errorCallback) {\r
110 \r
111             var url = COMPONENT.AAI_SUB_VIEWEDIT_PATH +\r
112                 COMPONENT.FORWARD_SLASH + encodeURIComponent(namedQueryId) +\r
113                 COMPONENT.FORWARD_SLASH + encodeURIComponent(globalCustomerId) +\r
114                 COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceType) +\r
115                 COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceInstanceId);\r
116             return $http.get(url, {}, {\r
117 \r
118 \r
119                 timeout : PropertyService.getServerResponseTimeoutMsec()\r
120             }).then(function(response) {\r
121                 if (response.data != null) {\r
122                     successCallback(response);\r
123                 } else {\r
124                     errorCallback(response);\r
125                 }\r
126             }, function(response) {\r
127                 errorCallback(response);\r
128             });\r
129         },\r
130 \r
131 \r
132         getVNFInformationByServiceTypeAndId : function (globalCustomerId, serviceType, serviceInstanceId, successCallback, errorCallback) {\r
133 \r
134             var url = COMPONENT.AAI_GET_VNF_INFO +\r
135                 COMPONENT.FORWARD_SLASH + encodeURIComponent(globalCustomerId) +\r
136                 COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceType) +\r
137                 COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceInstanceId);\r
138             $http.get(url, {}, {\r
139                 timeout : PropertyService.getServerResponseTimeoutMsec()\r
140             }).then(function(response) {\r
141                 if (response.data != null) {\r
142                     successCallback(response);\r
143                 } else {\r
144                     errorCallback(response);\r
145                 }\r
146             }, function(response) {\r
147                 errorCallback(response);\r
148             });\r
149         },\r
150 \r
151         getPNFInformationByServiceTypeAndId : function (globalCustomerId, serviceType, serviceInstanceId, successCallback, errorCallback) {\r
152 \r
153             var url = COMPONENT.AAI_GET_PNF_INSTANCE +\r
154                 COMPONENT.FORWARD_SLASH + encodeURIComponent(globalCustomerId) +\r
155                 COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceType) +\r
156                 COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceInstanceId);\r
157             $http.get(url, {}, {\r
158                 timeout : PropertyService.getServerResponseTimeoutMsec()\r
159             }).then(function(response) {\r
160                 if (response.data != null) {\r
161                     successCallback(response);\r
162                 } else {\r
163                     errorCallback(response);\r
164                 }\r
165             }, function(response) {\r
166                 errorCallback(response);\r
167             });\r
168         },\r
169 \r
170         getCRInformationByInstanceId : function (serviceInstanceId) {\r
171 \r
172             var deferred = $q.defer();\r
173 \r
174             var url = COMPONENT.AAI_GET_CR_INSTANCE +\r
175                 COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceInstanceId);\r
176             $http.get(url, {}, {\r
177                 timeout : PropertyService.getServerResponseTimeoutMsec()\r
178             }).then(function(response) {\r
179                 if (response.data != null) {\r
180                     deferred.resolve(response);\r
181                 } else {\r
182                     deferred.resolve(response);\r
183                 }\r
184             }, function(response) {\r
185                 deferred.resolve(response);\r
186             });\r
187             return deferred.promise;\r
188         },\r
189 \r
190         searchServiceInstances: searchServiceInstances,\r
191 \r
192         getModelVersionId: function (subscriberId, instanceId) {\r
193             var globalCustomerIdQuery = COMPONENT.SELECTED_SUBSCRIBER_SUB_PATH + subscriberId;\r
194             var serviceInstanceQuery = COMPONENT.SELECTED_SERVICE_INSTANCE_SUB_PATH + instanceId;\r
195 \r
196             var query = "?" + getJoinedQueryString([globalCustomerIdQuery, serviceInstanceQuery]);\r
197 \r
198             var deferred = $q.defer();\r
199 \r
200             searchServiceInstances(query).then(function (response) {\r
201                 var displayData = response.displayData;\r
202                 if (displayData[0] && displayData[0].aaiModelVersionId) {\r
203                     deferred.resolve(displayData[0].aaiModelVersionId);\r
204                 } else {\r
205                     deferred.reject(FIELD.ERROR.MODEL_VERSION_ID_MISSING);\r
206                 }\r
207             }).catch(function (err) {\r
208                 deferred.reject(err);\r
209             });\r
210 \r
211             return deferred.promise;\r
212         },\r
213 \r
214         getSubDetails : function(selectedSubscriber, selectedServiceInstance, successCallback, errorCallback) {\r
215             var subscriber;\r
216             var displayData;\r
217             $http.get( COMPONENT.AAI_SUB_DETAILS_PATH  + selectedSubscriber, {}, {\r
218 \r
219 \r
220                 timeout : PropertyService.getServerResponseTimeoutMsec()\r
221             }).then(function(response) {\r
222                 displayData = [];\r
223                 subscriber = response.data;\r
224                 var subscriberName = subscriber[FIELD.ID.SUBNAME];\r
225                 if (subscriber[FIELD.ID.SERVICE_SUBSCRIPTIONS] != null) {\r
226                     angular.forEach(subscriber[FIELD.ID.SERVICE_SUBSCRIPTIONS][FIELD.ID.SERVICE_SUBSCRIPTION], function(serviceSubscription, key) {\r
227                         var serviceInstanceId = [];\r
228                         var serviceType = "";\r
229                         if (serviceSubscription[FIELD.ID.SERVICETYPE] != null) {\r
230                             serviceType = serviceSubscription[FIELD.ID.SERVICETYPE];\r
231                         } else {\r
232                             serviceType = FIELD.PROMPT.NO_SERVICE_SUB;\r
233                         }\r
234                         if (serviceSubscription[FIELD.ID.SERVICE_INSTANCES] != null) {\r
235                             angular.forEach(serviceSubscription[FIELD.ID.SERVICE_INSTANCES][FIELD.ID.SERVICE_INSTANCE], function(instValue, instKey) {\r
236                                 // put them together, i guess\r
237                                 var inst = { "serviceInstanceId": instValue[FIELD.ID.SERVICE_INSTANCE_ID],\r
238                                     "aaiModelInvariantId": instValue[FIELD.ID.MODEL_INVAR_ID],\r
239                                     "aaiModelVersionId": instValue[FIELD.ID.MODEL_VERSION_ID],\r
240                                     "serviceInstanceName": instValue[FIELD.ID.SERVICE_INSTANCE_NAME]\r
241                                 };\r
242                                 if (selectedServiceInstance != null) {\r
243                                     if ((instValue[FIELD.ID.SERVICE_INSTANCE_ID] == selectedServiceInstance ) || (instValue[FIELD.ID.SERVICE_INSTANCE_NAME] == selectedServiceInstance)) {\r
244                                         serviceInstanceId.push(inst);\r
245                                     }\r
246                                 } else {\r
247                                     serviceInstanceId.push(inst);\r
248                                 }\r
249                             });\r
250                         } else {\r
251                             serviceInstanceId = [ FIELD.PROMPT.NO_SERVICE_INSTANCE ];\r
252                         }\r
253                         angular.forEach(serviceInstanceId, function(subVal, subKey) {\r
254                             displayData.push({\r
255                                 globalCustomerId        : selectedSubscriber,\r
256                                 subscriberName          : subscriberName,\r
257                                 serviceType             : serviceType,\r
258                                 serviceInstanceId       : subVal.serviceInstanceId,\r
259                                 aaiModelInvariantId             : subVal.aaiModelInvariantId,\r
260                                 aaiModelVersionId\r
261                                     : subVal.aaiModelVersionId,\r
262                                 serviceInstanceName     : subVal.serviceInstanceName,\r
263                                 isPermitted: serviceSubscription[FIELD.ID.IS_PERMITTED]\r
264                             });\r
265                         });\r
266                     });\r
267                 } else {\r
268                     displayData.push({\r
269                         globalCustomerId        : selectedSubscriber,\r
270                         subscriberName          : subscriberName,\r
271                         serviceType             : FIELD.PROMPT.NO_SERVICE_SUB,\r
272                         serviceInstanceId       : FIELD.PROMPT.NO_SERVICE_INSTANCE\r
273                     });\r
274                 }\r
275                 successCallback(displayData, subscriberName);\r
276             }, function(response) {\r
277                 errorCallback(response);});\r
278         },\r
279 \r
280         getSubList : function(successCallback, errorCallback ) {\r
281 \r
282             $http.get( FIELD.ID.AAI_GET_FULL_SUBSCRIBERS, {}, {\r
283 \r
284 \r
285                 timeout : PropertyService.getServerResponseTimeoutMsec()\r
286             }).then(function(response) {\r
287                 var customerList = [];\r
288                 if (response.data.customer != null) {\r
289                     angular.forEach(response.data.customer, function(subVal, subKey) {\r
290                         var cust = { "globalCustomerId": subVal[FIELD.ID.GLOBAL_CUSTOMER_ID], "subscriberName": subVal[FIELD.ID.SUBNAME],\r
291                             "isPermitted": subVal[FIELD.ID.IS_PERMITTED], };\r
292                         customerList.push(cust);\r
293                     });\r
294                     successCallback(customerList);\r
295                 } else {\r
296                     errorCallback(response);\r
297                 }\r
298             },function(response) {\r
299                 errorCallback(response);\r
300             });\r
301         },\r
302 \r
303         getServiceInstance : getServiceInstance,\r
304         getPnfByName : getPnfByName,\r
305 \r
306         getGlobalCustomerIdByInstanceIdentifier : function(serviceInstanceIdentifier, findBy) {\r
307             serviceInstanceIdentifier.trim();\r
308 \r
309             return getServiceInstance(serviceInstanceIdentifier, findBy)\r
310                 .then(function (response) {\r
311                     return getGlobalCustomerIdFromServiceInstanceResponse(response);\r
312             });\r
313         },\r
314 \r
315         getMultipleValueParamQueryString: function(values, paramSubPath) {\r
316             if (values.length) {\r
317                 return paramSubPath + values.filter(function (val) {return val;}).join("&" + paramSubPath);\r
318             }\r
319         },\r
320 \r
321         getJoinedQueryString: getJoinedQueryString,\r
322 \r
323         getServices2 : function(successCallback, errorCallback ) {\r
324 \r
325             $http.get( FIELD.ID.AAI_GET_SERVICES, {}, {\r
326 \r
327 \r
328                 timeout : PropertyService.getServerResponseTimeoutMsec()\r
329             }).then(function(response) {\r
330                 var customerList = [];\r
331                 if (response.data != null) {\r
332                     var serviceIdList = [];\r
333                     angular.forEach(response.data, function(value, key) {\r
334                         angular.forEach(value, function(subVal, key) {\r
335                             var newVal = { "id" : subVal[FIELD.ID.SERVICE_ID], "description" : subVal[FIELD.ID.SERVICE_DESCRIPTION] ,\r
336                                 "isPermitted" : subVal[FIELD.ID.IS_PERMITTED]\r
337 \r
338                             };serviceIdList.push(newVal);\r
339                         });\r
340                     });\r
341                     successCallback(serviceIdList);\r
342                 } else {\r
343                     errorCallback(response);\r
344                 }\r
345             },function(response) {\r
346                 errorCallback(response);\r
347             });\r
348         },\r
349 \r
350         getPortMirroringData: function (ids) {\r
351             var defer = $q.defer();\r
352 \r
353             var url = COMPONENT.AAI_GET_PORT_MIRRORING_CONFIGS_DATA + '?configurationIds=' + ids.join(',');\r
354             $http.get(url).then(function (res) {\r
355                 defer.resolve(res);\r
356             }).catch(function (err) {\r
357                 $log.error(err);\r
358                 defer.resolve({});\r
359             });\r
360 \r
361             return defer.promise;\r
362 \r
363         },\r
364 \r
365         getPortMirroringSourcePorts : function (ids) {\r
366             var defer = $q.defer();\r
367             var url = COMPONENT.AAI_GET_PORT_MIRRORING_SOURCE_PORTS +'?configurationIds=' +  ids.join(',');\r
368             $http.get(url).then(function(res){\r
369                 defer.resolve(res);\r
370             }).catch(function(err) {\r
371                 $log.error(err);\r
372                 defer.resolve({});\r
373             });\r
374             return defer.promise;\r
375         },\r
376 \r
377         getVlansByNetworksMapping : function (globalCustomerId, serviceType, serviceInstanceId, sdcModelUuid) {\r
378             var defer = $q.defer();\r
379             if (featureFlags.isOn(COMPONENT.FEATURE_FLAGS.FLAG_PRESENT_PROVIDER_NETWORKS_ASSOCIATIONS)) {\r
380                 var url = COMPONENT.AAI_GET_PROVIDER_NETWORKS_ASSOCIATIONS + '?'\r
381                     + 'globalCustomerId=' + globalCustomerId\r
382                     + '&serviceType=' + serviceType\r
383                     + '&serviceInstanceId=' + serviceInstanceId\r
384                     + '&sdcModelUuid=' + sdcModelUuid\r
385                 ;\r
386 \r
387                 $http.get(url).then(function(res){\r
388                     defer.resolve(res.data);\r
389                 }).catch(function(err) {\r
390                     $log.error(err);\r
391                     defer.resolve({});\r
392                 });\r
393 \r
394             } else {\r
395                 defer.resolve({});\r
396             }\r
397             return defer.promise;\r
398         },\r
399 \r
400         getSubscriptionServiceTypeList : function(globalCustomerId,\r
401                                                   successCallbackFunction) {\r
402             $log\r
403                 .debug("AaiService:getSubscriptionServiceTypeList: globalCustomerId: "\r
404                     + globalCustomerId);\r
405             if ( UtilityService.hasContents(globalCustomerId) ) {\r
406                 $http.get(\r
407                     COMPONENT.AAI_SUB_DETAILS_PATH\r
408                     + globalCustomerId + COMPONENT.ASSIGN + Math.random(),\r
409                     {\r
410                         timeout : PropertyService\r
411                             .getServerResponseTimeoutMsec()\r
412                     }).then(function(response) {\r
413                     if (response.data && response.data[FIELD.ID.SERVICE_SUBSCRIPTIONS]) {\r
414                         var serviceTypes = [];\r
415                         var serviceSubscriptions = response.data[FIELD.ID.SERVICE_SUBSCRIPTIONS][FIELD.ID.SERVICE_SUBSCRIPTION];\r
416 \r
417                         for (var i = 0; i < serviceSubscriptions.length; i++) {\r
418                             serviceTypes.push({\r
419                                 "name":serviceSubscriptions[i][FIELD.ID.SERVICETYPE],\r
420                                 "isPermitted": serviceSubscriptions[i][FIELD.ID.IS_PERMITTED],\r
421                                 "id": i\r
422                             });}\r
423                         successCallbackFunction(serviceTypes);\r
424                     } else {\r
425                         successCallbackFunction([]);\r
426                     }\r
427                 })["catch"]\r
428                 (UtilityService.runHttpErrorHandler);\r
429             }\r
430         },\r
431         getLcpCloudRegionTenantList : function(globalCustomerId, serviceType,\r
432                                                successCallbackFunction) {\r
433             $log\r
434                 .debug("AaiService:getLcpCloudRegionTenantList: globalCustomerId: "\r
435                     + globalCustomerId);\r
436             var url =   COMPONENT.AAI_GET_TENANTS\r
437                 + globalCustomerId + COMPONENT.FORWARD_SLASH + serviceType + COMPONENT.ASSIGN + Math.random();\r
438 \r
439             $http.get(url,\r
440                 {\r
441                     timeout : PropertyService\r
442                         .getServerResponseTimeoutMsec()\r
443                 }).then(function(response) {\r
444                 var lcpCloudRegionTenants = [];\r
445                 var aaiLcpCloudRegionTenants = response.data;\r
446 \r
447                 for (var i = 0; i < aaiLcpCloudRegionTenants.length; i++) {\r
448                     lcpCloudRegionTenants.push({\r
449                         "cloudRegionId": aaiLcpCloudRegionTenants[i][COMPONENT.CLOUD_REGION_ID],\r
450                         "cloudOwner": aaiLcpCloudRegionTenants[i][COMPONENT.CLOUD_OWNER],\r
451                         "tenantName": aaiLcpCloudRegionTenants[i][COMPONENT.TENANT_NAME],\r
452                         "tenantId": aaiLcpCloudRegionTenants[i][COMPONENT.TENANT_ID],\r
453                         "isPermitted": aaiLcpCloudRegionTenants[i][COMPONENT.IS_PERMITTED]});\r
454                 }\r
455 \r
456                 successCallbackFunction(lcpCloudRegionTenants);\r
457             }).catch(function(error) {\r
458                 (UtilityService.runHttpErrorHandler(error.data, error.status));\r
459             })\r
460         },\r
461         getSubscribers : function(successCallbackFunction) {\r
462             $log\r
463                 .debug("AaiService:getSubscribers");\r
464             var url =  FIELD.ID.AAI_GET_SUBSCRIBERS + COMPONENT.ASSIGN + Math.random();\r
465 \r
466             $http.get(url,\r
467                 {\r
468                     timeout : PropertyService\r
469                         .getServerResponseTimeoutMsec()\r
470                 }).then(function(response) {\r
471                 if (response.data) {\r
472                     successCallbackFunction(response.data.customer);\r
473                 } else {\r
474                     successCallbackFunction([]);\r
475                 }\r
476             })["catch"]\r
477             (UtilityService.runHttpErrorHandler);\r
478         },\r
479         getProvOptionsFromSystemProp : function(successCallbackFunction) {\r
480             $log\r
481                 .debug("AaiService:getProvOptionsFromSystemProp");\r
482             var url =  COMPONENT.GET_SYSTEM_PROP_VNF_PROV_STATUS_PATH;\r
483 \r
484             $http.get(url,\r
485                 {\r
486                     timeout : PropertyService\r
487                         .getServerResponseTimeoutMsec()\r
488                 }).then(function(response) {\r
489                 if (response.data) {\r
490                     successCallbackFunction(response);\r
491                 } else {\r
492                     successCallbackFunction([]);\r
493                 }\r
494             })["catch"]\r
495             (UtilityService.runHttpErrorHandler);\r
496         },\r
497         getLoggedInUserID : function(successCallbackFunction, catchCallbackFunction) {\r
498             $log\r
499                 .debug("AaiService:getLoggedInUserID");\r
500             var url = COMPONENT.GET_USER_ID;\r
501 \r
502             $http.get(url,\r
503                 {\r
504                     transformResponse: [function (data) {\r
505                         return data;\r
506                     }],\r
507                     timeout : PropertyService\r
508                         .getServerResponseTimeoutMsec()\r
509                 }).then(function(response) {\r
510                 if (response.data) {\r
511                     successCallbackFunction(response);\r
512                 } else {\r
513                     successCallbackFunction([]);\r
514                 }\r
515             })["catch"] (function(response, status) {\r
516                 if (catchCallbackFunction) {\r
517                     catchCallbackFunction();\r
518                 }\r
519                 UtilityService.runHttpErrorHandler(response, status);\r
520             })\r
521         },\r
522         getServices : function(successCallbackFunction) {\r
523             $log\r
524                 .debug("AaiService:getServices");\r
525             var url =  COMPONENT.AAI_GET_SERVICES + COMPONENT.ASSIGN + Math.random();\r
526 \r
527             $http.get(url,\r
528                 {\r
529                     timeout: PropertyService\r
530                         .getServerResponseTimeoutMsec()\r
531                 }).then(function (response) {\r
532                 if (response.data) {\r
533                     successCallbackFunction(response);\r
534                 } else {\r
535                     successCallbackFunction([]);\r
536                 }\r
537             })["catch"]\r
538             (UtilityService.runHttpErrorHandler);\r
539         },\r
540 \r
541         getAicZones: function (successCallbackFunction) {\r
542             $log\r
543                 .debug("getAicZones:getAicZones");\r
544             var url = COMPONENT.AAI_GET_AIC_ZONES +COMPONENT.ASSIGN + Math.random();\r
545 \r
546             $http.get(url,\r
547                 {\r
548                     timeout : PropertyService\r
549                         .getServerResponseTimeoutMsec()\r
550                 }).then(function(response) {\r
551                 if (response.data) {\r
552                     successCallbackFunction(response);\r
553                 } else {\r
554                     successCallbackFunction([]);\r
555                 }\r
556             })["catch"]\r
557             (UtilityService.runHttpErrorHandler);},\r
558         getAicZoneForPNF: function (globalCustomerId,serviceType,serviceInstanceId,successCallbackFunction) {\r
559             $log\r
560                 .debug("getAicZones:getAicZones");\r
561             var url = COMPONENT.AAI_GET_AIC_ZONE_FOR_PNF\r
562                 .replace('@serviceInstanceId', serviceInstanceId)\r
563                 .replace('@globalCustomerId', globalCustomerId)\r
564                 .replace('@serviceType', serviceType);\r
565             $http.get(url,\r
566                 {\r
567                     timeout : PropertyService\r
568                         .getServerResponseTimeoutMsec()\r
569                 }).then(function(response) {\r
570                 successCallbackFunction(response.data);\r
571             })["catch"]\r
572             (UtilityService.runHttpErrorHandler);},\r
573 \r
574         getServiceModels : function(globalCustomerId,serviceType,successCallbackFunction) {\r
575             $log\r
576                 .debug("AaiService:getServices");\r
577             var url =   COMPONENT.AAI_GET_SERVICES + COMPONENT.FORWARD_SLASH+globalCustomerId+ COMPONENT.FORWARD_SLASH +serviceType+COMPONENT.ASSIGN + Math.random();\r
578 \r
579             $http.get(url,\r
580                 {\r
581                     timeout : PropertyService\r
582                         .getServerResponseTimeoutMsec()\r
583                 }).then(function(response) {\r
584                 if (response.data) {\r
585                     successCallbackFunction(response);\r
586                 } else {\r
587                     successCallbackFunction([]);\r
588                 }\r
589             })["catch"]\r
590             (UtilityService.runHttpErrorHandler);\r
591         },\r
592         getServiceModelsByServiceType : function(namedQueryId,globalCustomerId,serviceType,successCallbackFunction) {\r
593             $log\r
594                 .debug("AaiService:getServiceModelsByServiceType");\r
595             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
596 \r
597             $http.get(url,\r
598                 {\r
599                     timeout : PropertyService\r
600                         .getServerResponseTimeoutMsec()\r
601                 }).then(function(response) {\r
602                 if (response.data) {\r
603                     successCallbackFunction(response);\r
604                 } else {\r
605                     successCallbackFunction([]);\r
606                 }\r
607             })["catch"]\r
608             (UtilityService.runHttpErrorHandler);\r
609         },\r
610 \r
611                 getVnfsByCustomerIdAndServiceType: function(globalSubscriberId, serviceType){\r
612             var deferred = $q.defer();\r
613 \r
614             if (UtilityService.hasContents(globalSubscriberId) &&\r
615                                 UtilityService.hasContents(serviceType) ) {\r
616 \r
617                 $http.get(COMPONENT.AAI_GET_VNF_BY_CUSTOMERID_AND_SERVICETYPE + globalSubscriberId + COMPONENT.FORWARD_SLASH\r
618                                         + serviceType )\r
619                     .success(function (response) {\r
620                         if(response) {\r
621                             deferred.resolve({data: response});\r
622                         } else {\r
623                             deferred.resolve({data: []});\r
624                         }\r
625                     }).error(function (data, status, headers, config) {\r
626                     deferred.reject({message: data, status: status});\r
627                 });\r
628             }\r
629 \r
630             return deferred.promise;\r
631         },\r
632 \r
633         getVnfVersionsByInvariantId: function(modelInvariantId){\r
634             var deferred = $q.defer();\r
635 \r
636             if (UtilityService.hasContents(modelInvariantId)) {\r
637                 var body = {"versions": modelInvariantId};\r
638                 $http.post(( COMPONENT.AAI_GET_VERSION_BY_INVARIANT_ID),body)\r
639 \r
640                     .success(function (response) {\r
641                         if(response) {\r
642                             deferred.resolve({data: response});\r
643                         } else {\r
644                             deferred.resolve({data: []});\r
645                         }\r
646                     }).error(function (data, status, headers, config) {\r
647                     deferred.reject({message: data, status: status});\r
648                 });\r
649             }\r
650 \r
651             return deferred.promise;\r
652         },\r
653 \r
654 \r
655 \r
656         getSubscriberServiceTypes: function(subscriberUuid) {\r
657             var deferred = $q.defer();\r
658             $log.debug("AaiService:getSubscriberServiceTypes: subscriberUuid: " + subscriberUuid);\r
659 \r
660             if (UtilityService.hasContents(subscriberUuid)) {\r
661                 $http.get(COMPONENT.AAI_SUB_DETAILS_PATH + subscriberUuid + COMPONENT.ASSIGN + Math.random())\r
662                     .success(function (response) {\r
663                         if(response && [FIELD.ID.SERVICE_SUBSCRIPTIONS]) {\r
664                             deferred.resolve({data: response[FIELD.ID.SERVICE_SUBSCRIPTIONS][FIELD.ID.SERVICE_SUBSCRIPTION]});\r
665                         } else {\r
666                             deferred.resolve({data: []});\r
667                         }\r
668                     }).error(function (data, status, headers, config) {\r
669                     deferred.reject({message: data, status: status});\r
670                 });\r
671             }\r
672 \r
673             return deferred.promise;\r
674         },\r
675         getVnfInstancesList: function(globalSubscriberId, serviceType, modelVersionId ,modelInvariantId, cloudRegionId)  {\r
676             var deferred = $q.defer();\r
677             $http.get([COMPONENT.AAI_GET_VNF_INSTANCES_LIST,\r
678                     globalSubscriberId,\r
679                     serviceType,\r
680                     modelVersionId,\r
681                     modelInvariantId,\r
682                     cloudRegionId]\r
683                 .join(COMPONENT.FORWARD_SLASH))\r
684                 .success(function (response) {\r
685                     deferred.resolve(response);\r
686                 }).error(function (data, status) {\r
687                     deferred.reject({message: data, status: status});\r
688             });\r
689             return deferred.promise;\r
690         },\r
691         getPnfInstancesList: function (globalCustomerId, serviceType, modelVersionId, modelInvariantId, cloudRegionId, equipVendor, equipModel) {\r
692             var deferred = $q.defer();\r
693             $http.get([COMPONENT.AAI_GET_PNF_INSTANCES_LIST,\r
694                     globalCustomerId, serviceType,\r
695                     modelVersionId, modelInvariantId,\r
696                     cloudRegionId,\r
697                     equipVendor, equipModel\r
698                 ].join(COMPONENT.FORWARD_SLASH))\r
699                 .success(function (response) {\r
700                     deferred.resolve(response);\r
701                 }).error(function (data, status) {\r
702                 deferred.reject({message: data, status: status});\r
703             });\r
704             return deferred.promise;\r
705         },\r
706         getByUri: function(uri)  {\r
707             var deferred = $q.defer();\r
708 \r
709             $http.get(COMPONENT.AAI_GET_BY_URI + uri)\r
710                 .success(function (response) {\r
711                     deferred.resolve({data: []});\r
712                 }).error(function (data, status, headers, config) {\r
713                     deferred.reject({message: data, status: status});\r
714                 });\r
715 \r
716             return deferred.promise;\r
717         },\r
718         getConfiguration: function(configurationId)  {\r
719             var deferred = $q.defer();\r
720 \r
721             $http.get(COMPONENT.AAI_GET_CONFIGURATION + configurationId)\r
722                 .success(function (response) {\r
723                     deferred.resolve({data: []});\r
724                 }).error(function (data, status, headers, config) {\r
725                 deferred.reject({message: data, status: status});\r
726             });\r
727 \r
728             return deferred.promise;\r
729         },\r
730 \r
731         getInstanceGroupsByVNFInstanceId: function (vnf_instance_id, successCallback, errorCallback) {\r
732             var url = COMPONENT.AAI_GET_INSTANCE_GROUPS_BY_VNF_INSTANCE_ID_PATH + "/" + vnf_instance_id;\r
733 \r
734             $http.get(url, {}, {\r
735                 timeout: PropertyService.getServerResponseTimeoutMsec()\r
736             }).then(function (response) {\r
737                 successCallback(response);\r
738             }, function (response) {\r
739                 errorCallback(response);\r
740             });\r
741         },\r
742 \r
743         postPOMBAverificationRequest: function (url, data, config) {\r
744             $http.post(url, data, config)\r
745                 .success(function (data, status, headers, config) {\r
746                     //If at some point in the future the result should be handled - this should be the entry point.\r
747                     log.debug("POMBA was called successfully with data: " + data);\r
748                 })\r
749                 .error(function (data, status, header, config) {\r
750                     log.debug("Error: " +\r
751                         "Data: " + data +\r
752                         "status: " + status +\r
753                         "headers: " + header +\r
754                         "config: " + config);\r
755                 });\r
756         },\r
757 \r
758         getHomingData: function(vnfInstanceId, vfModuleId)  {\r
759             var url = COMPONENT.AAI_GET_HOMING_DATA.replace('@vnfInstanceId', vnfInstanceId)\r
760                 .replace('@vfModuleId', vfModuleId);\r
761 \r
762             var deferred = $q.defer();\r
763 \r
764             $http.get(url)\r
765                 .success(function (response) {\r
766                     deferred.resolve({data: response});\r
767                 }).error(function (data, status, headers, config) {\r
768                 deferred.reject({message: data, status: status});\r
769             });\r
770 \r
771             return deferred.promise;\r
772 \r
773         }\r
774     };\r
775 };\r
776 \r
777 appDS2.factory("AaiService", ["$http", "$log", "PropertyService",\r
778     "UtilityService", "COMPONENT", "FIELD", "$q", "featureFlags", AaiService]);\r