From 1b959b40bc97b3e57c9f088552c334a8478627ca Mon Sep 17 00:00:00 2001 From: Kern Sibbald Date: Thu, 1 May 2008 15:41:29 +0000 Subject: [PATCH] Add new strippath test git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@6865 91ce42f0-d328-0410-95d8-f526ca767f89 --- regress/DartTestfile.txt.in | 1 + regress/all-disk-tests | 1 + regress/scripts/bacula-dir-strip.conf.in | 233 +++++++++++++++++++++++ regress/scripts/copy-strip-confs | 11 ++ regress/scripts/do_sed | 1 + regress/tests/strip-test | 58 ++++++ 6 files changed, 305 insertions(+) create mode 100644 regress/scripts/bacula-dir-strip.conf.in create mode 100755 regress/scripts/copy-strip-confs create mode 100755 regress/tests/strip-test diff --git a/regress/DartTestfile.txt.in b/regress/DartTestfile.txt.in index 13715da342..a84a26e0f6 100644 --- a/regress/DartTestfile.txt.in +++ b/regress/DartTestfile.txt.in @@ -40,6 +40,7 @@ ADD_TEST(disk:six-vol-test "@regressdir@/tests/six-vol-test") ADD_TEST(disk:span-vol-test "@regressdir@/tests/span-vol-test") ADD_TEST(disk:sparse-compressed-test "@regressdir@/tests/sparse-compressed-test") ADD_TEST(disk:sparse-test "@regressdir@/tests/sparse-test") +ADD_TEST(disk:strip-test "@regressdir@/tests/strip-test") ADD_TEST(disk:2drive-3pool-test "@regressdir@/tests/2drive-3pool-test") ADD_TEST(disk:2drive-concurrent-test "@regressdir@/tests/2drive-concurrent-test") ADD_TEST(disk:2drive-incremental-2disk "@regressdir@/tests/2drive-incremental-2disk") diff --git a/regress/all-disk-tests b/regress/all-disk-tests index c281ab0414..84d7ec5f8b 100755 --- a/regress/all-disk-tests +++ b/regress/all-disk-tests @@ -42,6 +42,7 @@ nice tests/maxvol-test nice tests/maxvol2-test nice tests/sparse-compressed-test nice tests/sparse-test +nice tests/strip-test nice tests/two-jobs-test nice tests/two-vol-test nice tests/verify-cat-test diff --git a/regress/scripts/bacula-dir-strip.conf.in b/regress/scripts/bacula-dir-strip.conf.in new file mode 100644 index 0000000000..9dcc243ef4 --- /dev/null +++ b/regress/scripts/bacula-dir-strip.conf.in @@ -0,0 +1,233 @@ +# +# Default Bacula Director Configuration file +# +# The only thing that MUST be changed is to add one or more +# file or directory names in the Include directive of the +# FileSet resource. +# +# For Bacula release 1.33 +# +# You might also want to change the default email address +# from root to your address. See the "mail" and "operator" +# directives in the Messages resource. +# + +Director { # define myself + Name = @hostname@-dir + DIRPort = @dirport@ # where we listen for UA connections + QueryFile = "@scriptdir@/query.sql" + WorkingDirectory = "@working_dir@" + PidDirectory = "@piddir@" + Maximum Concurrent Jobs = 4 + Password = "pNvX1WiXnwv2C/F7E52LGvw6rKjbbPvu2kyuPa9pVaL3" + Messages = Daemon +} + +# +# Define the main nightly save backup job +# By default, this job will back up to disk in @tmpdir@ +Job { + Name = "NightlySave" + Type = Backup + Client=@hostname@-fd + FileSet="Full Set" + Storage = FileStorage + Messages = Standard + Pool = Default + Write Bootstrap = "@working_dir@/NightlySave.bsr" + Maximum Concurrent Jobs = 4 + SpoolData = yes +# Prefer Mounted Volumes = no +} + +Job { + Name = "NightlySave1" + Type = Backup + Client=@hostname@-fd + FileSet="Full Set" + Storage = FileStorage + Messages = Standard + Pool = Default + Write Bootstrap = "@working_dir@/NightlySave.bsr" + Maximum Concurrent Jobs = 4 + SpoolData = yes +# Prefer Mounted Volumes = no + Client Run Before Job = "/bin/sleep 120" +} + +Job { + Name = "NightlySave2" + Type = Backup + Client=@hostname@-fd + FileSet="Full Set" + Storage = FileStorage + Messages = Standard + Pool = Default + Write Bootstrap = "@working_dir@/NightlySave.bsr" + Maximum Concurrent Jobs = 4 + SpoolData = yes +# Prefer Mounted Volumes = no +} + +Job { + Name = "VerifyTape" + Type = Verify + Level = VolumeToCatalog + Client=@hostname@-fd + FileSet="Verify Set" + Storage = FileStorage + Messages = Standard + Pool = Default + Write Bootstrap = "@working_dir@/NightlySave.bsr" + Maximum Concurrent Jobs = 4 + SpoolData = yes +# Prefer Mounted Volumes = no +} + + + + +# Standard Restore template, to be changed by Console program +Job { + Name = "RestoreFiles" + Type = Restore + Client=@hostname@-fd + FileSet="Full Set" + Storage = FileStorage + Messages = Standard + Pool = Default + Where = @tmpdir@/bacula-restores +} + + +# List of files to be backed up +FileSet { + Name = "Full Set" + Include { Options { + strippath = 1 + compression = gzip + } + File = <@tmpdir@/file-list + } + Include { + File = /etc + } +} + +FileSet { + Name = "Verify Set" + Include { + Options { + signature=MD5 + verify=pins1 + } + File = "<@tmpdir@/file-list" + } +} + + + +# +# When to do the backups, full backup on first sunday of the month, +# differential (i.e. incremental since full) every other sunday, +# and incremental backups other days +Schedule { + Name = "WeeklyCycle" + Run = Full 1st sun at 1:05 + Run = Differential 2nd-5th sun at 1:05 + Run = Incremental mon-sat at 1:05 +} + +# Client (File Services) to backup +Client { + Name = @hostname@-fd + Address = @hostname@ + FDPort = @fdport@ + Catalog = MyCatalog + Password = "xevrjURYoCHhn26RaJoWbeWXEY/a3VqGKp/37tgWiuHc" # password for FileDaemon + File Retention = 30d # 30 days + Job Retention = 180d # six months + AutoPrune = yes # Prune expired Jobs/Files + Maximum Concurrent Jobs = 4 +} + +# Definition of DDS tape storage device +Storage { + Name = FileStorage + Address = @hostname@ # N.B. Use a fully qualified name here + SDPort = @sdport@ + Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9" # password for Storage daemon + Device = FileStorage # must be same as Device in Storage daemon + Media Type = File # must be same as MediaType in Storage daemon + Maximum Concurrent Jobs = 4 +# Autochanger = yes +} + + +# Generic catalog service +Catalog { + Name = MyCatalog + @libdbi@ + dbname = regress; user = regress; password = "" +} + +# Reasonable message delivery -- send most everything to email address +# and to the console +Messages { + Name = Standard + mailcommand = "@sbindir@/bsmtp -h localhost -f \"\(Bacula Regression Job %j\) %r\" -s \"Regression: %t %e of %c %l\" %r" + operatorcommand = "@sbindir@/bsmtp -h localhost -f \"\(Bacula Regression Job %j\) %r\" -s \"Regression: Intervention needed for %j\" %r" +# MailOnError = @job_email@ = all, !terminate +# operator = @job_email@ = mount + console = all, !skipped, !terminate, !restored +# +# WARNING! the following will create a file that you must cycle from +# time to time as it will grow indefinitely. However, it will +# also keep all your messages if the scroll off the console. +# + append = "@working_dir@/log" = all, !skipped +} + +# +# Message delivery for daemon messages (no job). +Messages { + Name = Daemon + mailcommand = "@sbindir@/bsmtp -h @smtp_host@ -f \"\(Bacula regression\) %r\" -s \"Regression daemon message\" %r" +# mail = @job_email@ = all, !skipped + console = all, !skipped, !saved + append = "@working_dir@/log" = all, !skipped +} + + +# Default pool definition +Pool { + Name = Default + Pool Type = Backup + Recycle = yes # Bacula can automatically recycle Volumes + AutoPrune = yes # Prune expired volumes + Volume Retention = 365d # one year +} + +Pool { + Name = Full + Pool Type = Backup + Recycle = yes # Bacula can automatically recycle Volumes + AutoPrune = yes # Prune expired volumes + Volume Retention = 365d # one year +} + +Pool { + Name = Inc + Pool Type = Backup + Recycle = yes # Bacula can automatically recycle Volumes + AutoPrune = yes # Prune expired volumes + Volume Retention = 365d # one year +} + +Pool { + Name = Scratch + Pool Type = Backup + Recycle = yes # Bacula can automatically recycle Volumes + AutoPrune = yes # Prune expired volumes + Volume Retention = 365d # one year +} diff --git a/regress/scripts/copy-strip-confs b/regress/scripts/copy-strip-confs new file mode 100755 index 0000000000..71a0674538 --- /dev/null +++ b/regress/scripts/copy-strip-confs @@ -0,0 +1,11 @@ +#!/bin/sh +/bin/cp -f scripts/bacula-dir-strip.conf bin/bacula-dir.conf +/bin/cp -f scripts/test-bacula-sd.conf bin/bacula-sd.conf +/bin/cp -f scripts/test-bacula-fd.conf bin/bacula-fd.conf +/bin/cp -f scripts/test-console.conf bin/bconsole.conf + +# get proper SD tape definitions +cp -f scripts/linux_tape_options bin/tape_options +if test x`uname` = xFreeBSD ; then + cp -f scripts/freebsd_tape_options bin/tape_options +fi diff --git a/regress/scripts/do_sed b/regress/scripts/do_sed index 851dfa73c4..3d512bb401 100755 --- a/regress/scripts/do_sed +++ b/regress/scripts/do_sed @@ -23,6 +23,7 @@ sed -f ${out} ${cwd}/scripts/test-console.conf.in >${cwd}/scripts/test-console.c sed -f ${out} ${cwd}/scripts/crypto-bacula-fd.conf.in >${cwd}/scripts/crypto-bacula-fd.conf sed -f ${out} ${cwd}/scripts/bacula-dir-tape.conf.in >${cwd}/scripts/bacula-dir-tape.conf sed -f ${out} ${cwd}/scripts/bacula-dir-fifo.conf.in >${cwd}/scripts/bacula-dir-fifo.conf +sed -f ${out} ${cwd}/scripts/bacula-dir-strip.conf.in >${cwd}/scripts/bacula-dir-strip.conf sed -f ${out} ${cwd}/scripts/bacula-dir-migration.conf.in >${cwd}/scripts/bacula-dir-migration.conf sed -f ${out} ${cwd}/scripts/win32-bacula-dir-tape.conf.in >${cwd}/scripts/win32-bacula-dir-tape.conf sed -f ${out} ${cwd}/scripts/bacula-sd-tape.conf.in >${cwd}/scripts/bacula-sd-tape.conf diff --git a/regress/tests/strip-test b/regress/tests/strip-test new file mode 100755 index 0000000000..a7ef96d1e2 --- /dev/null +++ b/regress/tests/strip-test @@ -0,0 +1,58 @@ +#!/bin/sh +# +# Attempt to strip the path +# +TestName="strip-test" +JobName=stripTest +. scripts/functions + +scripts/cleanup +scripts/copy-strip-confs + + +echo "${cwd}/build/src/dird" >${cwd}/tmp/file-list + +change_jobname NightlySave $JobName +start_test + +cat <${cwd}/tmp/bconcmds +@$out /dev/null +messages +@$out ${cwd}/tmp/log1.out +@#setdebug level=150 dir +@#setdebug level=150 storage=FileStorage +setdebug level=100 client +label storage=FileStorage pool=Default volume=TestVolume001 +run job=$JobName storage=FileStorage pool=Default yes +wait +messages +quit +END_OF_DATA + + +run_bacula + +cat <${cwd}/tmp/bconcmds +@$out /dev/null +messages +@# +@# now do a restore +@# +@$out ${cwd}/tmp/log2.out +@#setdebug level=50 client +restore where=${cwd}/tmp/bacula-restores select all storage=FileStorage done +yes +wait +messages +@$out +quit +END_OF_DATA + +run_bconsole + +check_for_zombie_jobs storage=FileStorage +stop_bacula + +check_two_logs +# check_restore_diff do not check restore since we cannot backup all /etc +end_test -- 2.39.5