1 nodes_vir = new vis.DataSet();
2 edges_vir = new vis.DataSet();
6 function getVirtualInfos(){
9 url: "/restconf/config/generic-virtual-network:virtual-networks/",
13 success: function(data){
18 console.log(VirtualDatas);
21 alert("No Virtual Data");
24 alert("Get Virtual Data Error!");
30 function getVirtualDatas(){
31 var Datas=getVirtualInfos();
36 // console.log(VirtualDatas);
37 //return virtualDatas;
40 function getVirtualInfoById(user_id,Data){
41 if(!Data) Data=VirtualDatas;
43 if(typeof(Data)=='string'){
44 var user_json = JSON.parse(Data);
51 var user_info = user_json['virtual-networks']['virtual-network'];
52 for(var item in user_info){
53 if(user_id==user_info[item]['user-id']){
54 return user_info[item];
60 function create_virtual_topo(topo_data,intentinfo,mappinginfo)
65 console.log(topo_data);
66 var vitrual_network=topo_data;
67 if(vitrual_network!=null)
69 var vitrual_nodes=vitrual_network["virtual-nodes"]["virtual-node"];
70 for(var i in vitrual_nodes)
72 virtual_nodes[vitrual_nodes[i]["node-id"]]=(+i+1);
75 label: vitrual_nodes[i]["node-type"],
76 group: vitrual_nodes[i]["node-type"],
81 console.log(virtual_nodes);
82 var vitrual_links=vitrual_network["virtual-links"]["virtual-link"];
83 for(var j in vitrual_links){
86 from: virtual_nodes[vitrual_links[j]["src-node-id"]],
87 to: virtual_nodes[vitrual_links[j]["dest-node-id"]],
90 color:{color:'ff4e00',highlight:'ff4e00',hover:'ff4e00'}
95 drawOthers(null,intentinfo,mappinginfo);
96 console.log(virtual_nodes);
105 springLength: 200,//弹簧长度
106 springConstant: 0,//弹簧常数
108 damping: 0 //阻尼,减幅,衰减
113 // default for all nodes
123 background: '#B0E2FF',
129 background: '#7FFF00',
136 background: '#EEEE00',
143 background: '#C63300',
150 background: '#FF00FF',
157 console.log(nodes_vir.get().length);
158 var container = document.getElementById('vir_graph');
159 var graph = new vis.Graph(container, data, options);
162 function drawOthers(virtualData,intentData,mappingData){
164 var user_nodes=intentData['objects']['node'];
166 for (var i in user_nodes) {
167 intentNodes[user_nodes[i]['node-id']]=[user_nodes[i]['node-type'],user_nodes[i]['node-name']];
169 var mapping_nodes=mappingData['intent-vn-mapping-result'];
171 for (var i in mapping_nodes) {
172 if(mapping_nodes[i]['intent-type']=='node')
174 mappingNodes[mapping_nodes[i]['intent-id']]=mapping_nodes[i]['virtual-resource'][0]['parent-virtual-resource-entity-id'];
177 console.log(intentNodes);
178 console.log(mappingNodes);
179 var nodelen= nodes_vir.get().length;
180 for(var item in intentNodes){
181 virtual_nodes[item]=nodelen+1;
182 if(intentNodes[item][0]=='host'){
185 label: ''+intentNodes[item][1],
186 image: "src/app/nemo/images/host.png",
191 else if(intentNodes[item][0]=='fw'){
194 label: ''+intentNodes[item][1],
196 image: "src/app/nemo/images/fw.png",
201 else if(intentNodes[item][0]=='lb'){
204 label: ''+intentNodes[item][1],
206 image: "src/app/nemo/images/lb.png",
211 else if(intentNodes[item][0]=='cache'){
214 label: ''+intentNodes[item][1],
216 image: "src/app/nemo/images/cache.png",
221 else if(intentNodes[item][0]=='ext-group'){
224 label: ''+intentNodes[item][1],
225 image: "src/app/nemo/images/ext-group.png",
232 delete virtual_nodes[item];
235 for(var item in mappingNodes){
236 var edgeslen=edges_vir.get().length;
239 from: virtual_nodes[item],
240 to: virtual_nodes[mappingNodes[item]],