13 Commits
16 changed files with 134 additions and 66 deletions

No files matched your search

+25 -16
View File
@@ -6,19 +6,17 @@ status () {
echo "---> ${@}" >&2
}
set -x
: LDAP_ADMIN_PWD=${LDAP_ADMIN_PWD}
: LDAP_DOMAIN=${LDAP_DOMAIN}
: LDAP_ORGANISATION=${LDAP_ORGANISATION}
############ Base config ############
if [ ! -e /var/lib/ldap/docker_bootstrapped ]; then
status "configuring slapd for first run"
status "configuring slapd database"
set -x
: LDAP_ADMIN_PWD=${LDAP_ADMIN_PWD}
: LDAP_DOMAIN=${LDAP_DOMAIN}
: LDAP_ORGANISATION=${LDAP_ORGANISATION}
# permission error on /etc/ldap/slapd.conf if not set?! :'(
adduser openldap root
############ Base config ############
cat <<EOF | debconf-set-selections
slapd slapd/internal/generated_adminpw password ${LDAP_ADMIN_PWD}
slapd slapd/internal/adminpw password ${LDAP_ADMIN_PWD}
@@ -37,8 +35,21 @@ EOF
dpkg-reconfigure -f noninteractive slapd
############ Custom config ############
slapd -h "ldap:/// ldapi:///" -u openldap -g openldap
touch /var/lib/ldap/docker_bootstrapped
else
status "slapd database found"
fi
############ Custom config ############
if [ ! -e /etc/ldap/config/docker_bootstrapped ]; then
status "Custom config"
# permission error on /etc/ldap/slapd.conf if not set?! :'(
adduser openldap root
slapd -h "ldapi:///" -u openldap -g openldap
chown -R openldap:openldap /etc/ldap
# TLS
@@ -69,9 +80,7 @@ EOF
kill -INT `cat /run/slapd/slapd.pid`
unset LDAP_ADMIN_PWD
touch /var/lib/ldap/docker_bootstrapped
touch /etc/ldap/config/docker_bootstrapped
else
status "found already-configured slapd"
+15 -7
View File
@@ -1,6 +1,10 @@
#!/bin/sh
# Tests
# Usage
# sudo ./test.sh
# add -v for verbose mode
verbose=$1
error=0
ok=0
@@ -24,8 +28,11 @@ run_test () {
echo_start $fction
#./test/$1.sh | tee $out 2>&1
./test/$1.sh > $out 2>&1
if [ -z ${verbose} ]; then
./test/$1.sh > $out 2>&1
else
./test/$1.sh | tee $out 2>&1
fi
if [ "$(grep -c "$2" $out)" -eq 0 ]; then
echo_error $fction
@@ -37,11 +44,12 @@ run_test () {
}
./test/tools/prepare.sh
./test/tools/prepare.sh > /dev/null 2>&1
run_test build "Successfully built"
run_test run-simple "dn: dc=example,dc=com"
run_test run-tls "dn: dc=example,dc=com"
./test/tools/end.sh
run_test simple "dn: dc=example,dc=com"
run_test tls "dn: dc=example,dc=com"
run_test db "dn: dc=otherdomain,dc=com"
./test/tools/end.sh > /dev/null 2>&1
echo "------- Test finished -------"
echo $error " failed " $ok " passed"
+6 -2
View File
@@ -1,4 +1,8 @@
#!/bin/sh
#sudo docker.io build -t openldap-test .
sudo docker.io build --no-cache=true -t openldap-test .
dir=$(dirname $0)
. $dir/tools/config.prop
docker.io build -t $openldapTestImage .
#docker.io build --no-cache=true -t openldap-test .
Executable
+23
View File
@@ -0,0 +1,23 @@
#!/bin/sh
dir=$(dirname $0)
. $dir/tools/config.prop
if [ -d "$openldapTestDir" ]; then
rm -r $openldapTestDir
fi
mkdir $openldapTestDir
mkdir $openldapTestDir/db
mkdir $openldapTestDir/config
runOptions="-e LDAP_DOMAIN=otherdomain.com -v $openldapTestDir/db:/var/lib/ldap -v $openldapTestDir/config:/etc/ldap/slapd.d"
. $dir/tools/run-simple.sh
$dir/tools/delete-container.sh
runOptions="-v $openldapTestDir/db:/var/lib/ldap -v $openldapTestDir/config:/etc/ldap/slapd.d"
. $dir/tools/run-simple.sh
ldapsearch -x -h localhost -p 65389 -b dc=otherdomain,dc=com
rm -r $openldapTestDir
$dir/tools/delete-container.sh
-7
View File
@@ -1,7 +0,0 @@
#!/bin/sh
docker.io run --name openldap-test-container -p 65389:389 -d openldap-test
sleep 5
ldapsearch -x -h localhost -p 65389 -b dc=example,dc=com
$(pwd)/test/tools/delete-container.sh
-21
View File
@@ -1,21 +0,0 @@
#!/bin/sh
docker.io run --name openldap-test-container --dns=127.0.0.1 -v `pwd`/test/ssl:/etc/ldap/ssl -p 65389:389 -d openldap-test
cert=$(echo `pwd`/test/ssl/ldap.crt)
certCN=$(openssl x509 -in $cert -subject -noout | sed -n 's/.*CN=\(.*\)\/*\(.*\)/\1/p')
addLine=$(echo "127.0.0.1" $certCN)
echo $addLine >> /etc/hosts
cp /etc/ldap/ldap.conf /etc/ldap/ldap.conf.old
sed -i 's,TLS_CACERT.*,TLS_CACERT '"$cert"',g' /etc/ldap/ldap.conf
sleep 5
ldapsearch -x -h $certCN -p 65389 -b dc=example,dc=com -ZZ
sed -i '/'"$addLine"'/d' /etc/hosts
cp /etc/ldap/ldap.conf.old /etc/ldap/ldap.conf
rm /etc/ldap/ldap.conf.old
$(pwd)/test/tools/delete-container.sh
Executable
+9
View File
@@ -0,0 +1,9 @@
#!/bin/sh
dir=$(dirname $0)
. $dir/tools/config.prop
. $dir/tools/run-simple.sh
ldapsearch -x -h localhost -p 65389 -b dc=example,dc=com
$dir/tools/delete-container.sh
Executable
+9
View File
@@ -0,0 +1,9 @@
#!/bin/sh
dir=$(dirname $0)
. $dir/tools/config.prop
. $dir/tools/run-tls.sh
ldapsearch -x -h $certCN -p 65389 -b dc=example,dc=com -ZZ
. $dir/tools/end-tls.sh
+3
View File
@@ -0,0 +1,3 @@
openldapTestImage=openldap-test
openldapTestContainer=openldap-test-container
openldapTestDir=/osixia-test-docker-openldap
+5 -5
View File
@@ -1,11 +1,11 @@
#!/bin/sh
# remove openldap test container
docker.io ps -a > testcontainer.out
. $(dirname $0)/config.prop
if [ "$(grep -c "openldap-test-container" ./testcontainer.out)" -ne 0 ]; then
# remove openldap test container
res=$(docker.io ps -a | grep -c "$openldapTestContainer")
if [ $res -ne 0 ]; then
docker.io stop openldap-test-container
docker.io rm openldap-test-container
fi
rm testcontainer.out
+5 -5
View File
@@ -1,10 +1,10 @@
#!/bin/sh
# remove openldap test image
docker.io images > testimage.out
. $(dirname $0)/config.prop
if [ "$(grep -c "openldap-test" ./testimage.out)" -ne 0 ]; then
# remove openldap test image
res=$(docker.io images | grep -c "$openldapTestImage")
if [ $res -ne 0 ]; then
docker.io rmi openldap-test
fi
rm testimage.out
+7
View File
@@ -0,0 +1,7 @@
#!/bin/sh
sed -i '/'"$addLine"'/d' /etc/hosts
cp /etc/ldap/ldap.conf.old /etc/ldap/ldap.conf
rm /etc/ldap/ldap.conf.old
$dir/tools/delete-container.sh
+3 -2
View File
@@ -1,4 +1,5 @@
#!/bin/sh
./test/tools/delete-container.sh
./test/tools/delete-image.sh
dir=$(dirname $0)
$dir/delete-container.sh
$dir/delete-image.sh
+3 -1
View File
@@ -1,3 +1,5 @@
#!/bin/sh
./test/tools/delete-container.sh
dir=$(dirname $0)
$dir/delete-container.sh
$dir/delete-image.sh
+5
View File
@@ -0,0 +1,5 @@
#!/bin/sh
echo "docker.io run --name $openldapTestContainer $runOptions -p 65389:389 -d $openldapTestImage"
docker.io run --name $openldapTestContainer $runOptions -p 65389:389 -d $openldapTestImage
sleep 5
+16
View File
@@ -0,0 +1,16 @@
#!/bin/sh
runOptions="--dns=127.0.0.1 -v `pwd`/test/ssl:/etc/ldap/ssl"
. $dir/tools/run-simple.sh
cert=$(echo $dir/ssl/ldap.crt)
certCN=$(openssl x509 -in $cert -subject -noout | sed -n 's/.*CN=\(.*\)\/*\(.*\)/\1/p')
addLine=$(echo "127.0.0.1" $certCN)
echo $addLine >> /etc/hosts
cp /etc/ldap/ldap.conf /etc/ldap/ldap.conf.old
sed -i 's,TLS_CACERT.*,TLS_CACERT '"$cert"',g' /etc/ldap/ldap.conf
sleep 5