org.onap migration
[vid.git] / vid-app-common / src / main / webapp / app / vid / scripts / services / aaiService.js
index 8132e3a..53a941b 100755 (executable)
 \r
 "use strict";\r
 \r
-var AaiService = function($http, $log, PropertyService, UtilityService, COMPONENT, FIELD) {\r
-    return {\r
-       getSubscriberName : function(globalCustomerId,\r
-                       successCallbackFunction) {\r
-                   $log\r
-                           .debug("AaiService:getSubscriberName: globalCustomerId: "\r
-                                   + globalCustomerId);\r
-                   $http.get(\r
-                                 COMPONENT.AAI_SUB_DETAILS_PATH\r
-                                   + globalCustomerId + COMPONENT.ASSIGN + Math.random(),\r
-                           {\r
-                               timeout : PropertyService\r
-                                       .getServerResponseTimeoutMsec()\r
-                           }).then(function(response) {\r
-                               var subName = "";\r
-                               if (response.data) {\r
-                                       subName = response.data[FIELD.ID.SUBNAME];\r
-                               }\r
-                               successCallbackFunction(subName);\r
-                           })["catch"]\r
-                           (UtilityService.runHttpErrorHandler);\r
-               },\r
-\r
-               \r
-               runNamedQuery : function (namedQueryId, globalCustomerId, serviceType, serviceInstanceId, successCallback, errorCallback) {\r
-               \r
-                       var url = COMPONENT.AAI_SUB_VIEWEDIT_PATH +\r
-                               COMPONENT.FORWARD_SLASH + encodeURIComponent(namedQueryId) +\r
-                               COMPONENT.FORWARD_SLASH + encodeURIComponent(globalCustomerId) + \r
-                               COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceType) + \r
-                               COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceInstanceId);\r
-                       $http.get(url, {\r
-\r
-                       },{\r
-                               timeout : PropertyService.getServerResponseTimeoutMsec()\r
-                       }).then(function(response) {\r
-                               if (response.data != null) { \r
-                               successCallback(response);\r
-                               } else {\r
-                                       errorCallback(response);\r
-                               }\r
-                       }, function(response) {\r
-                               errorCallback(response);\r
-                       });\r
-               },\r
-               \r
-               \r
-               getSubDetails : function(selectedSubscriber, selectedServiceInstance, successCallback, errorCallback) { \r
-                       var subscriber;\r
-                       var displayData;\r
-                       $http.get( COMPONENT.AAI_SUB_DETAILS_PATH  + selectedSubscriber, {\r
-\r
-                       },{\r
-                               timeout : PropertyService.getServerResponseTimeoutMsec()\r
-                       }).then(function(response) {\r
-                               displayData = [];\r
-                               subscriber = response.data;\r
-                               var subscriberName = subscriber[FIELD.ID.SUBNAME];\r
-                               if (subscriber[FIELD.ID.SERVICE_SUBSCRIPTIONS] != null) {\r
-                                       angular.forEach(subscriber[FIELD.ID.SERVICE_SUBSCRIPTIONS][FIELD.ID.SERVICE_SUBSCRIPTION], function(serviceSubscription, key) {\r
-                                               var serviceInstanceId = [];\r
-                                               var serviceType = "";\r
-                                               if (serviceSubscription[FIELD.ID.SERVICE_TYPE] != null) {\r
-                                                       serviceType = serviceSubscription[FIELD.ID.SERVICE_TYPE];\r
-                                               } else {\r
-                                                       serviceType = FIELD.PROMPT.NO_SERVICE_SUB;\r
-                                               }\r
-                                               if (serviceSubscription[FIELD.ID.SERVICE_INSTANCES] != null) {\r
-                                                       angular.forEach(serviceSubscription[FIELD.ID.SERVICE_INSTANCES][FIELD.ID.SERVICE_INSTANCE], function(instValue, instKey) {\r
-                                                               // put them together, i guess\r
-                                                               var inst = { "serviceInstanceId": instValue[FIELD.ID.SERVICE_INSTANCE_ID], \r
-                                                                                       "aaiModelInvariantId": instValue[FIELD.ID.MODEL_INVAR_ID],\r
-                                                                                       "aaiModelVersionId": instValue[FIELD.ID.MODEL_VERSION_ID],\r
-                                                                               "serviceInstanceName": instValue[FIELD.ID.SERVICE_INSTANCE_NAME]\r
-                                                               };\r
-                                                               if (selectedServiceInstance != null) {\r
-                                                                       if ((instValue[FIELD.ID.SERVICE_INSTANCE_ID] == selectedServiceInstance ) || (instValue[FIELD.ID.SERVICE_INSTANCE_NAME] == selectedServiceInstance)) {\r
-                                                                               serviceInstanceId.push(inst);\r
-                                                                       }\r
-                                                               } else {\r
-                                                                       serviceInstanceId.push(inst);\r
-                                                               }\r
-                                                       });\r
-                                               } else {\r
-                                                       if (serviceInstanceId == []) {\r
-                                                               serviceInstanceId = [ FIELD.PROMPT.NO_SERVICE_INSTANCE ];\r
-                                                       }\r
-                                               }\r
-                                               angular.forEach(serviceInstanceId, function(subVal, subKey) {\r
-                                                       displayData.push({\r
-                                                               globalCustomerId        : selectedSubscriber,\r
-                                                               subscriberName          : subscriberName,\r
-                                                               serviceType             : serviceType,\r
-                                                               serviceInstanceId       : subVal.serviceInstanceId,\r
-                                                               aaiModelInvariantId             : subVal.aaiModelInvariantId,\r
-                                                               aaiModelVersionId : subVal.aaiModelVersionId,\r
-                                                               serviceInstanceName     : subVal.serviceInstanceName\r
-                                                       });\r
-                                               });\r
-                                       });\r
-                               } else { \r
-                                       displayData.push({\r
-                                               globalCustomerId        : selectedSubscriber,\r
-                                               subscriberName          : selectedSubscriberName,\r
-                                               serviceType             : FIELD.PROMPT.NO_SERVICE_SUB,\r
-                                               serviceInstanceId       : FIELD.PROMPT.NO_SERVICE_INSTANCE\r
-                                       });  \r
-                               }\r
-                               successCallback(displayData, subscriberName);\r
-                       }, function(response) { \r
-                               errorCallback(response);\r
-                       });\r
-               },\r
-       getSubList : function(successCallback, errorCallback ) {\r
-\r
-               $http.get( FIELD.ID.AAI_GET_FULL_SUBSCRIBERS, {\r
-\r
-               },{\r
-                       timeout : PropertyService.getServerResponseTimeoutMsec()\r
-               }).then(function(response) {\r
-                       var customerList = [];\r
-                       if (response.data.customer != null) {\r
-                               angular.forEach(response.data.customer, function(subVal, subKey) {\r
-                                       var cust = { "globalCustomerId": subVal[FIELD.ID.GLOBAL_CUSTOMER_ID], "subscriberName": subVal[FIELD.ID.SUBNAME] };\r
-                                       customerList.push(cust);\r
-                               });     \r
-                               successCallback(customerList);\r
-                       } else {        \r
-                               errorCallback(response);\r
-                       }\r
-               },function(response) {\r
-                       errorCallback(response);\r
-               });\r
-       },\r
-       \r
-       getServices2 : function(successCallback, errorCallback ) {\r
-\r
-               $http.get( FIELD.ID.AAI_GET_SERVICES, {\r
-\r
-               },{\r
-                       timeout : PropertyService.getServerResponseTimeoutMsec()\r
-               }).then(function(response) {\r
-                       var customerList = [];\r
-                       if (response.data != null) {\r
-                               var serviceIdList = [];\r
-                               angular.forEach(response.data, function(value, key) {\r
-                                       angular.forEach(value, function(subVal, key) {\r
-                                               var newVal = { "id" : subVal[FIELD.ID.SERVICE_ID], "description" : subVal[FIELD.ID.SERVICE_DESCRIPTION] };\r
-                                               serviceIdList.push(newVal);\r
-                                       });\r
-                               });\r
-                               successCallback(serviceIdList);\r
-                       } else {        \r
-                               errorCallback(response);\r
-                       }\r
-               },function(response) {\r
-                       errorCallback(response);\r
-               });\r
-       },\r
-       \r
-               getSubscriptionServiceTypeList : function(globalCustomerId,\r
-                       successCallbackFunction) {\r
-                   $log\r
-                           .debug("AaiService:getSubscriptionServiceTypeList: globalCustomerId: "\r
-                                   + globalCustomerId);\r
-                   if ( UtilityService.hasContents(globalCustomerId) ) {\r
-                           $http.get(\r
-                                       COMPONENT.AAI_SUB_DETAILS_PATH\r
-                                           + globalCustomerId + COMPONENT.ASSIGN + Math.random(),\r
-                                   {\r
-                                       timeout : PropertyService\r
-                                               .getServerResponseTimeoutMsec()\r
-                                   }).then(function(response) {\r
-                                       if (response.data && response.data[FIELD.ID.SERVICE_SUBSCRIPTIONS]) {\r
-                                               var serviceTypes = [];\r
-                                               var serviceSubscriptions = response.data[FIELD.ID.SERVICE_SUBSCRIPTIONS][FIELD.ID.SERVICE_SUBSCRIPTION];\r
-                                               \r
-                                               for (var i = 0; i < serviceSubscriptions.length; i++) {\r
-                                                       serviceTypes.push(serviceSubscriptions[i][FIELD.ID.SERVICE_TYPE]);\r
-                                               }\r
-                                               successCallbackFunction(serviceTypes);\r
-                                       } else {\r
-                                               successCallbackFunction([]);\r
-                                       }\r
-                                   })["catch"]\r
-                                   (UtilityService.runHttpErrorHandler);\r
-                           }\r
-               },\r
-               getLcpCloudRegionTenantList : function(globalCustomerId, serviceType,\r
-                               successCallbackFunction) {\r
-                           $log\r
-                                   .debug("AaiService:getLcpCloudRegionTenantList: globalCustomerId: "\r
-                                           + globalCustomerId);\r
-                           var url =   COMPONENT.AAI_GET_TENANTS\r
-                           + globalCustomerId + COMPONENT.FORWARD_SLASH + serviceType + COMPONENT.ASSIGN + Math.random();\r
-                           \r
-                           $http.get(url,\r
-                                   {\r
-                                       timeout : PropertyService\r
-                                               .getServerResponseTimeoutMsec()\r
-                                   }).then(function(response) {\r
-                                       var lcpCloudRegionTenants = [];\r
-                                       var aaiLcpCloudRegionTenants = response.data;\r
-                                       \r
-                                       lcpCloudRegionTenants.push({\r
-                                               "cloudRegionId": "",\r
-                                               "tenantName": FIELD.PROMPT.REGION,\r
-                                               "tenantId": ""\r
-                                       });\r
-                                       \r
-                                       for (var i = 0; i < aaiLcpCloudRegionTenants.length; i++) {\r
-                                               lcpCloudRegionTenants.push({\r
-                                                       "cloudRegionId": aaiLcpCloudRegionTenants[i][COMPONENT.CLOUD_REGION_ID],\r
-                                                       "tenantName": aaiLcpCloudRegionTenants[i][COMPONENT.TENANT_NAME],\r
-                                                       "tenantId": aaiLcpCloudRegionTenants[i][COMPONENT.TENANT_ID]\r
-                                               });\r
-                                       }\r
-                                       \r
-                                       successCallbackFunction(lcpCloudRegionTenants);\r
-                                   })["catch"]\r
-                                   (UtilityService.runHttpErrorHandler);\r
-               },\r
-               getSubscribers : function(successCallbackFunction) {\r
-                           $log\r
-                                   .debug("AaiService:getSubscribers");\r
-                           var url =  FIELD.ID.AAI_GET_SUBSCRIBERS + COMPONENT.ASSIGN + Math.random();\r
-               \r
-                           $http.get(url,\r
-                                   {\r
-                                       timeout : PropertyService\r
-                                               .getServerResponseTimeoutMsec()\r
-                                   }).then(function(response) {\r
-                                       if (response.data) {\r
-                                               successCallbackFunction(response.data.customer);\r
-                                       } else {\r
-                                               successCallbackFunction([]);\r
-                                       }\r
-                                   })["catch"]\r
-                                   (UtilityService.runHttpErrorHandler);\r
-               },\r
-               getProvOptionsFromSystemProp : function(successCallbackFunction) {\r
-                   $log\r
-                           .debug("AaiService:getProvOptionsFromSystemProp");\r
-                   var url =  COMPONENT.GET_SYSTEM_PROP_VNF_PROV_STATUS_PATH;\r
-       \r
-                   $http.get(url,\r
-                           {\r
-                               timeout : PropertyService\r
-                                       .getServerResponseTimeoutMsec()\r
-                           }).then(function(response) {\r
-                               if (response.data) {\r
-                                       successCallbackFunction(response);\r
-                               } else {\r
-                                       successCallbackFunction([]);\r
-                               }\r
-                           })["catch"]\r
-                           (UtilityService.runHttpErrorHandler);\r
-           },\r
-           getLoggedInUserID : function(successCallbackFunction) {\r
-                   $log\r
-                           .debug("AaiService:getLoggedInUserID");\r
-                   var url = COMPONENT.GET_USER_ID;\r
-       \r
-                   $http.get(url,\r
-                           {\r
-                               timeout : PropertyService\r
-                                       .getServerResponseTimeoutMsec()\r
-                           }).then(function(response) {\r
-                               if (response.data) {\r
-                                       successCallbackFunction(response);\r
-                               } else {\r
-                                       successCallbackFunction([]);\r
-                               }\r
-                           })["catch"]\r
-                           (UtilityService.runHttpErrorHandler);\r
-           },\r
-               getServices : function(successCallbackFunction) {\r
-                   $log\r
-                           .debug("AaiService:getServices");\r
-                   var url =  COMPONENT.AAI_GET_SERVICES + COMPONENT.ASSIGN + Math.random();\r
-       \r
-                   $http.get(url,\r
-                           {\r
-                               timeout : PropertyService\r
-                                       .getServerResponseTimeoutMsec()\r
-                           }).then(function(response) {\r
-                               if (response.data) {\r
-                                       successCallbackFunction(response);\r
-                               } else {\r
-                                       successCallbackFunction([]);\r
-                               }\r
-                           })["catch"]\r
-                           (UtilityService.runHttpErrorHandler);\r
-       },\r
-       getServiceModels : function(globalCustomerId,serviceType,successCallbackFunction) {\r
-           $log\r
-                   .debug("AaiService:getServices");\r
-                var url =   COMPONENT.AAI_GET_SERVICES + COMPONENT.FORWARD_SLASH+globalCustomerId+ COMPONENT.FORWARD_SLASH +serviceType+COMPONENT.ASSIGN + Math.random();\r
-\r
-           $http.get(url,\r
-                   {\r
-                       timeout : PropertyService\r
-                               .getServerResponseTimeoutMsec()\r
-                   }).then(function(response) {\r
-                       if (response.data) {\r
-                               successCallbackFunction(response);\r
-                       } else {\r
-                               successCallbackFunction([]);\r
-                       }\r
-                   })["catch"]\r
-                   (UtilityService.runHttpErrorHandler);\r
-}\r
+var AaiService = function ($http, $log, PropertyService, UtilityService, COMPONENT, FIELD, $q) {\r
+\r
+    function getServiceInstance(serviceInstanceIdentifier, findBy) {\r
+        serviceInstanceIdentifier.trim();\r
+\r
+        return $http.get(COMPONENT.AAI_GET_SERVICE_INSTANCE_PATH + serviceInstanceIdentifier + "/" + findBy + "?r=" + Math.random(), {}, {\r
+            timeout: PropertyService.getServerResponseTimeoutMsec()\r
+        });\r
+    }\r
+\r
+    function getPnfByName(pnfName) {\r
+        var deferred = $q.defer();\r
+        var url = COMPONENT.AAI_GET_PNF_BY_NAME+ encodeURIComponent(pnfName)  ;\r
+        var config = { timeout: PropertyService.getServerResponseTimeoutMsec() };\r
+\r
+        $http.get(url, config)\r
+            .success(function (response) {\r
+                deferred.resolve({data: response});\r
+            })\r
+            .error(function(data, status, headers, config) {\r
+                deferred.reject({message: data, status: status});\r
+            });\r
+\r
+        return deferred.promise;\r
+    };\r
+\r
+\r
+    function getGlobalCustomerIdFromServiceInstanceResponse(response) {\r
+        var globalCustomerId = "";\r
+        if (angular.isArray(response.data[FIELD.ID.RESULT_DATA])) {\r
+            var customerIndex = 5;\r
+            var customerIdIndex = 6;\r
+            var itemIndex = 0;\r
+\r
+            var item = response.data[FIELD.ID.RESULT_DATA][itemIndex];\r
+            var url = item[FIELD.ID.RESOURCE_LINK];\r
+            var urlParts = url.split("/");\r
+            if (urlParts[customerIndex] === FIELD.ID.CUSTOMER) {\r
+                globalCustomerId = urlParts[customerIdIndex];\r
+            }\r
+        }\r
+        return globalCustomerId;\r
     }\r
-}\r
 \r
-appDS2.factory("AaiService", [ "$http", "$log", "PropertyService",\r
-       "UtilityService", "COMPONENT", "FIELD", AaiService ]);\r
+    function searchServiceInstances(query) {\r
+        return $http.get( COMPONENT.SEARCH_SERVICE_INSTANCES  + query, {}, {\r
+            timeout : PropertyService.getServerResponseTimeoutMsec()\r
+        }).then(function (response) {\r
+            var displayData = response.data[FIELD.ID.SERVICE_INSTANCES];\r
+            if (!displayData.length) {\r
+                displayData = [{\r
+                    globalCustomerId   : null,\r
+                    subscriberName     : null,\r
+                    serviceType                : FIELD.PROMPT.NO_SERVICE_SUB,\r
+                    serviceInstanceId  : FIELD.PROMPT.NO_SERVICE_INSTANCE\r
+                }];\r
+            }\r
+            return {displayData: displayData};\r
+        })\r
+    }\r
+\r
+    function getJoinedQueryString(queries) {\r
+        return queries.filter(function (val) {return val;}).join("&");\r
+    }\r
+\r
+    return {\r
+        getSubscriberName : function(globalCustomerId,\r
+                                     successCallbackFunction) {\r
+            $log\r
+                .debug("AaiService:getSubscriberName: globalCustomerId: "\r
+                    + globalCustomerId);\r
+            $http.get(\r
+                COMPONENT.AAI_SUB_DETAILS_PATH\r
+                + globalCustomerId + COMPONENT.ASSIGN + Math.random(),\r
+                {\r
+                    timeout : PropertyService\r
+                        .getServerResponseTimeoutMsec()\r
+                }).then(function(response) {\r
+                var result = {};\r
+                if (response.data) {\r
+                    result.subscriberName = response.data[FIELD.ID.SUBNAME];\r
+                    result.serviceSubscriptions = response.data[FIELD.ID.SERVICE_SUBSCRIPTIONS];\r
+                }\r
+                successCallbackFunction(result);\r
+            })["catch"]\r
+            (UtilityService.runHttpErrorHandler);\r
+        },\r
+\r
+        runNamedQuery : function (namedQueryId, globalCustomerId, serviceType, serviceInstanceId, successCallback, errorCallback) {\r
+\r
+            var url = COMPONENT.AAI_SUB_VIEWEDIT_PATH +\r
+                COMPONENT.FORWARD_SLASH + encodeURIComponent(namedQueryId) +\r
+                COMPONENT.FORWARD_SLASH + encodeURIComponent(globalCustomerId) +\r
+                COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceType) +\r
+                COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceInstanceId);\r
+            $http.get(url, {}, {\r
+\r
+\r
+                timeout : PropertyService.getServerResponseTimeoutMsec()\r
+            }).then(function(response) {\r
+                if (response.data != null) {\r
+                    successCallback(response);\r
+                } else {\r
+                    errorCallback(response);\r
+                }\r
+            }, function(response) {\r
+                errorCallback(response);\r
+            });\r
+        },\r
+\r
+\r
+        getVNFInformationByServiceTypeAndId : function (globalCustomerId, serviceType, serviceInstanceId, successCallback, errorCallback) {\r
+\r
+            var url = COMPONENT.AAI_GET_VNF_INFO +\r
+                COMPONENT.FORWARD_SLASH + encodeURIComponent(globalCustomerId) +\r
+                COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceType) +\r
+                COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceInstanceId);\r
+            $http.get(url, {}, {\r
+                timeout : PropertyService.getServerResponseTimeoutMsec()\r
+            }).then(function(response) {\r
+                if (response.data != null) {\r
+                    successCallback(response);\r
+                } else {\r
+                    errorCallback(response);\r
+                }\r
+            }, function(response) {\r
+                errorCallback(response);\r
+            });\r
+        },\r
+\r
+        getPNFInformationByServiceTypeAndId : function (globalCustomerId, serviceType, serviceInstanceId, successCallback, errorCallback) {\r
+\r
+            var url = COMPONENT.AAI_GET_PNF_INSTANCE +\r
+                COMPONENT.FORWARD_SLASH + encodeURIComponent(globalCustomerId) +\r
+                COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceType) +\r
+                COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceInstanceId);\r
+            $http.get(url, {}, {\r
+                timeout : PropertyService.getServerResponseTimeoutMsec()\r
+            }).then(function(response) {\r
+                if (response.data != null) {\r
+                    successCallback(response);\r
+                } else {\r
+                    errorCallback(response);\r
+                }\r
+            }, function(response) {\r
+                errorCallback(response);\r
+            });\r
+        },\r
+\r
+        searchServiceInstances: searchServiceInstances,\r
+\r
+        getModelVersionId: function (subscriberId, instanceId) {\r
+            var globalCustomerIdQuery = COMPONENT.SELECTED_SUBSCRIBER_SUB_PATH + subscriberId;\r
+            var serviceInstanceQuery = COMPONENT.SELECTED_SERVICE_INSTANCE_SUB_PATH + instanceId;\r
+\r
+            var query = "?" + getJoinedQueryString([globalCustomerIdQuery, serviceInstanceQuery]);\r
+\r
+            var deferred = $q.defer();\r
+\r
+            searchServiceInstances(query).then(function (response) {\r
+                var displayData = response.displayData;\r
+                if (displayData[0] && displayData[0].aaiModelVersionId) {\r
+                    deferred.resolve(displayData[0].aaiModelVersionId);\r
+                } else {\r
+                    deferred.reject(FIELD.ERROR.MODEL_VERSION_ID_MISSING);\r
+                }\r
+            }).catch(function (err) {\r
+                deferred.reject(err);\r
+            });\r
+\r
+            return deferred.promise;\r
+        },\r
+\r
+        getSubDetails : function(selectedSubscriber, selectedServiceInstance, successCallback, errorCallback) {\r
+            var subscriber;\r
+            var displayData;\r
+            $http.get( COMPONENT.AAI_SUB_DETAILS_PATH  + selectedSubscriber, {}, {\r
+\r
+\r
+                timeout : PropertyService.getServerResponseTimeoutMsec()\r
+            }).then(function(response) {\r
+                displayData = [];\r
+                subscriber = response.data;\r
+                var subscriberName = subscriber[FIELD.ID.SUBNAME];\r
+                if (subscriber[FIELD.ID.SERVICE_SUBSCRIPTIONS] != null) {\r
+                    angular.forEach(subscriber[FIELD.ID.SERVICE_SUBSCRIPTIONS][FIELD.ID.SERVICE_SUBSCRIPTION], function(serviceSubscription, key) {\r
+                        var serviceInstanceId = [];\r
+                        var serviceType = "";\r
+                        if (serviceSubscription[FIELD.ID.SERVICETYPE] != null) {\r
+                            serviceType = serviceSubscription[FIELD.ID.SERVICETYPE];\r
+                        } else {\r
+                            serviceType = FIELD.PROMPT.NO_SERVICE_SUB;\r
+                        }\r
+                        if (serviceSubscription[FIELD.ID.SERVICE_INSTANCES] != null) {\r
+                            angular.forEach(serviceSubscription[FIELD.ID.SERVICE_INSTANCES][FIELD.ID.SERVICE_INSTANCE], function(instValue, instKey) {\r
+                                // put them together, i guess\r
+                                var inst = { "serviceInstanceId": instValue[FIELD.ID.SERVICE_INSTANCE_ID],\r
+                                    "aaiModelInvariantId": instValue[FIELD.ID.MODEL_INVAR_ID],\r
+                                    "aaiModelVersionId": instValue[FIELD.ID.MODEL_VERSION_ID],\r
+                                    "serviceInstanceName": instValue[FIELD.ID.SERVICE_INSTANCE_NAME]\r
+                                };\r
+                                if (selectedServiceInstance != null) {\r
+                                    if ((instValue[FIELD.ID.SERVICE_INSTANCE_ID] == selectedServiceInstance ) || (instValue[FIELD.ID.SERVICE_INSTANCE_NAME] == selectedServiceInstance)) {\r
+                                        serviceInstanceId.push(inst);\r
+                                    }\r
+                                } else {\r
+                                    serviceInstanceId.push(inst);\r
+                                }\r
+                            });\r
+                        } else {\r
+                            serviceInstanceId = [ FIELD.PROMPT.NO_SERVICE_INSTANCE ];\r
+                        }\r
+                        angular.forEach(serviceInstanceId, function(subVal, subKey) {\r
+                            displayData.push({\r
+                                globalCustomerId       : selectedSubscriber,\r
+                                subscriberName         : subscriberName,\r
+                                serviceType            : serviceType,\r
+                                serviceInstanceId      : subVal.serviceInstanceId,\r
+                                aaiModelInvariantId            : subVal.aaiModelInvariantId,\r
+                                aaiModelVersionId\r
+                                    : subVal.aaiModelVersionId,\r
+                                serviceInstanceName    : subVal.serviceInstanceName,\r
+                                isPermitted: serviceSubscription[FIELD.ID.IS_PERMITTED]\r
+                            });\r
+                        });\r
+                    });\r
+                } else {\r
+                    displayData.push({\r
+                        globalCustomerId       : selectedSubscriber,\r
+                        subscriberName         : subscriberName,\r
+                        serviceType            : FIELD.PROMPT.NO_SERVICE_SUB,\r
+                        serviceInstanceId      : FIELD.PROMPT.NO_SERVICE_INSTANCE\r
+                    });\r
+                }\r
+                successCallback(displayData, subscriberName);\r
+            }, function(response) {\r
+                errorCallback(response);});\r
+        },\r
+\r
+        getSubList : function(successCallback, errorCallback ) {\r
+\r
+            $http.get( FIELD.ID.AAI_GET_FULL_SUBSCRIBERS, {}, {\r
+\r
+\r
+                timeout : PropertyService.getServerResponseTimeoutMsec()\r
+            }).then(function(response) {\r
+                var customerList = [];\r
+                if (response.data.customer != null) {\r
+                    angular.forEach(response.data.customer, function(subVal, subKey) {\r
+                        var cust = { "globalCustomerId": subVal[FIELD.ID.GLOBAL_CUSTOMER_ID], "subscriberName": subVal[FIELD.ID.SUBNAME],\r
+                            "isPermitted": subVal[FIELD.ID.IS_PERMITTED], };\r
+                        customerList.push(cust);\r
+                    });\r
+                    successCallback(customerList);\r
+                } else {\r
+                    errorCallback(response);\r
+                }\r
+            },function(response) {\r
+                errorCallback(response);\r
+            });\r
+        },\r
+\r
+        getServiceInstance : getServiceInstance,\r
+        getPnfByName : getPnfByName,\r
+\r
+        getGlobalCustomerIdByInstanceIdentifier : function(serviceInstanceIdentifier, findBy) {\r
+            serviceInstanceIdentifier.trim();\r
+\r
+            return getServiceInstance(serviceInstanceIdentifier, findBy)\r
+                .then(function (response) {\r
+                    return getGlobalCustomerIdFromServiceInstanceResponse(response);\r
+            });\r
+        },\r
+\r
+        getMultipleValueParamQueryString: function(values, paramSubPath) {\r
+            if (values.length) {\r
+                return paramSubPath + values.filter(function (val) {return val;}).join("&" + paramSubPath);\r
+            }\r
+        },\r
+\r
+        getJoinedQueryString: getJoinedQueryString,\r
+\r
+        getServices2 : function(successCallback, errorCallback ) {\r
+\r
+            $http.get( FIELD.ID.AAI_GET_SERVICES, {}, {\r
+\r
+\r
+                timeout : PropertyService.getServerResponseTimeoutMsec()\r
+            }).then(function(response) {\r
+                var customerList = [];\r
+                if (response.data != null) {\r
+                    var serviceIdList = [];\r
+                    angular.forEach(response.data, function(value, key) {\r
+                        angular.forEach(value, function(subVal, key) {\r
+                            var newVal = { "id" : subVal[FIELD.ID.SERVICE_ID], "description" : subVal[FIELD.ID.SERVICE_DESCRIPTION] ,\r
+                                "isPermitted" : subVal[FIELD.ID.IS_PERMITTED]\r
+\r
+                            };serviceIdList.push(newVal);\r
+                        });\r
+                    });\r
+                    successCallback(serviceIdList);\r
+                } else {\r
+                    errorCallback(response);\r
+                }\r
+            },function(response) {\r
+                errorCallback(response);\r
+            });\r
+        },\r
+\r
+        getSubscriptionServiceTypeList : function(globalCustomerId,\r
+                                                  successCallbackFunction) {\r
+            $log\r
+                .debug("AaiService:getSubscriptionServiceTypeList: globalCustomerId: "\r
+                    + globalCustomerId);\r
+            if ( UtilityService.hasContents(globalCustomerId) ) {\r
+                $http.get(\r
+                    COMPONENT.AAI_SUB_DETAILS_PATH\r
+                    + globalCustomerId + COMPONENT.ASSIGN + Math.random(),\r
+                    {\r
+                        timeout : PropertyService\r
+                            .getServerResponseTimeoutMsec()\r
+                    }).then(function(response) {\r
+                    if (response.data && response.data[FIELD.ID.SERVICE_SUBSCRIPTIONS]) {\r
+                        var serviceTypes = [];\r
+                        var serviceSubscriptions = response.data[FIELD.ID.SERVICE_SUBSCRIPTIONS][FIELD.ID.SERVICE_SUBSCRIPTION];\r
+\r
+                        for (var i = 0; i < serviceSubscriptions.length; i++) {\r
+                            serviceTypes.push({\r
+                                "name":serviceSubscriptions[i][FIELD.ID.SERVICETYPE],\r
+                                "isPermitted": serviceSubscriptions[i][FIELD.ID.IS_PERMITTED],\r
+                                "id": i\r
+                            });}\r
+                        successCallbackFunction(serviceTypes);\r
+                    } else {\r
+                        successCallbackFunction([]);\r
+                    }\r
+                })["catch"]\r
+                (UtilityService.runHttpErrorHandler);\r
+            }\r
+        },\r
+        getLcpCloudRegionTenantList : function(globalCustomerId, serviceType,\r
+                                               successCallbackFunction) {\r
+            $log\r
+                .debug("AaiService:getLcpCloudRegionTenantList: globalCustomerId: "\r
+                    + globalCustomerId);\r
+            var url =   COMPONENT.AAI_GET_TENANTS\r
+                + globalCustomerId + COMPONENT.FORWARD_SLASH + serviceType + COMPONENT.ASSIGN + Math.random();\r
+\r
+            $http.get(url,\r
+                {\r
+                    timeout : PropertyService\r
+                        .getServerResponseTimeoutMsec()\r
+                }).then(function(response) {\r
+                var lcpCloudRegionTenants = [];\r
+                var aaiLcpCloudRegionTenants = response.data;\r
+\r
+                for (var i = 0; i < aaiLcpCloudRegionTenants.length; i++) {\r
+                    lcpCloudRegionTenants.push({\r
+                        "cloudRegionId": aaiLcpCloudRegionTenants[i][COMPONENT.CLOUD_REGION_ID],\r
+                        "tenantName": aaiLcpCloudRegionTenants[i][COMPONENT.TENANT_NAME],\r
+                        "tenantId": aaiLcpCloudRegionTenants[i][COMPONENT.TENANT_ID],\r
+                        "isPermitted": aaiLcpCloudRegionTenants[i][COMPONENT.IS_PERMITTED]});\r
+                }\r
+\r
+                successCallbackFunction(lcpCloudRegionTenants);\r
+            }).catch(function(error) {\r
+                (UtilityService.runHttpErrorHandler(error.data, error.status));\r
+            })\r
+        },\r
+        getSubscribers : function(successCallbackFunction) {\r
+            $log\r
+                .debug("AaiService:getSubscribers");\r
+            var url =  FIELD.ID.AAI_GET_SUBSCRIBERS + COMPONENT.ASSIGN + Math.random();\r
+\r
+            $http.get(url,\r
+                {\r
+                    timeout : PropertyService\r
+                        .getServerResponseTimeoutMsec()\r
+                }).then(function(response) {\r
+                if (response.data) {\r
+                    successCallbackFunction(response.data.customer);\r
+                } else {\r
+                    successCallbackFunction([]);\r
+                }\r
+            })["catch"]\r
+            (UtilityService.runHttpErrorHandler);\r
+        },\r
+        getProvOptionsFromSystemProp : function(successCallbackFunction) {\r
+            $log\r
+                .debug("AaiService:getProvOptionsFromSystemProp");\r
+            var url =  COMPONENT.GET_SYSTEM_PROP_VNF_PROV_STATUS_PATH;\r
+\r
+            $http.get(url,\r
+                {\r
+                    timeout : PropertyService\r
+                        .getServerResponseTimeoutMsec()\r
+                }).then(function(response) {\r
+                if (response.data) {\r
+                    successCallbackFunction(response);\r
+                } else {\r
+                    successCallbackFunction([]);\r
+                }\r
+            })["catch"]\r
+            (UtilityService.runHttpErrorHandler);\r
+        },\r
+        getLoggedInUserID : function(successCallbackFunction, catchCallbackFunction) {\r
+            $log\r
+                .debug("AaiService:getLoggedInUserID");\r
+            var url = COMPONENT.GET_USER_ID;\r
+\r
+            $http.get(url,\r
+                {\r
+                    transformResponse: [function (data) {\r
+                        return data;\r
+                    }],\r
+                    timeout : PropertyService\r
+                        .getServerResponseTimeoutMsec()\r
+                }).then(function(response) {\r
+                if (response.data) {\r
+                    successCallbackFunction(response);\r
+                } else {\r
+                    successCallbackFunction([]);\r
+                }\r
+            },function(failure){console.log("failure")})["catch"]\r
+                if(catchCallbackFunction) {\r
+                    catchCallbackFunction();\r
+                }\r
+            (UtilityService.runHttpErrorHandler);\r
+        },\r
+        getServices : function(successCallbackFunction) {\r
+            $log\r
+                .debug("AaiService:getServices");\r
+            var url =  COMPONENT.AAI_GET_SERVICES + COMPONENT.ASSIGN + Math.random();\r
+\r
+            $http.get(url,\r
+                {\r
+                    timeout: PropertyService\r
+                        .getServerResponseTimeoutMsec()\r
+                }).then(function (response) {\r
+                if (response.data) {\r
+                    successCallbackFunction(response);\r
+                } else {\r
+                    successCallbackFunction([]);\r
+                }\r
+            })["catch"]\r
+            (UtilityService.runHttpErrorHandler);\r
+        },\r
+\r
+        getAicZones: function (successCallbackFunction) {\r
+            $log\r
+                .debug("getAicZones:getAicZones");\r
+            var url = COMPONENT.AAI_GET_AIC_ZONES +COMPONENT.ASSIGN + Math.random();\r
+\r
+            $http.get(url,\r
+                {\r
+                    timeout : PropertyService\r
+                        .getServerResponseTimeoutMsec()\r
+                }).then(function(response) {\r
+                if (response.data) {\r
+                    successCallbackFunction(response);\r
+                } else {\r
+                    successCallbackFunction([]);\r
+                }\r
+            })["catch"]\r
+            (UtilityService.runHttpErrorHandler);},\r
+        getAicZoneForPNF: function (globalCustomerId,serviceType,serviceInstanceId,successCallbackFunction) {\r
+            $log\r
+                .debug("getAicZones:getAicZones");\r
+            var url = COMPONENT.AAI_GET_AIC_ZONE_FOR_PNF\r
+                .replace('@serviceInstanceId', serviceInstanceId)\r
+                .replace('@globalCustomerId', globalCustomerId)\r
+                .replace('@serviceType', serviceType);\r
+            $http.get(url,\r
+                {\r
+                    timeout : PropertyService\r
+                        .getServerResponseTimeoutMsec()\r
+                }).then(function(response) {\r
+                successCallbackFunction(response.data);\r
+            })["catch"]\r
+            (UtilityService.runHttpErrorHandler);},\r
+\r
+        getServiceModels : function(globalCustomerId,serviceType,successCallbackFunction) {\r
+            $log\r
+                .debug("AaiService:getServices");\r
+            var url =   COMPONENT.AAI_GET_SERVICES + COMPONENT.FORWARD_SLASH+globalCustomerId+ COMPONENT.FORWARD_SLASH +serviceType+COMPONENT.ASSIGN + Math.random();\r
+\r
+            $http.get(url,\r
+                {\r
+                    timeout : PropertyService\r
+                        .getServerResponseTimeoutMsec()\r
+                }).then(function(response) {\r
+                if (response.data) {\r
+                    successCallbackFunction(response);\r
+                } else {\r
+                    successCallbackFunction([]);\r
+                }\r
+            })["catch"]\r
+            (UtilityService.runHttpErrorHandler);\r
+        },\r
+        getServiceModelsByServiceType : function(namedQueryId,globalCustomerId,serviceType,successCallbackFunction) {\r
+            $log\r
+                .debug("AaiService:getServiceModelsByServiceType");\r
+            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
+\r
+            $http.get(url,\r
+                {\r
+                    timeout : PropertyService\r
+                        .getServerResponseTimeoutMsec()\r
+                }).then(function(response) {\r
+                if (response.data) {\r
+                    successCallbackFunction(response);\r
+                } else {\r
+                    successCallbackFunction([]);\r
+                }\r
+            })["catch"]\r
+            (UtilityService.runHttpErrorHandler);\r
+        },\r
+\r
+               getVnfsByCustomerIdAndServiceType: function(globalSubscriberId, serviceType){\r
+            var deferred = $q.defer();\r
+\r
+            if (UtilityService.hasContents(globalSubscriberId) &&\r
+                               UtilityService.hasContents(serviceType) ) {\r
+\r
+                $http.get(COMPONENT.AAI_GET_VNF_BY_CUSTOMERID_AND_SERVICETYPE + globalSubscriberId + COMPONENT.FORWARD_SLASH\r
+                                       + serviceType )\r
+                    .success(function (response) {\r
+                        if(response) {\r
+                            deferred.resolve({data: response});\r
+                        } else {\r
+                            deferred.resolve({data: []});\r
+                        }\r
+                    }).error(function (data, status, headers, config) {\r
+                    deferred.reject({message: data, status: status});\r
+                });\r
+            }\r
+\r
+            return deferred.promise;\r
+        },\r
+\r
+        getVnfVersionsByInvariantId: function(modelInvariantId){\r
+            var deferred = $q.defer();\r
+\r
+            if (UtilityService.hasContents(modelInvariantId)) {\r
+                var body = {"versions" : modelInvariantId}\r
+                $http.post(( COMPONENT.AAI_GET_VERSION_BY_INVARIANT_ID),body)\r
+\r
+                    .success(function (response) {\r
+                        if(response) {\r
+                            deferred.resolve({data: response});\r
+                        } else {\r
+                            deferred.resolve({data: []});\r
+                        }\r
+                    }).error(function (data, status, headers, config) {\r
+                    deferred.reject({message: data, status: status});\r
+                });\r
+            }\r
+\r
+            return deferred.promise;\r
+        },\r
+\r
+\r
+\r
+        getSubscriberServiceTypes: function(subscriberUuid) {\r
+            var deferred = $q.defer();\r
+            $log.debug("AaiService:getSubscriberServiceTypes: subscriberUuid: " + subscriberUuid);\r
+\r
+            if (UtilityService.hasContents(subscriberUuid)) {\r
+                $http.get(COMPONENT.AAI_SUB_DETAILS_PATH + subscriberUuid + COMPONENT.ASSIGN + Math.random())\r
+                    .success(function (response) {\r
+                        if(response && [FIELD.ID.SERVICE_SUBSCRIPTIONS]) {\r
+                            deferred.resolve({data: response[FIELD.ID.SERVICE_SUBSCRIPTIONS][FIELD.ID.SERVICE_SUBSCRIPTION]});\r
+                        } else {\r
+                            deferred.resolve({data: []});\r
+                        }\r
+                    }).error(function (data, status, headers, config) {\r
+                    deferred.reject({message: data, status: status});\r
+                });\r
+            }\r
+\r
+            return deferred.promise;\r
+        },\r
+        getVnfInstancesList: function(globalSubscriberId, serviceType, modelVersionId ,modelInvariantId, cloudRegionId)  {\r
+            var deferred = $q.defer();\r
+            $http.get([COMPONENT.AAI_GET_VNF_INSTANCES_LIST,\r
+                    globalSubscriberId,\r
+                    serviceType,\r
+                    modelVersionId,\r
+                    modelInvariantId,\r
+                    cloudRegionId]\r
+                .join(COMPONENT.FORWARD_SLASH))\r
+                .success(function (response) {\r
+                    deferred.resolve(response);\r
+                }).error(function (data, status) {\r
+                    deferred.reject({message: data, status: status});\r
+            });\r
+            return deferred.promise;\r
+        },\r
+        getPnfInstancesList: function (globalCustomerId, serviceType, modelVersionId, modelInvariantId, cloudRegionId, equipVendor, equipModel) {\r
+            var deferred = $q.defer();\r
+            $http.get([COMPONENT.AAI_GET_PNF_INSTANCES_LIST,\r
+                    globalCustomerId, serviceType,\r
+                    modelVersionId, modelInvariantId,\r
+                    cloudRegionId,\r
+                    equipVendor, equipModel\r
+                ].join(COMPONENT.FORWARD_SLASH))\r
+                .success(function (response) {\r
+                    deferred.resolve(response);\r
+                }).error(function (data, status) {\r
+                deferred.reject({message: data, status: status});\r
+            });\r
+            return deferred.promise;\r
+        },\r
+        getByUri: function(uri)  {\r
+            var deferred = $q.defer();\r
+\r
+            $http.get(COMPONENT.AAI_GET_BY_URI + uri)\r
+                .success(function (response) {\r
+                    deferred.resolve({data: []});\r
+                }).error(function (data, status, headers, config) {\r
+                    deferred.reject({message: data, status: status});\r
+                });\r
+\r
+            return deferred.promise;\r
+        },\r
+        getConfiguration: function(configurationId)  {\r
+            var deferred = $q.defer();\r
+\r
+            $http.get(COMPONENT.AAI_GET_CONFIGURATION + configurationId)\r
+                .success(function (response) {\r
+                    deferred.resolve({data: []});\r
+                }).error(function (data, status, headers, config) {\r
+                deferred.reject({message: data, status: status});\r
+            });\r
+\r
+            return deferred.promise;\r
+        }\r
+    }};\r
+\r
+appDS2.factory("AaiService", ["$http", "$log", "PropertyService",\r
+    "UtilityService", "COMPONENT", "FIELD", "$q", AaiService]);\r