mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-09-25 04:33:03 +00:00
Reorganize and enhance scripts with improved startup and configuration tools
This commit is contained in:
@@ -0,0 +1,96 @@
|
||||
/**
|
||||
* Test script to check the Proxmox cluster API response
|
||||
* This will help diagnose why standalone nodes are being detected as part of a cluster
|
||||
*/
|
||||
|
||||
const axios = require('axios');
|
||||
const https = require('https');
|
||||
require('dotenv').config();
|
||||
|
||||
// Create an axios instance with SSL verification disabled
|
||||
const createClient = (host, tokenId, tokenSecret) => {
|
||||
return axios.create({
|
||||
baseURL: `${host}/api2/json`,
|
||||
headers: {
|
||||
'Authorization': `PVEAPIToken=${tokenId}=${tokenSecret}`
|
||||
},
|
||||
httpsAgent: new https.Agent({
|
||||
rejectUnauthorized: false
|
||||
})
|
||||
});
|
||||
};
|
||||
|
||||
// Test function to check cluster status
|
||||
const testClusterStatus = async (host, tokenId, tokenSecret, nodeName) => {
|
||||
try {
|
||||
console.log(`Testing cluster status for node: ${nodeName} (${host})`);
|
||||
const client = createClient(host, tokenId, tokenSecret);
|
||||
|
||||
// Try to access the cluster status endpoint
|
||||
const response = await client.get('/cluster/status');
|
||||
|
||||
console.log(`Response status: ${response.status}`);
|
||||
console.log(`Response data: ${JSON.stringify(response.data, null, 2)}`);
|
||||
|
||||
// Check if there's a cluster type in the response
|
||||
if (response.data && response.data.data && Array.isArray(response.data.data)) {
|
||||
const clusterInfo = response.data.data.find(item => item.type === 'cluster');
|
||||
if (clusterInfo) {
|
||||
console.log(`Found cluster info: ${JSON.stringify(clusterInfo, null, 2)}`);
|
||||
console.log(`This node IS part of a cluster named: ${clusterInfo.name}`);
|
||||
} else {
|
||||
console.log('No cluster type found in the response');
|
||||
console.log('This node is NOT part of a cluster, but the cluster API is available');
|
||||
}
|
||||
} else {
|
||||
console.log('No data array in response');
|
||||
console.log('This node is NOT part of a cluster');
|
||||
}
|
||||
|
||||
console.log('-----------------------------------');
|
||||
} catch (error) {
|
||||
console.error(`Error testing cluster status for ${nodeName}:`, error.message);
|
||||
if (error.response) {
|
||||
console.log(`Response status: ${error.response.status}`);
|
||||
console.log(`Response data: ${JSON.stringify(error.response.data, null, 2)}`);
|
||||
}
|
||||
console.log('This node is NOT part of a cluster (error response)');
|
||||
console.log('-----------------------------------');
|
||||
}
|
||||
};
|
||||
|
||||
// Main function to test all nodes
|
||||
const testAllNodes = async () => {
|
||||
// Node 1
|
||||
await testClusterStatus(
|
||||
process.env.PROXMOX_HOST,
|
||||
process.env.PROXMOX_TOKEN_ID,
|
||||
process.env.PROXMOX_TOKEN_SECRET,
|
||||
process.env.PROXMOX_NODE
|
||||
);
|
||||
|
||||
// Node 2
|
||||
if (process.env.PROXMOX_HOST_2) {
|
||||
await testClusterStatus(
|
||||
process.env.PROXMOX_HOST_2,
|
||||
process.env.PROXMOX_TOKEN_ID_2,
|
||||
process.env.PROXMOX_TOKEN_SECRET_2,
|
||||
process.env.PROXMOX_NODE_2
|
||||
);
|
||||
}
|
||||
|
||||
// Node 3
|
||||
if (process.env.PROXMOX_HOST_3) {
|
||||
await testClusterStatus(
|
||||
process.env.PROXMOX_HOST_3,
|
||||
process.env.PROXMOX_TOKEN_ID_3,
|
||||
process.env.PROXMOX_TOKEN_SECRET_3,
|
||||
process.env.PROXMOX_NODE_3
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
// Run the tests
|
||||
testAllNodes().catch(error => {
|
||||
console.error('Error running tests:', error);
|
||||
});
|
||||
Reference in New Issue
Block a user