Browse Source

Merge branch 'feature-clean' into release-0.4.0

Bertrand Gouny 11 years ago
parent
commit
9c542cafe2
10 changed files with 65 additions and 36 deletions
  1. 22 13
      slapd.sh
  2. 12 5
      test.sh
  3. 6 2
      test/build.sh
  4. 5 2
      test/run-simple.sh
  5. 6 3
      test/run-tls.sh
  6. 2 0
      test/tools/config.prop
  7. 4 4
      test/tools/delete-container.sh
  8. 4 4
      test/tools/delete-image.sh
  9. 2 2
      test/tools/end.sh
  10. 2 1
      test/tools/prepare.sh

+ 22 - 13
slapd.sh

@@ -6,19 +6,17 @@ status () {
   echo "---> ${@}" >&2
 }
 
-if [ ! -e /var/lib/ldap/docker_bootstrapped ]; then
-  status "configuring slapd for first run"
 
-  set -x
-  : LDAP_ADMIN_PWD=${LDAP_ADMIN_PWD}
-  : LDAP_DOMAIN=${LDAP_DOMAIN}
-  : LDAP_ORGANISATION=${LDAP_ORGANISATION}
+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 ############
+if [ ! -e /var/lib/ldap/docker_bootstrapped ]; then
+  status "configuring slapd database"
 
-  ############ 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,7 +35,20 @@ EOF
 
   dpkg-reconfigure -f noninteractive slapd
 
-  ############ Custom config ############
+  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 "ldap:/// ldapi:///" -u openldap -g openldap 
   chown -R openldap:openldap /etc/ldap
 
@@ -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"

+ 12 - 5
test.sh

@@ -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,11 @@ 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
+./test/tools/end.sh > /dev/null 2>&1
 
 echo "------- Test finished -------"
 echo $error " failed " $ok " passed"

+ 6 - 2
test/build.sh

@@ -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
+
+sudo docker.io build -t $openldapTestImage .
+#sudo docker.io build --no-cache=true -t openldap-test .
 

+ 5 - 2
test/run-simple.sh

@@ -1,7 +1,10 @@
 #!/bin/sh
 
-docker.io run --name openldap-test-container -p 65389:389 -d openldap-test
+dir=$(dirname $0)
+. $dir/tools/config.prop
+
+docker.io run --name $openldapTestContainer -p 65389:389 -d $openldapTestImage
 sleep 5
 ldapsearch -x -h localhost -p 65389 -b dc=example,dc=com
 
-$(pwd)/test/tools/delete-container.sh
+$dir/tools/delete-container.sh

+ 6 - 3
test/run-tls.sh

@@ -1,8 +1,11 @@
 #!/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
+dir=$(dirname $0)
+. $dir/tools/config.prop
 
-cert=$(echo `pwd`/test/ssl/ldap.crt)
+docker.io run  --name $openldapTestContainer --dns=127.0.0.1 -v `pwd`/test/ssl:/etc/ldap/ssl -p 65389:389 -d $openldapTestImage
+
+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)
 
@@ -18,4 +21,4 @@ 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
+$dir/tools/delete-container.sh

+ 2 - 0
test/tools/config.prop

@@ -0,0 +1,2 @@
+openldapTestImage=openldap-test
+openldapTestContainer=openldap-test-container

+ 4 - 4
test/tools/delete-container.sh

@@ -1,11 +1,11 @@
 #!/bin/sh
 
+. $(dirname $0)/config.prop
+
 # remove openldap test container
-docker.io ps -a > testcontainer.out
+res=$(docker.io ps -a | grep -c "$openldapTestContainer")
 
-if [ "$(grep -c "openldap-test-container" ./testcontainer.out)" -ne 0 ]; then
+if [ $res -ne 0 ]; then
   docker.io stop openldap-test-container
   docker.io rm openldap-test-container
 fi
-
-rm testcontainer.out

+ 4 - 4
test/tools/delete-image.sh

@@ -1,10 +1,10 @@
 #!/bin/sh
 
+. $(dirname $0)/config.prop
+
 # remove openldap test image
-docker.io images > testimage.out
+res=$(docker.io images | grep -c "$openldapTestImage")
 
-if [ "$(grep -c "openldap-test" ./testimage.out)" -ne 0 ]; then
+if [ $res -ne 0 ]; then
   docker.io rmi openldap-test
 fi
-
-rm testimage.out

+ 2 - 2
test/tools/end.sh

@@ -1,4 +1,4 @@
 #!/bin/sh
 
-./test/tools/delete-container.sh
-./test/tools/delete-image.sh
+$(dirname $0)/delete-container.sh
+$(dirname $0)/delete-image.sh

+ 2 - 1
test/tools/prepare.sh

@@ -1,3 +1,4 @@
 #!/bin/sh
 
-./test/tools/delete-container.sh
+$(dirname $0)/delete-container.sh
+$(dirname $0)/delete-image.sh