1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-21 14:50:08 +03:00

B #1491: Improve network topology

This commit is contained in:
Abel Coronado 2017-12-21 16:48:53 +01:00 committed by Ruben S. Montero
parent efdffc4723
commit 2e662cee62

View File

@ -219,7 +219,7 @@ define(function(require) {
nodes.push({
id: vnetNodeId,
level: level,
label: " VNet "+vnet.NAME + " ", // Spaces for padding, no other reason
label: " VNet "+vnet.NAME + " ", // Spaces for padding, no other reason
group: "vnet"});
}
@ -273,88 +273,112 @@ define(function(require) {
leases = [leases];
}
for (var j=0; j<leases.length; j++){
var lease = leases[j];
if (leases.length < 10){
for (var j=0; j<leases.length; j++){
var lease = leases[j];
if (lease.VM != undefined) { //used by a VM
if (lease.VM != undefined) { //used by a VM
// Skip leases on hold
if (lease.VM == "-1"){
continue;
}
// Skip leases on hold
if (lease.VM == "-1"){
continue;
}
var nodeId = "vm"+lease.VM;
var nodeId = "vm"+lease.VM;
var edgeLabel = undefined;
var edgeLabel = undefined;
if (lease.IP != undefined){
edgeLabel = lease.IP;
} else if (lease.IP6_GLOBAL != undefined){
edgeLabel = lease.IP6_GLOBAL;
} else if (lease.IP6_ULA != undefined){
edgeLabel = lease.IP6_ULA;
} else if (lease.IP6_LINK != undefined){
edgeLabel = lease.IP6_LINK;
}
// Skip VRouter VMs
var vrouterVMobj = _vrouterVMs[lease.VM];
if (vrouterVMobj != undefined){
if (vrouterVMobj.leases[vnetId] == undefined){
vrouterVMobj.leases[vnetId] = [];
if (lease.IP != undefined){
edgeLabel = lease.IP;
} else if (lease.IP6_GLOBAL != undefined){
edgeLabel = lease.IP6_GLOBAL;
} else if (lease.IP6_ULA != undefined){
edgeLabel = lease.IP6_ULA;
} else if (lease.IP6_LINK != undefined){
edgeLabel = lease.IP6_LINK;
}
vrouterVMobj.leases[vnetId].push(edgeLabel);
// Skip VRouter VMs
var vrouterVMobj = _vrouterVMs[lease.VM];
if (vrouterVMobj != undefined){
if (vrouterVMobj.leases[vnetId] == undefined){
vrouterVMobj.leases[vnetId] = [];
}
continue;
vrouterVMobj.leases[vnetId].push(edgeLabel);
continue;
}
if (!nodeIndex[nodeId]){
nodeIndex[nodeId] = true;
nodes.push({
id: nodeId,
level: level+1,
label: "VM "+lease.VM,
group: "vm",
vnet: vnetId});
// vnetId is only set the first time a VM node is created,
// but we only use it to cluster VMs that belong to one VNet.
// So it doesn't matter if we don't store the rest of VNet IDs
}
edges.push({from: vnetNodeId, to: nodeId, label: edgeLabel});
} else if (lease.VROUTER != undefined){
var nodeId = "vr"+lease.VROUTER;
if (!nodeIndex[nodeId]){
nodeIndex[nodeId] = true;
nodes.push({
id: nodeId,
level: level+1,
label: "VR "+vr,
group: "vr"});
}
var label = undefined;
if (lease.IP != undefined){
label = lease.IP;
} else if (lease.IP6_GLOBAL != undefined){
label = lease.IP6_GLOBAL;
} else if (lease.IP6_ULA != undefined){
label = lease.IP6_ULA;
} else if (lease.IP6_LINK != undefined){
label = lease.IP6_LINK;
}
edges.push({from: vnetNodeId, to: nodeId, label: label});
}
/*
else if (lease.VNET != undefined) { //used by a VNET Reservation
*/
}
} else {
var lease = leases[0];
var nodeId = "vm"+lease.VM;
if (!nodeIndex[nodeId]){
nodeIndex[nodeId] = true;
nodes.push({
id: nodeId,
level: level+1,
label: "VM "+lease.VM,
group: "vm",
vnet: vnetId});
var edgeLabel = undefined;
// vnetId is only set the first time a VM node is created,
// but we only use it to cluster VMs that belong to one VNet.
// So it doesn't matter if we don't store the rest of VNet IDs
}
edges.push({from: vnetNodeId, to: nodeId, label: edgeLabel});
} else if (lease.VROUTER != undefined){
var nodeId = "vr"+lease.VROUTER;
if (!nodeIndex[nodeId]){
nodeIndex[nodeId] = true;
nodes.push({
id: nodeId,
level: level+1,
label: "VR "+vr,
group: "vr"});
}
var label = undefined;
if (lease.IP != undefined){
label = lease.IP;
} else if (lease.IP6_GLOBAL != undefined){
label = lease.IP6_GLOBAL;
} else if (lease.IP6_ULA != undefined){
label = lease.IP6_ULA;
} else if (lease.IP6_LINK != undefined){
label = lease.IP6_LINK;
}
edges.push({from: vnetNodeId, to: nodeId, label: label});
if (lease.IP != undefined){
edgeLabel = lease.IP;
} else if (lease.IP6_GLOBAL != undefined){
edgeLabel = lease.IP6_GLOBAL;
} else if (lease.IP6_ULA != undefined){
edgeLabel = lease.IP6_ULA;
} else if (lease.IP6_LINK != undefined){
edgeLabel = lease.IP6_LINK;
}
/*
else if (lease.VNET != undefined) { //used by a VNET Reservation
*/
nodes.push({
id: nodeId,
level: level+1,
label: "VMset "+lease.VM,
group: "vm",
vnet: vnetId});
edges.push({from: vnetNodeId, to: nodeId, label: edgeLabel + " / ..."});
}
}
});