Refactor VM provisioning pipeline into focused services and add IP pool
management
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Services\VirtualMachine;
|
||||
|
||||
class VmVcenterErrorTranslator
|
||||
{
|
||||
private const MESSAGES = [
|
||||
'NOT_FOUND' => 'Không tìm thấy template hoặc tài nguyên trên vCenter. Vui lòng liên hệ hỗ trợ.',
|
||||
'RESOURCE_INACCESSIBLE' => 'Tài nguyên vCenter không khả dụng. Vui lòng thử lại sau hoặc liên hệ hỗ trợ.',
|
||||
'INVALID_ARGUMENT' => 'Thông tin cấu hình máy chủ không hợp lệ. Vui lòng liên hệ hỗ trợ.',
|
||||
'UNABLE_TO_ALLOCATE_RESOURCE' => 'Không đủ tài nguyên để khởi tạo máy chủ. Vui lòng liên hệ hỗ trợ.',
|
||||
'TIMED_OUT' => 'Yêu cầu khởi tạo máy chủ hết thời gian chờ. Vui lòng thử lại sau.',
|
||||
];
|
||||
|
||||
public function translate(array $result, ?string $serverName = null): string
|
||||
{
|
||||
$data = $result['data'] ?? [];
|
||||
$errorType = is_array($data) ? ($data['error_type'] ?? '') : '';
|
||||
|
||||
if ($errorType === 'ALREADY_EXISTS') {
|
||||
return "Tên máy chủ \"{$serverName}\" đã tồn tại trong hệ thống. "
|
||||
. 'Vui lòng liên hệ hỗ trợ để được xử lý hoặc chọn tên máy chủ khác.';
|
||||
}
|
||||
|
||||
if ($errorType && isset(self::MESSAGES[$errorType])) {
|
||||
return self::MESSAGES[$errorType];
|
||||
}
|
||||
|
||||
// Avoid leaking raw JSON to customers
|
||||
return 'Không thể khởi tạo máy chủ ảo lúc này. Chúng tôi đã ghi nhận và sẽ xử lý trong thời gian sớm nhất. '
|
||||
. 'Vui lòng liên hệ hỗ trợ nếu cần.';
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user