--- Begin Message ---
Signed-off-by: Demayl <denis.kanc...@storpool.com>
---
 www/manager6/window/Snapshot.js | 43 +++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/www/manager6/window/Snapshot.js b/www/manager6/window/Snapshot.js
index 93ab61ec..902258b2 100644
--- a/www/manager6/window/Snapshot.js
+++ b/www/manager6/window/Snapshot.js
@@ -7,10 +7,14 @@ Ext.define('PVE.window.Snapshot', {
            isCreate: undefined,
            running: false,
            guestAgentEnabled: false,
+           atomicPossible: false,
+           atomicPreferred: false,
        },
        formulas: {
            runningWithoutGuestAgent: (get) => get('type') === 'qemu' && 
get('running') && !get('guestAgentEnabled'),
            shouldWarnAboutFS: (get) => get('isCreate') && 
get('runningWithoutGuestAgent') && get('!vmstate.checked'),
+           atomicDisabled: (get) => !get('atomicPossible'),
+           typeCheck: (get) => get('atomicPreferred') && get('atomicPossible') 
? 'atomic' : 'sequential' ,
        },
     },
 
@@ -55,6 +59,15 @@ Ext.define('PVE.window.Snapshot', {
                    vm.set('guestAgentEnabled', 
!!PVE.Parser.parseBoolean(enabled.enabled));
                },
            });
+           Proxmox.Utils.API2Request({
+               url: 
`/nodes/${me.nodename}/${me.type}/${me.vmid}/status/current`,
+               method: 'GET',
+               success: function(response, options) {
+                   let snap = response.result.data.snapshots;
+                   vm.set('atomicPossible', 
!!PVE.Parser.parseBoolean(snap.atomic_possible.toString()));
+                   vm.set('atomicPreferred', 
!!PVE.Parser.parseBoolean(snap.atomic_preferred.toString()));
+               },
+           });
        }
 
        me.items = [
@@ -85,6 +98,36 @@ Ext.define('PVE.window.Snapshot', {
                checked: 1,
                fieldLabel: gettext('Include RAM'),
            },
+           {
+               xtype: 'radiogroup',
+               fieldLabel: gettext('Type'),
+               vertical: true,
+               hidden: !me.isCreate,
+               columns: 1,
+               reference: 'atomic',
+               items: [
+                   {
+                       xtype: 'radiofield',
+                       boxLabel: gettext('Sequential'),
+                       name: 'type',
+                       flex: 1,
+                       inputValue: 'sequential',
+                       bind: { value: '{typeCheck}' }
+                   },
+                   {
+                       xtype: 'radiofield',
+                       boxLabel: gettext('Atomic'),
+                       name: 'type',
+                       flex: 1,
+                       inputValue: 'atomic',
+                       disabled: true,
+                       bind: {
+                           value: '{typeCheck}',
+                           disabled: '{atomicDisabled}',
+                       }
+                   }
+               ]
+           },
            {
                xtype: 'textareafield',
                grow: true,
-- 
2.43.0



--- 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