diff --git a/compute/src/main/java/org/zstack/compute/vm/VmDownloadIsoFlow.java b/compute/src/main/java/org/zstack/compute/vm/VmDownloadIsoFlow.java index aa9ccb65a2..2f471869a2 100755 --- a/compute/src/main/java/org/zstack/compute/vm/VmDownloadIsoFlow.java +++ b/compute/src/main/java/org/zstack/compute/vm/VmDownloadIsoFlow.java @@ -15,6 +15,7 @@ import org.zstack.header.image.ImageInventory; import org.zstack.header.image.ImageStatus; import org.zstack.header.message.MessageReply; +import org.zstack.header.storage.backup.BackupStorageStatus; import org.zstack.header.storage.primary.DownloadIsoToPrimaryStorageMsg; import org.zstack.header.storage.primary.DownloadIsoToPrimaryStorageReply; import org.zstack.header.storage.primary.PrimaryStorageConstant; @@ -24,7 +25,11 @@ import org.zstack.utils.CollectionUtils; import org.zstack.utils.function.Function; +import javax.persistence.Tuple; +import javax.persistence.TypedQuery; +import java.util.List; import java.util.Map; +import java.util.stream.Collectors; import static org.zstack.core.Platform.operr; import static org.zstack.utils.clouderrorcode.CloudOperationsErrorCode.*; @@ -41,6 +46,38 @@ public class VmDownloadIsoFlow extends NoRollbackFlow { @Autowired private ErrorFacade errf; + private String getImageBackupStorageInfo(String imageUuid) { + String sql = "select bs.name, bs.status" + + " from BackupStorageVO bs, ImageBackupStorageRefVO ref" + + " where bs.uuid = ref.backupStorageUuid" + + " and ref.imageUuid = :imageUuid"; + TypedQuery q = dbf.getEntityManager().createQuery(sql, Tuple.class); + q.setParameter("imageUuid", imageUuid); + List tuples = q.getResultList(); + if (tuples.isEmpty()) { + return "none"; + } + return tuples.stream() + .map(t -> String.format("%s(%s)", t.get(0, String.class), t.get(1, BackupStorageStatus.class))) + .collect(Collectors.joining(", ", "[", "]")); + } + + private String getZoneBackupStorageInfo(String zoneUuid) { + String sql = "select bs.name, bs.status" + + " from BackupStorageVO bs, BackupStorageZoneRefVO ref" + + " where bs.uuid = ref.backupStorageUuid" + + " and ref.zoneUuid = :zoneUuid"; + TypedQuery q = dbf.getEntityManager().createQuery(sql, Tuple.class); + q.setParameter("zoneUuid", zoneUuid); + List tuples = q.getResultList(); + if (tuples.isEmpty()) { + return "none"; + } + return tuples.stream() + .map(t -> String.format("%s(%s)", t.get(0, String.class), t.get(1, BackupStorageStatus.class))) + .collect(Collectors.joining(", ", "[", "]")); + } + @Override public void run(final FlowTrigger trigger, Map data) { final VmInstanceSpec spec = (VmInstanceSpec) data.get(VmInstanceConstant.Params.VmInstanceSpec.toString()); @@ -59,10 +96,16 @@ public void run(final FlowTrigger trigger, Map data) { final String bsUuid = selector.select(); if (bsUuid == null) { - throw new OperationFailureException(operr(ORG_ZSTACK_COMPUTE_VM_10084, "cannot find the iso[uuid:%s] in any connected backup storage attached to the zone[uuid:%s]. check below:\n" + - "1. if the backup storage is attached to the zone where the VM[name: %s, uuid:%s] is running\n" + - "2. if the backup storage is in connected status, if not, try reconnecting it", - iso.getUuid(), host.getZoneUuid(), spec.getVmInventory().getName(), spec.getVmInventory().getUuid()) + String isoBsInfo = getImageBackupStorageInfo(iso.getUuid()); + String zoneBsInfo = getZoneBackupStorageInfo(host.getZoneUuid()); + throw new OperationFailureException(operr(ORG_ZSTACK_COMPUTE_VM_10084, + "cannot find the iso[name:%s, uuid:%s] in any connected backup storage" + + " attached to the zone[uuid:%s]." + + "\nISO is on backup storage: %s" + + "\nzone attached backup storage: %s" + + "\nsuggestion: attach the ISO's backup storage to the zone," + + " or ensure the backup storage is connected.", + iso.getName(), iso.getUuid(), host.getZoneUuid(), isoBsInfo, zoneBsInfo) ); } diff --git a/compute/src/main/java/org/zstack/compute/vm/VmImageSelectBackupStorageFlow.java b/compute/src/main/java/org/zstack/compute/vm/VmImageSelectBackupStorageFlow.java index 893020ea58..ffe8e4e7d2 100755 --- a/compute/src/main/java/org/zstack/compute/vm/VmImageSelectBackupStorageFlow.java +++ b/compute/src/main/java/org/zstack/compute/vm/VmImageSelectBackupStorageFlow.java @@ -14,6 +14,7 @@ import org.zstack.header.image.ImageBackupStorageRefInventory; import org.zstack.header.image.ImageConstant.ImageMediaType; import org.zstack.header.image.ImageStatus; +import org.zstack.header.storage.backup.BackupStorageStatus; import org.zstack.header.storage.primary.*; import org.zstack.header.vm.VmInstanceConstant; import org.zstack.header.vm.VmInstanceConstant.VmOperation; @@ -22,11 +23,14 @@ import org.zstack.utils.DebugUtils; import org.zstack.utils.function.Function; +import javax.persistence.Tuple; import javax.persistence.TypedQuery; import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Optional; +import java.util.stream.Collectors; import static org.zstack.core.Platform.operr; import static org.zstack.core.progress.ProgressReportService.taskProgress; @@ -76,17 +80,27 @@ private String findBackupStorage(VmInstanceSpec spec, String imageUuid) { } } + String imageName = spec.getImageSpec().getInventory().getName(); + String imageBsInfo = getImageBackupStorageInfo(imageUuid); if (spec.getVmInventory().getZoneUuid() != null) { - throw new OperationFailureException(operr(ORG_ZSTACK_COMPUTE_VM_10085, "cannot find the image[uuid:%s] in any connected backup storage attached to the zone[uuid:%s]. check below:\n" + - "1. if the backup storage is attached to the zone where the VM[name: %s, uuid:%s] is in\n" + - "2. if the backup storage is in connected status, if not, try reconnecting it", - imageUuid, spec.getVmInventory().getZoneUuid(), spec.getVmInventory().getName(), spec.getVmInventory().getUuid()) + String zoneUuid = spec.getVmInventory().getZoneUuid(); + String zoneBsInfo = getZoneBackupStorageInfo(zoneUuid); + throw new OperationFailureException(operr(ORG_ZSTACK_COMPUTE_VM_10085, + "cannot find the image[name:%s, uuid:%s] in any connected backup storage" + + " attached to the zone[uuid:%s]." + + "\nimage is on backup storage: %s" + + "\nzone attached backup storage: %s" + + "\nsuggestion: attach the image's backup storage to the zone," + + " or sync the image to an attached and connected backup storage.", + imageName, imageUuid, zoneUuid, imageBsInfo, zoneBsInfo) ); } else { - throw new OperationFailureException(operr(ORG_ZSTACK_COMPUTE_VM_10086, "cannot find the image[uuid:%s] in any connected backup storage. check below:\n" + - "1. if the backup storage is attached to the zone where the VM[name: %s, uuid:%s] is in\n" + - "2. if the backup storage is in connected status, if not, try reconnecting it", - imageUuid, spec.getVmInventory().getName(), spec.getVmInventory().getUuid()) + throw new OperationFailureException(operr(ORG_ZSTACK_COMPUTE_VM_10086, + "cannot find the image[name:%s, uuid:%s] in any connected backup storage." + + "\nimage is on backup storage: %s" + + "\nsuggestion: ensure the backup storage is connected," + + " or sync the image to a connected backup storage.", + imageName, imageUuid, imageBsInfo) ); } } @@ -126,13 +140,58 @@ private String findIsoBsUuidInTheZone(final String isoImageUuid, final String zo q.setMaxResults(1); List ret = q.getResultList(); if (ret.isEmpty()) { - throw new OperationFailureException(operr(ORG_ZSTACK_COMPUTE_VM_10087, "no backup storage attached to the zone[uuid:%s] contains the ISO[uuid:%s]", - zoneUuid, isoImageUuid)); + String isoName = Optional.ofNullable((String) Q.New(org.zstack.header.image.ImageVO.class) + .eq(org.zstack.header.image.ImageVO_.uuid, isoImageUuid) + .select(org.zstack.header.image.ImageVO_.name) + .findValue()).orElse(isoImageUuid); + String isoBsInfo = getImageBackupStorageInfo(isoImageUuid); + String zoneBsInfo = getZoneBackupStorageInfo(zoneUuid); + throw new OperationFailureException(operr(ORG_ZSTACK_COMPUTE_VM_10087, + "no backup storage attached to the zone[uuid:%s] contains the ISO[name:%s, uuid:%s]." + + "\nISO is on backup storage: %s" + + "\nzone attached backup storage: %s" + + "\nsuggestion: attach the ISO's backup storage to the zone," + + " or sync the ISO to an attached backup storage.", + zoneUuid, isoName, isoImageUuid, isoBsInfo, zoneBsInfo)); } return ret.get(0); } + @Transactional(readOnly = true) + private String getImageBackupStorageInfo(String imageUuid) { + String sql = "select bs.name, bs.status" + + " from BackupStorageVO bs, ImageBackupStorageRefVO ref" + + " where bs.uuid = ref.backupStorageUuid" + + " and ref.imageUuid = :imageUuid"; + TypedQuery q = dbf.getEntityManager().createQuery(sql, Tuple.class); + q.setParameter("imageUuid", imageUuid); + List tuples = q.getResultList(); + if (tuples.isEmpty()) { + return "none"; + } + return tuples.stream() + .map(t -> String.format("%s(%s)", t.get(0, String.class), t.get(1, BackupStorageStatus.class))) + .collect(Collectors.joining(", ", "[", "]")); + } + + @Transactional(readOnly = true) + private String getZoneBackupStorageInfo(String zoneUuid) { + String sql = "select bs.name, bs.status" + + " from BackupStorageVO bs, BackupStorageZoneRefVO ref" + + " where bs.uuid = ref.backupStorageUuid" + + " and ref.zoneUuid = :zoneUuid"; + TypedQuery q = dbf.getEntityManager().createQuery(sql, Tuple.class); + q.setParameter("zoneUuid", zoneUuid); + List tuples = q.getResultList(); + if (tuples.isEmpty()) { + return "none"; + } + return tuples.stream() + .map(t -> String.format("%s(%s)", t.get(0, String.class), t.get(1, BackupStorageStatus.class))) + .collect(Collectors.joining(", ", "[", "]")); + } + @Override public void run(FlowTrigger trigger, Map data) { VmInstanceSpec spec = (VmInstanceSpec) data.get(VmInstanceConstant.Params.VmInstanceSpec.toString()); diff --git a/conf/i18n/globalErrorCodeMapping/global-error-de-DE.json b/conf/i18n/globalErrorCodeMapping/global-error-de-DE.json index 961c282fcb..491ef97a83 100644 --- a/conf/i18n/globalErrorCodeMapping/global-error-de-DE.json +++ b/conf/i18n/globalErrorCodeMapping/global-error-de-DE.json @@ -3560,7 +3560,10 @@ "ORG_ZSTACK_COMPUTE_VM_10078": "Alle VM[UUID:%s] CD-ROMs haben ISO-Images eingebunden", "ORG_ZSTACK_COMPUTE_VM_10090": "Volume konnte nicht instantiiert werden, da der VM-Host [UUID: %s] und der zugewiesene Primärspeicher [UUID: %s] nicht verbunden sind.", "ORG_ZSTACK_COMPUTE_VM_10088": "Aktueller VM-Status[%s], Virtio-Modifikation erfordert VM-Status[%s]", - "ORG_ZSTACK_COMPUTE_VM_10084": "ISO [UUID:%s] kann in keinem verbundenen Backup-Speicher gefunden werden, der der Zone [UUID:%s] zugeordnet ist. Bitte überprüfen Sie Folgendes:", + "ORG_ZSTACK_COMPUTE_VM_10084": "ISO[Name:%s, UUID:%s] kann in keinem verbundenen Backup-Speicher der Zone[UUID:%s] gefunden werden.\nISO befindet sich auf Backup-Speicher: %s\nZone-Backup-Speicher: %s\nVorschlag: Hängen Sie den Backup-Speicher des ISO an die Zone an, oder stellen Sie sicher, dass der Backup-Speicher verbunden ist.", + "ORG_ZSTACK_COMPUTE_VM_10085": "Image[Name:%s, UUID:%s] kann in keinem verbundenen Backup-Speicher der Zone[UUID:%s] gefunden werden.\nImage befindet sich auf Backup-Speicher: %s\nZone-Backup-Speicher: %s\nVorschlag: Hängen Sie den Backup-Speicher des Image an die Zone an, oder synchronisieren Sie das Image zu einem angehängten und verbundenen Backup-Speicher.", + "ORG_ZSTACK_COMPUTE_VM_10086": "Image[Name:%s, UUID:%s] kann in keinem verbundenen Backup-Speicher gefunden werden.\nImage befindet sich auf Backup-Speicher: %s\nVorschlag: Stellen Sie sicher, dass der Backup-Speicher verbunden ist, oder synchronisieren Sie das Image zu einem verbundenen Backup-Speicher.", + "ORG_ZSTACK_COMPUTE_VM_10087": "Kein Backup-Speicher der Zone[UUID:%s] enthält das ISO[Name:%s, UUID:%s].\nISO befindet sich auf Backup-Speicher: %s\nZone-Backup-Speicher: %s\nVorschlag: Hängen Sie den Backup-Speicher des ISO an die Zone an, oder synchronisieren Sie das ISO zu einem angehängten Backup-Speicher.", "ORG_ZSTACK_COMPUTE_VM_10083": "Keiner der angegebenen Primärspeicher%s ist verfügbar", "ORG_ZSTACK_COMPUTE_VM_10081": "Erstellung basiert auf Image-Cache[uuid:%s, located ps uuids: [%s]], kann nicht woanders erstellt werden.", "ORG_ZSTACK_KVM_HYPERVISOR_10000": "Host-Virtualisierungsinformationen konnten nicht gesammelt werden", diff --git a/conf/i18n/globalErrorCodeMapping/global-error-en_US.json b/conf/i18n/globalErrorCodeMapping/global-error-en_US.json index 5db5a7eec4..b1973d5ae3 100644 --- a/conf/i18n/globalErrorCodeMapping/global-error-en_US.json +++ b/conf/i18n/globalErrorCodeMapping/global-error-en_US.json @@ -3651,7 +3651,10 @@ "ORG_ZSTACK_COMPUTE_VM_10078": "All VM[UUID:%s] CD-ROMs have mounted ISO images", "ORG_ZSTACK_COMPUTE_VM_10090": "Failed to instantiate volume because the VM\u0027s host [UUID: %s] and allocated primary storage [UUID: %s] are not connected.", "ORG_ZSTACK_COMPUTE_VM_10088": "vm current state[%s], modifying virtio requires vm to be in state[%s]", - "ORG_ZSTACK_COMPUTE_VM_10084": "cannot find ISO [UUID:%s] in any connected backup storage associated with the zone [UUID:%s]. Please verify the following:\n1. Ensure the backup storage is attached to the correct zone where the VM [NAME: %s, UUID:%s] is running.\n2. Confirm the backup storage is in an active state; if not, attempt to reconnect it.", + "ORG_ZSTACK_COMPUTE_VM_10084": "cannot find the ISO[name:%s, uuid:%s] in any connected backup storage attached to the zone[uuid:%s].\nISO is on backup storage: %s\nzone attached backup storage: %s\nsuggestion: attach the ISO's backup storage to the zone, or ensure the backup storage is connected.", + "ORG_ZSTACK_COMPUTE_VM_10085": "cannot find the image[name:%s, uuid:%s] in any connected backup storage attached to the zone[uuid:%s].\nimage is on backup storage: %s\nzone attached backup storage: %s\nsuggestion: attach the image's backup storage to the zone, or sync the image to an attached and connected backup storage.", + "ORG_ZSTACK_COMPUTE_VM_10086": "cannot find the image[name:%s, uuid:%s] in any connected backup storage.\nimage is on backup storage: %s\nsuggestion: ensure the backup storage is connected, or sync the image to a connected backup storage.", + "ORG_ZSTACK_COMPUTE_VM_10087": "no backup storage attached to the zone[uuid:%s] contains the ISO[name:%s, uuid:%s].\nISO is on backup storage: %s\nzone attached backup storage: %s\nsuggestion: attach the ISO's backup storage to the zone, or sync the ISO to an attached backup storage.", "ORG_ZSTACK_COMPUTE_VM_10083": "none of the specified primary storage%s are available", "ORG_ZSTACK_COMPUTE_VM_10081": "creation relies on image cache[uuid:%s, located ps uuids: [%s]], cannot create elsewhere.", "ORG_ZSTACK_KVM_HYPERVISOR_10000": "Failed to collect host virtualization information", diff --git a/conf/i18n/globalErrorCodeMapping/global-error-fr-FR.json b/conf/i18n/globalErrorCodeMapping/global-error-fr-FR.json index 724b3610db..8fb5a4fae5 100644 --- a/conf/i18n/globalErrorCodeMapping/global-error-fr-FR.json +++ b/conf/i18n/globalErrorCodeMapping/global-error-fr-FR.json @@ -3650,7 +3650,10 @@ "ORG_ZSTACK_COMPUTE_VM_10078": "tous les CD-ROM de VM[UUID:%s] ont des images ISO montées", "ORG_ZSTACK_COMPUTE_VM_10090": "Échec de l'instanciation du volume car l'hôte de la VM [UUID: %s] et le stockage primaire alloué [UUID: %s] ne sont pas connectés.", "ORG_ZSTACK_COMPUTE_VM_10088": "état actuel de la vm[%s], la modification de virtio nécessite que la vm soit dans l'état[%s]", - "ORG_ZSTACK_COMPUTE_VM_10084": "impossible de trouver ISO [UUID:%s] dans un stockage de sauvegarde connecté associé à la zone [UUID:%s]. Veuillez vérifier ce qui suit:", + "ORG_ZSTACK_COMPUTE_VM_10084": "impossible de trouver l'ISO[nom:%s, uuid:%s] dans un stockage de sauvegarde connecté attaché à la zone[uuid:%s].\nL'ISO se trouve sur le stockage de sauvegarde: %s\nstockage de sauvegarde attaché à la zone: %s\nsuggestion: attachez le stockage de sauvegarde de l'ISO à la zone, ou assurez-vous que le stockage est connecté.", + "ORG_ZSTACK_COMPUTE_VM_10085": "impossible de trouver l'image[nom:%s, uuid:%s] dans un stockage de sauvegarde connecté attaché à la zone[uuid:%s].\nL'image se trouve sur le stockage de sauvegarde: %s\nstockage de sauvegarde attaché à la zone: %s\nsuggestion: attachez le stockage de sauvegarde de l'image à la zone, ou synchronisez l'image vers un stockage attaché et connecté.", + "ORG_ZSTACK_COMPUTE_VM_10086": "impossible de trouver l'image[nom:%s, uuid:%s] dans un stockage de sauvegarde connecté.\nL'image se trouve sur le stockage de sauvegarde: %s\nsuggestion: assurez-vous que le stockage est connecté, ou synchronisez l'image vers un stockage connecté.", + "ORG_ZSTACK_COMPUTE_VM_10087": "aucun stockage de sauvegarde attaché à la zone[uuid:%s] ne contient l'ISO[nom:%s, uuid:%s].\nL'ISO se trouve sur le stockage de sauvegarde: %s\nstockage de sauvegarde attaché à la zone: %s\nsuggestion: attachez le stockage de sauvegarde de l'ISO à la zone, ou synchronisez l'ISO vers un stockage attaché.", "ORG_ZSTACK_COMPUTE_VM_10083": "1. Assurez-vous que le stockage de sauvegarde est attaché à la zone correcte où la VM [NOM: %s, UUID:%s] s'exécute.", "ORG_ZSTACK_COMPUTE_VM_10081": "2. Confirmez que le stockage de sauvegarde est dans un état actif; si ce n'est pas le cas, essayez de le reconnecter.", "ORG_ZSTACK_KVM_HYPERVISOR_10000": "aucun des stockages primaires%s spécifiés n'est disponible", diff --git a/conf/i18n/globalErrorCodeMapping/global-error-id-ID.json b/conf/i18n/globalErrorCodeMapping/global-error-id-ID.json index 116e1993c4..f21cf8430f 100644 --- a/conf/i18n/globalErrorCodeMapping/global-error-id-ID.json +++ b/conf/i18n/globalErrorCodeMapping/global-error-id-ID.json @@ -3650,7 +3650,10 @@ "ORG_ZSTACK_COMPUTE_VM_10078": "Semua CD-ROM VM[UUID:%s] telah memasang gambar ISO", "ORG_ZSTACK_COMPUTE_VM_10090": "Gagal membuat instans volume karena host VM [UUID: %s] dan penyimpanan primer yang dialokasikan [UUID: %s] tidak terhubung.", "ORG_ZSTACK_COMPUTE_VM_10088": "keadaan vm saat ini[%s], mengubah virtio memerlukan vm berada dalam keadaan[%s]", - "ORG_ZSTACK_COMPUTE_VM_10084": "tidak dapat menemukan ISO [UUID:%s] di penyimpanan cadangan terhubung manapun yang terkait dengan zona [UUID:%s]. Harap verifikasi hal berikut:", + "ORG_ZSTACK_COMPUTE_VM_10084": "tidak dapat menemukan ISO[nama:%s, uuid:%s] di penyimpanan cadangan terhubung manapun yang terpasang pada zona[uuid:%s].\nISO berada di penyimpanan cadangan: %s\npenyimpanan cadangan zona: %s\nsaran: pasang penyimpanan cadangan ISO ke zona, atau pastikan penyimpanan cadangan terhubung.", + "ORG_ZSTACK_COMPUTE_VM_10085": "tidak dapat menemukan image[nama:%s, uuid:%s] di penyimpanan cadangan terhubung manapun yang terpasang pada zona[uuid:%s].\nimage berada di penyimpanan cadangan: %s\npenyimpanan cadangan zona: %s\nsaran: pasang penyimpanan cadangan image ke zona, atau sinkronkan image ke penyimpanan cadangan yang terpasang dan terhubung.", + "ORG_ZSTACK_COMPUTE_VM_10086": "tidak dapat menemukan image[nama:%s, uuid:%s] di penyimpanan cadangan terhubung manapun.\nimage berada di penyimpanan cadangan: %s\nsaran: pastikan penyimpanan cadangan terhubung, atau sinkronkan image ke penyimpanan cadangan yang terhubung.", + "ORG_ZSTACK_COMPUTE_VM_10087": "tidak ada penyimpanan cadangan yang terpasang pada zona[uuid:%s] yang berisi ISO[nama:%s, uuid:%s].\nISO berada di penyimpanan cadangan: %s\npenyimpanan cadangan zona: %s\nsaran: pasang penyimpanan cadangan ISO ke zona, atau sinkronkan ISO ke penyimpanan cadangan yang terpasang.", "ORG_ZSTACK_COMPUTE_VM_10083": "1. Pastikan penyimpanan cadangan terpasang pada zona yang benar tempat VM [NAME: %s, UUID:%s] berjalan.", "ORG_ZSTACK_COMPUTE_VM_10081": "2. Konfirmasi penyimpanan cadangan dalam keadaan aktif; jika tidak, coba hubungkan kembali.", "ORG_ZSTACK_KVM_HYPERVISOR_10000": "tidak ada penyimpanan primer yang ditentukan%s tersedia", diff --git a/conf/i18n/globalErrorCodeMapping/global-error-ja-JP.json b/conf/i18n/globalErrorCodeMapping/global-error-ja-JP.json index 5fcf573afb..d39b675759 100644 --- a/conf/i18n/globalErrorCodeMapping/global-error-ja-JP.json +++ b/conf/i18n/globalErrorCodeMapping/global-error-ja-JP.json @@ -3620,7 +3620,10 @@ "ORG_ZSTACK_COMPUTE_VM_10078": "すべての VM[UUID:%s] CD-ROM に ISO イメージがマウントされています", "ORG_ZSTACK_COMPUTE_VM_10090": "VM のホスト [UUID: %s] と割り当てられたプライマリストレージ [UUID: %s] が接続されていないため、ボリュームのインスタンス化に失敗しました", "ORG_ZSTACK_COMPUTE_VM_10088": "VM の現在の状態 [%s]、virtio の変更には VM が状態 [%s] である必要があります", - "ORG_ZSTACK_COMPUTE_VM_10084": "ISO [UUID:%s] が見つかりません - ゾーン [UUID:%s] に関連付けられた接続されたバックアップストレージに存在しません。 以下を確認してください:", + "ORG_ZSTACK_COMPUTE_VM_10084": "ゾーン[uuid:%s]に接続されたバックアップストレージでISO[名前:%s, uuid:%s]が見つかりません。\nISOが存在するバックアップストレージ: %s\nゾーンに接続されたバックアップストレージ: %s\n提案: ISOのバックアップストレージをゾーンに接続するか、バックアップストレージが接続状態であることを確認してください。", + "ORG_ZSTACK_COMPUTE_VM_10085": "ゾーン[uuid:%s]に接続されたバックアップストレージでイメージ[名前:%s, uuid:%s]が見つかりません。\nイメージが存在するバックアップストレージ: %s\nゾーンに接続されたバックアップストレージ: %s\n提案: イメージのバックアップストレージをゾーンに接続するか、イメージを接続済みのバックアップストレージに同期してください。", + "ORG_ZSTACK_COMPUTE_VM_10086": "接続されたバックアップストレージでイメージ[名前:%s, uuid:%s]が見つかりません。\nイメージが存在するバックアップストレージ: %s\n提案: バックアップストレージが接続状態であることを確認するか、イメージを接続済みのバックアップストレージに同期してください。", + "ORG_ZSTACK_COMPUTE_VM_10087": "ゾーン[uuid:%s]に接続されたバックアップストレージにISO[名前:%s, uuid:%s]が含まれていません。\nISOが存在するバックアップストレージ: %s\nゾーンに接続されたバックアップストレージ: %s\n提案: ISOのバックアップストレージをゾーンに接続するか、ISOを接続済みのバックアップストレージに同期してください。", "ORG_ZSTACK_COMPUTE_VM_10083": "1. バックアップストレージが VM [NAME: %s, UUID:%s] が実行されている正しいゾーンに接続されていることを確認します。", "ORG_ZSTACK_COMPUTE_VM_10081": "2. バックアップストレージがアクティブ状態であることを確認します。アクティブでない場合は、再接続を試みてください。", "ORG_ZSTACK_KVM_HYPERVISOR_10000": "指定されたプライマリストレージ %s はいずれも利用できません", diff --git a/conf/i18n/globalErrorCodeMapping/global-error-ko-KR.json b/conf/i18n/globalErrorCodeMapping/global-error-ko-KR.json index f2fac50e88..f7a41aad68 100644 --- a/conf/i18n/globalErrorCodeMapping/global-error-ko-KR.json +++ b/conf/i18n/globalErrorCodeMapping/global-error-ko-KR.json @@ -3560,7 +3560,10 @@ "ORG_ZSTACK_COMPUTE_VM_10078": "모든 VM[UUID:%s] CD-ROM에 ISO 이미지가 마운트되었습니다", "ORG_ZSTACK_COMPUTE_VM_10090": "볼륨을 인스턴스화하지 못했습니다. VM의 호스트 [UUID: %s]와 할당된 기본 스토리지 [UUID: %s]가 연결되어 있지 않습니다.", "ORG_ZSTACK_COMPUTE_VM_10088": "vm 현재 상태[%s], virtio 수정에는 vm이 [%s] 상태여야 합니다", - "ORG_ZSTACK_COMPUTE_VM_10084": "영역 [UUID:%s]에 연결된 백업 스토리지에서 ISO [UUID:%s]을(를) 찾을 수 없습니다. 다음을 확인하십시오:", + "ORG_ZSTACK_COMPUTE_VM_10084": "영역[uuid:%s]에 연결된 백업 스토리지에서 ISO[이름:%s, uuid:%s]을(를) 찾을 수 없습니다.\nISO가 있는 백업 스토리지: %s\n영역에 연결된 백업 스토리지: %s\n제안: ISO의 백업 스토리지를 영역에 연결하거나 백업 스토리지가 연결 상태인지 확인하십시오.", + "ORG_ZSTACK_COMPUTE_VM_10085": "영역[uuid:%s]에 연결된 백업 스토리지에서 이미지[이름:%s, uuid:%s]을(를) 찾을 수 없습니다.\n이미지가 있는 백업 스토리지: %s\n영역에 연결된 백업 스토리지: %s\n제안: 이미지의 백업 스토리지를 영역에 연결하거나 이미지를 연결되고 접속된 백업 스토리지에 동기화하십시오.", + "ORG_ZSTACK_COMPUTE_VM_10086": "연결된 백업 스토리지에서 이미지[이름:%s, uuid:%s]을(를) 찾을 수 없습니다.\n이미지가 있는 백업 스토리지: %s\n제안: 백업 스토리지가 연결 상태인지 확인하거나 이미지를 연결된 백업 스토리지에 동기화하십시오.", + "ORG_ZSTACK_COMPUTE_VM_10087": "영역[uuid:%s]에 연결된 백업 스토리지 중 ISO[이름:%s, uuid:%s]을(를) 포함하는 것이 없습니다.\nISO가 있는 백업 스토리지: %s\n영역에 연결된 백업 스토리지: %s\n제안: ISO의 백업 스토리지를 영역에 연결하거나 ISO를 연결된 백업 스토리지에 동기화하십시오.", "ORG_ZSTACK_COMPUTE_VM_10083": "1. VM [NAME: %s, UUID:%s]이(가) 실행 중인 올바른 영역에 백업 스토리가 연결되어 있는지 확인합니다.", "ORG_ZSTACK_COMPUTE_VM_10081": "2. 백업 스토리지가 활성 상태인지 확인합니다. 그렇지 않으면 재연결을 시도합니다.", "ORG_ZSTACK_KVM_HYPERVISOR_10000": "지정된 기본 스토리지%s가 모두 사용할 수 없습니다", diff --git a/conf/i18n/globalErrorCodeMapping/global-error-ru-RU.json b/conf/i18n/globalErrorCodeMapping/global-error-ru-RU.json index 84edbc0a88..df46575ac4 100644 --- a/conf/i18n/globalErrorCodeMapping/global-error-ru-RU.json +++ b/conf/i18n/globalErrorCodeMapping/global-error-ru-RU.json @@ -3650,7 +3650,10 @@ "ORG_ZSTACK_COMPUTE_VM_10078": "Все CD-ROM VM[UUID:%s] смонтировали образы ISO", "ORG_ZSTACK_COMPUTE_VM_10090": "Не удалось создать том, так как хост VM [UUID: %s] и выделенное основное хранилище [UUID: %s] не подключены.", "ORG_ZSTACK_COMPUTE_VM_10088": "текущее состояние vm[%s], изменение virtio требует, чтобы vm была в состоянии[%s]", - "ORG_ZSTACK_COMPUTE_VM_10084": "не удается найти ISO [UUID:%s] ни в одном подключенном резервном хранилище, связанном с зоной [UUID:%s]. Пожалуйста, проверьте следующее:", + "ORG_ZSTACK_COMPUTE_VM_10084": "не удается найти ISO[имя:%s, uuid:%s] ни в одном подключенном резервном хранилище зоны[uuid:%s].\nISO находится в резервном хранилище: %s\nрезервные хранилища зоны: %s\nрекомендация: подключите резервное хранилище ISO к зоне или убедитесь, что хранилище подключено.", + "ORG_ZSTACK_COMPUTE_VM_10085": "не удается найти образ[имя:%s, uuid:%s] ни в одном подключенном резервном хранилище зоны[uuid:%s].\nобраз находится в резервном хранилище: %s\nрезервные хранилища зоны: %s\nрекомендация: подключите резервное хранилище образа к зоне или синхронизируйте образ в подключенное хранилище.", + "ORG_ZSTACK_COMPUTE_VM_10086": "не удается найти образ[имя:%s, uuid:%s] ни в одном подключенном резервном хранилище.\nобраз находится в резервном хранилище: %s\nрекомендация: убедитесь, что хранилище подключено, или синхронизируйте образ в подключенное хранилище.", + "ORG_ZSTACK_COMPUTE_VM_10087": "ни одно резервное хранилище зоны[uuid:%s] не содержит ISO[имя:%s, uuid:%s].\nISO находится в резервном хранилище: %s\nрезервные хранилища зоны: %s\nрекомендация: подключите резервное хранилище ISO к зоне или синхронизируйте ISO в подключенное хранилище.", "ORG_ZSTACK_COMPUTE_VM_10083": "1. Убедитесь, что резервное хранилище подключено к правильной зоне, где запущена VM [NAME: %s, UUID:%s].", "ORG_ZSTACK_COMPUTE_VM_10081": "2. Подтвердите, что резервное хранилище находится в активном состоянии; если нет, попытайтесь переподключить его.", "ORG_ZSTACK_KVM_HYPERVISOR_10000": "ни одно из указанных основных хранилищ%s не доступно", diff --git a/conf/i18n/globalErrorCodeMapping/global-error-th-TH.json b/conf/i18n/globalErrorCodeMapping/global-error-th-TH.json index eb8c392979..7bada34c08 100644 --- a/conf/i18n/globalErrorCodeMapping/global-error-th-TH.json +++ b/conf/i18n/globalErrorCodeMapping/global-error-th-TH.json @@ -3650,7 +3650,10 @@ "ORG_ZSTACK_COMPUTE_VM_10078": "CD-ROM ทั้งหมดของ VM[UUID:%s] ได้ติดตั้ง ISO images แล้ว", "ORG_ZSTACK_COMPUTE_VM_10090": "สร้าง volume ไม่สำเร็จเนื่องจากโฮสต์ของ VM [UUID: %s] และ primary storage ที่จัดสรร [UUID: %s] ไม่ได้เชื่อมต่อกัน", "ORG_ZSTACK_COMPUTE_VM_10088": "สถานะปัจจุบันของ vm[%s] การแก้ไข virtio ต้องการให้ vm อยู่ในสถานะ[%s]", - "ORG_ZSTACK_COMPUTE_VM_10084": "ไม่พบ ISO [UUID:%s] ใน backup storage ที่เชื่อมต่อใดๆ ที่เกี่ยวข้องกับโซน [UUID:%s] โปรดตรวจสอบดังนี้:", + "ORG_ZSTACK_COMPUTE_VM_10084": "ไม่พบ ISO[ชื่อ:%s, uuid:%s] ใน backup storage ที่เชื่อมต่อใดๆ ที่แนบกับโซน[uuid:%s]\nISO อยู่บน backup storage: %s\nbackup storage ที่แนบกับโซน: %s\nคำแนะนำ: แนบ backup storage ของ ISO เข้ากับโซน หรือตรวจสอบว่า backup storage เชื่อมต่ออยู่", + "ORG_ZSTACK_COMPUTE_VM_10085": "ไม่พบอิมเมจ[ชื่อ:%s, uuid:%s] ใน backup storage ที่เชื่อมต่อใดๆ ที่แนบกับโซน[uuid:%s]\nอิมเมจอยู่บน backup storage: %s\nbackup storage ที่แนบกับโซน: %s\nคำแนะนำ: แนบ backup storage ของอิมเมจเข้ากับโซน หรือซิงค์อิมเมจไปยัง backup storage ที่แนบและเชื่อมต่อแล้ว", + "ORG_ZSTACK_COMPUTE_VM_10086": "ไม่พบอิมเมจ[ชื่อ:%s, uuid:%s] ใน backup storage ที่เชื่อมต่อใดๆ\nอิมเมจอยู่บน backup storage: %s\nคำแนะนำ: ตรวจสอบว่า backup storage เชื่อมต่ออยู่ หรือซิงค์อิมเมจไปยัง backup storage ที่เชื่อมต่อแล้ว", + "ORG_ZSTACK_COMPUTE_VM_10087": "ไม่มี backup storage ที่แนบกับโซน[uuid:%s] ที่มี ISO[ชื่อ:%s, uuid:%s]\nISO อยู่บน backup storage: %s\nbackup storage ที่แนบกับโซน: %s\nคำแนะนำ: แนบ backup storage ของ ISO เข้ากับโซน หรือซิงค์ ISO ไปยัง backup storage ที่แนบแล้ว", "ORG_ZSTACK_COMPUTE_VM_10083": "1. ตรวจสอบว่า backup storage ติดตั้งอยู่ในโซนที่ถูกต้องที่ VM [NAME: %s, UUID:%s] ทำงานอยู่", "ORG_ZSTACK_COMPUTE_VM_10081": "2. ยืนยันว่า backup storage อยู่ในสถานะพร้อมใช้งาน หากไม่ใช่ ให้ลองเชื่อมต่อใหม่", "ORG_ZSTACK_KVM_HYPERVISOR_10000": "primary storage ที่ระบุไม่มีพร้อมใช้งานเลย", diff --git a/conf/i18n/globalErrorCodeMapping/global-error-zh_CN.json b/conf/i18n/globalErrorCodeMapping/global-error-zh_CN.json index 100589567d..52d1bab943 100644 --- a/conf/i18n/globalErrorCodeMapping/global-error-zh_CN.json +++ b/conf/i18n/globalErrorCodeMapping/global-error-zh_CN.json @@ -3651,7 +3651,10 @@ "ORG_ZSTACK_COMPUTE_VM_10078": "所有 vm[uuid:%s] 的 CD-ROM 已挂载 ISO 文件", "ORG_ZSTACK_COMPUTE_VM_10090": "失败Instantiate卷。因为vm的主机[uuid:%s]和分配的主要存储[uuid:%s]未连接。", "ORG_ZSTACK_COMPUTE_VM_10088": "vm 当前状态[%s],修改virtio 需要vm 状态为[%s]", - "ORG_ZSTACK_COMPUTE_VM_10084": "无法在任何连接的备份存储中找到 ISO[uuid:%s],该备份存储已连接至zone[uuid:%s]。请检查以下内容:\n1. 备份存储是否已连接至虚拟机[name: %s, uuid:%s]运行所在的zone\n2. 如果备份存储处于断开状态,请尝试重新连接", + "ORG_ZSTACK_COMPUTE_VM_10084": "无法在区域[uuid:%s]已连接的备份存储中找到ISO[名称:%s, uuid:%s]。\nISO所在备份存储: %s\n区域已挂载备份存储: %s\n建议: 将ISO所在的备份存储挂载到该区域,或确保备份存储处于已连接状态。", + "ORG_ZSTACK_COMPUTE_VM_10085": "无法在区域[uuid:%s]已连接的备份存储中找到镜像[名称:%s, uuid:%s]。\n镜像所在备份存储: %s\n区域已挂载备份存储: %s\n建议: 将镜像所在的备份存储挂载到该区域,或将镜像同步到已挂载且已连接的备份存储。", + "ORG_ZSTACK_COMPUTE_VM_10086": "无法在任何已连接的备份存储中找到镜像[名称:%s, uuid:%s]。\n镜像所在备份存储: %s\n建议: 确保备份存储处于已连接状态,或将镜像同步到已连接的备份存储。", + "ORG_ZSTACK_COMPUTE_VM_10087": "区域[uuid:%s]已挂载的备份存储中没有包含ISO[名称:%s, uuid:%s]。\nISO所在备份存储: %s\n区域已挂载备份存储: %s\n建议: 将ISO所在的备份存储挂载到该区域,或将ISO同步到已挂载的备份存储。", "ORG_ZSTACK_COMPUTE_VM_10083": "指定的主要存储中没有任何一个是可用的%s", "ORG_ZSTACK_COMPUTE_VM_10081": "创建依赖于镜像缓存[uuid:%s, 位置ps uuids: [%s]], 无法在其他地方创建。", "ORG_ZSTACK_KVM_HYPERVISOR_10000": "失败收集主机虚拟化信息", diff --git a/conf/i18n/globalErrorCodeMapping/global-error-zh_TW.json b/conf/i18n/globalErrorCodeMapping/global-error-zh_TW.json index 4ed6955fad..e5c5a58219 100644 --- a/conf/i18n/globalErrorCodeMapping/global-error-zh_TW.json +++ b/conf/i18n/globalErrorCodeMapping/global-error-zh_TW.json @@ -3650,7 +3650,10 @@ "ORG_ZSTACK_COMPUTE_VM_10078": "所有 vm[uuid:%s] 的 CD-ROM 已挂载 ISO 文件", "ORG_ZSTACK_COMPUTE_VM_10090": "失敗Instantiate卷。因为vm的主機[uuid:%s]和分配的主要儲儲[uuid:%s]未連接。", "ORG_ZSTACK_COMPUTE_VM_10088": "vm 當前状态[%s],修改virtio 需要vm 状态为[%s]", - "ORG_ZSTACK_COMPUTE_VM_10084": "無法在任何連接的备份儲儲中找到 ISO[uuid:%s],該备份儲儲已連接至zone[uuid:%s]。請检查以下内容:\n1. 备份儲儲是否已連接至虚拟機[name: %s, uuid:%s]運行所在的zone\n2. 如果备份儲儲处於斷開状态,請嘗試重新連接", + "ORG_ZSTACK_COMPUTE_VM_10084": "無法在區域[uuid:%s]已連接的備份存儲中找到ISO[名稱:%s, uuid:%s]。\nISO所在備份存儲: %s\n區域已掛載備份存儲: %s\n建議: 將ISO所在的備份存儲掛載到該區域,或確保備份存儲處於已連接狀態。", + "ORG_ZSTACK_COMPUTE_VM_10085": "無法在區域[uuid:%s]已連接的備份存儲中找到鏡像[名稱:%s, uuid:%s]。\n鏡像所在備份存儲: %s\n區域已掛載備份存儲: %s\n建議: 將鏡像所在的備份存儲掛載到該區域,或將鏡像同步到已掛載且已連接的備份存儲。", + "ORG_ZSTACK_COMPUTE_VM_10086": "無法在任何已連接的備份存儲中找到鏡像[名稱:%s, uuid:%s]。\n鏡像所在備份存儲: %s\n建議: 確保備份存儲處於已連接狀態,或將鏡像同步到已連接的備份存儲。", + "ORG_ZSTACK_COMPUTE_VM_10087": "區域[uuid:%s]已掛載的備份存儲中沒有包含ISO[名稱:%s, uuid:%s]。\nISO所在備份存儲: %s\n區域已掛載備份存儲: %s\n建議: 將ISO所在的備份存儲掛載到該區域,或將ISO同步到已掛載的備份存儲。", "ORG_ZSTACK_COMPUTE_VM_10083": "指定的主要儲儲中没有任何一個是可用的%s", "ORG_ZSTACK_COMPUTE_VM_10081": "創建依赖於镜像缓儲[uuid:%s, 位置ps uuids: [%s]], 無法在其他地方創建。", "ORG_ZSTACK_KVM_HYPERVISOR_10000": "失敗收叢主機虚拟化信息",