]> git.sur5r.net Git - bacula/bacula/commitdiff
ebl Prepare test with fake autochanger
authorEric Bollengier <eric@eb.homelinux.org>
Sun, 11 May 2008 08:15:07 +0000 (08:15 +0000)
committerEric Bollengier <eric@eb.homelinux.org>
Sun, 11 May 2008 08:15:07 +0000 (08:15 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@6937 91ce42f0-d328-0410-95d8-f526ca767f89

regress/scripts/bacula-dir-faketape.conf.in [new file with mode: 0644]
regress/scripts/bacula-sd-faketape.conf.in [new file with mode: 0644]
regress/scripts/do_sed
regress/scripts/prepare-big-autochanger.in [new file with mode: 0644]

diff --git a/regress/scripts/bacula-dir-faketape.conf.in b/regress/scripts/bacula-dir-faketape.conf.in
new file mode 100644 (file)
index 0000000..79049d4
--- /dev/null
@@ -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 (file)
index 0000000..c06d227
--- /dev/null
@@ -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
+}
index 3a11096aae85ab73832f5f9d77c6cef979d9aafb..37ac9fb1f6f652ca6f46a21a262c476297f4be88 100755 (executable)
@@ -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 (file)
index 0000000..735ee03
--- /dev/null
@@ -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 <<EOF
+maxdrive=8
+maxslot=10
+dbgfile=$adir/log
+EOF
+
+# turn on ach debug
+touch $adir/log
+
+# create 80 volumes
+for i in `seq 1 80`; do
+    echo $i:vol$i >> $adir/barcodes
+    cp /dev/null $adir/slot$i
+done
+