From 0de9819da378590fee73c805b5e52661452eb141 Mon Sep 17 00:00:00 2001
From: Robin McCorkell <rmccorkell@owncloud.com>
Date: Wed, 9 Sep 2015 22:06:41 +0100
Subject: [PATCH] Replace Swift Docker test with Ceph image

---
 ...ift-morrisjobke.sh => start-swift-ceph.sh} | 50 ++++++++++++-------
 ...wift-morrisjobke.sh => stop-swift-ceph.sh} | 10 ++--
 2 files changed, 38 insertions(+), 22 deletions(-)
 rename apps/files_external/tests/env/{start-swift-morrisjobke.sh => start-swift-ceph.sh} (53%)
 rename apps/files_external/tests/env/{stop-swift-morrisjobke.sh => stop-swift-ceph.sh} (72%)

diff --git a/apps/files_external/tests/env/start-swift-morrisjobke.sh b/apps/files_external/tests/env/start-swift-ceph.sh
similarity index 53%
rename from apps/files_external/tests/env/start-swift-morrisjobke.sh
rename to apps/files_external/tests/env/start-swift-ceph.sh
index d6cd0d22e9d..c2e7d4c1ae1 100755
--- a/apps/files_external/tests/env/start-swift-morrisjobke.sh
+++ b/apps/files_external/tests/env/start-swift-ceph.sh
@@ -9,8 +9,8 @@
 # Set environment variable DEBUG to print config file
 #
 # @author Morris Jobke
-# @copyright 2015 Morris Jobke <hey@morrisjobke.de>
-#
+# @author Robin McCorkell
+# @copyright 2015 ownCloud
 
 if ! command -v docker >/dev/null 2>&1; then
     echo "No docker executable found - skipped docker setup"
@@ -19,48 +19,64 @@ fi
 
 echo "Docker executable found - setup docker"
 
-echo "Fetch recent morrisjobke/docker-swift-onlyone docker image"
-docker pull morrisjobke/docker-swift-onlyone
+docker_image=xenopathic/ceph-keystone
+
+echo "Fetch recent ${docker_image} docker image"
+docker pull ${docker_image}
 
 # retrieve current folder to place the config in the parent folder
-thisFolder=`echo $0 | replace "env/start-swift-morrisjobke.sh" ""`
+thisFolder=`echo $0 | replace "env/start-swift-ceph.sh" ""`
 
 if [ -z "$thisFolder" ]; then
     thisFolder="."
 fi;
 
-container=`docker run -d -e SWIFT_SET_PASSWORDS=true morrisjobke/docker-swift-onlyone`
+port=5001
+
+user=test
+pass=testing
+tenant=testenant
+region=testregion
+service=testceph
+
+container=`docker run -d \
+    -e KEYSTONE_PUBLIC_PORT=${port} \
+    -e KEYSTONE_ADMIN_USER=${user} \
+    -e KEYSTONE_ADMIN_PASS=${pass} \
+    -e KEYSTONE_ADMIN_TENANT=${tenant} \
+    -e KEYSTONE_ENDPOINT_REGION=${region} \
+    -e KEYSTONE_SERVICE=${service} \
+    ${docker_image}`
 
 host=`docker inspect $container | grep IPAddress | cut -d '"' -f 4`
 
 
-echo "swift container: $container"
+echo "${docker_image} container: $container"
 
 # put container IDs into a file to drop them after the test run (keep in mind that multiple tests run in parallel on the same host)
-echo $container >> $thisFolder/dockerContainerMorrisJobke.$EXECUTOR_NUMBER.swift
+echo $container >> $thisFolder/dockerContainerCeph.$EXECUTOR_NUMBER.swift
 
 # TODO find a way to determine the successful initialization inside the docker container
-echo "Waiting 15 seconds for swift initialization ... "
-sleep 15
-
-user=test:tester
-password=`docker logs $container | grep "user_test_tester " | cut -d " " -f3`
+echo "Waiting 20 seconds for ceph initialization ... "
+sleep 20
 
 cat > $thisFolder/config.swift.php <<DELIM
 <?php
 
 return array(
     'run'=>true,
-    'url'=>'http://$host:8080/auth/v1.0',
+    'url'=>'http://$host:$port/v2.0',
     'user'=>'$user',
-    'key'=>'$password',
+    'tenant'=>'$tenant',
+    'password'=>'$pass',
+    'service_name'=>'$service',
     'bucket'=>'swift',
-    'region' => 'DFW',
+    'region' => '$region',
 );
 
 DELIM
 
 if [ -n "$DEBUG" ]; then
     cat $thisFolder/config.swift.php
-    cat $thisFolder/dockerContainerMorrisJobke.$EXECUTOR_NUMBER.swift
+    cat $thisFolder/dockerContainerCeph.$EXECUTOR_NUMBER.swift
 fi
diff --git a/apps/files_external/tests/env/stop-swift-morrisjobke.sh b/apps/files_external/tests/env/stop-swift-ceph.sh
similarity index 72%
rename from apps/files_external/tests/env/stop-swift-morrisjobke.sh
rename to apps/files_external/tests/env/stop-swift-ceph.sh
index f1660e65854..edac1389a78 100755
--- a/apps/files_external/tests/env/stop-swift-morrisjobke.sh
+++ b/apps/files_external/tests/env/stop-swift-ceph.sh
@@ -6,8 +6,8 @@
 # against. It will also revert the config changes done in start step.
 #
 # @author Morris Jobke
-# @copyright 2015 Morris Jobke <hey@morrisjobke.de>
-#
+# @author Robin McCorkell
+# @copyright 2015 ownCloud
 
 if ! command -v docker >/dev/null 2>&1; then
     echo "No docker executable found - skipped docker stop"
@@ -17,14 +17,14 @@ fi
 echo "Docker executable found - stop and remove docker containers"
 
 # retrieve current folder to remove the config from the parent folder
-thisFolder=`echo $0 | replace "env/stop-swift-morrisjobke.sh" ""`
+thisFolder=`echo $0 | replace "env/stop-swift-ceph.sh" ""`
 
 if [ -z "$thisFolder" ]; then
     thisFolder="."
 fi;
 
 # stopping and removing docker containers
-for container in `cat $thisFolder/dockerContainerMorrisJobke.$EXECUTOR_NUMBER.swift`; do
+for container in `cat $thisFolder/dockerContainerCeph.$EXECUTOR_NUMBER.swift`; do
     echo "Stopping and removing docker container $container"
     # kills running container and removes it
     docker rm -f $container
@@ -32,5 +32,5 @@ done;
 
 # cleanup
 rm $thisFolder/config.swift.php
-rm $thisFolder/dockerContainerMorrisJobke.$EXECUTOR_NUMBER.swift
+rm $thisFolder/dockerContainerCeph.$EXECUTOR_NUMBER.swift
 
-- 
GitLab