1#!/bin/sh 2# 3# This systemtest tests the Percona plugin functionality 4# of the Bareos FD by using the supplied module 5# BareosFdPluginPerconaXtraBackup.py 6# 7TestName="$(basename "$(pwd)")" 8export TestName 9 10JobName=backup-bareos-fd 11#shellcheck source=../environment.in 12. ./environment 13 14JobName=backup-bareos-fd 15#shellcheck source=../scripts/functions 16. "${rscripts}"/functions 17"${rscripts}"/cleanup 18"${rscripts}"/setup 19 20xtrabackup_test_db="${db_name}_xtrabackup" 21 22start_test 23 24echo "drop database ${xtrabackup_test_db}" | mysql 25echo "create database ${xtrabackup_test_db}" | mysql 26echo "CREATE TABLE test ( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, data VARCHAR(100), created TIMESTAMP DEFAULT NOW()) " | mysql ${xtrabackup_test_db} 27echo "insert into test (data) VALUES ('test entry 1') " | mysql ${xtrabackup_test_db} 28 29 30run_bareos "$@" 31 32echo "@$out $tmp/log1.out" | $BAREOS_BCONSOLE_BINARY -c "$conf"/bconsole.conf 33 34COMMAND="run job=$JobName" 35echo "$COMMAND yes" | $BAREOS_BCONSOLE_BINARY -c "$conf"/bconsole.conf 36echo "wait JobName=$JobName" | $BAREOS_BCONSOLE_BINARY -c "$conf"/bconsole.conf 37echo "status dir" | $BAREOS_BCONSOLE_BINARY -c "$conf"/bconsole.conf 38# insert data and run incremental 39echo "insert into test (data) VALUES ('test entry 2') " | mysql ${xtrabackup_test_db} 40 41COMMAND="$COMMAND level=Incremental" 42echo "$COMMAND yes" | $BAREOS_BCONSOLE_BINARY -c "$conf"/bconsole.conf #| grep "Job queued. JobId=" 43echo "wait JobName=$JobName" | $BAREOS_BCONSOLE_BINARY -c "$conf"/bconsole.conf 44echo "status dir" | $BAREOS_BCONSOLE_BINARY -c "$conf"/bconsole.conf 45 46 47# run incremental again without any new data 48echo "$COMMAND yes" | $BAREOS_BCONSOLE_BINARY -c "$conf"/bconsole.conf #| grep "Job queued. JobId=" 49echo "wait JobName=$JobName" | $BAREOS_BCONSOLE_BINARY -c "$conf"/bconsole.conf 50echo "status dir" | $BAREOS_BCONSOLE_BINARY -c "$conf"/bconsole.conf 51 52 53# run restore 54RESTORECMD="restore client=bareos-fd fileset=PerconaXtraBackupTest yes restorejob=RestoreFile select all done" 55 56echo "@$out $tmp/log2.out" | $BAREOS_BCONSOLE_BINARY -c "$conf"/bconsole.conf 57 58JOBID=$(echo "$RESTORECMD" | $BAREOS_BCONSOLE_BINARY -c "$conf"/bconsole.conf | grep "Job queued. JobId=" | sed s'/.*=//') 59 60if ! echo "wait jobid=$JOBID" | $BAREOS_BCONSOLE_BINARY -c "$conf"/bconsole.conf | grep -q "JobStatus=OK"; 61then 62 echo "Restore Job $JOBID failed" 63 estat=1 64fi 65 66# Check, if xtrabackup has extracted some files at least 67# TODO: verify that xtrabackup --prepare works and eventually do complete datbase restore 68ls -lR $tmp/bareos-restores/_percona/ 69if [ -z "$(ls -A $tmp/bareos-restores/_percona/)" ]; then 70 echo "No restore data found" 71 estat=1 72fi 73 74 75 76 77 78check_for_zombie_jobs storage=File 79stop_bareos 80 81check_two_logs 82 83end_test 84