e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek# CDDL HEADER START
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek# The contents of this file are subject to the terms of the
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek# Common Development and Distribution License (the "License").
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek# You may not use this file except in compliance with the License.
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek# See the License for the specific language governing permissions
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek# and limitations under the License.
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek# When distributing Covered Code, include this CDDL HEADER in each
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek# If applicable, add the following below this CDDL HEADER, with the
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek# fields enclosed by brackets "[]" replaced with your own identifying
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek# information: Portions Copyright [yyyy] [name of copyright owner]
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek# CDDL HEADER END
ab5dfd5e82c7de6e8a7172573741f3c5890a82fa# Copyright 2010 Sun Microsystems, Inc. All rights reserved.
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek# Use is subject to license terms.
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek# common shell script functions
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek# options processing
ab5dfd5e82c7de6e8a7172573741f3c5890a82fa# If we weren't passed at least two arguments, exit now.
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek# check for bad or duplicate options
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek if [ -n "$options_repeat" ]; then
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek [ $? = 0 ] && break
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek ( echo $options_seen | grep $opt >/dev/null ) &&
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek# check for a help request
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek# process options
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinekif [[ -n "$opt_n" ]]; then
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek # in '-n' mode we should never return success (since we haven't
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek # actually done anything). so override ZONE_SUBPROC_OK here.
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek# We want uninstall to work in the face of various problems, such as a
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek# zone with no delegated root dataset or multiple active datasets, so we
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek# don't use the common functions. Instead, we do our own work and
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek# are tolerant of errors.
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek# find all the zone BE datasets.
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek/sbin/zfs list -H -t filesystem -o name -r $ZONEPATH_RDS | while read fs; do
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek # only look at filesystems directly below $ZONEPATH_RDS
e71ca95ca6de23d33b54cb55cefdef30bc7c969bGerald Jelinek [[ "$fs" != ~()($ZONEPATH_RDS/+([^/])) ]] && continue