var MappingResults = ''; //intent-vn MappingResults function getMappingResults() { var MappingData = null; jQuery.ajax({ url: "/restconf/config/intent-mapping-result:intent-vn-mapping-results/", type: "GET", dataType: "json", async: false, success: function(data) { if (data != null) { MappingData = data; MappingResults = data; console.log(MappingData); } else alert("No intent-vn Mapping Data"); }, error: function(data) { alert("Get intent-vn Mapping Data Error!"); } }); return MappingData; } function getMappingDatas() { var Datas = getMappingResults(); if (!Datas) { Datas = VnMappingJson; } MappingResults = Datas; //return virtualDatas; } getMappingResults(); //getMappingDatas(); function getMappingResultById(user_id, Data) { if (!Data) Data = MappingResults; if (!Data) return; if (typeof(Data) == 'string') { var user_json = JSON.parse(Data); } else { var user_json = Data; } console.log(user_json); var user_info = user_json['intent-vn-mapping-results']['user-intent-vn-mapping']; for (var item in user_info) { if (user_id == user_info[item]['user-id']) { return user_info[item]; } } } //vn-pn MappingResults var PnMappingResults = ''; function getPnMappingResults() { var MappingData = null; jQuery.ajax({ url: "/restconf/config/intent-mapping-result:vn-pn-mapping-results/", type: "GET", dataType: "json", async: false, success: function(data) { if (data != null) { MappingData = data; PnMappingResults = data; console.log(PnMappingResults); } else alert("No vn-pn Mapping Data"); }, error: function(data) { alert("Get vn-pn Mapping Data Error!"); } }); return MappingData; } getPnMappingResults(); function getPnMappingResultById(user_id, Data) { if (!Data) Data = PnMappingResults; if (!Data) return; if (typeof(Data) == 'string') { var user_json = JSON.parse(Data); } else { var user_json = Data; } console.log(user_json); var user_info = user_json['vn-pn-mapping-results']['user-vn-pn-mapping']; for (var item in user_info) { if (user_id == user_info[item]['user-id']) { return user_info[item]; } } } var createMappingTables = { //mainData(virtualData) createVirtualNodeTable: function(id, Data) { if (!Data) return; console.log(Data); var virtualnodes = []; var Mynode = Data['virtual-nodes']['virtual-node']; for (var i in Mynode) { if (true) virtualnodes[Mynode[i]['node-id']] = Mynode[i]['physical-resource-requirement'][0]['attribute-value']['string-value']; } console.log(virtualnodes); // jQuery("#" + id).find('tr:gt(0)').empty(); var count=0; for(var x in virtual_nodes){count++;} if(count==0) return; for (var i in virtualnodes) { var $tr = '' + virtual_nodes[i][1] + '' + virtualnodes[i] + '' jQuery("#" + id).append($tr); } }, PathId: [], //virtual-link-id--->physical-path-id //virtualData---->virtul-link,src-node,dest-node //virtualData.links<--->vn-pn-Mapping.virtual-resource-entity-id[link]-----vn-pn-Mapping.virtual-physical-entity-id[path]<--->physicalData.physical-path---->Physical Nodes passed by Path //id tableId,Data MainData(virtualData) createVirtualLinkTable: function(id, Data, vn_pnData, physicalData) { if (!Data) return; console.log(Data); var virtuallinks = []; //virtual-link-id----->[src-node-id,dest-node-id] var Mylink = Data['virtual-links']['virtual-link']; for (var i in Mylink) { virtuallinks[Mylink[i]['link-id']] = [Mylink[i]['src-node-id'], Mylink[i]['dest-node-id']]; } console.log(virtuallinks); PathId = []; //virtual-link-id--->physical-path-id var paths = createMappingTables.getPaths(virtuallinks, vn_pnData, physicalData, PathId); //physical-path-id----->[Physical Nodes passed by Path](count=0,1,2,3...) console.log(PathId); console.log(paths); var count=0; for(var x in virtual_nodes){count++;} if(count==0) return; for (var i in virtuallinks) { var $tr = '' + virtual_nodes[virtuallinks[i][0]][1] + '-' + virtual_nodes[virtuallinks[i][1]][1] + '' + virtual_nodes[virtuallinks[i][0]][1] + '' + virtual_nodes[virtuallinks[i][1]][1] + '' + PathId[i].substring(0,14)+'...' + '' var pathsNode = '' for (var nodesPath in paths[PathId[i]]) { pathsNode += paths[PathId[i]][nodesPath] + '-'; } pathsNode = pathsNode.substring(0, pathsNode.length - 1); $tr += '' + pathsNode + ''; $tr += '' jQuery("#" + id).append($tr); } }, getPaths: function(linkArray, vn_pnData, physicalData, PathId) { // console.log(linkArray); // console.log(vn_pnData); // console.log(physicalData); if (!linkArray || !vn_pnData || !physicalData) return; //PathId=[]; for (var link in linkArray) { for (var i in vn_pnData['vn-pn-mapping-result']) { if (link == vn_pnData['vn-pn-mapping-result'][i]['virtual-resource-entity-id'] && vn_pnData['vn-pn-mapping-result'][i]['physical-resource-type'] == 'path') { PathId[link] = vn_pnData['vn-pn-mapping-result'][i]['physical-resource-entity-id']; } } } console.log(PathId); var Paths = []; var sourcePaths = physicalData['physical-network']['physical-paths']; if(!sourcePaths) return Paths; sourcePaths = physicalData['physical-network']['physical-paths']['physical-path']; // console.log(sourcePaths); for (var path in PathId) { for (var sp in sourcePaths) { if (PathId[path] == sourcePaths[sp]['path-id']) { var physical_links = sourcePaths[sp]['physical-link']; if (!physical_links) { Paths[PathId[path]] = ['']; continue; } else { if (physical_links.length == 1) { Paths[PathId[path]] = createMappingTables.getNodesByLink(physical_links[0]['link-id'], physicalData); } else { physical_links = physical_links.sort(function(a, b) { return a.order - b.order }); var passedByPath = []; Paths[PathId[path]] = []; for (var l in physical_links) { passedByPath.push(physical_links[l]['link-id']); var this_paths = createMappingTables.getNodesByLink(physical_links[l]['link-id'], physicalData); if (l == 0) { Paths[PathId[path]].push(this_paths[0]); Paths[PathId[path]].push(this_paths[1]); } else { Paths[PathId[path]].push(this_paths[1]); } } //Paths[PathId[path]] = passedByPath; } } } } } console.log(Paths); return Paths; }, getNodesByLink: function(link_id, physicalData) { if (!physicalData) return; var sourceLinks = physicalData['physical-network']['physical-links']['physical-link']; for (var link in sourceLinks) { if (link_id == sourceLinks[link]['link-id']) { var pathnodes = []; pathnodes.push(sourceLinks[link]['src-node-id']); pathnodes.push(sourceLinks[link]['dest-node-id']); return pathnodes; } } return null; } } // var userid='14ce424a-3e50-4a2a-ad5c-b29845158c8b'; //var virtualData = getVirtualInfoById(userId,virtualJson); //var linkArray=CreateVirtualNodeTable('virNodeTab',virtualData); //getPaths(linkArray,getPnMappingResultById(userid,PnMappingJson),userinfo);