Skip to content

Commit

Permalink
tests: add messages unit test and test-config
Browse files Browse the repository at this point in the history
  • Loading branch information
franku committed Feb 10, 2020
1 parent f107dbf commit 3264abb
Show file tree
Hide file tree
Showing 23 changed files with 375 additions and 0 deletions.
10 changes: 10 additions & 0 deletions core/src/tests/CMakeLists.txt
Expand Up @@ -392,3 +392,13 @@ if(NOT client-only)
${GTEST_MAIN_LIBRARIES}
)
endif() # NOT client-only

bareos_add_test(
messages LINK_LIBRARIES dird_objects
bareos
bareosfind
bareoscats
bareossql
${GTEST_LIBRARIES}
${GTEST_MAIN_LIBRARIES}
)
@@ -0,0 +1,8 @@
Catalog {
Name = MyCatalog
#dbdriver = "postgresql"
dbdriver = "XXX_REPLACE_WITH_DATABASE_DRIVER_XXX"
dbname = "regress_backup_bareos_test"
dbuser = "regress"
dbpassword = ""
}
31 changes: 31 additions & 0 deletions core/src/tests/configs/messages/bareos-dir.d/client/bareos-fd.conf
@@ -0,0 +1,31 @@
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
}
@@ -0,0 +1,7 @@
Console {
Name = bareos-mon
Description = "Restricted console used by tray-monitor to get the status of the director."
Password = "mon_dir_password"
CommandACL = status, .status
JobACL = *all*
}
@@ -0,0 +1,27 @@
Director { # define myself
Name = bareos-dir
QueryFile = "/tmp/scripts/query.sql"
Maximum Concurrent Jobs = 10
Password = "dir_password" # Console password
Messages = Standard
Auditing = yes

# Enable the Heartbeat if you experience connection losses
# (eg. because of your router or firewall configuration).
# Additionally the Heartbeat can be enabled in bareos-sd and bareos-fd.
#
# Heartbeat Interval = 1 min

# remove comment in next line to load dynamic backends from specified directory
Backend Directory = /tmp/core/src/cats

# 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 Names = ""
Working Directory = "/tmp/tests/backup-bareos-test/working"
Pid Directory = "/tmp/piddir"
DirPort = 42001
}
11 changes: 11 additions & 0 deletions core/src/tests/configs/messages/bareos-dir.d/fileset/Catalog.conf
@@ -0,0 +1,11 @@
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
}
}
31 changes: 31 additions & 0 deletions core/src/tests/configs/messages/bareos-dir.d/fileset/LinuxAll.conf
@@ -0,0 +1,31 @@
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
}
}
11 changes: 11 additions & 0 deletions core/src/tests/configs/messages/bareos-dir.d/fileset/SelfTest.conf
@@ -0,0 +1,11 @@
FileSet {
Name = "SelfTest"
Description = "fileset just to backup some files for selftest"
Include {
Options {
Signature = MD5 # calculate md5 checksum per file
}
#File = "/tmp/sbin"
File=</tmp/tests/backup-bareos-test/tmp/file-list
}
}
@@ -0,0 +1,17 @@
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 = /
}
}
@@ -0,0 +1,21 @@
Job {
Name = "BackupCatalog"
Description = "Backup the catalog database (after the nightly save)"
JobDefs = "DefaultJob"
Level = Full
FileSet="Catalog"
Schedule = "WeeklyCycleAfterBackup"

# This creates an ASCII copy of the catalog
# Arguments to make_catalog_backup.pl are:
# make_catalog_backup.pl <catalog-name>
RunBeforeJob = "/tmp/scripts/make_catalog_backup.pl MyCatalog"

# This deletes the copy of the catalog
RunAfterJob = "/tmp/scripts/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)
Priority = 11 # run after main backup
}
11 changes: 11 additions & 0 deletions core/src/tests/configs/messages/bareos-dir.d/job/RestoreFiles.conf
@@ -0,0 +1,11 @@
Job {
Name = "RestoreFiles"
Description = "Standard Restore template. Only one such job is needed for all standard Jobs/Clients/Storage ..."
Type = Restore
Client = bareos-fd
FileSet = "LinuxAll"
Storage = File
Pool = Incremental
Messages = Standard
Where = /tmp/tests/backup-bareos-test/tmp/tmp/bareos-restores
}
@@ -0,0 +1,5 @@
Job {
Name = "backup-bareos-fd"
JobDefs = "DefaultJob"
Client = "bareos-fd"
}
@@ -0,0 +1,16 @@
JobDefs {
Name = "DefaultJob"
Type = Backup
Level = Incremental
Client = bareos-fd
FileSet = "SelfTest" # selftest fileset (#13)
Schedule = "WeeklyCycle"
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)
}
@@ -0,0 +1,13 @@
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
}
@@ -0,0 +1,10 @@
Pool {
Name = Differential
Pool Type = Backup
Recycle = yes # Bareos can automatically recycle Volumes
AutoPrune = yes # Prune expired volumes
Volume Retention = 90 days # How long should the Differential Backups be kept? (#09)
Maximum Volume Bytes = 10G # Limit Volume size to something reasonable
Maximum Volumes = 100 # Limit number of Volumes in Pool
Label Format = "Differential-" # Volumes will be labeled "Differential-<volume-id>"
}
10 changes: 10 additions & 0 deletions core/src/tests/configs/messages/bareos-dir.d/pool/Full.conf
@@ -0,0 +1,10 @@
Pool {
Name = Full
Pool Type = Backup
Recycle = yes # Bareos can automatically recycle Volumes
AutoPrune = yes # Prune expired volumes
Volume Retention = 365 days # How long should the Full Backups be kept? (#06)
Maximum Volume Bytes = 50G # Limit Volume size to something reasonable
Maximum Volumes = 100 # Limit number of Volumes in Pool
Label Format = "Full-" # Volumes will be labeled "Full-<volume-id>"
}
10 changes: 10 additions & 0 deletions core/src/tests/configs/messages/bareos-dir.d/pool/Incremental.conf
@@ -0,0 +1,10 @@
Pool {
Name = Incremental
Pool Type = Backup
Recycle = yes # Bareos can automatically recycle Volumes
AutoPrune = yes # Prune expired volumes
Volume Retention = 30 days # How long should the Incremental Backups be kept? (#12)
Maximum Volume Bytes = 1G # Limit Volume size to something reasonable
Maximum Volumes = 100 # Limit number of Volumes in Pool
Label Format = "Incremental-" # Volumes will be labeled "Incremental-<volume-id>"
}
@@ -0,0 +1,4 @@
Pool {
Name = Scratch
Pool Type = Scratch
}
18 changes: 18 additions & 0 deletions core/src/tests/configs/messages/bareos-dir.d/profile/operator.conf
@@ -0,0 +1,18 @@
Profile {
Name = operator
Description = "Profile allowing normal Bareos operations."

Command ACL = !.bvfs_clear_cache, !.exit, !.sql
Command ACL = !configure, !create, !delete, !purge, !prune, !sqlquery, !umount, !unmount
Command ACL = *all*

Catalog ACL = *all*
Client ACL = *all*
FileSet ACL = *all*
Job ACL = *all*
Plugin Options ACL = *all*
Pool ACL = *all*
Schedule ACL = *all*
Storage ACL = *all*
Where ACL = *all*
}
@@ -0,0 +1,6 @@
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)
}
@@ -0,0 +1,5 @@
Schedule {
Name = "WeeklyCycleAfterBackup"
Description = "This schedule does the catalog. It starts after the WeeklyCycle."
# Run = Full mon-fri at 21:10
}
35 changes: 35 additions & 0 deletions core/src/tests/configs/messages/bareos-dir.d/storage/File.conf
@@ -0,0 +1,35 @@
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
}

0 comments on commit 3264abb

Please sign in to comment.