feat: Update error handling to use getErrorMessage utility and improve logging across multiple services

This commit is contained in:
2025-11-25 08:25:54 +00:00
parent c59d56e70a
commit e94906b3bf
13 changed files with 97 additions and 75 deletions

View File

@@ -15,6 +15,7 @@ import type { IPlatformServiceProvider } from './providers/base.ts';
import { MongoDBProvider } from './providers/mongodb.ts';
import { MinioProvider } from './providers/minio.ts';
import { logger } from '../../logging.ts';
import { getErrorMessage } from '../../utils/error.ts';
import { credentialEncryption } from '../encryption.ts';
import type { Onebox } from '../onebox.ts';
@@ -126,7 +127,7 @@ export class PlatformServicesManager {
// Refresh platform service from database
platformService = this.oneboxRef.database.getPlatformServiceByType(type)!;
} catch (error) {
logger.error(`Failed to start ${provider.displayName}: ${error.message}`);
logger.error(`Failed to start ${provider.displayName}: ${getErrorMessage(error)}`);
this.oneboxRef.database.updatePlatformService(platformService.id!, { status: 'failed' });
throw error;
}
@@ -187,7 +188,7 @@ export class PlatformServicesManager {
});
logger.success(`${provider.displayName} platform service stopped`);
} catch (error) {
logger.error(`Failed to stop ${provider.displayName}: ${error.message}`);
logger.error(`Failed to stop ${provider.displayName}: ${getErrorMessage(error)}`);
this.oneboxRef.database.updatePlatformService(platformService.id!, { status: 'failed' });
throw error;
}
@@ -292,7 +293,7 @@ export class PlatformServicesManager {
this.oneboxRef.database.deletePlatformResource(resource.id!);
logger.success(`Cleaned up ${resource.resourceType} '${resource.resourceName}'`);
} catch (error) {
logger.error(`Failed to cleanup resource ${resource.id}: ${error.message}`);
logger.error(`Failed to cleanup resource ${resource.id}: ${getErrorMessage(error)}`);
// Continue with other resources even if one fails
}
}

View File

@@ -13,6 +13,7 @@ import type {
TPlatformResourceType,
} from '../../../types.ts';
import { logger } from '../../../logging.ts';
import { getErrorMessage } from '../../../utils/error.ts';
import { credentialEncryption } from '../../encryption.ts';
import type { Onebox } from '../../onebox.ts';
@@ -73,7 +74,7 @@ export class MinioProvider extends BasePlatformServiceProvider {
await Deno.mkdir('/var/lib/onebox/minio', { recursive: true });
} catch (e) {
if (!(e instanceof Deno.errors.AlreadyExists)) {
logger.warn(`Could not create MinIO data directory: ${e.message}`);
logger.warn(`Could not create MinIO data directory: ${getErrorMessage(e)}`);
}
}
@@ -127,7 +128,7 @@ export class MinioProvider extends BasePlatformServiceProvider {
return response.ok;
} catch (error) {
logger.debug(`MinIO health check failed: ${error.message}`);
logger.debug(`MinIO health check failed: ${getErrorMessage(error)}`);
return false;
}
}
@@ -205,7 +206,7 @@ export class MinioProvider extends BasePlatformServiceProvider {
}));
logger.info(`Set bucket policy for '${bucketName}'`);
} catch (e) {
logger.warn(`Could not set bucket policy: ${e.message}`);
logger.warn(`Could not set bucket policy: ${getErrorMessage(e)}`);
}
// Note: For proper per-service credentials, MinIO Admin API should be used
@@ -292,7 +293,7 @@ export class MinioProvider extends BasePlatformServiceProvider {
logger.success(`MinIO bucket '${resource.resourceName}' deleted`);
} catch (e) {
logger.error(`Failed to delete MinIO bucket: ${e.message}`);
logger.error(`Failed to delete MinIO bucket: ${getErrorMessage(e)}`);
throw e;
}
}

View File

@@ -13,6 +13,7 @@ import type {
TPlatformResourceType,
} from '../../../types.ts';
import { logger } from '../../../logging.ts';
import { getErrorMessage } from '../../../utils/error.ts';
import { credentialEncryption } from '../../encryption.ts';
import type { Onebox } from '../../onebox.ts';
@@ -69,7 +70,7 @@ export class MongoDBProvider extends BasePlatformServiceProvider {
} catch (e) {
// Directory might already exist
if (!(e instanceof Deno.errors.AlreadyExists)) {
logger.warn(`Could not create MongoDB data directory: ${e.message}`);
logger.warn(`Could not create MongoDB data directory: ${getErrorMessage(e)}`);
}
}
@@ -135,7 +136,7 @@ export class MongoDBProvider extends BasePlatformServiceProvider {
return true;
} catch (error) {
logger.debug(`MongoDB health check failed: ${error.message}`);
logger.debug(`MongoDB health check failed: ${getErrorMessage(error)}`);
return false;
}
}
@@ -233,7 +234,7 @@ export class MongoDBProvider extends BasePlatformServiceProvider {
await db.command({ dropUser: credentials.username });
logger.info(`Dropped MongoDB user '${credentials.username}'`);
} catch (e) {
logger.warn(`Could not drop MongoDB user: ${e.message}`);
logger.warn(`Could not drop MongoDB user: ${getErrorMessage(e)}`);
}
// Drop the database