fix: fetch task infos from correct node

This commit is contained in:
2025-08-28 09:47:02 +02:00
parent c840a4da84
commit eba7bec030
3 changed files with 23 additions and 3 deletions

View File

@@ -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',

View File

@@ -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'

View File

@@ -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);