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 type { IService, IServiceDeployOptions, IPlatformRequirements } from '../types.ts';
import { logger } from '../logging.ts';
import { getErrorMessage } from '../utils/error.ts';
import { OneboxDatabase } from './database.ts';
import { OneboxDockerManager } from './docker.ts';
import type { PlatformServicesManager } from './platform-services/index.ts';
@@ -84,7 +85,7 @@ export class OneboxServicesManager {
platformEnvVars = await platformServices.provisionForService(service);
logger.success(`Platform resources provisioned for service '${options.name}'`);
} catch (error) {
logger.error(`Failed to provision platform resources: ${error.message}`);
logger.error(`Failed to provision platform resources: ${getErrorMessage(error)}`);
// Clean up the service record on failure
this.database.deleteService(service.id!);
throw error;
@@ -164,7 +165,7 @@ export class OneboxServicesManager {
);
}
} catch (error) {
logger.warn(`Failed to create certificate requirement: ${error.message}`);
logger.warn(`Failed to create certificate requirement: ${getErrorMessage(error)}`);
}
// Configure DNS (if autoDNS is enabled)
@@ -172,7 +173,7 @@ export class OneboxServicesManager {
try {
await this.oneboxRef.dns.addDNSRecord(options.domain);
} catch (error) {
logger.warn(`Failed to configure DNS for ${options.domain}: ${error.message}`);
logger.warn(`Failed to configure DNS for ${options.domain}: ${getErrorMessage(error)}`);
}
}
@@ -180,7 +181,7 @@ export class OneboxServicesManager {
try {
await this.oneboxRef.reverseProxy.addRoute(service.id!, options.domain, options.port);
} catch (error) {
logger.warn(`Failed to configure reverse proxy for ${options.domain}: ${error.message}`);
logger.warn(`Failed to configure reverse proxy for ${options.domain}: ${getErrorMessage(error)}`);
}
// Configure SSL (if autoSSL is enabled)
@@ -191,7 +192,7 @@ export class OneboxServicesManager {
await this.oneboxRef.ssl.obtainCertificate(options.domain);
await this.oneboxRef.reverseProxy.reloadCertificates();
} catch (error) {
logger.warn(`Failed to obtain SSL certificate for ${options.domain}: ${error.message}`);
logger.warn(`Failed to obtain SSL certificate for ${options.domain}: ${getErrorMessage(error)}`);
}
}
}
@@ -200,7 +201,7 @@ export class OneboxServicesManager {
return this.database.getServiceByName(options.name)!;
} catch (error) {
logger.error(`Failed to deploy service ${options.name}: ${error.message}`);
logger.error(`Failed to deploy service ${options.name}: ${getErrorMessage(error)}`);
throw error;
}
}
@@ -229,7 +230,7 @@ export class OneboxServicesManager {
logger.success(`Service started: ${name}`);
} catch (error) {
logger.error(`Failed to start service ${name}: ${error.message}`);
logger.error(`Failed to start service ${name}: ${getErrorMessage(error)}`);
this.database.updateService(
this.database.getServiceByName(name)?.id!,
{ status: 'failed' }
@@ -262,7 +263,7 @@ export class OneboxServicesManager {
logger.success(`Service stopped: ${name}`);
} catch (error) {
logger.error(`Failed to stop service ${name}: ${error.message}`);
logger.error(`Failed to stop service ${name}: ${getErrorMessage(error)}`);
throw error;
}
}
@@ -289,7 +290,7 @@ export class OneboxServicesManager {
logger.success(`Service restarted: ${name}`);
} catch (error) {
logger.error(`Failed to restart service ${name}: ${error.message}`);
logger.error(`Failed to restart service ${name}: ${getErrorMessage(error)}`);
throw error;
}
}
@@ -311,7 +312,7 @@ export class OneboxServicesManager {
try {
await this.docker.removeContainer(service.containerID, true);
} catch (error) {
logger.warn(`Failed to remove container: ${error.message}`);
logger.warn(`Failed to remove container: ${getErrorMessage(error)}`);
}
}
@@ -320,7 +321,7 @@ export class OneboxServicesManager {
try {
this.oneboxRef.reverseProxy.removeRoute(service.domain);
} catch (error) {
logger.warn(`Failed to remove reverse proxy route: ${error.message}`);
logger.warn(`Failed to remove reverse proxy route: ${getErrorMessage(error)}`);
}
// Note: We don't remove DNS records or SSL certs automatically
@@ -335,7 +336,7 @@ export class OneboxServicesManager {
await platformServices.cleanupForService(service.id!);
logger.success(`Platform resources cleaned up for service '${name}'`);
} catch (error) {
logger.warn(`Failed to cleanup platform resources: ${error.message}`);
logger.warn(`Failed to cleanup platform resources: ${getErrorMessage(error)}`);
// Continue with service deletion even if cleanup fails
}
}
@@ -345,7 +346,7 @@ export class OneboxServicesManager {
logger.success(`Service removed: ${name}`);
} catch (error) {
logger.error(`Failed to remove service ${name}: ${error.message}`);
logger.error(`Failed to remove service ${name}: ${getErrorMessage(error)}`);
throw error;
}
}
@@ -388,7 +389,7 @@ export class OneboxServicesManager {
// v5 API returns combined stdout/stderr with proper formatting
return logs.stdout;
} catch (error) {
logger.error(`Failed to get logs for service ${name}: ${error.message}`);
logger.error(`Failed to get logs for service ${name}: ${getErrorMessage(error)}`);
throw error;
}
}
@@ -412,7 +413,7 @@ export class OneboxServicesManager {
await this.docker.streamContainerLogs(service.containerID, callback);
} catch (error) {
logger.error(`Failed to stream logs for service ${name}: ${error.message}`);
logger.error(`Failed to stream logs for service ${name}: ${getErrorMessage(error)}`);
throw error;
}
}
@@ -434,7 +435,7 @@ export class OneboxServicesManager {
const stats = await this.docker.getContainerStats(service.containerID);
return stats;
} catch (error) {
logger.error(`Failed to get metrics for service ${name}: ${error.message}`);
logger.error(`Failed to get metrics for service ${name}: ${getErrorMessage(error)}`);
return null;
}
}
@@ -456,7 +457,7 @@ export class OneboxServicesManager {
const platformServices = this.oneboxRef.platformServices as PlatformServicesManager;
return await platformServices.getResourcesForService(service.id!);
} catch (error) {
logger.error(`Failed to get platform resources for service ${name}: ${error.message}`);
logger.error(`Failed to get platform resources for service ${name}: ${getErrorMessage(error)}`);
return [];
}
}
@@ -478,7 +479,7 @@ export class OneboxServicesManager {
const status = await this.docker.getContainerStatus(service.containerID);
return status;
} catch (error) {
logger.error(`Failed to get status for service ${name}: ${error.message}`);
logger.error(`Failed to get status for service ${name}: ${getErrorMessage(error)}`);
return 'unknown';
}
}
@@ -499,7 +500,7 @@ export class OneboxServicesManager {
// Note: Requires container restart to take effect
logger.info(`Environment variables updated for ${name}. Restart service to apply changes.`);
} catch (error) {
logger.error(`Failed to update env vars for service ${name}: ${error.message}`);
logger.error(`Failed to update env vars for service ${name}: ${getErrorMessage(error)}`);
throw error;
}
}
@@ -535,7 +536,7 @@ export class OneboxServicesManager {
try {
await this.docker.stopContainer(oldContainerID);
} catch (error) {
logger.warn(`Failed to stop container: ${error.message}`);
logger.warn(`Failed to stop container: ${getErrorMessage(error)}`);
}
}
@@ -566,7 +567,7 @@ export class OneboxServicesManager {
await this.docker.removeContainer(oldContainerID, true);
logger.info(`Removed old container for ${name}`);
} catch (error) {
logger.warn(`Failed to remove old container: ${error.message}`);
logger.warn(`Failed to remove old container: ${getErrorMessage(error)}`);
}
}
@@ -582,7 +583,7 @@ export class OneboxServicesManager {
try {
this.oneboxRef.reverseProxy.removeRoute(oldDomain);
} catch (error) {
logger.warn(`Failed to remove old reverse proxy route: ${error.message}`);
logger.warn(`Failed to remove old reverse proxy route: ${getErrorMessage(error)}`);
}
}
@@ -595,7 +596,7 @@ export class OneboxServicesManager {
updates.port || service.port
);
} catch (error) {
logger.warn(`Failed to configure reverse proxy: ${error.message}`);
logger.warn(`Failed to configure reverse proxy: ${getErrorMessage(error)}`);
}
}
}
@@ -614,7 +615,7 @@ export class OneboxServicesManager {
return this.database.getServiceByName(name)!;
} catch (error) {
logger.error(`Failed to update service ${name}: ${error.message}`);
logger.error(`Failed to update service ${name}: ${getErrorMessage(error)}`);
throw error;
}
}
@@ -653,7 +654,7 @@ export class OneboxServicesManager {
}
}
} catch (error) {
logger.debug(`Failed to sync status for service ${name}: ${error.message}`);
logger.debug(`Failed to sync status for service ${name}: ${getErrorMessage(error)}`);
}
}
@@ -678,7 +679,7 @@ export class OneboxServicesManager {
try {
await this.checkForRegistryUpdates();
} catch (error) {
logger.error(`Auto-update check failed: ${error.message}`);
logger.error(`Auto-update check failed: ${getErrorMessage(error)}`);
}
}, 30000);