diff --git a/core/src/tests/configs/messages/bareos-dir.d/catalog/MyCatalog.conf b/core/src/tests/configs/messages/bareos-dir.d/catalog/MyCatalog.conf deleted file mode 100644 index a2dca6f4cb6..00000000000 --- a/core/src/tests/configs/messages/bareos-dir.d/catalog/MyCatalog.conf +++ /dev/null @@ -1,8 +0,0 @@ -Catalog { - Name = MyCatalog - #dbdriver = "postgresql" - dbdriver = "XXX_REPLACE_WITH_DATABASE_DRIVER_XXX" - dbname = "regress_backup_bareos_test" - dbuser = "regress" - dbpassword = "" -} diff --git a/core/src/tests/configs/messages/bareos-dir.d/client/bareos-fd.conf b/core/src/tests/configs/messages/bareos-dir.d/client/bareos-fd.conf deleted file mode 100644 index 2e49b3e448e..00000000000 --- a/core/src/tests/configs/messages/bareos-dir.d/client/bareos-fd.conf +++ /dev/null @@ -1,31 +0,0 @@ -Client { - Name = bareos-fd - Description = "Client resource of the Director itself." - Address = localhost - Password = "fd_password" # password for FileDaemon - FD PORT = 42002 -} - -Client { - Name = bareos-fd-duplicate-interface - Description = "Client resource with identical network interface for setdebug testing" - Address = localhost - Password = "fd_password" # password for FileDaemon - FD PORT = 42002 -} - -Client { - Name = bareos-fd2 - Description = "Client for setdebug testing." - Address = 192.168.101.1 - Password = "fd_password" # password for FileDaemon - FD PORT = 42002 -} - -Client { - Name = bareos-fd3 - Description = "Client for setdebug testing." - Address = 192.168.101.1 - Password = "fd_password" # password for FileDaemon - FD PORT = 42003 -} diff --git a/core/src/tests/configs/messages/bareos-dir.d/fileset/Catalog.conf b/core/src/tests/configs/messages/bareos-dir.d/fileset/Catalog.conf deleted file mode 100644 index 922748afc1f..00000000000 --- a/core/src/tests/configs/messages/bareos-dir.d/fileset/Catalog.conf +++ /dev/null @@ -1,11 +0,0 @@ -FileSet { - Name = "Catalog" - Description = "Backup the catalog dump and Bareos configuration files." - Include { - Options { - signature = MD5 - } - File = "/tmp/tests/backup-bareos-test/working/regress_backup_bareos_test.sql" # database dump - File = "/tmp/tests/backup-bareos-test/etc/bareos" # configuration - } -} diff --git a/core/src/tests/configs/messages/bareos-dir.d/fileset/LinuxAll.conf b/core/src/tests/configs/messages/bareos-dir.d/fileset/LinuxAll.conf deleted file mode 100644 index 7dfe66cebf1..00000000000 --- a/core/src/tests/configs/messages/bareos-dir.d/fileset/LinuxAll.conf +++ /dev/null @@ -1,31 +0,0 @@ -FileSet { - Name = "LinuxAll" - Description = "Backup all regular filesystems, determined by filesystem type." - Include { - Options { - Signature = MD5 # calculate md5 checksum per file - One FS = No # change into other filessytems - FS Type = btrfs - FS Type = ext2 # filesystems of given types will be backed up - FS Type = ext3 # others will be ignored - FS Type = ext4 - FS Type = reiserfs - FS Type = jfs - FS Type = xfs - FS Type = zfs - } - File = / - } - # Things that usually have to be excluded - # You have to exclude /tmp/tests/backup-bareos-test/storage - # on your bareos server - Exclude { - File = /tmp/tests/backup-bareos-test/working - File = /tmp/tests/backup-bareos-test/storage - File = /proc - File = /tmp - File = /var/tmp - File = /.journal - File = /.fsck - } -} diff --git a/core/src/tests/configs/messages/bareos-dir.d/fileset/Windows All Drives.conf b/core/src/tests/configs/messages/bareos-dir.d/fileset/Windows All Drives.conf deleted file mode 100644 index 82c7ffad575..00000000000 --- a/core/src/tests/configs/messages/bareos-dir.d/fileset/Windows All Drives.conf +++ /dev/null @@ -1,17 +0,0 @@ -FileSet { - Name = "Windows All Drives" - Enable VSS = yes - Include { - Options { - Signature = MD5 - Drive Type = fixed - IgnoreCase = yes - WildFile = "[A-Z]:/pagefile.sys" - WildDir = "[A-Z]:/RECYCLER" - WildDir = "[A-Z]:/$RECYCLE.BIN" - WildDir = "[A-Z]:/System Volume Information" - Exclude = yes - } - File = / - } -} diff --git a/core/src/tests/configs/messages/bareos-dir.d/messages/Standard.conf b/core/src/tests/configs/messages/bareos-dir.d/messages/Standard.conf deleted file mode 100644 index 6e646849e86..00000000000 --- a/core/src/tests/configs/messages/bareos-dir.d/messages/Standard.conf +++ /dev/null @@ -1,13 +0,0 @@ -Messages { - Name = Standard - Description = "Reasonable message delivery -- send most everything to email address and to the console." - operatorcommand = "/tmp/bin/bsmtp -h smtp_host -f \"\(Bareos\) \<%r\>\" -s \"Bareos: Intervention needed for %j\" %r" - mailcommand = "/tmp/bin/bsmtp -h smtp_host -f \"\(Bareos\) \<%r\>\" -s \"Bareos: %t %e of %c %l\" %r" - operator = root@localhost = mount # (#03) - mail = root@localhost = all, !skipped, !saved, !audit # (#02) - console = all, !skipped, !saved, !audit - append = "/tmp/tests/backup-bareos-test/log/bareos.log" = all, !skipped, !saved, !audit - append = "/tmp/tests/backup-bareos-test/log/bareos-audit.log" = audit - catalog = all, !skipped, !saved, !audit - syslog = all -} diff --git a/core/src/tests/configs/messages/bareos-dir.d/schedule/WeeklyCycle.conf b/core/src/tests/configs/messages/bareos-dir.d/schedule/WeeklyCycle.conf deleted file mode 100644 index a2181c7db3d..00000000000 --- a/core/src/tests/configs/messages/bareos-dir.d/schedule/WeeklyCycle.conf +++ /dev/null @@ -1,6 +0,0 @@ -Schedule { - Name = "WeeklyCycle" -# Run = Full 1st sat at 21:00 # (#04) -# Run = Differential 2nd-5th sat at 21:00 # (#07) -# Run = Incremental mon-fri at 21:00 # (#10) -} diff --git a/core/src/tests/configs/messages/bareos-dir.d/schedule/WeeklyCycleAfterBackup.conf b/core/src/tests/configs/messages/bareos-dir.d/schedule/WeeklyCycleAfterBackup.conf deleted file mode 100644 index 49b245671cb..00000000000 --- a/core/src/tests/configs/messages/bareos-dir.d/schedule/WeeklyCycleAfterBackup.conf +++ /dev/null @@ -1,5 +0,0 @@ -Schedule { - Name = "WeeklyCycleAfterBackup" - Description = "This schedule does the catalog. It starts after the WeeklyCycle." -# Run = Full mon-fri at 21:10 -} diff --git a/core/src/tests/configs/messages/bareos-dir.d/storage/File.conf b/core/src/tests/configs/messages/bareos-dir.d/storage/File.conf deleted file mode 100644 index 2b0df1fb2d4..00000000000 --- a/core/src/tests/configs/messages/bareos-dir.d/storage/File.conf +++ /dev/null @@ -1,35 +0,0 @@ -Storage { - Name = File - Address = localhost - Password = "sd_password" - Device = FileStorage - Media Type = File - SD Port = 42003 -} - -Storage { - Name = File-duplicate-interface - Address = localhost - Password = "sd_password" - Device = FileStorage - Media Type = File - SD Port = 42003 -} - -Storage { - Name = File2 - Address = 192.168.179.1 - Password = "sd_password" - Device = FileStorage - Media Type = File - SD Port = 42003 -} - -Storage { - Name = File3 - Address = 192.168.179.1 - Password = "sd_password" - Device = FileStorage - Media Type = File - SD Port = 42004 -} diff --git a/systemtests/CMakeLists.txt b/systemtests/CMakeLists.txt index 4ecd9128e43..7d97e48f147 100644 --- a/systemtests/CMakeLists.txt +++ b/systemtests/CMakeLists.txt @@ -584,6 +584,7 @@ set(SYSTEM_TESTS reload-works-on-adding-second-director-resource reload-works-on-adding-client-resource backup-bareos-client-initiated-test + messages-test ) set(SYSTEM_TESTS_DISABLED # initially empty diff --git a/systemtests/tests/messages-test/etc/bareos/bareos-dir.d/catalog/MyCatalog.conf.in b/systemtests/tests/messages-test/etc/bareos/bareos-dir.d/catalog/MyCatalog.conf.in new file mode 100644 index 00000000000..479bc6fecbb --- /dev/null +++ b/systemtests/tests/messages-test/etc/bareos/bareos-dir.d/catalog/MyCatalog.conf.in @@ -0,0 +1,8 @@ +Catalog { + Name = MyCatalog + #dbdriver = "@DEFAULT_DB_TYPE@" + dbdriver = "XXX_REPLACE_WITH_DATABASE_DRIVER_XXX" + dbname = "@db_name@" + dbuser = "@db_user@" + dbpassword = "@db_password@" +} diff --git a/systemtests/tests/messages-test/etc/bareos/bareos-dir.d/client/bareos-fd.conf.in b/systemtests/tests/messages-test/etc/bareos/bareos-dir.d/client/bareos-fd.conf.in new file mode 100644 index 00000000000..470ca702035 --- /dev/null +++ b/systemtests/tests/messages-test/etc/bareos/bareos-dir.d/client/bareos-fd.conf.in @@ -0,0 +1,7 @@ +Client { + Name = bareos-fd + Description = "Client resource of the Director itself." + Address = localhost + Password = "@fd_password@" # password for FileDaemon + FD PORT = @fd_port@ +} diff --git a/core/src/tests/configs/messages/bareos-dir.d/console/bareos-mon.conf b/systemtests/tests/messages-test/etc/bareos/bareos-dir.d/console/bareos-mon.conf.in similarity index 83% rename from core/src/tests/configs/messages/bareos-dir.d/console/bareos-mon.conf rename to systemtests/tests/messages-test/etc/bareos/bareos-dir.d/console/bareos-mon.conf.in index d8e55c7c67b..d276adcb87d 100644 --- a/core/src/tests/configs/messages/bareos-dir.d/console/bareos-mon.conf +++ b/systemtests/tests/messages-test/etc/bareos/bareos-dir.d/console/bareos-mon.conf.in @@ -1,7 +1,7 @@ Console { Name = bareos-mon Description = "Restricted console used by tray-monitor to get the status of the director." - Password = "mon_dir_password" + Password = "@mon_dir_password@" CommandACL = status, .status JobACL = *all* } diff --git a/core/src/tests/configs/messages/bareos-dir.d/director/bareos-dir.conf b/systemtests/tests/messages-test/etc/bareos/bareos-dir.d/director/bareos-dir.conf.in similarity index 69% rename from core/src/tests/configs/messages/bareos-dir.d/director/bareos-dir.conf rename to systemtests/tests/messages-test/etc/bareos/bareos-dir.d/director/bareos-dir.conf.in index b3a16a80bb4..33b3a426e3a 100644 --- a/core/src/tests/configs/messages/bareos-dir.d/director/bareos-dir.conf +++ b/systemtests/tests/messages-test/etc/bareos/bareos-dir.d/director/bareos-dir.conf.in @@ -1,9 +1,9 @@ Director { # define myself Name = bareos-dir - QueryFile = "/tmp/scripts/query.sql" + QueryFile = "@scriptdir@/query.sql" Maximum Concurrent Jobs = 10 - Password = "dir_password" # Console password - Messages = Standard + Password = "@dir_password@" # Console password + Messages = Daemon Auditing = yes # Enable the Heartbeat if you experience connection losses @@ -13,15 +13,15 @@ Director { # define myself # Heartbeat Interval = 1 min # remove comment in next line to load dynamic backends from specified directory - Backend Directory = /tmp/core/src/cats + Backend Directory = @backenddir@ # remove comment from "Plugin Directory" to load plugins from specified directory. # if "Plugin Names" is defined, only the specified plugins will be loaded, # otherwise all director plugins (*-dir.so) from the "Plugin Directory". # - # Plugin Directory = "/tmp/plugindir" + # Plugin Directory = "@python_plugin_module_src_dir@" # Plugin Names = "" - Working Directory = "/tmp/tests/backup-bareos-test/working" - Pid Directory = "/tmp/piddir" - DirPort = 42001 + Working Directory = "@working_dir@" + Pid Directory = "@piddir@" + DirPort = @dir_port@ } diff --git a/systemtests/tests/messages-test/etc/bareos/bareos-dir.d/fileset/Catalog.conf.in b/systemtests/tests/messages-test/etc/bareos/bareos-dir.d/fileset/Catalog.conf.in new file mode 100644 index 00000000000..c7cdc433fe1 --- /dev/null +++ b/systemtests/tests/messages-test/etc/bareos/bareos-dir.d/fileset/Catalog.conf.in @@ -0,0 +1,11 @@ +FileSet { + Name = "Catalog" + Description = "Backup the catalog dump and Bareos configuration files." + Include { + Options { + signature = MD5 + } + File = "@working_dir@/@db_name@.sql" # database dump + File = "@confdir@" # configuration + } +} diff --git a/core/src/tests/configs/messages/bareos-dir.d/fileset/SelfTest.conf b/systemtests/tests/messages-test/etc/bareos/bareos-dir.d/fileset/SelfTest.conf.in similarity index 71% rename from core/src/tests/configs/messages/bareos-dir.d/fileset/SelfTest.conf rename to systemtests/tests/messages-test/etc/bareos/bareos-dir.d/fileset/SelfTest.conf.in index 8890c98bb0f..ba39719ea3f 100644 --- a/core/src/tests/configs/messages/bareos-dir.d/fileset/SelfTest.conf +++ b/systemtests/tests/messages-test/etc/bareos/bareos-dir.d/fileset/SelfTest.conf.in @@ -5,7 +5,7 @@ FileSet { Options { Signature = MD5 # calculate md5 checksum per file } - #File = "/tmp/sbin" - File= - RunBeforeJob = "/tmp/scripts/make_catalog_backup.pl MyCatalog" + RunBeforeJob = "@scriptdir@/make_catalog_backup.pl MyCatalog" # This deletes the copy of the catalog - RunAfterJob = "/tmp/scripts/delete_catalog_backup" + RunAfterJob = "@scriptdir@/delete_catalog_backup" # This sends the bootstrap via mail for disaster recovery. # Should be sent to another system, please change recipient accordingly - Write Bootstrap = "|/tmp/bin/bsmtp -h smtp_host -f \"\(Bareos\) \" -s \"Bootstrap for Job %j\" root@localhost" # (#01) + Write Bootstrap = "|@bindir@/bsmtp -h @smtp_host@ -f \"\(Bareos\) \" -s \"Bootstrap for Job %j\" @job_email@" # (#01) Priority = 11 # run after main backup } diff --git a/core/src/tests/configs/messages/bareos-dir.d/job/RestoreFiles.conf b/systemtests/tests/messages-test/etc/bareos/bareos-dir.d/job/RestoreFiles.conf.in similarity index 73% rename from core/src/tests/configs/messages/bareos-dir.d/job/RestoreFiles.conf rename to systemtests/tests/messages-test/etc/bareos/bareos-dir.d/job/RestoreFiles.conf.in index be3b1a9fbd4..89256864d9a 100644 --- a/core/src/tests/configs/messages/bareos-dir.d/job/RestoreFiles.conf +++ b/systemtests/tests/messages-test/etc/bareos/bareos-dir.d/job/RestoreFiles.conf.in @@ -3,9 +3,9 @@ Job { Description = "Standard Restore template. Only one such job is needed for all standard Jobs/Clients/Storage ..." Type = Restore Client = bareos-fd - FileSet = "LinuxAll" + FileSet = SelfTest Storage = File Pool = Incremental Messages = Standard - Where = /tmp/tests/backup-bareos-test/tmp/tmp/bareos-restores + Where = @tmp@/bareos-restores } diff --git a/core/src/tests/configs/messages/bareos-dir.d/job/backup-bareos-fd.conf b/systemtests/tests/messages-test/etc/bareos/bareos-dir.d/job/backup-bareos-fd.conf.in similarity index 100% rename from core/src/tests/configs/messages/bareos-dir.d/job/backup-bareos-fd.conf rename to systemtests/tests/messages-test/etc/bareos/bareos-dir.d/job/backup-bareos-fd.conf.in diff --git a/core/src/tests/configs/messages/bareos-dir.d/jobdefs/DefaultJob.conf b/systemtests/tests/messages-test/etc/bareos/bareos-dir.d/jobdefs/DefaultJob.conf.in similarity index 56% rename from core/src/tests/configs/messages/bareos-dir.d/jobdefs/DefaultJob.conf rename to systemtests/tests/messages-test/etc/bareos/bareos-dir.d/jobdefs/DefaultJob.conf.in index d93c434ec19..563126477c9 100644 --- a/core/src/tests/configs/messages/bareos-dir.d/jobdefs/DefaultJob.conf +++ b/systemtests/tests/messages-test/etc/bareos/bareos-dir.d/jobdefs/DefaultJob.conf.in @@ -3,14 +3,13 @@ JobDefs { Type = Backup Level = Incremental Client = bareos-fd - FileSet = "SelfTest" # selftest fileset (#13) - Schedule = "WeeklyCycle" + FileSet = "SelfTest" Storage = File Messages = Standard Pool = Incremental Priority = 10 - Write Bootstrap = "/tmp/tests/backup-bareos-test/working/%c.bsr" - Full Backup Pool = Full # write Full Backups into "Full" Pool (#05) - Differential Backup Pool = Differential # write Diff Backups into "Differential" Pool (#08) - Incremental Backup Pool = Incremental # write Incr Backups into "Incremental" Pool (#11) + Write Bootstrap = "@working_dir@/%c.bsr" + Full Backup Pool = Full # write Full Backups into "Full" Pool + Differential Backup Pool = Differential # write Diff Backups into "Differential" Pool + Incremental Backup Pool = Incremental # write Incr Backups into "Incremental" Pool } diff --git a/systemtests/tests/messages-test/etc/bareos/bareos-dir.d/messages/Daemon.conf.in b/systemtests/tests/messages-test/etc/bareos/bareos-dir.d/messages/Daemon.conf.in new file mode 100644 index 00000000000..cf6a8cfa1e2 --- /dev/null +++ b/systemtests/tests/messages-test/etc/bareos/bareos-dir.d/messages/Daemon.conf.in @@ -0,0 +1,7 @@ +Messages { + Name = Daemon + Description = "Message delivery for daemon messages (no job)." + console = all, !skipped, !saved, !audit + append = "@logdir@/bareos.log" = all, !skipped, !audit + append = "@logdir@/bareos-audit.log" = audit +} diff --git a/systemtests/tests/messages-test/etc/bareos/bareos-dir.d/messages/Standard.conf.in b/systemtests/tests/messages-test/etc/bareos/bareos-dir.d/messages/Standard.conf.in new file mode 100644 index 00000000000..b3556ba8c23 --- /dev/null +++ b/systemtests/tests/messages-test/etc/bareos/bareos-dir.d/messages/Standard.conf.in @@ -0,0 +1,7 @@ +Messages { + Name = Standard + Description = "Reasonable message delivery -- send most everything to email address and to the console." + console = all, !skipped, !saved, !audit + append = "@logdir@/bareos.log" = all, !skipped, !saved, !audit + catalog = all, !skipped, !saved, !audit +} diff --git a/core/src/tests/configs/messages/bareos-dir.d/pool/Differential.conf b/systemtests/tests/messages-test/etc/bareos/bareos-dir.d/pool/Differential.conf similarity index 100% rename from core/src/tests/configs/messages/bareos-dir.d/pool/Differential.conf rename to systemtests/tests/messages-test/etc/bareos/bareos-dir.d/pool/Differential.conf diff --git a/core/src/tests/configs/messages/bareos-dir.d/pool/Full.conf b/systemtests/tests/messages-test/etc/bareos/bareos-dir.d/pool/Full.conf similarity index 100% rename from core/src/tests/configs/messages/bareos-dir.d/pool/Full.conf rename to systemtests/tests/messages-test/etc/bareos/bareos-dir.d/pool/Full.conf diff --git a/core/src/tests/configs/messages/bareos-dir.d/pool/Incremental.conf b/systemtests/tests/messages-test/etc/bareos/bareos-dir.d/pool/Incremental.conf similarity index 100% rename from core/src/tests/configs/messages/bareos-dir.d/pool/Incremental.conf rename to systemtests/tests/messages-test/etc/bareos/bareos-dir.d/pool/Incremental.conf diff --git a/core/src/tests/configs/messages/bareos-dir.d/pool/Scratch.conf b/systemtests/tests/messages-test/etc/bareos/bareos-dir.d/pool/Scratch.conf similarity index 100% rename from core/src/tests/configs/messages/bareos-dir.d/pool/Scratch.conf rename to systemtests/tests/messages-test/etc/bareos/bareos-dir.d/pool/Scratch.conf diff --git a/core/src/tests/configs/messages/bareos-dir.d/profile/operator.conf b/systemtests/tests/messages-test/etc/bareos/bareos-dir.d/profile/operator.conf similarity index 100% rename from core/src/tests/configs/messages/bareos-dir.d/profile/operator.conf rename to systemtests/tests/messages-test/etc/bareos/bareos-dir.d/profile/operator.conf diff --git a/systemtests/tests/messages-test/etc/bareos/bareos-dir.d/storage/File.conf.in b/systemtests/tests/messages-test/etc/bareos/bareos-dir.d/storage/File.conf.in new file mode 100644 index 00000000000..4058ddc7edc --- /dev/null +++ b/systemtests/tests/messages-test/etc/bareos/bareos-dir.d/storage/File.conf.in @@ -0,0 +1,8 @@ +Storage { + Name = File + Address = @hostname@ # N.B. Use a fully qualified name here (do not use "localhost" here). + Password = "@sd_password@" + Device = FileStorage + Media Type = File + SD Port = @sd_port@ +} diff --git a/systemtests/tests/messages-test/testrunner b/systemtests/tests/messages-test/testrunner new file mode 100755 index 00000000000..03921b43daa --- /dev/null +++ b/systemtests/tests/messages-test/testrunner @@ -0,0 +1,60 @@ +#!/bin/sh +# +# Run a simple backup +# then restore it. +# +TestName="$(basename "$(pwd)")" +export TestName + +JobName=backup-bareos-fd + +#shellcheck source=../environment.in +. ./environment + +#shellcheck source=../scripts/functions +. "${rscripts}"/functions +"${rscripts}"/cleanup +"${rscripts}"/setup + + +# Directory to backup. +# This directory will be created by setup_data "$@"(). +BackupDirectory="${tmp}/data" + +# Use a tgz to setup data to be backed up. +# Data will be placed at "${tmp}/data/". +setup_data "$@" + +start_test + +cat <$tmp/bconcmds +@$out /dev/null +messages +@$out $tmp/log1.out +setdebug level=100 storage=File +label volume=TestVolume001 storage=File pool=Full +run job=$JobName yes +status director +status client +status storage=File +wait +messages +@# +@# now do a restore +@# +@$out $tmp/log2.out +wait +restore client=bareos-fd fileset=SelfTest where=$tmp/bareos-restores select all done +yes +wait +messages +quit +END_OF_DATA + +run_bareos "$@" +check_for_zombie_jobs storage=File +stop_bareos + +check_two_logs +check_restore_diff ${BackupDirectory} +end_test