mirror of
https://git.proxmox.com/git/pve-manager
synced 2025-07-17 15:31:39 +00:00

Adds a default-on checkbox to the QEMU Guest Agent feature selector controlling the 'fs-freeze-on-backup' option. If unchecked, an additional warning is displayed that backups can potentially corrupt with this setting off. Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
87 lines
2.1 KiB
JavaScript
87 lines
2.1 KiB
JavaScript
Ext.define('PVE.form.AgentFeatureSelector', {
|
|
extend: 'Proxmox.panel.InputPanel',
|
|
alias: ['widget.pveAgentFeatureSelector'],
|
|
|
|
viewModel: {},
|
|
|
|
items: [
|
|
{
|
|
xtype: 'proxmoxcheckbox',
|
|
boxLabel: Ext.String.format(gettext('Use {0}'), 'QEMU Guest Agent'),
|
|
name: 'enabled',
|
|
reference: 'enabled',
|
|
uncheckedValue: 0,
|
|
},
|
|
{
|
|
xtype: 'proxmoxcheckbox',
|
|
boxLabel: gettext('Run guest-trim after a disk move or VM migration'),
|
|
name: 'fstrim_cloned_disks',
|
|
bind: {
|
|
disabled: '{!enabled.checked}',
|
|
},
|
|
disabled: true,
|
|
},
|
|
{
|
|
xtype: 'proxmoxcheckbox',
|
|
boxLabel: gettext('Freeze/thaw guest filesystems on backup for consistency'),
|
|
name: 'freeze-fs-on-backup',
|
|
reference: 'freeze_fs_on_backup',
|
|
bind: {
|
|
disabled: '{!enabled.checked}',
|
|
},
|
|
disabled: true,
|
|
uncheckedValue: '0',
|
|
defaultValue: '1',
|
|
},
|
|
{
|
|
xtype: 'displayfield',
|
|
userCls: 'pmx-hint',
|
|
value: gettext('Freeze/thaw for guest filesystems disabled. This can lead to inconsistent disk backups.'),
|
|
bind: {
|
|
hidden: '{freeze_fs_on_backup.checked}',
|
|
},
|
|
},
|
|
{
|
|
xtype: 'displayfield',
|
|
userCls: 'pmx-hint',
|
|
value: gettext('Make sure the QEMU Guest Agent is installed in the VM'),
|
|
bind: {
|
|
hidden: '{!enabled.checked}',
|
|
},
|
|
},
|
|
],
|
|
|
|
advancedItems: [
|
|
{
|
|
xtype: 'proxmoxKVComboBox',
|
|
name: 'type',
|
|
value: '__default__',
|
|
deleteEmpty: false,
|
|
fieldLabel: 'Type',
|
|
comboItems: [
|
|
['__default__', Proxmox.Utils.defaultText + " (VirtIO)"],
|
|
['virtio', 'VirtIO'],
|
|
['isa', 'ISA'],
|
|
],
|
|
},
|
|
],
|
|
|
|
onGetValues: function(values) {
|
|
if (PVE.Parser.parseBoolean(values['freeze-fs-on-backup'])) {
|
|
delete values['freeze-fs-on-backup'];
|
|
}
|
|
|
|
const agentstr = PVE.Parser.printPropertyString(values, 'enabled');
|
|
return { agent: agentstr };
|
|
},
|
|
|
|
setValues: function(values) {
|
|
let res = PVE.Parser.parsePropertyString(values.agent, 'enabled');
|
|
if (!Ext.isDefined(res['freeze-fs-on-backup'])) {
|
|
res['freeze-fs-on-backup'] = 1;
|
|
}
|
|
|
|
this.callParent([res]);
|
|
},
|
|
});
|