#!/bin/sh # # Copyright (C) 2000-2015 Kern Sibbald # License: BSD 2-Clause; see file LICENSE-FOSS # # # Label two tapes, write to the first, then recycle it and destroy # the header. Bacula should discover that, mark the tape in # error and continue onto the second tape. # TestName="bad-label-changer" JobName=badlabelchanger . scripts/functions require_tape_drive require_autochanger scripts/cleanup scripts/copy-2tape-confs scripts/prepare-two-tapes echo "${cwd}/build" >${cwd}/tmp/file-list #outf="tmp/sed_tmp" #echo "s%# Maximum File Size% Maximum File Size%g" >${outf} #cp ${cwd}/bin/bacula-sd.conf ${cwd}/tmp/1 #sed -f ${outf} ${cwd}/tmp/1 >${cwd}/bin/bacula-sd.conf change_jobname $JobName start_test # Write out bconsole commands cat <tmp/bconcmds @$out /dev/null messages @$out tmp/log1.out label storage=tape volume=TestVolume002 slot=$SLOT2 pool=Default drive=$DRIVE1 label storage=tape volume=TestVolume001 slot=$SLOT1 pool=Default drive=$DRIVE1 list volumes @#setdebug level=10 client=$CLIENT setdebug level=150 storage=tape run job=$JobName yes wait purge volume=TestVolume001 messages quit END_OF_DATA run_bacula check_for_zombie_jobs storage=tape stop_bacula # Overwrite TestVolume001 label init_drive ${TAPE_DRIVE} cat <tmp/bconcmds @$out /dev/null messages list volumes run job=$JobName level=Full storage=tape yes wait messages @# @# now do a restore @# @$out tmp/log2.out restore where=${cwd}/tmp/bacula-restores select all storage=tape done yes wait messages quit END_OF_DATA run_bacula check_for_zombie_jobs storage=tape stop_bacula check_two_logs check_restore_diff end_test