feat: add topology view
This commit is contained in:
124
public/demo-topology-data.js
Normal file
124
public/demo-topology-data.js
Normal file
@@ -0,0 +1,124 @@
|
||||
// Demo data for testing the Members view without actual cluster data
|
||||
window.demoMembersData = {
|
||||
members: [
|
||||
{
|
||||
hostname: "spore-node-1",
|
||||
ip: "192.168.1.100",
|
||||
lastSeen: Date.now(),
|
||||
latency: 3,
|
||||
status: "ACTIVE",
|
||||
resources: {
|
||||
freeHeap: 48748,
|
||||
chipId: 12345678,
|
||||
sdkVersion: "3.1.2",
|
||||
cpuFreqMHz: 80,
|
||||
flashChipSize: 1048576
|
||||
},
|
||||
api: [
|
||||
{ uri: "/api/node/status", method: "GET" },
|
||||
{ uri: "/api/tasks/status", method: "GET" }
|
||||
]
|
||||
},
|
||||
{
|
||||
hostname: "spore-node-2",
|
||||
ip: "192.168.1.101",
|
||||
lastSeen: Date.now() - 5000,
|
||||
latency: 8,
|
||||
status: "ACTIVE",
|
||||
resources: {
|
||||
freeHeap: 52340,
|
||||
chipId: 87654321,
|
||||
sdkVersion: "3.1.2",
|
||||
cpuFreqMHz: 80,
|
||||
flashChipSize: 1048576
|
||||
},
|
||||
api: [
|
||||
{ uri: "/api/node/status", method: "GET" },
|
||||
{ uri: "/api/tasks/status", method: "GET" }
|
||||
]
|
||||
},
|
||||
{
|
||||
hostname: "spore-node-3",
|
||||
ip: "192.168.1.102",
|
||||
lastSeen: Date.now() - 15000,
|
||||
latency: 12,
|
||||
status: "INACTIVE",
|
||||
resources: {
|
||||
freeHeap: 38920,
|
||||
chipId: 11223344,
|
||||
sdkVersion: "3.1.1",
|
||||
cpuFreqMHz: 80,
|
||||
flashChipSize: 1048576
|
||||
},
|
||||
api: [
|
||||
{ uri: "/api/node/status", method: "GET" }
|
||||
]
|
||||
},
|
||||
{
|
||||
hostname: "spore-node-4",
|
||||
ip: "192.168.1.103",
|
||||
lastSeen: Date.now() - 30000,
|
||||
latency: 25,
|
||||
status: "ACTIVE",
|
||||
resources: {
|
||||
freeHeap: 45678,
|
||||
chipId: 55667788,
|
||||
sdkVersion: "3.1.2",
|
||||
cpuFreqMHz: 80,
|
||||
flashChipSize: 1048576
|
||||
},
|
||||
api: [
|
||||
{ uri: "/api/node/status", method: "GET" },
|
||||
{ uri: "/api/tasks/status", method: "GET" },
|
||||
{ uri: "/api/capabilities", method: "GET" }
|
||||
]
|
||||
},
|
||||
{
|
||||
hostname: "spore-node-5",
|
||||
ip: "192.168.1.104",
|
||||
lastSeen: Date.now() - 60000,
|
||||
latency: 45,
|
||||
status: "DEAD",
|
||||
resources: {
|
||||
freeHeap: 0,
|
||||
chipId: 99887766,
|
||||
sdkVersion: "3.1.0",
|
||||
cpuFreqMHz: 0,
|
||||
flashChipSize: 1048576
|
||||
},
|
||||
api: []
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
// Mock API client for demo purposes
|
||||
window.demoApiClient = {
|
||||
async getClusterMembers() {
|
||||
// Simulate network delay
|
||||
await new Promise(resolve => setTimeout(resolve, 500));
|
||||
return window.demoMembersData;
|
||||
},
|
||||
|
||||
async getClusterMembersFromNode(ip) {
|
||||
// Simulate network delay
|
||||
await new Promise(resolve => setTimeout(resolve, 200));
|
||||
|
||||
// Return a subset of members to simulate different node perspectives
|
||||
const allMembers = window.demoMembersData.members;
|
||||
const nodeIndex = allMembers.findIndex(m => m.ip === ip);
|
||||
|
||||
if (nodeIndex === -1) {
|
||||
return { members: [] };
|
||||
}
|
||||
|
||||
// Simulate each node seeing a different subset of the cluster
|
||||
const startIndex = (nodeIndex * 2) % allMembers.length;
|
||||
const members = [
|
||||
allMembers[startIndex],
|
||||
allMembers[(startIndex + 1) % allMembers.length],
|
||||
allMembers[(startIndex + 2) % allMembers.length]
|
||||
];
|
||||
|
||||
return { members: members.filter(m => m.ip !== ip) };
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user