NEW_KRB5CCNAME=/tmp/ad_test_ccname
+NET=/home/kai/samba/s3/bin/net
+CONFIG_FILE=`dirname $0`/smb.conf
+
--- /dev/null
+#!/bin/bash
+
+ITERATIONS=100
+
+source `dirname $0`/utils.sh
+
+PRINCIPAL=$(get_principal $1)
+PASSWORD=$(get_password $1)
+REALM=$(get_realm $1)
+NT_DOM=$(get_nt_dom $1)
+
+join_domain () {
+ SERVER=$1
+ ${NET} ads join -k -s $CONFIG_FILE -S ${SERVER} > /dev/null
+ RET=$?
+ if [ $RET -ne 0 ]; then
+ echo "${NET} returned error: $RET"
+ exit 1
+ fi
+}
+
+leave_domain () {
+ SERVER=$1
+ ${NET} ads leave -k -s $CONFIG_FILE -S ${SERVER} > /dev/null
+ if [ $RET -ne 0 ]; then
+ echo "${NET} returned error: $RET"
+ exit 1
+ fi
+}
+
+set_up () {
+ set_krb_env
+ setup_kinit
+ call_kinit "${PRINCIPAL}" "${PASSWORD}"
+ write_configfile "${REALM}" "${NT_DOM}"
+}
+
+tear_down () {
+ ${KDESTROY}
+ restore_krb_env
+}
+
+set_up
+
+START_TIME=$(start_timer)
+
+for i in $( ${SEQ} 1 $ITERATIONS ); do
+ join_domain $2
+ leave_domain $2
+done
+
+STOP_TIME=$(stop_timer)
+
+TOTAL_TIME=$( total_time $START_TIME $STOP_TIME )
+
+echo "Total time: ${TOTAL_TIME}s"
+
+LOGINS_PER_MINUTE=$(iterations_per_minute $START_TIME $STOP_TIME $ITERATIONS)
+
+echo "Performed $LOGINS_PER_MINUTE join/leave cycles per minute"
+
+tear_down
+
START_TIME=$( start_timer )
for i in $(${SEQ} 1 $ITERATIONS); do
- echo ${PASSWORD} | ${KINIT} ${PRINCIPAL} > /dev/null
- if [ $? -ne 0 ]; then
- echo "kinit returned an error"
- exit 1
- fi
+ call_kinit "${PRINCIPAL}" "${PASSWORD}"
${KDESTROY}
done
fi
}
+write_configfile () {
+ REALM=$1
+ NT_DOM=$2
+ echo -e "[global]" > $CONFIG_FILE
+ echo -e "\trealm = $REALM" >> $CONFIG_FILE
+ echo -e "\tworkgroup = $NT_DOM" >> $CONFIG_FILE
+ echo -e "\tsecurity = ADS" >> $CONFIG_FILE
+}
+
+call_kinit () {
+ PRINCIPAL=$1
+ PASSWORD=$2
+ echo "${PASSWORD}" | ${KINIT} ${PRINCIPAL} > /dev/null
+ RET=$?
+ if [ $RET -ne 0 ]; then
+ echo "kinit returned an error: $RET"
+ exit 1
+ fi
+}