ceb5a75413169eb46bda7ac742c4b02c66aa5701
[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             if(featureFlags.isOn(COMPONENT.FEATURE_FLAGS.FLAG_REGION_ID_FROM_REMOTE)){\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             }else {\r
361                 var staticConfigurationData = {};\r
362                 angular.forEach(ids, function(id) {\r
363                     staticConfigurationData[id] = {\r
364                         "cloudRegionId": "mdt1"\r
365                     }\r
366                 });\r
367                 defer.resolve({\r
368                     "data": staticConfigurationData\r
369                 });\r
370             }\r
371 \r
372             return defer.promise;\r
373 \r
374         },\r
375 \r
376         getPortMirroringSourcePorts : function (ids) {\r
377             var defer = $q.defer();\r
378             var url = COMPONENT.AAI_GET_PORT_MIRRORING_SOURCE_PORTS +'?configurationIds=' +  ids.join(',');\r
379             $http.get(url).then(function(res){\r
380                 defer.resolve(res);\r
381             }).catch(function(err) {\r
382                 $log.error(err);\r
383                 defer.resolve({});\r
384             });\r
385             return defer.promise;\r
386         },\r
387 \r
388         getSubscriptionServiceTypeList : function(globalCustomerId,\r
389                                                   successCallbackFunction) {\r
390             $log\r
391                 .debug("AaiService:getSubscriptionServiceTypeList: globalCustomerId: "\r
392                     + globalCustomerId);\r
393             if ( UtilityService.hasContents(globalCustomerId) ) {\r
394                 $http.get(\r
395                     COMPONENT.AAI_SUB_DETAILS_PATH\r
396                     + globalCustomerId + COMPONENT.ASSIGN + Math.random(),\r
397                     {\r
398                         timeout : PropertyService\r
399                             .getServerResponseTimeoutMsec()\r
400                     }).then(function(response) {\r
401                     if (response.data && response.data[FIELD.ID.SERVICE_SUBSCRIPTIONS]) {\r
402                         var serviceTypes = [];\r
403                         var serviceSubscriptions = response.data[FIELD.ID.SERVICE_SUBSCRIPTIONS][FIELD.ID.SERVICE_SUBSCRIPTION];\r
404 \r
405                         for (var i = 0; i < serviceSubscriptions.length; i++) {\r
406                             serviceTypes.push({\r
407                                 "name":serviceSubscriptions[i][FIELD.ID.SERVICETYPE],\r
408                                 "isPermitted": serviceSubscriptions[i][FIELD.ID.IS_PERMITTED],\r
409                                 "id": i\r
410                             });}\r
411                         successCallbackFunction(serviceTypes);\r
412                     } else {\r
413                         successCallbackFunction([]);\r
414                     }\r
415                 })["catch"]\r
416                 (UtilityService.runHttpErrorHandler);\r
417             }\r
418         },\r
419         getLcpCloudRegionTenantList : function(globalCustomerId, serviceType,\r
420                                                successCallbackFunction) {\r
421             $log\r
422                 .debug("AaiService:getLcpCloudRegionTenantList: globalCustomerId: "\r
423                     + globalCustomerId);\r
424             var url =   COMPONENT.AAI_GET_TENANTS\r
425                 + globalCustomerId + COMPONENT.FORWARD_SLASH + serviceType + COMPONENT.ASSIGN + Math.random();\r
426 \r
427             $http.get(url,\r
428                 {\r
429                     timeout : PropertyService\r
430                         .getServerResponseTimeoutMsec()\r
431                 }).then(function(response) {\r
432                 var lcpCloudRegionTenants = [];\r
433                 var aaiLcpCloudRegionTenants = response.data;\r
434 \r
435                 for (var i = 0; i < aaiLcpCloudRegionTenants.length; i++) {\r
436                     lcpCloudRegionTenants.push({\r
437                         "cloudOwner": aaiLcpCloudRegionTenants[i][COMPONENT.CLOUD_OWNER],\r
438                         "cloudRegionId": aaiLcpCloudRegionTenants[i][COMPONENT.CLOUD_REGION_ID],\r
439                         "tenantName": aaiLcpCloudRegionTenants[i][COMPONENT.TENANT_NAME],\r
440                         "tenantId": aaiLcpCloudRegionTenants[i][COMPONENT.TENANT_ID],\r
441                         "isPermitted": aaiLcpCloudRegionTenants[i][COMPONENT.IS_PERMITTED]});\r
442                 }\r
443 \r
444                 successCallbackFunction(lcpCloudRegionTenants);\r
445             }).catch(function(error) {\r
446                 (UtilityService.runHttpErrorHandler(error.data, error.status));\r
447             })\r
448         },\r
449         getSubscribers : function(successCallbackFunction) {\r
450             $log\r
451                 .debug("AaiService:getSubscribers");\r
452             var url =  FIELD.ID.AAI_GET_SUBSCRIBERS + COMPONENT.ASSIGN + Math.random();\r
453 \r
454             $http.get(url,\r
455                 {\r
456                     timeout : PropertyService\r
457                         .getServerResponseTimeoutMsec()\r
458                 }).then(function(response) {\r
459                 if (response.data) {\r
460                     successCallbackFunction(response.data.customer);\r
461                 } else {\r
462                     successCallbackFunction([]);\r
463                 }\r
464             })["catch"]\r
465             (UtilityService.runHttpErrorHandler);\r
466         },\r
467         getProvOptionsFromSystemProp : function(successCallbackFunction) {\r
468             $log\r
469                 .debug("AaiService:getProvOptionsFromSystemProp");\r
470             var url =  COMPONENT.GET_SYSTEM_PROP_VNF_PROV_STATUS_PATH;\r
471 \r
472             $http.get(url,\r
473                 {\r
474                     timeout : PropertyService\r
475                         .getServerResponseTimeoutMsec()\r
476                 }).then(function(response) {\r
477                 if (response.data) {\r
478                     successCallbackFunction(response);\r
479                 } else {\r
480                     successCallbackFunction([]);\r
481                 }\r
482             })["catch"]\r
483             (UtilityService.runHttpErrorHandler);\r
484         },\r
485         getLoggedInUserID : function(successCallbackFunction, catchCallbackFunction) {\r
486             $log\r
487                 .debug("AaiService:getLoggedInUserID");\r
488             var url = COMPONENT.GET_USER_ID;\r
489 \r
490             $http.get(url,\r
491                 {\r
492                     transformResponse: [function (data) {\r
493                         return data;\r
494                     }],\r
495                     timeout : PropertyService\r
496                         .getServerResponseTimeoutMsec()\r
497                 }).then(function(response) {\r
498                 if (response.data) {\r
499                     successCallbackFunction(response);\r
500                 } else {\r
501                     successCallbackFunction([]);\r
502                 }\r
503             })["catch"] (function(response, status) {\r
504                 if (catchCallbackFunction) {\r
505                     catchCallbackFunction();\r
506                 }\r
507                 UtilityService.runHttpErrorHandler(response, status);\r
508             })\r
509         },\r
510         getServices : function(successCallbackFunction) {\r
511             $log\r
512                 .debug("AaiService:getServices");\r
513             var url =  COMPONENT.AAI_GET_SERVICES + COMPONENT.ASSIGN + Math.random();\r
514 \r
515             $http.get(url,\r
516                 {\r
517                     timeout: PropertyService\r
518                         .getServerResponseTimeoutMsec()\r
519                 }).then(function (response) {\r
520                 if (response.data) {\r
521                     successCallbackFunction(response);\r
522                 } else {\r
523                     successCallbackFunction([]);\r
524                 }\r
525             })["catch"]\r
526             (UtilityService.runHttpErrorHandler);\r
527         },\r
528 \r
529         getAicZones: function (successCallbackFunction) {\r
530             $log\r
531                 .debug("getAicZones:getAicZones");\r
532             var url = COMPONENT.AAI_GET_AIC_ZONES +COMPONENT.ASSIGN + Math.random();\r
533 \r
534             $http.get(url,\r
535                 {\r
536                     timeout : PropertyService\r
537                         .getServerResponseTimeoutMsec()\r
538                 }).then(function(response) {\r
539                 if (response.data) {\r
540                     successCallbackFunction(response);\r
541                 } else {\r
542                     successCallbackFunction([]);\r
543                 }\r
544             })["catch"]\r
545             (UtilityService.runHttpErrorHandler);},\r
546         getAicZoneForPNF: function (globalCustomerId,serviceType,serviceInstanceId,successCallbackFunction) {\r
547             $log\r
548                 .debug("getAicZones:getAicZones");\r
549             var url = COMPONENT.AAI_GET_AIC_ZONE_FOR_PNF\r
550                 .replace('@serviceInstanceId', serviceInstanceId)\r
551                 .replace('@globalCustomerId', globalCustomerId)\r
552                 .replace('@serviceType', serviceType);\r
553             $http.get(url,\r
554                 {\r
555                     timeout : PropertyService\r
556                         .getServerResponseTimeoutMsec()\r
557                 }).then(function(response) {\r
558                 successCallbackFunction(response.data);\r
559             })["catch"]\r
560             (UtilityService.runHttpErrorHandler);},\r
561 \r
562         getServiceModels : function(globalCustomerId,serviceType,successCallbackFunction) {\r
563             $log\r
564                 .debug("AaiService:getServices");\r
565             var url =   COMPONENT.AAI_GET_SERVICES + COMPONENT.FORWARD_SLASH+globalCustomerId+ COMPONENT.FORWARD_SLASH +serviceType+COMPONENT.ASSIGN + Math.random();\r
566 \r
567             $http.get(url,\r
568                 {\r
569                     timeout : PropertyService\r
570                         .getServerResponseTimeoutMsec()\r
571                 }).then(function(response) {\r
572                 if (response.data) {\r
573                     successCallbackFunction(response);\r
574                 } else {\r
575                     successCallbackFunction([]);\r
576                 }\r
577             })["catch"]\r
578             (UtilityService.runHttpErrorHandler);\r
579         },\r
580         getServiceModelsByServiceType : function(namedQueryId,globalCustomerId,serviceType,successCallbackFunction) {\r
581             $log\r
582                 .debug("AaiService:getServiceModelsByServiceType");\r
583             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
584 \r
585             $http.get(url,\r
586                 {\r
587                     timeout : PropertyService\r
588                         .getServerResponseTimeoutMsec()\r
589                 }).then(function(response) {\r
590                 if (response.data) {\r
591                     successCallbackFunction(response);\r
592                 } else {\r
593                     successCallbackFunction([]);\r
594                 }\r
595             })["catch"]\r
596             (UtilityService.runHttpErrorHandler);\r
597         },\r
598 \r
599                 getVnfsByCustomerIdAndServiceType: function(globalSubscriberId, serviceType){\r
600             var deferred = $q.defer();\r
601 \r
602             if (UtilityService.hasContents(globalSubscriberId) &&\r
603                                 UtilityService.hasContents(serviceType) ) {\r
604 \r
605                 $http.get(COMPONENT.AAI_GET_VNF_BY_CUSTOMERID_AND_SERVICETYPE + globalSubscriberId + COMPONENT.FORWARD_SLASH\r
606                                         + serviceType )\r
607                     .success(function (response) {\r
608                         if(response) {\r
609                             deferred.resolve({data: response});\r
610                         } else {\r
611                             deferred.resolve({data: []});\r
612                         }\r
613                     }).error(function (data, status, headers, config) {\r
614                     deferred.reject({message: data, status: status});\r
615                 });\r
616             }\r
617 \r
618             return deferred.promise;\r
619         },\r
620 \r
621         getVnfVersionsByInvariantId: function(modelInvariantId){\r
622             var deferred = $q.defer();\r
623 \r
624             if (UtilityService.hasContents(modelInvariantId)) {\r
625                 var body = {"versions": modelInvariantId};\r
626                 $http.post(( COMPONENT.AAI_GET_VERSION_BY_INVARIANT_ID),body)\r
627 \r
628                     .success(function (response) {\r
629                         if(response) {\r
630                             deferred.resolve({data: response});\r
631                         } else {\r
632                             deferred.resolve({data: []});\r
633                         }\r
634                     }).error(function (data, status, headers, config) {\r
635                     deferred.reject({message: data, status: status});\r
636                 });\r
637             }\r
638 \r
639             return deferred.promise;\r
640         },\r
641 \r
642 \r
643 \r
644         getSubscriberServiceTypes: function(subscriberUuid) {\r
645             var deferred = $q.defer();\r
646             $log.debug("AaiService:getSubscriberServiceTypes: subscriberUuid: " + subscriberUuid);\r
647 \r
648             if (UtilityService.hasContents(subscriberUuid)) {\r
649                 $http.get(COMPONENT.AAI_SUB_DETAILS_PATH + subscriberUuid + COMPONENT.ASSIGN + Math.random())\r
650                     .success(function (response) {\r
651                         if(response && [FIELD.ID.SERVICE_SUBSCRIPTIONS]) {\r
652                             deferred.resolve({data: response[FIELD.ID.SERVICE_SUBSCRIPTIONS][FIELD.ID.SERVICE_SUBSCRIPTION]});\r
653                         } else {\r
654                             deferred.resolve({data: []});\r
655                         }\r
656                     }).error(function (data, status, headers, config) {\r
657                     deferred.reject({message: data, status: status});\r
658                 });\r
659             }\r
660 \r
661             return deferred.promise;\r
662         },\r
663         getVnfInstancesList: function(globalSubscriberId, serviceType, modelVersionId ,modelInvariantId, cloudRegionId)  {\r
664             var deferred = $q.defer();\r
665             $http.get([COMPONENT.AAI_GET_VNF_INSTANCES_LIST,\r
666                     globalSubscriberId,\r
667                     serviceType,\r
668                     modelVersionId,\r
669                     modelInvariantId,\r
670                     cloudRegionId]\r
671                 .join(COMPONENT.FORWARD_SLASH))\r
672                 .success(function (response) {\r
673                     deferred.resolve(response);\r
674                 }).error(function (data, status) {\r
675                     deferred.reject({message: data, status: status});\r
676             });\r
677             return deferred.promise;\r
678         },\r
679         getPnfInstancesList: function (globalCustomerId, serviceType, modelVersionId, modelInvariantId, cloudRegionId, equipVendor, equipModel) {\r
680             var deferred = $q.defer();\r
681             $http.get([COMPONENT.AAI_GET_PNF_INSTANCES_LIST,\r
682                     globalCustomerId, serviceType,\r
683                     modelVersionId, modelInvariantId,\r
684                     cloudRegionId,\r
685                     equipVendor, equipModel\r
686                 ].join(COMPONENT.FORWARD_SLASH))\r
687                 .success(function (response) {\r
688                     deferred.resolve(response);\r
689                 }).error(function (data, status) {\r
690                 deferred.reject({message: data, status: status});\r
691             });\r
692             return deferred.promise;\r
693         },\r
694         getByUri: function(uri)  {\r
695             var deferred = $q.defer();\r
696 \r
697             $http.get(COMPONENT.AAI_GET_BY_URI + uri)\r
698                 .success(function (response) {\r
699                     deferred.resolve({data: []});\r
700                 }).error(function (data, status, headers, config) {\r
701                     deferred.reject({message: data, status: status});\r
702                 });\r
703 \r
704             return deferred.promise;\r
705         },\r
706         getConfiguration: function(configurationId)  {\r
707             var deferred = $q.defer();\r
708 \r
709             $http.get(COMPONENT.AAI_GET_CONFIGURATION + configurationId)\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 \r
719         getInstanceGroupsByVNFInstanceId: function (vnf_instance_id, successCallback, errorCallback) {\r
720             var url = COMPONENT.AAI_GET_INSTANCE_GROUPS_BY_VNF_INSTANCE_ID_PATH + "/" + vnf_instance_id;\r
721 \r
722             $http.get(url, {}, {\r
723                 timeout: PropertyService.getServerResponseTimeoutMsec()\r
724             }).then(function (response) {\r
725                 successCallback(response);\r
726             }, function (response) {\r
727                 errorCallback(response);\r
728             });\r
729         },\r
730 \r
731         postPOMBAverificationRequest: function (url, data, config) {\r
732             $http.post(url, data, config)\r
733                 .success(function (data, status, headers, config) {\r
734                     //If at some point in the future the result should be handled - this should be the entry point.\r
735                     log.debug("POMBA was called successfully with data: " + data);\r
736                 })\r
737                 .error(function (data, status, header, config) {\r
738                     log.debug("Error: " +\r
739                         "Data: " + data +\r
740                         "status: " + status +\r
741                         "headers: " + header +\r
742                         "config: " + config);\r
743                 });\r
744         }\r
745     }\r
746 };\r
747 \r
748 appDS2.factory("AaiService", ["$http", "$log", "PropertyService",\r
749     "UtilityService", "COMPONENT", "FIELD", "$q", "featureFlags", AaiService]);\r