From f27eacc7529a5e397382425219f1fb20602563ea Mon Sep 17 00:00:00 2001 From: Ralf Ertzinger Date: Wed, 23 Oct 2013 10:50:48 +0200 Subject: [PATCH] Add -p switch to "zpool get" This works the same as the -p switch to "zfs get", displaying full resolution values for appropriate attributes. --- cmd/zpool/zpool_main.c | 34 +++++++++++++++++++++++++++------- man/man8/zpool.8 | 15 +++++++++++++-- 2 files changed, 40 insertions(+), 9 deletions(-) diff --git a/cmd/zpool/zpool_main.c b/cmd/zpool/zpool_main.c index b96fbe4..2632e8c 100644 --- a/cmd/zpool/zpool_main.c +++ b/cmd/zpool/zpool_main.c @@ -265,7 +265,7 @@ get_usage(zpool_help_t idx) { case HELP_EVENTS: return (gettext("\tevents [-vHfc]\n")); case HELP_GET: - return (gettext("\tget <\"all\" | property[,...]> " + return (gettext("\tget [-p] <\"all\" | property[,...]> " " ...\n")); case HELP_SET: return (gettext("\tset \n")); @@ -3098,6 +3098,9 @@ zpool_do_list(int argc, char **argv) argc -= optind; argv += optind; + fprintf(stderr, "argc = %d\n", argc); + for (c=0; cpl_prop, value, - sizeof (value), &srctype) != 0) + if (zpool_get_prop_literal(zhp, pl->pl_prop, value, + sizeof (value), &srctype, cbp->cb_literal) != 0) continue; zprop_print_one_property(zpool_get_name(zhp), cbp, @@ -5483,9 +5486,26 @@ zpool_do_get(int argc, char **argv) { zprop_get_cbdata_t cb = { 0 }; zprop_list_t fake_name = { 0 }; - int ret; + int c, ret; - if (argc < 2) { + /* check options */ + while ((c = getopt(argc, argv, "p")) != -1) { + switch (c) { + case 'p': + cb.cb_literal = B_TRUE; + break; + + case '?': + (void) fprintf(stderr, gettext("invalid option '%c'\n"), + optopt); + usage(B_FALSE); + } + } + + argc -= optind; + argv += optind; + + if (argc < 1) { (void) fprintf(stderr, gettext("missing property " "argument\n")); usage(B_FALSE); @@ -5499,7 +5519,7 @@ zpool_do_get(int argc, char **argv) cb.cb_columns[3] = GET_COL_SOURCE; cb.cb_type = ZFS_TYPE_POOL; - if (zprop_get_list(g_zfs, argv[1], &cb.cb_proplist, + if (zprop_get_list(g_zfs, argv[0], &cb.cb_proplist, ZFS_TYPE_POOL) != 0) usage(B_FALSE); @@ -5510,7 +5530,7 @@ zpool_do_get(int argc, char **argv) cb.cb_proplist = &fake_name; } - ret = for_each_pool(argc - 2, argv + 2, B_TRUE, &cb.cb_proplist, + ret = for_each_pool(argc - 1, argv + 1, B_TRUE, &cb.cb_proplist, get_callback, &cb); if (cb.cb_proplist == &fake_name) diff --git a/man/man8/zpool.8 b/man/man8/zpool.8 index b4b0f46..82ef204 100644 --- a/man/man8/zpool.8 +++ b/man/man8/zpool.8 @@ -62,7 +62,7 @@ zpool \- configures ZFS storage pools .LP .nf -\fBzpool get\fR "\fIall\fR" | \fIproperty\fR[,...] \fIpool\fR ... +\fBzpool get\fR [\fB-p\fR] "\fIall\fR" | \fIproperty\fR[,...] \fIpool\fR ... .fi .LP @@ -1036,7 +1036,7 @@ This command will forcefully export the pool even if it has a shared spare that .ne 2 .mk .na -\fB\fBzpool get\fR "\fIall\fR" | \fIproperty\fR[,...] \fIpool\fR ...\fR +\fB\fBzpool get\fR [\fB-p\fR] "\fIall\fR" | \fIproperty\fR[,...] \fIpool\fR ...\fR .ad .sp .6 .RS 4n @@ -1053,6 +1053,17 @@ Retrieves the given list of properties (or all properties if "\fBall\fR" is used .sp See the "Properties" section for more information on the available pool properties. +.sp +.ne 2 +.mk +.na +\fB\fB-p\fR\fR +.ad +.RS 6n +.rt +Display numbers in parseable (exact) values. +.RE + .RE .sp -- 1.8.3.1