From f9531ab0803cbafcb68003f3470307e4b826129f Mon Sep 17 00:00:00 2001 From: Yu Jian Date: Tue, 11 Dec 2012 20:51:32 +0800 Subject: [PATCH] LU-2420 tests: add add_group() and add_user() This patch adds add_group() and add_user() functions into the test-framework.sh. They are used by setup_posix_users() in posix.sh. This patch is backported from commit 34a6092 for LU-1661. Signed-off-by: Yu Jian Change-Id: I33baec4abe60752ba236205e03d607a5da250216 Reviewed-on: http://review.whamcloud.com/4797 Tested-by: Hudson Reviewed-by: Emoly Liu Reviewed-by: Minh Diep Tested-by: Maloo Reviewed-by: Oleg Drokin --- lustre/tests/test-framework.sh | 57 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/lustre/tests/test-framework.sh b/lustre/tests/test-framework.sh index 8ae4f25..45d07cf 100644 --- a/lustre/tests/test-framework.sh +++ b/lustre/tests/test-framework.sh @@ -3753,6 +3753,63 @@ setstripe_nfsserver () { do_nodev $nfsserver lfs setstripe "$@" } +# Check and add a test group. +add_group() { + local group_id=$1 + local group_name=$2 + local rc=0 + + local gid=$(getent group $group_name | cut -d: -f3) + if [[ -n "$gid" ]]; then + [[ "$gid" -eq "$group_id" ]] || { + error_noexit "inconsistent group ID:" \ + "new: $group_id, old: $gid" + rc=1 + } + else + groupadd -g $group_id $group_name + rc=${PIPESTATUS[0]} + fi + + return $rc +} + +# Check and add a test user. +add_user() { + local user_id=$1 + shift + local user_name=$1 + shift + local group_name=$1 + shift + local home=$1 + shift + local opts="$@" + local rc=0 + + local uid=$(getent passwd $user_name | cut -d: -f3) + if [[ -n "$uid" ]]; then + if [[ "$uid" -eq "$user_id" ]]; then + local dir=$(getent passwd $user_name | cut -d: -f6) + if [[ "$dir" != "$home" ]]; then + mkdir -p $home + usermod -d $home $user_name + rc=${PIPESTATUS[0]} + fi + else + error_noexit "inconsistent user ID:" \ + "new: $user_id, old: $uid" + rc=1 + fi + else + mkdir -p $home + useradd -M -u $user_id -d $home -g $group_name $opts $user_name + rc=${PIPESTATUS[0]} + fi + + return $rc +} + check_runas_id_ret() { local myRC=0 local myRUNAS_UID=$1 -- 1.8.3.1