org.onap migration
[vid.git] / vid-app-common / src / main / webapp / app / vid / scripts / services / utilityService.js
index 4e4d123..8577e99 100755 (executable)
@@ -67,31 +67,31 @@ var UtilityService = function($log, DataService, PARAMETER) {
 \r
     var _this = this;\r
     var convertModel = function (serviceModel) {\r
-               \r
-               var isNewFlow = false;\r
-               \r
-               for (var networkCustomizationName in serviceModel.networks) {\r
-                       var networkModel = serviceModel.networks[networkCustomizationName];\r
-                       if ( networkModel.customizationUuid != null ) {\r
-                               isNewFlow = true;\r
-                               break;\r
-                       }\r
-               }\r
-               if ( !isNewFlow ) {\r
-                       for (var vnfCustomizationName in serviceModel.vnfs) {\r
-                               var vnfModel = serviceModel.vnfs[vnfCustomizationName];\r
-                               if ( vnfModel.customizationUuid != null ) {\r
-                                       isNewFlow = true;\r
-                                       break;\r
-                               }\r
-                       }\r
-               }\r
-               if ( isNewFlow ) {\r
-                       return (convertNewModel (serviceModel) );\r
-               }\r
-               else {\r
-                       return (convertOldModel (serviceModel) );\r
-               }\r
+\r
+        var isNewFlow = false;\r
+\r
+        for (var networkCustomizationName in serviceModel.networks) {\r
+            var networkModel = serviceModel.networks[networkCustomizationName];\r
+            if ( networkModel.customizationUuid != null ) {\r
+                isNewFlow = true;\r
+                break;\r
+            }\r
+        }\r
+        if ( !isNewFlow ) {\r
+            for (var vnfCustomizationName in serviceModel.vnfs) {\r
+                var vnfModel = serviceModel.vnfs[vnfCustomizationName];\r
+                if ( vnfModel.customizationUuid != null ) {\r
+                    isNewFlow = true;\r
+                    break;\r
+                }\r
+            }\r
+        }\r
+        if ( isNewFlow ) {\r
+            return (convertNewModel (serviceModel) );\r
+        }\r
+        else {\r
+            return (convertOldModel (serviceModel) );\r
+        }\r
     };\r
     var convertNewModel = function (serviceModel ) {\r
        var completeResources = new Array();\r
@@ -100,6 +100,8 @@ var UtilityService = function($log, DataService, PARAMETER) {
                                "service": serviceModel.service,\r
                                "networks": {},\r
                                "vnfs": {},\r
+                               "pnfs": serviceModel.pnfs,\r
+                               "serviceProxies": serviceModel.serviceProxies,\r
                                "completeDisplayInputs": {},\r
                                "isNewFlow": true\r
                        };\r
@@ -164,9 +166,18 @@ var UtilityService = function($log, DataService, PARAMETER) {
                                \r
                        }\r
                }\r
-               \r
-               for (var vnfCustomizationName in serviceModel.vnfs) {\r
-                       var vnfModel = serviceModel.vnfs[vnfCustomizationName];\r
+\r
+        _.forEach(serviceModel.configurations, function(element, key) {\r
+            element.isConfig = true;\r
+        });\r
+        _.forEach(serviceModel.pnfs, function(element, key) {\r
+               element.isPnf= true;\r
+               element.modelCustomizationName= key;\r
+        });\r
+        var mergedVnfs = Object.assign(serviceModel.vnfs, serviceModel.configurations, serviceModel.pnfs);\r
+\r
+               for (var vnfCustomizationName in mergedVnfs) {\r
+                       var vnfModel = mergedVnfs[vnfCustomizationName];\r
                        var vnfCustomizationUuid = vnfModel.customizationUuid;\r
                        convertedAsdcModel.vnfs[vnfModel.customizationUuid] = {\r
                                        "uuid": vnfModel.uuid,\r
@@ -183,8 +194,13 @@ var UtilityService = function($log, DataService, PARAMETER) {
                                        "displayInputs": {},\r
                                        "properties": {},\r
                                        "nfRole": "",\r
-                                       "nfType": ""\r
-                       }\r
+                                       "nfType": "",\r
+                                       "sourceNodes": vnfModel.sourceNodes,\r
+                                       "collectorNodes": vnfModel.collectorNodes,\r
+                       "isConfigurationByPolicy": vnfModel.configurationByPolicy ? vnfModel.configurationByPolicy : false,\r
+                       "isConfig": vnfModel.isConfig ? vnfModel.isConfig : false,\r
+                       "isPnf": vnfModel.isPnf ? vnfModel.isPnf : false\r
+                       };\r
                        \r
                        resource = {\r
                                        "name": vnfModel.modelCustomizationName,\r
@@ -278,11 +294,11 @@ var UtilityService = function($log, DataService, PARAMETER) {
                convertedAsdcModel.completeDisplayInputs = completeDisplayInputs;\r
                // Need to collect all the model customization names (node template tag) and descriptions\r
                DataService.setResources (completeResources);\r
-               \r
-               console.log ("convertedAsdcModel: "); console.log (JSON.stringify ( convertedAsdcModel, null, 4 ));\r
+\r
+        $log.debug ("convertedAsdcModel: ", convertedAsdcModel);\r
                return (convertedAsdcModel);\r
     };\r
-    \r
+\r
     var convertOldModel = function (serviceModel ) {\r
        \r
                var resource = {};\r
@@ -290,6 +306,8 @@ var UtilityService = function($log, DataService, PARAMETER) {
                                "service": serviceModel.service,\r
                                "networks": {},\r
                                "vnfs": {},\r
+               "pnfs": serviceModel.pnfs,\r
+               "serviceProxies": serviceModel.serviceProxies,\r
                                "completeDisplayInputs": {},\r
                                "isNewFlow": false\r
                        };\r
@@ -356,9 +374,18 @@ var UtilityService = function($log, DataService, PARAMETER) {
                                convertedAsdcModel.networks[networkModel.uuid].displayInputs=networkModelDisplayInputs;\r
                        }\r
                }\r
-               \r
-               for (var vnfCustomizationName in serviceModel.vnfs) {\r
-                       var vnfModel = serviceModel.vnfs[vnfCustomizationName];\r
+\r
+        _.forEach(serviceModel.configurations, function(element, key) {\r
+            element.isConfig = true;\r
+        });\r
+        _.forEach(serviceModel.pnfs, function(element, key) {\r
+            element.isPnf= true;\r
+            element.modelCustomizationName= key;\r
+        });\r
+        var mergedVnfs = Object.assign(serviceModel.vnfs, serviceModel.configurations, serviceModel.pnfs);\r
+\r
+               for (var vnfCustomizationName in mergedVnfs) {\r
+                       var vnfModel = mergedVnfs[vnfCustomizationName];\r
                        convertedAsdcModel.vnfs[vnfModel.uuid] = {\r
                                        "uuid": vnfModel.uuid,\r
                                        "invariantUuid": vnfModel.invariantUuid,\r
@@ -371,8 +398,13 @@ var UtilityService = function($log, DataService, PARAMETER) {
                                        "vfModules": {},\r
                                        "volumeGroups": {},\r
                                        "commands": {},\r
-                                       "displayInputs": {}\r
-                       }\r
+                                       "displayInputs": {},\r
+                                       "sourceNodes": vnfModel.sourceNodes,\r
+                                       "collectorNodes": vnfModel.collectorNodes,\r
+                                       "isConfigurationByPolicy": vnfModel.configurationByPolicy ? vnfModel.configurationByPolicy : false,\r
+                                       "isConfig": vnfModel.isConfig ? vnfModel.isConfig : false,\r
+                       "isPnf": vnfModel.isPnf ? vnfModel.isPnf : false\r
+                       };\r
                        resource = {\r
                                        "name": vnfModel.modelCustomizationName,\r
                                        "description": vnfModel.description\r
@@ -441,203 +473,203 @@ var UtilityService = function($log, DataService, PARAMETER) {
                convertedAsdcModel.completeDisplayInputs = completeDisplayInputs;\r
                // Need to collect all the model customization names (node template tag) and descriptions\r
                DataService.setResources (completeResources);\r
-               console.log ("convertedAsdcModel: "); console.log (JSON.stringify ( convertedAsdcModel, null, 4 ));\r
+               $log.debug ("convertedAsdcModel: ", convertedAsdcModel);\r
                return (convertedAsdcModel);\r
     };\r
-    \r
+\r
     function hasContents(object) {\r
-       if (object === undefined || object === null || object === "") {\r
-           return false;\r
-       }\r
-       return true;\r
+        if (object === undefined || object === null || object === "") {\r
+            return false;\r
+        }\r
+        return true;\r
     };\r
     function isObjectEmpty(o) {\r
-               var len = 0;\r
-               if (hasContents(o)){\r
-                       var keys = Object.keys(o);\r
-                       len = keys.length;\r
-                       if ( len == 0 ) {\r
-                               return true;\r
-                       }\r
-                       else {\r
-                               return false;\r
-                       }\r
-               }\r
-               else {\r
-                       return true;\r
-               }\r
+        var len = 0;\r
+        if (hasContents(o)){\r
+            var keys = Object.keys(o);\r
+            len = keys.length;\r
+            if ( len == 0 ) {\r
+                return true;\r
+            }\r
+            else {\r
+                return false;\r
+            }\r
+        }\r
+        else {\r
+            return true;\r
+        }\r
     };\r
     function padZero(number) {\r
-       if (number < 10) {\r
-           return "0" + number;\r
-       } else {\r
-           return "" + number;\r
-       }\r
+        if (number < 10) {\r
+            return "0" + number;\r
+        } else {\r
+            return "" + number;\r
+        }\r
     };\r
 \r
     var httpErrorHandler = function(response, status) {\r
-       $log.warn("UtilityService:httpErrorHandler: response:");\r
-       $log.warn(response);\r
-       $log.warn("UtilityService:httpErrorHandler: status:");\r
-       $log.warn(status);\r
-       if (angular.isFunction(_this.httpErrorHandler)) {\r
-           _this.httpErrorHandler(response, status);\r
-       }\r
+        $log.warn("UtilityService:httpErrorHandler: response:");\r
+        $log.warn(response);\r
+        $log.warn("UtilityService:httpErrorHandler: status:");\r
+        $log.warn(status);\r
+        if (angular.isFunction(_this.httpErrorHandler)) {\r
+            _this.httpErrorHandler(response, status);\r
+        }\r
     };\r
 \r
     var startNextAsyncOperation = function() {\r
-       if (_this.asyncOperations.count < _this.asyncOperations.operationList.length) {\r
-           _this.asyncOperations.operationList[_this.asyncOperations.count++]\r
-                   ();\r
-       } else {\r
-           if (angular.isFunction(_this.asyncOperations.callbackFunction)) {\r
-               _this.asyncOperations.callbackFunction();\r
-           }\r
-       }\r
+        if (_this.asyncOperations.count < _this.asyncOperations.operationList.length) {\r
+            _this.asyncOperations.operationList[_this.asyncOperations.count++]\r
+            ();\r
+        } else {\r
+            if (angular.isFunction(_this.asyncOperations.callbackFunction)) {\r
+                _this.asyncOperations.callbackFunction();\r
+            }\r
+        }\r
     };\r
 \r
     return {\r
-       setProperties : function(properties) {\r
-           _this.properties = properties;\r
-       },\r
-       getProperties : function() {\r
-           return _this.properties;\r
-       },\r
-       hasContents : hasContents,\r
-       checkUndefined : function(name, value) {\r
-           if (value === undefined) {\r
-               throw {\r
-                   type : "undefinedObject",\r
-                   message : "undefined object: \"" + name + "\""\r
-               };\r
-           }\r
-           return value;\r
-       },\r
-       jsonConcat : function (o1, o2) {\r
-                for (var key in o2) {\r
-                 o1[key] = o2[key];\r
-                }\r
-                return o1;\r
-   },\r
-       getCurrentTime : function() {\r
-           var time = new Date();\r
-           return padZero(time.getMonth() + 1) + "/"\r
-                   + padZero(time.getDate()) + "/"\r
-                   + (time.getFullYear() - 2000) + " "\r
-                   + padZero(time.getHours()) + ":"\r
-                   + padZero(time.getMinutes()) + ":"\r
-                   + padZero(time.getSeconds())\r
-       },\r
-       getHttpStatusText : function(statusCode) {\r
-           var statusMap = {\r
-               "200" : "OK",\r
-               "201" : "Created",\r
-               "202" : "Accepted",\r
-               "400" : "Bad Request",\r
-               "401" : "Unauthorized",\r
-               "404" : "Not Found",\r
-               "405" : "Method Not Allowed",\r
-               "409" : "Locked",\r
-               "500" : "Internal Server Error",\r
-               "503" : "Service Unavailable",\r
-               "504" : "Gateway Timeout"\r
-           }\r
+        setProperties : function(properties) {\r
+            _this.properties = properties;\r
+        },\r
+        getProperties : function() {\r
+            return _this.properties;\r
+        },\r
+        hasContents : hasContents,\r
+        checkUndefined : function(name, value) {\r
+            if (value === undefined) {\r
+                throw {\r
+                    type : "undefinedObject",\r
+                    message : "undefined object: \"" + name + "\""\r
+                };\r
+            }\r
+            return value;\r
+        },\r
+        jsonConcat : function (o1, o2) {\r
+            for (var key in o2) {\r
+                o1[key] = o2[key];\r
+            }\r
+            return o1;\r
+        },\r
+        getCurrentTime : function() {\r
+            var time = new Date();\r
+            return padZero(time.getMonth() + 1) + "/"\r
+                + padZero(time.getDate()) + "/"\r
+                + (time.getFullYear() - 2000) + " "\r
+                + padZero(time.getHours()) + ":"\r
+                + padZero(time.getMinutes()) + ":"\r
+                + padZero(time.getSeconds())\r
+        },\r
+        getHttpStatusText : function(statusCode) {\r
+            var statusMap = {\r
+                "200" : "OK",\r
+                "201" : "Created",\r
+                "202" : "Accepted",\r
+                "400" : "Bad Request",\r
+                "401" : "Unauthorized",\r
+                "404" : "Not Found",\r
+                "405" : "Method Not Allowed",\r
+                "409" : "Locked",\r
+                "500" : "Internal Server Error",\r
+                "503" : "Service Unavailable",\r
+                "504" : "Gateway Timeout"\r
+            }\r
 \r
-           if (status === undefined) {\r
-               return "Undefined";\r
-           }\r
+            if (status === undefined) {\r
+                return "Undefined";\r
+            }\r
 \r
-           var statusText = statusMap[statusCode];\r
-           if (statusText === undefined) {\r
-               statusText = "Unknown";\r
-           }\r
+            var statusText = statusMap[statusCode];\r
+            if (statusText === undefined) {\r
+                statusText = "Unknown";\r
+            }\r
 \r
-           return statusText + " (" + statusCode + ")";\r
-       },\r
-       getHttpErrorMessage : function(response) {\r
-           var data = response.data;\r
-           if (response.status === 500 && hasContents(data.exception)) {\r
-               var summary = "exception: " + data.exception;\r
-               if (hasContents(data.message)) {\r
-                   summary += " message: " + data.message;\r
-               }\r
-               return summary;\r
-           }\r
-           if (response.status === 0 && response.statusText === "") {\r
-               /*\r
-                * This logic is somewhat "fuzzy". Potential (brainstorming)\r
-                * enhancements if users find the message unreliable include:\r
-                * \r
-                * A) SERVER TIMEOUT: perhaps a newer version of Angular can\r
-                * reliably determine timeouts.\r
-                * \r
-                * B) SERVER TIMEOUT: recording start / end times and using that\r
-                * to determine if timeout occured\r
-                * \r
-                * C) SESSION TIMEOUT "Potentially" examine cookies, although\r
-                * that may not be feasible if cookies are set to "httponly".\r
-                */\r
-               if (data === null) {\r
-                   //return "possible server timeout";\r
-                       return "VID has timed out waiting for a response. To see status, close this popup and the screen will be refreshed automatically";\r
-               }\r
-               if (data === "") {\r
-                   return "Possible reasons include a session timeout or a server issue. "\r
-                           + "A session timeout might be resolved by refreshing the screen and re-logging in";\r
-               }\r
-           }\r
-           var summary = "";\r
-           if (response.status !== undefined && response.status > 0) {\r
-               summary = "status: " + response.status;\r
-           }\r
-           if (hasContents(response.statusText)) {\r
-               if (summary !== "") {\r
-                   summary += " ";\r
-               }\r
-               summary += "message: " + response.statusText;\r
-           }\r
-           return summary;\r
-       },\r
-       setHttpErrorHandler : function(httpErrorHandler) {\r
-           _this.httpErrorHandler = httpErrorHandler;\r
-       },\r
-       runHttpErrorHandler : function(response, status) {\r
-           httpErrorHandler(response, status);\r
-       },\r
-       startAsyncOperations : function(operationList, callbackFunction) {\r
-           for (var i = 0; i < operationList.length; i++) {\r
-               if (!angular.isFunction(operationList[i])) {\r
-                   throw "UtilityService:startAsyncOperations: invalid function: index: "\r
-                           + i;\r
-               }\r
-           }\r
-           _this.asyncOperations = {\r
-               operationList : operationList,\r
-               callbackFunction : callbackFunction,\r
-               count : 0\r
-           };\r
-           startNextAsyncOperation();\r
-       },\r
-       startNextAsyncOperation : startNextAsyncOperation,\r
-       stopAsyncOperations : function() {\r
-           _this.asyncOperations.count = _this.asyncOperations.operationList.length;\r
-       },\r
-       isObjectEmpty : isObjectEmpty,\r
-       convertModel : convertModel,\r
-       convertNewModel : convertNewModel,\r
-       convertOldModel : convertOldModel,\r
-       arrayContains : function (a, obj) {\r
-           var i = a.length;\r
-           if ( i > 0 ) {\r
-                   while (i--) {\r
-                      if (a[i] === obj) {\r
-                          return true;\r
-                      }\r
-                   }\r
-           }\r
-           return false;\r
-       }\r
-       }\r
+            return statusText + " (" + statusCode + ")";\r
+        },\r
+        getHttpErrorMessage : function(response) {\r
+            var data = response.data;\r
+            if ((response.status >= 400 && response.status < 600) && hasContents(data.exception)) {\r
+                var summary = "exception: " + data.exception;\r
+                if (hasContents(data.message)) {\r
+                    summary += " message: " + data.message;\r
+                }\r
+                return summary;\r
+            }\r
+            if (response.status === 0 && response.statusText === "") {\r
+                               /*\r
+                                * This logic is somewhat "fuzzy". Potential (brainstorming)\r
+                                * enhancements if users find the message unreliable include:\r
+                                *\r
+                                * A) SERVER TIMEOUT: perhaps a newer version of Angular can\r
+                                * reliably determine timeouts.\r
+                                *\r
+                                * B) SERVER TIMEOUT: recording start / end times and using that\r
+                                * to determine if timeout occured\r
+                                *\r
+                                * C) SESSION TIMEOUT "Potentially" examine cookies, although\r
+                                * that may not be feasible if cookies are set to "httponly".\r
+                                */\r
+                if (data === null) {\r
+                    //return "possible server timeout";\r
+                    return "VID has timed out waiting for a response. To see status, close this popup and the screen will be refreshed automatically";\r
+                }\r
+                if (data === "") {\r
+                    return "Possible reasons include a session timeout or a server issue. "\r
+                        + "A session timeout might be resolved by refreshing the screen and re-logging in";\r
+                }\r
+            }\r
+            var summary = "";\r
+            if (response.status !== undefined && response.status > 0) {\r
+                summary = "status: " + response.status;\r
+            }\r
+            if (hasContents(response.statusText)) {\r
+                if (summary !== "") {\r
+                    summary += " ";\r
+                }\r
+                summary += "message: " + response.statusText;\r
+            }\r
+            return summary;\r
+        },\r
+        setHttpErrorHandler : function(httpErrorHandler) {\r
+            _this.httpErrorHandler = httpErrorHandler;\r
+        },\r
+        runHttpErrorHandler : function(response, status) {\r
+            httpErrorHandler(response, status);\r
+        },\r
+        startAsyncOperations : function(operationList, callbackFunction) {\r
+            for (var i = 0; i < operationList.length; i++) {\r
+                if (!angular.isFunction(operationList[i])) {\r
+                    throw "UtilityService:startAsyncOperations: invalid function: index: "\r
+                    + i;\r
+                }\r
+            }\r
+            _this.asyncOperations = {\r
+                operationList : operationList,\r
+                callbackFunction : callbackFunction,\r
+                count : 0\r
+            };\r
+            startNextAsyncOperation();\r
+        },\r
+        startNextAsyncOperation : startNextAsyncOperation,\r
+        stopAsyncOperations : function() {\r
+            _this.asyncOperations.count = _this.asyncOperations.operationList.length;\r
+        },\r
+        isObjectEmpty : isObjectEmpty,\r
+        convertModel : convertModel,\r
+        convertNewModel : convertNewModel,\r
+        convertOldModel : convertOldModel,\r
+        arrayContains : function (a, obj) {\r
+            var i = a.length;\r
+            if ( i > 0 ) {\r
+                while (i--) {\r
+                    if (a[i] === obj) {\r
+                        return true;\r
+                    }\r
+                }\r
+            }\r
+            return false;\r
+        }\r
+    }\r
 }\r
 \r
 //app.factory("UtilityService", UtilityService);\r