source: vendor/current/examples/ad-bench/time_user.sh@ 740

Last change on this file since 740 was 740, checked in by Silvan Scherrer, 12 years ago

Samba Server: update vendor to 3.6.0

File size: 2.8 KB
Line 
1#!/bin/bash
2# AD-Bench user add/remove benchmark
3#
4# Copyright (C) 2009 Kai Blin <kai@samba.org>
5#
6# This file is part of AD-Bench, an Active Directory benchmark tool
7#
8# AD-Bench is free software: you can redistribute it and/or modify
9# it under the terms of the GNU General Public License as published by
10# the Free Software Foundation, either version 3 of the License, or
11# (at your option) any later version.
12#
13# AD-Bench is distributed in the hope that it will be useful,
14# but WITHOUT ANY WARRANTY; without even the implied warranty of
15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16# GNU General Public License for more details.
17#
18# You should have received a copy of the GNU General Public License
19# along with AD-Bench. If not, see <http://www.gnu.org/licenses/>.
20
21ITERATIONS=100
22
23source `dirname $0`/utils.sh
24
25PRINCIPAL=$(get_principal $1)
26PASSWORD=$(get_password $1)
27REALM=$(get_realm $1)
28NT_DOM=$(get_nt_dom $1)
29SERVER=$2
30
31add_user () {
32 USER=$1
33 ${NET} ads user add "${USER}" 'Sup3rS3cr3T!' -k -s $CONFIG_FILE -S ${SERVER} > /dev/null
34 RET=$?
35 if [ $RET -ne 0 ]; then
36 echo "${NET} ads user add returned error: $RET"
37 exit 1
38 fi
39}
40
41del_user () {
42 USER=$1
43 ${NET} ads user delete "${USER}" -k -s $CONFIG_FILE -S ${SERVER} > /dev/null
44 RET=$?
45 if [ $RET -ne 0 ]; then
46 echo "${NET} returned error: $RET"
47 exit 1
48 fi
49}
50
51enum_user () {
52 ${NET} ads user -k -s $CONFIG_FILE -S $SERVER > /dev/null
53 RET=$?
54 if [ $RET -ne 0 ]; then
55 echo "${NET} returned error: $RET"
56 exit 1
57 fi
58}
59
60info_user () {
61 USER=$1
62 ${NET} ads user info "${USER}" -k -s $CONFIG_FILE -S ${SERVER} > /dev/null
63 RET=$?
64 if [ $RET -ne 0 ]; then
65 echo "${NET} returned error: $RET"
66 exit 1
67 fi
68}
69
70set_up () {
71 set_krb_env
72 setup_kinit
73 call_kinit "${PRINCIPAL}" "${PASSWORD}"
74 write_configfile "${REALM}" "${NT_DOM}"
75}
76
77tear_down () {
78 ${KDESTROY}
79 restore_krb_env
80}
81
82set_up
83
84echo -e "\tUSER $SERVER"
85
86START_TIME=$(start_timer)
87
88echo -en "\t"
89for i in $( ${SEQ} 1 $ITERATIONS ); do
90 USER=$( echo "ad_test_$(pad_number $i 3)" )
91 add_user $USER
92 echo -n "."
93done
94echo "done"
95
96enum_user
97
98# Requires winbind, which requires root perms to start. Skip this for now
99#echo -en "\t"
100#for i in $( ${SEQ} 1 $ITERATIONS ); do
101# USER=$( echo "ad_test_$(pad_number $i 3)" )
102# info_user $USER
103# echo -n "."
104#done
105#echo "done"
106
107echo -en "\t"
108for i in $( ${SEQ} 1 $ITERATIONS ); do
109 USER=$( echo "ad_test_$(pad_number $i 3)" )
110 del_user $USER
111 echo -n "."
112done
113echo "done"
114
115STOP_TIME=$(stop_timer)
116
117TOTAL_TIME=$( total_time $START_TIME $STOP_TIME )
118
119echo -e "\t\ttotal time:\t\t${TOTAL_TIME}s"
120
121LOGINS_PER_MINUTE=$(iterations_per_minute $START_TIME $STOP_TIME $ITERATIONS)
122
123echo -e "\t\titerations/min:\t\t$LOGINS_PER_MINUTE"
124
125tear_down
Note: See TracBrowser for help on using the repository browser.