Turn the offline/online checkbox of the Migrate Windows into a displayfield

This checkbox had not effect whatsoever:
 * if the VM was online and offline was selected, the migration would fail
 with the message that the --online flag is needed for running VMs
 * if the the VM was offline and online was selected, the migration would
 happen offline anyway
This commit is contained in:
Emmanuel Kasper 2017-08-24 11:45:20 +02:00 committed by Wolfgang Bumiller
parent 2df7ea9fda
commit 1c62fde24d

View File

@ -27,8 +27,8 @@ Ext.define('PVE.window.Migrate', {
target: values.target target: values.target
}; };
if (values.online) { if (view.liveMode) {
params[view.liveMode] = values.online; params[view.liveMode] = 1;
} }
PVE.Utils.API2Request({ PVE.Utils.API2Request({
@ -82,13 +82,10 @@ Ext.define('PVE.window.Migrate', {
onlineValidator: true onlineValidator: true
}, },
{ {
xtype: 'pvecheckbox', xtype: 'displayfield',
reference: 'onlineToggle', reference: 'migrationMode',
name: 'online', fieldLabel: gettext('Mode'),
uncheckedValue: 0, value: gettext('Offline')
defaultValue: 0,
checked: false,
fieldLabel: gettext('Restart Mode')
} }
] ]
} }
@ -130,14 +127,12 @@ Ext.define('PVE.window.Migrate', {
me.liveMode = 'restart'; me.liveMode = 'restart';
if (me.vmtype === 'qemu') { if (me.vmtype === 'qemu') {
me.lookup('onlineToggle').setFieldLabel(gettext('Online'));
me.lookup('pveHelpButton').setHelpConfig({ me.lookup('pveHelpButton').setHelpConfig({
onlineHelp: 'qm_migration' onlineHelp: 'qm_migration'
}); });
title = gettext('Migrate') + (' VM ') + me.vmid; title = gettext('Migrate') + (' VM ') + me.vmid;
me.liveMode = 'online'; me.liveMode = 'online';
} }
me.setTitle(title);
var running = false; var running = false;
var vmrec = PVE.data.ResourceStore.findRecord('vmid', me.vmid, var vmrec = PVE.data.ResourceStore.findRecord('vmid', me.vmid,
@ -145,8 +140,19 @@ Ext.define('PVE.window.Migrate', {
if (vmrec && vmrec.data && vmrec.data.running) { if (vmrec && vmrec.data && vmrec.data.running) {
running = true; running = true;
} }
me.lookup('onlineToggle').setValue(running);
if (running) {
var displayField = me.lookup('migrationMode');
if (me.vmtype === 'qemu') {
displayField.setValue(gettext('Online'));
me.liveMode = 'online';
} else {
displayField.setValue(gettext('Restart Mode'));
me.liveMode = 'restart';
}
}
me.setTitle(title);
me.lookup('pveNodeSelector').disallowedNodes = [me.nodename]; me.lookup('pveNodeSelector').disallowedNodes = [me.nodename];
me.lookup('formPanel').isValid(); me.lookup('formPanel').isValid();
} }