e8ac2d02f530e2e1ad0ac88f9ef0bf50987d174f
[nemo.git] / nemo-ui / src / main / resources / nemo / js / vnMapping.js
1 var MappingResults = '';\r
2 \r
3 //intent-vn MappingResults\r
4 function getMappingResults() {\r
5         var MappingData = null;\r
6         jQuery.ajax({\r
7                 url: "/restconf/config/intent-mapping-result:intent-vn-mapping-results/",\r
8                 type: "GET",\r
9                 dataType: "json",\r
10                 async: false,\r
11                 success: function(data) {\r
12                         if (data != null) {\r
13                                 MappingData = data;\r
14                                 MappingResults = data;\r
15                                 console.log(MappingData);\r
16                         } else\r
17                                 alert("No intent-vn Mapping Data");\r
18                 },\r
19                 error: function(data) {\r
20                         alert("Get intent-vn Mapping Data Error!");\r
21                 }\r
22         });\r
23         return MappingData;\r
24 }\r
25 \r
26 function getMappingDatas() {\r
27         var Datas = getMappingResults();\r
28         if (!Datas) {\r
29                 Datas = VnMappingJson;\r
30         }\r
31         MappingResults = Datas;\r
32         //return virtualDatas;\r
33 }\r
34 \r
35 getMappingResults();\r
36 // getMappingDatas();\r
37 function getMappingResultById(user_id, Data) {\r
38         if (!Data) Data = MappingResults;\r
39         if (!Data) return;\r
40         if (typeof(Data) == 'string') {\r
41                 var user_json = JSON.parse(Data);\r
42         } else {\r
43                 var user_json = Data;\r
44         }\r
45         console.log(user_json);\r
46         var user_info = user_json['intent-vn-mapping-results']['user-intent-vn-mapping'];\r
47         for (var item in user_info) {\r
48                 if (user_id == user_info[item]['user-id']) {\r
49                         return user_info[item];\r
50                 }\r
51         }\r
52 }\r
53 \r
54 //vn-pn MappingResults\r
55 var PnMappingResults = '';\r
56 \r
57 function getPnMappingResults() {\r
58         var MappingData = null;\r
59         jQuery.ajax({\r
60                 url: "/restconf/config/intent-mapping-result:vn-pn-mapping-results/",\r
61                 type: "GET",\r
62                 dataType: "json",\r
63                 async: false,\r
64                 success: function(data) {\r
65                         if (data != null) {\r
66                                 MappingData = data;\r
67                                 PnMappingResults = data;\r
68                                 console.log(PnMappingResults);\r
69                         } else\r
70                                 alert("No vn-pn Mapping Data");\r
71                 },\r
72                 error: function(data) {\r
73                         alert("Get vn-pn Mapping Data Error!");\r
74                 }\r
75         });\r
76         return MappingData;\r
77 }\r
78 getPnMappingResults();\r
79 function getPnMappingResultById(user_id, Data) {\r
80         if (!Data) Data = PnMappingResults;\r
81         if (!Data) return;\r
82         if (typeof(Data) == 'string') {\r
83                 var user_json = JSON.parse(Data);\r
84         } else {\r
85                 var user_json = Data;\r
86         }\r
87         console.log(user_json);\r
88         var user_info = user_json['vn-pn-mapping-results']['user-vn-pn-mapping'];\r
89         for (var item in user_info) {\r
90                 if (user_id == user_info[item]['user-id']) {\r
91                         return user_info[item];\r
92                 }\r
93         }\r
94 }\r
95 \r
96 var createMappingTables = {\r
97                 //mainData(virtualData)\r
98                 createVirtualNodeTable: function(id, Data) {\r
99                         if (!Data) return;\r
100                         console.log(Data);\r
101                         var virtualnodes = [];\r
102                         var Mynode = Data['virtual-nodes']['virtual-node'];\r
103                         for (var i in Mynode) {\r
104                                 if (true)\r
105                                         virtualnodes[Mynode[i]['node-id']] = Mynode[i]['physical-resource-requirement'][0]['attribute-value']['string-value'];\r
106                         }\r
107                         console.log(virtualnodes);\r
108                         // jQuery("#" + id).find('tr:gt(0)').empty();\r
109                         var count=0;\r
110                         for(var x in virtual_nodes){count++;}\r
111                         if(count==0) return;\r
112                         for (var i in virtualnodes) {\r
113                                 var $tr = '<tr><td>' + virtual_nodes[i][1] + '</td><td>' + virtualnodes[i] + '</td></tr>'\r
114                                 jQuery("#" + id).append($tr);\r
115                         }\r
116                         var node_count = jQuery("#"+id).find('tr').length;\r
117                         console.log("node_count:",node_count);\r
118                         if(!node_count) return\r
119                         if(node_count<10){\r
120                                 jQuery("div.tableBodyContainer:eq(4)").height(node_count*22+5);\r
121                         }\r
122                         else{\r
123                                 jQuery("div.tableBodyContainer:eq(4)").height(200);\r
124                         }\r
125                 },\r
126 \r
127                 PathId: [], //virtual-link-id--->physical-path-id\r
128 \r
129                 //virtualData---->virtul-link,src-node,dest-node\r
130                 //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\r
131                 //id tableId,Data MainData(virtualData)\r
132                 createVirtualLinkTable: function(id, Data, vn_pnData, physicalData) {\r
133                         if (!Data) return;\r
134                         console.log(Data);\r
135                         var virtuallinks = []; //virtual-link-id----->[src-node-id,dest-node-id]\r
136                         var Mylink = Data['virtual-links']['virtual-link'];\r
137                         for (var i in Mylink) {\r
138                                 virtuallinks[Mylink[i]['link-id']] = [Mylink[i]['src-node-id'], Mylink[i]['dest-node-id']];\r
139                         }\r
140 \r
141                         console.log(virtuallinks);\r
142                         PathId = []; //virtual-link-id--->physical-path-id\r
143                         var paths = createMappingTables.getPaths(virtuallinks, vn_pnData, physicalData, PathId); //physical-path-id----->[Physical Nodes passed by Path](count=0,1,2,3...)\r
144                         console.log(PathId);\r
145                         console.log(paths);\r
146                         var count=0;\r
147                         for(var x in virtual_nodes){count++;}\r
148                         if(count==0) return;\r
149                         for (var i in virtuallinks) {\r
150                                 var $tr = '<tr><td>' + virtual_nodes[virtuallinks[i][0]][1] + '-' + virtual_nodes[virtuallinks[i][1]][1] + '</td><td>' + virtual_nodes[virtuallinks[i][0]][1] + '</td><td>' + virtual_nodes[virtuallinks[i][1]][1] + '</td><td title='+PathId[i]+'>' + PathId[i].substring(0,14)+'...' + '</td>'\r
151                                 var pathsNode = ''\r
152                                 for (var nodesPath in paths[PathId[i]]) {\r
153                                         pathsNode += paths[PathId[i]][nodesPath] + '-';\r
154                                 }\r
155                                 pathsNode = pathsNode.substring(0, pathsNode.length - 1);\r
156                                 $tr += '<td>' + pathsNode + '</td>';\r
157                                 $tr += '</tr>'\r
158                                 jQuery("#" + id).append($tr);\r
159                         }\r
160                 },\r
161 \r
162 \r
163                 getPaths: function(linkArray, vn_pnData, physicalData, PathId) {\r
164                         // console.log(linkArray);\r
165                         // console.log(vn_pnData);\r
166                         // console.log(physicalData);\r
167                         if (!linkArray || !vn_pnData || !physicalData) return;\r
168                         //PathId=[];\r
169                         for (var link in linkArray) {\r
170                                 for (var i in vn_pnData['vn-pn-mapping-result']) {\r
171                                         if (link == vn_pnData['vn-pn-mapping-result'][i]['virtual-resource-entity-id'] && vn_pnData['vn-pn-mapping-result'][i]['physical-resource-type'] == 'path') {\r
172                                                 PathId[link] = vn_pnData['vn-pn-mapping-result'][i]['physical-resource-entity-id'];\r
173                                         }\r
174                                 }\r
175                         }\r
176                         console.log(PathId);\r
177                         var Paths = [];\r
178                         var sourcePaths = physicalData['physical-network']['physical-paths'];\r
179                         if(!sourcePaths) return Paths;\r
180 \r
181                         sourcePaths = physicalData['physical-network']['physical-paths']['physical-path'];\r
182                         // console.log(sourcePaths);\r
183                         for (var path in PathId) {\r
184                                 for (var sp in sourcePaths) {\r
185                                         if (PathId[path] == sourcePaths[sp]['path-id']) {\r
186                                                 var physical_links = sourcePaths[sp]['physical-link'];\r
187 \r
188                                                 if (!physical_links) {\r
189                                                         Paths[PathId[path]] = [''];\r
190                                                         continue;\r
191                                                 } else {\r
192                                                         if (physical_links.length == 1) {\r
193                                                                 Paths[PathId[path]] = createMappingTables.getNodesByLink(physical_links[0]['link-id'], physicalData);\r
194                                                         } else {\r
195                                                                 physical_links = physical_links.sort(function(a, b) {\r
196                                                                         return a.order - b.order\r
197                                                                 });\r
198                                                                 var passedByPath = [];\r
199                                                                 Paths[PathId[path]] = [];\r
200                                                                 for (var l in physical_links) {\r
201                                                                         passedByPath.push(physical_links[l]['link-id']);\r
202                                                                         var this_paths = createMappingTables.getNodesByLink(physical_links[l]['link-id'], physicalData);\r
203                                                                         if (l == 0) {\r
204                                                                                 Paths[PathId[path]].push(this_paths[0]);\r
205                                                                                 Paths[PathId[path]].push(this_paths[1]);\r
206                                                                         } else {\r
207                                                                                 Paths[PathId[path]].push(this_paths[1]);\r
208                                                                         }\r
209                                                                 }\r
210 \r
211                                                                 //Paths[PathId[path]] = passedByPath;\r
212                                                         }\r
213                                                 }\r
214                                         }\r
215                                 }\r
216                         }\r
217                         console.log(Paths);\r
218                         return Paths;\r
219                 },\r
220                 getNodesByLink: function(link_id, physicalData) {\r
221                         if (!physicalData) return;\r
222                         var sourceLinks = physicalData['physical-network']['physical-links']['physical-link'];\r
223                         for (var link in sourceLinks) {\r
224                                 if (link_id == sourceLinks[link]['link-id']) {\r
225                                         var pathnodes = [];\r
226                                         pathnodes.push(sourceLinks[link]['src-node-id']);\r
227                                         pathnodes.push(sourceLinks[link]['dest-node-id']);\r
228                                         return pathnodes;\r
229                                 }\r
230                         }\r
231                         return null;\r
232                 }\r
233         }\r
234         // var userid='14ce424a-3e50-4a2a-ad5c-b29845158c8b';\r
235         //var virtualData = getVirtualInfoById(userId,virtualJson);\r
236         //var linkArray=CreateVirtualNodeTable('virNodeTab',virtualData);\r
237 \r
238 //getPaths(linkArray,getPnMappingResultById(userid,PnMappingJson),userinfo);