\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
"service": serviceModel.service,\r
"networks": {},\r
"vnfs": {},\r
+ "pnfs": serviceModel.pnfs,\r
+ "serviceProxies": serviceModel.serviceProxies,\r
"completeDisplayInputs": {},\r
"isNewFlow": true\r
};\r
\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
"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
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
"service": serviceModel.service,\r
"networks": {},\r
"vnfs": {},\r
+ "pnfs": serviceModel.pnfs,\r
+ "serviceProxies": serviceModel.serviceProxies,\r
"completeDisplayInputs": {},\r
"isNewFlow": false\r
};\r
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
"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
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