public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH-SERIES v2 storage/widget-toolkit/manager] fix #3610: properly build ZFS detail tree
@ 2021-09-10 11:45 Fabian Ebner
  2021-09-10 11:45 ` [pve-devel] [PATCH v2 storage 1/1] " Fabian Ebner
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: Fabian Ebner @ 2021-09-10 11:45 UTC (permalink / raw)
  To: pve-devel

Correctly add top-level vdevs like log or special as children of the
root, instead of the previous outer vdev.

Since the API returns only one element, it has to be the pool itself,
but there also is a vdev with the same name. In the GUI, hide the
pool and show its health as part of the upper grid instead.


Changes from v1:
    * add GUI patches


See the pve-manager patch for the needed dependency bumps.


pve-storage:

Fabian Ebner (1):
  fix #3610: properly build ZFS detail tree

 PVE/API2/Disks/ZFS.pm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)


proxmox-widget-toolkit:

Fabian Ebner (2):
  zfs detail: increase window height
  zfs detail: hide the pool itself in tree view

 src/window/ZFSDetail.js | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)


pve-manager:

Fabian Ebner (1):
  ui: node: zfs: use ZFSDetail window from widget-toolkit

 www/manager6/node/ZFS.js | 167 +--------------------------------------
 1 file changed, 3 insertions(+), 164 deletions(-)

-- 
2.30.2





^ permalink raw reply	[flat|nested] 8+ messages in thread

* [pve-devel] [PATCH v2 storage 1/1] fix #3610: properly build ZFS detail tree
  2021-09-10 11:45 [pve-devel] [PATCH-SERIES v2 storage/widget-toolkit/manager] fix #3610: properly build ZFS detail tree Fabian Ebner
@ 2021-09-10 11:45 ` Fabian Ebner
  2021-09-10 12:19   ` [pve-devel] applied: " Thomas Lamprecht
  2021-09-10 11:45 ` [pve-devel] [PATCH v2 widget-toolkit 1/2] zfs detail: increase window height Fabian Ebner
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 8+ messages in thread
From: Fabian Ebner @ 2021-09-10 11:45 UTC (permalink / raw)
  To: pve-devel

Previously, top-level vdevs like log or special were wrongly added as
children of the previous outer vdev instead of the root.

Fix it by also showing the vdev with the same name as the pool and
start counting from level 1 (the pool itself serves as the root and
should be the only one with level 0). This results in the same kind
of structure as in PBS and (except for the root) zpool status itself.

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
---

No changes from v1.

 PVE/API2/Disks/ZFS.pm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/PVE/API2/Disks/ZFS.pm b/PVE/API2/Disks/ZFS.pm
index 0418794..60077c4 100644
--- a/PVE/API2/Disks/ZFS.pm
+++ b/PVE/API2/Disks/ZFS.pm
@@ -240,8 +240,8 @@ __PACKAGE__->register_method ({
 		$config = 1;
 	    } elsif ($config && $line =~ m/^(\s+)(\S+)\s*(\S+)?(?:\s+(\S+)\s+(\S+)\s+(\S+))?\s*(.*)$/) {
 		my ($space, $name, $state, $read, $write, $cksum, $msg) = ($1, $2, $3, $4, $5, $6, $7);
-		if ($name ne "NAME" and $name ne $param->{name}) {
-		    my $lvl= int(length($space)/2); # two spaces per level
+		if ($name ne "NAME") {
+		    my $lvl = int(length($space) / 2) + 1; # two spaces per level
 		    my $vdev = {
 			name => $name,
 			msg => $msg,
-- 
2.30.2





^ permalink raw reply	[flat|nested] 8+ messages in thread

* [pve-devel] [PATCH v2 widget-toolkit 1/2] zfs detail: increase window height
  2021-09-10 11:45 [pve-devel] [PATCH-SERIES v2 storage/widget-toolkit/manager] fix #3610: properly build ZFS detail tree Fabian Ebner
  2021-09-10 11:45 ` [pve-devel] [PATCH v2 storage 1/1] " Fabian Ebner
@ 2021-09-10 11:45 ` Fabian Ebner
  2021-09-10 11:45 ` [pve-devel] [PATCH v2 widget-toolkit 2/2] zfs detail: hide the pool itself in tree view Fabian Ebner
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: Fabian Ebner @ 2021-09-10 11:45 UTC (permalink / raw)
  To: pve-devel

If there are mirrors and log/special vdevs it just feels too small.
It also doesn't help if there are errors in the upper part taking up
space. Make it 600, which was used in PVE before.

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
---

New in v2.

 src/window/ZFSDetail.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/window/ZFSDetail.js b/src/window/ZFSDetail.js
index 8eb6a87..5606ca0 100644
--- a/src/window/ZFSDetail.js
+++ b/src/window/ZFSDetail.js
@@ -45,7 +45,7 @@ Ext.define('Proxmox.window.ZFSDetail', {
 
     modal: true,
     width: 800,
-    height: 400,
+    height: 600,
     resizable: true,
     cbind: {
 	title: '{title}',
-- 
2.30.2





^ permalink raw reply	[flat|nested] 8+ messages in thread

* [pve-devel] [PATCH v2 widget-toolkit 2/2] zfs detail: hide the pool itself in tree view
  2021-09-10 11:45 [pve-devel] [PATCH-SERIES v2 storage/widget-toolkit/manager] fix #3610: properly build ZFS detail tree Fabian Ebner
  2021-09-10 11:45 ` [pve-devel] [PATCH v2 storage 1/1] " Fabian Ebner
  2021-09-10 11:45 ` [pve-devel] [PATCH v2 widget-toolkit 1/2] zfs detail: increase window height Fabian Ebner
@ 2021-09-10 11:45 ` Fabian Ebner
  2021-09-10 11:45 ` [pve-devel] [PATCH v2 manager 1/1] ui: node: zfs: use ZFSDetail window from widget-toolkit Fabian Ebner
  2022-01-13 11:21 ` [pve-devel] [PATCH-SERIES v2 storage/widget-toolkit/manager] fix #3610: properly build ZFS detail tree Fabian Ebner
  4 siblings, 0 replies; 8+ messages in thread
From: Fabian Ebner @ 2021-09-10 11:45 UTC (permalink / raw)
  To: pve-devel

and show the overall health in the grid instead.

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
---

New in v2.

 src/window/ZFSDetail.js | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/window/ZFSDetail.js b/src/window/ZFSDetail.js
index 5606ca0..9ad46b8 100644
--- a/src/window/ZFSDetail.js
+++ b/src/window/ZFSDetail.js
@@ -78,6 +78,10 @@ Ext.define('Proxmox.window.ZFSDetail', {
 		nodename: '{nodename}',
 	    },
 	    rows: {
+		state: {
+		    header: gettext('Health'),
+		    renderer: Proxmox.Utils.render_zfs_health,
+		},
 		scan: {
 		    header: gettext('Scan'),
 		},
@@ -98,7 +102,8 @@ Ext.define('Proxmox.window.ZFSDetail', {
 	    title: gettext('Devices'),
 	    stateful: true,
 	    stateId: 'grid-node-zfsstatus',
-	    rootVisible: true,
+	    // the root is the pool itself and the information is shown by the grid
+	    rootVisible: false,
 	    fields: ['name', 'status',
 		{
 		    type: 'string',
-- 
2.30.2





^ permalink raw reply	[flat|nested] 8+ messages in thread

* [pve-devel] [PATCH v2 manager 1/1] ui: node: zfs: use ZFSDetail window from widget-toolkit
  2021-09-10 11:45 [pve-devel] [PATCH-SERIES v2 storage/widget-toolkit/manager] fix #3610: properly build ZFS detail tree Fabian Ebner
                   ` (2 preceding siblings ...)
  2021-09-10 11:45 ` [pve-devel] [PATCH v2 widget-toolkit 2/2] zfs detail: hide the pool itself in tree view Fabian Ebner
@ 2021-09-10 11:45 ` Fabian Ebner
  2022-01-13 11:21 ` [pve-devel] [PATCH-SERIES v2 storage/widget-toolkit/manager] fix #3610: properly build ZFS detail tree Fabian Ebner
  4 siblings, 0 replies; 8+ messages in thread
From: Fabian Ebner @ 2021-09-10 11:45 UTC (permalink / raw)
  To: pve-devel

The only functional differences I could see are the missing
defaultValue for 'Scan' and the reduced height. For restoring the
height, there is a proposed patch for widget-toolkit.

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
---

Needs a dependency bump for pve-storage, because new widget-toolkit
hides the root, but old storage still wants that to be shown.

The ZFSDetail window was already introduced in widget-toolkit 2.2-9,
so no new bump for that needed.

It can still make sense to bump widget-toolkit for the patches in this
series. That would avoid the situation with new storage + old
widget-toolkit showing the pool as the root and the vdev with the same
name, and the reduced height.

 www/manager6/node/ZFS.js | 167 +--------------------------------------
 1 file changed, 3 insertions(+), 164 deletions(-)

diff --git a/www/manager6/node/ZFS.js b/www/manager6/node/ZFS.js
index 8ea364bf..b2fcc87a 100644
--- a/www/manager6/node/ZFS.js
+++ b/www/manager6/node/ZFS.js
@@ -174,125 +174,6 @@ Ext.define('PVE.node.CreateZFS', {
     },
 });
 
-Ext.define('PVE.node.ZFSDevices', {
-    extend: 'Ext.tree.Panel',
-    xtype: 'pveZFSDevices',
-
-    stateful: true,
-    stateId: 'grid-node-zfsstatus',
-    columns: [
-	{
-	    xtype: 'treecolumn',
-	    text: gettext('Name'),
-	    dataIndex: 'name',
-	    flex: 1,
-	},
-	{
-	    text: gettext('Health'),
-	    renderer: PVE.Utils.render_zfs_health,
-	    dataIndex: 'state',
-	},
-	{
-	    text: 'READ',
-	    dataIndex: 'read',
-	},
-	{
-	    text: 'WRITE',
-	    dataIndex: 'write',
-	},
-	{
-	    text: 'CKSUM',
-	    dataIndex: 'cksum',
-	},
-	{
-	    text: gettext('Message'),
-	    dataIndex: 'msg',
-	},
-    ],
-
-    reload: function() {
-	let me = this;
-	let sm = me.getSelectionModel();
-	Proxmox.Utils.API2Request({
-	    url: `/nodes/${me.nodename}/disks/zfs/${me.zpool}`,
-	    waitMsgTarget: me,
-	    method: 'GET',
-	    failure: (response, opts) => Proxmox.Utils.setErrorMask(me, response.htmlStatus),
-	    success: function(response, opts) {
-		sm.deselectAll();
-		me.setRootNode(response.result.data);
-		me.expandAll();
-	    },
-	});
-    },
-
-    rootVisible: true,
-    selModel: 'treemodel',
-    fields: [
-	'name',
-	'status',
-	{
-	    type: 'string',
-	    name: 'iconCls',
-	    calculate: data => data.leaf ? `fa x-fa-tree fa-hdd-o` : undefined,
-	},
-    ],
-
-    initComponent: function() {
-        let me = this;
-
-	if (!me.nodename) {
-	    throw "no node name specified";
-	}
-	if (!me.zpool) {
-	    throw "no zpool specified";
-	}
-
-	me.callParent();
-
-	me.reload();
-    },
-});
-
-Ext.define('PVE.node.ZFSStatus', {
-    extend: 'Proxmox.grid.ObjectGrid',
-    xtype: 'pveZFSStatus',
-    layout: 'fit',
-    border: false,
-
-    initComponent: function() {
-	let me = this;
-
-	if (!me.nodename) {
-	    throw "no node name specified";
-	}
-	if (!me.zpool) {
-	    throw "no zpool specified";
-	}
-
-	me.url = `/api2/extjs/nodes/${me.nodename}/disks/zfs/${me.zpool}`;
-
-	me.rows = {
-	    scan: {
-		header: gettext('Scan'),
-		defaultValue: gettext('No Data'),
-	    },
-	    status: {
-		header: gettext('Status'),
-	    },
-	    action: {
-		header: gettext('Action'),
-	    },
-	    errors: {
-		header: gettext('Errors'),
-	    },
-	};
-
-	me.callParent();
-	me.reload();
-    },
-});
-
 Ext.define('PVE.node.ZFSList', {
     extend: 'Ext.grid.Panel',
     xtype: 'pveZFSList',
@@ -383,52 +264,10 @@ Ext.define('PVE.node.ZFSList', {
     show_detail: function(zpool) {
 	let me = this;
 
-	let detailsgrid = Ext.create('PVE.node.ZFSStatus', {
-	    layout: 'fit',
-	    nodename: me.nodename,
-	    flex: 0,
-	    zpool: zpool,
-	});
-	let devicetree = Ext.create('PVE.node.ZFSDevices', {
-	    title: gettext('Devices'),
+	Ext.create('Proxmox.window.ZFSDetail', {
+	    zpool,
 	    nodename: me.nodename,
-	    flex: 1,
-	    zpool: zpool,
-	});
-
-	Ext.create('Ext.window.Window', {
-	    modal: true,
-	    width: 800,
-	    height: 600,
-	    resizable: true,
-	    layout: 'fit',
-	    title: gettext('Status') + ': ' + zpool,
-	    items: [
-		{
-		    xtype: 'panel',
-		    region: 'center',
-		    layout: {
-			type: 'vbox',
-			align: 'stretch',
-		    },
-		    items: [
-			detailsgrid,
-			devicetree,
-		    ],
-		    tbar: [
-			{
-			    text: gettext('Reload'),
-			    iconCls: 'fa fa-refresh',
-			    handler: function() {
-				devicetree.reload();
-				detailsgrid.reload();
-			    },
-			},
-		    ],
-		},
-	    ],
-	    autoShow: true,
-	});
+	}).show();
     },
 
     set_button_status: function() {
-- 
2.30.2





^ permalink raw reply	[flat|nested] 8+ messages in thread

* [pve-devel] applied: [PATCH v2 storage 1/1] fix #3610: properly build ZFS detail tree
  2021-09-10 11:45 ` [pve-devel] [PATCH v2 storage 1/1] " Fabian Ebner
@ 2021-09-10 12:19   ` Thomas Lamprecht
  0 siblings, 0 replies; 8+ messages in thread
From: Thomas Lamprecht @ 2021-09-10 12:19 UTC (permalink / raw)
  To: Proxmox VE development discussion, Fabian Ebner

On 10.09.21 13:45, Fabian Ebner wrote:
> Previously, top-level vdevs like log or special were wrongly added as
> children of the previous outer vdev instead of the root.
> 
> Fix it by also showing the vdev with the same name as the pool and
> start counting from level 1 (the pool itself serves as the root and
> should be the only one with level 0). This results in the same kind
> of structure as in PBS and (except for the root) zpool status itself.
> 
> Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
> ---
> 
> No changes from v1.
> 
>  PVE/API2/Disks/ZFS.pm | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
>

applied, thanks!




^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [pve-devel] [PATCH-SERIES v2 storage/widget-toolkit/manager] fix #3610: properly build ZFS detail tree
  2021-09-10 11:45 [pve-devel] [PATCH-SERIES v2 storage/widget-toolkit/manager] fix #3610: properly build ZFS detail tree Fabian Ebner
                   ` (3 preceding siblings ...)
  2021-09-10 11:45 ` [pve-devel] [PATCH v2 manager 1/1] ui: node: zfs: use ZFSDetail window from widget-toolkit Fabian Ebner
@ 2022-01-13 11:21 ` Fabian Ebner
  2022-01-13 11:58   ` [pve-devel] applied-series: " Thomas Lamprecht
  4 siblings, 1 reply; 8+ messages in thread
From: Fabian Ebner @ 2022-01-13 11:21 UTC (permalink / raw)
  To: pve-devel

Ping for the widget-toolkit and manager patches.

Am 10.09.21 um 13:45 schrieb Fabian Ebner:
> Correctly add top-level vdevs like log or special as children of the
> root, instead of the previous outer vdev.
> 
> Since the API returns only one element, it has to be the pool itself,
> but there also is a vdev with the same name. In the GUI, hide the
> pool and show its health as part of the upper grid instead.
> 
> 
> Changes from v1:
>      * add GUI patches
> 
> 
> See the pve-manager patch for the needed dependency bumps.
> 
> 
> pve-storage:
> 
> Fabian Ebner (1):
>    fix #3610: properly build ZFS detail tree
> 
>   PVE/API2/Disks/ZFS.pm | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> 
> proxmox-widget-toolkit:
> 
> Fabian Ebner (2):
>    zfs detail: increase window height
>    zfs detail: hide the pool itself in tree view
> 
>   src/window/ZFSDetail.js | 9 +++++++--
>   1 file changed, 7 insertions(+), 2 deletions(-)
> 
> 
> pve-manager:
> 
> Fabian Ebner (1):
>    ui: node: zfs: use ZFSDetail window from widget-toolkit
> 
>   www/manager6/node/ZFS.js | 167 +--------------------------------------
>   1 file changed, 3 insertions(+), 164 deletions(-)
> 




^ permalink raw reply	[flat|nested] 8+ messages in thread

* [pve-devel] applied-series: [PATCH-SERIES v2 storage/widget-toolkit/manager] fix #3610: properly build ZFS detail tree
  2022-01-13 11:21 ` [pve-devel] [PATCH-SERIES v2 storage/widget-toolkit/manager] fix #3610: properly build ZFS detail tree Fabian Ebner
@ 2022-01-13 11:58   ` Thomas Lamprecht
  0 siblings, 0 replies; 8+ messages in thread
From: Thomas Lamprecht @ 2022-01-13 11:58 UTC (permalink / raw)
  To: Proxmox VE development discussion, Fabian Ebner

On 13.01.22 12:21, Fabian Ebner wrote:
> Ping for the widget-toolkit and manager patches.
> 

applied remaining parts of this series, thanks!




^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2022-01-13 11:58 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-10 11:45 [pve-devel] [PATCH-SERIES v2 storage/widget-toolkit/manager] fix #3610: properly build ZFS detail tree Fabian Ebner
2021-09-10 11:45 ` [pve-devel] [PATCH v2 storage 1/1] " Fabian Ebner
2021-09-10 12:19   ` [pve-devel] applied: " Thomas Lamprecht
2021-09-10 11:45 ` [pve-devel] [PATCH v2 widget-toolkit 1/2] zfs detail: increase window height Fabian Ebner
2021-09-10 11:45 ` [pve-devel] [PATCH v2 widget-toolkit 2/2] zfs detail: hide the pool itself in tree view Fabian Ebner
2021-09-10 11:45 ` [pve-devel] [PATCH v2 manager 1/1] ui: node: zfs: use ZFSDetail window from widget-toolkit Fabian Ebner
2022-01-13 11:21 ` [pve-devel] [PATCH-SERIES v2 storage/widget-toolkit/manager] fix #3610: properly build ZFS detail tree Fabian Ebner
2022-01-13 11:58   ` [pve-devel] applied-series: " Thomas Lamprecht

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal