Mercurial > illumos > illumos-gate
changeset 13755:80fe82480d1e
2447 beadm should be more descriptive about some errors
Reviewed by: Dan McDonald <danmcd@nexenta.com>
Reviewed by: Jim Klimov <jim@cos.ru>
Approved by: Richard Lowe <richlowe@richlowe.net>
author | Alexander Eremin <a.eremin@nexenta.com> |
---|---|
date | Tue, 24 Jul 2012 04:11:09 -0500 |
parents | 7231b684c18b |
children | 281242a86f07 |
files | usr/src/cmd/beadm/beadm.c usr/src/man/man1m/beadm.1m |
diffstat | 2 files changed, 173 insertions(+), 43 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/cmd/beadm/beadm.c Mon Jul 09 21:10:26 2012 +0100 +++ b/usr/src/cmd/beadm/beadm.c Tue Jul 24 04:11:09 2012 -0500 @@ -123,21 +123,21 @@ "\n" "\tsubcommands:\n" "\n" - "\tbeadm activate beName\n" - "\tbeadm create [-d BE_desc]\n" + "\tbeadm activate [-v] beName\n" + "\tbeadm create [-a] [-d BE_desc]\n" "\t\t[-o property=value] ... [-p zpool] \n" - "\t\t[-e nonActiveBe | beName@snapshot] beName\n" + "\t\t[-e nonActiveBe | beName@snapshot] [-v] beName\n" "\tbeadm create [-d BE_desc]\n" - "\t\t[-o property=value] ... [-p zpool] beName@snapshot\n" - "\tbeadm destroy [-Ffs] beName \n" - "\tbeadm destroy [-F] beName@snapshot \n" - "\tbeadm list [[-a] | [-d] [-s]] [-H] [beName]\n" - "\tbeadm mount [-s ro|rw] beName [mountpoint]\n" - "\tbeadm unmount [-f] beName | mountpoint\n" - "\tbeadm umount [-f] beName | mountpoint\n" - "\tbeadm rename origBeName newBeName\n" - "\tbeadm rollback beName snapshot\n" - "\tbeadm rollback beName@snapshot\n")); + "\t\t[-o property=value] ... [-p zpool] [-v] beName@snapshot\n" + "\tbeadm destroy [-Ffsv] beName \n" + "\tbeadm destroy [-Fv] beName@snapshot \n" + "\tbeadm list [[-a] | [-d] [-s]] [-H] [-v] [beName]\n" + "\tbeadm mount [-s ro|rw] [-v] beName [mountpoint]\n" + "\tbeadm unmount [-fv] beName | mountpoint\n" + "\tbeadm umount [-fv] beName | mountpoint\n" + "\tbeadm rename [-v] origBeName newBeName\n" + "\tbeadm rollback [-v] beName snapshot\n" + "\tbeadm rollback [-v] beName@snapshot\n")); } static int @@ -664,8 +664,20 @@ { nvlist_t *be_attrs; int err = 1; + int c; char *obe_name; + while ((c = getopt(argc, argv, "v")) != -1) { + switch (c) { + case 'v': + libbe_print_errors(B_TRUE); + break; + default: + usage(); + return (1); + } + } + argc -= optind; argv += optind; @@ -728,7 +740,7 @@ char *propval = NULL; char *strval = NULL; - while ((c = getopt(argc, argv, "ad:e:io:p:")) != -1) { + while ((c = getopt(argc, argv, "ad:e:io:p:v")) != -1) { switch (c) { case 'a': activate = B_TRUE; @@ -766,6 +778,9 @@ case 'p': nbe_zpool = optarg; break; + case 'v': + libbe_print_errors(B_TRUE); + break; default: usage(); goto out2; @@ -939,7 +954,7 @@ char *snap_name; char *be_name; - while ((c = getopt(argc, argv, "fFs")) != -1) { + while ((c = getopt(argc, argv, "fFsv")) != -1) { switch (c) { case 'f': destroy_flags |= BE_DESTROY_FLAG_FORCE_UNMOUNT; @@ -947,6 +962,9 @@ case 's': destroy_flags |= BE_DESTROY_FLAG_SNAPSHOTS; break; + case 'v': + libbe_print_errors(B_TRUE); + break; case 'F': suppress_prompt = B_TRUE; break; @@ -1061,7 +1079,7 @@ int c = 0; char *be_name = NULL; - while ((c = getopt(argc, argv, "nadsH")) != -1) { + while ((c = getopt(argc, argv, "adsvH")) != -1) { switch (c) { case 'a': all = B_TRUE; @@ -1072,6 +1090,9 @@ case 's': snaps = B_TRUE; break; + case 'v': + libbe_print_errors(B_TRUE); + break; case 'H': parsable = B_TRUE; break; @@ -1145,7 +1166,7 @@ char *mountpoint; char *tmp_mp = NULL; - while ((c = getopt(argc, argv, "s:")) != -1) { + while ((c = getopt(argc, argv, "s:v")) != -1) { switch (c) { case 's': shared_fs = B_TRUE; @@ -1162,6 +1183,9 @@ } break; + case 'v': + libbe_print_errors(B_TRUE); + break; default: usage(); return (1); @@ -1223,7 +1247,6 @@ (void) printf(_("Mounted successfully on: '%s'\n"), mountpoint); break; case BE_ERR_BE_NOENT: - err = 1; (void) fprintf(stderr, _("%s does not exist or appear " "to be a valid BE.\nPlease check that the name of " "the BE provided is correct.\n"), obe_name); @@ -1235,13 +1258,11 @@ break; case BE_ERR_PERM: case BE_ERR_ACCESS: - err = 1; (void) fprintf(stderr, _("Unable to mount %s.\n"), obe_name); (void) fprintf(stderr, _("You have insufficient privileges to " "execute this command.\n")); break; default: - err = 1; (void) fprintf(stderr, _("Unable to mount %s.\n"), obe_name); (void) fprintf(stderr, "%s\n", be_err_to_str(err)); } @@ -1262,11 +1283,14 @@ int c; int unmount_flags = 0; - while ((c = getopt(argc, argv, "f")) != -1) { + while ((c = getopt(argc, argv, "fv")) != -1) { switch (c) { case 'f': unmount_flags |= BE_UNMOUNT_FLAG_FORCE; break; + case 'v': + libbe_print_errors(B_TRUE); + break; default: usage(); return (1); @@ -1337,6 +1361,18 @@ char *obe_name; char *nbe_name; int err = 1; + int c; + + while ((c = getopt(argc, argv, "v")) != -1) { + switch (c) { + case 'v': + libbe_print_errors(B_TRUE); + break; + default: + usage(); + return (1); + } + } argc -= optind; argv += optind; @@ -1394,6 +1430,18 @@ char *obe_name; char *snap_name; int err = 1; + int c; + + while ((c = getopt(argc, argv, "v")) != -1) { + switch (c) { + case 'v': + libbe_print_errors(B_TRUE); + break; + default: + usage(); + return (1); + } + } argc -= optind; argv += optind;
--- a/usr/src/man/man1m/beadm.1m Mon Jul 09 21:10:26 2012 +0100 +++ b/usr/src/man/man1m/beadm.1m Tue Jul 24 04:11:09 2012 -0500 @@ -6,54 +6,55 @@ .SH SYNOPSIS .LP .nf -\fBbeadm\fR create [\fB-a\fR] [\fB-d\fR \fIdescription\fR] +\fBbeadm\fR \fBcreate\fR [\fB-a\fR] [\fB-d\fR \fIdescription\fR] [\fB-e\fR \fInon-activeBeName\fR | \fIbeName@snapshot\fR] - [\fB-o\fR \fIproperty=value\fR] ... [\fB-p\fR \fIzpool\FI] \fIbeName\fR + [\fB-o\fR \fIproperty=value\fR] ... [\fB-p\fR \fIzpool\fR] + [\fB-v\fR] \fIbeName\fR .fi .LP .nf -\fBbeadm\fR \fBcreate\fR \fIbeName@snapshot\fR +\fBbeadm\fR \fBcreate\fR [\fB-v\fR] \fIbeName@snapshot\fR .fi .LP .nf -\fBbeadm\fR \fBdestroy\fR [\fB-fFs\fR] \fIbeName\fR | \fIbeName@snapshot\fR +\fBbeadm\fR \fBdestroy\fR [\fB-fFsv\fR] \fIbeName\fR | \fIbeName@snapshot\fR .fi .LP .nf -\fBbeadm\fR \fBlist\fR [\fB-a\fR | \fB-ds\fR] [\fB-H\fR] [\fIbeName\fR] +\fBbeadm\fR \fBlist\fR [\fB-a\fR | \fB-ds\fR] [\fB-H\fR] [\fB-v\fR] [\fIbeName\fR] .fi .LP .nf -\fBbeadm\fR \fBmount\fR \fIbeName\fR \fImountpoint\fR +\fBbeadm\fR \fBmount\fR [\fB-v\fR] \fIbeName\fR \fImountpoint\fR .fi .LP .nf -\fBbeadm\fR \fBunmount\fR [\fB-f\fR] \fIbeName\fR | \fImountpoint\fR +\fBbeadm\fR \fBunmount\fR [\fB-fv\fR] \fIbeName\fR | \fImountpoint\fR .fi .LP .nf -\fBbeadm\fR \fBrename\fR \fIbeName\fR \fInewBeName\fR +\fBbeadm\fR \fBrename\fR [\fB-v\fR] \fIbeName\fR \fInewBeName\fR .fi .LP .nf -\fBbeadm\fR \fBactivate\fR \fIbeName\fR +\fBbeadm\fR \fBactivate\fR [\fB-v\fR] \fIbeName\fR .fi .LP .nf -\fBbeadm\fR \fBrollback\fR \fIbeName\fR \fIsnapshot\fR +\fBbeadm\fR \fBrollback\fR [\fB-v\fR] \fIbeName\fR \fIsnapshot\fR .fi .LP .nf -\fBbeadm\fR \fBrollback\fR \fIbeName@snapshot\fR +\fBbeadm\fR \fBrollback\fR [\fB-v\fR] \fIbeName@snapshot\fR .fi .SH DESCRIPTION @@ -160,9 +161,9 @@ .ne 2 .na \fBbeadm\fR \fBcreate\fR [\fB-a\fR] [\fB-d\fR \fIdescription\fR] -[\fB-e\fR \fInon-activeBeName\fR | \fIbeName@snapshot\fR] - [\fB-o\fR -\fIproperty=value\fR] ... [\fB-p\fR \fIzpool\fR] \fIbeName\fR + [\fB-e\fR \fInon-activeBeName\fR | \fIbeName@snapshot\fR] + [\fB-o\fR \fIproperty=value\fR] ... [\fB-p\fR \fIzpool\fR] + [\fB-v\fR] \fIbeName\fR .ad .sp .6 @@ -239,22 +240,40 @@ default behavior is to create the new BE in the same pool as as the origin BE. .RE +.sp +.ne 2 +.na +\fB-v\fR +.ad +.sp .6 +.RS 4n +Verbose mode. Displays verbose error messages from \fBbeadm\fR. +.RE .RE .sp .ne 2 .na -\fBbeadm\fR \fBcreate\fR \fIbeName@snapshot\fR +\fBbeadm\fR \fBcreate\fR [\fB-v\fR] \fIbeName@snapshot\fR .ad .sp .6 .RS 4n Creates a snapshot of the existing BE named beName. +.sp +.ne 2 +.na +\fB-v\fR +.ad +.sp .6 +.RS 4n +Verbose mode. Displays verbose error messages from \fBbeadm\fR. +.RE .RE .sp .ne 2 .na -\fBbeadm\fR \fBdestroy\fR [\fB-fFs\fR] \fIbeName\fR | \fIbeName@snapshot\fR +\fBbeadm\fR \fBdestroy\fR [\fB-fFsv\fR] \fIbeName\fR | \fIbeName@snapshot\fR .ad .sp .6 .RS 4n @@ -294,12 +313,21 @@ Destroy all snapshots of the boot environment. .RE +.sp +.ne 2 +.na +\fB-v\fR +.ad +.sp .6 +.RS 4n +Verbose mode. Displays verbose error messages from \fBbeadm\fR. +.RE .RE .sp .ne 2 .na -\fBbeadm\fR \fBlist\fR [\fB-a\fR | \fB-ds\fR] [\fB-H\fR] [\fIbeName\fR] +\fBbeadm\fR \fBlist\fR [\fB-a\fR | \fB-ds\fR] [\fB-H\fR] [\fB-v\fR] [\fIbeName\fR] .ad .sp .6 .RS 4n @@ -358,23 +386,41 @@ Do not list header information. Each field in the list information is separated by a semicolon. .RE +.sp +.ne 2 +.na +\fB-v\fR +.ad +.sp .6 +.RS 4n +Verbose mode. Displays verbose error messages from \fBbeadm\fR. +.RE .RE .sp .ne 2 .na -\fBbeadm\fR \fBmount\fR \fIbeName\fR \fImountpoint\fR +\fBbeadm\fR \fBmount\fR [\fB-v\fR] \fIbeName\fR \fImountpoint\fR .ad .sp .6 .RS 4n Mounts a boot environment named beName at mountpoint. mountpoint must be an already existing empty directory. +.sp +.ne 2 +.na +\fB-v\fR +.ad +.sp .6 +.RS 4n +Verbose mode. Displays verbose error messages from \fBbeadm\fR. +.RE .RE .sp .ne 2 .na -\fBbeadm\fR \fBunmount\fR [\fB-f\fR] \fIbeName\fR | \fImountpoint\fR +\fBbeadm\fR \fBunmount\fR [\fB-fv\fR] \fIbeName\fR | \fImountpoint\fR .ad .sp .6 .RS 4n @@ -389,37 +435,73 @@ .RS 4n Forcefully unmount the boot environment even if its currently busy. .RE +.sp +.ne 2 +.na +\fB-v\fR +.ad +.sp .6 +.RS 4n +Verbose mode. Displays verbose error messages from \fBbeadm\fR. +.RE .RE .sp .ne 2 .na -\fBbeadm\fR \fBrename\fR \fIbeName\fR \fInewBeName\fR +\fBbeadm\fR \fBrename\fR [\fB-v\fR] \fIbeName\fR \fInewBeName\fR .ad .sp .6 .RS 4n Renames the boot environment named \fIbeName\fR to \fInewBeName\fR. +.sp +.ne 2 +.na +\fB-v\fR +.ad +.sp .6 +.RS 4n +Verbose mode. Displays verbose error messages from \fBbeadm\fR. +.RE .RE .sp .ne 2 .na -\fBbeadm\fR \fBrollback\fR \fIbeName\fR \fIsnapshot\fR | \fIbeName@snapshot\fR +\fBbeadm\fR \fBrollback\fR [\fB-v\fR] \fIbeName\fR \fIsnapshot\fR | \fIbeName@snapshot\fR .ad .sp .6 .RS 4n Roll back the boot environment named \fIbeName\fR to existing snapshot of the boot environment named \fIbeName@snapshot\fR. +.sp +.ne 2 +.na +\fB-v\fR +.ad +.sp .6 +.RS 4n +Verbose mode. Displays verbose error messages from \fBbeadm\fR. +.RE .RE .sp .ne 2 .na -\fBbeadm\fR \fBactivate\fR \fIbeName\fR +\fBbeadm\fR \fBactivate\fR [\fB-v\fR] \fIbeName\fR .ad .sp .6 .RS 4n Makes beName the active BE on next reboot. +.sp +.ne 2 +.na +\fB-v\fR +.ad +.sp .6 +.RS 4n +Verbose mode. Displays verbose error messages from \fBbeadm\fR. +.RE .RE .SH ALTERNATE BE LOCATION