-
-
Notifications
You must be signed in to change notification settings - Fork 96
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Isolate S3 test case * Isolate webdav test case * Isolate SSH test case * Isolate local storage test case * Isolate gpg test case * Add missing volume mount * Fix file locations for local test case * Remove compose test case, use utils * Use test utils throughout * Use dedicated tmp dir * Fix link location that is being tested * Use dedicated tmp_dirs when working on host fs * Force delete artifact * Fix expected filename * Provide helpful messages on failing tests * Fix filename * Use proper volume names * Fix syntax error, use large resource class * Use named Docker volumes when referencing them in test scripts * Add name of test case to logging output
- Loading branch information
Showing
23 changed files
with
446 additions
and
180 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
version: '3' | ||
|
||
services: | ||
backup: | ||
image: offen/docker-volume-backup:${TEST_VERSION:-canary} | ||
restart: always | ||
environment: | ||
BACKUP_CRON_EXPRESSION: 0 0 5 31 2 ? | ||
BACKUP_FILENAME: test.tar.gz | ||
BACKUP_LATEST_SYMLINK: test-latest.tar.gz.gpg | ||
BACKUP_RETENTION_DAYS: ${BACKUP_RETENTION_DAYS:-7} | ||
GPG_PASSPHRASE: 1234secret | ||
volumes: | ||
- ./local:/archive | ||
- app_data:/backup/app_data:ro | ||
- /var/run/docker.sock:/var/run/docker.sock | ||
|
||
offen: | ||
image: offen/offen:latest | ||
labels: | ||
- docker-volume-backup.stop-during-backup=true | ||
volumes: | ||
- app_data:/var/opt/offen | ||
|
||
volumes: | ||
app_data: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
#!/bin/sh | ||
|
||
set -e | ||
|
||
cd "$(dirname "$0")" | ||
. ../util.sh | ||
current_test=$(basename $(pwd)) | ||
|
||
mkdir -p local | ||
|
||
docker-compose up -d | ||
sleep 5 | ||
|
||
docker-compose exec backup backup | ||
|
||
expect_running_containers "2" | ||
|
||
tmp_dir=$(mktemp -d) | ||
|
||
echo 1234secret | gpg -d --pinentry-mode loopback --yes --passphrase-fd 0 ./local/test.tar.gz.gpg > ./local/decrypted.tar.gz | ||
tar -xf ./local/decrypted.tar.gz -C $tmp_dir | ||
ls -lah $tmp_dir | ||
if [ ! -f $tmp_dir/backup/app_data/offen.db ]; then | ||
fail "Could not find expected file in untared archive." | ||
fi | ||
rm ./local/decrypted.tar.gz | ||
|
||
pass "Found relevant files in decrypted and untared local backup." | ||
|
||
if [ ! -L ./local/test-latest.tar.gz.gpg ]; then | ||
fail "Could not find local symlink to latest encrypted backup." | ||
fi | ||
|
||
docker-compose down --volumes |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
local |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
version: '3' | ||
|
||
services: | ||
backup: | ||
image: offen/docker-volume-backup:${TEST_VERSION:-canary} | ||
hostname: hostnametoken | ||
restart: always | ||
environment: | ||
BACKUP_FILENAME_EXPAND: 'true' | ||
BACKUP_FILENAME: test-$$HOSTNAME.tar.gz | ||
BACKUP_LATEST_SYMLINK: test-$$HOSTNAME.latest.tar.gz.gpg | ||
BACKUP_CRON_EXPRESSION: 0 0 5 31 2 ? | ||
BACKUP_RETENTION_DAYS: ${BACKUP_RETENTION_DAYS:-7} | ||
BACKUP_PRUNING_LEEWAY: 5s | ||
BACKUP_PRUNING_PREFIX: test | ||
volumes: | ||
- app_data:/backup/app_data:ro | ||
- /var/run/docker.sock:/var/run/docker.sock | ||
- ./local:/archive | ||
|
||
offen: | ||
image: offen/offen:latest | ||
labels: | ||
- docker-volume-backup.stop-during-backup=true | ||
volumes: | ||
- app_data:/var/opt/offen | ||
|
||
volumes: | ||
app_data: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
#!/bin/sh | ||
|
||
set -e | ||
|
||
cd "$(dirname "$0")" | ||
. ../util.sh | ||
current_test=$(basename $(pwd)) | ||
|
||
mkdir -p local | ||
|
||
docker-compose up -d | ||
sleep 5 | ||
|
||
# A symlink for a known file in the volume is created so the test can check | ||
# whether symlinks are preserved on backup. | ||
docker-compose exec offen ln -s /var/opt/offen/offen.db /var/opt/offen/db.link | ||
docker-compose exec backup backup | ||
|
||
sleep 5 | ||
|
||
expect_running_containers "2" | ||
|
||
tmp_dir=$(mktemp -d) | ||
tar -xvf ./local/test-hostnametoken.tar.gz -C $tmp_dir | ||
if [ ! -f "$tmp_dir/backup/app_data/offen.db" ]; then | ||
fail "Could not find expected file in untared archive." | ||
fi | ||
rm -f ./local/test-hostnametoken.tar.gz | ||
|
||
if [ ! -L "$tmp_dir/backup/app_data/db.link" ]; then | ||
fail "Could not find expected symlink in untared archive." | ||
fi | ||
|
||
pass "Found relevant files in decrypted and untared local backup." | ||
|
||
if [ ! -L ./local/test-hostnametoken.latest.tar.gz.gpg ]; then | ||
fail "Could not find symlink to latest version." | ||
fi | ||
|
||
pass "Found symlink to latest version in local backup." | ||
|
||
# The second part of this test checks if backups get deleted when the retention | ||
# is set to 0 days (which it should not as it would mean all backups get deleted) | ||
# TODO: find out if we can test actual deletion without having to wait for a day | ||
BACKUP_RETENTION_DAYS="0" docker-compose up -d | ||
sleep 5 | ||
|
||
docker-compose exec backup backup | ||
|
||
if [ "$(find ./local -type f | wc -l)" != "1" ]; then | ||
fail "Backups should not have been deleted, instead seen: "$(find ./local -type f)"" | ||
fi | ||
pass "Local backups have not been deleted." | ||
|
||
docker-compose down --volumes |
Oops, something went wrong.