124 lines
3.8 KiB
JavaScript
124 lines
3.8 KiB
JavaScript
// 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) };
|
|
}
|
|
};
|