From 0c76d674d05b83bbf92cea58a0791b96fbd06926 Mon Sep 17 00:00:00 2001 From: Eric Bollengier Date: Sun, 11 May 2008 08:15:07 +0000 Subject: [PATCH] ebl Prepare test with fake autochanger git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@6937 91ce42f0-d328-0410-95d8-f526ca767f89 --- regress/scripts/bacula-dir-faketape.conf.in | 336 ++++++++++++++++++++ regress/scripts/bacula-sd-faketape.conf.in | 124 ++++++++ regress/scripts/do_sed | 8 +- regress/scripts/prepare-big-autochanger.in | 32 ++ 4 files changed, 497 insertions(+), 3 deletions(-) create mode 100644 regress/scripts/bacula-dir-faketape.conf.in create mode 100644 regress/scripts/bacula-sd-faketape.conf.in create mode 100644 regress/scripts/prepare-big-autochanger.in diff --git a/regress/scripts/bacula-dir-faketape.conf.in b/regress/scripts/bacula-dir-faketape.conf.in new file mode 100644 index 0000000000..79049d4c16 --- /dev/null +++ b/regress/scripts/bacula-dir-faketape.conf.in @@ -0,0 +1,336 @@ +# +# Bacula Director Configuration file +# +# + +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 = LTO3 + Messages = Standard + Pool = Default + Maximum Concurrent Jobs = 4 + SpoolData = yes +# Prefer Mounted Volumes = no +} + +Job { + Name = "NightlySave1" + Type = Backup + Client=@hostname@-fd + FileSet="Full Set" + Storage = LTO1 + 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 2" +} + +Job { + Name = "NightlySave2" + Type = Backup + Client=@hostname@-fd + FileSet="Full Set" + Storage = LTO1 + 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 = LTO1 + 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 = LTO + Messages = Standard + Pool = Default + Where = @tmpdir@/bacula-restores +} + + +# List of files to be backed up +FileSet { + Name = "Full Set" + Include { Options { signature=MD5 } + File = <@tmpdir@/file-list + } +} + +FileSet { + Name = "Verify Set" + Include { + Options { + signature=MD5 + verify=pins1 + } + File = <@tmpdir@/file-list + } +} + + +# 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 +} + +# Client (File Services) to backup +Client { + Name = @hostname@-fd2 + Address = @hostname@ + FDPort = @fdport@2 + 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 +} + +# Client (File Services) to backup +Client { + Name = @hostname@-fd3 + Address = @hostname@ + FDPort = @fdport@3 + 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 +} + +# Client (File Services) to backup +Client { + Name = @hostname@-fd4 + Address = @hostname@ + FDPort = @fdport@4 + 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 +} + +# Client (File Services) to backup +Client { + Name = @hostname@-fd5 + Address = @hostname@ + FDPort = @fdport@4 + 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 +} + + +Storage { + Name = LTO1 + Address = @hostname@ + SDPort = @sdport@ + Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9" + Device = LTO + Media Type = LTO1 + Autochanger = yes + Maximum Concurrent Jobs = 50 +} + +Storage { + Name = LTO3 + Address = @hostname@ + SDPort = @sdport@ + Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9" + Device = LTO + Media Type = LTO3 + Autochanger = yes + Maximum Concurrent Jobs = 50 +} + +# define all LTO drives +Storage { + Name = LTO + Address = @hostname@ + SDPort = @sdport@ + Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9" + Device = LTO + Autochanger = yes + Maximum Concurrent Jobs = 50 +} + + +################################################################ +# WARNING: Bacula doesn't support this kind of configuration +# This is for testing purpose only !!!!!!!!!!!! +################################################################ + +Storage { + Name = LTO3_0 + Address = @hostname@ + SDPort = @sdport@ + Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9" + Device = LTO3_0 + Autochanger = yes + Maximum Concurrent Jobs = 5 +} + +Storage { + Name = LTO3_1 + Address = @hostname@ + SDPort = @sdport@ + Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9" + Device = LTO3_1 + Autochanger = yes + Maximum Concurrent Jobs = 5 +} + +Storage { + Name = LTO3_2 + Address = @hostname@ + SDPort = @sdport@ + Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9" + Device = LTO3_2 + Autochanger = yes + Maximum Concurrent Jobs = 5 +} + +Storage { + Name = LTO1_3 + Address = @hostname@ + SDPort = @sdport@ + Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9" + Device = LTO1_3 + Autochanger = yes + Maximum Concurrent Jobs = 5 +} + +Storage { + Name = LTO1_4 + Address = @hostname@ + SDPort = @sdport@ + Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9" + Device = LTO1_4 + Autochanger = yes + Maximum Concurrent Jobs = 5 +} + + +# Definition of File storage device +Storage { + Name = File + 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 = FileMedia # must be same as MediaType in Storage daemon + Maximum Concurrent Jobs = 4 +} + +# 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 + console = all, !skipped, !terminate, !restored + append = "@working_dir@/log" = all, !skipped + catalog = all, !skipped, !saved +} + +# +# Message delivery for daemon messages (no job). +Messages { + Name = Daemon + console = all, !skipped, !saved + append = "@working_dir@/log" = all, !skipped + catalog = all, !skipped, !saved +} + + +# 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 + Recycle Pool = Scratch # recycle back here +} diff --git a/regress/scripts/bacula-sd-faketape.conf.in b/regress/scripts/bacula-sd-faketape.conf.in new file mode 100644 index 0000000000..c06d227691 --- /dev/null +++ b/regress/scripts/bacula-sd-faketape.conf.in @@ -0,0 +1,124 @@ +# +# Bacula Storage Daemon Configuration file with +# dummy Autochanger +# +# + +Storage { # definition of myself + Name = @hostname@-sd + SDPort = @sdport@ # Director's port + WorkingDirectory = "@working_dir@" + Pid Directory = "@piddir@" + Subsys Directory = "@subsysdir@" +} + +# +# List Directors who are permitted to contact Storage daemon +# +Director { + Name = @hostname@-dir + Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9" +} + +# +# Devices supported by this Storage daemon +# To connect, the Director's bacula-dir.conf must have the +# same Name and MediaType. +# +Autochanger { + Name = LTO + Changer Device = @autochanger@ + Changer Command ="@scriptdir@/@changer_script@ %c %o %S %a %d" + Device = LTO3_0, LTO3_1, LTO3_2, LTO1_3, LTO1_4 +} + + +Device { + Name = LTO3_0 + Media Type = LTO3 + Archive Device = @working_dir@/ach/drive0 + AutomaticMount = yes; # when device opened, read it + Autochanger = yes + Drive Index = 0 + AlwaysOpen = yes; + RemovableMedia = yes; + @@sbindir@/tape_options + Maximum File Size = 10M + Maximum Job Spool Size = 10M + Spool Directory = @working_dir@ + +} + +Device { + Name = LTO3_1 + Media Type = LTO3 + Archive Device = @working_dir@/ach/drive1 + AutomaticMount = yes; # when device opened, read it + Autochanger = yes + Drive Index = 1 + AlwaysOpen = yes; + RemovableMedia = yes; + @@sbindir@/tape_options + Maximum File Size = 10M + Maximum Job Spool Size = 10M + Spool Directory = @working_dir@ +} + + +Device { + Name = LTO3_2 + Media Type = LTO3 + Archive Device = @working_dir@/ach/drive2 + AutomaticMount = yes; # when device opened, read it + Autochanger = yes + Drive Index = 2 + AlwaysOpen = yes; + RemovableMedia = yes; + @@sbindir@/tape_options + Maximum File Size = 10M + Auto Select = no + Maximum Job Spool Size = 10M + Spool Directory = @working_dir@ +} + + +Device { + Name = LTO1_3 + Media Type = LTO1 + Archive Device = @working_dir@/ach/drive3 + AutomaticMount = yes; # when device opened, read it + Autochanger = yes + Drive Index = 3 + AlwaysOpen = yes; + RemovableMedia = yes; + @@sbindir@/tape_options + Maximum File Size = 10M + Maximum Job Spool Size = 10M + Spool Directory = @working_dir@ +} + + +Device { + Name = LTO1_4 + Media Type = LTO1 + Archive Device = @working_dir@/ach/drive4 + AutomaticMount = yes; # when device opened, read it + Autochanger = yes + Drive Index = 4 + AlwaysOpen = yes; + RemovableMedia = yes; + @@sbindir@/tape_options + Maximum File Size = 10M + Maximum Job Spool Size = 10M + Spool Directory = @working_dir@ +} + + +# +# Send all messages to the Director, +# mount messages also are sent to the email address +# +Messages { + Name = Standard + director = @hostname@-dir = all, !terminate +} diff --git a/regress/scripts/do_sed b/regress/scripts/do_sed index 3a11096aae..37ac9fb1f6 100755 --- a/regress/scripts/do_sed +++ b/regress/scripts/do_sed @@ -40,7 +40,9 @@ sed -f ${out} ${cwd}/scripts/cleanup-2tape.in >${cwd}/scripts/cleanup-2tape sed -f ${out} ${cwd}/scripts/cleanup-2drive.in >${cwd}/scripts/cleanup-2drive sed -f ${out} ${cwd}/scripts/prepare-two-tapes.in >${cwd}/scripts/prepare-two-tapes sed -f ${out} ${cwd}/scripts/bacula-dir.conf.testrunscript.in >${cwd}/scripts/bacula-dir.conf.testrunscript - +sed -f ${out} ${cwd}/scripts/bacula-dir-faketape.conf.in >${cwd}/scripts/bacula-dir-faketape.conf +sed -f ${out} ${cwd}/scripts/bacula-sd-faketape.conf.in >${cwd}/scripts/bacula-sd-faketape.conf +sed -f ${out} ${cwd}/scripts/prepare-big-autochanger.in >${cwd}/scripts/prepare-big-autochanger sed -f ${out} ${cwd}/scripts/tls-bacula-fd.conf.in >${cwd}/scripts/tls-bacula-fd.conf sed -f ${out} ${cwd}/scripts/tls-bacula-sd.conf.in >${cwd}/scripts/tls-bacula-sd.conf sed -f ${out} ${cwd}/scripts/tls-bacula-dir.conf.in >${cwd}/scripts/tls-bacula-dir.conf @@ -63,11 +65,11 @@ cp scripts/win32-bacula-fd.conf.in scripts/win32-bacula-fd.conf cp ${cwd}/bin/bacula-sd.conf ${cwd}/tmp/bac$$ sed s%/tmp%${cwd}/tmp%g ${cwd}/tmp/bac$$ >${cwd}/bin/bacula-sd.conf -chmod 777 ${cwd}/scripts/cleanup-*tape ${cwd}/scripts/cleanup-*drive ${cwd}/scripts/prepare-two-tapes +chmod 755 ${cwd}/scripts/cleanup-*tape ${cwd}/scripts/cleanup-*drive ${cwd}/scripts/prepare-two-tapes rm -f ${cwd}/tmp/bac$$ cp ${cwd}/bin/mtx-changer ${cwd}/tmp/bac$$ sed "s%^MTX.*$%MTX=${AUTOCHANGER_PATH}%g" ${cwd}/tmp/bac$$ >${cwd}/bin/mtx-changer -chmod 777 ${cwd}/bin/mtx-changer +chmod 755 ${cwd}/bin/mtx-changer ${cwd}/scripts/prepare-big-autochanger # get proper SD tape definitions cp -f ${cwd}/scripts/linux_tape_options ${cwd}/bin/tape_options diff --git a/regress/scripts/prepare-big-autochanger.in b/regress/scripts/prepare-big-autochanger.in new file mode 100644 index 0000000000..735ee036f9 --- /dev/null +++ b/regress/scripts/prepare-big-autochanger.in @@ -0,0 +1,32 @@ +#!/bin/sh +# +# This script will prepare a big dummy autochanger +# + +. scripts/functions + +# check if user wants to run this test +if test x$USE_FAKETAPE == x; then + exit 1 +fi + +adir=@working_dir@/ach + +mkdir $adir + +# create the autochanger configuration file +cat > $adir/conf <> $adir/barcodes + cp /dev/null $adir/slot$i +done + -- 2.39.5