1116 beadm *_snap commands shouldn't exist
authoreschrock
Tue, 19 Jul 2011 09:54:12 -0700
changeset 13405 fee421268ea6
parent 13404 4a1868d4ae91
child 13406 37121c2f94b0
1116 beadm *_snap commands shouldn't exist 1208 beadm doesn't show BE snapshots Reviewed by: Dan McDonald <[email protected]> Reviewed by: Igor Kozhukhov <[email protected]> Reviewed by: Gary Mills <[email protected]> Reviewed by: Gordon Ross <[email protected]> Approved by: Eric Schrock <[email protected]>
usr/src/cmd/beadm/beadm.c
usr/src/lib/libbe/common/be_list.c
--- a/usr/src/cmd/beadm/beadm.c	Wed Jun 22 10:37:21 2011 -0700
+++ b/usr/src/cmd/beadm/beadm.c	Tue Jul 19 09:54:12 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	Wed Jun 22 10:37:21 2011 -0700
+++ b/usr/src/lib/libbe/common/be_list.c	Tue Jul 19 09:54:12 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);