diff --git a/src/api2/admin/datastore.rs b/src/api2/admin/datastore.rs index e66e1c0b..c8e86b07 100644 --- a/src/api2/admin/datastore.rs +++ b/src/api2/admin/datastore.rs @@ -1804,6 +1804,7 @@ pub fn get_rrd_stats( let mut rrd_fields = vec![ "total", + "available", "used", "read_ios", "read_bytes", diff --git a/www/dashboard/DataStoreStatistics.js b/www/dashboard/DataStoreStatistics.js index 38f7a2fe..0510fc7d 100644 --- a/www/dashboard/DataStoreStatistics.js +++ b/www/dashboard/DataStoreStatistics.js @@ -3,7 +3,12 @@ Ext.define('pbs-datastore-statistics', { fields: [ 'store', - 'total', + { + name: 'total', + calculate: function(data) { + return data.avail + data.used; + }, + }, 'used', 'avail', 'estimated-full-date', diff --git a/www/datastore/DataStoreListSummary.js b/www/datastore/DataStoreListSummary.js index c7b67d56..bec0562d 100644 --- a/www/datastore/DataStoreListSummary.js +++ b/www/datastore/DataStoreListSummary.js @@ -52,10 +52,11 @@ Ext.define('PBS.datastore.DataStoreListSummary', { vm.set('maintenance', ''); } - let usage = statusData.used/statusData.total; + let total = statusData.avail + statusData.used; + let usage = statusData.used / total; let usagetext = Ext.String.format(gettext('{0} of {1}'), Proxmox.Utils.format_size(statusData.used, true), - Proxmox.Utils.format_size(statusData.total, true), + Proxmox.Utils.format_size(total, true), ); let usagePanel = me.lookup('usage'); diff --git a/www/datastore/Summary.js b/www/datastore/Summary.js index 94be9559..d67e81cc 100644 --- a/www/datastore/Summary.js +++ b/www/datastore/Summary.js @@ -3,6 +3,20 @@ Ext.define('pve-rrd-datastore', { fields: [ 'used', 'total', + { + name: 'unpriv-total', // Can't resuse 'total' here as that creates a stack overflow + calculate: function(data) { + let used = data.used; + let avail = data.available; + + if (avail && used) { + return avail + used; + } + + return data.total; + }, + }, + 'available', 'read_ios', 'read_bytes', 'write_ios', @@ -66,8 +80,8 @@ Ext.define('PBS.DataStoreInfo', { let vm = me.getViewModel(); let counts = store.getById('counts').data.value; - let total = store.getById('total').data.value; let used = store.getById('used').data.value; + let total = store.getById('avail').data.value + used; let usage = Proxmox.Utils.render_size_usage(used, total, true); vm.set('usagetext', usage); @@ -236,7 +250,7 @@ Ext.define('PBS.DataStoreSummary', { { xtype: 'proxmoxRRDChart', title: gettext('Storage usage (bytes)'), - fields: ['total', 'used'], + fields: ['unpriv-total', 'used'], fieldTitles: [gettext('Total'), gettext('Storage usage')], }, {