#!/usr/bin/sh

# $Id: resizevol_chk_maxgrow,v 2.1.6.3 2004/02/14 01:54:52 ptle Exp $
#ident "@(#)sraf:$RCSfile: resizevol_chk_maxgrow,v $	$Revision: 2.1.6.3 $"

#
# Copyright(C) 2001 VERITAS Software Corporation.  ALL RIGHTS RESERVED.
# UNPUBLISHED -- RIGHTS RESERVED UNDER THE COPYRIGHT
# LAWS OF THE UNITED STATES.  USE OF A COPYRIGHT NOTICE
# IS PRECAUTIONARY ONLY AND DOES NOT IMPLY PUBLICATION
# OR DISCLOSURE.
#
# THIS SOFTWARE CONTAINS CONFIDENTIAL INFORMATION AND
# TRADE SECRETS OF VERITAS SOFTWARE.  USE, DISCLOSURE,
# OR REPRODUCTION IS PROHIBITED WITHOUT THE PRIOR
# EXPRESS WRITTEN PERMISSION OF VERITAS SOFTWARE.
#
#               RESTRICTED RIGHTS LEGEND
# USE, DUPLICATION, OR DISCLOSURE BY THE GOVERNMENT IS
# SUBJECT TO RESTRICTIONS AS SET FORTH IN SUBPARAGRAPH
# (C) (1) (ii) OF THE RIGHTS IN TECHNICAL DATA AND
# COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013.
#               VERITAS SOFTWARE
# 1600 PLYMOUTH STREET, MOUNTAIN VIEW, CA 94043
#


# Filename: resizevol_chk_maxgrow 
# 
# resizevol_chk_maxgrow has 4 argments:
# resizevol_chk_maxgrow -g <dgname> <volname> <targetvollen> 
#										
#
# Return value:
#	0: if vollen < the available space
#

# make sure there are four arguments

. ${VOLADM_LIB:-/usr/lib/vxvm/voladm.d/lib}/vxadm_lib.sh

OLD_LOCALE=${LC_ALL}
progname=$0

if [ $# -ne 4 ]
then
	export progname; ewritemsg -M vras.mesg:2401 \
		"vradmin: INTERNAL ERROR: Incorrect number of arguments for $progname." 1>&2
	exit 1
fi

# set locale to English to check for max grow capacity 

LC_ALL=C
export LC_ALL

dgname=$2
vol=$3
size=$4

retMsg=`/usr/sbin/vxassist -g ${dgname} maxgrow ${vol} 2> /dev/null; /usr/bin/echo $?`
retCode=`/usr/bin/echo $retMsg | /usr/bin/awk '{print $NF}'`

if [ "$retCode" -eq "0" ]
then
	max=`/usr/bin/echo ${retMsg} | /usr/bin/awk '{print $9}'`
	if [ -z "`echo $max - $size | bc | grep '^-'`" ]
	then
		exit 0
	fi
fi

# reset locale to the previous one to send message back to the caller
LC_ALL=${OLD_LOCALE}
export LC_ALL

export size; ewritemsg -M vras.mesg:2406 \
	"vradmin: ERROR: Cannot allocate space to grow volume to $size blocks." 1>&2
exit 1 
