org.onap migration
[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 \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 \r
49 \r
50     function getGlobalCustomerIdFromServiceInstanceResponse(response) {\r
51         var globalCustomerId = "";\r
52         if (angular.isArray(response.data[FIELD.ID.RESULT_DATA])) {\r
53             var customerIndex = 5;\r
54             var customerIdIndex = 6;\r
55             var itemIndex = 0;\r
56 \r
57             var item = response.data[FIELD.ID.RESULT_DATA][itemIndex];\r
58             var url = item[FIELD.ID.RESOURCE_LINK];\r
59             var urlParts = url.split("/");\r
60             if (urlParts[customerIndex] === FIELD.ID.CUSTOMER) {\r
61                 globalCustomerId = urlParts[customerIdIndex];\r
62             }\r
63         }\r
64         return globalCustomerId;\r
65     }\r
66 \r
67     function searchServiceInstances(query) {\r
68         return $http.get( COMPONENT.SEARCH_SERVICE_INSTANCES  + query, {}, {\r
69             timeout : PropertyService.getServerResponseTimeoutMsec()\r
70         }).then(function (response) {\r
71             var displayData = response.data[FIELD.ID.SERVICE_INSTANCES];\r
72             if (!displayData.length) {\r
73                 displayData = [{\r
74                     globalCustomerId    : null,\r
75                     subscriberName      : null,\r
76                     serviceType                 : FIELD.PROMPT.NO_SERVICE_SUB,\r
77                     serviceInstanceId   : FIELD.PROMPT.NO_SERVICE_INSTANCE\r
78                 }];\r
79             }\r
80             return {displayData: displayData};\r
81         })\r
82     }\r
83 \r
84     function getJoinedQueryString(queries) {\r
85         return queries.filter(function (val) {return val;}).join("&");\r
86     }\r
87 \r
88     return {\r
89         getSubscriberName : function(globalCustomerId,\r
90                                      successCallbackFunction) {\r
91             $log\r
92                 .debug("AaiService:getSubscriberName: globalCustomerId: "\r
93                     + globalCustomerId);\r
94             $http.get(\r
95                 COMPONENT.AAI_SUB_DETAILS_PATH\r
96                 + globalCustomerId + COMPONENT.ASSIGN + Math.random(),\r
97                 {\r
98                     timeout : PropertyService\r
99                         .getServerResponseTimeoutMsec()\r
100                 }).then(function(response) {\r
101                 var result = {};\r
102                 if (response.data) {\r
103                     result.subscriberName = response.data[FIELD.ID.SUBNAME];\r
104                     result.serviceSubscriptions = response.data[FIELD.ID.SERVICE_SUBSCRIPTIONS];\r
105                 }\r
106                 successCallbackFunction(result);\r
107             })["catch"]\r
108             (UtilityService.runHttpErrorHandler);\r
109         },\r
110 \r
111         runNamedQuery : function (namedQueryId, globalCustomerId, serviceType, serviceInstanceId, successCallback, errorCallback) {\r
112 \r
113             var url = COMPONENT.AAI_SUB_VIEWEDIT_PATH +\r
114                 COMPONENT.FORWARD_SLASH + encodeURIComponent(namedQueryId) +\r
115                 COMPONENT.FORWARD_SLASH + encodeURIComponent(globalCustomerId) +\r
116                 COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceType) +\r
117                 COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceInstanceId);\r
118             $http.get(url, {}, {\r
119 \r
120 \r
121                 timeout : PropertyService.getServerResponseTimeoutMsec()\r
122             }).then(function(response) {\r
123                 if (response.data != null) {\r
124                     successCallback(response);\r
125                 } else {\r
126                     errorCallback(response);\r
127                 }\r
128             }, function(response) {\r
129                 errorCallback(response);\r
130             });\r
131         },\r
132 \r
133 \r
134         getVNFInformationByServiceTypeAndId : function (globalCustomerId, serviceType, serviceInstanceId, successCallback, errorCallback) {\r
135 \r
136             var url = COMPONENT.AAI_GET_VNF_INFO +\r
137                 COMPONENT.FORWARD_SLASH + encodeURIComponent(globalCustomerId) +\r
138                 COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceType) +\r
139                 COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceInstanceId);\r
140             $http.get(url, {}, {\r
141                 timeout : PropertyService.getServerResponseTimeoutMsec()\r
142             }).then(function(response) {\r
143                 if (response.data != null) {\r
144                     successCallback(response);\r
145                 } else {\r
146                     errorCallback(response);\r
147                 }\r
148             }, function(response) {\r
149                 errorCallback(response);\r
150             });\r
151         },\r
152 \r
153         getPNFInformationByServiceTypeAndId : function (globalCustomerId, serviceType, serviceInstanceId, successCallback, errorCallback) {\r
154 \r
155             var url = COMPONENT.AAI_GET_PNF_INSTANCE +\r
156                 COMPONENT.FORWARD_SLASH + encodeURIComponent(globalCustomerId) +\r
157                 COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceType) +\r
158                 COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceInstanceId);\r
159             $http.get(url, {}, {\r
160                 timeout : PropertyService.getServerResponseTimeoutMsec()\r
161             }).then(function(response) {\r
162                 if (response.data != null) {\r
163                     successCallback(response);\r
164                 } else {\r
165                     errorCallback(response);\r
166                 }\r
167             }, function(response) {\r
168                 errorCallback(response);\r
169             });\r
170         },\r
171 \r
172         searchServiceInstances: searchServiceInstances,\r
173 \r
174         getModelVersionId: function (subscriberId, instanceId) {\r
175             var globalCustomerIdQuery = COMPONENT.SELECTED_SUBSCRIBER_SUB_PATH + subscriberId;\r
176             var serviceInstanceQuery = COMPONENT.SELECTED_SERVICE_INSTANCE_SUB_PATH + instanceId;\r
177 \r
178             var query = "?" + getJoinedQueryString([globalCustomerIdQuery, serviceInstanceQuery]);\r
179 \r
180             var deferred = $q.defer();\r
181 \r
182             searchServiceInstances(query).then(function (response) {\r
183                 var displayData = response.displayData;\r
184                 if (displayData[0] && displayData[0].aaiModelVersionId) {\r
185                     deferred.resolve(displayData[0].aaiModelVersionId);\r
186                 } else {\r
187                     deferred.reject(FIELD.ERROR.MODEL_VERSION_ID_MISSING);\r
188                 }\r
189             }).catch(function (err) {\r
190                 deferred.reject(err);\r
191             });\r
192 \r
193             return deferred.promise;\r
194         },\r
195 \r
196         getSubDetails : function(selectedSubscriber, selectedServiceInstance, successCallback, errorCallback) {\r
197             var subscriber;\r
198             var displayData;\r
199             $http.get( COMPONENT.AAI_SUB_DETAILS_PATH  + selectedSubscriber, {}, {\r
200 \r
201 \r
202                 timeout : PropertyService.getServerResponseTimeoutMsec()\r
203             }).then(function(response) {\r
204                 displayData = [];\r
205                 subscriber = response.data;\r
206                 var subscriberName = subscriber[FIELD.ID.SUBNAME];\r
207                 if (subscriber[FIELD.ID.SERVICE_SUBSCRIPTIONS] != null) {\r
208                     angular.forEach(subscriber[FIELD.ID.SERVICE_SUBSCRIPTIONS][FIELD.ID.SERVICE_SUBSCRIPTION], function(serviceSubscription, key) {\r
209                         var serviceInstanceId = [];\r
210                         var serviceType = "";\r
211                         if (serviceSubscription[FIELD.ID.SERVICETYPE] != null) {\r
212                             serviceType = serviceSubscription[FIELD.ID.SERVICETYPE];\r
213                         } else {\r
214                             serviceType = FIELD.PROMPT.NO_SERVICE_SUB;\r
215                         }\r
216                         if (serviceSubscription[FIELD.ID.SERVICE_INSTANCES] != null) {\r
217                             angular.forEach(serviceSubscription[FIELD.ID.SERVICE_INSTANCES][FIELD.ID.SERVICE_INSTANCE], function(instValue, instKey) {\r
218                                 // put them together, i guess\r
219                                 var inst = { "serviceInstanceId": instValue[FIELD.ID.SERVICE_INSTANCE_ID],\r
220                                     "aaiModelInvariantId": instValue[FIELD.ID.MODEL_INVAR_ID],\r
221                                     "aaiModelVersionId": instValue[FIELD.ID.MODEL_VERSION_ID],\r
222                                     "serviceInstanceName": instValue[FIELD.ID.SERVICE_INSTANCE_NAME]\r
223                                 };\r
224                                 if (selectedServiceInstance != null) {\r
225                                     if ((instValue[FIELD.ID.SERVICE_INSTANCE_ID] == selectedServiceInstance ) || (instValue[FIELD.ID.SERVICE_INSTANCE_NAME] == selectedServiceInstance)) {\r
226                                         serviceInstanceId.push(inst);\r
227                                     }\r
228                                 } else {\r
229                                     serviceInstanceId.push(inst);\r
230                                 }\r
231                             });\r
232                         } else {\r
233                             serviceInstanceId = [ FIELD.PROMPT.NO_SERVICE_INSTANCE ];\r
234                         }\r
235                         angular.forEach(serviceInstanceId, function(subVal, subKey) {\r
236                             displayData.push({\r
237                                 globalCustomerId        : selectedSubscriber,\r
238                                 subscriberName          : subscriberName,\r
239                                 serviceType             : serviceType,\r
240                                 serviceInstanceId       : subVal.serviceInstanceId,\r
241                                 aaiModelInvariantId             : subVal.aaiModelInvariantId,\r
242                                 aaiModelVersionId\r
243                                     : subVal.aaiModelVersionId,\r
244                                 serviceInstanceName     : subVal.serviceInstanceName,\r
245                                 isPermitted: serviceSubscription[FIELD.ID.IS_PERMITTED]\r
246                             });\r
247                         });\r
248                     });\r
249                 } else {\r
250                     displayData.push({\r
251                         globalCustomerId        : selectedSubscriber,\r
252                         subscriberName          : subscriberName,\r
253                         serviceType             : FIELD.PROMPT.NO_SERVICE_SUB,\r
254                         serviceInstanceId       : FIELD.PROMPT.NO_SERVICE_INSTANCE\r
255                     });\r
256                 }\r
257                 successCallback(displayData, subscriberName);\r
258             }, function(response) {\r
259                 errorCallback(response);});\r
260         },\r
261 \r
262         getSubList : function(successCallback, errorCallback ) {\r
263 \r
264             $http.get( FIELD.ID.AAI_GET_FULL_SUBSCRIBERS, {}, {\r
265 \r
266 \r
267                 timeout : PropertyService.getServerResponseTimeoutMsec()\r
268             }).then(function(response) {\r
269                 var customerList = [];\r
270                 if (response.data.customer != null) {\r
271                     angular.forEach(response.data.customer, function(subVal, subKey) {\r
272                         var cust = { "globalCustomerId": subVal[FIELD.ID.GLOBAL_CUSTOMER_ID], "subscriberName": subVal[FIELD.ID.SUBNAME],\r
273                             "isPermitted": subVal[FIELD.ID.IS_PERMITTED], };\r
274                         customerList.push(cust);\r
275                     });\r
276                     successCallback(customerList);\r
277                 } else {\r
278                     errorCallback(response);\r
279                 }\r
280             },function(response) {\r
281                 errorCallback(response);\r
282             });\r
283         },\r
284 \r
285         getServiceInstance : getServiceInstance,\r
286         getPnfByName : getPnfByName,\r
287 \r
288         getGlobalCustomerIdByInstanceIdentifier : function(serviceInstanceIdentifier, findBy) {\r
289             serviceInstanceIdentifier.trim();\r
290 \r
291             return getServiceInstance(serviceInstanceIdentifier, findBy)\r
292                 .then(function (response) {\r
293                     return getGlobalCustomerIdFromServiceInstanceResponse(response);\r
294             });\r
295         },\r
296 \r
297         getMultipleValueParamQueryString: function(values, paramSubPath) {\r
298             if (values.length) {\r
299                 return paramSubPath + values.filter(function (val) {return val;}).join("&" + paramSubPath);\r
300             }\r
301         },\r
302 \r
303         getJoinedQueryString: getJoinedQueryString,\r
304 \r
305         getServices2 : function(successCallback, errorCallback ) {\r
306 \r
307             $http.get( FIELD.ID.AAI_GET_SERVICES, {}, {\r
308 \r
309 \r
310                 timeout : PropertyService.getServerResponseTimeoutMsec()\r
311             }).then(function(response) {\r
312                 var customerList = [];\r
313                 if (response.data != null) {\r
314                     var serviceIdList = [];\r
315                     angular.forEach(response.data, function(value, key) {\r
316                         angular.forEach(value, function(subVal, key) {\r
317                             var newVal = { "id" : subVal[FIELD.ID.SERVICE_ID], "description" : subVal[FIELD.ID.SERVICE_DESCRIPTION] ,\r
318                                 "isPermitted" : subVal[FIELD.ID.IS_PERMITTED]\r
319 \r
320                             };serviceIdList.push(newVal);\r
321                         });\r
322                     });\r
323                     successCallback(serviceIdList);\r
324                 } else {\r
325                     errorCallback(response);\r
326                 }\r
327             },function(response) {\r
328                 errorCallback(response);\r
329             });\r
330         },\r
331 \r
332         getSubscriptionServiceTypeList : function(globalCustomerId,\r
333                                                   successCallbackFunction) {\r
334             $log\r
335                 .debug("AaiService:getSubscriptionServiceTypeList: globalCustomerId: "\r
336                     + globalCustomerId);\r
337             if ( UtilityService.hasContents(globalCustomerId) ) {\r
338                 $http.get(\r
339                     COMPONENT.AAI_SUB_DETAILS_PATH\r
340                     + globalCustomerId + COMPONENT.ASSIGN + Math.random(),\r
341                     {\r
342                         timeout : PropertyService\r
343                             .getServerResponseTimeoutMsec()\r
344                     }).then(function(response) {\r
345                     if (response.data && response.data[FIELD.ID.SERVICE_SUBSCRIPTIONS]) {\r
346                         var serviceTypes = [];\r
347                         var serviceSubscriptions = response.data[FIELD.ID.SERVICE_SUBSCRIPTIONS][FIELD.ID.SERVICE_SUBSCRIPTION];\r
348 \r
349                         for (var i = 0; i < serviceSubscriptions.length; i++) {\r
350                             serviceTypes.push({\r
351                                 "name":serviceSubscriptions[i][FIELD.ID.SERVICETYPE],\r
352                                 "isPermitted": serviceSubscriptions[i][FIELD.ID.IS_PERMITTED],\r
353                                 "id": i\r
354                             });}\r
355                         successCallbackFunction(serviceTypes);\r
356                     } else {\r
357                         successCallbackFunction([]);\r
358                     }\r
359                 })["catch"]\r
360                 (UtilityService.runHttpErrorHandler);\r
361             }\r
362         },\r
363         getLcpCloudRegionTenantList : function(globalCustomerId, serviceType,\r
364                                                successCallbackFunction) {\r
365             $log\r
366                 .debug("AaiService:getLcpCloudRegionTenantList: globalCustomerId: "\r
367                     + globalCustomerId);\r
368             var url =   COMPONENT.AAI_GET_TENANTS\r
369                 + globalCustomerId + COMPONENT.FORWARD_SLASH + serviceType + COMPONENT.ASSIGN + Math.random();\r
370 \r
371             $http.get(url,\r
372                 {\r
373                     timeout : PropertyService\r
374                         .getServerResponseTimeoutMsec()\r
375                 }).then(function(response) {\r
376                 var lcpCloudRegionTenants = [];\r
377                 var aaiLcpCloudRegionTenants = response.data;\r
378 \r
379                 for (var i = 0; i < aaiLcpCloudRegionTenants.length; i++) {\r
380                     lcpCloudRegionTenants.push({\r
381                         "cloudRegionId": aaiLcpCloudRegionTenants[i][COMPONENT.CLOUD_REGION_ID],\r
382                         "tenantName": aaiLcpCloudRegionTenants[i][COMPONENT.TENANT_NAME],\r
383                         "tenantId": aaiLcpCloudRegionTenants[i][COMPONENT.TENANT_ID],\r
384                         "isPermitted": aaiLcpCloudRegionTenants[i][COMPONENT.IS_PERMITTED]});\r
385                 }\r
386 \r
387                 successCallbackFunction(lcpCloudRegionTenants);\r
388             }).catch(function(error) {\r
389                 (UtilityService.runHttpErrorHandler(error.data, error.status));\r
390             })\r
391         },\r
392         getSubscribers : function(successCallbackFunction) {\r
393             $log\r
394                 .debug("AaiService:getSubscribers");\r
395             var url =  FIELD.ID.AAI_GET_SUBSCRIBERS + COMPONENT.ASSIGN + Math.random();\r
396 \r
397             $http.get(url,\r
398                 {\r
399                     timeout : PropertyService\r
400                         .getServerResponseTimeoutMsec()\r
401                 }).then(function(response) {\r
402                 if (response.data) {\r
403                     successCallbackFunction(response.data.customer);\r
404                 } else {\r
405                     successCallbackFunction([]);\r
406                 }\r
407             })["catch"]\r
408             (UtilityService.runHttpErrorHandler);\r
409         },\r
410         getProvOptionsFromSystemProp : function(successCallbackFunction) {\r
411             $log\r
412                 .debug("AaiService:getProvOptionsFromSystemProp");\r
413             var url =  COMPONENT.GET_SYSTEM_PROP_VNF_PROV_STATUS_PATH;\r
414 \r
415             $http.get(url,\r
416                 {\r
417                     timeout : PropertyService\r
418                         .getServerResponseTimeoutMsec()\r
419                 }).then(function(response) {\r
420                 if (response.data) {\r
421                     successCallbackFunction(response);\r
422                 } else {\r
423                     successCallbackFunction([]);\r
424                 }\r
425             })["catch"]\r
426             (UtilityService.runHttpErrorHandler);\r
427         },\r
428         getLoggedInUserID : function(successCallbackFunction, catchCallbackFunction) {\r
429             $log\r
430                 .debug("AaiService:getLoggedInUserID");\r
431             var url = COMPONENT.GET_USER_ID;\r
432 \r
433             $http.get(url,\r
434                 {\r
435                     transformResponse: [function (data) {\r
436                         return data;\r
437                     }],\r
438                     timeout : PropertyService\r
439                         .getServerResponseTimeoutMsec()\r
440                 }).then(function(response) {\r
441                 if (response.data) {\r
442                     successCallbackFunction(response);\r
443                 } else {\r
444                     successCallbackFunction([]);\r
445                 }\r
446             },function(failure){console.log("failure")})["catch"]\r
447                 if(catchCallbackFunction) {\r
448                     catchCallbackFunction();\r
449                 }\r
450             (UtilityService.runHttpErrorHandler);\r
451         },\r
452         getServices : function(successCallbackFunction) {\r
453             $log\r
454                 .debug("AaiService:getServices");\r
455             var url =  COMPONENT.AAI_GET_SERVICES + COMPONENT.ASSIGN + Math.random();\r
456 \r
457             $http.get(url,\r
458                 {\r
459                     timeout: PropertyService\r
460                         .getServerResponseTimeoutMsec()\r
461                 }).then(function (response) {\r
462                 if (response.data) {\r
463                     successCallbackFunction(response);\r
464                 } else {\r
465                     successCallbackFunction([]);\r
466                 }\r
467             })["catch"]\r
468             (UtilityService.runHttpErrorHandler);\r
469         },\r
470 \r
471         getAicZones: function (successCallbackFunction) {\r
472             $log\r
473                 .debug("getAicZones:getAicZones");\r
474             var url = COMPONENT.AAI_GET_AIC_ZONES +COMPONENT.ASSIGN + Math.random();\r
475 \r
476             $http.get(url,\r
477                 {\r
478                     timeout : PropertyService\r
479                         .getServerResponseTimeoutMsec()\r
480                 }).then(function(response) {\r
481                 if (response.data) {\r
482                     successCallbackFunction(response);\r
483                 } else {\r
484                     successCallbackFunction([]);\r
485                 }\r
486             })["catch"]\r
487             (UtilityService.runHttpErrorHandler);},\r
488         getAicZoneForPNF: function (globalCustomerId,serviceType,serviceInstanceId,successCallbackFunction) {\r
489             $log\r
490                 .debug("getAicZones:getAicZones");\r
491             var url = COMPONENT.AAI_GET_AIC_ZONE_FOR_PNF\r
492                 .replace('@serviceInstanceId', serviceInstanceId)\r
493                 .replace('@globalCustomerId', globalCustomerId)\r
494                 .replace('@serviceType', serviceType);\r
495             $http.get(url,\r
496                 {\r
497                     timeout : PropertyService\r
498                         .getServerResponseTimeoutMsec()\r
499                 }).then(function(response) {\r
500                 successCallbackFunction(response.data);\r
501             })["catch"]\r
502             (UtilityService.runHttpErrorHandler);},\r
503 \r
504         getServiceModels : function(globalCustomerId,serviceType,successCallbackFunction) {\r
505             $log\r
506                 .debug("AaiService:getServices");\r
507             var url =   COMPONENT.AAI_GET_SERVICES + COMPONENT.FORWARD_SLASH+globalCustomerId+ COMPONENT.FORWARD_SLASH +serviceType+COMPONENT.ASSIGN + Math.random();\r
508 \r
509             $http.get(url,\r
510                 {\r
511                     timeout : PropertyService\r
512                         .getServerResponseTimeoutMsec()\r
513                 }).then(function(response) {\r
514                 if (response.data) {\r
515                     successCallbackFunction(response);\r
516                 } else {\r
517                     successCallbackFunction([]);\r
518                 }\r
519             })["catch"]\r
520             (UtilityService.runHttpErrorHandler);\r
521         },\r
522         getServiceModelsByServiceType : function(namedQueryId,globalCustomerId,serviceType,successCallbackFunction) {\r
523             $log\r
524                 .debug("AaiService:getServiceModelsByServiceType");\r
525             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
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                 getVnfsByCustomerIdAndServiceType: function(globalSubscriberId, serviceType){\r
542             var deferred = $q.defer();\r
543 \r
544             if (UtilityService.hasContents(globalSubscriberId) &&\r
545                                 UtilityService.hasContents(serviceType) ) {\r
546 \r
547                 $http.get(COMPONENT.AAI_GET_VNF_BY_CUSTOMERID_AND_SERVICETYPE + globalSubscriberId + COMPONENT.FORWARD_SLASH\r
548                                         + serviceType )\r
549                     .success(function (response) {\r
550                         if(response) {\r
551                             deferred.resolve({data: response});\r
552                         } else {\r
553                             deferred.resolve({data: []});\r
554                         }\r
555                     }).error(function (data, status, headers, config) {\r
556                     deferred.reject({message: data, status: status});\r
557                 });\r
558             }\r
559 \r
560             return deferred.promise;\r
561         },\r
562 \r
563         getVnfVersionsByInvariantId: function(modelInvariantId){\r
564             var deferred = $q.defer();\r
565 \r
566             if (UtilityService.hasContents(modelInvariantId)) {\r
567                 var body = {"versions" : modelInvariantId}\r
568                 $http.post(( COMPONENT.AAI_GET_VERSION_BY_INVARIANT_ID),body)\r
569 \r
570                     .success(function (response) {\r
571                         if(response) {\r
572                             deferred.resolve({data: response});\r
573                         } else {\r
574                             deferred.resolve({data: []});\r
575                         }\r
576                     }).error(function (data, status, headers, config) {\r
577                     deferred.reject({message: data, status: status});\r
578                 });\r
579             }\r
580 \r
581             return deferred.promise;\r
582         },\r
583 \r
584 \r
585 \r
586         getSubscriberServiceTypes: function(subscriberUuid) {\r
587             var deferred = $q.defer();\r
588             $log.debug("AaiService:getSubscriberServiceTypes: subscriberUuid: " + subscriberUuid);\r
589 \r
590             if (UtilityService.hasContents(subscriberUuid)) {\r
591                 $http.get(COMPONENT.AAI_SUB_DETAILS_PATH + subscriberUuid + COMPONENT.ASSIGN + Math.random())\r
592                     .success(function (response) {\r
593                         if(response && [FIELD.ID.SERVICE_SUBSCRIPTIONS]) {\r
594                             deferred.resolve({data: response[FIELD.ID.SERVICE_SUBSCRIPTIONS][FIELD.ID.SERVICE_SUBSCRIPTION]});\r
595                         } else {\r
596                             deferred.resolve({data: []});\r
597                         }\r
598                     }).error(function (data, status, headers, config) {\r
599                     deferred.reject({message: data, status: status});\r
600                 });\r
601             }\r
602 \r
603             return deferred.promise;\r
604         },\r
605         getVnfInstancesList: function(globalSubscriberId, serviceType, modelVersionId ,modelInvariantId, cloudRegionId)  {\r
606             var deferred = $q.defer();\r
607             $http.get([COMPONENT.AAI_GET_VNF_INSTANCES_LIST,\r
608                     globalSubscriberId,\r
609                     serviceType,\r
610                     modelVersionId,\r
611                     modelInvariantId,\r
612                     cloudRegionId]\r
613                 .join(COMPONENT.FORWARD_SLASH))\r
614                 .success(function (response) {\r
615                     deferred.resolve(response);\r
616                 }).error(function (data, status) {\r
617                     deferred.reject({message: data, status: status});\r
618             });\r
619             return deferred.promise;\r
620         },\r
621         getPnfInstancesList: function (globalCustomerId, serviceType, modelVersionId, modelInvariantId, cloudRegionId, equipVendor, equipModel) {\r
622             var deferred = $q.defer();\r
623             $http.get([COMPONENT.AAI_GET_PNF_INSTANCES_LIST,\r
624                     globalCustomerId, serviceType,\r
625                     modelVersionId, modelInvariantId,\r
626                     cloudRegionId,\r
627                     equipVendor, equipModel\r
628                 ].join(COMPONENT.FORWARD_SLASH))\r
629                 .success(function (response) {\r
630                     deferred.resolve(response);\r
631                 }).error(function (data, status) {\r
632                 deferred.reject({message: data, status: status});\r
633             });\r
634             return deferred.promise;\r
635         },\r
636         getByUri: function(uri)  {\r
637             var deferred = $q.defer();\r
638 \r
639             $http.get(COMPONENT.AAI_GET_BY_URI + uri)\r
640                 .success(function (response) {\r
641                     deferred.resolve({data: []});\r
642                 }).error(function (data, status, headers, config) {\r
643                     deferred.reject({message: data, status: status});\r
644                 });\r
645 \r
646             return deferred.promise;\r
647         },\r
648         getConfiguration: function(configurationId)  {\r
649             var deferred = $q.defer();\r
650 \r
651             $http.get(COMPONENT.AAI_GET_CONFIGURATION + configurationId)\r
652                 .success(function (response) {\r
653                     deferred.resolve({data: []});\r
654                 }).error(function (data, status, headers, config) {\r
655                 deferred.reject({message: data, status: status});\r
656             });\r
657 \r
658             return deferred.promise;\r
659         }\r
660     }};\r
661 \r
662 appDS2.factory("AaiService", ["$http", "$log", "PropertyService",\r
663     "UtilityService", "COMPONENT", "FIELD", "$q", AaiService]);\r