Fix up 064 for quota checks.

This commit is contained in:
Tim Shimmin
2001-12-03 06:08:15 +00:00
parent be7aadc67e
commit 8c471c83d0
2 changed files with 63 additions and 65 deletions
+1 -1
View File
@@ -104,7 +104,7 @@ while [ $i -le 9 ]; do
echo "restoring from df.level$i" echo "restoring from df.level$i"
_do_restore_file_cum -l $i _do_restore_file_cum -l $i
echo "ls -l restore_dir" echo "ls -l restore_dir"
ls -lR $restore_dir | _ls_size_filter ls -lR $restore_dir | _ls_size_filter | _check_quota_file
i=`expr $i + 1` i=`expr $i + 1`
done done
+62 -64
View File
@@ -1033,12 +1033,15 @@ _do_restore_toc()
{ {
echo "Contents of dump ..." echo "Contents of dump ..."
opts="$_restore_debug -f $dump_file -t" opts="$_restore_debug -f $dump_file -t"
echo "xfsrestore $opts" | _dir_filter echo "xfsrestore $opts" | _dir_filter
cd $SCRATCH_MNT # for IRIX which needs xfs cwd cd $SCRATCH_MNT # for IRIX which needs xfs cwd
xfsrestore $opts 2>&1 | tee -a $seq.full | _dump_filter |\ xfsrestore $opts 2>&1 | tee -a $seq.full | _dump_filter_main |\
_check_quota_file |\
$AWK_PROG 'NF != 1 { print; next } $AWK_PROG 'NF != 1 { print; next }
{files = sprintf("%s\n%s", files, $1)} {files = sprintf("%s\n%s", files, $1)}
END { print files | "sort" } ' END { print files | "sort" } '
# the above awk code is to alpha sort only the output
# of files (and not the verbose restore msgs)
cd $here # put back cd $here # put back
} }
@@ -1201,6 +1204,49 @@ _do_invutil()
| tee -a $seq.full | _invutil_filter | tee -a $seq.full | _invutil_filter
} }
#
# ensure we can find the user quota msg if user quotas are on
# ensure we can find the group quota msg if group quotas are on
#
_check_quota()
{
usermsg=$1
groupmsg=$2
uquota=0
gquota=0
$here/src/feature -U $SCRATCH_DEV && uquota=1
$here/src/feature -G $SCRATCH_DEV && gquota=1
$AWK_PROG -v uquota=$uquota -v gquota=$gquota -v full=$seq.full \
-v usermsg=$usermsg -v groupmsg=$groupmsg '
$0 ~ groupmsg {
print "Found group quota:", $0 >>full
found_gquota = 1
if (!gquota) {
print "Found extra:", $0
}
next
}
$0 ~ usermsg {
print "Found user quota:", $0 >>full
found_uquota = 1
if (!uquota) {
print "Found extra:", $0
}
next
}
{ print }
END {
if (uquota && !found_uquota) {
print "Missing: ", usermsg
}
if (gquota && !found_gquota) {
print "Missing: ", groupmsg
}
}
'
}
# #
# Look for: # Look for:
# xfsdump: saving user quota information for: SCRATCH_MNT # xfsdump: saving user quota information for: SCRATCH_MNT
@@ -1210,38 +1256,8 @@ _do_invutil()
# #
_check_quota_dumprestore() _check_quota_dumprestore()
{ {
uquota=0 _check_quota 'user quota information' \
gquota=0 'group quota information'
$here/src/feature -U $SCRATCH_DEV && uquota=1
$here/src/feature -G $SCRATCH_DEV && gquota=1
$AWK_PROG -v uquota=$uquota -v gquota=$gquota -v full=$seq.full '
/user quota information/ {
print "Found user quota:", $0 >>full
found_uquota = 1
if (!uquota) {
print "Found extra:", $0
}
next
}
/group quota information/ {
print "Found group quota:", $0 >>full
found_gquota = 1
if (!gquota) {
print "Found extra:", $0
}
next
}
{ print }
END {
if (uquota && !found_uquota) {
print "Missing saving/restoring uquota msg"
}
if (gquota && !found_gquota) {
print "Missing saving/restoring gquota msg"
}
}
'
} }
# #
@@ -1249,39 +1265,21 @@ _check_quota_dumprestore()
# Only in RESTORE_DIR: xfsdump_quotas # Only in RESTORE_DIR: xfsdump_quotas
# Only in RESTORE_DIR: xfsdump_quotas_group # Only in RESTORE_DIR: xfsdump_quotas_group
# #
_check_quota_diff() _check_quota_diff()
{ {
uquota=0 _check_quota 'Only in RESTORE_DIR: xfsdump_quotas' \
gquota=0 'Only in RESTORE_DIR: xfsdump_quotas_group'
$here/src/feature -U $SCRATCH_DEV && uquota=1 }
$here/src/feature -G $SCRATCH_DEV && gquota=1
$AWK_PROG -v uquota=$uquota -v gquota=$gquota ' #
/Only in RESTORE_DIR: xfsdump_quotas_group/ { # Look for the quota file in the output
found_gquota = 1 # Ensure that it is there if it should be
if (!gquota) { # Filter it out so that the output is always the same
print "Found extra:", $0 # even with no quotas
} #
next _check_quota_file()
} {
/Only in RESTORE_DIR: xfsdump_quotas/ { _check_quota 'xfsdump_quotas' 'xfsdump_quotas_group'
found_uquota = 1
if (!uquota) {
print "Found extra:", $0
}
next
}
{ print }
END {
if (uquota && !found_uquota) {
print "Missing xfsdump_quotas msg"
}
if (gquota && !found_gquota) {
print "Missing xfsdump_quotas_group msg"
}
}
'
} }
# make sure this script returns success # make sure this script returns success