diff options
author | George G <[email protected]> | 2017-11-05 21:09:56 +0000 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2017-11-05 13:09:56 -0800 |
commit | 2df9ad1c075cfca3cf5acb64950a91e2284f6338 (patch) | |
tree | 53973a6661e841697960bb1fbcef5a37d56ee848 /cmd/zpool | |
parent | cd1813d36e78ce21fa0b0e48b050e0493f9f6c93 (diff) |
Fix column alignment with long zpool names
`zpool status` normally aligns NAME/STATE/etc columns:
NAME STATE READ WRITE CKSUM
dummy ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
/tmp/dummy-long-1.bin ONLINE 0 0 0
/tmp/dummy-long-2.bin ONLINE 0 0 0
mirror-1 ONLINE 0 0 0
/tmp/dummy-long-3.bin ONLINE 0 0 0
/tmp/dummy-long-4.bin ONLINE 0 0 0
However, if the zpool name is longer than the zvol names, alignment
issues arise:
NAME STATE READ WRITE CKSUM
dummy-very-very-long-zpool-name ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
/tmp/dummy-1.bin ONLINE 0 0 0
/tmp/dummy-2.bin ONLINE 0 0 0
mirror-1 ONLINE 0 0 0
/tmp/dummy-3.bin ONLINE 0 0 0
/tmp/dummy-4.bin ONLINE 0 0 0
`zpool iostat` and `zpool import` are also affected:
capacity operations bandwidth
pool alloc free read write read write
---------- ----- ----- ----- ----- ----- -----
dummy 104K 1.97G 0 0 152 9.84K
dummy-very-very-long-zpool-name 152K 1.97G 0 1 144 13.1K
---------- ----- ----- ----- ----- ----- -----
dummy-very-very-long-zpool-name ONLINE
mirror-0 ONLINE
/tmp/dummy-1.bin ONLINE
/tmp/dummy-2.bin ONLINE
mirror-1 ONLINE
/tmp/dummy-3.bin ONLINE
/tmp/dummy-4.bin ONLINE
Reviewed-by: George Melikov <[email protected]>
Reviewed-by: Tony Hutter <[email protected]>
Reviewed-by: Brian Behlendorf <[email protected]>
Signed-off-by: George Gaydarov <[email protected]>
Closes #6786
Diffstat (limited to 'cmd/zpool')
-rw-r--r-- | cmd/zpool/zpool_main.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/cmd/zpool/zpool_main.c b/cmd/zpool/zpool_main.c index b6b6f0cf4..d23903aec 100644 --- a/cmd/zpool/zpool_main.c +++ b/cmd/zpool/zpool_main.c @@ -2216,7 +2216,8 @@ show_import(nvlist_t *config) (void) printf(gettext(" config:\n\n")); - cb.cb_namewidth = max_width(NULL, nvroot, 0, 0, VDEV_NAME_TYPE_ID); + cb.cb_namewidth = max_width(NULL, nvroot, 0, strlen(name), + VDEV_NAME_TYPE_ID); if (cb.cb_namewidth < 10) cb.cb_namewidth = 10; @@ -3925,7 +3926,7 @@ get_namewidth(zpool_handle_t *zhp, void *data) &nvroot) == 0); unsigned int poolname_len = strlen(zpool_get_name(zhp)); if (!cb->cb_verbose) - cb->cb_namewidth = poolname_len; + cb->cb_namewidth = MAX(poolname_len, cb->cb_namewidth); else cb->cb_namewidth = MAX(poolname_len, max_width(zhp, nvroot, 0, cb->cb_namewidth, |