OpenSolaris_b135/pkgdefs/SUNWldomr.v/preremove
#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (the "License").
# You may not use this file except in compliance with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
#
# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
#
PATH=/usr/bin:/usr/sbin:${PATH}
export PATH
EXIT=0
AUTH_ATTR=$BASEDIR/etc/security/auth_attr
USER_ATTR=$BASEDIR/etc/user_attr
GREP=/usr/bin/grep
CAT=/usr/bin/cat
ED=/usr/bin/ed
not_installed()
{
driver=$1
grep "^${driver} " ${BASEDIR}/etc/name_to_major > /dev/null 2>&1
if [ "$?" -eq 0 ]; then
return 1
else
return 0
fi
}
#
# Remove LDoms vntsd authorization entries from etc/security/auth_attr, which
# were added during installation. These define authorizations used by LDoms
# vntsd daemon.
#
remove_auth_entries()
{
#
# Remove entries from auth_attr file, if needed
#
$GREP '^solaris.vntsd.:' ${AUTH_ATTR} >/dev/null 2>&1
if [ $? -eq 0 ] ; then
$ED -s ${AUTH_ATTR} <<- EOF > /dev/null 2>&1
g/svc-vntsd/d
g/^solaris.vntsd.:/d
g/^solaris.vntsd.grant/d
g/^solaris.vntsd.consoles/d
w
q
EOF
fi
}
#
# Delete entries that were added by svc-vntsd to etc/user_attr file.
#
delete_vntsd_entry()
{
vntsd_entry=$1
$GREP ${vntsd_entry} ${USER_ATTR} >/dev/null 2>&1
if [ $? -eq 0 ] ; then
$ED -s ${USER_ATTR} <<- EOF > /dev/null 2>&1
g/${vntsd_entry}/d
w
q
EOF
fi
}
#
# Remove vntsd attributes from etc/user_attr file.
#
remove_vntsd_attr()
{
if [ $# -eq 1 ] ; then
replacement=""
else
replacement=$2
fi
vntsd_attr=$1
$GREP ${vntsd_attr} ${USER_ATTR} >/dev/null 2>&1
if [ $? -eq 0 ] ; then
$ED -s ${USER_ATTR} <<- EOF > /dev/null 2>&1
g/${vntsd_attr}/s/${vntsd_attr}/${replacement}/g
w
q
EOF
fi
}
#
# Remove LDoms vntsd user/role entry from /etc/user_attr, which were added
# during installation. This defines the user/role used by useradd/roleadd.
#
remove_user_entries()
{
#
# Delete entries that may be added during installation.
#
delete_vntsd_entry 'svc-vntsd'
delete_vntsd_entry '^root::::type=normal;auths=solaris.vntsd.grant;lock_after_retries=0$'
#
# Remove vntsd attributes for root user
# Possible entries are:
#
remove_vntsd_attr ",solaris.vntsd.grant$"
remove_vntsd_attr ",solaris.vntsd.grant;" ";"
remove_vntsd_attr "solaris.vntsd.grant,"
remove_vntsd_attr "auths=solaris.vntsd.grant$"
remove_vntsd_attr "auths=solaris.vntsd.grant;"
}
# Main
remove_auth_entries
remove_user_entries
#
# Unload and remove drivers
#
not_installed cnex || rem_drv -b "${BASEDIR}" cnex || EXIT=1
not_installed drctl || rem_drv -b "${BASEDIR}" drctl || EXIT=1
not_installed vlds || rem_drv -b "${BASEDIR}" vlds || EXIT=1
not_installed vcc || rem_drv -b "${BASEDIR}" vcc || EXIT=1
not_installed vdc || rem_drv -b "${BASEDIR}" vdc || EXIT=1
not_installed vds || rem_drv -b "${BASEDIR}" vds || EXIT=1
not_installed vldc || rem_drv -b "${BASEDIR}" vldc || EXIT=1
not_installed vnet || rem_drv -b "${BASEDIR}" vnet || EXIT=1
not_installed vsw || rem_drv -b "${BASEDIR}" vsw || EXIT=1
exit ${EXIT}