Mercurial > illumos > illumos-gate
changeset 13407:cec0afe32134
1116 beadm *_snap commands shouldn't exist
1208 beadm doesn't show BE snapshots
Reviewed by: Dan McDonald <danmcd@nexenta.com>
Reviewed by: Igor Kozhukhov <ikozhukhov@gmail.com>
Reviewed by: Gary Mills <mills@cc.umanitoba.ca>
Reviewed by: Gordon Ross <gwr@nexenta.com>
Approved by: Eric Schrock <Eric.Schrock@delphix.com>
author | Alexander Eremin <a.eremin@nexenta.com> |
---|---|
date | Tue, 19 Jul 2011 10:35:32 -0700 |
parents | 37121c2f94b0 |
children | 90b8961d252c |
files | usr/src/cmd/beadm/beadm.c usr/src/lib/libbe/common/be_list.c |
diffstat | 2 files changed, 1 insertions(+), 202 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/cmd/beadm/beadm.c Tue Jul 19 10:06:44 2011 -0700 +++ b/usr/src/cmd/beadm/beadm.c Tue Jul 19 10:35:32 2011 -0700 @@ -58,9 +58,7 @@ static int be_do_activate(int argc, char **argv); static int be_do_create(int argc, char **argv); -static int be_do_create_snapshot(int argc, char **argv); static int be_do_destroy(int argc, char **argv); -static int be_do_destroy_snapshot(int argc, char **argv); static int be_do_list(int argc, char **argv); static int be_do_mount(int argc, char **argv); static int be_do_unmount(int argc, char **argv); @@ -108,9 +106,7 @@ static const be_command_t be_command_tbl[] = { { "activate", be_do_activate }, { "create", be_do_create }, - { "create_snap", be_do_create_snapshot }, { "destroy", be_do_destroy }, - { "destroy_snap", be_do_destroy_snapshot }, { "list", be_do_list }, { "mount", be_do_mount }, { "unmount", be_do_unmount }, @@ -136,10 +132,8 @@ "\t\t[-e nonActiveBe | beName@snapshot] beName\n" "\tbeadm create [-d BE_desc]\n" "\t\t[-o property=value] ... [-p zpool] beName@snapshot\n" - "\tbeadm create_snap [-p policy] beName [snapshot]\n" "\tbeadm destroy [-Ffs] beName \n" "\tbeadm destroy [-F] beName@snapshot \n" - "\tbeadm destroy_snap beName snapshot\n" "\tbeadm list [[-a] | [-d] [-s]] [-H] [beName]\n" "\tbeadm mount [-s ro|rw] beName [mountpoint]\n" "\tbeadm unmount [-f] beName\n" @@ -946,107 +940,6 @@ } static int -be_do_create_snapshot(int argc, char **argv) -{ - nvlist_t *be_attrs; - int err = 1; - int c; - char *obe_name = NULL; - char *snap_name = NULL; - char *policy = NULL; - - while ((c = getopt(argc, argv, "p:")) != -1) { - switch (c) { - case 'p': - policy = optarg; - break; - default: - usage(); - return (1); - } - } - - argc -= optind; - argv += optind; - - if (argc < 1 || argc > 2) { - usage(); - return (1); - } - - obe_name = argv[0]; - - if (argc > 1) { - /* Snapshot name provided */ - snap_name = argv[1]; - } - - if (be_nvl_alloc(&be_attrs) != 0) - return (1); - - - if (be_nvl_add_string(be_attrs, BE_ATTR_ORIG_BE_NAME, obe_name) != 0) - goto out; - - if (policy != NULL && be_nvl_add_string(be_attrs, - BE_ATTR_POLICY, policy) != 0) - goto out; - - if (snap_name != NULL && be_nvl_add_string(be_attrs, - BE_ATTR_SNAP_NAME, snap_name) != 0) - goto out; - - err = be_create_snapshot(be_attrs); - - switch (err) { - case BE_SUCCESS: - if (!snap_name) { - /* - * We requested an auto named snapshot; find out - * the snapshot name that was created for us. - */ - if (nvlist_lookup_string(be_attrs, BE_ATTR_SNAP_NAME, - &snap_name) != 0) { - (void) fprintf(stderr, _("failed to get %s " - "attribute\n"), BE_ATTR_SNAP_NAME); - err = 1; - break; - } - - (void) printf(_("Auto named snapshot: %s\n"), - snap_name); - } - (void) printf(_("Created successfully\n")); - break; - case BE_ERR_BE_NOENT: - (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); - break; - case BE_ERR_SS_EXISTS: - (void) fprintf(stderr, _("BE %s snapshot %s already exists.\n" - "Please choose a different snapshot name.\n"), obe_name, - snap_name); - break; - case BE_ERR_PERM: - case BE_ERR_ACCESS: - (void) fprintf(stderr, _("Unable to create snapshot %s.\n"), - snap_name); - (void) fprintf(stderr, _("You have insufficient privileges to " - "execute this command.\n")); - break; - default: - (void) fprintf(stderr, _("Unable to create snapshot %s.\n"), - snap_name); - (void) fprintf(stderr, "%s\n", be_err_to_str(err)); - } - -out: - nvlist_free(be_attrs); - return (err); -} - -static int be_do_destroy(int argc, char **argv) { nvlist_t *be_attrs; @@ -1164,100 +1057,6 @@ } static int -be_do_destroy_snapshot(int argc, char **argv) -{ - nvlist_t *be_attrs; - boolean_t suppress_prompt = B_FALSE; - int err = 1; - char c; - char *obe_name; - char *snap_name; - char *sn; - int sz; - - while ((c = getopt(argc, argv, "F")) != -1) { - switch (c) { - case 'F': - suppress_prompt = B_TRUE; - break; - default: - usage(); - return (1); - } - } - - argc -= optind; - argv += optind; - - if (argc != 2) { - usage(); - return (1); - } - - obe_name = argv[0]; - snap_name = argv[1]; - - sz = asprintf(&sn, "%s@%s", obe_name, snap_name); - if (sz < 0) { - (void) fprintf(stderr, _("internal error: " - "out of memory\n")); - return (1); - } - - if (!suppress_prompt && !confirm_destroy(sn)) { - (void) printf(_("%s has not been destroyed.\n"), sn); - free(sn); - return (0); - } - - free(sn); - - - if (be_nvl_alloc(&be_attrs) != 0) - return (1); - - - if (be_nvl_add_string(be_attrs, BE_ATTR_ORIG_BE_NAME, obe_name) != 0) - goto out; - - if (be_nvl_add_string(be_attrs, BE_ATTR_SNAP_NAME, snap_name) != 0) - goto out; - - err = be_destroy_snapshot(be_attrs); - - switch (err) { - case BE_SUCCESS: - (void) printf(_("Destroyed successfully\n")); - break; - case BE_ERR_BE_NOENT: - (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); - break; - case BE_ERR_SS_NOENT: - (void) fprintf(stderr, _("%s does not exist or appear " - "to be a valid snapshot.\nPlease check that the name of " - "the snapshot provided is correct.\n"), snap_name); - break; - case BE_ERR_PERM: - case BE_ERR_ACCESS: - (void) fprintf(stderr, _("Unable to destroy snapshot %s.\n"), - snap_name); - (void) fprintf(stderr, _("You have insufficient privileges to " - "execute this command.\n")); - break; - default: - (void) fprintf(stderr, _("Unable to destroy snapshot %s.\n"), - snap_name); - (void) fprintf(stderr, "%s\n", be_err_to_str(err)); - } - -out: - nvlist_free(be_attrs); - return (err); -} - -static int be_do_list(int argc, char **argv) { be_node_list_t *be_nodes = NULL;
--- a/usr/src/lib/libbe/common/be_list.c Tue Jul 19 10:06:44 2011 -0700 +++ b/usr/src/lib/libbe/common/be_list.c Tue Jul 19 10:35:32 2011 -0700 @@ -488,7 +488,7 @@ * get past the end of the container dataset plus the trailing "/" */ str = str + (strlen(be_container_ds) + 1); - if (be_defaults.be_deflt_bename_starts_with != '\0') { + if (be_defaults.be_deflt_rpool_container) { /* just skip if invalid */ if (!be_valid_be_name(str)) return (BE_SUCCESS);