diff --git a/locales/en/plugin__forklift-console-plugin.json b/locales/en/plugin__forklift-console-plugin.json index 886c96644..35df98f17 100644 --- a/locales/en/plugin__forklift-console-plugin.json +++ b/locales/en/plugin__forklift-console-plugin.json @@ -348,6 +348,7 @@ "Create with form": "Create with form", "Create with YAML": "Create with YAML", "Created ": "Created ", + "Created {{vmName}}": "Created {{vmName}}", "Created at": "Created at", "Creating a network mapping": "Creating a network mapping", "Creating a provider": "Creating a provider", @@ -400,6 +401,7 @@ "Determines the frequency with which the system checks the status of snapshot creation or removal during oVirt warm migration. The default value is 10 seconds.": "Determines the frequency with which the system checks the status of snapshot creation or removal during oVirt warm migration. The default value is 10 seconds.", "Disabled": "Disabled", "Disabling shared disk migration requires VDDK to be configured on the VMware provider. Without VDDK, the migration will stall. Either enable VDDK on the provider or keep shared disk migration enabled.": "Disabling shared disk migration requires VDDK to be configured on the VMware provider. Without VDDK, the migration will stall. Either enable VDDK on the provider or keep shared disk migration enabled.", + "Disk allocation": "Disk allocation", "Disk counter": "Disk counter", "Disk decryption": "Disk decryption", "Disk decryption passphrases": "Disk decryption passphrases", @@ -407,6 +409,7 @@ "Disk transfer": "Disk transfer", "Display name": "Display name", "Distribution": "Distribution", + "Do not access this VM": "Do not access this VM", "Do not migrate shared disks": "Do not migrate shared disks", "Do not preserve static IPs": "Do not preserve static IPs", "Documentation": "Documentation", @@ -662,6 +665,7 @@ "If your source provider is VMware, select a Source datastore and a Target storage class": "If your source provider is VMware, select a Source datastore and a Target storage class", "Ignore network": "Ignore network", "Image": "Image", + "Image conversion": "Image conversion", "Impacted resources": "Impacted resources", "In": "In", "In some cases, a Raw Copy mode can be used as a fallback. This performs a block-level, byte-for-byte copy of the source disk. It is useful for complex disk layouts or when standard methods fail. Use this with caution as it bypasses filesystem optimizations and should only be used if you fully understand its implications.": "In some cases, a Raw Copy mode can be used as a fallback. This performs a block-level, byte-for-byte copy of the source disk. It is useful for complex disk layouts or when standard methods fail. Use this with caution as it bypasses filesystem optimizations and should only be used if you fully understand its implications.", @@ -671,6 +675,7 @@ "Infinidat Infinibox": "Infinidat Infinibox", "Information concerns": "Information concerns", "Inherit plan wide setting": "Inherit plan wide setting", + "Initialize": "Initialize", "Insecure migration means that the transferred data is sent over an insecure connection and potentially sensitive data could be exposed.": "Insecure migration means that the transferred data is sent over an insecure connection and potentially sensitive data could be exposed.", "Inspect {{count}} VM_one": "Inspect {{count}} VM", "Inspect {{count}} VM_other": "Inspect {{count}} VMs", @@ -1032,6 +1037,8 @@ "Pods not found": "Pods not found", "Post-migration hook": "Post-migration hook", "Post-migration hook job template": "Post-migration hook job template", + "Post-migration setup": "Post-migration setup", + "PostMigrationSetup": "PostMigrationSetup", "Power": "Power", "Powered off": "Powered off", "Powered on": "Powered on", @@ -1039,6 +1046,7 @@ "Pre-migration hook job template": "Pre-migration hook job template", "Precopy interval": "Precopy interval", "Preferred during scheduling": "Preferred during scheduling", + "Preflight inspection": "Preflight inspection", "Prerequisites": "Prerequisites", "Preserve CPU model": "Preserve CPU model", "Preserve static IPs": "Preserve static IPs", @@ -1250,6 +1258,7 @@ "SMB share URL is required": "SMB share URL is required", "SMB username": "SMB username", "SMB username is required when using different credentials": "SMB username is required when using different credentials", + "Snapshot consolidation": "Snapshot consolidation", "Snapshot polling interval": "Snapshot polling interval", "Some fields may not be supported.": "Some fields may not be supported.", "Source and target providers": "Source and target providers", @@ -1523,6 +1532,7 @@ "Virtual Disk Development Kit (VDDK) container init image path. The path must be empty or a valid container image path in the format of <2>registry_route_or_server_path/vddk:‹tag›.<4><5>To accelerate migration and reduce the risk of a plan failing, it is strongly recommended to specify a VDDK init image.": "Virtual Disk Development Kit (VDDK) container init image path. The path must be empty or a valid container image path in the format of <2>registry_route_or_server_path/vddk:‹tag›.<4><5>To accelerate migration and reduce the risk of a plan failing, it is strongly recommended to specify a VDDK init image.", "Virtual Disk Development Kit (VDDK) setup": "Virtual Disk Development Kit (VDDK) setup", "Virtual machine": "Virtual machine", + "Virtual machine creation": "Virtual machine creation", "Virtual machines": "Virtual machines", "Virtualization platform from Red Hat. Currently in maintenance for existing customers only.": "Virtualization platform from Red Hat. Currently in maintenance for existing customers only.", "Virtualization platform from VMware": "Virtualization platform from VMware", @@ -1588,6 +1598,7 @@ "Why don’t my VMs function correctly after a successful migration?": "Why don’t my VMs function correctly after a successful migration?", "Why is my warm migration stuck?": "Why is my warm migration stuck?", "Windows": "Windows", + "Windows VM is installing drivers and configuring network. Multiple reboots are expected.": "Windows VM is installing drivers and configuring network. Multiple reboots are expected.", "With a cold migration, we will move the shut down VM between hosts.": "With a cold migration, we will move the shut down VM between hosts.", "With a conversion migration, we will convert a virtual machine to a different architecture.": "With a conversion migration, we will convert a virtual machine to a different architecture.", "With a live migration, we will move an active virtual machine without downtime.": "With a live migration, we will move an active virtual machine without downtime.", diff --git a/locales/es/plugin__forklift-console-plugin.json b/locales/es/plugin__forklift-console-plugin.json index 58bd0c281..9db294a34 100644 --- a/locales/es/plugin__forklift-console-plugin.json +++ b/locales/es/plugin__forklift-console-plugin.json @@ -354,6 +354,7 @@ "Create with form": "Crear con formulario", "Create with YAML": "Crear con YAML", "Created ": "Creado ", + "Created {{vmName}}": "Created {{vmName}}", "Created at": "Creado en", "Creating a network mapping": "Creación de una asociación de red", "Creating a provider": "Creando un proveedor", @@ -406,6 +407,7 @@ "Determines the frequency with which the system checks the status of snapshot creation or removal during oVirt warm migration. The default value is 10 seconds.": "Determina la frecuencia con la que el sistema comprueba el estado de la creación o eliminación de instantáneas durante la migración en caliente de oVirt. El valor predeterminado es 10 segundos.", "Disabled": "Desactivado", "Disabling shared disk migration requires VDDK to be configured on the VMware provider. Without VDDK, the migration will stall. Either enable VDDK on the provider or keep shared disk migration enabled.": "Para deshabilitar la migración de discos compartidos, es necesario configurar VDDK en el proveedor de VMware. Sin VDDK, la migración se detendrá. Habilite VDDK en el proveedor o mantenga habilitada la migración de discos compartidos.", + "Disk allocation": "Disk allocation", "Disk counter": "Contador de discos", "Disk decryption": "Descifrado de disco", "Disk decryption passphrases": "Frases de paso para descifrado de disco", @@ -413,6 +415,7 @@ "Disk transfer": "Transferencia de disco", "Display name": "Nombre para mostrar", "Distribution": "Distribución", + "Do not access this VM": "Do not access this VM", "Do not migrate shared disks": "No migrar discos compartidos", "Do not preserve static IPs": "No conservar direcciones IP estáticas", "Documentation": "Documentación", @@ -669,6 +672,7 @@ "If your source provider is VMware, select a Source datastore and a Target storage class": "Si su proveedor de origen es VMware, seleccione un almacén de datos de origen y una clase de almacenamiento de destino", "Ignore network": "Ignorar la red", "Image": "Imagen", + "Image conversion": "Image conversion", "Impacted resources": "Recursos afectados", "In": "En", "In some cases, a Raw Copy mode can be used as a fallback. This performs a block-level, byte-for-byte copy of the source disk. It is useful for complex disk layouts or when standard methods fail. Use this with caution as it bypasses filesystem optimizations and should only be used if you fully understand its implications.": "En algunos casos, se puede usar el modo Copia sin formato como alternativa. Este modo realiza una copia a nivel de bloque, byte a byte, del disco de origen. Es útil para diseños de disco complejos o cuando fallan los métodos estándar. Úselo con precaución, ya que omite las optimizaciones del sistema de archivos y solo debe usarse si comprende completamente sus implicaciones.", @@ -678,6 +682,7 @@ "Infinidat Infinibox": "Infinidat Infinibox", "Information concerns": "Preocupaciones sobre la información", "Inherit plan wide setting": "Heredar la configuración de todo el plan", + "Initialize": "Initialize", "Insecure migration means that the transferred data is sent over an insecure connection and potentially sensitive data could be exposed.": "Una migración insegura significa que los datos transferidos se envían a través de una conexión insegura y es posible que se expongan datos confidenciales.", "Inspect {{count}} VM_one": "Inspeccionar{{count}} VM_one", "Inspect {{count}} VM_many": "Inspect {{count}} VM", @@ -1040,6 +1045,8 @@ "Pods not found": "Pods no encontrados", "Post-migration hook": "Hook posterior a la migración", "Post-migration hook job template": "Plantilla de trabajo de hook posterior a la migración", + "Post-migration setup": "Post-migration setup", + "PostMigrationSetup": "PostMigrationSetup", "Power": "Encendido", "Powered off": "Apagado", "Powered on": "Encendido", @@ -1047,6 +1054,7 @@ "Pre-migration hook job template": "Plantilla de trabajo de hook previo a la migración", "Precopy interval": "Intervalo de precopia", "Preferred during scheduling": "Preferido durante la programación", + "Preflight inspection": "Preflight inspection", "Prerequisites": "Requisitos previos", "Preserve CPU model": "Conservar el modelo de CPU", "Preserve static IPs": "Conservar direcciones IP estáticas", @@ -1258,6 +1266,7 @@ "SMB share URL is required": "Se requiere la URL para compartir SMB", "SMB username": "Nombre de usuario de SMB", "SMB username is required when using different credentials": "Se requiere un nombre de usuario SMB cuando se utilizan credenciales diferentes", + "Snapshot consolidation": "Snapshot consolidation", "Snapshot polling interval": "Intervalo de sondeo de instantáneas", "Some fields may not be supported.": "Es posible que algunos campos no sean compatibles.", "Source and target providers": "Proveedores de origen y destino", @@ -1531,6 +1540,7 @@ "Virtual Disk Development Kit (VDDK) container init image path. The path must be empty or a valid container image path in the format of <2>registry_route_or_server_path/vddk:‹tag›.<4><5>To accelerate migration and reduce the risk of a plan failing, it is strongly recommended to specify a VDDK init image.": "Ruta de la imagen de inicialización del contenedor de Virtual Disk Development Kit (VDDK). La ruta debe estar vacía o ser una ruta de imagen de contenedor válida con el formato<2> registry_route_or_server_path/vddk:‹tag› .<4><5>. Para acelerar la migración y reducir el riesgo de que un plan falle, se recomienda enfáticamente especificar una imagen de inicialización de VDDK.", "Virtual Disk Development Kit (VDDK) setup": "Configuración de Virtual Disk Development Kit (VDDK)", "Virtual machine": "Máquina virtual", + "Virtual machine creation": "Virtual machine creation", "Virtual machines": "Máquinas virtuales", "Virtualization platform from Red Hat. Currently in maintenance for existing customers only.": "Plataforma de virtualización de Red Hat. Actualmente en mantenimiento, solo para clientes existentes.", "Virtualization platform from VMware": "Plataforma de virtualización de VMware", @@ -1596,6 +1606,7 @@ "Why don’t my VMs function correctly after a successful migration?": "¿Por qué mis máquinas virtuales no funcionan correctamente después de una migración exitosa?", "Why is my warm migration stuck?": "¿Por qué está estancada mi migración en caliente?", "Windows": "Windows", + "Windows VM is installing drivers and configuring network. Multiple reboots are expected.": "Windows VM is installing drivers and configuring network. Multiple reboots are expected.", "With a cold migration, we will move the shut down VM between hosts.": "Con una migración en frío, moveremos la máquina virtual apagada entre hosts.", "With a conversion migration, we will convert a virtual machine to a different architecture.": "Con una migración de conversión, convertiremos una máquina virtual a una arquitectura diferente.", "With a live migration, we will move an active virtual machine without downtime.": "Con una migración en vivo, moveremos una máquina virtual activa sin tiempo de inactividad.", diff --git a/locales/fr/plugin__forklift-console-plugin.json b/locales/fr/plugin__forklift-console-plugin.json index b3ef5696d..077a1eb96 100644 --- a/locales/fr/plugin__forklift-console-plugin.json +++ b/locales/fr/plugin__forklift-console-plugin.json @@ -354,6 +354,7 @@ "Create with form": "Créer avec un formulaire", "Create with YAML": "Créer avec YAML", "Created ": "Créé ", + "Created {{vmName}}": "Created {{vmName}}", "Created at": "Heure de création", "Creating a network mapping": "Création d'un mappage de réseau", "Creating a provider": "Création d'un fournisseur", @@ -406,6 +407,7 @@ "Determines the frequency with which the system checks the status of snapshot creation or removal during oVirt warm migration. The default value is 10 seconds.": "Détermine la fréquence à laquelle le système vérifie l'état de création ou de suppression des snapshots lors d'une migration à chaud oVirt. La valeur par défaut est de 10 secondes.", "Disabled": "Désactivé", "Disabling shared disk migration requires VDDK to be configured on the VMware provider. Without VDDK, the migration will stall. Either enable VDDK on the provider or keep shared disk migration enabled.": "La désactivation de la migration des disques partagés nécessite la configuration de VDDK sur le fournisseur VMware. Sans VDDK, la migration sera interrompue. Activez VDDK sur le fournisseur ou laissez la migration des disques partagés activée.", + "Disk allocation": "Disk allocation", "Disk counter": "Compteur de disque", "Disk decryption": "Déchiffrement du disque", "Disk decryption passphrases": "Phrases de passe de décryptage de disque", @@ -413,6 +415,7 @@ "Disk transfer": "Transfert de disque", "Display name": "Nom complet", "Distribution": "Distribution", + "Do not access this VM": "Do not access this VM", "Do not migrate shared disks": "Ne migrez pas les disques partagés", "Do not preserve static IPs": "Ne conservez pas les adresses IP statiques.", "Documentation": "Documentation", @@ -669,6 +672,7 @@ "If your source provider is VMware, select a Source datastore and a Target storage class": "Si votre fournisseur de données est VMware, sélectionnez une banque de données source et une classe de stockage cible.", "Ignore network": "Ignorer le réseau", "Image": "Image", + "Image conversion": "Image conversion", "Impacted resources": "Ressources impactées", "In": "Dans", "In some cases, a Raw Copy mode can be used as a fallback. This performs a block-level, byte-for-byte copy of the source disk. It is useful for complex disk layouts or when standard methods fail. Use this with caution as it bypasses filesystem optimizations and should only be used if you fully understand its implications.": "Dans certains cas, le mode de copie brute peut servir de solution de repli. Il effectue une copie bloc par bloc, octet par octet, du disque source. Il est utile pour les configurations de disque complexes ou lorsque les méthodes standard échouent. Son utilisation requiert une grande prudence, car il désactive les optimisations du système de fichiers et ne doit être envisagé que si vous en comprenez parfaitement les conséquences.", @@ -678,6 +682,7 @@ "Infinidat Infinibox": "Infinidat Infinibox", "Information concerns": "Problèmes d'information", "Inherit plan wide setting": "Paramètres du plan hérité", + "Initialize": "Initialize", "Insecure migration means that the transferred data is sent over an insecure connection and potentially sensitive data could be exposed.": "Une migration non sécurisée signifie que les données transférées sont envoyées via une connexion non sécurisée et que des données potentiellement sensibles pourraient être exposées.", "Inspect {{count}} VM_one": "Inspecter{{count}} VM_one", "Inspect {{count}} VM_many": "Inspect {{count}} VM", @@ -1040,6 +1045,8 @@ "Pods not found": "Pods introuvables", "Post-migration hook": "Post-migration hook", "Post-migration hook job template": "Modèle de tâche de hook post-migration", + "Post-migration setup": "Post-migration setup", + "PostMigrationSetup": "PostMigrationSetup", "Power": "Power", "Powered off": "Mise hors tension", "Powered on": "Allumé", @@ -1047,6 +1054,7 @@ "Pre-migration hook job template": "Modèle de tâche de pré-migration", "Precopy interval": "Intervalle de précopie", "Preferred during scheduling": "Préféré lors de la planification", + "Preflight inspection": "Preflight inspection", "Prerequisites": "Prérequis", "Preserve CPU model": "Conserver le modèle du processeur", "Preserve static IPs": "Conserver les adresses IP statiques", @@ -1258,6 +1266,7 @@ "SMB share URL is required": "L'URL de partage SMB est requise.", "SMB username": "Nom d'utilisateur SMB", "SMB username is required when using different credentials": "Un nom d'utilisateur SMB est requis lors de l'utilisation d'identifiants différents.", + "Snapshot consolidation": "Snapshot consolidation", "Snapshot polling interval": "Intervalle d'interrogation instantané", "Some fields may not be supported.": "Certains champs peuvent ne pas être pris en charge.", "Source and target providers": "Fournisseurs sources et cibles", @@ -1531,6 +1540,7 @@ "Virtual Disk Development Kit (VDDK) container init image path. The path must be empty or a valid container image path in the format of <2>registry_route_or_server_path/vddk:‹tag›.<4><5>To accelerate migration and reduce the risk of a plan failing, it is strongly recommended to specify a VDDK init image.": "Chemin d'accès à l'image d'initialisation du conteneur VDDK (Virtual Disk Development Kit). Ce chemin doit être vide ou correspondre à un chemin d'accès valide à une image de conteneur, au format suivant\u00a0:<2> registry_route_or_server_path/vddk:‹tag› .<4><5> Pour accélérer la migration et réduire le risque d'échec d'un plan, il est fortement recommandé de spécifier une image d'initialisation VDDK.", "Virtual Disk Development Kit (VDDK) setup": "Configuration du kit de développement de disque virtuel (VDDK)", "Virtual machine": "Machine virtuelle", + "Virtual machine creation": "Virtual machine creation", "Virtual machines": "Machines virtuelles", "Virtualization platform from Red Hat. Currently in maintenance for existing customers only.": "Plateforme de virtualisation de Red Hat. Actuellement en maintenance uniquement pour les clients existants.", "Virtualization platform from VMware": "Plateforme de virtualisation de VMware", @@ -1596,6 +1606,7 @@ "Why don’t my VMs function correctly after a successful migration?": "Pourquoi mes machines virtuelles ne fonctionnent-elles pas correctement après une migration réussie\u00a0?", "Why is my warm migration stuck?": "Pourquoi ma migration à chaud est-elle bloquée\u00a0?", "Windows": "Windows", + "Windows VM is installing drivers and configuring network. Multiple reboots are expected.": "Windows VM is installing drivers and configuring network. Multiple reboots are expected.", "With a cold migration, we will move the shut down VM between hosts.": "Lors d'une migration à froid, nous déplacerons la machine virtuelle arrêtée entre les hôtes.", "With a conversion migration, we will convert a virtual machine to a different architecture.": "Lors d'une migration par conversion, nous convertissons une machine virtuelle vers une architecture différente.", "With a live migration, we will move an active virtual machine without downtime.": "Grâce à la migration à chaud, nous déplacerons une machine virtuelle active sans interruption de service.", diff --git a/locales/ja/plugin__forklift-console-plugin.json b/locales/ja/plugin__forklift-console-plugin.json index c3806b0e1..fe3a97bf5 100644 --- a/locales/ja/plugin__forklift-console-plugin.json +++ b/locales/ja/plugin__forklift-console-plugin.json @@ -347,6 +347,7 @@ "Create with form": "フォームで作成", "Create with YAML": "YAML で作成", "Created ": "作成済み: ", + "Created {{vmName}}": "Created {{vmName}}", "Created at": "作成日時", "Creating a network mapping": "ネットワークマッピングの作成", "Creating a provider": "プロバイダーの作成", @@ -399,6 +400,7 @@ "Determines the frequency with which the system checks the status of snapshot creation or removal during oVirt warm migration. The default value is 10 seconds.": "oVirt ウォームマイグレーション中にシステムがスナップショットの作成または削除のステータスを確認する頻度を指定します。デフォルト値は 10 秒です。", "Disabled": "無効", "Disabling shared disk migration requires VDDK to be configured on the VMware provider. Without VDDK, the migration will stall. Either enable VDDK on the provider or keep shared disk migration enabled.": "共有ディスクの移行を無効にするには、VMware プロバイダーで VDDK が設定されている必要があります。VDDK がない場合、移行が停止します。プロバイダーで VDDK を有効にするか、共有ディスクの移行を有効のままにしてください。", + "Disk allocation": "Disk allocation", "Disk counter": "ディスクカウンター", "Disk decryption": "ディスク復号", "Disk decryption passphrases": "ディスク復号パスフレーズ", @@ -406,6 +408,7 @@ "Disk transfer": "ディスク転送", "Display name": "表示名", "Distribution": "ディストリビューション", + "Do not access this VM": "Do not access this VM", "Do not migrate shared disks": "共有ディスクを移行しない", "Do not preserve static IPs": "静的 IP を保持しない", "Documentation": "ドキュメント", @@ -661,6 +664,7 @@ "If your source provider is VMware, select a Source datastore and a Target storage class": "ソースプロバイダーが VMware の場合は、ソースデータストアとターゲットストレージクラスを選択します", "Ignore network": "ネットワークを無視する", "Image": "イメージ", + "Image conversion": "Image conversion", "Impacted resources": "影響を受けるリソース", "In": "含まれる", "In some cases, a Raw Copy mode can be used as a fallback. This performs a block-level, byte-for-byte copy of the source disk. It is useful for complex disk layouts or when standard methods fail. Use this with caution as it bypasses filesystem optimizations and should only be used if you fully understand its implications.": "場合によっては、Raw コピーモードをフォールバックとして使用できます。これは、ソースディスクのブロックレベルでバイト単位のコピーを実行します。複雑なディスクレイアウトの場合や、標準的な方法がうまくいかない場合に便利です。このモードはファイルシステムの最適化を省略するため、その影響を十分に理解している場合にのみ慎重に使用してください。", @@ -670,6 +674,7 @@ "Infinidat Infinibox": "Infinidat Infinibox", "Information concerns": "情報レベルの懸念事項", "Inherit plan wide setting": "計画全体の設定を継承", + "Initialize": "Initialize", "Insecure migration means that the transferred data is sent over an insecure connection and potentially sensitive data could be exposed.": "非セキュアな移行では、転送データが非セキュアな接続を介して送信され、機密データが漏洩するおそれがあります。", "Inspect {{count}} VM_one": "{{count}} 台の仮想マシンの検査", "Inspect {{count}} VM_other": "{{count}} 台の仮想マシンの検査", @@ -1031,6 +1036,8 @@ "Pods not found": "Pod が見つかりません", "Post-migration hook": "移行後フック", "Post-migration hook job template": "移行後フックのジョブテンプレート", + "Post-migration setup": "Post-migration setup", + "PostMigrationSetup": "PostMigrationSetup", "Power": "電源", "Powered off": "電源オフ", "Powered on": "電源オン", @@ -1038,6 +1045,7 @@ "Pre-migration hook job template": "移行前フックのジョブテンプレート", "Precopy interval": "プレコピー間隔", "Preferred during scheduling": "スケジューリング時に優先", + "Preflight inspection": "Preflight inspection", "Prerequisites": "前提条件", "Preserve CPU model": "CPU モデルを保持する", "Preserve static IPs": "静的 IP を保持する", @@ -1249,6 +1257,7 @@ "SMB share URL is required": "SMB 共有の URL は必須です", "SMB username": "SMB ユーザー名", "SMB username is required when using different credentials": "異なる認証情報を使用する場合、SMB ユーザー名は必須です", + "Snapshot consolidation": "Snapshot consolidation", "Snapshot polling interval": "スナップショットポーリング間隔", "Some fields may not be supported.": "一部のフィールドはサポートされない可能性があります。", "Source and target providers": "ソースおよびターゲットプロバイダー", @@ -1522,6 +1531,7 @@ "Virtual Disk Development Kit (VDDK) container init image path. The path must be empty or a valid container image path in the format of <2>registry_route_or_server_path/vddk:‹tag›.<4><5>To accelerate migration and reduce the risk of a plan failing, it is strongly recommended to specify a VDDK init image.": "Virtual Disk Development Kit (VDDK) コンテナーの init イメージのパス。パスは空か、<2>registry_route_or_server_path/vddk:‹tag› という形式の有効なコンテナーイメージパスである必要があります。<4><5>移行を高速化し、計画が失敗するリスクを軽減するために、VDDK init イメージを指定することを強く推奨します。", "Virtual Disk Development Kit (VDDK) setup": "Virtual Disk Development Kit (VDDK) のセットアップ", "Virtual machine": "仮想マシン", + "Virtual machine creation": "Virtual machine creation", "Virtual machines": "仮想マシン", "Virtualization platform from Red Hat. Currently in maintenance for existing customers only.": "Red Hat の仮想化プラットフォーム。現在は既存のお客様だけを対象としたメンテナンスフェーズ中です。", "Virtualization platform from VMware": "VMware の仮想化プラットフォーム", @@ -1587,6 +1597,7 @@ "Why don’t my VMs function correctly after a successful migration?": "移行の成功後に仮想マシンが正しく動作しないのはなぜですか?", "Why is my warm migration stuck?": "ウォームマイグレーションが停止したのはなぜですか?", "Windows": "Windows", + "Windows VM is installing drivers and configuring network. Multiple reboots are expected.": "Windows VM is installing drivers and configuring network. Multiple reboots are expected.", "With a cold migration, we will move the shut down VM between hosts.": "コールドマイグレーションでは、シャットダウンした仮想マシンをホスト間で移動させます。", "With a conversion migration, we will convert a virtual machine to a different architecture.": "コンバージョンマイグレーションでは、仮想マシンを別のアーキテクチャーに変換します。", "With a live migration, we will move an active virtual machine without downtime.": "ライブマイグレーションでは、稼働中の仮想マシンをダウンタイムなしで移動させます。", diff --git a/locales/ko/plugin__forklift-console-plugin.json b/locales/ko/plugin__forklift-console-plugin.json index 39fbcd178..5a0f4e169 100644 --- a/locales/ko/plugin__forklift-console-plugin.json +++ b/locales/ko/plugin__forklift-console-plugin.json @@ -347,6 +347,7 @@ "Create with form": "폼을 사용하여 생성", "Create with YAML": "YAML로 생성", "Created ": "생성됨 ", + "Created {{vmName}}": "Created {{vmName}}", "Created at": "생성일", "Creating a network mapping": "네트워크 매핑 생성 중", "Creating a provider": "공급자 생성 중", @@ -399,6 +400,7 @@ "Determines the frequency with which the system checks the status of snapshot creation or removal during oVirt warm migration. The default value is 10 seconds.": "oVirt 웜 마이그레이션 중에 시스템이 스냅샷 생성 또는 제거 상태를 확인하는 빈도를 결정합니다. 기본값은 10초입니다.", "Disabled": "비활성화됨", "Disabling shared disk migration requires VDDK to be configured on the VMware provider. Without VDDK, the migration will stall. Either enable VDDK on the provider or keep shared disk migration enabled.": "공유 디스크 마이그레이션을 비활성화하려면 VMware 공급자에 VDDK를 구성해야 합니다. VDDK가 없으면 마이그레이션이 중단됩니다. 공급자에서 VDDK를 활성화하거나 공유 디스크 마이그레이션을 활성화합니다.", + "Disk allocation": "Disk allocation", "Disk counter": "디스크 수", "Disk decryption": "디스크 복호화", "Disk decryption passphrases": "디스크 복호화 암호문", @@ -406,6 +408,7 @@ "Disk transfer": "디스크 전송", "Display name": "표시 이름", "Distribution": "배포", + "Do not access this VM": "Do not access this VM", "Do not migrate shared disks": "공유 디스크를 마이그레이션하지 않음", "Do not preserve static IPs": "정적 IP 주소를 유지하지 않음", "Documentation": "문서", @@ -661,6 +664,7 @@ "If your source provider is VMware, select a Source datastore and a Target storage class": "소스 공급자가 VMware인 경우 소스 데이터스토어와 대상 스토리지 클래스를 선택하십시오.", "Ignore network": "네트워크 무시", "Image": "이미지", + "Image conversion": "Image conversion", "Impacted resources": "영향을 받는 리소스", "In": "In", "In some cases, a Raw Copy mode can be used as a fallback. This performs a block-level, byte-for-byte copy of the source disk. It is useful for complex disk layouts or when standard methods fail. Use this with caution as it bypasses filesystem optimizations and should only be used if you fully understand its implications.": "경우에 따라 원시 복사 모드를 대체 수단으로 사용할 수 있습니다. 이 모드는 소스 디스크를 블록 단위로 바이트 단위로 복사합니다. 복잡한 디스크 구조이거나 표준 복사 방법이 실패할 때 유용합니다. 하지만 파일 시스템 최적화를 무시하므로 이 모드의 의미를 완전히 이해한 경우에만 사용해야 합니다.", @@ -670,6 +674,7 @@ "Infinidat Infinibox": "Infinidat Infinibox", "Information concerns": "정보성 문제", "Inherit plan wide setting": "계획 전체 설정을 상속", + "Initialize": "Initialize", "Insecure migration means that the transferred data is sent over an insecure connection and potentially sensitive data could be exposed.": "안전하지 않은 마이그레이션이란 전송되는 데이터가 안전하지 않은 연결을 통해 전송되어 민감한 데이터가 노출될 수 있음을 의미합니다.", "Inspect {{count}} VM_one": "{{count}} VM 검사", "Inspect {{count}} VM_other": "{{count}} VM 검사", @@ -1031,6 +1036,8 @@ "Pods not found": "Pods를 찾을 수 없습니다.", "Post-migration hook": "마이그레이션 후 후크", "Post-migration hook job template": "마이그레이션 후 후크 작업 템플릿", + "Post-migration setup": "Post-migration setup", + "PostMigrationSetup": "PostMigrationSetup", "Power": "전원", "Powered off": "전원 꺼짐", "Powered on": "전원이 켜짐", @@ -1038,6 +1045,7 @@ "Pre-migration hook job template": "사전 마이그레이션 후크 작업 템플릿", "Precopy interval": "사전 복사 간격", "Preferred during scheduling": "스케줄링 시 선호", + "Preflight inspection": "Preflight inspection", "Prerequisites": "전제 조건", "Preserve CPU model": "CPU 모델 유지", "Preserve static IPs": "고정 IP 유지", @@ -1249,6 +1257,7 @@ "SMB share URL is required": "SMB 공유 URL이 필요합니다.", "SMB username": "SMB 사용자 이름", "SMB username is required when using different credentials": "다른 자격 증명을 사용할 때는 SMB 사용자 이름이 필요합니다.", + "Snapshot consolidation": "Snapshot consolidation", "Snapshot polling interval": "스냅샷 폴링 간격", "Some fields may not be supported.": "일부 필드는 지원되지 않을 수 있습니다.", "Source and target providers": "소스 및 대상 공급업체", @@ -1522,6 +1531,7 @@ "Virtual Disk Development Kit (VDDK) container init image path. The path must be empty or a valid container image path in the format of <2>registry_route_or_server_path/vddk:‹tag›.<4><5>To accelerate migration and reduce the risk of a plan failing, it is strongly recommended to specify a VDDK init image.": "Virtual Disk Development Kit (VDDK) 컨테이너 초기화 이미지 경로입니다. 경로는 비워 두거나 <2> registry_route_or_server_path/vddk:'8249;tag'8250; 형식의 유효한 컨테이너 이미지 경로여야 합니다. .<4><5> 마이그레이션을 가속화하고 계획 실패 위험을 줄이려면 VDDK 초기화 이미지를 지정하는 것이 좋습니다.", "Virtual Disk Development Kit (VDDK) setup": "Virtual Disk Development Kit (VDDK) 설정", "Virtual machine": "가상 머신", + "Virtual machine creation": "Virtual machine creation", "Virtual machines": "가상 머신", "Virtualization platform from Red Hat. Currently in maintenance for existing customers only.": "Red Hat의 가상화 플랫폼입니다. 현재 기존 고객에 한해 유지보수 서비스를 제공하고 있습니다.", "Virtualization platform from VMware": "VMware의 가상화 플랫폼", @@ -1587,6 +1597,7 @@ "Why don’t my VMs function correctly after a successful migration?": "마이그레이션이 성공적으로 완료된 후에도 가상 머신이 제대로 작동하지 않는 이유는 무엇인가요?", "Why is my warm migration stuck?": "웜 마이그레이션이 멈춘 이유는 무엇인가요?", "Windows": "Windows", + "Windows VM is installing drivers and configuring network. Multiple reboots are expected.": "Windows VM is installing drivers and configuring network. Multiple reboots are expected.", "With a cold migration, we will move the shut down VM between hosts.": "콜드 마이그레이션을 사용하면 종료된 VM을 호스트 간에 이동할 수 있습니다.", "With a conversion migration, we will convert a virtual machine to a different architecture.": "변환 마이그레이션을 통해 가상 머신을 다른 아키텍처로 변환할 수 있습니다.", "With a live migration, we will move an active virtual machine without downtime.": "라이브 마이그레이션을 사용하면 다운타임 없이 실행 중인 가상 머신을 이동할 수 있습니다.", diff --git a/locales/zh/plugin__forklift-console-plugin.json b/locales/zh/plugin__forklift-console-plugin.json index d4d7e8bd7..e8986cb15 100644 --- a/locales/zh/plugin__forklift-console-plugin.json +++ b/locales/zh/plugin__forklift-console-plugin.json @@ -347,6 +347,7 @@ "Create with form": "使用表单创建", "Create with YAML": "使用 YAML 创建", "Created ": "创建 ", + "Created {{vmName}}": "Created {{vmName}}", "Created at": "创建于", "Creating a network mapping": "创建网络映射", "Creating a provider": "创建供应商", @@ -399,6 +400,7 @@ "Determines the frequency with which the system checks the status of snapshot creation or removal during oVirt warm migration. The default value is 10 seconds.": "决定在 oVirt warm 迁移期间系统检查快照创建或删除状态的频率。默认值为 10 秒。", "Disabled": "禁用", "Disabling shared disk migration requires VDDK to be configured on the VMware provider. Without VDDK, the migration will stall. Either enable VDDK on the provider or keep shared disk migration enabled.": "禁用共享磁盘迁移需要在 VMware 供应商上配置 VDDK。如果没有 VDDK,迁移将停止。在供应商上启用 VDDK,或者启用共享磁盘迁移。", + "Disk allocation": "Disk allocation", "Disk counter": "磁盘计数器", "Disk decryption": "磁盘解密", "Disk decryption passphrases": "磁盘解密密码短语", @@ -406,6 +408,7 @@ "Disk transfer": "磁盘传输", "Display name": "显示名称", "Distribution": "分发", + "Do not access this VM": "Do not access this VM", "Do not migrate shared disks": "不要迁移共享磁盘", "Do not preserve static IPs": "不要保留静态 IP", "Documentation": "文档", @@ -661,6 +664,7 @@ "If your source provider is VMware, select a Source datastore and a Target storage class": "如果您的源供应商是 VMware,请选择一个源数据存储和一个目标数据存储", "Ignore network": "忽略网络", "Image": "镜像", + "Image conversion": "Image conversion", "Impacted resources": "受影响的资源", "In": "In", "In some cases, a Raw Copy mode can be used as a fallback. This performs a block-level, byte-for-byte copy of the source disk. It is useful for complex disk layouts or when standard methods fail. Use this with caution as it bypasses filesystem optimizations and should only be used if you fully understand its implications.": "在某些情况下,Raw Copy 模式可以用作一个回退方式。这会执行源磁盘的块级的、每个字节的副本。这在复杂磁盘布局,或使用标准方法失败时很有用。请谨慎使用这个选项,因为它会绕过文件系统优化,请仅在您完全了解其影响时才应使用。", @@ -670,6 +674,7 @@ "Infinidat Infinibox": "Infinidat Infinibox", "Information concerns": "信息顾虑", "Inherit plan wide setting": "继承计划范围内的设置", + "Initialize": "Initialize", "Insecure migration means that the transferred data is sent over an insecure connection and potentially sensitive data could be exposed.": "不安全的迁移意味着传输的数据通过非安全的连接发送,敏感数据可能会被公开。", "Inspect {{count}} VM_one": "检查 {{count}} 虚拟机", "Inspect {{count}} VM_other": "检查 {{count}} 虚拟机", @@ -1031,6 +1036,8 @@ "Pods not found": "未找到 Pod", "Post-migration hook": "迁移后 hook", "Post-migration hook job template": "迁移后 hook 作业模板", + "Post-migration setup": "Post-migration setup", + "PostMigrationSetup": "PostMigrationSetup", "Power": "电源", "Powered off": "关机", "Powered on": "开机", @@ -1038,6 +1045,7 @@ "Pre-migration hook job template": "预迁移 hook 作业模板", "Precopy interval": "预复制间隔", "Preferred during scheduling": "调度时首选", + "Preflight inspection": "Preflight inspection", "Prerequisites": "先决条件", "Preserve CPU model": "保留 CPU 型号", "Preserve static IPs": "保留静态 IP", @@ -1249,6 +1257,7 @@ "SMB share URL is required": "需要 SMB 共享 URL", "SMB username": "SMB 用户名", "SMB username is required when using different credentials": "使用不同的凭证时需要 SMB 用户名", + "Snapshot consolidation": "Snapshot consolidation", "Snapshot polling interval": "快照轮询间隔", "Some fields may not be supported.": "有些字段可能不被支持。", "Source and target providers": "源和目标供应商", @@ -1522,6 +1531,7 @@ "Virtual Disk Development Kit (VDDK) container init image path. The path must be empty or a valid container image path in the format of <2>registry_route_or_server_path/vddk:‹tag›.<4><5>To accelerate migration and reduce the risk of a plan failing, it is strongly recommended to specify a VDDK init image.": "Virtual Disk Development Kit (VDDK) 容器 init 镜像路径。路径必须为空,或是一个有效的容器镜像路径,格式为为 <2>registry_route_or_server_path/vddk:‹tag›。<4><5>要加速迁移并减少计划失败的风险,强烈建议指定一个 VDDK init 镜像。", "Virtual Disk Development Kit (VDDK) setup": "虚拟磁盘开发套件 (VDDK) 设置", "Virtual machine": "虚拟机器", + "Virtual machine creation": "Virtual machine creation", "Virtual machines": "虚拟机", "Virtualization platform from Red Hat. Currently in maintenance for existing customers only.": "红帽的虚拟化平台。当前仅针对现有客户维护。", "Virtualization platform from VMware": "VMware 的虚拟化平台", @@ -1587,6 +1597,7 @@ "Why don’t my VMs function correctly after a successful migration?": "为什么我的虚拟机功能在成功迁移后无法正常工作?", "Why is my warm migration stuck?": "为什么我的温迁移卡住了?", "Windows": "Windows", + "Windows VM is installing drivers and configuring network. Multiple reboots are expected.": "Windows VM is installing drivers and configuring network. Multiple reboots are expected.", "With a cold migration, we will move the shut down VM between hosts.": "在使用冷迁移时,将在主机之间移动关闭的虚拟机。", "With a conversion migration, we will convert a virtual machine to a different architecture.": "在转换迁移时,会将虚拟机转换为一个不同的架构。", "With a live migration, we will move an active virtual machine without downtime.": "在使用实时迁移时,将在不停机的情况下移动活跃的虚拟机。", diff --git a/src/plans/details/tabs/VirtualMachines/components/MigrationStatusVirtualMachineList/components/MigrationStatusExpandedPage/components/MigrationProgressTable/MigrationProgressTable.tsx b/src/plans/details/tabs/VirtualMachines/components/MigrationStatusVirtualMachineList/components/MigrationStatusExpandedPage/components/MigrationProgressTable/MigrationProgressTable.tsx index f4a8884d9..fa89c9bd1 100644 --- a/src/plans/details/tabs/VirtualMachines/components/MigrationStatusVirtualMachineList/components/MigrationStatusExpandedPage/components/MigrationProgressTable/MigrationProgressTable.tsx +++ b/src/plans/details/tabs/VirtualMachines/components/MigrationStatusVirtualMachineList/components/MigrationStatusExpandedPage/components/MigrationProgressTable/MigrationProgressTable.tsx @@ -10,6 +10,7 @@ import type { V1beta1Plan, V1beta1PlanStatusMigrationVms } from '@forklift-ui/ty import { useModal } from '@openshift-console/dynamic-plugin-sdk'; import { Alert, + AlertVariant, Button, ButtonVariant, Split, @@ -24,7 +25,13 @@ import { getResourceUrl } from '@utils/getResourceUrl'; import { isEmpty } from '@utils/helpers'; import { useForkliftTranslation } from '@utils/i18n'; -import { CUTOVER_NAME, VIRTUAL_MACHINE_CREATION_NAME } from '../../../../utils/utils'; +import { + CUTOVER_NAME, + getPipelineStepDisplayName, + isVmInPostMigrationSetup, + VIRTUAL_MACHINE_CREATION_NAME, + WAIT_FOR_GUEST_REBOOTS_NAME, +} from '../../../../utils/utils'; import { getPipelineProgressIcon } from '../../../utils/icon'; import { getPipelineTasks } from '../../../utils/utils'; import PipelineTasksDrawer from '../PipelineTasksDrawer'; @@ -51,6 +58,7 @@ const MigrationProgressTable: FC = ({ const launcher = useModal(); const navigate = useNavigate(); const pipeline = statusVM?.pipeline ?? []; + const inPostMigrationSetup = isVmInPostMigrationSetup(statusVM); return ( @@ -66,18 +74,25 @@ const MigrationProgressTable: FC = ({ const isVMCreatedAndVMCreationPipeline = pipe?.name === VIRTUAL_MACHINE_CREATION_NAME && vmCreated; const isCutoverPipeline = pipe?.name === CUTOVER_NAME; + const isWaitForGuestRebootsPipeline = pipe?.name === WAIT_FOR_GUEST_REBOOTS_NAME; + const isWaitForGuestRebootsRunning = + isWaitForGuestRebootsPipeline && pipe?.phase === taskStatuses.running; const isTasksEmpty = isEmpty(pipe?.tasks); + const displayName = getPipelineStepDisplayName(pipe?.name); return (
{getPipelineProgressIcon(pipe)} - {pipe?.name} + {displayName} - {!isVMCreatedAndVMCreationPipeline && isTasksEmpty && pipe?.description} + {!isVMCreatedAndVMCreationPipeline && + !isWaitForGuestRebootsRunning && + isTasksEmpty && + pipe?.description} {!isTasksEmpty && !isCutoverPipeline && ( <> {t('Completed ')} @@ -85,9 +100,9 @@ const MigrationProgressTable: FC = ({ variant={ButtonVariant.link} onClick={() => { openDrawer( - , + ,

- {pipe?.name} + {displayName} {vmName}

, ); @@ -99,7 +114,7 @@ const MigrationProgressTable: FC = ({ {t(' tasks')} )} - {isVMCreatedAndVMCreationPipeline && ( + {isVMCreatedAndVMCreationPipeline && !inPostMigrationSetup && ( <> {t('Created ')} )} + {isVMCreatedAndVMCreationPipeline && inPostMigrationSetup && ( + <>{t('Created {{vmName}}', { vmName })} + )} + {isWaitForGuestRebootsRunning && ( + + {t( + 'Windows VM is installing drivers and configuring network. Multiple reboots are expected.', + )} + + )} {isCutoverPipeline && pipe?.phase === taskStatuses.completed && ( <>{pipe?.description} )} diff --git a/src/plans/details/tabs/VirtualMachines/components/MigrationStatusVirtualMachineList/utils/constants.ts b/src/plans/details/tabs/VirtualMachines/components/MigrationStatusVirtualMachineList/utils/constants.ts index f9a34f1eb..26ad88739 100644 --- a/src/plans/details/tabs/VirtualMachines/components/MigrationStatusVirtualMachineList/utils/constants.ts +++ b/src/plans/details/tabs/VirtualMachines/components/MigrationStatusVirtualMachineList/utils/constants.ts @@ -9,11 +9,12 @@ import { getVMDiskProgress, getVMMigrationStatus } from './utils'; const vmStatuses = [ { id: 'Failed', label: 'Failed' }, + { id: 'NotStarted', label: 'Not started' }, + { id: 'PostMigrationSetup', label: 'Post-migration setup' }, { id: 'Running', label: 'Running' }, { id: 'Succeeded', label: 'Succeeded' }, { id: 'Unknown', label: 'Unknown' }, { id: 'Waiting', label: 'Waiting for cutover' }, - { id: 'NotStarted', label: 'Not started' }, ]; export const planMigrationVirtualMachinesFields: ResourceField[] = [ { diff --git a/src/plans/details/tabs/VirtualMachines/components/MigrationStatusVirtualMachineList/utils/fields.tsx b/src/plans/details/tabs/VirtualMachines/components/MigrationStatusVirtualMachineList/utils/fields.tsx index 9a0576d04..855f13fa4 100644 --- a/src/plans/details/tabs/VirtualMachines/components/MigrationStatusVirtualMachineList/utils/fields.tsx +++ b/src/plans/details/tabs/VirtualMachines/components/MigrationStatusVirtualMachineList/utils/fields.tsx @@ -11,7 +11,11 @@ import { type MigrationStatusVirtualMachinePageData, MigrationStatusVirtualMachinesTableResourceId, } from './types'; -import { getVMDiskTransferPipeline, isVirtualMachineCreationCompleted } from './utils'; +import { + getVMDiskTransferPipeline, + isVirtualMachineCreationCompleted, + isVmInPostMigrationSetup, +} from './utils'; export const getMigrationStatusVirtualMachinesRowFields = ( fieldsData: MigrationStatusVirtualMachinePageData, @@ -30,15 +34,16 @@ export const getMigrationStatusVirtualMachinesRowFields = ( [MigrationStatusVirtualMachinesTableResourceId.MigrationStarted]: ( ), - [MigrationStatusVirtualMachinesTableResourceId.Name]: vmCreated ? ( - - ) : ( - <>{statusVM?.newName ?? statusVM?.name ?? specVM?.name} - ), + [MigrationStatusVirtualMachinesTableResourceId.Name]: + vmCreated && !isVmInPostMigrationSetup(statusVM) ? ( + + ) : ( + <>{statusVM?.newName ?? statusVM?.name ?? specVM?.name} + ), [MigrationStatusVirtualMachinesTableResourceId.Status]: ( ), diff --git a/src/plans/details/tabs/VirtualMachines/components/MigrationStatusVirtualMachineList/utils/utils.ts b/src/plans/details/tabs/VirtualMachines/components/MigrationStatusVirtualMachineList/utils/utils.ts index 8d9a138bc..650a6be73 100644 --- a/src/plans/details/tabs/VirtualMachines/components/MigrationStatusVirtualMachineList/utils/utils.ts +++ b/src/plans/details/tabs/VirtualMachines/components/MigrationStatusVirtualMachineList/utils/utils.ts @@ -5,10 +5,38 @@ import { t } from '@utils/i18n'; import type { MigrationStatusVirtualMachinePageData } from './types'; -export const VIRTUAL_MACHINE_CREATION_NAME = 'VirtualMachineCreation'; export const CUTOVER_NAME = 'Cutover'; +export const VIRTUAL_MACHINE_CREATION_NAME = 'VirtualMachineCreation'; +export const WAIT_FOR_GUEST_REBOOTS_NAME = 'WaitForGuestReboots'; + +export const PIPELINE_STEP_DISPLAY_NAMES: Record = { + Cutover: t('Cutover'), + DiskAllocation: t('Disk allocation'), + DiskTransfer: t('Disk transfer'), + DiskTransferV2v: t('Disk transfer'), + ImageConversion: t('Image conversion'), + Initialize: t('Initialize'), + PostHook: t('Post-migration hook'), + PreflightInspection: t('Preflight inspection'), + PreHook: t('Pre-migration hook'), + VirtualMachineCreation: t('Virtual machine creation'), + WaitForFinalSnapshotConsolidation: t('Snapshot consolidation'), + WaitForGuestReboots: t('Post-migration setup'), +}; -export const getVMMigrationStatus = (obj: unknown) => { +export const getPipelineStepDisplayName = (name: string): string => + PIPELINE_STEP_DISPLAY_NAMES[name] ?? name; + +export const isVmInPostMigrationSetup = ( + statusVM: V1beta1PlanStatusMigrationVms | undefined, +): boolean => { + const pipeline = statusVM?.pipeline ?? []; + return pipeline.some( + (pipe) => pipe?.name === WAIT_FOR_GUEST_REBOOTS_NAME && pipe?.phase === taskStatuses.running, + ); +}; + +export const getVMMigrationStatus = (obj: unknown): string => { const vmMigrationStatusData = obj as MigrationStatusVirtualMachinePageData; const isError = vmMigrationStatusData.statusVM?.conditions?.find( (condition) => condition.type === 'Failed' && condition.status === 'True', @@ -17,6 +45,7 @@ export const getVMMigrationStatus = (obj: unknown) => { (condition) => condition.type === 'Succeeded' && condition.status === 'True', ); const isWaiting = vmMigrationStatusData.statusVM?.phase === 'CopyingPaused'; + const isPostMigrationSetup = isVmInPostMigrationSetup(vmMigrationStatusData.statusVM); const isRunning = vmMigrationStatusData.statusVM?.completed === undefined; const notStarted = vmMigrationStatusData.statusVM?.pipeline[0].phase === 'Pending'; @@ -32,6 +61,10 @@ export const getVMMigrationStatus = (obj: unknown) => { return t('Waiting'); } + if (isPostMigrationSetup) { + return t('PostMigrationSetup'); + } + if (notStarted) { return t('NotStarted'); } diff --git a/src/utils/constants.ts b/src/utils/constants.ts index 0aae99409..239fff120 100644 --- a/src/utils/constants.ts +++ b/src/utils/constants.ts @@ -25,6 +25,7 @@ export const taskStatuses = { error: 'Error', failed: 'Failed', pending: 'Pending', + running: 'Running', }; export const PHASES = {