[PATCH pve-manager 1/1] migrate: allow migration from dead node

Alexandre Derumier alexandre.derumier at groupe-cyllene.com
Mon Mar 24 12:15:28 CET 2025


Signed-off-by: Alexandre Derumier <alexandre.derumier at groupe-cyllene.com>
---
 www/manager6/window/Migrate.js | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/www/manager6/window/Migrate.js b/www/manager6/window/Migrate.js
index 78d03921..db63e484 100644
--- a/www/manager6/window/Migrate.js
+++ b/www/manager6/window/Migrate.js
@@ -34,7 +34,9 @@ Ext.define('PVE.window.Migrate', {
 
 	formulas: {
 	    setMigrationMode: function(get) {
-		if (get('running')) {
+		if (get('migration.deadnode')) {
+		    return gettext('Dead Node Mode. Please double check that node is really down and vm is really shutdown !!!!!!!!!');
+		} else if (get('running')) {
 		    if (get('vmtype') === 'qemu') {
 			return gettext('Online');
 		    } else {
@@ -117,6 +119,12 @@ Ext.define('PVE.window.Migrate', {
 		target: values.target,
 	    };
 
+	    var node = vm.get('nodename');
+	    if (vm.get('migration.deadnode')) {
+		node = params.target; //send query to target node
+		params.deadnode = vm.get('nodename');
+	    }
+
 	    if (vm.get('migration.mode')) {
 		params[vm.get('migration.mode')] = 1;
 	    }
@@ -135,7 +143,7 @@ Ext.define('PVE.window.Migrate', {
 
 	    Proxmox.Utils.API2Request({
 		params: params,
-		url: '/nodes/' + vm.get('nodename') + '/' + vm.get('vmtype') + '/' + vm.get('vmid') + '/migrate',
+		url: '/nodes/' + node + '/' + vm.get('vmtype') + '/' + vm.get('vmid') + '/migrate',
 		waitMsgTarget: view,
 		method: 'POST',
 		failure: function(response, opts) {
@@ -185,6 +193,13 @@ Ext.define('PVE.window.Migrate', {
 		vm = me.getViewModel(),
 		migrateStats;
 
+	    //check if the source node is dead/offline
+	    const nodeInfo = PVE.data.ResourceStore.getNodes().find(node => node.node === vm.get('nodename'));
+	    if (nodeInfo.status === 'offline') {
+		vm.set('migration.deadnode', 1);
+		return;
+	    }
+
 	    if (vm.get('running')) {
 		vm.set('migration.mode', 'online');
 	    }
-- 
2.39.5




More information about the pve-devel mailing list