From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id DB7D31FF17A for ; Fri, 4 Jul 2025 20:20:52 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 9791F3D7B1; Fri, 4 Jul 2025 20:21:17 +0200 (CEST) From: Daniel Kral To: pve-devel@lists.proxmox.com Date: Fri, 4 Jul 2025 20:21:00 +0200 Message-Id: <20250704182102.467624-18-d.kral@proxmox.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250704182102.467624-1-d.kral@proxmox.com> References: <20250704182102.467624-1-d.kral@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.012 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pve-devel] [PATCH manager v3 3/3] ui: migrate: vm: display precondition messages for ha resource affinity X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox VE development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" Extend the VM precondition check to show whether a migration of a VM results in any additional migrations because of positive HA resource affinity rules or if any migrations cannot be completed because of any negative resource affinity rules. In the latter case these migrations would be blocked when executing the migrations anyway by the HA Manager's CLI and it state machine, but this gives a better heads-up about this. However, additional migrations are not reported in advance by the CLI yet, so these warnings are crucial to warn users about the comigrated HA resources. Signed-off-by: Daniel Kral --- www/manager6/window/Migrate.js | 44 ++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/www/manager6/window/Migrate.js b/www/manager6/window/Migrate.js index dff6af08..53349f8c 100644 --- a/www/manager6/window/Migrate.js +++ b/www/manager6/window/Migrate.js @@ -361,6 +361,50 @@ Ext.define('PVE.window.Migrate', { }); } + let blockingHAResources = disallowed['blocking-ha-resources'] ?? []; + if (blockingHAResources.length) { + migration.possible = false; + + for (const { sid, cause } of blockingHAResources) { + let reasonText; + if (cause === 'resource-affinity') { + reasonText = Ext.String.format( + gettext( + 'HA resource {0} with negative affinity to VM on selected target node', + ), + sid, + ); + } else { + reasonText = Ext.String.format( + gettext('blocking HA resource {0} on selected target node'), + sid, + ); + } + + migration.preconditions.push({ + severity: 'error', + text: Ext.String.format( + gettext('Cannot migrate VM, because {0}.'), + reasonText, + ), + }); + } + } + + let comigratedHAResources = migrateStats['comigrated-ha-resources']; + if (comigratedHAResources !== undefined) { + for (const sid of comigratedHAResources) { + const text = Ext.String.format( + gettext( + 'HA resource {0} with positive affinity to VM is also migrated to selected target node.', + ), + sid, + ); + + migration.preconditions.push({ text, severity: 'warning' }); + } + } + vm.set('migration', migration); }, checkLxcPreconditions: async function (resetMigrationPossible) { -- 2.39.5 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel