3 # This script will test next vol algo with
6 # TODO: Test Pool with RecyclePool
7 # Test Pool without RecyclePool
8 # Test with enabled=false
14 TestName="next-vol-test"
19 scripts/copy-tape-confs
20 cp scripts/bacula-dir-vtape.conf bin/bacula-dir.conf
21 cp scripts/bacula-sd-vtape.conf bin/bacula-sd.conf
22 scripts/prepare-fake-autochanger
27 cat <<EOF > ${cwd}/tmp/bconcmds
28 @$out ${cwd}/tmp/log.out
29 label barcodes storage=LTO3 slots=47-59 drive=0 pool=Scratch
31 update volume=vol47 pool=Test inchanger=no RecyclePool=Test
32 update volume=vol59 pool=Test enabled=no
33 update volume=vol58 pool=Test volstatus=Recycle
35 update volume=vol56 pool=Test
36 update volume=vol55 pool=Test volstatus=Full volretention=15
37 update volume=vol54 volstatus=Recycle
39 update volume=vol52 MaxVolJobs=1
40 update volume=vol51 inchanger=no volstatus=Recycle
42 update volume=vol50 inchanger=no
43 update volume=vol49 inchanger=no
44 update volume=vol48 inchanger=no pool=Test
45 update volume AllFromPool=Test
47 update Media SET VolJobs=1 WHERE VolumeName='vol52';
48 update Media SET LastWritten='2006-01-01 01:00:00';
55 echo $PWD/build/po > tmp/file-list
57 cat <<EOF > ${cwd}/tmp/bconcmds
58 @$out ${cwd}/tmp/log2.out
61 run level=full pool=Test NightlySave yes
66 run level=full pool=Test NightlySave yes
71 run level=full pool=Test NightlySave yes
76 run level=full pool=Test NightlySave yes
81 run level=full pool=Test NightlySave yes
86 run level=full pool=Test NightlySave yes
91 run level=full pool=Test NightlySave yes
95 restore fileset="Full Set" pool=Test where=${cwd}/tmp/bacula-restores select all done
102 @#run level=full pool=Test NightlySave yes
110 awk '/Must choose/ { print $4 } ' tmp/log2.out > tmp/normal
111 awk '/Volume name.+:/ { print $3 } ' tmp/log2.out > tmp/real
112 if test "$debug" -eq 1; then
113 diff -ur tmp/normal tmp/real
115 diff tmp/normal tmp/real > /dev/null
119 # try to break the old code
120 # in this situation, we have 1 available volume (vol50) and bacula will try to use
121 # vol47, vol48 and vol49 and will stop without using vol50.
124 cat <<EOF > ${cwd}/tmp/bconcmds
125 @$out ${cwd}/tmp/log1.out
126 update volume=vol47 pool=Test VolStatus=Used VolRetention=10s inchanger=no RecyclePool=Test
127 update volume=vol48 pool=Test VolStatus=Used VolRetention=10s inchanger=no RecyclePool=Test
128 update volume=vol49 pool=Test VolStatus=Used VolRetention=10s inchanger=no RecyclePool=Test
129 update volume=vol50 pool=Test VolStatus=Used VolRetention=10s inchanger=yes RecyclePool=Test
131 update Media SET LastWritten='2005-01-01 01:00:00' WHERE VolumeName IN ('vol47', 'vol48', 'vol49');
134 run level=full pool=Test NightlySave yes
142 check_for_zombie_jobs storage=LTO3
145 grep "Invalid slot=0 defined in catalog for Volume" tmp/log1.out > /dev/null
146 if [ $? -ne 0 ]; then