Refactor error logging to use getErrorMessage utility

- Updated multiple classes to replace direct error message access with getErrorMessage function for improved error handling and consistency.
- Modified error logging in CertRequirementManager, CloudflareDomainSync, OneboxDnsManager, OneboxDockerManager, OneboxHttpServer, Onebox, OneboxRegistriesManager, and OneboxServicesManager.
- Ensured that all error messages logged provide a standardized format and improved clarity.
This commit is contained in:
2025-11-25 04:38:26 +00:00
parent 8ebd677478
commit c59d56e70a
9 changed files with 159 additions and 149 deletions

View File

@@ -6,6 +6,7 @@
import * as plugins from '../plugins.ts';
import { logger } from '../logging.ts';
import { getErrorMessage } from '../utils/error.ts';
import type { Onebox } from './onebox.ts';
import type { IApiResponse, ICreateRegistryTokenRequest, IRegistryTokenView } from '../types.ts';
@@ -37,7 +38,7 @@ export class OneboxHttpServer {
logger.success(`HTTP server started on http://localhost:${this.port}`);
} catch (error) {
logger.error(`Failed to start HTTP server: ${error.message}`);
logger.error(`Failed to start HTTP server: ${getErrorMessage(error)}`);
throw error;
}
}
@@ -56,7 +57,7 @@ export class OneboxHttpServer {
this.server = null;
logger.success('HTTP server stopped');
} catch (error) {
logger.error(`Failed to stop HTTP server: ${error.message}`);
logger.error(`Failed to stop HTTP server: ${getErrorMessage(error)}`);
throw error;
}
}
@@ -95,8 +96,8 @@ export class OneboxHttpServer {
// Serve Angular UI
return await this.serveStaticFile(path);
} catch (error) {
logger.error(`Request error: ${error.message}`);
return this.jsonResponse({ success: false, error: error.message }, 500);
logger.error(`Request error: ${getErrorMessage(error)}`);
return this.jsonResponse({ success: false, error: getErrorMessage(error) }, 500);
}
}
@@ -339,7 +340,7 @@ export class OneboxHttpServer {
},
});
} catch (error) {
logger.error(`Login error: ${error.message}`);
logger.error(`Login error: ${getErrorMessage(error)}`);
return this.jsonResponse({ success: false, error: 'Login failed' }, 500);
}
}
@@ -349,8 +350,8 @@ export class OneboxHttpServer {
const status = await this.oneboxRef.getSystemStatus();
return this.jsonResponse({ success: true, data: status });
} catch (error) {
logger.error(`Failed to get system status: ${error.message}`);
return this.jsonResponse({ success: false, error: error.message || 'Failed to get system status' }, 500);
logger.error(`Failed to get system status: ${getErrorMessage(error)}`);
return this.jsonResponse({ success: false, error: getErrorMessage(error) || 'Failed to get system status' }, 500);
}
}
@@ -359,8 +360,8 @@ export class OneboxHttpServer {
const services = this.oneboxRef.services.listServices();
return this.jsonResponse({ success: true, data: services });
} catch (error) {
logger.error(`Failed to list services: ${error.message}`);
return this.jsonResponse({ success: false, error: error.message || 'Failed to list services' }, 500);
logger.error(`Failed to list services: ${getErrorMessage(error)}`);
return this.jsonResponse({ success: false, error: getErrorMessage(error) || 'Failed to list services' }, 500);
}
}
@@ -374,8 +375,8 @@ export class OneboxHttpServer {
return this.jsonResponse({ success: true, data: service });
} catch (error) {
logger.error(`Failed to deploy service: ${error.message}`);
return this.jsonResponse({ success: false, error: error.message || 'Failed to deploy service' }, 500);
logger.error(`Failed to deploy service: ${getErrorMessage(error)}`);
return this.jsonResponse({ success: false, error: getErrorMessage(error) || 'Failed to deploy service' }, 500);
}
}
@@ -387,8 +388,8 @@ export class OneboxHttpServer {
}
return this.jsonResponse({ success: true, data: service });
} catch (error) {
logger.error(`Failed to get service ${name}: ${error.message}`);
return this.jsonResponse({ success: false, error: error.message || 'Failed to get service' }, 500);
logger.error(`Failed to get service ${name}: ${getErrorMessage(error)}`);
return this.jsonResponse({ success: false, error: getErrorMessage(error) || 'Failed to get service' }, 500);
}
}
@@ -417,8 +418,8 @@ export class OneboxHttpServer {
return this.jsonResponse({ success: true, data: service });
} catch (error) {
logger.error(`Failed to update service ${name}: ${error.message}`);
return this.jsonResponse({ success: false, error: error.message || 'Failed to update service' }, 500);
logger.error(`Failed to update service ${name}: ${getErrorMessage(error)}`);
return this.jsonResponse({ success: false, error: getErrorMessage(error) || 'Failed to update service' }, 500);
}
}
@@ -431,8 +432,8 @@ export class OneboxHttpServer {
return this.jsonResponse({ success: true, message: 'Service removed' });
} catch (error) {
logger.error(`Failed to delete service ${name}: ${error.message}`);
return this.jsonResponse({ success: false, error: error.message || 'Failed to delete service' }, 500);
logger.error(`Failed to delete service ${name}: ${getErrorMessage(error)}`);
return this.jsonResponse({ success: false, error: getErrorMessage(error) || 'Failed to delete service' }, 500);
}
}
@@ -445,8 +446,8 @@ export class OneboxHttpServer {
return this.jsonResponse({ success: true, message: 'Service started' });
} catch (error) {
logger.error(`Failed to start service ${name}: ${error.message}`);
return this.jsonResponse({ success: false, error: error.message || 'Failed to start service' }, 500);
logger.error(`Failed to start service ${name}: ${getErrorMessage(error)}`);
return this.jsonResponse({ success: false, error: getErrorMessage(error) || 'Failed to start service' }, 500);
}
}
@@ -459,8 +460,8 @@ export class OneboxHttpServer {
return this.jsonResponse({ success: true, message: 'Service stopped' });
} catch (error) {
logger.error(`Failed to stop service ${name}: ${error.message}`);
return this.jsonResponse({ success: false, error: error.message || 'Failed to stop service' }, 500);
logger.error(`Failed to stop service ${name}: ${getErrorMessage(error)}`);
return this.jsonResponse({ success: false, error: getErrorMessage(error) || 'Failed to stop service' }, 500);
}
}
@@ -473,8 +474,8 @@ export class OneboxHttpServer {
return this.jsonResponse({ success: true, message: 'Service restarted' });
} catch (error) {
logger.error(`Failed to restart service ${name}: ${error.message}`);
return this.jsonResponse({ success: false, error: error.message || 'Failed to restart service' }, 500);
logger.error(`Failed to restart service ${name}: ${getErrorMessage(error)}`);
return this.jsonResponse({ success: false, error: getErrorMessage(error) || 'Failed to restart service' }, 500);
}
}
@@ -485,8 +486,8 @@ export class OneboxHttpServer {
logger.log(`handleGetLogsRequest: logs value = ${String(logs).slice(0, 100)}`);
return this.jsonResponse({ success: true, data: logs });
} catch (error) {
logger.error(`Failed to get logs for service ${name}: ${error.message}`);
return this.jsonResponse({ success: false, error: error.message || 'Failed to get logs' }, 500);
logger.error(`Failed to get logs for service ${name}: ${getErrorMessage(error)}`);
return this.jsonResponse({ success: false, error: getErrorMessage(error) || 'Failed to get logs' }, 500);
}
}
@@ -540,7 +541,7 @@ export class OneboxHttpServer {
message: 'Settings updated successfully'
});
} catch (error) {
logger.error(`Failed to update settings: ${error.message}`);
logger.error(`Failed to update settings: ${getErrorMessage(error)}`);
return this.jsonResponse({ success: false, error: 'Failed to update settings' }, 500);
}
}
@@ -564,8 +565,8 @@ export class OneboxHttpServer {
message: `Certificate obtained for ${domain}`,
});
} catch (error) {
logger.error(`Failed to obtain certificate: ${error.message}`);
return this.jsonResponse({ success: false, error: error.message || 'Failed to obtain certificate' }, 500);
logger.error(`Failed to obtain certificate: ${getErrorMessage(error)}`);
return this.jsonResponse({ success: false, error: getErrorMessage(error) || 'Failed to obtain certificate' }, 500);
}
}
@@ -574,8 +575,8 @@ export class OneboxHttpServer {
const certificates = this.oneboxRef.ssl.listCertificates();
return this.jsonResponse({ success: true, data: certificates });
} catch (error) {
logger.error(`Failed to list certificates: ${error.message}`);
return this.jsonResponse({ success: false, error: error.message || 'Failed to list certificates' }, 500);
logger.error(`Failed to list certificates: ${getErrorMessage(error)}`);
return this.jsonResponse({ success: false, error: getErrorMessage(error) || 'Failed to list certificates' }, 500);
}
}
@@ -587,8 +588,8 @@ export class OneboxHttpServer {
}
return this.jsonResponse({ success: true, data: certificate });
} catch (error) {
logger.error(`Failed to get certificate for ${domain}: ${error.message}`);
return this.jsonResponse({ success: false, error: error.message || 'Failed to get certificate' }, 500);
logger.error(`Failed to get certificate for ${domain}: ${getErrorMessage(error)}`);
return this.jsonResponse({ success: false, error: getErrorMessage(error) || 'Failed to get certificate' }, 500);
}
}
@@ -600,8 +601,8 @@ export class OneboxHttpServer {
message: `Certificate renewed for ${domain}`,
});
} catch (error) {
logger.error(`Failed to renew certificate for ${domain}: ${error.message}`);
return this.jsonResponse({ success: false, error: error.message || 'Failed to renew certificate' }, 500);
logger.error(`Failed to renew certificate for ${domain}: ${getErrorMessage(error)}`);
return this.jsonResponse({ success: false, error: getErrorMessage(error) || 'Failed to renew certificate' }, 500);
}
}
@@ -661,10 +662,10 @@ export class OneboxHttpServer {
return this.jsonResponse({ success: true, data: domainViews });
} catch (error) {
logger.error(`Failed to get domains: ${error.message}`);
logger.error(`Failed to get domains: ${getErrorMessage(error)}`);
return this.jsonResponse({
success: false,
error: error.message || 'Failed to get domains',
error: getErrorMessage(error) || 'Failed to get domains',
}, 500);
}
}
@@ -685,10 +686,10 @@ export class OneboxHttpServer {
message: 'Cloudflare zones synced successfully',
});
} catch (error) {
logger.error(`Failed to sync Cloudflare zones: ${error.message}`);
logger.error(`Failed to sync Cloudflare zones: ${getErrorMessage(error)}`);
return this.jsonResponse({
success: false,
error: error.message || 'Failed to sync Cloudflare zones',
error: getErrorMessage(error) || 'Failed to sync Cloudflare zones',
}, 500);
}
}
@@ -737,10 +738,10 @@ export class OneboxHttpServer {
return this.jsonResponse({ success: true, data: domainDetail });
} catch (error) {
logger.error(`Failed to get domain detail for ${domainName}: ${error.message}`);
logger.error(`Failed to get domain detail for ${domainName}: ${getErrorMessage(error)}`);
return this.jsonResponse({
success: false,
error: error.message || 'Failed to get domain detail',
error: getErrorMessage(error) || 'Failed to get domain detail',
}, 500);
}
}
@@ -750,10 +751,10 @@ export class OneboxHttpServer {
const records = this.oneboxRef.dns.listDNSRecords();
return this.jsonResponse({ success: true, data: records });
} catch (error) {
logger.error(`Failed to get DNS records: ${error.message}`);
logger.error(`Failed to get DNS records: ${getErrorMessage(error)}`);
return this.jsonResponse({
success: false,
error: error.message || 'Failed to get DNS records',
error: getErrorMessage(error) || 'Failed to get DNS records',
}, 500);
}
}
@@ -777,10 +778,10 @@ export class OneboxHttpServer {
message: `DNS record created for ${domain}`,
});
} catch (error) {
logger.error(`Failed to create DNS record: ${error.message}`);
logger.error(`Failed to create DNS record: ${getErrorMessage(error)}`);
return this.jsonResponse({
success: false,
error: error.message || 'Failed to create DNS record',
error: getErrorMessage(error) || 'Failed to create DNS record',
}, 500);
}
}
@@ -794,10 +795,10 @@ export class OneboxHttpServer {
message: `DNS record deleted for ${domain}`,
});
} catch (error) {
logger.error(`Failed to delete DNS record for ${domain}: ${error.message}`);
logger.error(`Failed to delete DNS record for ${domain}: ${getErrorMessage(error)}`);
return this.jsonResponse({
success: false,
error: error.message || 'Failed to delete DNS record',
error: getErrorMessage(error) || 'Failed to delete DNS record',
}, 500);
}
}
@@ -818,10 +819,10 @@ export class OneboxHttpServer {
message: 'DNS records synced from Cloudflare',
});
} catch (error) {
logger.error(`Failed to sync DNS records: ${error.message}`);
logger.error(`Failed to sync DNS records: ${getErrorMessage(error)}`);
return this.jsonResponse({
success: false,
error: error.message || 'Failed to sync DNS records',
error: getErrorMessage(error) || 'Failed to sync DNS records',
}, 500);
}
}
@@ -953,9 +954,9 @@ export class OneboxHttpServer {
});
logStream.on('error', (error: Error) => {
logger.error(`Log stream error for ${serviceName}: ${error.message}`);
logger.error(`Log stream error for ${serviceName}: ${getErrorMessage(error)}`);
if (socket.readyState === WebSocket.OPEN) {
socket.send(JSON.stringify({ error: error.message }));
socket.send(JSON.stringify({ error: getErrorMessage(error) }));
}
});
@@ -971,9 +972,9 @@ export class OneboxHttpServer {
};
} catch (error) {
logger.error(`Failed to start log stream for ${serviceName}: ${error.message}`);
logger.error(`Failed to start log stream for ${serviceName}: ${getErrorMessage(error)}`);
if (socket.readyState === WebSocket.OPEN) {
socket.send(JSON.stringify({ error: error.message }));
socket.send(JSON.stringify({ error: getErrorMessage(error) }));
socket.close();
}
}
@@ -1004,7 +1005,7 @@ export class OneboxHttpServer {
failCount++;
}
} catch (error) {
logger.error(`Failed to send to WebSocket client: ${error.message}`);
logger.error(`Failed to send to WebSocket client: ${getErrorMessage(error)}`);
this.wsClients.delete(client);
failCount++;
}
@@ -1074,10 +1075,10 @@ export class OneboxHttpServer {
return this.jsonResponse({ success: true, data: result });
} catch (error) {
logger.error(`Failed to list platform services: ${error.message}`);
logger.error(`Failed to list platform services: ${getErrorMessage(error)}`);
return this.jsonResponse({
success: false,
error: error.message || 'Failed to list platform services',
error: getErrorMessage(error) || 'Failed to list platform services',
}, 500);
}
}
@@ -1114,10 +1115,10 @@ export class OneboxHttpServer {
},
});
} catch (error) {
logger.error(`Failed to get platform service ${type}: ${error.message}`);
logger.error(`Failed to get platform service ${type}: ${getErrorMessage(error)}`);
return this.jsonResponse({
success: false,
error: error.message || 'Failed to get platform service',
error: getErrorMessage(error) || 'Failed to get platform service',
}, 500);
}
}
@@ -1145,10 +1146,10 @@ export class OneboxHttpServer {
},
});
} catch (error) {
logger.error(`Failed to start platform service ${type}: ${error.message}`);
logger.error(`Failed to start platform service ${type}: ${getErrorMessage(error)}`);
return this.jsonResponse({
success: false,
error: error.message || 'Failed to start platform service',
error: getErrorMessage(error) || 'Failed to start platform service',
}, 500);
}
}
@@ -1171,10 +1172,10 @@ export class OneboxHttpServer {
message: `Platform service ${provider.displayName} stopped`,
});
} catch (error) {
logger.error(`Failed to stop platform service ${type}: ${error.message}`);
logger.error(`Failed to stop platform service ${type}: ${getErrorMessage(error)}`);
return this.jsonResponse({
success: false,
error: error.message || 'Failed to stop platform service',
error: getErrorMessage(error) || 'Failed to stop platform service',
}, 500);
}
}
@@ -1220,10 +1221,10 @@ export class OneboxHttpServer {
data: formattedResources,
});
} catch (error) {
logger.error(`Failed to get platform resources for service ${serviceName}: ${error.message}`);
logger.error(`Failed to get platform resources for service ${serviceName}: ${getErrorMessage(error)}`);
return this.jsonResponse({
success: false,
error: error.message || 'Failed to get platform resources',
error: getErrorMessage(error) || 'Failed to get platform resources',
}, 500);
}
}
@@ -1235,10 +1236,10 @@ export class OneboxHttpServer {
const tags = await this.oneboxRef.registry.getImageTags(serviceName);
return this.jsonResponse({ success: true, data: tags });
} catch (error) {
logger.error(`Failed to get registry tags for ${serviceName}: ${error.message}`);
logger.error(`Failed to get registry tags for ${serviceName}: ${getErrorMessage(error)}`);
return this.jsonResponse({
success: false,
error: error.message || 'Failed to get registry tags',
error: getErrorMessage(error) || 'Failed to get registry tags',
}, 500);
}
}
@@ -1282,10 +1283,10 @@ export class OneboxHttpServer {
return this.jsonResponse({ success: true, data: tokenViews });
} catch (error) {
logger.error(`Failed to list registry tokens: ${error.message}`);
logger.error(`Failed to list registry tokens: ${getErrorMessage(error)}`);
return this.jsonResponse({
success: false,
error: error.message || 'Failed to list registry tokens',
error: getErrorMessage(error) || 'Failed to list registry tokens',
}, 500);
}
}
@@ -1412,10 +1413,10 @@ export class OneboxHttpServer {
},
});
} catch (error) {
logger.error(`Failed to create registry token: ${error.message}`);
logger.error(`Failed to create registry token: ${getErrorMessage(error)}`);
return this.jsonResponse({
success: false,
error: error.message || 'Failed to create registry token',
error: getErrorMessage(error) || 'Failed to create registry token',
}, 500);
}
}
@@ -1439,10 +1440,10 @@ export class OneboxHttpServer {
message: 'Token deleted successfully',
});
} catch (error) {
logger.error(`Failed to delete registry token ${tokenId}: ${error.message}`);
logger.error(`Failed to delete registry token ${tokenId}: ${getErrorMessage(error)}`);
return this.jsonResponse({
success: false,
error: error.message || 'Failed to delete registry token',
error: getErrorMessage(error) || 'Failed to delete registry token',
}, 500);
}
}