]> git.sur5r.net Git - bacula/bacula/commitdiff
Add new test
authorKern Sibbald <kern@sibbald.com>
Wed, 9 Apr 2008 15:22:05 +0000 (15:22 +0000)
committerKern Sibbald <kern@sibbald.com>
Wed, 9 Apr 2008 15:22:05 +0000 (15:22 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@6780 91ce42f0-d328-0410-95d8-f526ca767f89

regress/DartTestfile.txt.in
regress/scripts/bacula-dir-tape.conf.in
regress/scripts/bacula-sd-2disk-drive.conf.in
regress/scripts/bacula-sd-2disk.conf.in
regress/tests/recycle-test
regress/tests/two-pool-test
regress/tests/virtual-changer-test [new file with mode: 0755]

index 6999985180e259f0257dfe2ed03eceda9b9269b9..13715da342f407b16ee1ba3c1e3c364f0e6621ad 100644 (file)
@@ -52,6 +52,7 @@ ADD_TEST(disk:two-vol-test "@regressdir@/tests/two-vol-test")
 ADD_TEST(disk:two-volume-test "@regressdir@/tests/two-volume-test")
 ADD_TEST(disk:verify-cat-test "@regressdir@/tests/verify-cat-test")
 ADD_TEST(disk:verify-vol-test "@regressdir@/tests/verify-vol-test")
+ADD_TEST(disk:virtual-changer-test "@regressdir@/tests/virtual-changer-test")
 ADD_TEST(disk:weird-files2-test "@regressdir@/tests/weird-files2-test")
 ADD_TEST(disk:weird-files-test "@regressdir@/tests/weird-files-test")
 
index 35846294a5d45e9cadfc0025056b75ed6c088b74..3eca3aca5bfb4b5c6c1b09959301cc3214f47a18 100644 (file)
@@ -84,6 +84,19 @@ Job {
 # Prefer Mounted Volumes = no
 }
 
+Job {
+  Name = "Virtual"
+  Type = Backup
+  Client=@hostname@-fd 
+  FileSet="Full Set"
+  Storage = Virtual
+  Messages = Standard
+  Pool = Default
+  Write Bootstrap = "@working_dir@/NightlySave.bsr"
+  Maximum Concurrent Jobs = 4
+  SpoolData = yes
+# Prefer Mounted Volumes = no
+}
 
 
 
@@ -169,6 +182,18 @@ Storage {
   Maximum Concurrent Jobs = 4
 }
 
+# Definition of Virtual storage device
+Storage {
+  Name = Virtual
+  Address = @hostname@                # N.B. Use a fully qualified name here
+  SDPort = @sdport@
+  Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9"          # password for Storage daemon
+  Device = Virtual                    # must be same as Device in Storage daemon
+  Media Type = Disk                   # must be same as MediaType in Storage daemon
+  Maximum Concurrent Jobs = 4
+}
+
+
 
 
 # Generic catalog service
index 10754d9e940b275471bdee02bb05da869652ef67..4515375d2ee75b2c5eab7c94cb95eaed239113eb 100644 (file)
@@ -64,6 +64,38 @@ Device {
 # Maximum File Size = 1000000
 }
 
+Autochanger {
+  Name = Virtual
+  Changer Device = /dev/null
+  Changer Command =""
+  Device = Virtual-1, Virtual-2
+}
+
+Device {
+  Name = Virtual-1
+  Device Type = File
+  Media Type = Disk
+  Archive Device = tmp
+  AutomaticMount = yes;               # when device opened, read it
+  Autochanger = yes
+  Drive Index = 0
+  AlwaysOpen = yes;
+  RemovableMedia = yes;
+# Maximum File Size = 1000000
+}
+
+Device {
+  Name = Virtual-2
+  Device Type = File
+  Media Type = Disk
+  Archive Device = tmp
+  AutomaticMount = yes;               # when device opened, read it
+  Autochanger = yes
+  Drive Index = 1
+  AlwaysOpen = yes;
+  RemovableMedia = yes;
+# Maximum File Size = 1000000
+}
 
 # 
 # Send all messages to the Director, 
index fd5f973f1a67af2fc248adec98df838d2bad2f37..c784ab806df3c0d9be0348a3fb12b991a70b96d3 100644 (file)
@@ -35,7 +35,7 @@ Autochanger {
   Name = DDS-4
   Changer Device = @disk_drive@/conf
   Changer Command ="@scriptdir@/disk-changer %c %o %S %a %d"
-  Device = Drive-0
+  Device = Drive-0, Drive-1
 }
 
 Device {
@@ -52,16 +52,51 @@ Device {
 }
 
 Device {
-  Name = FileStorage
-  Media Type = FileMedia
-  Archive Device = @tmpdir@
-  LabelMedia = yes;                   # lets Bacula label unlabeled media
-  Random Access = Yes;
+  Name = Drive-1                   # 
+  Device Type = File
+  Media Type = DDS-4
+  Archive Device = @disk_drive@/drive0
   AutomaticMount = yes;               # when device opened, read it
-  RemovableMedia = no;
-  AlwaysOpen = no;
+  Autochanger = yes
+  Drive Index = 1
+  AlwaysOpen = yes;
+  RemovableMedia = yes;
+# Maximum File Size = 1000000
+}
+
+
+Autochanger {
+  Name = Virtual
+  Changer Device = /dev/null
+  Changer Command =""
+  Device = Virtual-1, Virtual-2
 }
 
+Device {
+  Name = Virtual-1
+  Device Type = File
+  Media Type = Disk
+  Archive Device = @disk_drive@/drive0
+  AutomaticMount = yes;               # when device opened, read it
+  Autochanger = yes
+  Drive Index = 0
+  AlwaysOpen = yes;
+  RemovableMedia = yes;
+# Maximum File Size = 1000000
+}
+
+Device {
+  Name = Virtual-2
+  Device Type = File
+  Media Type = Disk
+  Archive Device = @disk_drive@/drive0
+  AutomaticMount = yes;               # when device opened, read it
+  Autochanger = yes
+  Drive Index = 1
+  AlwaysOpen = yes;
+  RemovableMedia = yes;
+# Maximum File Size = 1000000
+}
 
 # 
 # Send all messages to the Director, 
index 712b1d32f9cd0fdb2751345f34412875aa5c0e40..066217fbc329db918c7241f6ddd4e84e9620e473 100755 (executable)
@@ -23,14 +23,21 @@ messages
 label storage=File1 volume=TestVolume001
 label storage=File1 volume=TestVolume002
 label storage=File1 volume=TestVolume003
+label storage=File1 volume=TestVolume004
+@# Note, this is going to fail if the pruning gets
+@#  to tight because the saved volume is too large.
+@#  In that case, either add another volume, or
+@#  increase the volume capacity a bit.
 update Volume=TestVolume001 volretention=10s
 update Volume=TestVolume001 maxvolbytes=200000000
 update Volume=TestVolume002 volretention=10s
 update Volume=TestVolume002 maxvolbytes=200000000
 update Volume=TestVolume003 volretention=10s
 update Volume=TestVolume003 maxvolbytes=200000000
+update Volume=TestVolume004 volretention=10s
+update Volume=TestVolume004 maxvolbytes=200000000
 list volumes
-@#setdebug level=100 storage=File1
+setdebug level=150 storage=File1
 run job=$JobName storage=File1 level=full yes
 run job=$JobName storage=File1 level=full yes
 run job=$JobName storage=File1 level=full yes
index e6d729acc66deba268a14e3cdb1e0fba77729017..9e3fe2b58167b3526f60bee160ee680932f702d2 100755 (executable)
@@ -32,7 +32,7 @@ cat <<END_OF_DATA >tmp/bconcmds
 @output /dev/null
 messages
 @$out tmp/log1.out
-@#setdebug level=150 storage=DDS-4
+setdebug level=150 storage=DDS-4
 label storage=DDS-4 volume=TestVolume001 slot=1 pool=Full drive=0
 label storage=DDS-4 volume=TestVolume002 slot=2 pool=Default drive=0
 list volumes
diff --git a/regress/tests/virtual-changer-test b/regress/tests/virtual-changer-test
new file mode 100755 (executable)
index 0000000..33178f5
--- /dev/null
@@ -0,0 +1,83 @@
+#!/bin/sh
+#
+# Run a simple backup of the Bacula build directory. Create three
+#   tapes, each in a different pool, then run two jobs both of which
+#   want the disk that is not loaded.  Note, they both have     
+#   prefers non-mounted tapes.  This should expose bug #801
+#
+# This script uses the virtual disk autochanger and two drives
+#
+TestName="virtual-changer-disk"
+JobName="virtualchangerdisk"
+. scripts/functions
+
+scripts/cleanup
+scripts/copy-2disk-drive-confs
+scripts/prepare-two-disks
+
+echo "${cwd}/build" >${cwd}/tmp/file-list
+#change_jobname Virtual $JobName
+start_test
+
+# Turn off Prefer Mounted Volumes so we use 2 drives
+outf="${cwd}/tmp/sed_tmp"
+echo "s%# Prefer Mounted Volumes%  Prefer Mounted Volumes%g" >${outf}
+cp ${cwd}/bin/bacula-dir.conf ${cwd}/tmp/1
+# Comment the next line out to write everything to one drive
+#  otherwise, it writes the two jobs to different drives
+sed -f ${outf} ${cwd}/tmp/1 >${cwd}/bin/bacula-dir.conf
+
+# Write out bconsole commands
+cat <<END_OF_DATA >${cwd}/tmp/bconcmds
+@output /dev/null
+messages
+@$out ${cwd}/tmp/log1.out
+@#setdebug level=200 storage=Virtual
+@#setdebug level=200 client 
+label storage=Virtual volume=TestVolume001 slot=1 Pool=Default drive=0
+label storage=Virtual volume=TestVolume002 slot=2 Pool=Full    drive=0
+label storage=Virtual volume=TestVolume003 slot=3 Pool=Inc     drive=1
+status storage=Virtual
+run job=Virtual level=Full Pool=Default yes
+run job=Virtual level=Full Pool=Default yes
+run job=Virtual level=Full Pool=Default yes
+run job=Virtual level=Full Pool=Default yes
+run job=Virtual level=Full Pool=Default yes
+@sleep 10
+status storage=Virtual
+list volumes
+wait
+list volumes
+list jobs
+status storage=Virtual
+messages
+quit
+END_OF_DATA
+
+# exit
+
+run_bacula
+cat <<END_OF_DATA >${cwd}/tmp/bconcmds
+@$out /dev/null
+messages
+@# 
+@# now do a restore
+@#
+@$out ${cwd}/tmp/log2.out
+restore where=${cwd}/tmp/bacula-restores select all storage=Virtual done
+yes
+wait
+messages
+@$out
+quit
+END_OF_DATA
+
+run_bconsole
+
+check_for_zombie_jobs storage=Virtual
+stop_bacula
+
+check_two_logs
+check_restore_diff
+
+end_test