fix: fetch task infos from correct node
This commit is contained in:
16
index.js
16
index.js
@@ -357,6 +357,22 @@ app.get('/api/cluster/members', async (req, res) => {
|
||||
// API endpoint to get task status
|
||||
app.get('/api/tasks/status', async (req, res) => {
|
||||
try {
|
||||
const { ip } = req.query;
|
||||
|
||||
if (ip) {
|
||||
try {
|
||||
const nodeClient = new SporeApiClient(`http://${ip}`);
|
||||
const taskStatus = await nodeClient.getTaskStatus();
|
||||
return res.json(taskStatus);
|
||||
} catch (innerError) {
|
||||
console.error('Error fetching task status from specific node:', innerError);
|
||||
return res.status(500).json({
|
||||
error: 'Failed to fetch task status from node',
|
||||
message: innerError.message
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if (!sporeClient) {
|
||||
return res.status(503).json({
|
||||
error: 'Service unavailable',
|
||||
|
||||
@@ -85,9 +85,12 @@ class ApiClient {
|
||||
}
|
||||
}
|
||||
|
||||
async getTasksStatus() {
|
||||
async getTasksStatus(ip) {
|
||||
try {
|
||||
const response = await fetch(`${this.baseUrl}/api/tasks/status`, {
|
||||
const url = ip
|
||||
? `${this.baseUrl}/api/tasks/status?ip=${encodeURIComponent(ip)}`
|
||||
: `${this.baseUrl}/api/tasks/status`;
|
||||
const response = await fetch(url, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'Accept': 'application/json'
|
||||
|
||||
@@ -249,7 +249,8 @@ class NodeDetailsViewModel extends ViewModel {
|
||||
// Load tasks data with state preservation
|
||||
async loadTasksData() {
|
||||
try {
|
||||
const response = await window.apiClient.getTasksStatus();
|
||||
const ip = this.get('nodeIp');
|
||||
const response = await window.apiClient.getTasksStatus(ip);
|
||||
this.set('tasks', response || []);
|
||||
} catch (error) {
|
||||
console.error('Failed to load tasks:', error);
|
||||
|
||||
Reference in New Issue
Block a user