--- Begin Message ---
Signed-off-by: Alexandre Derumier <alexandre.derum...@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



--- End Message ---
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to