org.onap migration
[vid.git] / vid-app-common / src / main / webapp / app / vid / scripts / services / aaiService.js
index 09c70eb..53a941b 100755 (executable)
 \r
 "use strict";\r
 \r
-var AaiService = function ($http, $log, PropertyService, UtilityService, COMPONENT, FIELD) {\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
+    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
+        getSubscriberName : function(globalCustomerId,\r
                                      successCallbackFunction) {\r
             $log\r
                 .debug("AaiService:getSubscriberName: globalCustomerId: "\r
@@ -31,20 +95,20 @@ var AaiService = function ($http, $log, PropertyService, UtilityService, COMPONE
                 COMPONENT.AAI_SUB_DETAILS_PATH\r
                 + globalCustomerId + COMPONENT.ASSIGN + Math.random(),\r
                 {\r
-                    timeout: PropertyService\r
+                    timeout : PropertyService\r
                         .getServerResponseTimeoutMsec()\r
-                }).then(function (response) {\r
-                var subName = "";\r
+                }).then(function(response) {\r
+                var result = {};\r
                 if (response.data) {\r
-                    subName = response.data[FIELD.ID.SUBNAME];\r
+                    result.subscriberName = response.data[FIELD.ID.SUBNAME];\r
+                    result.serviceSubscriptions = response.data[FIELD.ID.SERVICE_SUBSCRIPTIONS];\r
                 }\r
-                successCallbackFunction(subName);\r
+                successCallbackFunction(result);\r
             })["catch"]\r
             (UtilityService.runHttpErrorHandler);\r
         },\r
 \r
-\r
-        runNamedQuery: function (namedQueryId, globalCustomerId, serviceType, serviceInstanceId, successCallback, errorCallback) {\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
@@ -52,30 +116,96 @@ var AaiService = function ($http, $log, PropertyService, UtilityService, COMPONE
                 COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceType) +\r
                 COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceInstanceId);\r
             $http.get(url, {}, {\r
-                timeout: PropertyService.getServerResponseTimeoutMsec()\r
-            }).then(function (response) {\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
+            }, function(response) {\r
                 errorCallback(response);\r
             });\r
         },\r
 \r
+        getPNFInformationByServiceTypeAndId : function (globalCustomerId, serviceType, serviceInstanceId, successCallback, errorCallback) {\r
 \r
-        getSubDetails: function (selectedSubscriber, selectedServiceInstance, successCallback, errorCallback) {\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
-                timeout: PropertyService.getServerResponseTimeoutMsec()\r
-            }).then(function (response) {\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
+                    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
@@ -84,10 +214,9 @@ var AaiService = function ($http, $log, PropertyService, UtilityService, COMPONE
                             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
+                            angular.forEach(serviceSubscription[FIELD.ID.SERVICE_INSTANCES][FIELD.ID.SERVICE_INSTANCE], function(instValue, instKey) {\r
                                 // put them together, i guess\r
-                                var inst = {\r
-                                    "serviceInstanceId": instValue[FIELD.ID.SERVICE_INSTANCE_ID],\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
@@ -101,112 +230,128 @@ var AaiService = function ($http, $log, PropertyService, UtilityService, COMPONE
                                 }\r
                             });\r
                         } else {\r
-                            if (serviceInstanceId == []) {\r
-                                serviceInstanceId = [FIELD.PROMPT.NO_SERVICE_INSTANCE];\r
-                            }\r
+                            serviceInstanceId = [ FIELD.PROMPT.NO_SERVICE_INSTANCE ];\r
                         }\r
-                        angular.forEach(serviceInstanceId, function (subVal, subKey) {\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
+                                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: selectedSubscriberName,\r
-                        serviceType: FIELD.PROMPT.NO_SERVICE_SUB,\r
-                        serviceInstanceId: FIELD.PROMPT.NO_SERVICE_INSTANCE\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
+            }, function(response) {\r
+                errorCallback(response);});\r
         },\r
-        getSubList: function (successCallback, errorCallback) {\r
 \r
-            $http.get(FIELD.ID.AAI_GET_FULL_SUBSCRIBERS, {}, {\r
-                timeout: PropertyService.getServerResponseTimeoutMsec()\r
-            }).then(function (response) {\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 = {\r
-                            "globalCustomerId": subVal[FIELD.ID.GLOBAL_CUSTOMER_ID],\r
-                            "subscriberName": subVal[FIELD.ID.SUBNAME],\r
-                            "isPermitted": subVal[FIELD.ID.IS_PERMITTED],\r
-                        };\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
+            },function(response) {\r
                 errorCallback(response);\r
             });\r
         },\r
 \r
-        getServices2: function (successCallback, errorCallback) {\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
-            $http.get(FIELD.ID.AAI_GET_SERVICES, {}, {\r
-                timeout: PropertyService.getServerResponseTimeoutMsec()\r
-            }).then(function (response) {\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 = {\r
-                                "id": subVal[FIELD.ID.SERVICE_ID],\r
-                                "description": subVal[FIELD.ID.SERVICE_DESCRIPTION],\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
-                            };\r
-                            serviceIdList.push(newVal);\r
+                            };serviceIdList.push(newVal);\r
                         });\r
                     });\r
                     successCallback(serviceIdList);\r
                 } else {\r
                     errorCallback(response);\r
                 }\r
-            }, function (response) {\r
+            },function(response) {\r
                 errorCallback(response);\r
             });\r
         },\r
 \r
-        getSubscriptionServiceTypeList: function (globalCustomerId,\r
+        getSubscriptionServiceTypeList : function(globalCustomerId,\r
                                                   successCallbackFunction) {\r
             $log\r
                 .debug("AaiService:getSubscriptionServiceTypeList: globalCustomerId: "\r
                     + globalCustomerId);\r
-            if (UtilityService.hasContents(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
+                        timeout : PropertyService\r
                             .getServerResponseTimeoutMsec()\r
-                    }).then(function (response) {\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
+                                "name":serviceSubscriptions[i][FIELD.ID.SERVICETYPE],\r
                                 "isPermitted": serviceSubscriptions[i][FIELD.ID.IS_PERMITTED],\r
                                 "id": i\r
-                            });\r
-                        }\r
+                            });}\r
                         successCallbackFunction(serviceTypes);\r
                     } else {\r
                         successCallbackFunction([]);\r
@@ -215,51 +360,45 @@ var AaiService = function ($http, $log, PropertyService, UtilityService, COMPONE
                 (UtilityService.runHttpErrorHandler);\r
             }\r
         },\r
-        getLcpCloudRegionTenantList: function (globalCustomerId, serviceType,\r
+        getLcpCloudRegionTenantList : function(globalCustomerId, serviceType,\r
                                                successCallbackFunction) {\r
             $log\r
                 .debug("AaiService:getLcpCloudRegionTenantList: globalCustomerId: "\r
                     + globalCustomerId);\r
-            var url = COMPONENT.AAI_GET_TENANTS\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
+                    timeout : PropertyService\r
                         .getServerResponseTimeoutMsec()\r
-                }).then(function (response) {\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
-                        "isPermitted": aaiLcpCloudRegionTenants[i][COMPONENT.IS_PERMITTED]\r
-                    });\r
+                        "isPermitted": aaiLcpCloudRegionTenants[i][COMPONENT.IS_PERMITTED]});\r
                 }\r
 \r
                 successCallbackFunction(lcpCloudRegionTenants);\r
-            })["catch"]\r
-            (UtilityService.runHttpErrorHandler);\r
+            }).catch(function(error) {\r
+                (UtilityService.runHttpErrorHandler(error.data, error.status));\r
+            })\r
         },\r
-        getSubscribers: function (successCallbackFunction) {\r
+        getSubscribers : function(successCallbackFunction) {\r
             $log\r
                 .debug("AaiService:getSubscribers");\r
-            var url = FIELD.ID.AAI_GET_SUBSCRIBERS + COMPONENT.ASSIGN + Math.random();\r
+            var url =  FIELD.ID.AAI_GET_SUBSCRIBERS + COMPONENT.ASSIGN + Math.random();\r
 \r
             $http.get(url,\r
                 {\r
-                    timeout: PropertyService\r
+                    timeout : PropertyService\r
                         .getServerResponseTimeoutMsec()\r
-                }).then(function (response) {\r
+                }).then(function(response) {\r
                 if (response.data) {\r
                     successCallbackFunction(response.data.customer);\r
                 } else {\r
@@ -268,16 +407,16 @@ var AaiService = function ($http, $log, PropertyService, UtilityService, COMPONE
             })["catch"]\r
             (UtilityService.runHttpErrorHandler);\r
         },\r
-        getProvOptionsFromSystemProp: function (successCallbackFunction) {\r
+        getProvOptionsFromSystemProp : function(successCallbackFunction) {\r
             $log\r
                 .debug("AaiService:getProvOptionsFromSystemProp");\r
-            var url = COMPONENT.GET_SYSTEM_PROP_VNF_PROV_STATUS_PATH;\r
+            var url =  COMPONENT.GET_SYSTEM_PROP_VNF_PROV_STATUS_PATH;\r
 \r
             $http.get(url,\r
                 {\r
-                    timeout: PropertyService\r
+                    timeout : PropertyService\r
                         .getServerResponseTimeoutMsec()\r
-                }).then(function (response) {\r
+                }).then(function(response) {\r
                 if (response.data) {\r
                     successCallbackFunction(response);\r
                 } else {\r
@@ -286,28 +425,34 @@ var AaiService = function ($http, $log, PropertyService, UtilityService, COMPONE
             })["catch"]\r
             (UtilityService.runHttpErrorHandler);\r
         },\r
-        getLoggedInUserID: function (successCallbackFunction) {\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
-                    timeout: PropertyService\r
+                    transformResponse: [function (data) {\r
+                        return data;\r
+                    }],\r
+                    timeout : PropertyService\r
                         .getServerResponseTimeoutMsec()\r
-                }).then(function (response) {\r
+                }).then(function(response) {\r
                 if (response.data) {\r
                     successCallbackFunction(response);\r
                 } else {\r
                     successCallbackFunction([]);\r
                 }\r
-            })["catch"]\r
+            },function(failure){console.log("failure")})["catch"]\r
+                if(catchCallbackFunction) {\r
+                    catchCallbackFunction();\r
+                }\r
             (UtilityService.runHttpErrorHandler);\r
         },\r
-        getServices: function (successCallbackFunction) {\r
+        getServices : function(successCallbackFunction) {\r
             $log\r
                 .debug("AaiService:getServices");\r
-            var url = COMPONENT.AAI_GET_SERVICES + COMPONENT.ASSIGN + Math.random();\r
+            var url =  COMPONENT.AAI_GET_SERVICES + COMPONENT.ASSIGN + Math.random();\r
 \r
             $http.get(url,\r
                 {\r
@@ -326,31 +471,46 @@ var AaiService = function ($http, $log, PropertyService, UtilityService, COMPONE
         getAicZones: function (successCallbackFunction) {\r
             $log\r
                 .debug("getAicZones:getAicZones");\r
-            var url = COMPONENT.AAI_GET_AIC_ZONES + COMPONENT.ASSIGN + Math.random();\r
+            var url = COMPONENT.AAI_GET_AIC_ZONES +COMPONENT.ASSIGN + Math.random();\r
 \r
             $http.get(url,\r
                 {\r
-                    timeout: PropertyService\r
+                    timeout : PropertyService\r
                         .getServerResponseTimeoutMsec()\r
-                }).then(function (response) {\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
+            (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
+            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
+                    timeout : PropertyService\r
                         .getServerResponseTimeoutMsec()\r
-                }).then(function (response) {\r
+                }).then(function(response) {\r
                 if (response.data) {\r
                     successCallbackFunction(response);\r
                 } else {\r
@@ -359,16 +519,16 @@ var AaiService = function ($http, $log, PropertyService, UtilityService, COMPONE
             })["catch"]\r
             (UtilityService.runHttpErrorHandler);\r
         },\r
-        getServiceModelsByServiceType: function (namedQueryId, globalCustomerId, serviceType, successCallbackFunction) {\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
+            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
+                    timeout : PropertyService\r
                         .getServerResponseTimeoutMsec()\r
-                }).then(function (response) {\r
+                }).then(function(response) {\r
                 if (response.data) {\r
                     successCallbackFunction(response);\r
                 } else {\r
@@ -376,9 +536,128 @@ var AaiService = function ($http, $log, PropertyService, UtilityService, COMPONE
                 }\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
+    }};\r
 \r
 appDS2.factory("AaiService", ["$http", "$log", "PropertyService",\r
-    "UtilityService", "COMPONENT", "FIELD", AaiService]);\r
+    "UtilityService", "COMPONENT", "FIELD", "$q", AaiService]);\r