[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