[files_external] sftp teststags/v8.1.0alpha1
parent::setUp(); | parent::setUp(); | ||||
$id = $this->getUniqueID(); | $id = $this->getUniqueID(); | ||||
$this->config = include('files_external/tests/config.php'); | |||||
if ( ! is_array($this->config) or ! isset($this->config['sftp']) or ! $this->config['sftp']['run']) { | |||||
$this->config = include('files_external/tests/config.sftp.php'); | |||||
if (!is_array($this->config) or !$this->config['run']) { | |||||
$this->markTestSkipped('SFTP backend not configured'); | $this->markTestSkipped('SFTP backend not configured'); | ||||
} | } | ||||
$this->config['sftp']['root'] .= '/' . $id; //make sure we have an new empty folder to work in | |||||
$this->instance = new \OC\Files\Storage\SFTP($this->config['sftp']); | |||||
$this->config['root'] .= '/' . $id; //make sure we have an new empty folder to work in | |||||
$this->instance = new \OC\Files\Storage\SFTP($this->config); | |||||
$this->instance->mkdir('/'); | $this->instance->mkdir('/'); | ||||
} | } | ||||
#!/bin/bash | |||||
# | |||||
# ownCloud | |||||
# | |||||
# This script start a docker container to test the files_external tests | |||||
# against. It will also change the files_external config to use the docker | |||||
# container as testing environment. This is reverted in the stop step.W | |||||
# | |||||
# Set environment variable DEBUG to print config file | |||||
# | |||||
# @author Morris Jobke | |||||
# @copyright 2015 Morris Jobke <hey@morrisjobke.de> | |||||
# | |||||
if ! command -v docker >/dev/null 2>&1; then | |||||
echo "No docker executable found - skipped docker setup" | |||||
exit 0; | |||||
fi | |||||
echo "Docker executable found - setup docker" | |||||
echo "Fetch recent atmoz/sftp docker image" | |||||
docker pull atmoz/sftp | |||||
# retrieve current folder to place the config in the parent folder | |||||
thisFolder=`echo $0 | replace "env/start-sftp-atmoz.sh" ""` | |||||
if [ -z "$thisFolder" ]; then | |||||
thisFolder="." | |||||
fi; | |||||
user=test | |||||
password=12345 | |||||
container=`docker run -d atmoz/sftp $user:$password:1001` | |||||
host=`docker inspect $container | grep IPAddress | cut -d '"' -f 4` | |||||
cat > $thisFolder/config.sftp.php <<DELIM | |||||
<?php | |||||
return array( | |||||
'run'=>true, | |||||
'host'=>'$host', | |||||
'user'=>'$user', | |||||
'password'=>'$password', | |||||
'root'=>'', | |||||
); | |||||
DELIM | |||||
echo "sftp 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/dockerContainerAtmoz.$EXECUTOR_NUMBER.sftp | |||||
if [ -n "$DEBUG" ]; then | |||||
cat $thisFolder/config.sftp.php | |||||
cat $thisFolder/dockerContainerAtmoz.$EXECUTOR_NUMBER.sftp | |||||
fi | |||||
# TODO find a way to determine the successful initialization inside the docker container | |||||
echo "Waiting 5 seconds for sftp initialization ... " | |||||
sleep 5 | |||||
#!/bin/bash | |||||
# | |||||
# ownCloud | |||||
# | |||||
# This script stops the docker container the files_external tests were run | |||||
# against. It will also revert the config changes done in start step. | |||||
# | |||||
# @author Morris Jobke | |||||
# @copyright 2015 Morris Jobke <hey@morrisjobke.de> | |||||
# | |||||
if ! command -v docker >/dev/null 2>&1; then | |||||
echo "No docker executable found - skipped docker stop" | |||||
exit 0; | |||||
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-sftp-atmoz.sh" ""` | |||||
if [ -z "$thisFolder" ]; then | |||||
thisFolder="." | |||||
fi; | |||||
# stopping and removing docker containers | |||||
for container in `cat $thisFolder/dockerContainerAtmoz.$EXECUTOR_NUMBER.sftp`; do | |||||
echo "Stopping and removing docker container $container" | |||||
# kills running container and removes it | |||||
docker rm -f $container | |||||
done; | |||||
# cleanup | |||||
rm $thisFolder/config.sftp.php | |||||
rm $thisFolder/dockerContainerAtmoz.$EXECUTOR_NUMBER.sftp | |||||