From 2b226f260b0246592417f52b3240a44bfc966b5c Mon Sep 17 00:00:00 2001 From: "(no author)" <(no author)@91ce42f0-d328-0410-95d8-f526ca767f89> Date: Tue, 30 Jan 2007 19:49:15 +0000 Subject: [PATCH] This commit was manufactured by cvs2svn to create tag 'Release-2.0.2'. git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/tags/Release-2.0.2@4082 91ce42f0-d328-0410-95d8-f526ca767f89 --- bacula/ChangeLog | 36 +- bacula/ReleaseNotes | 57 ++- bacula/kernstodo | 18 - bacula/patches/testing/batch-insert.patch | 2 +- .../project-include-jobid-in-spool-name.patch | 14 - ...project-include-jobid-in-spool-name.readme | 11 - bacula/patches/testing/scratch.readme | 4 + bacula/po/bacula.pot | 239 +++++----- bacula/po/de.gmo | Bin 0 -> 479 bytes bacula/po/de.po | 239 +++++----- bacula/po/es.gmo | Bin 0 -> 426 bytes bacula/po/es.po | 239 +++++----- bacula/po/fr.gmo | Bin 0 -> 110756 bytes bacula/po/fr.po | 239 +++++----- bacula/po/it.gmo | Bin 0 -> 470 bytes bacula/po/it.po | 239 +++++----- bacula/projects | 8 +- bacula/src/c | 2 +- bacula/src/cl | 2 +- .../gnome2-console/test-gnome-console.conf | 2 +- bacula/src/lib/smartall.h | 9 +- bacula/src/qt-console/.cvsignore | 10 - bacula/src/qt-console/Makefile | 269 ----------- bacula/src/qt-console/README | 75 --- bacula/src/qt-console/bat.conf | 10 - bacula/src/qt-console/bat.h | 20 - bacula/src/qt-console/bat.pro | 22 - bacula/src/qt-console/bat_conf.cpp | 337 -------------- bacula/src/qt-console/bat_conf.h | 116 ----- .../src/qt-console/console/authenticate.cpp | 110 ----- bacula/src/qt-console/console/console.cpp | 274 ----------- bacula/src/qt-console/console/console.h | 39 -- bacula/src/qt-console/images/backup.png | Bin 1651 -> 0 bytes bacula/src/qt-console/images/bat.png | Bin 96268 -> 0 bytes bacula/src/qt-console/images/bat_icon.png | Bin 5054 -> 0 bytes bacula/src/qt-console/images/big-server.png | Bin 1087 -> 0 bytes bacula/src/qt-console/images/connected.png | Bin 547 -> 0 bytes bacula/src/qt-console/images/copy.png | Bin 1339 -> 0 bytes bacula/src/qt-console/images/cut.png | Bin 1323 -> 0 bytes bacula/src/qt-console/images/disconnected.png | Bin 640 -> 0 bytes bacula/src/qt-console/images/label.png | Bin 1291 -> 0 bytes bacula/src/qt-console/images/new.png | Bin 852 -> 0 bytes bacula/src/qt-console/images/open.png | Bin 2073 -> 0 bytes bacula/src/qt-console/images/paste.png | Bin 1745 -> 0 bytes bacula/src/qt-console/images/print.png | Bin 1732 -> 0 bytes bacula/src/qt-console/images/restore.png | Bin 1352 -> 0 bytes bacula/src/qt-console/images/run.png | Bin 2296 -> 0 bytes bacula/src/qt-console/images/save.png | Bin 1187 -> 0 bytes bacula/src/qt-console/images/server.png | Bin 2618 -> 0 bytes bacula/src/qt-console/images/undo.png | Bin 1768 -> 0 bytes bacula/src/qt-console/main.cpp | 254 ----------- bacula/src/qt-console/main.qrc | 18 - bacula/src/qt-console/main.ui | 430 ------------------ bacula/src/qt-console/mainwin.cpp | 122 ----- bacula/src/qt-console/mainwin.h | 63 --- bacula/src/stored/append.c | 15 +- bacula/src/stored/fd_cmds.c | 42 +- bacula/src/stored/job.c | 2 +- bacula/src/stored/protos.h | 5 +- bacula/src/version.h | 4 +- bacula/src/win32/libbac/libbac.vcproj | 4 +- bacula/{technotes-2.1 => technotes-2.0} | 15 +- regress/.cvsignore | 12 - regress/Makefile.in | 72 --- regress/README | 126 ----- regress/all-non-root-2tape-tests | 12 - regress/all-non-root-tape-tests | 29 -- regress/all-non-root-tests | 52 --- regress/all-root-tests | 11 - regress/all-tape-and-file-tests | 7 - regress/all-tests | 8 - regress/config | 9 - regress/do_all | 11 - regress/do_all_tapes | 3 - regress/do_file | 6 - regress/endtime | 12 - regress/file | 2 - regress/freebsd.conf | 31 -- regress/kern.conf | 35 -- regress/misc-tests | 2 - regress/prototype.conf | 52 --- regress/run | 3 - regress/scripts/.cvsignore | 26 -- regress/scripts/bacula-dir-migration.conf.in | 229 ---------- regress/scripts/bacula-dir-tape.conf.in | 226 --------- regress/scripts/bacula-dir-win32-tape.conf.in | 144 ------ .../scripts/bacula-dir.conf.testrunscript.in | 159 ------- regress/scripts/bacula-sd-2disk-drive.conf.in | 75 --- regress/scripts/bacula-sd-2disk.conf.in | 62 --- regress/scripts/bacula-sd-2drive.conf.in | 75 --- regress/scripts/bacula-sd-2tape.conf.in | 61 --- regress/scripts/bacula-sd-migration.conf.in | 72 --- regress/scripts/bacula-sd-tape.conf.in | 54 --- regress/scripts/bacula-sd.conf.in | 74 --- regress/scripts/check_for_zombie_jobs | 51 --- regress/scripts/cleanup | 22 - regress/scripts/cleanup-2drive.in | 44 -- regress/scripts/cleanup-2tape.in | 30 -- regress/scripts/cleanup-tape.in | 8 - regress/scripts/copy-2disk-confs | 12 - regress/scripts/copy-2disk-drive-confs | 10 - regress/scripts/copy-2drive-confs | 15 - regress/scripts/copy-2tape-confs | 15 - regress/scripts/copy-confs | 11 - regress/scripts/copy-crypto-confs | 6 - regress/scripts/copy-migration-confs | 8 - regress/scripts/copy-tape-confs | 11 - regress/scripts/copy-test-confs | 11 - regress/scripts/copy-testa-confs | 11 - regress/scripts/copy-win32-confs | 11 - regress/scripts/crypto-bacula-fd.conf.in | 36 -- regress/scripts/cryptokeypair.pem | 23 - regress/scripts/do_sed | 74 --- regress/scripts/exclude-dev-test | 5 - regress/scripts/exclude-etc-test | 1 - regress/scripts/exclude-lib-test | 5 - regress/scripts/flist | 23 - regress/scripts/freebsd_tape_options | 8 - regress/scripts/functions | 147 ------ regress/scripts/linux_osst_tape_options | 7 - regress/scripts/linux_tape_options | 1 - regress/scripts/new-test-bacula-dir.conf.in | 342 -------------- regress/scripts/prepare-two-disks | 6 - regress/scripts/prepare-two-tapes.in | 14 - regress/scripts/regress-config | 24 - regress/scripts/setup | 60 --- regress/scripts/test-bacula-dir.conf.in | 312 ------------- regress/scripts/test-bacula-fd.conf.in | 33 -- regress/scripts/test-bacula-sd.conf.in | 107 ----- regress/scripts/test-console.conf.in | 10 - regress/scripts/testa-bacula-dir.conf.in | 147 ------ regress/scripts/win32-bacula-dir-tape.conf.in | 159 ------- regress/scripts/win32-bacula-fd.conf | 33 -- regress/scripts/win32-bacula-sd-tape.conf | 54 --- regress/starttime | 6 - regress/tape | 2 - regress/tests/.cvsignore | 2 - regress/tests/2drive-incremental-2disk | 114 ----- regress/tests/2drive-incremental-2tape | 112 ----- regress/tests/auto-label-test | 64 --- regress/tests/backup-bacula-tape | 117 ----- regress/tests/backup-bacula-test | 62 --- regress/tests/backup-win32-tape | 49 -- regress/tests/bextract-test | 53 --- regress/tests/bscan-fast-tape | 89 ---- regress/tests/bscan-tape | 142 ------ regress/tests/bscan-test | 84 ---- regress/tests/bsr-opt-test | 81 ---- regress/tests/btape-fill-full-tape | 35 -- regress/tests/btape-fill-tape | 38 -- regress/tests/compress-encrypt-test | 50 -- regress/tests/compressed-test | 55 --- regress/tests/concurrent-jobs-test | 67 --- regress/tests/data-encrypt-test | 55 --- regress/tests/dev-test-root | 85 ---- regress/tests/differential-test | 88 ---- regress/tests/eot-fail-tape | 51 --- regress/tests/etc-test-root | 70 --- regress/tests/fixed-block-size-tape | 62 --- regress/tests/four-concurrent-jobs-tape | 56 --- regress/tests/four-concurrent-jobs-test | 76 ---- regress/tests/four-jobs-tape | 153 ------- regress/tests/four-jobs-test | 128 ------ regress/tests/gigaslam-sparse-test | 64 --- regress/tests/hardlink-test | 66 --- regress/tests/incremental-2disk | 92 ---- regress/tests/incremental-2tape | 110 ----- regress/tests/incremental-tape | 76 ---- regress/tests/incremental-test | 170 ------- regress/tests/lib-tape-root | 67 --- regress/tests/lib-test-root | 76 ---- regress/tests/migration-job-test | 73 --- regress/tests/migration-jobspan-test | 83 ---- regress/tests/migration-occupancy-test | 72 --- regress/tests/migration-time-test | 79 ---- regress/tests/migration-volume-test | 106 ----- regress/tests/query-test | 119 ----- regress/tests/recycle-test | 81 ---- regress/tests/relabel-tape | 94 ---- regress/tests/restore-by-file-tape | 101 ---- regress/tests/restore-by-file-test | 57 --- regress/tests/restore-disk-seek-test | 94 ---- regress/tests/restore-seek-tape | 93 ---- regress/tests/restore2-by-file-test | 50 -- regress/tests/runscript-test | 90 ---- regress/tests/scratch-pool-test | 74 --- regress/tests/six-vol-test | 56 --- regress/tests/small-file-size-tape | 50 -- regress/tests/span-vol-test | 57 --- regress/tests/sparse-compressed-test | 44 -- regress/tests/sparse-encrypt-test | 65 --- regress/tests/sparse-test | 47 -- regress/tests/test0 | 3 - regress/tests/truncate-bug-tape | 87 ---- regress/tests/two-jobs-test | 80 ---- regress/tests/two-pool-tape | 82 ---- regress/tests/two-pool-test | 75 --- regress/tests/two-vol-test | 47 -- regress/tests/two-volume-tape | 78 ---- regress/tests/two-volume-test | 61 --- regress/tests/usr-tape-root | 62 --- regress/tests/verify-vol-tape | 50 -- regress/tests/verify-vol-test | 51 --- regress/tests/weird-files-test | 69 --- regress/tests/weird-files2-test | 80 ---- regress/tests/win32-backup-tape | 49 -- regress/tests/win32-to-linux-tape | 49 -- regress/weird-files.tar.gz | Bin 1711 -> 0 bytes regress/win32/all-non-root-2tape-tests.cmd | 11 - regress/win32/all-non-root-tape-tests.cmd | 26 -- regress/win32/all-non-root-tests.cmd | 48 -- regress/win32/all-root-tests.cmd | 10 - regress/win32/all-tape-and-file-tests.cmd | 5 - regress/win32/all-tests.cmd | 7 - regress/win32/config.cmd | 10 - regress/win32/make.cmd | 111 ----- regress/win32/prototype.conf | 31 -- .../scripts/bacula-dir-migration.conf.in | 229 ---------- regress/win32/scripts/bacula-dir-tape.conf.in | 226 --------- .../scripts/bacula-dir-win32-tape.conf.in | 144 ------ .../scripts/bacula-dir.conf.testrunscript.in | 159 ------- .../scripts/bacula-sd-2disk-drive.conf.in | 75 --- regress/win32/scripts/bacula-sd-2disk.conf.in | 62 --- .../win32/scripts/bacula-sd-2drive.conf.in | 75 --- regress/win32/scripts/bacula-sd-2tape.conf.in | 61 --- .../win32/scripts/bacula-sd-migration.conf.in | 72 --- regress/win32/scripts/bacula-sd-tape.conf.in | 54 --- regress/win32/scripts/bacula-sd.conf.in | 74 --- regress/win32/scripts/bacula.cmd | 18 - .../win32/scripts/check_for_zombie_jobs.bscr | 8 - .../win32/scripts/check_for_zombie_jobs.cmd | 41 -- regress/win32/scripts/cleanup-2drive.cmd.in | 43 -- regress/win32/scripts/cleanup-2tape.cmd.in | 29 -- regress/win32/scripts/cleanup-tape.cmd.in | 7 - regress/win32/scripts/cleanup.cmd | 23 - regress/win32/scripts/copy-2disk-confs.cmd | 9 - .../win32/scripts/copy-2disk-drive-confs.cmd | 6 - regress/win32/scripts/copy-2drive-confs.cmd | 10 - regress/win32/scripts/copy-2tape-confs.cmd | 10 - regress/win32/scripts/copy-confs.cmd | 7 - regress/win32/scripts/copy-crypto-confs.cmd | 5 - .../win32/scripts/copy-migration-confs.cmd | 7 - regress/win32/scripts/copy-tape-confs.cmd | 7 - regress/win32/scripts/copy-test-confs.cmd | 7 - regress/win32/scripts/copy-testa-confs.cmd | 7 - regress/win32/scripts/copy-win32-confs.cmd | 7 - .../win32/scripts/crypto-bacula-fd.conf.in | 36 -- regress/win32/scripts/cryptokeypair.pem | 23 - regress/win32/scripts/disk-changer.cmd | 201 -------- regress/win32/scripts/do_sed.cmd | 73 --- regress/win32/scripts/exclude-dev-test | 5 - regress/win32/scripts/exclude-etc-test | 1 - regress/win32/scripts/exclude-lib-test | 5 - regress/win32/scripts/flist | 23 - regress/win32/scripts/functions.cmd | 131 ------ regress/win32/scripts/install_bacula.cmd | 76 ---- .../win32/scripts/new-test-bacula-dir.conf.in | 326 ------------- regress/win32/scripts/prepare-two-disks.cmd | 5 - .../win32/scripts/prepare-two-tapes.cmd.in | 13 - regress/win32/scripts/setup.cmd | 55 --- regress/win32/scripts/test-bacula-dir.conf.in | 312 ------------- regress/win32/scripts/test-bacula-fd.conf.in | 33 -- regress/win32/scripts/test-bacula-sd.conf.in | 107 ----- regress/win32/scripts/test-console.conf.in | 10 - .../win32/scripts/testa-bacula-dir.conf.in | 147 ------ .../scripts/win32-bacula-dir-tape.conf.in | 159 ------- regress/win32/scripts/win32_tape_options | 1 - .../tests/2drive-incremental-2disk.1.bscr | 20 - .../tests/2drive-incremental-2disk.2.bscr | 25 - .../win32/tests/2drive-incremental-2disk.cmd | 57 --- regress/win32/tests/2drive-incremental-2tape | 112 ----- regress/win32/tests/auto-label-test.bscr | 35 -- regress/win32/tests/auto-label-test.cmd | 27 -- regress/win32/tests/backup-bacula-tape | 117 ----- regress/win32/tests/backup-bacula-test.bscr | 36 -- regress/win32/tests/backup-bacula-test.cmd | 24 - regress/win32/tests/backup-win32-tape | 49 -- regress/win32/tests/bextract-test.bscr | 21 - regress/win32/tests/bextract-test.cmd | 29 -- regress/win32/tests/bscan-fast-tape | 89 ---- regress/win32/tests/bscan-tape | 142 ------ regress/win32/tests/bscan-test.1.bscr | 24 - regress/win32/tests/bscan-test.2.bscr | 13 - regress/win32/tests/bscan-test.cmd | 42 -- regress/win32/tests/bsr-opt-test.bscr | 24 - regress/win32/tests/bsr-opt-test.cmd | 57 --- regress/win32/tests/btape-fill-full-tape | 35 -- regress/win32/tests/btape-fill-tape | 38 -- regress/win32/tests/compressed-test.bscr | 23 - regress/win32/tests/compressed-test.cmd | 24 - regress/win32/tests/concurrent-jobs-test.bscr | 23 - regress/win32/tests/concurrent-jobs-test.cmd | 35 -- regress/win32/tests/dev-test-root | 85 ---- regress/win32/tests/differential-test.1.bscr | 9 - regress/win32/tests/differential-test.2.bscr | 9 - regress/win32/tests/differential-test.3.bscr | 16 - regress/win32/tests/differential-test.cmd | 48 -- regress/win32/tests/eot-fail-tape | 51 --- regress/win32/tests/etc-test-root | 70 --- regress/win32/tests/fixed-block-size-tape | 62 --- regress/win32/tests/four-concurrent-jobs-tape | 56 --- .../tests/four-concurrent-jobs-test.bscr | 50 -- .../win32/tests/four-concurrent-jobs-test.cmd | 23 - regress/win32/tests/four-jobs-tape | 153 ------- regress/win32/tests/four-jobs-test.1.bscr | 11 - regress/win32/tests/four-jobs-test.2.bscr | 8 - regress/win32/tests/four-jobs-test.3.bscr | 8 - regress/win32/tests/four-jobs-test.4.bscr | 8 - regress/win32/tests/four-jobs-test.5.bscr | 17 - regress/win32/tests/four-jobs-test.cmd | 74 --- regress/win32/tests/hardlink-test | 66 --- regress/win32/tests/incremental-2disk.1.bscr | 9 - regress/win32/tests/incremental-2disk.2.bscr | 21 - regress/win32/tests/incremental-2disk.cmd | 55 --- regress/win32/tests/incremental-2tape.1.bscr | 9 - regress/win32/tests/incremental-2tape.2.bscr | 21 - regress/win32/tests/incremental-2tape.cmd | 48 -- regress/win32/tests/incremental-tape | 76 ---- regress/win32/tests/incremental-test.1.bscr | 9 - regress/win32/tests/incremental-test.2.bscr | 9 - regress/win32/tests/incremental-test.3.bscr | 7 - regress/win32/tests/incremental-test.4.bscr | 7 - regress/win32/tests/incremental-test.5.bscr | 16 - regress/win32/tests/incremental-test.cmd | 91 ---- regress/win32/tests/lib-tape-root | 67 --- regress/win32/tests/lib-test-root | 76 ---- regress/win32/tests/migration-job-test.cmd | 37 -- .../win32/tests/migration-jobspan-test.cmd | 42 -- .../win32/tests/migration-occupancy-test.cmd | 36 -- regress/win32/tests/migration-time-test.cmd | 37 -- regress/win32/tests/migration-volume-test.cmd | 40 -- regress/win32/tests/query-test.1.bscr | 9 - regress/win32/tests/query-test.2.bscr | 9 - regress/win32/tests/query-test.3.bscr | 46 -- regress/win32/tests/query-test.cmd | 48 -- regress/win32/tests/recycle-test.bscr | 51 --- regress/win32/tests/recycle-test.cmd | 26 -- regress/win32/tests/relabel-tape | 94 ---- regress/win32/tests/restore-by-file-tape | 101 ---- regress/win32/tests/restore-by-file-test.bscr | 20 - regress/win32/tests/restore-by-file-test.cmd | 30 -- .../win32/tests/restore-disk-seek-test.bscr | 23 - .../win32/tests/restore-disk-seek-test.cmd | 55 --- .../win32/tests/restore2-by-file-test.bscr | 17 - regress/win32/tests/restore2-by-file-test.cmd | 31 -- regress/win32/tests/runscript-test | 90 ---- regress/win32/tests/scratch-pool-test.bscr | 25 - regress/win32/tests/scratch-pool-test.cmd | 45 -- regress/win32/tests/six-vol-test.bscr | 19 - regress/win32/tests/six-vol-test.cmd | 36 -- regress/win32/tests/small-file-size-tape | 50 -- regress/win32/tests/span-vol-test.bscr | 27 -- regress/win32/tests/span-vol-test.cmd | 26 -- .../win32/tests/sparse-compressed-test.bscr | 17 - .../win32/tests/sparse-compressed-test.cmd | 23 - regress/win32/tests/sparse-test.bscr | 20 - regress/win32/tests/sparse-test.cmd | 23 - regress/win32/tests/test0.cmd | 2 - regress/win32/tests/truncate-bug-tape | 87 ---- regress/win32/tests/two-jobs-test.1.bscr | 14 - regress/win32/tests/two-jobs-test.2.bscr | 27 -- regress/win32/tests/two-jobs-test.cmd | 35 -- regress/win32/tests/two-pool-tape | 82 ---- regress/win32/tests/two-pool-test.bscr | 36 -- regress/win32/tests/two-pool-test.cmd | 37 -- regress/win32/tests/two-vol-test.bscr | 19 - regress/win32/tests/two-vol-test.cmd | 24 - regress/win32/tests/two-volume-tape.1.bscr | 11 - regress/win32/tests/two-volume-tape.2.bscr | 12 - regress/win32/tests/two-volume-tape.cmd | 48 -- regress/win32/tests/two-volume-test.bscr | 21 - regress/win32/tests/two-volume-test.cmd | 35 -- regress/win32/tests/usr-tape-root | 62 --- regress/win32/tests/verify-vol-tape | 50 -- regress/win32/tests/verify-vol-test.bscr | 18 - regress/win32/tests/verify-vol-test.cmd | 29 -- regress/win32/tests/weird-files-test | 69 --- regress/win32/tests/weird-files2-test | 80 ---- regress/win32/tests/win32-backup-tape | 49 -- regress/win32/tests/win32-to-linux-tape | 49 -- 380 files changed, 744 insertions(+), 19804 deletions(-) delete mode 100644 bacula/patches/testing/project-include-jobid-in-spool-name.patch delete mode 100644 bacula/patches/testing/project-include-jobid-in-spool-name.readme create mode 100644 bacula/po/de.gmo create mode 100644 bacula/po/es.gmo create mode 100644 bacula/po/fr.gmo create mode 100644 bacula/po/it.gmo delete mode 100644 bacula/src/qt-console/.cvsignore delete mode 100644 bacula/src/qt-console/Makefile delete mode 100644 bacula/src/qt-console/README delete mode 100644 bacula/src/qt-console/bat.conf delete mode 100644 bacula/src/qt-console/bat.h delete mode 100644 bacula/src/qt-console/bat.pro delete mode 100644 bacula/src/qt-console/bat_conf.cpp delete mode 100644 bacula/src/qt-console/bat_conf.h delete mode 100644 bacula/src/qt-console/console/authenticate.cpp delete mode 100644 bacula/src/qt-console/console/console.cpp delete mode 100644 bacula/src/qt-console/console/console.h delete mode 100644 bacula/src/qt-console/images/backup.png delete mode 100644 bacula/src/qt-console/images/bat.png delete mode 100644 bacula/src/qt-console/images/bat_icon.png delete mode 100644 bacula/src/qt-console/images/big-server.png delete mode 100644 bacula/src/qt-console/images/connected.png delete mode 100644 bacula/src/qt-console/images/copy.png delete mode 100644 bacula/src/qt-console/images/cut.png delete mode 100644 bacula/src/qt-console/images/disconnected.png delete mode 100644 bacula/src/qt-console/images/label.png delete mode 100644 bacula/src/qt-console/images/new.png delete mode 100644 bacula/src/qt-console/images/open.png delete mode 100644 bacula/src/qt-console/images/paste.png delete mode 100644 bacula/src/qt-console/images/print.png delete mode 100644 bacula/src/qt-console/images/restore.png delete mode 100644 bacula/src/qt-console/images/run.png delete mode 100644 bacula/src/qt-console/images/save.png delete mode 100644 bacula/src/qt-console/images/server.png delete mode 100644 bacula/src/qt-console/images/undo.png delete mode 100644 bacula/src/qt-console/main.cpp delete mode 100644 bacula/src/qt-console/main.qrc delete mode 100644 bacula/src/qt-console/main.ui delete mode 100644 bacula/src/qt-console/mainwin.cpp delete mode 100644 bacula/src/qt-console/mainwin.h rename bacula/{technotes-2.1 => technotes-2.0} (89%) delete mode 100644 regress/.cvsignore delete mode 100644 regress/Makefile.in delete mode 100644 regress/README delete mode 100755 regress/all-non-root-2tape-tests delete mode 100755 regress/all-non-root-tape-tests delete mode 100755 regress/all-non-root-tests delete mode 100755 regress/all-root-tests delete mode 100755 regress/all-tape-and-file-tests delete mode 100755 regress/all-tests delete mode 100755 regress/config delete mode 100755 regress/do_all delete mode 100755 regress/do_all_tapes delete mode 100755 regress/do_file delete mode 100755 regress/endtime delete mode 100755 regress/file delete mode 100644 regress/freebsd.conf delete mode 100644 regress/kern.conf delete mode 100644 regress/misc-tests delete mode 100644 regress/prototype.conf delete mode 100755 regress/run delete mode 100644 regress/scripts/.cvsignore delete mode 100644 regress/scripts/bacula-dir-migration.conf.in delete mode 100644 regress/scripts/bacula-dir-tape.conf.in delete mode 100644 regress/scripts/bacula-dir-win32-tape.conf.in delete mode 100644 regress/scripts/bacula-dir.conf.testrunscript.in delete mode 100644 regress/scripts/bacula-sd-2disk-drive.conf.in delete mode 100644 regress/scripts/bacula-sd-2disk.conf.in delete mode 100644 regress/scripts/bacula-sd-2drive.conf.in delete mode 100644 regress/scripts/bacula-sd-2tape.conf.in delete mode 100644 regress/scripts/bacula-sd-migration.conf.in delete mode 100644 regress/scripts/bacula-sd-tape.conf.in delete mode 100644 regress/scripts/bacula-sd.conf.in delete mode 100755 regress/scripts/check_for_zombie_jobs delete mode 100755 regress/scripts/cleanup delete mode 100755 regress/scripts/cleanup-2drive.in delete mode 100755 regress/scripts/cleanup-2tape.in delete mode 100755 regress/scripts/cleanup-tape.in delete mode 100755 regress/scripts/copy-2disk-confs delete mode 100755 regress/scripts/copy-2disk-drive-confs delete mode 100755 regress/scripts/copy-2drive-confs delete mode 100755 regress/scripts/copy-2tape-confs delete mode 100755 regress/scripts/copy-confs delete mode 100755 regress/scripts/copy-crypto-confs delete mode 100755 regress/scripts/copy-migration-confs delete mode 100755 regress/scripts/copy-tape-confs delete mode 100755 regress/scripts/copy-test-confs delete mode 100755 regress/scripts/copy-testa-confs delete mode 100755 regress/scripts/copy-win32-confs delete mode 100644 regress/scripts/crypto-bacula-fd.conf.in delete mode 100644 regress/scripts/cryptokeypair.pem delete mode 100755 regress/scripts/do_sed delete mode 100644 regress/scripts/exclude-dev-test delete mode 100644 regress/scripts/exclude-etc-test delete mode 100644 regress/scripts/exclude-lib-test delete mode 100644 regress/scripts/flist delete mode 100644 regress/scripts/freebsd_tape_options delete mode 100644 regress/scripts/functions delete mode 100644 regress/scripts/linux_osst_tape_options delete mode 100644 regress/scripts/linux_tape_options delete mode 100644 regress/scripts/new-test-bacula-dir.conf.in delete mode 100755 regress/scripts/prepare-two-disks delete mode 100755 regress/scripts/prepare-two-tapes.in delete mode 100755 regress/scripts/regress-config delete mode 100755 regress/scripts/setup delete mode 100644 regress/scripts/test-bacula-dir.conf.in delete mode 100644 regress/scripts/test-bacula-fd.conf.in delete mode 100644 regress/scripts/test-bacula-sd.conf.in delete mode 100644 regress/scripts/test-console.conf.in delete mode 100644 regress/scripts/testa-bacula-dir.conf.in delete mode 100644 regress/scripts/win32-bacula-dir-tape.conf.in delete mode 100644 regress/scripts/win32-bacula-fd.conf delete mode 100644 regress/scripts/win32-bacula-sd-tape.conf delete mode 100755 regress/starttime delete mode 100755 regress/tape delete mode 100644 regress/tests/.cvsignore delete mode 100755 regress/tests/2drive-incremental-2disk delete mode 100755 regress/tests/2drive-incremental-2tape delete mode 100755 regress/tests/auto-label-test delete mode 100755 regress/tests/backup-bacula-tape delete mode 100755 regress/tests/backup-bacula-test delete mode 100755 regress/tests/backup-win32-tape delete mode 100755 regress/tests/bextract-test delete mode 100755 regress/tests/bscan-fast-tape delete mode 100755 regress/tests/bscan-tape delete mode 100755 regress/tests/bscan-test delete mode 100755 regress/tests/bsr-opt-test delete mode 100755 regress/tests/btape-fill-full-tape delete mode 100755 regress/tests/btape-fill-tape delete mode 100755 regress/tests/compress-encrypt-test delete mode 100755 regress/tests/compressed-test delete mode 100755 regress/tests/concurrent-jobs-test delete mode 100755 regress/tests/data-encrypt-test delete mode 100755 regress/tests/dev-test-root delete mode 100755 regress/tests/differential-test delete mode 100755 regress/tests/eot-fail-tape delete mode 100755 regress/tests/etc-test-root delete mode 100755 regress/tests/fixed-block-size-tape delete mode 100755 regress/tests/four-concurrent-jobs-tape delete mode 100755 regress/tests/four-concurrent-jobs-test delete mode 100755 regress/tests/four-jobs-tape delete mode 100755 regress/tests/four-jobs-test delete mode 100755 regress/tests/gigaslam-sparse-test delete mode 100755 regress/tests/hardlink-test delete mode 100755 regress/tests/incremental-2disk delete mode 100755 regress/tests/incremental-2tape delete mode 100755 regress/tests/incremental-tape delete mode 100755 regress/tests/incremental-test delete mode 100755 regress/tests/lib-tape-root delete mode 100755 regress/tests/lib-test-root delete mode 100755 regress/tests/migration-job-test delete mode 100755 regress/tests/migration-jobspan-test delete mode 100755 regress/tests/migration-occupancy-test delete mode 100755 regress/tests/migration-time-test delete mode 100755 regress/tests/migration-volume-test delete mode 100755 regress/tests/query-test delete mode 100755 regress/tests/recycle-test delete mode 100755 regress/tests/relabel-tape delete mode 100755 regress/tests/restore-by-file-tape delete mode 100755 regress/tests/restore-by-file-test delete mode 100755 regress/tests/restore-disk-seek-test delete mode 100755 regress/tests/restore-seek-tape delete mode 100755 regress/tests/restore2-by-file-test delete mode 100755 regress/tests/runscript-test delete mode 100755 regress/tests/scratch-pool-test delete mode 100755 regress/tests/six-vol-test delete mode 100755 regress/tests/small-file-size-tape delete mode 100755 regress/tests/span-vol-test delete mode 100755 regress/tests/sparse-compressed-test delete mode 100755 regress/tests/sparse-encrypt-test delete mode 100755 regress/tests/sparse-test delete mode 100755 regress/tests/test0 delete mode 100755 regress/tests/truncate-bug-tape delete mode 100755 regress/tests/two-jobs-test delete mode 100755 regress/tests/two-pool-tape delete mode 100755 regress/tests/two-pool-test delete mode 100755 regress/tests/two-vol-test delete mode 100755 regress/tests/two-volume-tape delete mode 100755 regress/tests/two-volume-test delete mode 100755 regress/tests/usr-tape-root delete mode 100755 regress/tests/verify-vol-tape delete mode 100755 regress/tests/verify-vol-test delete mode 100755 regress/tests/weird-files-test delete mode 100755 regress/tests/weird-files2-test delete mode 100755 regress/tests/win32-backup-tape delete mode 100755 regress/tests/win32-to-linux-tape delete mode 100644 regress/weird-files.tar.gz delete mode 100644 regress/win32/all-non-root-2tape-tests.cmd delete mode 100644 regress/win32/all-non-root-tape-tests.cmd delete mode 100644 regress/win32/all-non-root-tests.cmd delete mode 100644 regress/win32/all-root-tests.cmd delete mode 100644 regress/win32/all-tape-and-file-tests.cmd delete mode 100644 regress/win32/all-tests.cmd delete mode 100644 regress/win32/config.cmd delete mode 100644 regress/win32/make.cmd delete mode 100644 regress/win32/prototype.conf delete mode 100644 regress/win32/scripts/bacula-dir-migration.conf.in delete mode 100644 regress/win32/scripts/bacula-dir-tape.conf.in delete mode 100644 regress/win32/scripts/bacula-dir-win32-tape.conf.in delete mode 100644 regress/win32/scripts/bacula-dir.conf.testrunscript.in delete mode 100644 regress/win32/scripts/bacula-sd-2disk-drive.conf.in delete mode 100644 regress/win32/scripts/bacula-sd-2disk.conf.in delete mode 100644 regress/win32/scripts/bacula-sd-2drive.conf.in delete mode 100644 regress/win32/scripts/bacula-sd-2tape.conf.in delete mode 100644 regress/win32/scripts/bacula-sd-migration.conf.in delete mode 100644 regress/win32/scripts/bacula-sd-tape.conf.in delete mode 100644 regress/win32/scripts/bacula-sd.conf.in delete mode 100644 regress/win32/scripts/bacula.cmd delete mode 100644 regress/win32/scripts/check_for_zombie_jobs.bscr delete mode 100644 regress/win32/scripts/check_for_zombie_jobs.cmd delete mode 100644 regress/win32/scripts/cleanup-2drive.cmd.in delete mode 100644 regress/win32/scripts/cleanup-2tape.cmd.in delete mode 100644 regress/win32/scripts/cleanup-tape.cmd.in delete mode 100644 regress/win32/scripts/cleanup.cmd delete mode 100644 regress/win32/scripts/copy-2disk-confs.cmd delete mode 100644 regress/win32/scripts/copy-2disk-drive-confs.cmd delete mode 100644 regress/win32/scripts/copy-2drive-confs.cmd delete mode 100644 regress/win32/scripts/copy-2tape-confs.cmd delete mode 100644 regress/win32/scripts/copy-confs.cmd delete mode 100644 regress/win32/scripts/copy-crypto-confs.cmd delete mode 100644 regress/win32/scripts/copy-migration-confs.cmd delete mode 100644 regress/win32/scripts/copy-tape-confs.cmd delete mode 100644 regress/win32/scripts/copy-test-confs.cmd delete mode 100644 regress/win32/scripts/copy-testa-confs.cmd delete mode 100644 regress/win32/scripts/copy-win32-confs.cmd delete mode 100644 regress/win32/scripts/crypto-bacula-fd.conf.in delete mode 100644 regress/win32/scripts/cryptokeypair.pem delete mode 100644 regress/win32/scripts/disk-changer.cmd delete mode 100644 regress/win32/scripts/do_sed.cmd delete mode 100644 regress/win32/scripts/exclude-dev-test delete mode 100644 regress/win32/scripts/exclude-etc-test delete mode 100644 regress/win32/scripts/exclude-lib-test delete mode 100644 regress/win32/scripts/flist delete mode 100644 regress/win32/scripts/functions.cmd delete mode 100644 regress/win32/scripts/install_bacula.cmd delete mode 100644 regress/win32/scripts/new-test-bacula-dir.conf.in delete mode 100644 regress/win32/scripts/prepare-two-disks.cmd delete mode 100644 regress/win32/scripts/prepare-two-tapes.cmd.in delete mode 100644 regress/win32/scripts/setup.cmd delete mode 100644 regress/win32/scripts/test-bacula-dir.conf.in delete mode 100644 regress/win32/scripts/test-bacula-fd.conf.in delete mode 100644 regress/win32/scripts/test-bacula-sd.conf.in delete mode 100644 regress/win32/scripts/test-console.conf.in delete mode 100644 regress/win32/scripts/testa-bacula-dir.conf.in delete mode 100644 regress/win32/scripts/win32-bacula-dir-tape.conf.in delete mode 100644 regress/win32/scripts/win32_tape_options delete mode 100644 regress/win32/tests/2drive-incremental-2disk.1.bscr delete mode 100644 regress/win32/tests/2drive-incremental-2disk.2.bscr delete mode 100644 regress/win32/tests/2drive-incremental-2disk.cmd delete mode 100644 regress/win32/tests/2drive-incremental-2tape delete mode 100644 regress/win32/tests/auto-label-test.bscr delete mode 100644 regress/win32/tests/auto-label-test.cmd delete mode 100644 regress/win32/tests/backup-bacula-tape delete mode 100644 regress/win32/tests/backup-bacula-test.bscr delete mode 100644 regress/win32/tests/backup-bacula-test.cmd delete mode 100644 regress/win32/tests/backup-win32-tape delete mode 100644 regress/win32/tests/bextract-test.bscr delete mode 100644 regress/win32/tests/bextract-test.cmd delete mode 100644 regress/win32/tests/bscan-fast-tape delete mode 100644 regress/win32/tests/bscan-tape delete mode 100644 regress/win32/tests/bscan-test.1.bscr delete mode 100644 regress/win32/tests/bscan-test.2.bscr delete mode 100644 regress/win32/tests/bscan-test.cmd delete mode 100644 regress/win32/tests/bsr-opt-test.bscr delete mode 100644 regress/win32/tests/bsr-opt-test.cmd delete mode 100644 regress/win32/tests/btape-fill-full-tape delete mode 100644 regress/win32/tests/btape-fill-tape delete mode 100644 regress/win32/tests/compressed-test.bscr delete mode 100644 regress/win32/tests/compressed-test.cmd delete mode 100644 regress/win32/tests/concurrent-jobs-test.bscr delete mode 100644 regress/win32/tests/concurrent-jobs-test.cmd delete mode 100644 regress/win32/tests/dev-test-root delete mode 100644 regress/win32/tests/differential-test.1.bscr delete mode 100644 regress/win32/tests/differential-test.2.bscr delete mode 100644 regress/win32/tests/differential-test.3.bscr delete mode 100644 regress/win32/tests/differential-test.cmd delete mode 100644 regress/win32/tests/eot-fail-tape delete mode 100644 regress/win32/tests/etc-test-root delete mode 100644 regress/win32/tests/fixed-block-size-tape delete mode 100644 regress/win32/tests/four-concurrent-jobs-tape delete mode 100644 regress/win32/tests/four-concurrent-jobs-test.bscr delete mode 100644 regress/win32/tests/four-concurrent-jobs-test.cmd delete mode 100644 regress/win32/tests/four-jobs-tape delete mode 100644 regress/win32/tests/four-jobs-test.1.bscr delete mode 100644 regress/win32/tests/four-jobs-test.2.bscr delete mode 100644 regress/win32/tests/four-jobs-test.3.bscr delete mode 100644 regress/win32/tests/four-jobs-test.4.bscr delete mode 100644 regress/win32/tests/four-jobs-test.5.bscr delete mode 100644 regress/win32/tests/four-jobs-test.cmd delete mode 100644 regress/win32/tests/hardlink-test delete mode 100644 regress/win32/tests/incremental-2disk.1.bscr delete mode 100644 regress/win32/tests/incremental-2disk.2.bscr delete mode 100644 regress/win32/tests/incremental-2disk.cmd delete mode 100644 regress/win32/tests/incremental-2tape.1.bscr delete mode 100644 regress/win32/tests/incremental-2tape.2.bscr delete mode 100644 regress/win32/tests/incremental-2tape.cmd delete mode 100644 regress/win32/tests/incremental-tape delete mode 100644 regress/win32/tests/incremental-test.1.bscr delete mode 100644 regress/win32/tests/incremental-test.2.bscr delete mode 100644 regress/win32/tests/incremental-test.3.bscr delete mode 100644 regress/win32/tests/incremental-test.4.bscr delete mode 100644 regress/win32/tests/incremental-test.5.bscr delete mode 100644 regress/win32/tests/incremental-test.cmd delete mode 100644 regress/win32/tests/lib-tape-root delete mode 100644 regress/win32/tests/lib-test-root delete mode 100644 regress/win32/tests/migration-job-test.cmd delete mode 100644 regress/win32/tests/migration-jobspan-test.cmd delete mode 100644 regress/win32/tests/migration-occupancy-test.cmd delete mode 100644 regress/win32/tests/migration-time-test.cmd delete mode 100644 regress/win32/tests/migration-volume-test.cmd delete mode 100644 regress/win32/tests/query-test.1.bscr delete mode 100644 regress/win32/tests/query-test.2.bscr delete mode 100644 regress/win32/tests/query-test.3.bscr delete mode 100644 regress/win32/tests/query-test.cmd delete mode 100644 regress/win32/tests/recycle-test.bscr delete mode 100644 regress/win32/tests/recycle-test.cmd delete mode 100644 regress/win32/tests/relabel-tape delete mode 100644 regress/win32/tests/restore-by-file-tape delete mode 100644 regress/win32/tests/restore-by-file-test.bscr delete mode 100644 regress/win32/tests/restore-by-file-test.cmd delete mode 100644 regress/win32/tests/restore-disk-seek-test.bscr delete mode 100644 regress/win32/tests/restore-disk-seek-test.cmd delete mode 100644 regress/win32/tests/restore2-by-file-test.bscr delete mode 100644 regress/win32/tests/restore2-by-file-test.cmd delete mode 100644 regress/win32/tests/runscript-test delete mode 100644 regress/win32/tests/scratch-pool-test.bscr delete mode 100644 regress/win32/tests/scratch-pool-test.cmd delete mode 100644 regress/win32/tests/six-vol-test.bscr delete mode 100644 regress/win32/tests/six-vol-test.cmd delete mode 100644 regress/win32/tests/small-file-size-tape delete mode 100644 regress/win32/tests/span-vol-test.bscr delete mode 100644 regress/win32/tests/span-vol-test.cmd delete mode 100644 regress/win32/tests/sparse-compressed-test.bscr delete mode 100644 regress/win32/tests/sparse-compressed-test.cmd delete mode 100644 regress/win32/tests/sparse-test.bscr delete mode 100644 regress/win32/tests/sparse-test.cmd delete mode 100644 regress/win32/tests/test0.cmd delete mode 100644 regress/win32/tests/truncate-bug-tape delete mode 100644 regress/win32/tests/two-jobs-test.1.bscr delete mode 100644 regress/win32/tests/two-jobs-test.2.bscr delete mode 100644 regress/win32/tests/two-jobs-test.cmd delete mode 100644 regress/win32/tests/two-pool-tape delete mode 100644 regress/win32/tests/two-pool-test.bscr delete mode 100644 regress/win32/tests/two-pool-test.cmd delete mode 100644 regress/win32/tests/two-vol-test.bscr delete mode 100644 regress/win32/tests/two-vol-test.cmd delete mode 100644 regress/win32/tests/two-volume-tape.1.bscr delete mode 100644 regress/win32/tests/two-volume-tape.2.bscr delete mode 100644 regress/win32/tests/two-volume-tape.cmd delete mode 100644 regress/win32/tests/two-volume-test.bscr delete mode 100644 regress/win32/tests/two-volume-test.cmd delete mode 100644 regress/win32/tests/usr-tape-root delete mode 100644 regress/win32/tests/verify-vol-tape delete mode 100644 regress/win32/tests/verify-vol-test.bscr delete mode 100644 regress/win32/tests/verify-vol-test.cmd delete mode 100644 regress/win32/tests/weird-files-test delete mode 100644 regress/win32/tests/weird-files2-test delete mode 100644 regress/win32/tests/win32-backup-tape delete mode 100644 regress/win32/tests/win32-to-linux-tape diff --git a/bacula/ChangeLog b/bacula/ChangeLog index c3a3c6afee..33fbc808ff 100644 --- a/bacula/ChangeLog +++ b/bacula/ChangeLog @@ -1,10 +1,38 @@ - Technical notes on version 2.1 - -General: Technical notes on version 2.0 General: + +Version 2.0.2 released: xx January 2007 +28Jan08 +kes Fix maxruntime bug #621. +27Jan07 +kes Get current main CVS .specs for RedHat, SuSE, Mandrake. +26Jan07 +ebl Implement the include JobID in spool file name project. +kes Reorder projects file in order determined by Jan 2007 vote. +kes Fix open of SQLite3 db where user does not have write permission + so that DIR does not crash. Fixes bug #761. +25Jan07 +kes Change 'Device not configured to autolabel' from INFO + to WARNING. +kes Fix jobq.c to restart failed jobs when Reschedule Times = 0 + which should restart an indefinite # of times. +kes Fix configure --help to print --with-mysql[=DIR]. Same for + other DIR specifications. +23Jan07 +rn Fix msvc build problems. Fix bacula.dll exports for msvc build. + Fix path quoting in SQLite scripts. + Fix problems with SHGetFolderPath. +19Jan07 +kes Create patches/2.0.1-restart.patch. Fixes bug #755. +18Jan07 +kes Fix Job restart on error bug that promotes an Inc to a Full + backup. This should fix bug #755. + +Version 2.0.1 12Jan07 +kes Fix Bacula->Documentation link on Win32 to point to index.html + instead of bacula.html. Fixed bug #750. kes Return JobId in db_get_job_record() when JobId==0. This should fix bug #741. kes Do not release source pointers when restarting a failed job. @@ -25,7 +53,7 @@ kes Add code to indicate when the SD is spooling, spool wait, and despooling as requested by Alan Brown. - +=========== ChangeLog prior to 2.0.0 follow ================= Version 2.0.0 released: 4 January 2007 03Jan07 kes Apply Eric's fix for client name editing on RunScripts. diff --git a/bacula/ReleaseNotes b/bacula/ReleaseNotes index 706ae2038a..c1d0c7d2ae 100644 --- a/bacula/ReleaseNotes +++ b/bacula/ReleaseNotes @@ -1,8 +1,63 @@ - Release Notes for Bacula 2.0.0 + Release Notes for Bacula 2.0.2 Bacula code: Total files = 438 Total lines = 154,329 (*.h *.c *.in) +This is a bug fix release to version 2.0.1: + +28Jan08 +kes Fix maxruntime bug #621. +27Jan07 +kes Get current main CVS .specs for RedHat, SuSE, Mandrake. +26Jan07 +ebl Implement the include JobID in spool file name project. +kes Reorder projects file in order determined by Jan 2007 vote. +kes Fix open of SQLite3 db where user does not have write permission + so that DIR does not crash. Fixes bug #761. +25Jan07 +kes Change 'Device not configured to autolabel' from INFO + to WARNING. +kes Fix jobq.c to restart failed jobs when Reschedule Times = 0 + which should restart an indefinite # of times. +kes Fix configure --help to print --with-mysql[=DIR]. Same for + other DIR specifications. +23Jan07 +rn Fix msvc build problems. Fix bacula.dll exports for msvc build. + Fix path quoting in SQLite scripts. + Fix problems with SHGetFolderPath. +19Jan07 +kes Create patches/2.0.1-restart.patch. Fixes bug #755. +18Jan07 +kes Fix Job restart on error bug that promotes an Inc to a Full + backup. This should fix bug #755. +kes Add qt-console and first cut of code. + +Version 2.0.1 +12Jan07 +kes Fix Bacula->Documentation link on Win32 to point to index.html + instead of bacula.html. Fixed bug #750. +kes Return JobId in db_get_job_record() when JobId==0. This should + fix bug #741. +kes Do not release source pointers when restarting a failed job. +11Jan07 +kes Add dynamic dll entry point for SHGetFolderPath to Win32 code. + This *should* fix bug #747. +kes Modify winbacula.nsi to substitute with g bin_dir_cmd. Should fix + bug #742. +09Jan07 +kes Modify USTORE constructor to set an empty store_source string, + and don't copy the store_source string in a cancel. Hopefully + this will fix Arno's seg fault, bug #744. +kes Add back code to disable conio in configure. Fixes bug #743. +kes Correct the Options scanner in the FD to correctly handle + SHA1 option, which was eating the next option. Reported by + Sebastien Guilbaud. +kes Add code to indicate when the SD is spooling, spool wait, and + despooling as requested by Alan Brown. + + +==== The following are the release notes for version 2.0.0 ====== + ==== IMPORTANT Catalog update required ===== - The database format has been updated from what was used in Bacula 1.38.x. You must manually update your database before diff --git a/bacula/kernstodo b/bacula/kernstodo index 9a1c54eb52..858e312a2d 100644 --- a/bacula/kernstodo +++ b/bacula/kernstodo @@ -41,13 +41,6 @@ Document: Priority: -- Figure out some way to "automatically" backup conf changes. -- Look at using posix_fadvise(2) for backups -- see bug #751. - Possibly add the code at findlib/bfile.c:795 -- Add the OS version back to the Win32 client info. -- Restarted jobs have a NULL in the from field. -- Modify SD status command to indicate when the SD is writing - to a DVD (the device is not open -- see bug #732). - Look at the possibility of adding "SET NAMES UTF8" for MySQL, and possibly changing the blobs into varchar. - Check if gnome-console works with TLS. @@ -76,9 +69,6 @@ Projects: - Despool attributes in separate thread - Database speedups - Embedded MySQL - - Check why restore repeatedly sends Rechdrs between - each data chunk -- according to James Harper 9Jan07. - - Building the in memory restore tree is slow. - Features - Better scheduling - Full at least once a month, ... @@ -124,14 +114,6 @@ For next release: .move transfer device=xxx fromslot=yyy toslot=zzz Low priority: -- Article: http://www.heise.de/open/news/meldung/83231 -- Article: http://www.golem.de/0701/49756.html -- Article: http://lwn.net/Articles/209809/ -- Article: http://www.onlamp.com/pub/a/onlamp/2004/01/09/bacula.html -- Article: http://www.linuxdevcenter.com/pub/a/linux/2005/04/07/bacula.html -- Article: http://www.osreviews.net/reviews/admin/bacula -- Article: http://www.debianhelp.co.uk/baculaweb.htm -- Article: - It appears to me that you have run into some sort of race condition where two threads want to use the same Volume and they were both given access. Normally that is no problem. However, diff --git a/bacula/patches/testing/batch-insert.patch b/bacula/patches/testing/batch-insert.patch index 706391518a..08fea2d7f7 100644 --- a/bacula/patches/testing/batch-insert.patch +++ b/bacula/patches/testing/batch-insert.patch @@ -479,7 +479,7 @@ diff -Naur cvs/src/cats/sql_create.c my/src/cats/sql_create.c +{ + size_t len; + char *digest; -+ char ed1[50]; ++ char edi1[50]; + + mdb->esc_name = check_pool_memory_size(mdb->esc_name, mdb->fnl*2+1); + db_escape_string(mdb->esc_name, mdb->fname, mdb->fnl); diff --git a/bacula/patches/testing/project-include-jobid-in-spool-name.patch b/bacula/patches/testing/project-include-jobid-in-spool-name.patch deleted file mode 100644 index e4c990ecc2..0000000000 --- a/bacula/patches/testing/project-include-jobid-in-spool-name.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -Naur org/bacula-2.0.0/src/stored/spool.c bacula-2.0.0/src/stored/spool.c ---- org/bacula-2.0.0/src/stored/spool.c 2006-11-27 11:03:03.000000000 +0100 -+++ bacula-2.0.0/src/stored/spool.c 2007-01-09 16:15:02.000000000 +0100 -@@ -154,8 +154,8 @@ - } else { - dir = working_directory; - } -- Mmsg(name, "%s/%s.data.%s.%s.spool", dir, my_name, dcr->jcr->Job, -- dcr->device->hdr.name); -+ Mmsg(name, "%s/%s.data.%u.%s.%s.spool", dir, my_name, dcr->jcr->JobId, -+ dcr->jcr->Job, dcr->device->hdr.name); - } - - diff --git a/bacula/patches/testing/project-include-jobid-in-spool-name.readme b/bacula/patches/testing/project-include-jobid-in-spool-name.readme deleted file mode 100644 index a2a3fee8be..0000000000 --- a/bacula/patches/testing/project-include-jobid-in-spool-name.readme +++ /dev/null @@ -1,11 +0,0 @@ -From: Eric Bollengier - -This patch implements the include JobID in spool file name project - -$Log$ -Revision 1.2 2006/12/30 17:18:33 ricozz -ebl Works with 1.39.35 - -Revision 1.1 2006/12/30 09:30:03 ricozz -ebl works against 1.39.34 - diff --git a/bacula/patches/testing/scratch.readme b/bacula/patches/testing/scratch.readme index 3fbed90cce..6fff826513 100644 --- a/bacula/patches/testing/scratch.readme +++ b/bacula/patches/testing/scratch.readme @@ -4,6 +4,10 @@ This patch allow you to : - move Purged media to there RecyclePool $Log$ +Revision 1.1.2.1 2007/01/12 10:23:14 kerns +Pull in new spec files +Update patches + Revision 1.2 2007/01/09 15:18:20 ricozz ebl works with 2.0.0 diff --git a/bacula/po/bacula.pot b/bacula/po/bacula.pot index 04be90ea45..d23bb42899 100644 --- a/bacula/po/bacula.pot +++ b/bacula/po/bacula.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: bacula-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2007-01-04 09:52+0100\n" +"POT-Creation-Date: 2007-01-12 17:30+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -134,8 +134,8 @@ msgid "" msgstr "" #: src/cats/sql.c:235 src/cats/sql.c:242 src/cats/sql_create.c:792 -#: src/cats/sql_get.c:186 src/cats/sql_get.c:237 src/cats/sql_get.c:592 -#: src/cats/sql_get.c:667 src/cats/sql_get.c:898 +#: src/cats/sql_get.c:186 src/cats/sql_get.c:237 src/cats/sql_get.c:595 +#: src/cats/sql_get.c:670 src/cats/sql_get.c:901 #, c-format msgid "error fetching row: %s\n" msgstr "" @@ -416,104 +416,104 @@ msgstr "" msgid "No Job found for JobId %s\n" msgstr "" -#: src/cats/sql_get.c:352 src/cats/sql_get.c:408 +#: src/cats/sql_get.c:355 src/cats/sql_get.c:411 #, c-format msgid "No volumes found for JobId=%d\n" msgstr "" -#: src/cats/sql_get.c:358 src/cats/sql_get.c:421 +#: src/cats/sql_get.c:361 src/cats/sql_get.c:424 #, c-format msgid "Error fetching row %d: ERR=%s\n" msgstr "" -#: src/cats/sql_get.c:372 +#: src/cats/sql_get.c:375 #, c-format msgid "No Volume for JobId %d found in Catalog.\n" msgstr "" -#: src/cats/sql_get.c:508 +#: src/cats/sql_get.c:511 #, c-format msgid "Pool id select failed: ERR=%s\n" msgstr "" -#: src/cats/sql_get.c:545 +#: src/cats/sql_get.c:548 #, c-format msgid "Client id select failed: ERR=%s\n" msgstr "" -#: src/cats/sql_get.c:587 +#: src/cats/sql_get.c:590 #, c-format msgid "More than one Pool!: %s\n" msgstr "" -#: src/cats/sql_get.c:628 +#: src/cats/sql_get.c:631 msgid "Pool record not found in Catalog.\n" msgstr "" -#: src/cats/sql_get.c:662 +#: src/cats/sql_get.c:665 #, c-format msgid "More than one Client!: %s\n" msgstr "" -#: src/cats/sql_get.c:679 src/cats/sql_get.c:683 +#: src/cats/sql_get.c:682 src/cats/sql_get.c:686 msgid "Client record not found in Catalog.\n" msgstr "" -#: src/cats/sql_get.c:708 +#: src/cats/sql_get.c:711 #, c-format msgid "More than one Counter!: %d\n" msgstr "" -#: src/cats/sql_get.c:713 +#: src/cats/sql_get.c:716 #, c-format msgid "error fetching Counter row: %s\n" msgstr "" -#: src/cats/sql_get.c:733 +#: src/cats/sql_get.c:736 #, c-format msgid "Counter record: %s not found in Catalog.\n" msgstr "" -#: src/cats/sql_get.c:769 +#: src/cats/sql_get.c:772 #, c-format msgid "Error got %s FileSets but expected only one!\n" msgstr "" -#: src/cats/sql_get.c:774 +#: src/cats/sql_get.c:777 #, c-format msgid "FileSet record \"%s\" not found.\n" msgstr "" -#: src/cats/sql_get.c:784 +#: src/cats/sql_get.c:787 msgid "FileSet record not found in Catalog.\n" msgstr "" -#: src/cats/sql_get.c:841 +#: src/cats/sql_get.c:844 #, c-format msgid "Media id select failed: ERR=%s\n" msgstr "" -#: src/cats/sql_get.c:893 +#: src/cats/sql_get.c:896 #, c-format msgid "More than one Volume!: %s\n" msgstr "" -#: src/cats/sql_get.c:946 +#: src/cats/sql_get.c:949 #, c-format msgid "Media record MediaId=%s not found.\n" msgstr "" -#: src/cats/sql_get.c:949 +#: src/cats/sql_get.c:952 #, c-format msgid "Media record for Volume \"%s\" not found.\n" msgstr "" -#: src/cats/sql_get.c:956 +#: src/cats/sql_get.c:959 #, c-format msgid "Media record for MediaId=%u not found in Catalog.\n" msgstr "" -#: src/cats/sql_get.c:959 +#: src/cats/sql_get.c:962 #, c-format msgid "Media record for Vol=%s not found in Catalog.\n" msgstr "" @@ -744,7 +744,7 @@ msgid "" "\n" msgstr "" -#: src/dird/backup.c:87 src/dird/job.c:937 src/dird/job.c:976 +#: src/dird/backup.c:87 src/dird/job.c:940 src/dird/job.c:986 #: src/dird/migrate.c:229 src/dird/migrate.c:230 msgid "Pool resource" msgstr "" @@ -1649,7 +1649,7 @@ msgstr "" msgid "Cannot open included file: %s. ERR=%s\n" msgstr "" -#: src/dird/fd_cmds.c:468 src/filed/job.c:1771 +#: src/dird/fd_cmds.c:468 src/filed/job.c:1772 #, c-format msgid "Could not open bootstrap file %s: ERR=%s\n" msgstr "" @@ -1767,7 +1767,7 @@ msgstr "" msgid "Could not open database \"%s\".\n" msgstr "" -#: src/dird/job.c:145 src/dird/job.c:151 src/dird/job.c:969 +#: src/dird/job.c:145 src/dird/job.c:151 src/dird/job.c:966 src/dird/job.c:978 #: src/dird/ua_cmds.c:690 src/dird/ua_cmds.c:1340 src/dird/ua_status.c:293 msgid "unknown source" msgstr "" @@ -1790,99 +1790,99 @@ msgstr "" msgid "Failed to connect to File daemon.\n" msgstr "" -#: src/dird/job.c:394 src/dird/job.c:396 src/dird/job.c:940 src/dird/job.c:974 -#: src/dird/job.c:983 +#: src/dird/job.c:394 src/dird/job.c:396 src/dird/job.c:943 src/dird/job.c:984 +#: src/dird/job.c:993 msgid "Job resource" msgstr "" -#: src/dird/job.c:411 src/dird/ua_cmds.c:696 src/dird/ua_cmds.c:1354 +#: src/dird/job.c:409 src/dird/ua_cmds.c:696 src/dird/ua_cmds.c:1354 #: src/dird/ua_label.c:753 msgid "Failed to connect to Storage daemon.\n" msgstr "" -#: src/dird/job.c:456 +#: src/dird/job.c:454 msgid "Max wait time exceeded. Job canceled.\n" msgstr "" -#: src/dird/job.c:461 +#: src/dird/job.c:459 msgid "Max run time exceeded. Job canceled.\n" msgstr "" -#: src/dird/job.c:555 src/dird/job.c:604 +#: src/dird/job.c:553 src/dird/job.c:602 #, c-format msgid "Unhandled job status code %d\n" msgstr "" -#: src/dird/job.c:630 src/dird/ua_output.c:630 +#: src/dird/job.c:628 src/dird/ua_output.c:630 #, c-format msgid "Pool %s not in database. %s" msgstr "" -#: src/dird/job.c:634 src/dird/ua_output.c:638 +#: src/dird/job.c:632 src/dird/ua_output.c:638 #, c-format msgid "Pool %s created in database.\n" msgstr "" -#: src/dird/job.c:643 src/dird/job.c:927 +#: src/dird/job.c:641 src/dird/job.c:930 msgid "Run pool override" msgstr "" -#: src/dird/job.c:653 +#: src/dird/job.c:651 msgid "Run FullPool override" msgstr "" -#: src/dird/job.c:655 +#: src/dird/job.c:653 msgid "Job FullPool override" msgstr "" -#: src/dird/job.c:663 +#: src/dird/job.c:661 msgid "Run IncPool override" msgstr "" -#: src/dird/job.c:665 +#: src/dird/job.c:663 msgid "Job IncPool override" msgstr "" -#: src/dird/job.c:673 +#: src/dird/job.c:671 msgid "Run DiffPool override" msgstr "" -#: src/dird/job.c:675 +#: src/dird/job.c:673 msgid "Job DiffPool override" msgstr "" -#: src/dird/job.c:700 src/stored/bscan.c:962 +#: src/dird/job.c:698 src/stored/bscan.c:962 #, c-format msgid "Could not create Client record. ERR=%s\n" msgstr "" -#: src/dird/job.c:736 +#: src/dird/job.c:734 msgid "FileSet MD5 digest not found.\n" msgstr "" -#: src/dird/job.c:741 +#: src/dird/job.c:739 #, c-format msgid "Could not create FileSet \"%s\" record. ERR=%s\n" msgstr "" -#: src/dird/job.c:781 +#: src/dird/job.c:779 #, c-format msgid "Error updating job record. %s" msgstr "" -#: src/dird/job.c:932 +#: src/dird/job.c:935 msgid "Run storage override" msgstr "" -#: src/dird/job.c:1045 src/dird/ua_run.c:389 +#: src/dird/job.c:1055 src/dird/ua_run.c:389 msgid "No storage specified.\n" msgstr "" -#: src/dird/job.c:1206 +#: src/dird/job.c:1216 msgid "Could not start clone job.\n" msgstr "" -#: src/dird/job.c:1208 +#: src/dird/job.c:1218 #, c-format msgid "Clone JobId %d started.\n" msgstr "" @@ -2179,7 +2179,7 @@ msgstr "" msgid "Storage from Pool's NextPool resource" msgstr "" -#: src/dird/msgchan.c:99 src/filed/job.c:1247 +#: src/dird/msgchan.c:99 src/filed/job.c:1248 #: src/tray-monitor/tray-monitor.c:888 msgid "Storage daemon" msgstr "" @@ -2790,7 +2790,7 @@ msgstr "" msgid "Warning Job %s is not running. Continuing anyway ...\n" msgstr "" -#: src/dird/ua_cmds.c:441 src/filed/status.c:197 src/stored/status.c:421 +#: src/dird/ua_cmds.c:441 src/filed/status.c:197 src/stored/status.c:424 msgid "No Jobs running.\n" msgstr "" @@ -3619,7 +3619,7 @@ msgid "Enter a list of directories to restore for found JobIds" msgstr "" #: src/dird/ua_restore.c:329 src/dird/ua_status.c:732 src/filed/status.c:254 -#: src/stored/status.c:495 src/wx-console/wxbconfigpanel.cpp:212 +#: src/stored/status.c:498 src/wx-console/wxbconfigpanel.cpp:212 msgid "Cancel" msgstr "" @@ -4163,27 +4163,27 @@ msgid "Levels:\n" msgstr "" #: src/dird/ua_run.c:782 src/filed/status.c:371 src/lib/util.c:329 -#: src/stored/status.c:534 +#: src/stored/status.c:537 msgid "Base" msgstr "" #: src/dird/ua_run.c:783 src/filed/status.c:373 src/lib/util.c:331 -#: src/stored/status.c:536 +#: src/stored/status.c:539 msgid "Full" msgstr "" #: src/dird/ua_run.c:784 src/filed/status.c:376 src/lib/util.c:334 -#: src/stored/status.c:539 +#: src/stored/status.c:542 msgid "Incremental" msgstr "" #: src/dird/ua_run.c:785 src/filed/status.c:379 src/lib/util.c:337 -#: src/stored/status.c:542 +#: src/stored/status.c:545 msgid "Differential" msgstr "" #: src/dird/ua_run.c:786 src/filed/status.c:382 src/lib/util.c:340 -#: src/stored/status.c:545 +#: src/stored/status.c:548 msgid "Since" msgstr "" @@ -4196,7 +4196,7 @@ msgid "Initialize Catalog" msgstr "" #: src/dird/ua_run.c:809 src/filed/status.c:385 src/lib/util.c:343 -#: src/stored/status.c:548 +#: src/stored/status.c:551 msgid "Verify Catalog" msgstr "" @@ -4761,13 +4761,13 @@ msgstr "" msgid "No Terminated Jobs.\n" msgstr "" -#: src/dird/ua_status.c:689 src/filed/status.c:214 src/stored/status.c:456 +#: src/dird/ua_status.c:689 src/filed/status.c:214 src/stored/status.c:459 msgid "" "\n" "Terminated Jobs:\n" msgstr "" -#: src/dird/ua_status.c:690 src/filed/status.c:222 src/stored/status.c:463 +#: src/dird/ua_status.c:690 src/filed/status.c:222 src/stored/status.c:466 msgid " JobId Level Files Bytes Status Finished Name \n" msgstr "" @@ -4776,30 +4776,30 @@ msgid "====================================================================\n" msgstr "" #: src/dird/ua_status.c:722 src/filed/status.c:244 src/lib/util.c:179 -#: src/stored/status.c:485 +#: src/stored/status.c:488 msgid "Created" msgstr "" #: src/dird/ua_status.c:726 src/filed/status.c:248 src/lib/util.c:192 -#: src/lib/util.c:259 src/stored/status.c:489 +#: src/lib/util.c:259 src/stored/status.c:492 msgid "Error" msgstr "" -#: src/dird/ua_status.c:729 src/filed/status.c:251 src/stored/status.c:492 +#: src/dird/ua_status.c:729 src/filed/status.c:251 src/stored/status.c:495 msgid "Diffs" msgstr "" #: src/dird/ua_status.c:735 src/filed/status.c:257 src/lib/util.c:188 -#: src/lib/util.c:255 src/stored/btape.c:1187 src/stored/status.c:498 +#: src/lib/util.c:255 src/stored/btape.c:1187 src/stored/status.c:501 #: src/wx-console/wxbconfigpanel.cpp:201 msgid "OK" msgstr "" -#: src/dird/ua_status.c:738 src/filed/status.c:260 src/stored/status.c:501 +#: src/dird/ua_status.c:738 src/filed/status.c:260 src/stored/status.c:504 msgid "Other" msgstr "" -#: src/dird/ua_status.c:741 src/filed/status.c:271 src/stored/status.c:512 +#: src/dird/ua_status.c:741 src/filed/status.c:271 src/stored/status.c:515 #, c-format msgid "%6d %-6s %8s %10s %-7s %-8s %s\n" msgstr "" @@ -6149,151 +6149,151 @@ msgstr "" msgid "Cannot open FileSet input file: %s. ERR=%s\n" msgstr "" -#: src/filed/job.c:731 +#: src/filed/job.c:733 #, c-format msgid "REGEX %s compile error. ERR=%s\n" msgstr "" -#: src/filed/job.c:793 +#: src/filed/job.c:795 #, c-format msgid "Invalid FileSet command: %s\n" msgstr "" -#: src/filed/job.c:1008 src/findlib/match.c:199 src/tools/testfind.c:635 +#: src/filed/job.c:1009 src/findlib/match.c:199 src/tools/testfind.c:635 #, c-format msgid "Unknown include/exclude option: %c\n" msgstr "" -#: src/filed/job.c:1077 src/stored/fd_cmds.c:348 +#: src/filed/job.c:1078 src/stored/fd_cmds.c:348 #, c-format msgid "Could not create bootstrap file %s: ERR=%s\n" msgstr "" -#: src/filed/job.c:1179 +#: src/filed/job.c:1180 #, c-format msgid "DIR and FD clocks differ by %d seconds, FD automatically adjusting.\n" msgstr "" -#: src/filed/job.c:1187 +#: src/filed/job.c:1188 #, c-format msgid "Unknown backup level: %s\n" msgstr "" -#: src/filed/job.c:1199 +#: src/filed/job.c:1200 #, c-format msgid "Bad level command: %s\n" msgstr "" -#: src/filed/job.c:1220 +#: src/filed/job.c:1221 #, c-format msgid "Bad session command: %s" msgstr "" -#: src/filed/job.c:1241 +#: src/filed/job.c:1242 #, c-format msgid "Bad storage command: %s" msgstr "" -#: src/filed/job.c:1250 +#: src/filed/job.c:1251 #, c-format msgid "Failed to connect to Storage daemon: %s:%d\n" msgstr "" -#: src/filed/job.c:1262 +#: src/filed/job.c:1263 msgid "Failed to authenticate Storage daemon.\n" msgstr "" -#: src/filed/job.c:1300 +#: src/filed/job.c:1301 msgid "Cannot contact Storage daemon\n" msgstr "" -#: src/filed/job.c:1318 +#: src/filed/job.c:1319 #, c-format msgid "Bad response to append open: %s\n" msgstr "" -#: src/filed/job.c:1323 +#: src/filed/job.c:1324 msgid "Bad response from stored to open command\n" msgstr "" -#: src/filed/job.c:1350 +#: src/filed/job.c:1351 #, c-format msgid "Generate VSS snapshots. Driver=\"%s\", Drive(s)=\"%s\"\n" msgstr "" -#: src/filed/job.c:1352 +#: src/filed/job.c:1353 msgid "Generate VSS snapshots failed.\n" msgstr "" -#: src/filed/job.c:1359 +#: src/filed/job.c:1360 #, c-format msgid "" "Generate VSS snapshot of drive \"%c:\\\" failed. VSS support is disabled on " "this drive.\n" msgstr "" -#: src/filed/job.c:1366 +#: src/filed/job.c:1367 #, c-format msgid "VSS Writer (PrepareForBackup): %s\n" msgstr "" -#: src/filed/job.c:1371 +#: src/filed/job.c:1372 msgid "No drive letters found for generating VSS snapshots.\n" msgstr "" -#: src/filed/job.c:1375 +#: src/filed/job.c:1376 #, c-format msgid "VSS was not initialized properly. VSS support is disabled. ERR=%s\n" msgstr "" -#: src/filed/job.c:1433 +#: src/filed/job.c:1434 msgid "Append Close with SD failed.\n" msgstr "" -#: src/filed/job.c:1437 +#: src/filed/job.c:1438 #, c-format msgid "Bad status %d returned from Storage Daemon.\n" msgstr "" -#: src/filed/job.c:1455 +#: src/filed/job.c:1456 #, c-format msgid "VSS Writer (BackupComplete): %s\n" msgstr "" -#: src/filed/job.c:1483 +#: src/filed/job.c:1484 #, c-format msgid "2994 Bad verify command: %s\n" msgstr "" -#: src/filed/job.c:1498 src/filed/job.c:1537 +#: src/filed/job.c:1499 src/filed/job.c:1538 #, c-format msgid "2994 Bad verify level: %s\n" msgstr "" -#: src/filed/job.c:1579 +#: src/filed/job.c:1580 #, c-format msgid "Bad replace command. CMD=%s\n" msgstr "" -#: src/filed/job.c:1658 +#: src/filed/job.c:1659 msgid "Improper calling sequence.\n" msgstr "" -#: src/filed/job.c:1678 +#: src/filed/job.c:1679 #, c-format msgid "Bad response to SD read open: %s\n" msgstr "" -#: src/filed/job.c:1683 +#: src/filed/job.c:1684 msgid "Bad response from stored to read open command\n" msgstr "" -#: src/filed/job.c:1747 +#: src/filed/job.c:1748 #, c-format msgid "Comm error with SD. bad response to %s. ERR=%s\n" msgstr "" -#: src/filed/job.c:1750 +#: src/filed/job.c:1751 #, c-format msgid "Bad response to %s command. Wanted %s, got %s\n" msgstr "" @@ -6563,7 +6563,7 @@ msgstr "" msgid " %s%s Job started: %s\n" msgstr "" -#: src/filed/status.c:169 src/stored/status.c:398 +#: src/filed/status.c:169 src/stored/status.c:401 #, c-format msgid " Files=%s Bytes=%s Bytes/sec=%s\n" msgstr "" @@ -6582,8 +6582,8 @@ msgstr "" msgid " SDSocket closed.\n" msgstr "" -#: src/filed/status.c:326 src/filed/status.c:350 src/stored/status.c:610 -#: src/stored/status.c:633 +#: src/filed/status.c:326 src/filed/status.c:350 src/stored/status.c:613 +#: src/stored/status.c:636 #, c-format msgid "Bad .status command: %s\n" msgstr "" @@ -6596,23 +6596,23 @@ msgstr "" msgid "2900 Bad .status command, wrong argument.\n" msgstr "" -#: src/filed/status.c:388 src/stored/status.c:551 +#: src/filed/status.c:388 src/stored/status.c:554 msgid "Init Catalog" msgstr "" -#: src/filed/status.c:391 src/stored/status.c:554 +#: src/filed/status.c:391 src/stored/status.c:557 msgid "Volume to Catalog" msgstr "" -#: src/filed/status.c:394 src/stored/status.c:557 +#: src/filed/status.c:394 src/stored/status.c:560 msgid "Disk to Catalog" msgstr "" -#: src/filed/status.c:397 src/stored/status.c:560 +#: src/filed/status.c:397 src/stored/status.c:563 msgid "Data" msgstr "" -#: src/filed/status.c:403 src/lib/util.c:361 src/stored/status.c:566 +#: src/filed/status.c:403 src/lib/util.c:361 src/stored/status.c:569 msgid "Unknown Job Level" msgstr "" @@ -13345,50 +13345,55 @@ msgid "" " pool=\"%s\" device=\"%s\"\n" msgstr "" -#: src/stored/status.c:406 +#: src/stored/status.c:392 +#, c-format +msgid " spooling=%d despooling=%d despool_wait=%d\n" +msgstr "" + +#: src/stored/status.c:409 #, c-format msgid " FDReadSeqNo=%s in_msg=%u out_msg=%d fd=%d\n" msgstr "" -#: src/stored/status.c:412 +#: src/stored/status.c:415 msgid " FDSocket closed\n" msgstr "" -#: src/stored/status.c:434 +#: src/stored/status.c:437 msgid "" "\n" "Jobs waiting to reserve a drive:\n" msgstr "" -#: src/stored/status.c:465 +#: src/stored/status.c:468 msgid "===================================================================\n" msgstr "" -#: src/stored/status.c:611 +#: src/stored/status.c:614 msgid "3900 Bad .status command, missing argument.\n" msgstr "" -#: src/stored/status.c:634 +#: src/stored/status.c:637 msgid "3900 Bad .status command, wrong argument.\n" msgstr "" -#: src/stored/status.c:648 +#: src/stored/status.c:651 msgid "Bacula Storage: Idle" msgstr "" -#: src/stored/status.c:659 +#: src/stored/status.c:662 msgid "Bacula Storage: Running" msgstr "" -#: src/stored/status.c:673 +#: src/stored/status.c:676 msgid "Bacula Storage: Last Job Canceled" msgstr "" -#: src/stored/status.c:677 +#: src/stored/status.c:680 msgid "Bacula Storage: Last Job Failed" msgstr "" -#: src/stored/status.c:681 +#: src/stored/status.c:684 msgid "Bacula Storage: Last Job had Warnings" msgstr "" diff --git a/bacula/po/de.gmo b/bacula/po/de.gmo new file mode 100644 index 0000000000000000000000000000000000000000..51f65794377287edb1366272c8233dad2514c800 GIT binary patch literal 479 zcma)&!A=4(5QZ^&+M{O=W8y)Bv$h~%DXuXf8WIQuH{Q$cu&!BJ(sqeHh>zfF`7CxZ zkt=`lrEU7p^zZzfo_saDjyz|c3(v9V+EXj?eEZ9uUu)05=0?9$>TsOlD;Zm8C14=a zs+7RPb`&gVqm9F<&5H~NRcZjJoH1|21#OG^>AkOmEJDtK-wM`gGG7@?q;;4Wscb2oHUi-8 zfEW|0@=E4}3CXp9XEJN44yn8krsL^oKNKFaV5pTN2^miaI^ydvhImMFvMI)mfo(0nxJX11c*cOMKF1Z3U>!?r7syAO5!SrGoPq_*Fk> F`~njvjrafn literal 0 HcmV?d00001 diff --git a/bacula/po/de.po b/bacula/po/de.po index 48289bec2e..c89fc2b80c 100644 --- a/bacula/po/de.po +++ b/bacula/po/de.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Bacula 1.38\n" "Report-Msgid-Bugs-To: bacula-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2007-01-04 09:52+0100\n" +"POT-Creation-Date: 2007-01-12 17:30+0100\n" "PO-Revision-Date: 2005-08-11 14:05+0200\n" "Last-Translator: \n" @@ -135,8 +135,8 @@ msgid "" msgstr "" #: src/cats/sql.c:235 src/cats/sql.c:242 src/cats/sql_create.c:792 -#: src/cats/sql_get.c:186 src/cats/sql_get.c:237 src/cats/sql_get.c:592 -#: src/cats/sql_get.c:667 src/cats/sql_get.c:898 +#: src/cats/sql_get.c:186 src/cats/sql_get.c:237 src/cats/sql_get.c:595 +#: src/cats/sql_get.c:670 src/cats/sql_get.c:901 #, c-format msgid "error fetching row: %s\n" msgstr "" @@ -417,104 +417,104 @@ msgstr "" msgid "No Job found for JobId %s\n" msgstr "" -#: src/cats/sql_get.c:352 src/cats/sql_get.c:408 +#: src/cats/sql_get.c:355 src/cats/sql_get.c:411 #, c-format msgid "No volumes found for JobId=%d\n" msgstr "" -#: src/cats/sql_get.c:358 src/cats/sql_get.c:421 +#: src/cats/sql_get.c:361 src/cats/sql_get.c:424 #, c-format msgid "Error fetching row %d: ERR=%s\n" msgstr "" -#: src/cats/sql_get.c:372 +#: src/cats/sql_get.c:375 #, c-format msgid "No Volume for JobId %d found in Catalog.\n" msgstr "" -#: src/cats/sql_get.c:508 +#: src/cats/sql_get.c:511 #, c-format msgid "Pool id select failed: ERR=%s\n" msgstr "" -#: src/cats/sql_get.c:545 +#: src/cats/sql_get.c:548 #, c-format msgid "Client id select failed: ERR=%s\n" msgstr "" -#: src/cats/sql_get.c:587 +#: src/cats/sql_get.c:590 #, c-format msgid "More than one Pool!: %s\n" msgstr "" -#: src/cats/sql_get.c:628 +#: src/cats/sql_get.c:631 msgid "Pool record not found in Catalog.\n" msgstr "" -#: src/cats/sql_get.c:662 +#: src/cats/sql_get.c:665 #, c-format msgid "More than one Client!: %s\n" msgstr "" -#: src/cats/sql_get.c:679 src/cats/sql_get.c:683 +#: src/cats/sql_get.c:682 src/cats/sql_get.c:686 msgid "Client record not found in Catalog.\n" msgstr "" -#: src/cats/sql_get.c:708 +#: src/cats/sql_get.c:711 #, c-format msgid "More than one Counter!: %d\n" msgstr "" -#: src/cats/sql_get.c:713 +#: src/cats/sql_get.c:716 #, c-format msgid "error fetching Counter row: %s\n" msgstr "" -#: src/cats/sql_get.c:733 +#: src/cats/sql_get.c:736 #, c-format msgid "Counter record: %s not found in Catalog.\n" msgstr "" -#: src/cats/sql_get.c:769 +#: src/cats/sql_get.c:772 #, c-format msgid "Error got %s FileSets but expected only one!\n" msgstr "" -#: src/cats/sql_get.c:774 +#: src/cats/sql_get.c:777 #, c-format msgid "FileSet record \"%s\" not found.\n" msgstr "" -#: src/cats/sql_get.c:784 +#: src/cats/sql_get.c:787 msgid "FileSet record not found in Catalog.\n" msgstr "" -#: src/cats/sql_get.c:841 +#: src/cats/sql_get.c:844 #, c-format msgid "Media id select failed: ERR=%s\n" msgstr "" -#: src/cats/sql_get.c:893 +#: src/cats/sql_get.c:896 #, c-format msgid "More than one Volume!: %s\n" msgstr "" -#: src/cats/sql_get.c:946 +#: src/cats/sql_get.c:949 #, c-format msgid "Media record MediaId=%s not found.\n" msgstr "" -#: src/cats/sql_get.c:949 +#: src/cats/sql_get.c:952 #, c-format msgid "Media record for Volume \"%s\" not found.\n" msgstr "" -#: src/cats/sql_get.c:956 +#: src/cats/sql_get.c:959 #, c-format msgid "Media record for MediaId=%u not found in Catalog.\n" msgstr "" -#: src/cats/sql_get.c:959 +#: src/cats/sql_get.c:962 #, c-format msgid "Media record for Vol=%s not found in Catalog.\n" msgstr "" @@ -745,7 +745,7 @@ msgid "" "\n" msgstr "" -#: src/dird/backup.c:87 src/dird/job.c:937 src/dird/job.c:976 +#: src/dird/backup.c:87 src/dird/job.c:940 src/dird/job.c:986 #: src/dird/migrate.c:229 src/dird/migrate.c:230 msgid "Pool resource" msgstr "" @@ -1650,7 +1650,7 @@ msgstr "" msgid "Cannot open included file: %s. ERR=%s\n" msgstr "" -#: src/dird/fd_cmds.c:468 src/filed/job.c:1771 +#: src/dird/fd_cmds.c:468 src/filed/job.c:1772 #, c-format msgid "Could not open bootstrap file %s: ERR=%s\n" msgstr "" @@ -1768,7 +1768,7 @@ msgstr "" msgid "Could not open database \"%s\".\n" msgstr "" -#: src/dird/job.c:145 src/dird/job.c:151 src/dird/job.c:969 +#: src/dird/job.c:145 src/dird/job.c:151 src/dird/job.c:966 src/dird/job.c:978 #: src/dird/ua_cmds.c:690 src/dird/ua_cmds.c:1340 src/dird/ua_status.c:293 msgid "unknown source" msgstr "" @@ -1791,99 +1791,99 @@ msgstr "" msgid "Failed to connect to File daemon.\n" msgstr "" -#: src/dird/job.c:394 src/dird/job.c:396 src/dird/job.c:940 src/dird/job.c:974 -#: src/dird/job.c:983 +#: src/dird/job.c:394 src/dird/job.c:396 src/dird/job.c:943 src/dird/job.c:984 +#: src/dird/job.c:993 msgid "Job resource" msgstr "" -#: src/dird/job.c:411 src/dird/ua_cmds.c:696 src/dird/ua_cmds.c:1354 +#: src/dird/job.c:409 src/dird/ua_cmds.c:696 src/dird/ua_cmds.c:1354 #: src/dird/ua_label.c:753 msgid "Failed to connect to Storage daemon.\n" msgstr "" -#: src/dird/job.c:456 +#: src/dird/job.c:454 msgid "Max wait time exceeded. Job canceled.\n" msgstr "" -#: src/dird/job.c:461 +#: src/dird/job.c:459 msgid "Max run time exceeded. Job canceled.\n" msgstr "" -#: src/dird/job.c:555 src/dird/job.c:604 +#: src/dird/job.c:553 src/dird/job.c:602 #, c-format msgid "Unhandled job status code %d\n" msgstr "" -#: src/dird/job.c:630 src/dird/ua_output.c:630 +#: src/dird/job.c:628 src/dird/ua_output.c:630 #, c-format msgid "Pool %s not in database. %s" msgstr "" -#: src/dird/job.c:634 src/dird/ua_output.c:638 +#: src/dird/job.c:632 src/dird/ua_output.c:638 #, c-format msgid "Pool %s created in database.\n" msgstr "" -#: src/dird/job.c:643 src/dird/job.c:927 +#: src/dird/job.c:641 src/dird/job.c:930 msgid "Run pool override" msgstr "" -#: src/dird/job.c:653 +#: src/dird/job.c:651 msgid "Run FullPool override" msgstr "" -#: src/dird/job.c:655 +#: src/dird/job.c:653 msgid "Job FullPool override" msgstr "" -#: src/dird/job.c:663 +#: src/dird/job.c:661 msgid "Run IncPool override" msgstr "" -#: src/dird/job.c:665 +#: src/dird/job.c:663 msgid "Job IncPool override" msgstr "" -#: src/dird/job.c:673 +#: src/dird/job.c:671 msgid "Run DiffPool override" msgstr "" -#: src/dird/job.c:675 +#: src/dird/job.c:673 msgid "Job DiffPool override" msgstr "" -#: src/dird/job.c:700 src/stored/bscan.c:962 +#: src/dird/job.c:698 src/stored/bscan.c:962 #, c-format msgid "Could not create Client record. ERR=%s\n" msgstr "" -#: src/dird/job.c:736 +#: src/dird/job.c:734 msgid "FileSet MD5 digest not found.\n" msgstr "" -#: src/dird/job.c:741 +#: src/dird/job.c:739 #, c-format msgid "Could not create FileSet \"%s\" record. ERR=%s\n" msgstr "" -#: src/dird/job.c:781 +#: src/dird/job.c:779 #, c-format msgid "Error updating job record. %s" msgstr "" -#: src/dird/job.c:932 +#: src/dird/job.c:935 msgid "Run storage override" msgstr "" -#: src/dird/job.c:1045 src/dird/ua_run.c:389 +#: src/dird/job.c:1055 src/dird/ua_run.c:389 msgid "No storage specified.\n" msgstr "" -#: src/dird/job.c:1206 +#: src/dird/job.c:1216 msgid "Could not start clone job.\n" msgstr "" -#: src/dird/job.c:1208 +#: src/dird/job.c:1218 #, c-format msgid "Clone JobId %d started.\n" msgstr "" @@ -2180,7 +2180,7 @@ msgstr "" msgid "Storage from Pool's NextPool resource" msgstr "" -#: src/dird/msgchan.c:99 src/filed/job.c:1247 +#: src/dird/msgchan.c:99 src/filed/job.c:1248 #: src/tray-monitor/tray-monitor.c:888 msgid "Storage daemon" msgstr "" @@ -2791,7 +2791,7 @@ msgstr "" msgid "Warning Job %s is not running. Continuing anyway ...\n" msgstr "" -#: src/dird/ua_cmds.c:441 src/filed/status.c:197 src/stored/status.c:421 +#: src/dird/ua_cmds.c:441 src/filed/status.c:197 src/stored/status.c:424 msgid "No Jobs running.\n" msgstr "" @@ -3620,7 +3620,7 @@ msgid "Enter a list of directories to restore for found JobIds" msgstr "" #: src/dird/ua_restore.c:329 src/dird/ua_status.c:732 src/filed/status.c:254 -#: src/stored/status.c:495 src/wx-console/wxbconfigpanel.cpp:212 +#: src/stored/status.c:498 src/wx-console/wxbconfigpanel.cpp:212 msgid "Cancel" msgstr "" @@ -4164,27 +4164,27 @@ msgid "Levels:\n" msgstr "" #: src/dird/ua_run.c:782 src/filed/status.c:371 src/lib/util.c:329 -#: src/stored/status.c:534 +#: src/stored/status.c:537 msgid "Base" msgstr "" #: src/dird/ua_run.c:783 src/filed/status.c:373 src/lib/util.c:331 -#: src/stored/status.c:536 +#: src/stored/status.c:539 msgid "Full" msgstr "" #: src/dird/ua_run.c:784 src/filed/status.c:376 src/lib/util.c:334 -#: src/stored/status.c:539 +#: src/stored/status.c:542 msgid "Incremental" msgstr "" #: src/dird/ua_run.c:785 src/filed/status.c:379 src/lib/util.c:337 -#: src/stored/status.c:542 +#: src/stored/status.c:545 msgid "Differential" msgstr "" #: src/dird/ua_run.c:786 src/filed/status.c:382 src/lib/util.c:340 -#: src/stored/status.c:545 +#: src/stored/status.c:548 msgid "Since" msgstr "" @@ -4197,7 +4197,7 @@ msgid "Initialize Catalog" msgstr "" #: src/dird/ua_run.c:809 src/filed/status.c:385 src/lib/util.c:343 -#: src/stored/status.c:548 +#: src/stored/status.c:551 msgid "Verify Catalog" msgstr "" @@ -4762,13 +4762,13 @@ msgstr "" msgid "No Terminated Jobs.\n" msgstr "" -#: src/dird/ua_status.c:689 src/filed/status.c:214 src/stored/status.c:456 +#: src/dird/ua_status.c:689 src/filed/status.c:214 src/stored/status.c:459 msgid "" "\n" "Terminated Jobs:\n" msgstr "" -#: src/dird/ua_status.c:690 src/filed/status.c:222 src/stored/status.c:463 +#: src/dird/ua_status.c:690 src/filed/status.c:222 src/stored/status.c:466 msgid " JobId Level Files Bytes Status Finished Name \n" msgstr "" @@ -4777,30 +4777,30 @@ msgid "====================================================================\n" msgstr "" #: src/dird/ua_status.c:722 src/filed/status.c:244 src/lib/util.c:179 -#: src/stored/status.c:485 +#: src/stored/status.c:488 msgid "Created" msgstr "" #: src/dird/ua_status.c:726 src/filed/status.c:248 src/lib/util.c:192 -#: src/lib/util.c:259 src/stored/status.c:489 +#: src/lib/util.c:259 src/stored/status.c:492 msgid "Error" msgstr "" -#: src/dird/ua_status.c:729 src/filed/status.c:251 src/stored/status.c:492 +#: src/dird/ua_status.c:729 src/filed/status.c:251 src/stored/status.c:495 msgid "Diffs" msgstr "" #: src/dird/ua_status.c:735 src/filed/status.c:257 src/lib/util.c:188 -#: src/lib/util.c:255 src/stored/btape.c:1187 src/stored/status.c:498 +#: src/lib/util.c:255 src/stored/btape.c:1187 src/stored/status.c:501 #: src/wx-console/wxbconfigpanel.cpp:201 msgid "OK" msgstr "" -#: src/dird/ua_status.c:738 src/filed/status.c:260 src/stored/status.c:501 +#: src/dird/ua_status.c:738 src/filed/status.c:260 src/stored/status.c:504 msgid "Other" msgstr "" -#: src/dird/ua_status.c:741 src/filed/status.c:271 src/stored/status.c:512 +#: src/dird/ua_status.c:741 src/filed/status.c:271 src/stored/status.c:515 #, c-format msgid "%6d %-6s %8s %10s %-7s %-8s %s\n" msgstr "" @@ -6150,151 +6150,151 @@ msgstr "" msgid "Cannot open FileSet input file: %s. ERR=%s\n" msgstr "" -#: src/filed/job.c:731 +#: src/filed/job.c:733 #, c-format msgid "REGEX %s compile error. ERR=%s\n" msgstr "" -#: src/filed/job.c:793 +#: src/filed/job.c:795 #, c-format msgid "Invalid FileSet command: %s\n" msgstr "" -#: src/filed/job.c:1008 src/findlib/match.c:199 src/tools/testfind.c:635 +#: src/filed/job.c:1009 src/findlib/match.c:199 src/tools/testfind.c:635 #, c-format msgid "Unknown include/exclude option: %c\n" msgstr "" -#: src/filed/job.c:1077 src/stored/fd_cmds.c:348 +#: src/filed/job.c:1078 src/stored/fd_cmds.c:348 #, c-format msgid "Could not create bootstrap file %s: ERR=%s\n" msgstr "" -#: src/filed/job.c:1179 +#: src/filed/job.c:1180 #, c-format msgid "DIR and FD clocks differ by %d seconds, FD automatically adjusting.\n" msgstr "" -#: src/filed/job.c:1187 +#: src/filed/job.c:1188 #, c-format msgid "Unknown backup level: %s\n" msgstr "" -#: src/filed/job.c:1199 +#: src/filed/job.c:1200 #, c-format msgid "Bad level command: %s\n" msgstr "" -#: src/filed/job.c:1220 +#: src/filed/job.c:1221 #, c-format msgid "Bad session command: %s" msgstr "" -#: src/filed/job.c:1241 +#: src/filed/job.c:1242 #, c-format msgid "Bad storage command: %s" msgstr "" -#: src/filed/job.c:1250 +#: src/filed/job.c:1251 #, c-format msgid "Failed to connect to Storage daemon: %s:%d\n" msgstr "" -#: src/filed/job.c:1262 +#: src/filed/job.c:1263 msgid "Failed to authenticate Storage daemon.\n" msgstr "" -#: src/filed/job.c:1300 +#: src/filed/job.c:1301 msgid "Cannot contact Storage daemon\n" msgstr "" -#: src/filed/job.c:1318 +#: src/filed/job.c:1319 #, c-format msgid "Bad response to append open: %s\n" msgstr "" -#: src/filed/job.c:1323 +#: src/filed/job.c:1324 msgid "Bad response from stored to open command\n" msgstr "" -#: src/filed/job.c:1350 +#: src/filed/job.c:1351 #, c-format msgid "Generate VSS snapshots. Driver=\"%s\", Drive(s)=\"%s\"\n" msgstr "" -#: src/filed/job.c:1352 +#: src/filed/job.c:1353 msgid "Generate VSS snapshots failed.\n" msgstr "" -#: src/filed/job.c:1359 +#: src/filed/job.c:1360 #, c-format msgid "" "Generate VSS snapshot of drive \"%c:\\\" failed. VSS support is disabled on " "this drive.\n" msgstr "" -#: src/filed/job.c:1366 +#: src/filed/job.c:1367 #, c-format msgid "VSS Writer (PrepareForBackup): %s\n" msgstr "" -#: src/filed/job.c:1371 +#: src/filed/job.c:1372 msgid "No drive letters found for generating VSS snapshots.\n" msgstr "" -#: src/filed/job.c:1375 +#: src/filed/job.c:1376 #, c-format msgid "VSS was not initialized properly. VSS support is disabled. ERR=%s\n" msgstr "" -#: src/filed/job.c:1433 +#: src/filed/job.c:1434 msgid "Append Close with SD failed.\n" msgstr "" -#: src/filed/job.c:1437 +#: src/filed/job.c:1438 #, c-format msgid "Bad status %d returned from Storage Daemon.\n" msgstr "" -#: src/filed/job.c:1455 +#: src/filed/job.c:1456 #, c-format msgid "VSS Writer (BackupComplete): %s\n" msgstr "" -#: src/filed/job.c:1483 +#: src/filed/job.c:1484 #, c-format msgid "2994 Bad verify command: %s\n" msgstr "" -#: src/filed/job.c:1498 src/filed/job.c:1537 +#: src/filed/job.c:1499 src/filed/job.c:1538 #, c-format msgid "2994 Bad verify level: %s\n" msgstr "" -#: src/filed/job.c:1579 +#: src/filed/job.c:1580 #, c-format msgid "Bad replace command. CMD=%s\n" msgstr "" -#: src/filed/job.c:1658 +#: src/filed/job.c:1659 msgid "Improper calling sequence.\n" msgstr "" -#: src/filed/job.c:1678 +#: src/filed/job.c:1679 #, c-format msgid "Bad response to SD read open: %s\n" msgstr "" -#: src/filed/job.c:1683 +#: src/filed/job.c:1684 msgid "Bad response from stored to read open command\n" msgstr "" -#: src/filed/job.c:1747 +#: src/filed/job.c:1748 #, c-format msgid "Comm error with SD. bad response to %s. ERR=%s\n" msgstr "" -#: src/filed/job.c:1750 +#: src/filed/job.c:1751 #, c-format msgid "Bad response to %s command. Wanted %s, got %s\n" msgstr "" @@ -6564,7 +6564,7 @@ msgstr "" msgid " %s%s Job started: %s\n" msgstr "" -#: src/filed/status.c:169 src/stored/status.c:398 +#: src/filed/status.c:169 src/stored/status.c:401 #, c-format msgid " Files=%s Bytes=%s Bytes/sec=%s\n" msgstr "" @@ -6583,8 +6583,8 @@ msgstr "" msgid " SDSocket closed.\n" msgstr "" -#: src/filed/status.c:326 src/filed/status.c:350 src/stored/status.c:610 -#: src/stored/status.c:633 +#: src/filed/status.c:326 src/filed/status.c:350 src/stored/status.c:613 +#: src/stored/status.c:636 #, c-format msgid "Bad .status command: %s\n" msgstr "" @@ -6597,23 +6597,23 @@ msgstr "" msgid "2900 Bad .status command, wrong argument.\n" msgstr "" -#: src/filed/status.c:388 src/stored/status.c:551 +#: src/filed/status.c:388 src/stored/status.c:554 msgid "Init Catalog" msgstr "" -#: src/filed/status.c:391 src/stored/status.c:554 +#: src/filed/status.c:391 src/stored/status.c:557 msgid "Volume to Catalog" msgstr "" -#: src/filed/status.c:394 src/stored/status.c:557 +#: src/filed/status.c:394 src/stored/status.c:560 msgid "Disk to Catalog" msgstr "" -#: src/filed/status.c:397 src/stored/status.c:560 +#: src/filed/status.c:397 src/stored/status.c:563 msgid "Data" msgstr "" -#: src/filed/status.c:403 src/lib/util.c:361 src/stored/status.c:566 +#: src/filed/status.c:403 src/lib/util.c:361 src/stored/status.c:569 msgid "Unknown Job Level" msgstr "" @@ -13346,50 +13346,55 @@ msgid "" " pool=\"%s\" device=\"%s\"\n" msgstr "" -#: src/stored/status.c:406 +#: src/stored/status.c:392 +#, c-format +msgid " spooling=%d despooling=%d despool_wait=%d\n" +msgstr "" + +#: src/stored/status.c:409 #, c-format msgid " FDReadSeqNo=%s in_msg=%u out_msg=%d fd=%d\n" msgstr "" -#: src/stored/status.c:412 +#: src/stored/status.c:415 msgid " FDSocket closed\n" msgstr "" -#: src/stored/status.c:434 +#: src/stored/status.c:437 msgid "" "\n" "Jobs waiting to reserve a drive:\n" msgstr "" -#: src/stored/status.c:465 +#: src/stored/status.c:468 msgid "===================================================================\n" msgstr "" -#: src/stored/status.c:611 +#: src/stored/status.c:614 msgid "3900 Bad .status command, missing argument.\n" msgstr "" -#: src/stored/status.c:634 +#: src/stored/status.c:637 msgid "3900 Bad .status command, wrong argument.\n" msgstr "" -#: src/stored/status.c:648 +#: src/stored/status.c:651 msgid "Bacula Storage: Idle" msgstr "" -#: src/stored/status.c:659 +#: src/stored/status.c:662 msgid "Bacula Storage: Running" msgstr "" -#: src/stored/status.c:673 +#: src/stored/status.c:676 msgid "Bacula Storage: Last Job Canceled" msgstr "" -#: src/stored/status.c:677 +#: src/stored/status.c:680 msgid "Bacula Storage: Last Job Failed" msgstr "" -#: src/stored/status.c:681 +#: src/stored/status.c:684 msgid "Bacula Storage: Last Job had Warnings" msgstr "" diff --git a/bacula/po/es.gmo b/bacula/po/es.gmo new file mode 100644 index 0000000000000000000000000000000000000000..315e7eb2c8ddf71e6c1a371b48f85665ab29c746 GIT binary patch literal 426 zcmYL^-A=+V6o4^$wM(zPsEHREJhKIqF~krN6A}po7Vo?5Fsh?n+K%Xh_FW3CMx7!1yN)h3J0CG| HH4Ium%?f#g literal 0 HcmV?d00001 diff --git a/bacula/po/es.po b/bacula/po/es.po index 13424e48af..bb67507b6d 100644 --- a/bacula/po/es.po +++ b/bacula/po/es.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: branch 1.38\n" "Report-Msgid-Bugs-To: bacula-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2007-01-04 09:52+0100\n" +"POT-Creation-Date: 2007-01-12 17:30+0100\n" "PO-Revision-Date: 2006-04-13 08:14+0200\n" "Last-Translator: \n" "Language-Team: Spanish\n" @@ -135,8 +135,8 @@ msgid "" msgstr "" #: src/cats/sql.c:235 src/cats/sql.c:242 src/cats/sql_create.c:792 -#: src/cats/sql_get.c:186 src/cats/sql_get.c:237 src/cats/sql_get.c:592 -#: src/cats/sql_get.c:667 src/cats/sql_get.c:898 +#: src/cats/sql_get.c:186 src/cats/sql_get.c:237 src/cats/sql_get.c:595 +#: src/cats/sql_get.c:670 src/cats/sql_get.c:901 #, c-format msgid "error fetching row: %s\n" msgstr "" @@ -417,104 +417,104 @@ msgstr "" msgid "No Job found for JobId %s\n" msgstr "" -#: src/cats/sql_get.c:352 src/cats/sql_get.c:408 +#: src/cats/sql_get.c:355 src/cats/sql_get.c:411 #, c-format msgid "No volumes found for JobId=%d\n" msgstr "" -#: src/cats/sql_get.c:358 src/cats/sql_get.c:421 +#: src/cats/sql_get.c:361 src/cats/sql_get.c:424 #, c-format msgid "Error fetching row %d: ERR=%s\n" msgstr "" -#: src/cats/sql_get.c:372 +#: src/cats/sql_get.c:375 #, c-format msgid "No Volume for JobId %d found in Catalog.\n" msgstr "" -#: src/cats/sql_get.c:508 +#: src/cats/sql_get.c:511 #, c-format msgid "Pool id select failed: ERR=%s\n" msgstr "" -#: src/cats/sql_get.c:545 +#: src/cats/sql_get.c:548 #, c-format msgid "Client id select failed: ERR=%s\n" msgstr "" -#: src/cats/sql_get.c:587 +#: src/cats/sql_get.c:590 #, c-format msgid "More than one Pool!: %s\n" msgstr "" -#: src/cats/sql_get.c:628 +#: src/cats/sql_get.c:631 msgid "Pool record not found in Catalog.\n" msgstr "" -#: src/cats/sql_get.c:662 +#: src/cats/sql_get.c:665 #, c-format msgid "More than one Client!: %s\n" msgstr "" -#: src/cats/sql_get.c:679 src/cats/sql_get.c:683 +#: src/cats/sql_get.c:682 src/cats/sql_get.c:686 msgid "Client record not found in Catalog.\n" msgstr "" -#: src/cats/sql_get.c:708 +#: src/cats/sql_get.c:711 #, c-format msgid "More than one Counter!: %d\n" msgstr "" -#: src/cats/sql_get.c:713 +#: src/cats/sql_get.c:716 #, c-format msgid "error fetching Counter row: %s\n" msgstr "" -#: src/cats/sql_get.c:733 +#: src/cats/sql_get.c:736 #, c-format msgid "Counter record: %s not found in Catalog.\n" msgstr "" -#: src/cats/sql_get.c:769 +#: src/cats/sql_get.c:772 #, c-format msgid "Error got %s FileSets but expected only one!\n" msgstr "" -#: src/cats/sql_get.c:774 +#: src/cats/sql_get.c:777 #, c-format msgid "FileSet record \"%s\" not found.\n" msgstr "" -#: src/cats/sql_get.c:784 +#: src/cats/sql_get.c:787 msgid "FileSet record not found in Catalog.\n" msgstr "" -#: src/cats/sql_get.c:841 +#: src/cats/sql_get.c:844 #, c-format msgid "Media id select failed: ERR=%s\n" msgstr "" -#: src/cats/sql_get.c:893 +#: src/cats/sql_get.c:896 #, c-format msgid "More than one Volume!: %s\n" msgstr "" -#: src/cats/sql_get.c:946 +#: src/cats/sql_get.c:949 #, c-format msgid "Media record MediaId=%s not found.\n" msgstr "" -#: src/cats/sql_get.c:949 +#: src/cats/sql_get.c:952 #, c-format msgid "Media record for Volume \"%s\" not found.\n" msgstr "" -#: src/cats/sql_get.c:956 +#: src/cats/sql_get.c:959 #, c-format msgid "Media record for MediaId=%u not found in Catalog.\n" msgstr "" -#: src/cats/sql_get.c:959 +#: src/cats/sql_get.c:962 #, c-format msgid "Media record for Vol=%s not found in Catalog.\n" msgstr "" @@ -745,7 +745,7 @@ msgid "" "\n" msgstr "" -#: src/dird/backup.c:87 src/dird/job.c:937 src/dird/job.c:976 +#: src/dird/backup.c:87 src/dird/job.c:940 src/dird/job.c:986 #: src/dird/migrate.c:229 src/dird/migrate.c:230 msgid "Pool resource" msgstr "" @@ -1650,7 +1650,7 @@ msgstr "" msgid "Cannot open included file: %s. ERR=%s\n" msgstr "" -#: src/dird/fd_cmds.c:468 src/filed/job.c:1771 +#: src/dird/fd_cmds.c:468 src/filed/job.c:1772 #, c-format msgid "Could not open bootstrap file %s: ERR=%s\n" msgstr "" @@ -1768,7 +1768,7 @@ msgstr "" msgid "Could not open database \"%s\".\n" msgstr "" -#: src/dird/job.c:145 src/dird/job.c:151 src/dird/job.c:969 +#: src/dird/job.c:145 src/dird/job.c:151 src/dird/job.c:966 src/dird/job.c:978 #: src/dird/ua_cmds.c:690 src/dird/ua_cmds.c:1340 src/dird/ua_status.c:293 msgid "unknown source" msgstr "" @@ -1791,99 +1791,99 @@ msgstr "" msgid "Failed to connect to File daemon.\n" msgstr "" -#: src/dird/job.c:394 src/dird/job.c:396 src/dird/job.c:940 src/dird/job.c:974 -#: src/dird/job.c:983 +#: src/dird/job.c:394 src/dird/job.c:396 src/dird/job.c:943 src/dird/job.c:984 +#: src/dird/job.c:993 msgid "Job resource" msgstr "" -#: src/dird/job.c:411 src/dird/ua_cmds.c:696 src/dird/ua_cmds.c:1354 +#: src/dird/job.c:409 src/dird/ua_cmds.c:696 src/dird/ua_cmds.c:1354 #: src/dird/ua_label.c:753 msgid "Failed to connect to Storage daemon.\n" msgstr "" -#: src/dird/job.c:456 +#: src/dird/job.c:454 msgid "Max wait time exceeded. Job canceled.\n" msgstr "" -#: src/dird/job.c:461 +#: src/dird/job.c:459 msgid "Max run time exceeded. Job canceled.\n" msgstr "" -#: src/dird/job.c:555 src/dird/job.c:604 +#: src/dird/job.c:553 src/dird/job.c:602 #, c-format msgid "Unhandled job status code %d\n" msgstr "" -#: src/dird/job.c:630 src/dird/ua_output.c:630 +#: src/dird/job.c:628 src/dird/ua_output.c:630 #, c-format msgid "Pool %s not in database. %s" msgstr "" -#: src/dird/job.c:634 src/dird/ua_output.c:638 +#: src/dird/job.c:632 src/dird/ua_output.c:638 #, c-format msgid "Pool %s created in database.\n" msgstr "" -#: src/dird/job.c:643 src/dird/job.c:927 +#: src/dird/job.c:641 src/dird/job.c:930 msgid "Run pool override" msgstr "" -#: src/dird/job.c:653 +#: src/dird/job.c:651 msgid "Run FullPool override" msgstr "" -#: src/dird/job.c:655 +#: src/dird/job.c:653 msgid "Job FullPool override" msgstr "" -#: src/dird/job.c:663 +#: src/dird/job.c:661 msgid "Run IncPool override" msgstr "" -#: src/dird/job.c:665 +#: src/dird/job.c:663 msgid "Job IncPool override" msgstr "" -#: src/dird/job.c:673 +#: src/dird/job.c:671 msgid "Run DiffPool override" msgstr "" -#: src/dird/job.c:675 +#: src/dird/job.c:673 msgid "Job DiffPool override" msgstr "" -#: src/dird/job.c:700 src/stored/bscan.c:962 +#: src/dird/job.c:698 src/stored/bscan.c:962 #, c-format msgid "Could not create Client record. ERR=%s\n" msgstr "" -#: src/dird/job.c:736 +#: src/dird/job.c:734 msgid "FileSet MD5 digest not found.\n" msgstr "" -#: src/dird/job.c:741 +#: src/dird/job.c:739 #, c-format msgid "Could not create FileSet \"%s\" record. ERR=%s\n" msgstr "" -#: src/dird/job.c:781 +#: src/dird/job.c:779 #, c-format msgid "Error updating job record. %s" msgstr "" -#: src/dird/job.c:932 +#: src/dird/job.c:935 msgid "Run storage override" msgstr "" -#: src/dird/job.c:1045 src/dird/ua_run.c:389 +#: src/dird/job.c:1055 src/dird/ua_run.c:389 msgid "No storage specified.\n" msgstr "" -#: src/dird/job.c:1206 +#: src/dird/job.c:1216 msgid "Could not start clone job.\n" msgstr "" -#: src/dird/job.c:1208 +#: src/dird/job.c:1218 #, c-format msgid "Clone JobId %d started.\n" msgstr "" @@ -2180,7 +2180,7 @@ msgstr "" msgid "Storage from Pool's NextPool resource" msgstr "" -#: src/dird/msgchan.c:99 src/filed/job.c:1247 +#: src/dird/msgchan.c:99 src/filed/job.c:1248 #: src/tray-monitor/tray-monitor.c:888 msgid "Storage daemon" msgstr "" @@ -2791,7 +2791,7 @@ msgstr "" msgid "Warning Job %s is not running. Continuing anyway ...\n" msgstr "" -#: src/dird/ua_cmds.c:441 src/filed/status.c:197 src/stored/status.c:421 +#: src/dird/ua_cmds.c:441 src/filed/status.c:197 src/stored/status.c:424 msgid "No Jobs running.\n" msgstr "" @@ -3620,7 +3620,7 @@ msgid "Enter a list of directories to restore for found JobIds" msgstr "" #: src/dird/ua_restore.c:329 src/dird/ua_status.c:732 src/filed/status.c:254 -#: src/stored/status.c:495 src/wx-console/wxbconfigpanel.cpp:212 +#: src/stored/status.c:498 src/wx-console/wxbconfigpanel.cpp:212 msgid "Cancel" msgstr "" @@ -4164,27 +4164,27 @@ msgid "Levels:\n" msgstr "" #: src/dird/ua_run.c:782 src/filed/status.c:371 src/lib/util.c:329 -#: src/stored/status.c:534 +#: src/stored/status.c:537 msgid "Base" msgstr "" #: src/dird/ua_run.c:783 src/filed/status.c:373 src/lib/util.c:331 -#: src/stored/status.c:536 +#: src/stored/status.c:539 msgid "Full" msgstr "" #: src/dird/ua_run.c:784 src/filed/status.c:376 src/lib/util.c:334 -#: src/stored/status.c:539 +#: src/stored/status.c:542 msgid "Incremental" msgstr "" #: src/dird/ua_run.c:785 src/filed/status.c:379 src/lib/util.c:337 -#: src/stored/status.c:542 +#: src/stored/status.c:545 msgid "Differential" msgstr "" #: src/dird/ua_run.c:786 src/filed/status.c:382 src/lib/util.c:340 -#: src/stored/status.c:545 +#: src/stored/status.c:548 msgid "Since" msgstr "" @@ -4197,7 +4197,7 @@ msgid "Initialize Catalog" msgstr "" #: src/dird/ua_run.c:809 src/filed/status.c:385 src/lib/util.c:343 -#: src/stored/status.c:548 +#: src/stored/status.c:551 msgid "Verify Catalog" msgstr "" @@ -4762,13 +4762,13 @@ msgstr "" msgid "No Terminated Jobs.\n" msgstr "" -#: src/dird/ua_status.c:689 src/filed/status.c:214 src/stored/status.c:456 +#: src/dird/ua_status.c:689 src/filed/status.c:214 src/stored/status.c:459 msgid "" "\n" "Terminated Jobs:\n" msgstr "" -#: src/dird/ua_status.c:690 src/filed/status.c:222 src/stored/status.c:463 +#: src/dird/ua_status.c:690 src/filed/status.c:222 src/stored/status.c:466 msgid " JobId Level Files Bytes Status Finished Name \n" msgstr "" @@ -4777,30 +4777,30 @@ msgid "====================================================================\n" msgstr "" #: src/dird/ua_status.c:722 src/filed/status.c:244 src/lib/util.c:179 -#: src/stored/status.c:485 +#: src/stored/status.c:488 msgid "Created" msgstr "" #: src/dird/ua_status.c:726 src/filed/status.c:248 src/lib/util.c:192 -#: src/lib/util.c:259 src/stored/status.c:489 +#: src/lib/util.c:259 src/stored/status.c:492 msgid "Error" msgstr "" -#: src/dird/ua_status.c:729 src/filed/status.c:251 src/stored/status.c:492 +#: src/dird/ua_status.c:729 src/filed/status.c:251 src/stored/status.c:495 msgid "Diffs" msgstr "" #: src/dird/ua_status.c:735 src/filed/status.c:257 src/lib/util.c:188 -#: src/lib/util.c:255 src/stored/btape.c:1187 src/stored/status.c:498 +#: src/lib/util.c:255 src/stored/btape.c:1187 src/stored/status.c:501 #: src/wx-console/wxbconfigpanel.cpp:201 msgid "OK" msgstr "" -#: src/dird/ua_status.c:738 src/filed/status.c:260 src/stored/status.c:501 +#: src/dird/ua_status.c:738 src/filed/status.c:260 src/stored/status.c:504 msgid "Other" msgstr "" -#: src/dird/ua_status.c:741 src/filed/status.c:271 src/stored/status.c:512 +#: src/dird/ua_status.c:741 src/filed/status.c:271 src/stored/status.c:515 #, c-format msgid "%6d %-6s %8s %10s %-7s %-8s %s\n" msgstr "" @@ -6150,151 +6150,151 @@ msgstr "" msgid "Cannot open FileSet input file: %s. ERR=%s\n" msgstr "" -#: src/filed/job.c:731 +#: src/filed/job.c:733 #, c-format msgid "REGEX %s compile error. ERR=%s\n" msgstr "" -#: src/filed/job.c:793 +#: src/filed/job.c:795 #, c-format msgid "Invalid FileSet command: %s\n" msgstr "" -#: src/filed/job.c:1008 src/findlib/match.c:199 src/tools/testfind.c:635 +#: src/filed/job.c:1009 src/findlib/match.c:199 src/tools/testfind.c:635 #, c-format msgid "Unknown include/exclude option: %c\n" msgstr "" -#: src/filed/job.c:1077 src/stored/fd_cmds.c:348 +#: src/filed/job.c:1078 src/stored/fd_cmds.c:348 #, c-format msgid "Could not create bootstrap file %s: ERR=%s\n" msgstr "" -#: src/filed/job.c:1179 +#: src/filed/job.c:1180 #, c-format msgid "DIR and FD clocks differ by %d seconds, FD automatically adjusting.\n" msgstr "" -#: src/filed/job.c:1187 +#: src/filed/job.c:1188 #, c-format msgid "Unknown backup level: %s\n" msgstr "" -#: src/filed/job.c:1199 +#: src/filed/job.c:1200 #, c-format msgid "Bad level command: %s\n" msgstr "" -#: src/filed/job.c:1220 +#: src/filed/job.c:1221 #, c-format msgid "Bad session command: %s" msgstr "" -#: src/filed/job.c:1241 +#: src/filed/job.c:1242 #, c-format msgid "Bad storage command: %s" msgstr "" -#: src/filed/job.c:1250 +#: src/filed/job.c:1251 #, c-format msgid "Failed to connect to Storage daemon: %s:%d\n" msgstr "" -#: src/filed/job.c:1262 +#: src/filed/job.c:1263 msgid "Failed to authenticate Storage daemon.\n" msgstr "" -#: src/filed/job.c:1300 +#: src/filed/job.c:1301 msgid "Cannot contact Storage daemon\n" msgstr "" -#: src/filed/job.c:1318 +#: src/filed/job.c:1319 #, c-format msgid "Bad response to append open: %s\n" msgstr "" -#: src/filed/job.c:1323 +#: src/filed/job.c:1324 msgid "Bad response from stored to open command\n" msgstr "" -#: src/filed/job.c:1350 +#: src/filed/job.c:1351 #, c-format msgid "Generate VSS snapshots. Driver=\"%s\", Drive(s)=\"%s\"\n" msgstr "" -#: src/filed/job.c:1352 +#: src/filed/job.c:1353 msgid "Generate VSS snapshots failed.\n" msgstr "" -#: src/filed/job.c:1359 +#: src/filed/job.c:1360 #, c-format msgid "" "Generate VSS snapshot of drive \"%c:\\\" failed. VSS support is disabled on " "this drive.\n" msgstr "" -#: src/filed/job.c:1366 +#: src/filed/job.c:1367 #, c-format msgid "VSS Writer (PrepareForBackup): %s\n" msgstr "" -#: src/filed/job.c:1371 +#: src/filed/job.c:1372 msgid "No drive letters found for generating VSS snapshots.\n" msgstr "" -#: src/filed/job.c:1375 +#: src/filed/job.c:1376 #, c-format msgid "VSS was not initialized properly. VSS support is disabled. ERR=%s\n" msgstr "" -#: src/filed/job.c:1433 +#: src/filed/job.c:1434 msgid "Append Close with SD failed.\n" msgstr "" -#: src/filed/job.c:1437 +#: src/filed/job.c:1438 #, c-format msgid "Bad status %d returned from Storage Daemon.\n" msgstr "" -#: src/filed/job.c:1455 +#: src/filed/job.c:1456 #, c-format msgid "VSS Writer (BackupComplete): %s\n" msgstr "" -#: src/filed/job.c:1483 +#: src/filed/job.c:1484 #, c-format msgid "2994 Bad verify command: %s\n" msgstr "" -#: src/filed/job.c:1498 src/filed/job.c:1537 +#: src/filed/job.c:1499 src/filed/job.c:1538 #, c-format msgid "2994 Bad verify level: %s\n" msgstr "" -#: src/filed/job.c:1579 +#: src/filed/job.c:1580 #, c-format msgid "Bad replace command. CMD=%s\n" msgstr "" -#: src/filed/job.c:1658 +#: src/filed/job.c:1659 msgid "Improper calling sequence.\n" msgstr "" -#: src/filed/job.c:1678 +#: src/filed/job.c:1679 #, c-format msgid "Bad response to SD read open: %s\n" msgstr "" -#: src/filed/job.c:1683 +#: src/filed/job.c:1684 msgid "Bad response from stored to read open command\n" msgstr "" -#: src/filed/job.c:1747 +#: src/filed/job.c:1748 #, c-format msgid "Comm error with SD. bad response to %s. ERR=%s\n" msgstr "" -#: src/filed/job.c:1750 +#: src/filed/job.c:1751 #, c-format msgid "Bad response to %s command. Wanted %s, got %s\n" msgstr "" @@ -6564,7 +6564,7 @@ msgstr "" msgid " %s%s Job started: %s\n" msgstr "" -#: src/filed/status.c:169 src/stored/status.c:398 +#: src/filed/status.c:169 src/stored/status.c:401 #, c-format msgid " Files=%s Bytes=%s Bytes/sec=%s\n" msgstr "" @@ -6583,8 +6583,8 @@ msgstr "" msgid " SDSocket closed.\n" msgstr "" -#: src/filed/status.c:326 src/filed/status.c:350 src/stored/status.c:610 -#: src/stored/status.c:633 +#: src/filed/status.c:326 src/filed/status.c:350 src/stored/status.c:613 +#: src/stored/status.c:636 #, c-format msgid "Bad .status command: %s\n" msgstr "" @@ -6597,23 +6597,23 @@ msgstr "" msgid "2900 Bad .status command, wrong argument.\n" msgstr "" -#: src/filed/status.c:388 src/stored/status.c:551 +#: src/filed/status.c:388 src/stored/status.c:554 msgid "Init Catalog" msgstr "" -#: src/filed/status.c:391 src/stored/status.c:554 +#: src/filed/status.c:391 src/stored/status.c:557 msgid "Volume to Catalog" msgstr "" -#: src/filed/status.c:394 src/stored/status.c:557 +#: src/filed/status.c:394 src/stored/status.c:560 msgid "Disk to Catalog" msgstr "" -#: src/filed/status.c:397 src/stored/status.c:560 +#: src/filed/status.c:397 src/stored/status.c:563 msgid "Data" msgstr "" -#: src/filed/status.c:403 src/lib/util.c:361 src/stored/status.c:566 +#: src/filed/status.c:403 src/lib/util.c:361 src/stored/status.c:569 msgid "Unknown Job Level" msgstr "" @@ -13346,50 +13346,55 @@ msgid "" " pool=\"%s\" device=\"%s\"\n" msgstr "" -#: src/stored/status.c:406 +#: src/stored/status.c:392 +#, c-format +msgid " spooling=%d despooling=%d despool_wait=%d\n" +msgstr "" + +#: src/stored/status.c:409 #, c-format msgid " FDReadSeqNo=%s in_msg=%u out_msg=%d fd=%d\n" msgstr "" -#: src/stored/status.c:412 +#: src/stored/status.c:415 msgid " FDSocket closed\n" msgstr "" -#: src/stored/status.c:434 +#: src/stored/status.c:437 msgid "" "\n" "Jobs waiting to reserve a drive:\n" msgstr "" -#: src/stored/status.c:465 +#: src/stored/status.c:468 msgid "===================================================================\n" msgstr "" -#: src/stored/status.c:611 +#: src/stored/status.c:614 msgid "3900 Bad .status command, missing argument.\n" msgstr "" -#: src/stored/status.c:634 +#: src/stored/status.c:637 msgid "3900 Bad .status command, wrong argument.\n" msgstr "" -#: src/stored/status.c:648 +#: src/stored/status.c:651 msgid "Bacula Storage: Idle" msgstr "" -#: src/stored/status.c:659 +#: src/stored/status.c:662 msgid "Bacula Storage: Running" msgstr "" -#: src/stored/status.c:673 +#: src/stored/status.c:676 msgid "Bacula Storage: Last Job Canceled" msgstr "" -#: src/stored/status.c:677 +#: src/stored/status.c:680 msgid "Bacula Storage: Last Job Failed" msgstr "" -#: src/stored/status.c:681 +#: src/stored/status.c:684 msgid "Bacula Storage: Last Job had Warnings" msgstr "" diff --git a/bacula/po/fr.gmo b/bacula/po/fr.gmo new file mode 100644 index 0000000000000000000000000000000000000000..ceec2d5ca6b27c88ee7a6f68b7a84632c6d36385 GIT binary patch literal 110756 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 G?*2DqC&-fk literal 0 HcmV?d00001 diff --git a/bacula/po/fr.po b/bacula/po/fr.po index 2791317185..5b2b79a6ed 100644 --- a/bacula/po/fr.po +++ b/bacula/po/fr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Bacula 1.38\n" "Report-Msgid-Bugs-To: bacula-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2007-01-04 09:52+0100\n" +"POT-Creation-Date: 2007-01-12 17:30+0100\n" "PO-Revision-Date: 2007-01-01 20:45+0100\n" "Last-Translator: Eric Bollengier \n" "Language-Team: French \n" @@ -140,8 +140,8 @@ msgid "" msgstr "" #: src/cats/sql.c:235 src/cats/sql.c:242 src/cats/sql_create.c:792 -#: src/cats/sql_get.c:186 src/cats/sql_get.c:237 src/cats/sql_get.c:592 -#: src/cats/sql_get.c:667 src/cats/sql_get.c:898 +#: src/cats/sql_get.c:186 src/cats/sql_get.c:237 src/cats/sql_get.c:595 +#: src/cats/sql_get.c:670 src/cats/sql_get.c:901 #, c-format msgid "error fetching row: %s\n" msgstr "" @@ -422,104 +422,104 @@ msgstr "" msgid "No Job found for JobId %s\n" msgstr "" -#: src/cats/sql_get.c:352 src/cats/sql_get.c:408 +#: src/cats/sql_get.c:355 src/cats/sql_get.c:411 #, c-format msgid "No volumes found for JobId=%d\n" msgstr "" -#: src/cats/sql_get.c:358 src/cats/sql_get.c:421 +#: src/cats/sql_get.c:361 src/cats/sql_get.c:424 #, c-format msgid "Error fetching row %d: ERR=%s\n" msgstr "" -#: src/cats/sql_get.c:372 +#: src/cats/sql_get.c:375 #, c-format msgid "No Volume for JobId %d found in Catalog.\n" msgstr "" -#: src/cats/sql_get.c:508 +#: src/cats/sql_get.c:511 #, c-format msgid "Pool id select failed: ERR=%s\n" msgstr "" -#: src/cats/sql_get.c:545 +#: src/cats/sql_get.c:548 #, c-format msgid "Client id select failed: ERR=%s\n" msgstr "" -#: src/cats/sql_get.c:587 +#: src/cats/sql_get.c:590 #, c-format msgid "More than one Pool!: %s\n" msgstr "" -#: src/cats/sql_get.c:628 +#: src/cats/sql_get.c:631 msgid "Pool record not found in Catalog.\n" msgstr "" -#: src/cats/sql_get.c:662 +#: src/cats/sql_get.c:665 #, c-format msgid "More than one Client!: %s\n" msgstr "" -#: src/cats/sql_get.c:679 src/cats/sql_get.c:683 +#: src/cats/sql_get.c:682 src/cats/sql_get.c:686 msgid "Client record not found in Catalog.\n" msgstr "" -#: src/cats/sql_get.c:708 +#: src/cats/sql_get.c:711 #, c-format msgid "More than one Counter!: %d\n" msgstr "" -#: src/cats/sql_get.c:713 +#: src/cats/sql_get.c:716 #, c-format msgid "error fetching Counter row: %s\n" msgstr "" -#: src/cats/sql_get.c:733 +#: src/cats/sql_get.c:736 #, c-format msgid "Counter record: %s not found in Catalog.\n" msgstr "" -#: src/cats/sql_get.c:769 +#: src/cats/sql_get.c:772 #, c-format msgid "Error got %s FileSets but expected only one!\n" msgstr "" -#: src/cats/sql_get.c:774 +#: src/cats/sql_get.c:777 #, c-format msgid "FileSet record \"%s\" not found.\n" msgstr "" -#: src/cats/sql_get.c:784 +#: src/cats/sql_get.c:787 msgid "FileSet record not found in Catalog.\n" msgstr "" -#: src/cats/sql_get.c:841 +#: src/cats/sql_get.c:844 #, c-format msgid "Media id select failed: ERR=%s\n" msgstr "" -#: src/cats/sql_get.c:893 +#: src/cats/sql_get.c:896 #, c-format msgid "More than one Volume!: %s\n" msgstr "" -#: src/cats/sql_get.c:946 +#: src/cats/sql_get.c:949 #, c-format msgid "Media record MediaId=%s not found.\n" msgstr "" -#: src/cats/sql_get.c:949 +#: src/cats/sql_get.c:952 #, c-format msgid "Media record for Volume \"%s\" not found.\n" msgstr "" -#: src/cats/sql_get.c:956 +#: src/cats/sql_get.c:959 #, c-format msgid "Media record for MediaId=%u not found in Catalog.\n" msgstr "" -#: src/cats/sql_get.c:959 +#: src/cats/sql_get.c:962 #, c-format msgid "Media record for Vol=%s not found in Catalog.\n" msgstr "" @@ -767,7 +767,7 @@ msgstr "" "Fin de la purge automatique.\n" "\n" -#: src/dird/backup.c:87 src/dird/job.c:937 src/dird/job.c:976 +#: src/dird/backup.c:87 src/dird/job.c:940 src/dird/job.c:986 #: src/dird/migrate.c:229 src/dird/migrate.c:230 #, fuzzy msgid "Pool resource" @@ -1727,7 +1727,7 @@ msgstr "Erreur dans l'ex msgid "Cannot open included file: %s. ERR=%s\n" msgstr "Impossible d'ouvrir le fichier inclus : %s. ERR=%s\n" -#: src/dird/fd_cmds.c:468 src/filed/job.c:1771 +#: src/dird/fd_cmds.c:468 src/filed/job.c:1772 #, c-format msgid "Could not open bootstrap file %s: ERR=%s\n" msgstr "Impossible d'ouvrir le fichier bootstrap %s : ERR=%s\n" @@ -1845,7 +1845,7 @@ msgstr "" msgid "Could not open database \"%s\".\n" msgstr "Impossible d'ouvrir la base de données « %s ».\n" -#: src/dird/job.c:145 src/dird/job.c:151 src/dird/job.c:969 +#: src/dird/job.c:145 src/dird/job.c:151 src/dird/job.c:966 src/dird/job.c:978 #: src/dird/ua_cmds.c:690 src/dird/ua_cmds.c:1340 src/dird/ua_status.c:293 msgid "unknown source" msgstr "source inconnue" @@ -1868,100 +1868,100 @@ msgstr "JobId %s, Job %s marqu msgid "Failed to connect to File daemon.\n" msgstr "Impossible de se connecter au client.\n" -#: src/dird/job.c:394 src/dird/job.c:396 src/dird/job.c:940 src/dird/job.c:974 -#: src/dird/job.c:983 +#: src/dird/job.c:394 src/dird/job.c:396 src/dird/job.c:943 src/dird/job.c:984 +#: src/dird/job.c:993 #, fuzzy msgid "Job resource" msgstr "Pool à partir de sa définition" -#: src/dird/job.c:411 src/dird/ua_cmds.c:696 src/dird/ua_cmds.c:1354 +#: src/dird/job.c:409 src/dird/ua_cmds.c:696 src/dird/ua_cmds.c:1354 #: src/dird/ua_label.c:753 msgid "Failed to connect to Storage daemon.\n" msgstr "Impossible de se connecter au Storage daemon.\n" -#: src/dird/job.c:456 +#: src/dird/job.c:454 msgid "Max wait time exceeded. Job canceled.\n" msgstr "Temps d'attente maximum dépassé. Abandon du job.\n" -#: src/dird/job.c:461 +#: src/dird/job.c:459 msgid "Max run time exceeded. Job canceled.\n" msgstr "Temps d'exécution maximum atteind. Abandon du job.\n" -#: src/dird/job.c:555 src/dird/job.c:604 +#: src/dird/job.c:553 src/dird/job.c:602 #, c-format msgid "Unhandled job status code %d\n" msgstr "" -#: src/dird/job.c:630 src/dird/ua_output.c:630 +#: src/dird/job.c:628 src/dird/ua_output.c:630 #, c-format msgid "Pool %s not in database. %s" msgstr "Pool %s introuvable en base. %s" -#: src/dird/job.c:634 src/dird/ua_output.c:638 +#: src/dird/job.c:632 src/dird/ua_output.c:638 #, c-format msgid "Pool %s created in database.\n" msgstr "Pool %s créé en base.\n" -#: src/dird/job.c:643 src/dird/job.c:927 +#: src/dird/job.c:641 src/dird/job.c:930 msgid "Run pool override" msgstr "" -#: src/dird/job.c:653 +#: src/dird/job.c:651 msgid "Run FullPool override" msgstr "" -#: src/dird/job.c:655 +#: src/dird/job.c:653 msgid "Job FullPool override" msgstr "" -#: src/dird/job.c:663 +#: src/dird/job.c:661 msgid "Run IncPool override" msgstr "" -#: src/dird/job.c:665 +#: src/dird/job.c:663 msgid "Job IncPool override" msgstr "" -#: src/dird/job.c:673 +#: src/dird/job.c:671 msgid "Run DiffPool override" msgstr "" -#: src/dird/job.c:675 +#: src/dird/job.c:673 msgid "Job DiffPool override" msgstr "" -#: src/dird/job.c:700 src/stored/bscan.c:962 +#: src/dird/job.c:698 src/stored/bscan.c:962 #, c-format msgid "Could not create Client record. ERR=%s\n" msgstr "" -#: src/dird/job.c:736 +#: src/dird/job.c:734 msgid "FileSet MD5 digest not found.\n" msgstr "" -#: src/dird/job.c:741 +#: src/dird/job.c:739 #, c-format msgid "Could not create FileSet \"%s\" record. ERR=%s\n" msgstr "" -#: src/dird/job.c:781 +#: src/dird/job.c:779 #, c-format msgid "Error updating job record. %s" msgstr "" -#: src/dird/job.c:932 +#: src/dird/job.c:935 msgid "Run storage override" msgstr "" -#: src/dird/job.c:1045 src/dird/ua_run.c:389 +#: src/dird/job.c:1055 src/dird/ua_run.c:389 msgid "No storage specified.\n" msgstr "Pas de storage sélectionné.\n" -#: src/dird/job.c:1206 +#: src/dird/job.c:1216 msgid "Could not start clone job.\n" msgstr "" -#: src/dird/job.c:1208 +#: src/dird/job.c:1218 #, c-format msgid "Clone JobId %d started.\n" msgstr "" @@ -2295,7 +2295,7 @@ msgstr "" msgid "Storage from Pool's NextPool resource" msgstr "Sélectionnez le Pool" -#: src/dird/msgchan.c:99 src/filed/job.c:1247 +#: src/dird/msgchan.c:99 src/filed/job.c:1248 #: src/tray-monitor/tray-monitor.c:888 msgid "Storage daemon" msgstr "" @@ -2928,7 +2928,7 @@ msgstr "" msgid "Warning Job %s is not running. Continuing anyway ...\n" msgstr "Attention le Job %s n'est pas en cours. Continuons quand même...\n" -#: src/dird/ua_cmds.c:441 src/filed/status.c:197 src/stored/status.c:421 +#: src/dird/ua_cmds.c:441 src/filed/status.c:197 src/stored/status.c:424 msgid "No Jobs running.\n" msgstr "Pas de job en cours.\n" @@ -3806,7 +3806,7 @@ msgid "Enter a list of directories to restore for found JobIds" msgstr "Saisir la liste des répertoires à restaurer (pour un JobId)" #: src/dird/ua_restore.c:329 src/dird/ua_status.c:732 src/filed/status.c:254 -#: src/stored/status.c:495 src/wx-console/wxbconfigpanel.cpp:212 +#: src/stored/status.c:498 src/wx-console/wxbconfigpanel.cpp:212 msgid "Cancel" msgstr "Annulé" @@ -4385,27 +4385,27 @@ msgid "Levels:\n" msgstr "Types :\n" #: src/dird/ua_run.c:782 src/filed/status.c:371 src/lib/util.c:329 -#: src/stored/status.c:534 +#: src/stored/status.c:537 msgid "Base" msgstr "Base" #: src/dird/ua_run.c:783 src/filed/status.c:373 src/lib/util.c:331 -#: src/stored/status.c:536 +#: src/stored/status.c:539 msgid "Full" msgstr "Full" #: src/dird/ua_run.c:784 src/filed/status.c:376 src/lib/util.c:334 -#: src/stored/status.c:539 +#: src/stored/status.c:542 msgid "Incremental" msgstr "Incrémental" #: src/dird/ua_run.c:785 src/filed/status.c:379 src/lib/util.c:337 -#: src/stored/status.c:542 +#: src/stored/status.c:545 msgid "Differential" msgstr "Différentiel" #: src/dird/ua_run.c:786 src/filed/status.c:382 src/lib/util.c:340 -#: src/stored/status.c:545 +#: src/stored/status.c:548 msgid "Since" msgstr "Depuis" @@ -4418,7 +4418,7 @@ msgid "Initialize Catalog" msgstr "Initialisez le catalogue" #: src/dird/ua_run.c:809 src/filed/status.c:385 src/lib/util.c:343 -#: src/stored/status.c:548 +#: src/stored/status.c:551 msgid "Verify Catalog" msgstr "" @@ -5058,7 +5058,7 @@ msgstr "%6d %-6s %-20s %s\n" msgid "No Terminated Jobs.\n" msgstr "Pas de job terminé.\n" -#: src/dird/ua_status.c:689 src/filed/status.c:214 src/stored/status.c:456 +#: src/dird/ua_status.c:689 src/filed/status.c:214 src/stored/status.c:459 msgid "" "\n" "Terminated Jobs:\n" @@ -5066,7 +5066,7 @@ msgstr "" "\n" "Job terminés :\n" -#: src/dird/ua_status.c:690 src/filed/status.c:222 src/stored/status.c:463 +#: src/dird/ua_status.c:690 src/filed/status.c:222 src/stored/status.c:466 msgid " JobId Level Files Bytes Status Finished Name \n" msgstr " JobId Type Fichiers Octets Statut Terminé Nom\n" @@ -5075,30 +5075,30 @@ msgid "====================================================================\n" msgstr "=====================================================================\n" #: src/dird/ua_status.c:722 src/filed/status.c:244 src/lib/util.c:179 -#: src/stored/status.c:485 +#: src/stored/status.c:488 msgid "Created" msgstr "Crée" #: src/dird/ua_status.c:726 src/filed/status.c:248 src/lib/util.c:192 -#: src/lib/util.c:259 src/stored/status.c:489 +#: src/lib/util.c:259 src/stored/status.c:492 msgid "Error" msgstr "Erreur" -#: src/dird/ua_status.c:729 src/filed/status.c:251 src/stored/status.c:492 +#: src/dird/ua_status.c:729 src/filed/status.c:251 src/stored/status.c:495 msgid "Diffs" msgstr "" #: src/dird/ua_status.c:735 src/filed/status.c:257 src/lib/util.c:188 -#: src/lib/util.c:255 src/stored/btape.c:1187 src/stored/status.c:498 +#: src/lib/util.c:255 src/stored/btape.c:1187 src/stored/status.c:501 #: src/wx-console/wxbconfigpanel.cpp:201 msgid "OK" msgstr "OK" -#: src/dird/ua_status.c:738 src/filed/status.c:260 src/stored/status.c:501 +#: src/dird/ua_status.c:738 src/filed/status.c:260 src/stored/status.c:504 msgid "Other" msgstr "Autre" -#: src/dird/ua_status.c:741 src/filed/status.c:271 src/stored/status.c:512 +#: src/dird/ua_status.c:741 src/filed/status.c:271 src/stored/status.c:515 #, c-format msgid "%6d %-6s %8s %10s %-7s %-8s %s\n" msgstr "%6d %-6s %8s %10s %-7s %-8s %s\n" @@ -6497,85 +6497,85 @@ msgstr "Erreur dans l'ex msgid "Cannot open FileSet input file: %s. ERR=%s\n" msgstr "" -#: src/filed/job.c:731 +#: src/filed/job.c:733 #, c-format msgid "REGEX %s compile error. ERR=%s\n" msgstr "" -#: src/filed/job.c:793 +#: src/filed/job.c:795 #, c-format msgid "Invalid FileSet command: %s\n" msgstr "" -#: src/filed/job.c:1008 src/findlib/match.c:199 src/tools/testfind.c:635 +#: src/filed/job.c:1009 src/findlib/match.c:199 src/tools/testfind.c:635 #, c-format msgid "Unknown include/exclude option: %c\n" msgstr "" -#: src/filed/job.c:1077 src/stored/fd_cmds.c:348 +#: src/filed/job.c:1078 src/stored/fd_cmds.c:348 #, c-format msgid "Could not create bootstrap file %s: ERR=%s\n" msgstr "Impossible de créer le fichier bootstrap %s : ERR=%s\n" -#: src/filed/job.c:1179 +#: src/filed/job.c:1180 #, c-format msgid "DIR and FD clocks differ by %d seconds, FD automatically adjusting.\n" msgstr "" "L'horloge du client et du director ont %d secondes d'écart, le client s'est " "ajusté automatiquement.\n" -#: src/filed/job.c:1187 +#: src/filed/job.c:1188 #, c-format msgid "Unknown backup level: %s\n" msgstr "" -#: src/filed/job.c:1199 +#: src/filed/job.c:1200 #, c-format msgid "Bad level command: %s\n" msgstr "" -#: src/filed/job.c:1220 +#: src/filed/job.c:1221 #, c-format msgid "Bad session command: %s" msgstr "" -#: src/filed/job.c:1241 +#: src/filed/job.c:1242 #, c-format msgid "Bad storage command: %s" msgstr "" -#: src/filed/job.c:1250 +#: src/filed/job.c:1251 #, c-format msgid "Failed to connect to Storage daemon: %s:%d\n" msgstr "" -#: src/filed/job.c:1262 +#: src/filed/job.c:1263 msgid "Failed to authenticate Storage daemon.\n" msgstr "" -#: src/filed/job.c:1300 +#: src/filed/job.c:1301 msgid "Cannot contact Storage daemon\n" msgstr "Impossible de se connecter au démon Storage\n" -#: src/filed/job.c:1318 +#: src/filed/job.c:1319 #, c-format msgid "Bad response to append open: %s\n" msgstr "" -#: src/filed/job.c:1323 +#: src/filed/job.c:1324 msgid "Bad response from stored to open command\n" msgstr "" -#: src/filed/job.c:1350 +#: src/filed/job.c:1351 #, c-format msgid "Generate VSS snapshots. Driver=\"%s\", Drive(s)=\"%s\"\n" msgstr "Création des snapshot VSS. Driver=« %s », Lecteur(s)=« %s »\n" -#: src/filed/job.c:1352 +#: src/filed/job.c:1353 msgid "Generate VSS snapshots failed.\n" msgstr "Erreur durant la création des snapshots VSS.\n" -#: src/filed/job.c:1359 +#: src/filed/job.c:1360 #, c-format msgid "" "Generate VSS snapshot of drive \"%c:\\\" failed. VSS support is disabled on " @@ -6584,68 +6584,68 @@ msgstr "" "Erreur lors de la création du snapshot VSS du lecteur « %c:\\\\ ». Le VSS " "est désactivé sur ce lecteur.\n" -#: src/filed/job.c:1366 +#: src/filed/job.c:1367 #, c-format msgid "VSS Writer (PrepareForBackup): %s\n" msgstr "" -#: src/filed/job.c:1371 +#: src/filed/job.c:1372 msgid "No drive letters found for generating VSS snapshots.\n" msgstr "" -#: src/filed/job.c:1375 +#: src/filed/job.c:1376 #, c-format msgid "VSS was not initialized properly. VSS support is disabled. ERR=%s\n" msgstr "" -#: src/filed/job.c:1433 +#: src/filed/job.c:1434 msgid "Append Close with SD failed.\n" msgstr "" -#: src/filed/job.c:1437 +#: src/filed/job.c:1438 #, c-format msgid "Bad status %d returned from Storage Daemon.\n" msgstr "" -#: src/filed/job.c:1455 +#: src/filed/job.c:1456 #, c-format msgid "VSS Writer (BackupComplete): %s\n" msgstr "" -#: src/filed/job.c:1483 +#: src/filed/job.c:1484 #, c-format msgid "2994 Bad verify command: %s\n" msgstr "" -#: src/filed/job.c:1498 src/filed/job.c:1537 +#: src/filed/job.c:1499 src/filed/job.c:1538 #, c-format msgid "2994 Bad verify level: %s\n" msgstr "" -#: src/filed/job.c:1579 +#: src/filed/job.c:1580 #, c-format msgid "Bad replace command. CMD=%s\n" msgstr "" -#: src/filed/job.c:1658 +#: src/filed/job.c:1659 msgid "Improper calling sequence.\n" msgstr "" -#: src/filed/job.c:1678 +#: src/filed/job.c:1679 #, c-format msgid "Bad response to SD read open: %s\n" msgstr "" -#: src/filed/job.c:1683 +#: src/filed/job.c:1684 msgid "Bad response from stored to read open command\n" msgstr "" -#: src/filed/job.c:1747 +#: src/filed/job.c:1748 #, c-format msgid "Comm error with SD. bad response to %s. ERR=%s\n" msgstr "" -#: src/filed/job.c:1750 +#: src/filed/job.c:1751 #, c-format msgid "Bad response to %s command. Wanted %s, got %s\n" msgstr "" @@ -6916,7 +6916,7 @@ msgstr "" msgid " %s%s Job started: %s\n" msgstr "" -#: src/filed/status.c:169 src/stored/status.c:398 +#: src/filed/status.c:169 src/stored/status.c:401 #, c-format msgid " Files=%s Bytes=%s Bytes/sec=%s\n" msgstr "" @@ -6935,8 +6935,8 @@ msgstr "" msgid " SDSocket closed.\n" msgstr "" -#: src/filed/status.c:326 src/filed/status.c:350 src/stored/status.c:610 -#: src/stored/status.c:633 +#: src/filed/status.c:326 src/filed/status.c:350 src/stored/status.c:613 +#: src/stored/status.c:636 #, c-format msgid "Bad .status command: %s\n" msgstr "" @@ -6949,23 +6949,23 @@ msgstr "" msgid "2900 Bad .status command, wrong argument.\n" msgstr "" -#: src/filed/status.c:388 src/stored/status.c:551 +#: src/filed/status.c:388 src/stored/status.c:554 msgid "Init Catalog" msgstr "" -#: src/filed/status.c:391 src/stored/status.c:554 +#: src/filed/status.c:391 src/stored/status.c:557 msgid "Volume to Catalog" msgstr "" -#: src/filed/status.c:394 src/stored/status.c:557 +#: src/filed/status.c:394 src/stored/status.c:560 msgid "Disk to Catalog" msgstr "" -#: src/filed/status.c:397 src/stored/status.c:560 +#: src/filed/status.c:397 src/stored/status.c:563 msgid "Data" msgstr "" -#: src/filed/status.c:403 src/lib/util.c:361 src/stored/status.c:566 +#: src/filed/status.c:403 src/lib/util.c:361 src/stored/status.c:569 msgid "Unknown Job Level" msgstr "" @@ -13906,16 +13906,21 @@ msgstr "" "Ecriture : %s %s job %s JobId=%d Volume=« %s »\n" " pool=« %s » device=« %s »\n" -#: src/stored/status.c:406 +#: src/stored/status.c:392 +#, c-format +msgid " spooling=%d despooling=%d despool_wait=%d\n" +msgstr "" + +#: src/stored/status.c:409 #, c-format msgid " FDReadSeqNo=%s in_msg=%u out_msg=%d fd=%d\n" msgstr "" -#: src/stored/status.c:412 +#: src/stored/status.c:415 msgid " FDSocket closed\n" msgstr "" -#: src/stored/status.c:434 +#: src/stored/status.c:437 msgid "" "\n" "Jobs waiting to reserve a drive:\n" @@ -13923,35 +13928,35 @@ msgstr "" "\n" "Jobs en attente de réservation de lecteur :\n" -#: src/stored/status.c:465 +#: src/stored/status.c:468 msgid "===================================================================\n" msgstr "===================================================================\n" -#: src/stored/status.c:611 +#: src/stored/status.c:614 msgid "3900 Bad .status command, missing argument.\n" msgstr "" -#: src/stored/status.c:634 +#: src/stored/status.c:637 msgid "3900 Bad .status command, wrong argument.\n" msgstr "" -#: src/stored/status.c:648 +#: src/stored/status.c:651 msgid "Bacula Storage: Idle" msgstr "Bacula Storage : En attente" -#: src/stored/status.c:659 +#: src/stored/status.c:662 msgid "Bacula Storage: Running" msgstr "Bacula Storage : En cours" -#: src/stored/status.c:673 +#: src/stored/status.c:676 msgid "Bacula Storage: Last Job Canceled" msgstr "Bacula Storage : Dernier Job annulé" -#: src/stored/status.c:677 +#: src/stored/status.c:680 msgid "Bacula Storage: Last Job Failed" msgstr "Bacula Storage : Dernier Job en erreur" -#: src/stored/status.c:681 +#: src/stored/status.c:684 msgid "Bacula Storage: Last Job had Warnings" msgstr "Bacula Storage : Le dernier Job avait des erreurs" diff --git a/bacula/po/it.gmo b/bacula/po/it.gmo new file mode 100644 index 0000000000000000000000000000000000000000..26a83acd4ad43df9d5a286b0817fb5603d6a9d21 GIT binary patch literal 470 zcmaiw!A=4(5Qa5++M{O=HSwU)S-TLzvVbulCL|IF67Rz@EH$Owv|XYP;>~CCS)9d0 zj{fPNw&~aY)A>F-{XAkFv(MR=>=X7ayH?8n;=>NlHS?#Lvu~6K7_Z=!oLAOlVt{$2 zQ6zCQjpkHZ7hvKGwSqxacv#p>EcXPgXh-@%D<6F9ZRK)WTUStQC`7aA0)~z-@RRU} zfilsMvJEnUq#=@a)|59gk&;1}(@xdV2d)J&)MhSmf!9R5-AF9N-X zyHcYvU6F6lc?$jU%M{YI)q&&y*Ojix!N}xxrA(2Dbg8&6x^k%D$-1r2gemu1-*0rq Q@3Mbo#6@2u*WKvo2c\n" "Language-Team: Italian \n" @@ -134,8 +134,8 @@ msgid "" msgstr "" #: src/cats/sql.c:235 src/cats/sql.c:242 src/cats/sql_create.c:792 -#: src/cats/sql_get.c:186 src/cats/sql_get.c:237 src/cats/sql_get.c:592 -#: src/cats/sql_get.c:667 src/cats/sql_get.c:898 +#: src/cats/sql_get.c:186 src/cats/sql_get.c:237 src/cats/sql_get.c:595 +#: src/cats/sql_get.c:670 src/cats/sql_get.c:901 #, c-format msgid "error fetching row: %s\n" msgstr "" @@ -416,104 +416,104 @@ msgstr "" msgid "No Job found for JobId %s\n" msgstr "" -#: src/cats/sql_get.c:352 src/cats/sql_get.c:408 +#: src/cats/sql_get.c:355 src/cats/sql_get.c:411 #, c-format msgid "No volumes found for JobId=%d\n" msgstr "" -#: src/cats/sql_get.c:358 src/cats/sql_get.c:421 +#: src/cats/sql_get.c:361 src/cats/sql_get.c:424 #, c-format msgid "Error fetching row %d: ERR=%s\n" msgstr "" -#: src/cats/sql_get.c:372 +#: src/cats/sql_get.c:375 #, c-format msgid "No Volume for JobId %d found in Catalog.\n" msgstr "" -#: src/cats/sql_get.c:508 +#: src/cats/sql_get.c:511 #, c-format msgid "Pool id select failed: ERR=%s\n" msgstr "" -#: src/cats/sql_get.c:545 +#: src/cats/sql_get.c:548 #, c-format msgid "Client id select failed: ERR=%s\n" msgstr "" -#: src/cats/sql_get.c:587 +#: src/cats/sql_get.c:590 #, c-format msgid "More than one Pool!: %s\n" msgstr "" -#: src/cats/sql_get.c:628 +#: src/cats/sql_get.c:631 msgid "Pool record not found in Catalog.\n" msgstr "" -#: src/cats/sql_get.c:662 +#: src/cats/sql_get.c:665 #, c-format msgid "More than one Client!: %s\n" msgstr "" -#: src/cats/sql_get.c:679 src/cats/sql_get.c:683 +#: src/cats/sql_get.c:682 src/cats/sql_get.c:686 msgid "Client record not found in Catalog.\n" msgstr "" -#: src/cats/sql_get.c:708 +#: src/cats/sql_get.c:711 #, c-format msgid "More than one Counter!: %d\n" msgstr "" -#: src/cats/sql_get.c:713 +#: src/cats/sql_get.c:716 #, c-format msgid "error fetching Counter row: %s\n" msgstr "" -#: src/cats/sql_get.c:733 +#: src/cats/sql_get.c:736 #, c-format msgid "Counter record: %s not found in Catalog.\n" msgstr "" -#: src/cats/sql_get.c:769 +#: src/cats/sql_get.c:772 #, c-format msgid "Error got %s FileSets but expected only one!\n" msgstr "" -#: src/cats/sql_get.c:774 +#: src/cats/sql_get.c:777 #, c-format msgid "FileSet record \"%s\" not found.\n" msgstr "" -#: src/cats/sql_get.c:784 +#: src/cats/sql_get.c:787 msgid "FileSet record not found in Catalog.\n" msgstr "" -#: src/cats/sql_get.c:841 +#: src/cats/sql_get.c:844 #, c-format msgid "Media id select failed: ERR=%s\n" msgstr "" -#: src/cats/sql_get.c:893 +#: src/cats/sql_get.c:896 #, c-format msgid "More than one Volume!: %s\n" msgstr "" -#: src/cats/sql_get.c:946 +#: src/cats/sql_get.c:949 #, c-format msgid "Media record MediaId=%s not found.\n" msgstr "" -#: src/cats/sql_get.c:949 +#: src/cats/sql_get.c:952 #, c-format msgid "Media record for Volume \"%s\" not found.\n" msgstr "" -#: src/cats/sql_get.c:956 +#: src/cats/sql_get.c:959 #, c-format msgid "Media record for MediaId=%u not found in Catalog.\n" msgstr "" -#: src/cats/sql_get.c:959 +#: src/cats/sql_get.c:962 #, c-format msgid "Media record for Vol=%s not found in Catalog.\n" msgstr "" @@ -744,7 +744,7 @@ msgid "" "\n" msgstr "" -#: src/dird/backup.c:87 src/dird/job.c:937 src/dird/job.c:976 +#: src/dird/backup.c:87 src/dird/job.c:940 src/dird/job.c:986 #: src/dird/migrate.c:229 src/dird/migrate.c:230 msgid "Pool resource" msgstr "" @@ -1649,7 +1649,7 @@ msgstr "" msgid "Cannot open included file: %s. ERR=%s\n" msgstr "" -#: src/dird/fd_cmds.c:468 src/filed/job.c:1771 +#: src/dird/fd_cmds.c:468 src/filed/job.c:1772 #, c-format msgid "Could not open bootstrap file %s: ERR=%s\n" msgstr "" @@ -1767,7 +1767,7 @@ msgstr "" msgid "Could not open database \"%s\".\n" msgstr "" -#: src/dird/job.c:145 src/dird/job.c:151 src/dird/job.c:969 +#: src/dird/job.c:145 src/dird/job.c:151 src/dird/job.c:966 src/dird/job.c:978 #: src/dird/ua_cmds.c:690 src/dird/ua_cmds.c:1340 src/dird/ua_status.c:293 msgid "unknown source" msgstr "" @@ -1790,99 +1790,99 @@ msgstr "" msgid "Failed to connect to File daemon.\n" msgstr "" -#: src/dird/job.c:394 src/dird/job.c:396 src/dird/job.c:940 src/dird/job.c:974 -#: src/dird/job.c:983 +#: src/dird/job.c:394 src/dird/job.c:396 src/dird/job.c:943 src/dird/job.c:984 +#: src/dird/job.c:993 msgid "Job resource" msgstr "" -#: src/dird/job.c:411 src/dird/ua_cmds.c:696 src/dird/ua_cmds.c:1354 +#: src/dird/job.c:409 src/dird/ua_cmds.c:696 src/dird/ua_cmds.c:1354 #: src/dird/ua_label.c:753 msgid "Failed to connect to Storage daemon.\n" msgstr "" -#: src/dird/job.c:456 +#: src/dird/job.c:454 msgid "Max wait time exceeded. Job canceled.\n" msgstr "" -#: src/dird/job.c:461 +#: src/dird/job.c:459 msgid "Max run time exceeded. Job canceled.\n" msgstr "" -#: src/dird/job.c:555 src/dird/job.c:604 +#: src/dird/job.c:553 src/dird/job.c:602 #, c-format msgid "Unhandled job status code %d\n" msgstr "" -#: src/dird/job.c:630 src/dird/ua_output.c:630 +#: src/dird/job.c:628 src/dird/ua_output.c:630 #, c-format msgid "Pool %s not in database. %s" msgstr "" -#: src/dird/job.c:634 src/dird/ua_output.c:638 +#: src/dird/job.c:632 src/dird/ua_output.c:638 #, c-format msgid "Pool %s created in database.\n" msgstr "" -#: src/dird/job.c:643 src/dird/job.c:927 +#: src/dird/job.c:641 src/dird/job.c:930 msgid "Run pool override" msgstr "" -#: src/dird/job.c:653 +#: src/dird/job.c:651 msgid "Run FullPool override" msgstr "" -#: src/dird/job.c:655 +#: src/dird/job.c:653 msgid "Job FullPool override" msgstr "" -#: src/dird/job.c:663 +#: src/dird/job.c:661 msgid "Run IncPool override" msgstr "" -#: src/dird/job.c:665 +#: src/dird/job.c:663 msgid "Job IncPool override" msgstr "" -#: src/dird/job.c:673 +#: src/dird/job.c:671 msgid "Run DiffPool override" msgstr "" -#: src/dird/job.c:675 +#: src/dird/job.c:673 msgid "Job DiffPool override" msgstr "" -#: src/dird/job.c:700 src/stored/bscan.c:962 +#: src/dird/job.c:698 src/stored/bscan.c:962 #, c-format msgid "Could not create Client record. ERR=%s\n" msgstr "" -#: src/dird/job.c:736 +#: src/dird/job.c:734 msgid "FileSet MD5 digest not found.\n" msgstr "" -#: src/dird/job.c:741 +#: src/dird/job.c:739 #, c-format msgid "Could not create FileSet \"%s\" record. ERR=%s\n" msgstr "" -#: src/dird/job.c:781 +#: src/dird/job.c:779 #, c-format msgid "Error updating job record. %s" msgstr "" -#: src/dird/job.c:932 +#: src/dird/job.c:935 msgid "Run storage override" msgstr "" -#: src/dird/job.c:1045 src/dird/ua_run.c:389 +#: src/dird/job.c:1055 src/dird/ua_run.c:389 msgid "No storage specified.\n" msgstr "" -#: src/dird/job.c:1206 +#: src/dird/job.c:1216 msgid "Could not start clone job.\n" msgstr "" -#: src/dird/job.c:1208 +#: src/dird/job.c:1218 #, c-format msgid "Clone JobId %d started.\n" msgstr "" @@ -2179,7 +2179,7 @@ msgstr "" msgid "Storage from Pool's NextPool resource" msgstr "" -#: src/dird/msgchan.c:99 src/filed/job.c:1247 +#: src/dird/msgchan.c:99 src/filed/job.c:1248 #: src/tray-monitor/tray-monitor.c:888 msgid "Storage daemon" msgstr "" @@ -2790,7 +2790,7 @@ msgstr "" msgid "Warning Job %s is not running. Continuing anyway ...\n" msgstr "" -#: src/dird/ua_cmds.c:441 src/filed/status.c:197 src/stored/status.c:421 +#: src/dird/ua_cmds.c:441 src/filed/status.c:197 src/stored/status.c:424 msgid "No Jobs running.\n" msgstr "" @@ -3619,7 +3619,7 @@ msgid "Enter a list of directories to restore for found JobIds" msgstr "" #: src/dird/ua_restore.c:329 src/dird/ua_status.c:732 src/filed/status.c:254 -#: src/stored/status.c:495 src/wx-console/wxbconfigpanel.cpp:212 +#: src/stored/status.c:498 src/wx-console/wxbconfigpanel.cpp:212 msgid "Cancel" msgstr "" @@ -4163,27 +4163,27 @@ msgid "Levels:\n" msgstr "" #: src/dird/ua_run.c:782 src/filed/status.c:371 src/lib/util.c:329 -#: src/stored/status.c:534 +#: src/stored/status.c:537 msgid "Base" msgstr "" #: src/dird/ua_run.c:783 src/filed/status.c:373 src/lib/util.c:331 -#: src/stored/status.c:536 +#: src/stored/status.c:539 msgid "Full" msgstr "" #: src/dird/ua_run.c:784 src/filed/status.c:376 src/lib/util.c:334 -#: src/stored/status.c:539 +#: src/stored/status.c:542 msgid "Incremental" msgstr "" #: src/dird/ua_run.c:785 src/filed/status.c:379 src/lib/util.c:337 -#: src/stored/status.c:542 +#: src/stored/status.c:545 msgid "Differential" msgstr "" #: src/dird/ua_run.c:786 src/filed/status.c:382 src/lib/util.c:340 -#: src/stored/status.c:545 +#: src/stored/status.c:548 msgid "Since" msgstr "" @@ -4196,7 +4196,7 @@ msgid "Initialize Catalog" msgstr "" #: src/dird/ua_run.c:809 src/filed/status.c:385 src/lib/util.c:343 -#: src/stored/status.c:548 +#: src/stored/status.c:551 msgid "Verify Catalog" msgstr "" @@ -4761,13 +4761,13 @@ msgstr "" msgid "No Terminated Jobs.\n" msgstr "" -#: src/dird/ua_status.c:689 src/filed/status.c:214 src/stored/status.c:456 +#: src/dird/ua_status.c:689 src/filed/status.c:214 src/stored/status.c:459 msgid "" "\n" "Terminated Jobs:\n" msgstr "" -#: src/dird/ua_status.c:690 src/filed/status.c:222 src/stored/status.c:463 +#: src/dird/ua_status.c:690 src/filed/status.c:222 src/stored/status.c:466 msgid " JobId Level Files Bytes Status Finished Name \n" msgstr "" @@ -4776,30 +4776,30 @@ msgid "====================================================================\n" msgstr "" #: src/dird/ua_status.c:722 src/filed/status.c:244 src/lib/util.c:179 -#: src/stored/status.c:485 +#: src/stored/status.c:488 msgid "Created" msgstr "" #: src/dird/ua_status.c:726 src/filed/status.c:248 src/lib/util.c:192 -#: src/lib/util.c:259 src/stored/status.c:489 +#: src/lib/util.c:259 src/stored/status.c:492 msgid "Error" msgstr "" -#: src/dird/ua_status.c:729 src/filed/status.c:251 src/stored/status.c:492 +#: src/dird/ua_status.c:729 src/filed/status.c:251 src/stored/status.c:495 msgid "Diffs" msgstr "" #: src/dird/ua_status.c:735 src/filed/status.c:257 src/lib/util.c:188 -#: src/lib/util.c:255 src/stored/btape.c:1187 src/stored/status.c:498 +#: src/lib/util.c:255 src/stored/btape.c:1187 src/stored/status.c:501 #: src/wx-console/wxbconfigpanel.cpp:201 msgid "OK" msgstr "" -#: src/dird/ua_status.c:738 src/filed/status.c:260 src/stored/status.c:501 +#: src/dird/ua_status.c:738 src/filed/status.c:260 src/stored/status.c:504 msgid "Other" msgstr "" -#: src/dird/ua_status.c:741 src/filed/status.c:271 src/stored/status.c:512 +#: src/dird/ua_status.c:741 src/filed/status.c:271 src/stored/status.c:515 #, c-format msgid "%6d %-6s %8s %10s %-7s %-8s %s\n" msgstr "" @@ -6149,151 +6149,151 @@ msgstr "" msgid "Cannot open FileSet input file: %s. ERR=%s\n" msgstr "" -#: src/filed/job.c:731 +#: src/filed/job.c:733 #, c-format msgid "REGEX %s compile error. ERR=%s\n" msgstr "" -#: src/filed/job.c:793 +#: src/filed/job.c:795 #, c-format msgid "Invalid FileSet command: %s\n" msgstr "" -#: src/filed/job.c:1008 src/findlib/match.c:199 src/tools/testfind.c:635 +#: src/filed/job.c:1009 src/findlib/match.c:199 src/tools/testfind.c:635 #, c-format msgid "Unknown include/exclude option: %c\n" msgstr "" -#: src/filed/job.c:1077 src/stored/fd_cmds.c:348 +#: src/filed/job.c:1078 src/stored/fd_cmds.c:348 #, c-format msgid "Could not create bootstrap file %s: ERR=%s\n" msgstr "" -#: src/filed/job.c:1179 +#: src/filed/job.c:1180 #, c-format msgid "DIR and FD clocks differ by %d seconds, FD automatically adjusting.\n" msgstr "" -#: src/filed/job.c:1187 +#: src/filed/job.c:1188 #, c-format msgid "Unknown backup level: %s\n" msgstr "" -#: src/filed/job.c:1199 +#: src/filed/job.c:1200 #, c-format msgid "Bad level command: %s\n" msgstr "" -#: src/filed/job.c:1220 +#: src/filed/job.c:1221 #, c-format msgid "Bad session command: %s" msgstr "" -#: src/filed/job.c:1241 +#: src/filed/job.c:1242 #, c-format msgid "Bad storage command: %s" msgstr "" -#: src/filed/job.c:1250 +#: src/filed/job.c:1251 #, c-format msgid "Failed to connect to Storage daemon: %s:%d\n" msgstr "" -#: src/filed/job.c:1262 +#: src/filed/job.c:1263 msgid "Failed to authenticate Storage daemon.\n" msgstr "" -#: src/filed/job.c:1300 +#: src/filed/job.c:1301 msgid "Cannot contact Storage daemon\n" msgstr "" -#: src/filed/job.c:1318 +#: src/filed/job.c:1319 #, c-format msgid "Bad response to append open: %s\n" msgstr "" -#: src/filed/job.c:1323 +#: src/filed/job.c:1324 msgid "Bad response from stored to open command\n" msgstr "" -#: src/filed/job.c:1350 +#: src/filed/job.c:1351 #, c-format msgid "Generate VSS snapshots. Driver=\"%s\", Drive(s)=\"%s\"\n" msgstr "" -#: src/filed/job.c:1352 +#: src/filed/job.c:1353 msgid "Generate VSS snapshots failed.\n" msgstr "" -#: src/filed/job.c:1359 +#: src/filed/job.c:1360 #, c-format msgid "" "Generate VSS snapshot of drive \"%c:\\\" failed. VSS support is disabled on " "this drive.\n" msgstr "" -#: src/filed/job.c:1366 +#: src/filed/job.c:1367 #, c-format msgid "VSS Writer (PrepareForBackup): %s\n" msgstr "" -#: src/filed/job.c:1371 +#: src/filed/job.c:1372 msgid "No drive letters found for generating VSS snapshots.\n" msgstr "" -#: src/filed/job.c:1375 +#: src/filed/job.c:1376 #, c-format msgid "VSS was not initialized properly. VSS support is disabled. ERR=%s\n" msgstr "" -#: src/filed/job.c:1433 +#: src/filed/job.c:1434 msgid "Append Close with SD failed.\n" msgstr "" -#: src/filed/job.c:1437 +#: src/filed/job.c:1438 #, c-format msgid "Bad status %d returned from Storage Daemon.\n" msgstr "" -#: src/filed/job.c:1455 +#: src/filed/job.c:1456 #, c-format msgid "VSS Writer (BackupComplete): %s\n" msgstr "" -#: src/filed/job.c:1483 +#: src/filed/job.c:1484 #, c-format msgid "2994 Bad verify command: %s\n" msgstr "" -#: src/filed/job.c:1498 src/filed/job.c:1537 +#: src/filed/job.c:1499 src/filed/job.c:1538 #, c-format msgid "2994 Bad verify level: %s\n" msgstr "" -#: src/filed/job.c:1579 +#: src/filed/job.c:1580 #, c-format msgid "Bad replace command. CMD=%s\n" msgstr "" -#: src/filed/job.c:1658 +#: src/filed/job.c:1659 msgid "Improper calling sequence.\n" msgstr "" -#: src/filed/job.c:1678 +#: src/filed/job.c:1679 #, c-format msgid "Bad response to SD read open: %s\n" msgstr "" -#: src/filed/job.c:1683 +#: src/filed/job.c:1684 msgid "Bad response from stored to read open command\n" msgstr "" -#: src/filed/job.c:1747 +#: src/filed/job.c:1748 #, c-format msgid "Comm error with SD. bad response to %s. ERR=%s\n" msgstr "" -#: src/filed/job.c:1750 +#: src/filed/job.c:1751 #, c-format msgid "Bad response to %s command. Wanted %s, got %s\n" msgstr "" @@ -6563,7 +6563,7 @@ msgstr "" msgid " %s%s Job started: %s\n" msgstr "" -#: src/filed/status.c:169 src/stored/status.c:398 +#: src/filed/status.c:169 src/stored/status.c:401 #, c-format msgid " Files=%s Bytes=%s Bytes/sec=%s\n" msgstr "" @@ -6582,8 +6582,8 @@ msgstr "" msgid " SDSocket closed.\n" msgstr "" -#: src/filed/status.c:326 src/filed/status.c:350 src/stored/status.c:610 -#: src/stored/status.c:633 +#: src/filed/status.c:326 src/filed/status.c:350 src/stored/status.c:613 +#: src/stored/status.c:636 #, c-format msgid "Bad .status command: %s\n" msgstr "" @@ -6596,23 +6596,23 @@ msgstr "" msgid "2900 Bad .status command, wrong argument.\n" msgstr "" -#: src/filed/status.c:388 src/stored/status.c:551 +#: src/filed/status.c:388 src/stored/status.c:554 msgid "Init Catalog" msgstr "" -#: src/filed/status.c:391 src/stored/status.c:554 +#: src/filed/status.c:391 src/stored/status.c:557 msgid "Volume to Catalog" msgstr "" -#: src/filed/status.c:394 src/stored/status.c:557 +#: src/filed/status.c:394 src/stored/status.c:560 msgid "Disk to Catalog" msgstr "" -#: src/filed/status.c:397 src/stored/status.c:560 +#: src/filed/status.c:397 src/stored/status.c:563 msgid "Data" msgstr "" -#: src/filed/status.c:403 src/lib/util.c:361 src/stored/status.c:566 +#: src/filed/status.c:403 src/lib/util.c:361 src/stored/status.c:569 msgid "Unknown Job Level" msgstr "" @@ -13345,50 +13345,55 @@ msgid "" " pool=\"%s\" device=\"%s\"\n" msgstr "" -#: src/stored/status.c:406 +#: src/stored/status.c:392 +#, c-format +msgid " spooling=%d despooling=%d despool_wait=%d\n" +msgstr "" + +#: src/stored/status.c:409 #, c-format msgid " FDReadSeqNo=%s in_msg=%u out_msg=%d fd=%d\n" msgstr "" -#: src/stored/status.c:412 +#: src/stored/status.c:415 msgid " FDSocket closed\n" msgstr "" -#: src/stored/status.c:434 +#: src/stored/status.c:437 msgid "" "\n" "Jobs waiting to reserve a drive:\n" msgstr "" -#: src/stored/status.c:465 +#: src/stored/status.c:468 msgid "===================================================================\n" msgstr "" -#: src/stored/status.c:611 +#: src/stored/status.c:614 msgid "3900 Bad .status command, missing argument.\n" msgstr "" -#: src/stored/status.c:634 +#: src/stored/status.c:637 msgid "3900 Bad .status command, wrong argument.\n" msgstr "" -#: src/stored/status.c:648 +#: src/stored/status.c:651 msgid "Bacula Storage: Idle" msgstr "" -#: src/stored/status.c:659 +#: src/stored/status.c:662 msgid "Bacula Storage: Running" msgstr "" -#: src/stored/status.c:673 +#: src/stored/status.c:676 msgid "Bacula Storage: Last Job Canceled" msgstr "" -#: src/stored/status.c:677 +#: src/stored/status.c:680 msgid "Bacula Storage: Last Job Failed" msgstr "" -#: src/stored/status.c:681 +#: src/stored/status.c:684 msgid "Bacula Storage: Last Job had Warnings" msgstr "" diff --git a/bacula/projects b/bacula/projects index 05eea2aec9..e9fc208ea5 100644 --- a/bacula/projects +++ b/bacula/projects @@ -4,10 +4,6 @@ Projects: Status updated 26 January 2007 After re-ordering in vote priority -Items Completed: -Item: 18 Quick release of FD-SD connection after backup. -Item: 40 Include JobID in spool file name - Summary: Item: 1 Accurate restoration of renamed/deleted files Item: 2 Implement a Bacula GUI/management tool. @@ -26,7 +22,7 @@ Item: 14 Cause daemons to use a specific IP address to source communications Item: 15 Multiple threads in file daemon for the same job Item: 16 Add Plug-ins to the FileSet Include statements. Item: 17 Restore only file attributes (permissions, ACL, owner, group...) -Item: 18* Quick release of FD-SD connection after backup. +Item: 18 Quick release of FD-SD connection after backup. Item: 19 Implement a Python interface to the Bacula catalog. Item: 20 Archive data Item: 21 Split documentation @@ -48,7 +44,7 @@ Item: 36 An option to operate on all pools with update vol parameters Item: 37 Add an item to the restore option where you can select a pool Item: 38 Include timestamp of job launch in "stat clients" output Item: 39 Message mailing based on backup types -Item: 40* Include JobID in spool file name +Item: 40 Include JobID in spool file name Item 1: Accurate restoration of renamed/deleted files diff --git a/bacula/src/c b/bacula/src/c index 86d1956942..1e7eaf6c5e 100644 --- a/bacula/src/c +++ b/bacula/src/c @@ -1,7 +1,7 @@ /* Bacula® - The Network Backup Solution - Copyright (C) 2000-2007 Free Software Foundation Europe e.V. + Copyright (C) 2000-2006 Free Software Foundation Europe e.V. The main author of Bacula is Kern Sibbald, with contributions from many others, a complete list can be found in the file AUTHORS. diff --git a/bacula/src/cl b/bacula/src/cl index b7bca2315f..eb9aac79dc 100644 --- a/bacula/src/cl +++ b/bacula/src/cl @@ -1,7 +1,7 @@ /* Bacula® - The Network Backup Solution - Copyright (C) 2000-2007 Free Software Foundation Europe e.V. + Copyright (C) 2000-2006 Free Software Foundation Europe e.V. The main author of Bacula is Kern Sibbald, with contributions from many others, a complete list can be found in the file AUTHORS. diff --git a/bacula/src/gnome2-console/test-gnome-console.conf b/bacula/src/gnome2-console/test-gnome-console.conf index b2725a1f9f..fa5f9bcd4e 100644 --- a/bacula/src/gnome2-console/test-gnome-console.conf +++ b/bacula/src/gnome2-console/test-gnome-console.conf @@ -5,6 +5,6 @@ Director { Name = rufus-dir DIRport = 8101 - address = rufus + address = localhost Password = UA_password } diff --git a/bacula/src/lib/smartall.h b/bacula/src/lib/smartall.h index a698593567..3472566fda 100644 --- a/bacula/src/lib/smartall.h +++ b/bacula/src/lib/smartall.h @@ -8,7 +8,7 @@ /* Bacula® - The Network Backup Solution - Copyright (C) 2000-2007 Free Software Foundation Europe e.V. + Copyright (C) 2000-2006 Free Software Foundation Europe e.V. The main author of Bacula is Kern Sibbald, with contributions from many others, a complete list can be found in the file AUTHORS. @@ -121,25 +121,22 @@ void operator delete(void *ptr) } void operator delete[](void *ptr, size_t i) { - (void)i; /* eliminate compiler complaints */ free(ptr); } void operator delete(void *ptr, const char *fname, int line) { - (void)fname; (void)line; /* eliminate compiler complaints */ free(ptr); } void operator delete[](void *ptr, size_t i, const char *fname, int line) { - (void)i; (void)fname; (void)line; /* eliminate compiler complaints */ free(ptr); } private: -void *operator new(size_t s) throw() { (void)s; return 0; } -void *operator new[](size_t s) throw() { (void)s; return 0; } +void *operator new(size_t s) throw() { return 0; } +void *operator new[](size_t s) throw() { return 0; } }; diff --git a/bacula/src/qt-console/.cvsignore b/bacula/src/qt-console/.cvsignore deleted file mode 100644 index ea9a48ab75..0000000000 --- a/bacula/src/qt-console/.cvsignore +++ /dev/null @@ -1,10 +0,0 @@ -ui_main.h -*.o -bat -about-func -brestore.ui -main.qrc -mult-inheritance -print-func -qrc_main.cpp -moc_*.cpp diff --git a/bacula/src/qt-console/Makefile b/bacula/src/qt-console/Makefile deleted file mode 100644 index c42a72180c..0000000000 --- a/bacula/src/qt-console/Makefile +++ /dev/null @@ -1,269 +0,0 @@ -############################################################################# -# Makefile for building: bat -# Generated by qmake (2.01a) (Qt 4.2.1) on: Mon Jan 29 12:01:29 2007 -# Project: bat.pro -# Template: app -# Command: /usr/bin/qmake -unix -o Makefile bat.pro -############################################################################# - -####### Compiler, tools and options - -CC = gcc -CXX = g++ -LEX = flex -YACC = yacc -DEFINES = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -CFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES) -CXXFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES) -LEXFLAGS = -YACCFLAGS = -d -INCPATH = -I/usr/share/qt4/mkspecs/default -I. -I/usr/include/QtCore -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include/QtGui -I/usr/include -I. -Iconsole -I.. -I. -I. -LINK = g++ -LFLAGS = -LIBS = $(SUBLIBS) -L/usr/lib -L../lib -lbac -lssl -lcrypto -lQtGui -L/usr/lib -L/usr/X11R6/lib -lpng -lSM -lICE -lXi -lXrender -lXrandr -lXfixes -lXcursor -lXinerama -lfreetype -lfontconfig -lXext -lX11 -lQtCore -lz -lm -ldl -lpthread -AR = ar cqs -RANLIB = -QMAKE = /usr/bin/qmake -TAR = tar -cf -COMPRESS = gzip -9f -COPY = cp -f -COPY_FILE = $(COPY) -COPY_DIR = $(COPY) -r -INSTALL_FILE = install -m 644 -p -INSTALL_DIR = $(COPY_DIR) -INSTALL_PROGRAM = install -m 755 -p -DEL_FILE = rm -f -SYMLINK = ln -sf -DEL_DIR = rmdir -MOVE = mv -f -CHK_DIR_EXISTS= test -d -MKDIR = mkdir -p - -####### Output directory - -OBJECTS_DIR = ./ - -####### Files - -SOURCES = main.cpp \ - bat_conf.cpp \ - mainwin.cpp \ - console/authenticate.cpp \ - console/console.cpp moc_mainwin.cpp \ - moc_console.cpp \ - qrc_main.cpp -OBJECTS = main.o \ - bat_conf.o \ - mainwin.o \ - authenticate.o \ - console.o \ - moc_mainwin.o \ - moc_console.o \ - qrc_main.o -DIST = /usr/share/qt4/mkspecs/common/unix.conf \ - /usr/share/qt4/mkspecs/common/g++.conf \ - /usr/share/qt4/mkspecs/common/linux.conf \ - /usr/share/qt4/mkspecs/qconfig.pri \ - /usr/share/qt4/mkspecs/features/qt_functions.prf \ - /usr/share/qt4/mkspecs/features/qt_config.prf \ - /usr/share/qt4/mkspecs/features/exclusive_builds.prf \ - /usr/share/qt4/mkspecs/features/default_pre.prf \ - /usr/share/qt4/mkspecs/features/release.prf \ - /usr/share/qt4/mkspecs/features/default_post.prf \ - /usr/share/qt4/mkspecs/features/warn_on.prf \ - /usr/share/qt4/mkspecs/features/qt.prf \ - /usr/share/qt4/mkspecs/features/unix/thread.prf \ - /usr/share/qt4/mkspecs/features/moc.prf \ - /usr/share/qt4/mkspecs/features/resources.prf \ - /usr/share/qt4/mkspecs/features/uic.prf \ - bat.pro -QMAKE_TARGET = bat -DESTDIR = -TARGET = bat - -first: all -####### Implicit rules - -.SUFFIXES: .o .c .cpp .cc .cxx .C - -.cpp.o: - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<" - -.cc.o: - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<" - -.cxx.o: - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<" - -.C.o: - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<" - -.c.o: - $(CC) -c $(CFLAGS) $(INCPATH) -o "$@" "$<" - -####### Build rules - -all: Makefile $(TARGET) - -$(TARGET): ui_main.h $(OBJECTS) - $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) - -Makefile: bat.pro /usr/share/qt4/mkspecs/default/qmake.conf /usr/share/qt4/mkspecs/common/unix.conf \ - /usr/share/qt4/mkspecs/common/g++.conf \ - /usr/share/qt4/mkspecs/common/linux.conf \ - /usr/share/qt4/mkspecs/qconfig.pri \ - /usr/share/qt4/mkspecs/features/qt_functions.prf \ - /usr/share/qt4/mkspecs/features/qt_config.prf \ - /usr/share/qt4/mkspecs/features/exclusive_builds.prf \ - /usr/share/qt4/mkspecs/features/default_pre.prf \ - /usr/share/qt4/mkspecs/features/release.prf \ - /usr/share/qt4/mkspecs/features/default_post.prf \ - /usr/share/qt4/mkspecs/features/warn_on.prf \ - /usr/share/qt4/mkspecs/features/qt.prf \ - /usr/share/qt4/mkspecs/features/unix/thread.prf \ - /usr/share/qt4/mkspecs/features/moc.prf \ - /usr/share/qt4/mkspecs/features/resources.prf \ - /usr/share/qt4/mkspecs/features/uic.prf \ - /usr/lib/libQtGui.prl \ - /usr/lib/libQtCore.prl - $(QMAKE) -unix -o Makefile bat.pro -/usr/share/qt4/mkspecs/common/unix.conf: -/usr/share/qt4/mkspecs/common/g++.conf: -/usr/share/qt4/mkspecs/common/linux.conf: -/usr/share/qt4/mkspecs/qconfig.pri: -/usr/share/qt4/mkspecs/features/qt_functions.prf: -/usr/share/qt4/mkspecs/features/qt_config.prf: -/usr/share/qt4/mkspecs/features/exclusive_builds.prf: -/usr/share/qt4/mkspecs/features/default_pre.prf: -/usr/share/qt4/mkspecs/features/release.prf: -/usr/share/qt4/mkspecs/features/default_post.prf: -/usr/share/qt4/mkspecs/features/warn_on.prf: -/usr/share/qt4/mkspecs/features/qt.prf: -/usr/share/qt4/mkspecs/features/unix/thread.prf: -/usr/share/qt4/mkspecs/features/moc.prf: -/usr/share/qt4/mkspecs/features/resources.prf: -/usr/share/qt4/mkspecs/features/uic.prf: -/usr/lib/libQtGui.prl: -/usr/lib/libQtCore.prl: -qmake: FORCE - @$(QMAKE) -unix -o Makefile bat.pro - -dist: - @$(CHK_DIR_EXISTS) .tmp/bat1.0.0 || $(MKDIR) .tmp/bat1.0.0 - $(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/bat1.0.0/ && $(COPY_FILE) --parents mainwin.h bat.h bat_conf.h console/console.h .tmp/bat1.0.0/ && $(COPY_FILE) --parents main.qrc .tmp/bat1.0.0/ && $(COPY_FILE) --parents main.cpp bat_conf.cpp mainwin.cpp console/authenticate.cpp console/console.cpp .tmp/bat1.0.0/ && $(COPY_FILE) --parents main.ui .tmp/bat1.0.0/ && (cd `dirname .tmp/bat1.0.0` && $(TAR) bat1.0.0.tar bat1.0.0 && $(COMPRESS) bat1.0.0.tar) && $(MOVE) `dirname .tmp/bat1.0.0`/bat1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/bat1.0.0 - - -yaccclean: -lexclean: -clean:compiler_clean - -$(DEL_FILE) $(OBJECTS) - -$(DEL_FILE) *~ core *.core - - -####### Sub-libraries - -distclean: clean - -$(DEL_FILE) $(TARGET) - -$(DEL_FILE) Makefile - - -/usr/bin/moc: - (cd $(QTDIR)/src/tools/moc && $(MAKE)) - -mocclean: compiler_moc_header_clean compiler_moc_source_clean - -mocables: compiler_moc_header_make_all compiler_moc_source_make_all - -compiler_moc_header_make_all: moc_mainwin.cpp moc_console.cpp -compiler_moc_header_clean: - -$(DEL_FILE) moc_mainwin.cpp moc_console.cpp -moc_mainwin.cpp: ui_main.h \ - mainwin.h \ - /usr/bin/moc - /usr/bin/moc $(DEFINES) $(INCPATH) mainwin.h -o moc_mainwin.cpp - -moc_console.cpp: console/console.h \ - /usr/bin/moc - /usr/bin/moc $(DEFINES) $(INCPATH) console/console.h -o moc_console.cpp - -compiler_rcc_make_all: qrc_main.cpp -compiler_rcc_clean: - -$(DEL_FILE) qrc_main.cpp -qrc_main.cpp: main.qrc \ - /usr/bin/rcc \ - images/new.png \ - images/disconnected.png \ - images/label.png \ - images/server.png \ - images/restore.png \ - images/copy.png \ - images/cut.png \ - images/connected.png \ - images/big-server.png \ - images/save.png \ - images/bat.png \ - images/paste.png \ - images/run.png \ - images/open.png - /usr/bin/rcc -name main main.qrc -o qrc_main.cpp - -compiler_image_collection_make_all: qmake_image_collection.cpp -compiler_image_collection_clean: - -$(DEL_FILE) qmake_image_collection.cpp -compiler_moc_source_make_all: -compiler_moc_source_clean: -compiler_uic_make_all: ui_main.h -compiler_uic_clean: - -$(DEL_FILE) ui_main.h -ui_main.h: main.ui - /usr/bin/uic main.ui -o ui_main.h - -compiler_clean: compiler_moc_header_clean compiler_rcc_clean compiler_image_collection_clean compiler_moc_source_clean compiler_uic_clean - -####### Compile - -main.o: main.cpp bat.h \ - mainwin.h \ - ui_main.h \ - bat_conf.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o main.cpp - -bat_conf.o: bat_conf.cpp bat_conf.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o bat_conf.o bat_conf.cpp - -mainwin.o: mainwin.cpp bat.h \ - mainwin.h \ - ui_main.h \ - bat_conf.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o mainwin.o mainwin.cpp - -authenticate.o: console/authenticate.cpp bat.h \ - mainwin.h \ - ui_main.h \ - bat_conf.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o authenticate.o console/authenticate.cpp - -console.o: console/console.cpp bat.h \ - mainwin.h \ - ui_main.h \ - bat_conf.h \ - console/console.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o console.o console/console.cpp - -moc_mainwin.o: moc_mainwin.cpp - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_mainwin.o moc_mainwin.cpp - -moc_console.o: moc_console.cpp - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_console.o moc_console.cpp - -qrc_main.o: qrc_main.cpp - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o qrc_main.o qrc_main.cpp - -####### Install - -install: FORCE - -uninstall: FORCE - -FORCE: - diff --git a/bacula/src/qt-console/README b/bacula/src/qt-console/README deleted file mode 100644 index e6d6d8c242..0000000000 --- a/bacula/src/qt-console/README +++ /dev/null @@ -1,75 +0,0 @@ - -This directory contains the Bacula Admin Tool (bat). - -At the current time, the contents of this directory are under -development. If you want to help, please contact Kern directly. -If you want to build it, you need Qt4 loaded and setup as your -default Qt or with the appropriate Qt Environment variables set. - -To build bat, you simply enter: - - qmake - make - -then to execute it - - ./bat - -The qmake command needs to be entered only if you add a new file, in -which case, you should edit bat.pro and add the new filename -in the appropriate place. In running qmake, it will build a new -Makefile, and there after, you simply use "make". In fact, providing -you edit bat.pro, doing a "make" will automatically call qmake to -rebuild the Makefile. - -Development status as of 29 Jan 07. - -Items implemented: -- Reads a basic bat.conf (same as documented for the gnome-console - except that the Font part is unimplemented). -- Basic main window structure -- About dialog -- Quit menu item -- Connect button (initally shows disconnected) will connect to - the first Director defined in the conf file. -- The Director name will appear in the Selection tree followed - by Console and Restore. -- Clicking on Console brings forward the console display screen - (default at startup). -- Clicking on Restore brings up a dummy two tab "restore" page. -- The command line is implemented. -- The status line (below the command line) is implemented. - -Items not implemented: -- None of the menu items except About, Quit. -- None of the tool bar icons except the connect/disconnect. -- Nothing on the restore page - -Design/implementation considerations: -- We need to have multiple Directors -- Each Director should have its own console -- The Console class needs to be a list or be attached to the - currently active Director. -- Need icons in front of the Director. -- Need indication if a director is connected or not. -- The console page should be in a DockWidget so it can be removed - from the main window. -- Need to figure out a good implementation of adding pages and even - having plugins that load as pages. Currently the page mechanism - is a bit kludged. -- Each page should in principle be a separate designer .ui file - Currently the two pages console, restore are part of main.ui, - but they should be pulled out into their own .ui files. - -Design decisions: -- If possible all windows will be created with designer and have - a name such as xxxForm i.e. the main window is MainForm and kept - in main.ui. -- If possible all code for a particular component will be kept in - and appropriate subdirectory. -- All private class variables are named "m_xxx" this makes it very - clear if one is referencing a class variable or a local. -- All signal/slots are connected by explict code (most all are - done in the MainWin constructor), rather than using designer. - - diff --git a/bacula/src/qt-console/bat.conf b/bacula/src/qt-console/bat.conf deleted file mode 100644 index fa5f9bcd4e..0000000000 --- a/bacula/src/qt-console/bat.conf +++ /dev/null @@ -1,10 +0,0 @@ -# -# Bacula User Agent (or Console) Configuration File -# - -Director { - Name = rufus-dir - DIRport = 8101 - address = localhost - Password = UA_password -} diff --git a/bacula/src/qt-console/bat.h b/bacula/src/qt-console/bat.h deleted file mode 100644 index 5168e0a035..0000000000 --- a/bacula/src/qt-console/bat.h +++ /dev/null @@ -1,20 +0,0 @@ - -#ifndef _BAT_H_ -#define _BAT_H_ - -#include "mainwin.h" -#include "config.h" -#include "bacula.h" -#include "bat_conf.h" -#include "jcr.h" -#include "console.h" - -extern MainWin *mainWin; -extern QApplication *app; - -void set_textf(const char *fmt, ...); -void set_text(const char *buf); - -int bvsnprintf(char *str, int32_t size, const char *format, va_list ap); - -#endif /* _BAT_H_ */ diff --git a/bacula/src/qt-console/bat.pro b/bacula/src/qt-console/bat.pro deleted file mode 100644 index 8cc59c89f3..0000000000 --- a/bacula/src/qt-console/bat.pro +++ /dev/null @@ -1,22 +0,0 @@ -###################################################################### -# Automatically generated by qmake (2.01a) Thu Jan 18 09:40:56 2007 -###################################################################### - -TEMPLATE = app -TARGET = bat -DEPENDPATH += . -INCLUDEPATH += . ./console -INCLUDEPATH += .. -LIBS += -L../lib -LIBS += -lbac -LIBS += -lssl -lcrypto -RESOURCES = main.qrc - -# Main directory -FORMS += main.ui -HEADERS += mainwin.h bat.h bat_conf.h -SOURCES += main.cpp bat_conf.cpp mainwin.cpp - -# Console -HEADERS += console/console.h -SOURCES += console/authenticate.cpp console/console.cpp diff --git a/bacula/src/qt-console/bat_conf.cpp b/bacula/src/qt-console/bat_conf.cpp deleted file mode 100644 index c7537b7863..0000000000 --- a/bacula/src/qt-console/bat_conf.cpp +++ /dev/null @@ -1,337 +0,0 @@ -/* - * Main configuration file parser for Bacula User Agent - * some parts may be split into separate files such as - * the schedule configuration (sch_config.c). - * - * Note, the configuration file parser consists of three parts - * - * 1. The generic lexical scanner in lib/lex.c and lib/lex.h - * - * 2. The generic config scanner in lib/parse_config.c and - * lib/parse_config.h. - * These files contain the parser code, some utility - * routines, and the common store routines (name, int, - * string). - * - * 3. The daemon specific file, which contains the Resource - * definitions as well as any specific store routines - * for the resource records. - * - * Kern Sibbald, January MM, September MM - * - * Version $Id$ - */ -/* - Bacula® - The Network Backup Solution - - Copyright (C) 2000-2007 Free Software Foundation Europe e.V. - - The main author of Bacula is Kern Sibbald, with contributions from - many others, a complete list can be found in the file AUTHORS. - This program is Free Software; you can redistribute it and/or - modify it under the terms of version two of the GNU General Public - License as published by the Free Software Foundation plus additions - that are listed in the file LICENSE. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301, USA. - - Bacula® is a registered trademark of John Walker. - The licensor of Bacula is the Free Software Foundation Europe - (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich, - Switzerland, email:ftf@fsfeurope.org. -*/ - -#include "bacula.h" -#include "bat_conf.h" - -/* Define the first and last resource ID record - * types. Note, these should be unique for each - * daemon though not a requirement. - */ -int r_first = R_FIRST; -int r_last = R_LAST; -static RES *sres_head[R_LAST - R_FIRST + 1]; -RES **res_head = sres_head; - -/* Forward referenced subroutines */ - - -/* We build the current resource here as we are - * scanning the resource configuration definition, - * then move it to allocated memory when the resource - * scan is complete. - */ -URES res_all; -int res_all_size = sizeof(res_all); - -/* Definition of records permitted within each - * resource with the routine to process the record - * information. - */ -static RES_ITEM dir_items[] = { - {"name", store_name, ITEM(dir_res.hdr.name), 0, ITEM_REQUIRED, 0}, - {"description", store_str, ITEM(dir_res.hdr.desc), 0, 0, 0}, - {"dirport", store_int, ITEM(dir_res.DIRport), 0, ITEM_DEFAULT, 9101}, - {"address", store_str, ITEM(dir_res.address), 0, ITEM_REQUIRED, 0}, - {"password", store_password, ITEM(dir_res.password), 0, 0, 0}, - {"tlsenable", store_bit, ITEM(dir_res.tls_enable), 1, 0, 0}, - {"tlsrequire", store_bit, ITEM(dir_res.tls_require), 1, 0, 0}, - {"tlscacertificatefile", store_dir, ITEM(dir_res.tls_ca_certfile), 0, 0, 0}, - {"tlscacertificatedir", store_dir, ITEM(dir_res.tls_ca_certdir), 0, 0, 0}, - {"tlscertificate", store_dir, ITEM(dir_res.tls_certfile), 0, 0, 0}, - {"tlskey", store_dir, ITEM(dir_res.tls_keyfile), 0, 0, 0}, - {NULL, NULL, {0}, 0, 0, 0} -}; - -static RES_ITEM con_items[] = { - {"name", store_name, ITEM(con_res.hdr.name), 0, ITEM_REQUIRED, 0}, - {"description", store_str, ITEM(con_res.hdr.desc), 0, 0, 0}, - {"password", store_password, ITEM(con_res.password), 0, ITEM_REQUIRED, 0}, - {"tlsenable", store_bit, ITEM(con_res.tls_enable), 1, 0, 0}, - {"tlsrequire", store_bit, ITEM(con_res.tls_require), 1, 0, 0}, - {"tlscacertificatefile", store_dir, ITEM(con_res.tls_ca_certfile), 0, 0, 0}, - {"tlscacertificatedir", store_dir, ITEM(con_res.tls_ca_certdir), 0, 0, 0}, - {"tlscertificate", store_dir, ITEM(con_res.tls_certfile), 0, 0, 0}, - {"tlskey", store_dir, ITEM(con_res.tls_keyfile), 0, 0, 0}, - {NULL, NULL, {0}, 0, 0, 0} -}; - -static RES_ITEM con_font_items[] = { - {"name", store_name, ITEM(con_font.hdr.name), 0, ITEM_REQUIRED, 0}, - {"description", store_str, ITEM(con_font.hdr.desc), 0, 0, 0}, - {"font", store_str, ITEM(con_font.fontface), 0, 0, 0}, - {"requiressl", store_bit, ITEM(con_font.require_ssl), 1, ITEM_DEFAULT, 0}, - {NULL, NULL, {0}, 0, 0, 0} -}; - - -/* - * This is the master resource definition. - * It must have one item for each of the resources. - */ -RES_TABLE resources[] = { - {"director", dir_items, R_DIRECTOR}, - {"console", con_items, R_CONSOLE}, - {"consolefont", con_font_items, R_CONSOLE_FONT}, - {NULL, NULL, 0} -}; - - -/* Dump contents of resource */ -void dump_resource(int type, RES *reshdr, void sendit(void *sock, const char *fmt, ...), void *sock) -{ - URES *res = (URES *)reshdr; - bool recurse = true; - - if (res == NULL) { - printf(_("No record for %d %s\n"), type, res_to_str(type)); - return; - } - if (type < 0) { /* no recursion */ - type = - type; - recurse = false; - } - switch (type) { - case R_DIRECTOR: - printf(_("Director: name=%s address=%s DIRport=%d\n"), reshdr->name, - res->dir_res.address, res->dir_res.DIRport); - break; - case R_CONSOLE: - printf(_("Console: name=%s\n"), reshdr->name); - break; - case R_CONSOLE_FONT: - printf(_("ConsoleFont: name=%s font face=%s\n"), - reshdr->name, NPRT(res->con_font.fontface)); - break; - default: - printf(_("Unknown resource type %d\n"), type); - } - if (recurse && res->dir_res.hdr.next) { - dump_resource(type, res->dir_res.hdr.next, sendit, sock); - } -} - -/* - * Free memory of resource. - * NB, we don't need to worry about freeing any references - * to other resources as they will be freed when that - * resource chain is traversed. Mainly we worry about freeing - * allocated strings (names). - */ -void free_resource(RES *sres, int type) -{ - RES *nres; - URES *res = (URES *)sres; - - if (res == NULL) - return; - - /* common stuff -- free the resource name */ - nres = (RES *)res->dir_res.hdr.next; - if (res->dir_res.hdr.name) { - free(res->dir_res.hdr.name); - } - if (res->dir_res.hdr.desc) { - free(res->dir_res.hdr.desc); - } - - switch (type) { - case R_DIRECTOR: - if (res->dir_res.address) { - free(res->dir_res.address); - } - if (res->dir_res.tls_ctx) { - free_tls_context(res->dir_res.tls_ctx); - } - if (res->dir_res.tls_ca_certfile) { - free(res->dir_res.tls_ca_certfile); - } - if (res->dir_res.tls_ca_certdir) { - free(res->dir_res.tls_ca_certdir); - } - if (res->dir_res.tls_certfile) { - free(res->dir_res.tls_certfile); - } - if (res->dir_res.tls_keyfile) { - free(res->dir_res.tls_keyfile); - } - break; - case R_CONSOLE: - if (res->con_res.password) { - free(res->con_res.password); - } - if (res->con_res.tls_ctx) { - free_tls_context(res->con_res.tls_ctx); - } - if (res->con_res.tls_ca_certfile) { - free(res->con_res.tls_ca_certfile); - } - if (res->con_res.tls_ca_certdir) { - free(res->con_res.tls_ca_certdir); - } - if (res->con_res.tls_certfile) { - free(res->con_res.tls_certfile); - } - if (res->con_res.tls_keyfile) { - free(res->con_res.tls_keyfile); - } - break; - case R_CONSOLE_FONT: - if (res->con_font.fontface) { - free(res->con_font.fontface); - } - break; - default: - printf(_("Unknown resource type %d\n"), type); - } - /* Common stuff again -- free the resource, recurse to next one */ - free(res); - if (nres) { - free_resource(nres, type); - } -} - -/* Save the new resource by chaining it into the head list for - * the resource. If this is pass 2, we update any resource - * pointers (currently only in the Job resource). - */ -void save_resource(int type, RES_ITEM *items, int pass) -{ - URES *res; - int rindex = type - r_first; - int i, size = 0; - int error = 0; - - /* - * Ensure that all required items are present - */ - for (i=0; items[i].name; i++) { - if (items[i].flags & ITEM_REQUIRED) { - if (!bit_is_set(i, res_all.dir_res.hdr.item_present)) { - Emsg2(M_ABORT, 0, _("%s item is required in %s resource, but not found.\n"), - items[i].name, resources[rindex]); - } - } - } - - /* During pass 2, we looked up pointers to all the resources - * referrenced in the current resource, , now we - * must copy their address from the static record to the allocated - * record. - */ - if (pass == 2) { - switch (type) { - /* Resources not containing a resource */ - case R_DIRECTOR: - break; - - case R_CONSOLE: - case R_CONSOLE_FONT: - break; - - default: - Emsg1(M_ERROR, 0, _("Unknown resource type %d\n"), type); - error = 1; - break; - } - /* Note, the resoure name was already saved during pass 1, - * so here, we can just release it. - */ - if (res_all.dir_res.hdr.name) { - free(res_all.dir_res.hdr.name); - res_all.dir_res.hdr.name = NULL; - } - if (res_all.dir_res.hdr.desc) { - free(res_all.dir_res.hdr.desc); - res_all.dir_res.hdr.desc = NULL; - } - return; - } - - /* The following code is only executed during pass 1 */ - switch (type) { - case R_DIRECTOR: - size = sizeof(DIRRES); - break; - case R_CONSOLE_FONT: - size = sizeof(CONFONTRES); - break; - case R_CONSOLE: - size = sizeof(CONRES); - break; - default: - printf(_("Unknown resource type %d\n"), type); - error = 1; - break; - } - /* Common */ - if (!error) { - res = (URES *)malloc(size); - memcpy(res, &res_all, size); - if (!res_head[rindex]) { - res_head[rindex] = (RES *)res; /* store first entry */ - } else { - RES *next, *last; - /* Add new res to end of chain */ - for (last=next=res_head[rindex]; next; next=next->next) { - last = next; - if (strcmp(next->name, res->dir_res.hdr.name) == 0) { - Emsg2(M_ERROR_TERM, 0, - _("Attempt to define second %s resource named \"%s\" is not permitted.\n"), - resources[rindex].name, res->dir_res.hdr.name); - } - } - last->next = (RES *)res; - Dmsg2(90, "Inserting %s res: %s\n", res_to_str(type), - res->dir_res.hdr.name); - } - } -} diff --git a/bacula/src/qt-console/bat_conf.h b/bacula/src/qt-console/bat_conf.h deleted file mode 100644 index 5a583d465f..0000000000 --- a/bacula/src/qt-console/bat_conf.h +++ /dev/null @@ -1,116 +0,0 @@ -/* - * Bacula Adminstration Tool (bat) - * - * Kern Sibbald, March 2002 - * - * Version $Id$ - */ -/* - Bacula® - The Network Backup Solution - - Copyright (C) 2002-2006 Free Software Foundation Europe e.V. - - The main author of Bacula is Kern Sibbald, with contributions from - many others, a complete list can be found in the file AUTHORS. - This program is Free Software; you can redistribute it and/or - modify it under the terms of version two of the GNU General Public - License as published by the Free Software Foundation plus additions - that are listed in the file LICENSE. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301, USA. - - Bacula® is a registered trademark of John Walker. - The licensor of Bacula is the Free Software Foundation Europe - (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich, - Switzerland, email:ftf@fsfeurope.org. -*/ - -#ifndef _BAT_CONF_H_ -#define _BAT_CONF_H_ - -/* - * Resource codes -- they must be sequential for indexing - */ - -enum { - R_DIRECTOR = 1001, - R_CONSOLE, - R_CONSOLE_FONT, - R_FIRST = R_DIRECTOR, - R_LAST = R_CONSOLE_FONT /* Keep this updated */ -}; - -/* - * Some resource attributes - */ -enum { - R_NAME = 1020, - R_ADDRESS, - R_PASSWORD, - R_TYPE, - R_BACKUP -}; - - -/* Definition of the contents of each Resource */ -struct DIRRES { - RES hdr; - int DIRport; /* UA server port */ - char *address; /* UA server address */ - char *password; /* UA server password */ - int tls_enable; /* Enable TLS */ - int tls_require; /* Require TLS */ - char *tls_ca_certfile; /* TLS CA Certificate File */ - char *tls_ca_certdir; /* TLS CA Certificate Directory */ - char *tls_certfile; /* TLS Client Certificate File */ - char *tls_keyfile; /* TLS Client Key File */ - - TLS_CONTEXT *tls_ctx; /* Shared TLS Context */ - - /* Methods */ - char *name() const; -}; - -inline char *DIRRES::name() const { return hdr.name; } - -struct CONFONTRES { - RES hdr; - char *fontface; /* Console Font specification */ - int require_ssl; /* Require SSL on all connections */ -}; - -struct CONRES { - RES hdr; - char *password; /* UA server password */ - int tls_enable; /* Enable TLS on all connections */ - int tls_require; /* Require TLS on all connections */ - char *tls_ca_certfile; /* TLS CA Certificate File */ - char *tls_ca_certdir; /* TLS CA Certificate Directory */ - char *tls_certfile; /* TLS Client Certificate File */ - char *tls_keyfile; /* TLS Client Key File */ - - TLS_CONTEXT *tls_ctx; /* Shared TLS Context */ -}; - - -/* Define the Union of all the above - * resource structure definitions. - */ -union u_res { - DIRRES dir_res; - CONRES con_res; - CONFONTRES con_font; - RES hdr; -}; - -typedef union u_res URES; - -#endif /* _BAT_CONF_H_ */ diff --git a/bacula/src/qt-console/console/authenticate.cpp b/bacula/src/qt-console/console/authenticate.cpp deleted file mode 100644 index d1ff85be97..0000000000 --- a/bacula/src/qt-console/console/authenticate.cpp +++ /dev/null @@ -1,110 +0,0 @@ -/* - Bacula® - The Network Backup Solution - - Copyright (C) 2001-2007 Free Software Foundation Europe e.V. - - The main author of Bacula is Kern Sibbald, with contributions from - many others, a complete list can be found in the file AUTHORS. - This program is Free Software; you can redistribute it and/or - modify it under the terms of version two of the GNU General Public - License as published by the Free Software Foundation plus additions - that are listed in the file LICENSE. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301, USA. - - Bacula® is a registered trademark of John Walker. - The licensor of Bacula is the Free Software Foundation Europe - (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich, - Switzerland, email:ftf@fsfeurope.org. -*/ - -/* - * - * Bacula UA authentication. Provides authentication with - * the Director. - * - * Kern Sibbald, June MMI adapted to bat, Jan MMVI - * - * Version $Id$ - * - */ - - -#include "bat.h" - - -/* Commands sent to Director */ -static char hello[] = "Hello %s calling\n"; - -/* Response from Director */ -static char OKhello[] = "1000 OK:"; - -/* Forward referenced functions */ - -/* - * Authenticate Director - */ -bool Console::authenticate_director(JCR *jcr, DIRRES *director, CONRES *cons) -{ - BSOCK *dir = jcr->dir_bsock; - int tls_local_need = BNET_TLS_NONE; - int tls_remote_need = BNET_TLS_NONE; - int compatible = true; - char bashed_name[MAX_NAME_LENGTH]; - char *password; - - /* - * Send my name to the Director then do authentication - */ - if (cons) { - bstrncpy(bashed_name, cons->hdr.name, sizeof(bashed_name)); - bash_spaces(bashed_name); - password = cons->password; - } else { - bstrncpy(bashed_name, "*UserAgent*", sizeof(bashed_name)); - password = director->password; - } - /* Timeout Hello after 5 mins */ - btimer_t *tid = start_bsock_timer(dir, 60 * 5); - bnet_fsend(dir, hello, bashed_name); - - /* respond to Dir challenge */ - if (!cram_md5_respond(dir, password, &tls_remote_need, &compatible) || - /* Now challenge dir */ - !cram_md5_challenge(dir, password, tls_local_need, compatible)) { - stop_bsock_timer(tid); - printf(_("%s: Director authorization problem.\n"), my_name); - set_text(_("Director authorization problem.\n")); - set_text(_( - "Please see http://www.bacula.org/rel-manual/faq.html#AuthorizationErrors for help.\n")); - return false; - } - - Dmsg1(6, ">dird: %s", dir->msg); - if (bnet_recv(dir) <= 0) { - stop_bsock_timer(tid); - set_textf(_("Bad response to Hello command: ERR=%s\n"), - bnet_strerror(dir)); - printf(_("%s: Bad response to Hello command: ERR=%s\n"), - my_name, bnet_strerror(dir)); - set_text(_("The Director is probably not running.\n")); - return false; - } - stop_bsock_timer(tid); - Dmsg1(10, "msg); - if (strncmp(dir->msg, OKhello, sizeof(OKhello)-1) != 0) { - set_text(_("Director rejected Hello command\n")); - return false; - } else { - set_text(dir->msg); - } - return true; -} diff --git a/bacula/src/qt-console/console/console.cpp b/bacula/src/qt-console/console/console.cpp deleted file mode 100644 index 9472af502b..0000000000 --- a/bacula/src/qt-console/console/console.cpp +++ /dev/null @@ -1,274 +0,0 @@ -/* - Bacula® - The Network Backup Solution - - Copyright (C) 2000-2007 Free Software Foundation Europe e.V. - - The main author of Bacula is Kern Sibbald, with contributions from - many others, a complete list can be found in the file AUTHORS. - This program is Free Software; you can redistribute it and/or - modify it under the terms of version two of the GNU General Public - License as published by the Free Software Foundation plus additions - that are listed in the file LICENSE. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301, USA. - - Bacula® is a registered trademark of John Walker. - The licensor of Bacula is the Free Software Foundation Europe - (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich, - Switzerland, email:ftf@fsfeurope.org. -*/ - -/* - * Console Class - * - * Kern Sibbald, January MMVI - * - */ - -#include -#include "bat.h" -#include "console.h" - -Console::Console() -{ - QFont font; - QTreeWidgetItem *item, *topItem; - QTreeWidget *treeWidget = mainWin->treeWidget; - - m_sock = NULL; - m_at_prompt = false; - m_textEdit = mainWin->textEdit; /* our console screen */ - m_cursor = new QTextCursor(m_textEdit->document()); - mainWin->actionConnect->setIcon(QIcon(QString::fromUtf8("images/disconnected.png"))); - - /* ***FIXME*** make this configurable */ - font.setFamily("Courier"); - font.setFixedPitch(true); - font.setPointSize(10); - m_textEdit->setFont(font); - - /* Just take the first Director */ - LockRes(); - m_dir = (DIRRES *)GetNextRes(R_DIRECTOR, NULL); - UnlockRes(); - - /* Dummy setup of treeWidget */ - treeWidget->clear(); - treeWidget->setColumnCount(1); - treeWidget->setHeaderLabel("Selection"); - topItem = new QTreeWidgetItem(treeWidget); - topItem->setText(0, m_dir->name()); - topItem->setIcon(0, QIcon(QString::fromUtf8("images/server.png"))); - item = new QTreeWidgetItem(topItem); - m_consoleItem = item; - item->setText(0, "Console"); - item->setText(1, "0"); - QBrush redBrush(Qt::red); - item->setForeground(0, redBrush); - item = new QTreeWidgetItem(topItem); - item->setText(0, "Restore"); - item->setText(1, "1"); - treeWidget->expandItem(topItem); -} - -/* - * Connect to Director. If there are more than one, put up - * a modal dialog so that the user chooses one. - */ -void Console::connect() -{ - JCR jcr; - - m_textEdit = mainWin->textEdit; /* our console screen */ - - if (!m_dir) { - mainWin->set_status("No Director found."); - return; - } - if (m_sock) { - mainWin->set_status("Already connected."); - return; - } - - memset(&jcr, 0, sizeof(jcr)); - - mainWin->set_statusf(_(" Connecting to Director %s:%d"), m_dir->address, m_dir->DIRport); - set_textf(_("Connecting to Director %s:%d\n\n"), m_dir->address, m_dir->DIRport); - - /* Give GUI a chance */ - app->processEvents(); - - LockRes(); - /* If cons==NULL, default console will be used */ - CONRES *cons = (CONRES *)GetNextRes(R_CONSOLE, (RES *)NULL); - UnlockRes(); - - m_sock = bnet_connect(NULL, 5, 15, _("Director daemon"), m_dir->address, - NULL, m_dir->DIRport, 0); - if (m_sock == NULL) { - mainWin->set_status("Connection failed"); - return; - } else { - mainWin->actionConnect->setIcon(QIcon(QString::fromUtf8("images/connected.png"))); - QBrush greenBrush(Qt::green); - m_consoleItem->setForeground(0, greenBrush); - } - - - jcr.dir_bsock = m_sock; - - if (!authenticate_director(&jcr, m_dir, cons)) { - set_text(m_sock->msg); - return; - } - - /* Give GUI a chance */ - app->processEvents(); - - mainWin->set_status(_(" Initializing ...")); - - bnet_fsend(m_sock, "autodisplay on"); - - /* Set up input notifier */ - m_notifier = new QSocketNotifier(m_sock->fd, QSocketNotifier::Read, 0); - QObject::connect(m_notifier, SIGNAL(activated(int)), this, SLOT(read_dir(int))); - - /* Give GUI a chance */ - app->processEvents(); - - /* *** FIXME *** - * Query Directory for .jobs, .clients, .filesets, .msgs, - * .pools, .storage, .types, .levels, ... - */ - - mainWin->set_status(_(" Connected")); - return; -} -#ifdef xxx - QByteArray bytes = m_Bash->readAllStandardOutput(); - QStringList lines = QString(bytes).split("\n"); - foreach (QString line, lines) { - m_Logw->append(line); - } -#endif - -void Console::set_textf(const char *fmt, ...) -{ - va_list arg_ptr; - char buf[1000]; - int len; - va_start(arg_ptr, fmt); - len = bvsnprintf(buf, sizeof(buf), fmt, arg_ptr); - va_end(arg_ptr); - set_text(buf); -} - -void Console::set_text(const QString buf) -{ - m_cursor->movePosition(QTextCursor::End); - m_cursor->insertText(buf); - m_textEdit->moveCursor(QTextCursor::End); - m_textEdit->ensureCursorVisible(); -} - - -void Console::set_text(const char *buf) -{ - m_cursor->movePosition(QTextCursor::End); - m_cursor->insertText(buf); - m_textEdit->moveCursor(QTextCursor::End); - m_textEdit->ensureCursorVisible(); -} - - -void Console::write_dir(const char *msg) -{ - if (m_sock) { - m_at_prompt = false; - mainWin->set_status(_(" Processing command ...")); - QApplication::setOverrideCursor(Qt::WaitCursor); - m_sock->msglen = strlen(msg); - pm_strcpy(&m_sock->msg, msg); - bnet_send(m_sock); - } else { - mainWin->set_status(" Director not connected. Click on connect button."); - mainWin->actionConnect->setIcon(QIcon(QString::fromUtf8("images/disconnected.png"))); - QBrush redBrush(Qt::red); - m_consoleItem->setForeground(0, redBrush); - } -} - -void Console::read_dir(int fd) -{ - int stat; - (void)fd; - - if (!m_sock) { - return; - } - stat = bnet_recv(m_sock); - if (stat >= 0) { - if (m_at_prompt) { - set_text("\n"); - m_at_prompt = false; - } - set_text(m_sock->msg); - return; - } - if (is_bnet_stop(m_sock)) { /* error or term request */ - bnet_close(m_sock); - m_sock = NULL; - mainWin->actionConnect->setIcon(QIcon(QString::fromUtf8("images/disconnected.png"))); - QBrush redBrush(Qt::red); - m_consoleItem->setForeground(0, redBrush); - m_notifier->setEnabled(false); - delete m_notifier; - m_notifier = NULL; - mainWin->set_status(_(" Director disconnected.")); - QApplication::restoreOverrideCursor(); - return; - } - /* Must be a signal -- either do something or ignore it */ - if (m_sock->msglen == BNET_PROMPT) { - m_at_prompt = true; - mainWin->set_status(_(" At prompt waiting for input ...")); - QApplication::restoreOverrideCursor(); - } - if (m_sock->msglen == BNET_EOD) { - mainWin->set_status_ready(); - QApplication::restoreOverrideCursor(); - } - return; -} - -#ifdef xxx - -static gint tag; - -void start_director_reader(gpointer data) -{ - - if (director_reader_running || !UA_sock) { - return; - } - tag = gdk_input_add(UA_sock->fd, GDK_INPUT_READ, read_director, NULL); - director_reader_running = true; -} - -void stop_director_reader(gpointer data) -{ - if (!director_reader_running) { - return; - } - gdk_input_remove(tag); - director_reader_running = false; -} -#endif diff --git a/bacula/src/qt-console/console/console.h b/bacula/src/qt-console/console/console.h deleted file mode 100644 index 1fcf095591..0000000000 --- a/bacula/src/qt-console/console/console.h +++ /dev/null @@ -1,39 +0,0 @@ - -#ifndef _CONSOLE_H_ -#define _CONSOLE_H_ - -#include - -class DIRRES; -class BSOCK; -class JCR; -class CONRES; - -class Console : public QWidget -{ - Q_OBJECT - -public: - Console(); - void set_text(const char *buf); - void set_text(const QString buf); - void set_textf(const char *fmt, ...); - void write_dir(const char *buf); - bool authenticate_director(JCR *jcr, DIRRES *director, CONRES *cons); - bool is_connected() { return m_sock != NULL; }; - -public slots: - void connect(); - void read_dir(int fd); - -private: - QTextEdit *m_textEdit; - DIRRES *m_dir; - BSOCK *m_sock; - bool m_at_prompt; - QSocketNotifier *m_notifier; - QTextCursor *m_cursor; - QTreeWidgetItem *m_consoleItem; -}; - -#endif /* _CONSOLE_H_ */ diff --git a/bacula/src/qt-console/images/backup.png b/bacula/src/qt-console/images/backup.png deleted file mode 100644 index 5111dd0b2eb759ad4a626b34416613d928d89e0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1651 zcmV-(28{WMP)jrvh`-lTkFvenx5E>!(*9 zynk#9*Z6p805dZ)^#KQ{10yi9H;)nF_~~bveEsK~{m&e1BrZ#^`BR_O%hgNI0YBw= zrmq=5^J4*3IKT8U-~QQs%=t5L3$P7HuUQ4o1LuH#reK}wY-~sa#*+79`Um3&| z894RPDaL*^1`h&#sewPjroZR-=I{f2b=zUK4BP;~vcJHY#VKC>$8TAwUIZx8#ZI2- zEXNfYcy#JfULJlKZclZdgyH#{_}-2m(d+s#MlnVak)$n%C~sF^nj zc+41OX}QGe<#lGJC%x{p!PUXl41l?nzrn%8+W|g;p$kJCJ@^9#d%FSQ%QqZg15_gIc{R~bH+%;&xL%=KFt0v7Opz^ zh$yO-D2lQGyhV?RJ0=)^ZJg`7u4nkR;g-dvOC@H1H_MoRgae!JVkkFoO#nnK#o}5P zKt7)*PoCX-c2hV};O4HI*|%q3eSBegfwxY)#f`Iv8QXU+L%9KlavQH2fDvV_v`*Cz zvH)sP;P7~I&r^JN>IgeG?BvkyL!4VV$FWzAG4b^Y{uyj0f6I0@4fL^TWB*kHC>Gc7 z*DHjPX=R|60rTW}^MhF?-#$i9(9Q9)$9eiIPxH{OhhWdOT|CxWmX?Z?*UA_XOf!H6 z15mD7Zm)iW+xG6@C-dKDZ17v$*>g7^p1+874rd+KIjprf2i7{QvpDCHc3juqjWH}= zDpIKgM3EpOM3HHq2?K#J6efRhg0Z{yv$9%7twqEpwW8LdY7x!Waa&P!h{nlheXT;J zT&X83F@h0ceeqH&17g7sEeP#z_*{m4F~HY~Oxelg_qDbKBwr=|j{aLYo;-0qb1$)-r;qrCJT~ zs{tZHvFN8xm^Ikxz1CJ$1_%2PF$th13EJISMuc+NuYXPzi`5LRX{yuGWcwTK{{F65 zTAKif6gu7L#%P>Wq6jfc6bZw_xwfIz90{GA(ilZlu&SsC-Os*ovNHpbAqYaEQ0mEK zW@Z6Z#o9ErwuzMn6V_(?wr;%+mDmSVh3=!{hriSbz}@%!@UO;b9CjuKv32WUON^&a zoOZZ0{f!(Uh?shU>rVbVy#2M5bu+|V)FTMS1Of> xB4KD~08M4eTE1{e_-5Z5?dHD4#pPr^{1<6yYIA@;rcVF>002ovPDHLkV1kOo6A=Ia diff --git a/bacula/src/qt-console/images/bat.png b/bacula/src/qt-console/images/bat.png deleted file mode 100644 index 7812eea34fedd0a852d9d6b90fea88a4197e0389..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96268 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 diff --git a/bacula/src/qt-console/images/bat_icon.png b/bacula/src/qt-console/images/bat_icon.png deleted file mode 100644 index c017f9e0a9741860f49a057db4857d90641777be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5054 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 UumaOBBme*a07*qoM6N<$f~PiWQ~&?~ diff --git a/bacula/src/qt-console/images/big-server.png b/bacula/src/qt-console/images/big-server.png deleted file mode 100644 index feb8f87f48e0e911804d2248646fca0795a02d68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1087 zcmV-F1i<@=P)chpp4ghMJg)$1_uY1wghnc^w4v`5ckbM|7-P;NYvJsQflg_(@S*Z z>#uGXr8|8m2TzSx%TZ_d;MDNRGdmvG`N8W44ssmF5mi;8X_{rDl$u&N943!H*1-xh z!Yg~8+T)!VKR;0o!cxai9HWY&(5*-mi}d)3W3*Zx#_oYE%gE(&NT<`T;dSvm4_TJ0 z`q%r6#c>Q!UbDZ*6U@h~o;NTwPsVrjHGPiVu+9rl+T&X_}+BjsX@I z7oEDgl4Ah3)8O%V?j68Z7U4Ys$mjDA1Ob#%#9}ctHa0pQ;g$g?r4R%GEE_;}?KTue z0U>15DQRwQHm>^z_NPQedG_4MIl&TOXlUsET<%tXzIbO}K9_$|lB8|AgCt3aL?W2_ zWfCtu--921{0T?jIf}WtIqcp0v}N+km#>(%U(Yi=O+Sy1Uq5*0z*RQLPO~gK!Fc@N zClZOj832gKjOUwiSp* zqsDc6`=dC2;R22vemhO6wm=9?2Lg(eNF+)X7#kZ4sH(Vgtx#xL%dXW+(%l~jAp{)9 zq3^|)@M`}6L{UU0lX0~$ug}at(KLK?_G}Xy4DAZA{$$Wk{Qz>d$E=t4_t8&2{?v3H zAcTNYT46mN4>V0P`nq_Y#~W`R0^?;enk;pXj(&TsJdfk=08rZ7s;X94LWt>kxkkPm z-44L=WaMfuiK1w-#bVL&zJ+X$Wv&1+nT(}fU0nqLtgNiK313f-+4=c- z06;300st&5EZF5~u*p@i27Cav1Bh5T>m}Fi`uaKmAe+qs01AbI9l#C%0RVpiF#RUW zsW<@j*rmZ+B+V6_@NIKS-#KZ;0<{h@6zu# zZoGTx(r>>4SOsuvGXUdVl;+G=Yw`_I01^NZrON*Q^bgAt5+o7*d*lEB002ovPDHLk FV1j+I^SuB7 diff --git a/bacula/src/qt-console/images/connected.png b/bacula/src/qt-console/images/connected.png deleted file mode 100644 index 9a6a3980c243fa7e447fa196407b2afd53ff8fbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 547 zcmV+;0^I$HP)%xKL7v#2XskIMF-IZ4hS4N6X8fc00059NklA#PAfXWUCRJ!CRE+%(swjw*(DqhA54{yU>A^!4yaXbi1U-~$m0Cp7 zLqU3}9z>}ZDV{{ZFBHGsD8XIP?d>UrE369( zAq18woPITV2!Q#^U~OfIy`4=qx3*oKs{;`4>HBM9S7#fGiwl&Om19{Jr&`JxTVGuU zK+|jf{;;MF{~=6^UTmc6RH{EXZi$TVB2^Q?DOK4j^}n4MX@8B_s_)+{rKC lb;9*RC`!opFNNGIr$2RPxq#@z)JFgS002ovPDHLkV1izg>P`Rv diff --git a/bacula/src/qt-console/images/copy.png b/bacula/src/qt-console/images/copy.png deleted file mode 100644 index f2c04dfe30bb668579edc52dd20d79e65f794289..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1339 zcmV-B1;qM^P)D4e0i~yl%M(eSR;z=Nu$lPz-oc0og zoB&7OJFPYcHZrCJ5MgHFct&JQipEk{2_+GZrqJA>u|Emoe*s8|$vl#HWGu<&55n$= z!sQMk5=*1>;~z{kbXftg>&Q0Mke)gC+?f|&E%AJ+JdKK~8dNfUSX+nNV-t@7SZzzV zzvzc+6jZ zxjE=2CQwjNfFaHAeB4Q<`320FTpYmRPr>60;m2N`$N*|~15iU|c*+%z$KmyQkxr*E zIXQ{S%4*Ec8hHZ`%r@wzEgXPkT5#k0>!WU20m9)hj7B4WPNh=#xwjXMpM8ND2H{u| zq3-I&sfI?JX*!2nBjdPmZCGA_jg1ZH_4>zv`uh5zWDuc^ILtN|1cMP%GbUIa9$f4i zl^k`t92KyPOo z68jY6U%LCGRX5fw$m~&?CUtX3GKuS-k2_PDca`R9q zgyPZ)Tpbi}i*1sF25^uO6QJyn86fp=%t>TU`vQR!msR0Hw}AfXjJftfrh!k|Wditj z^^}^ly1L3C-YKcTrCtGdZQ%N42Dm*BoVvJ20I7BoO*%?W+cA9ytgNhHeSMun9A^!D z+a*9f0sK0bY2fl0(6E;VBx7l_y+ryJfFmD}KpuIj0>^xExqLli|EJ@!WO`IpMcw1cUb>2Ox3VggX9R2)E>;nH}MAtj}K zpHe#<4lXiYTwLT(FCTryMd!%f9&~pEXlZE?rHzGBOJ6qhyu7>&pU(%I&BpIbOG_Mr z0O+}}u+S_E08J_>H5t(}-RT>TYNrOQRx7WbTA}|L42DErUfwI)b43srvc(d0w|h zqlwhj)j1!g?PB_f>2S8cGyfAnsZ@$ir;}GqN$KQ6N$czDojEx>X#9duwSOz^*2K~Rv2iD&0qik002ovPDHLkV1nLmW`h6# diff --git a/bacula/src/qt-console/images/cut.png b/bacula/src/qt-console/images/cut.png deleted file mode 100644 index 54638e9386dc8af40dcc9a3ee2f57c62e248e406..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1323 zcmV+`1=RY9P)J0(1!|L=@Q+aTEb7Mu4u}WZlMQB24&|#EVDBq0{%sj+Z+)GGQx0 zAcdU1Fi0-lfEhqCt9ecIzWZ_$Xk-SF1YV<2^ak#QNA=LXgUd}Io1OMRbT7RYGCd%P zKS-r48v%?ldBMA#h)c%T#wHG+5V`$A{>3XcMvM|%P6Cssr>70f(>b}AV>T2D(&VEn zK_HANo+{rrN9){swakg0Ktz^QgDWfxHbzJY6ZK>&doEN10r&$qzrYSODpcQMh*H%o zSOat&76=4-MOF34plx)*)N}VCzH?EPkgku=6VK(8gNL*Np3E)-)CS$Jnai-RudhD8 z(qOgQ?SS}sjv4h}*IqNacG`39XxPWcN1v;!unrFm!4QYC z_Acj^H}`jQVc5OsUVtxVnxKZ?sWw9Q@B`QxpVZH#=NgKbEq?xOmsA>SUtb@%(9v@T zVsaH$PQ-_o)Qm6`=@qvgI2;Z@q}CZRo`stQer>5G8e5my4CXEh^CT4CHjaC}9?{K0 z$O&($1U%8bR;v{dcYhm%^O9V6PFgxKporEb{=Djv}7NhUQZ#8TNvL0_NhN zpdjG!cwn(uKwDk``_Co}Ev8e>XOzzgOoQTEd*;Gmnz9rW3I&M8V#v(QgrcG%P^;C@ z+1bfp?EcBQ$=j!OF1OE1fUdXLDR2(JYL~2dh{}J0;wgy^K9?&YTb2(8W8+7JA12t6 za%7Hg8ovjl(FiTAE%3|0ARIXHz6G;l!311sgoTBKM%*UnGOR4mGqn@!JL9_3Gp~Z> z{(6Z9p5FXo8}~etjeBORPg}}0?N~!YJv1~lfTgz=G8Dzb^Xb54Jd))oo;F?OoGLPS zee{DaT5J+A3>zitarZCFC+`J^U;fkNL<>x4^vOPTl^zTR1GKld!`H@^F|L6LX7M&{ zIA}acIyz>{0a00^F4~fx%15b|k+|p_1^WSy+Zxk*z z((l+8X-U2;oygOcJEspZj3vh3pSpKnaW$YpY_$lC`IPbC@H0!Ad}tF|z0RZAYfnh` z3=gmm{_}^(`7iFdNp1l4dp_;=2p%dvUFBG+@kd(qwpj}i9kWBpkvIuC`Kgv6`dk_f h&$IvkH~dc%_#Nkm8M#Em0nY#c002ovPDHLkV1hsWYZL$g diff --git a/bacula/src/qt-console/images/disconnected.png b/bacula/src/qt-console/images/disconnected.png deleted file mode 100644 index 57bdd27be227935ac850d7e6ae34bf16b12c21b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 640 zcmV-`0)PF9P)%xKL7v#2XskIMF-IZ4hS6t%bR4>0006HNklGC7xLJ)Y?(@*yN0V%75IhL|!eifj-@Kjg%Ga^v<_xQh;{psw6L77-DX2md=h& zY}=+}6y=#!E@Rs^&cIRmO?RE^6Ld!v!!!YS`{oq@hH0{}Fwe?z4%09g%}g{Epll@5 zV-q6Udko?H!Vv;pU!h{HXIv=gIKuy@&gb(0eEnid+cXTUN`>2Z?lr{uWACeKP^fB9 zWJZ!A)*lrvC;L9uAN899;>zWO&=PUcN*lHWPl&sh0aZ2VJBVCg@lQviss`}{c+V~T a4SoYgd>nZczfpn!000000QMc;}8G<1c*sQK~#9!t(IG89Ay;8fAh`kHM`qnk~CY11rbCADXFm+iz&4f zZ9%JI1r^_Xs1@}^t60%K6qKU%C4DhqD-y*&g;9z=>_ZQ7)jV%nzEQfsqal5E;! zb}rw=hrJ}R33xm3F=uY)_s#jvng0j>%`CuF#|uCju=$_N0!(y$jk($TL=CdE3bASr ziRy97teO1Xp=I$AzfSRoH_5=ky}bL>I)rUwv_^X# z2pg*BQQ0HE=~-l94becFx4xR7`-=hAuiwDtm*2!m=h(J+H9!t1J2kX#rnqwHH;OmL znf&QEOqW1|3`0ny(B(2gGR*@!_YnU6F#d@YuYF!*-;p8S>3WEBsVvtD1ukAXQ484s z$U49n3#~NCM3T`dg&oB~8?a(nkwH6YR_xqEaCtSs$t17uFS76G89v>(j##FdtFatT zB7-GrStkaFIzVcTaWoBCo0aeHnzNe57=#c6BdhSvwea@W*VuRT4E_E6xUNfETN@X4 z?yppsX>M*N9*-l0ptrZT@{U{x z;A@o7G&VNYQ)AmUo7c5+-!mTrEEs%tI*nHI0|EiMdUJ4a5Tz>q(eH}%^z>j^7Gq;$ zXsrpukn7j4*Ms}MUk|v*SzrxB%n-N08y%&iqXVrqrBaDPp+FdhJffo5%*ywLl7vkjqM0`DH&lANrh4xV+@XCR zaHB~jL2JCJDb{azjASaw&JW(Bc%uNohaY{y_;`_^?BSO^I#;dXVDFEl?`$KIJ}Jkb z{J8)z(`aA}#H)IgOr=RxXI`_ZTQ`ZqN($WOR6 z-~{dM?QDBxD=mxj6$Q!U$YvMeI5A2SV_dv&p1}9XV535xP-x7I9Gky_R{slKo-^)U z-c|Eo0`fr0nk5c)bw`k{su8ny2minf5LLy${3kl!T#7<$&87eV002ovPDHLkV1ixu BO9ub| diff --git a/bacula/src/qt-console/images/new.png b/bacula/src/qt-console/images/new.png deleted file mode 100644 index 12131b01008a3ec29ec69f8b3f65c4b3c15b60d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 852 zcmV-a1FQUrP)IE2xvpcKl890$E8eWxeF8o0mWjmIG{M&7eWO9CVRojsy7@;&dpQ!a9t0J7gPX(5I|>76wd9YM;~Wq>Ghkp6rY@= zsi|pt_x=M#qtRtve?bMn?-1>_C5DBX;{}vm&C%raD|#~il%B<2&`e?uix*V@+JPAL z6CgbQkZR2~6*sGtFK$zbV~w|k*M3m}@OjM5T^_Z^d)w}xJHF(IUAVpO;*`oW;C1B2 zbys585IO4RGepz@rv~8kI;}Y(n3!mCfS7AgQ=I?+DlNG&;!abH5Df(KZTl#;d_@48 zJKJjfX^uQ>h#Iar6M#C8w^So4*Tn<|1^_iEoENLSCA-QKz)fKe6)JLW%zjz|XlmW9 z@suY3Q`{VJZCgNKnyVajp6h`@6-N=kYKbun)^`LT3}hx^wrO>XsHzE2w#B^A1Ngov zV}~hV3>btQ09#E(0CWRWn5~q>9Op*n90161U8$i6fc^Yd5_2;F2sIc&=-PaaDX2~W zTL1&dm}fQw05ax<-uM>_{4Cgt02pUFPqb7NBbWjJ0t`O;#ZxHoL%3#1_iOo5hu6MT z0mxO4x=yW24v?>f-nYV%Jx`{y-lMT`>)O!u6_~SbsQ_#=q-z-e;1PdX7gN*|3t4aE z?!Drr!OKg0ZH#q?HK_Wx9NlHvJdYn4{+`bsH@(TacqVT~0BG|6fti$^=|8_20YcOC e{Jor>rG5iZY$c(Rl?rzN0000RP)CWtKz1rEEwa&Ubd$6s{da=&VIP1;2`BM0`Wb;D z{M-!)vd0-ix#k=pmKgFxQgYk(eOi$0QlJD2NbOI5d5567avIIj< zv@<}9dj`!tE;Q@xs8{wNhf{?zUNu9!u=J3D!C+h_ze{}K1V|htI6?j0>T@UYxhDij zhnKMl|M#(rT!AcZ}eF)wgP_d zAX10jekLr}U#(CrCA<(opAbNs2#S{v>vbjZBPMG2>Dlh2!oC#Mk@9m9Zc z2%^^3CBjkLC=!RpAFqNhVw6pZB#Q!^oqj*T-F(Vw$mLX*nO_ zNX-3DeeTpEomGUYnz~IsN92z9JUkMF)7=lf!HB}*Vw`?29z6pA^e+N~guKQ7E$%u) zC{dC3_66}y+`oN81yr%;K@{IH8|1O-3y*riL6}qGd@SEo}8X#Q_kq zZ|eG3QMpHgF(8Pc07FLLD$kpMaaUZZl&Qk=tr>Kq76&g@g}Kbh`}mD}bLg zSob6#9DIaI(-=7VVTPPm{Z+FbtPVT4Iv?2~9(pg}6TG@z0w%t}gOqRBIG>z~1AjdP zW3QR%ZYsA%*Mp?X$w>b?i;UGgQ?+sSsoXX8X`%zES@sOGBngFV;lVB@d3_10@@V;lg>dY2BN>v^RZ2^?j@k8NdQ$X;_ z_a$H}ZfeJ=gha#~If~qTHdcoJ4Lhqwh-3dbkKgY5JsSA}oWGEOlkpdDqpb%S#7{~T>2A7M zsP8QLl$cN`w?OF*Jo#7bDJpj@!Dj^fwz=d)jlRsXTKwbW85}(HH?VT^u<$rb~rBzaiB|lB=W)A?(%51dO$!?mU^ ze8O#IHd*n50bG}w!BKl4^90wps7K`#)>4RXJ_(`usyx1v$_9j`-;Pq{6K%jV&lNRO%>FPb&x$A5bBEmwG~ zsNAo;tlZJ!2;Bu-bsyf#uSL0b05WG_^}?r@soeJn(y81#_yhC8@e_i|9PXV^3ptdy z4Z_G4qZfz6FCzC2|JrSe-C>#48@AYMyIwNBFNyyFX1QPd5r93<00000NkvXXu0mjf DP*&js diff --git a/bacula/src/qt-console/images/paste.png b/bacula/src/qt-console/images/paste.png deleted file mode 100644 index e38bbe5f24b842fe5e16249ae01a3da3660342e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1745 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 KMNUMnLSTYL6LVAm diff --git a/bacula/src/qt-console/images/run.png b/bacula/src/qt-console/images/run.png deleted file mode 100644 index d385386497a2db36ff70b02ad86d5beb150c1490..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2296 zcmVEtRn;BGKX-X+-jclRCL|TB%EEwW77P zXmvX6P+7F7ol-k4sMMK`9hYgPI8|wN)Phy1AY#K(qDYaL0NMBTy}Z2l^0vF2{_!pe zC?n9?-^`u+?mhRM@ArIv-*e9INt{7k_a~vo274E)`RD9 z$I-!&Nc9di?waX!Cp0)30rlSL^BubRi6iQ!YXH!oQNa8w19ac{{A{4>ze>UKy~5Qs zrpLF>Q>l=l^rKPDT^ni7UsYQ2QdDwdSYOM401Q9}(truG+>rcDV|P5#bCJDxaljPD z%R!u`im)K=9nNdRa zz^nr!hP@<9Ihb$f+=DR&Ue}%;_-kOrX$jo;mN;0Hr_b)GQH?jkC3GxABN?AvlkzPdR$1{S!H zQBO8N8)_QMjPxZYOr;2zZh=r_K2zk(dj$eL8o3=|n>lkTlBxufx4&xYOj(c zpbQwWT2G3~Ti4nuZ~jHlNT#rT+3ccf0RrcI~2Z0%?QUm8J>G32R)pNTgvT8?3iq8auypF2$GSS39zuIC7jQ z0XK8Ak|}g+Rm6b^G&m(xpMT>x0aKyG-J0OL(NyFP)lA;yLBA!(aQhL;P`8XtC4DzZS%EOC4;SQ_l)KwUC= z_*1(Vb2uxbfS`A1B!R=HV)Ljtb8SQ&4&NhgGmeo-!)G}#f79;MreS<(!3G2<34xi+ zC=fN^z`nlyhj(@Ug%2yd48N-b$dXA*e=u#xl8h-Jx7b5UGkJ4M$aZ_7mA^4~J0Grl zPb7Zu!RdJj*s0hc+#-@l6MoVIx#to-{5K#5Gy%vqKTp_lC%v6hoLgsid7BNvSURpT zbGp;`NB9I&j>1+i&i1q+etH@)1ho00XwAtO!3cNzw&Js)W69!CU9~= zVh7SwSGG4_yQHA%qbV+G`z-c`bvHAkJ8ZBd8z$?Ny7TCHxNKsW4N*Z`Grcc-N^w%N zCUE?0kN^cLE1-2>fXgwG4?=65bdENuqn| z2wZ+h;Bmr80-mphrXD7iv<3kWtXqKi`8FgBkTf6}>IAY*DoBzMF7|lM;jX<=r83uB z)jFI3ysrkd_j=kFTvt+h^FCCpnF#^M;&5!>b4n=_#GOu9RS^xXx%+Tn<^45%LxJq# zt`2BPcWndgClzrs9!k{a`9cfhaUoy5$kVdr9DmhAPAzrU>ITJE=N4JEjK9rooINSUL^-HaOas zA+fy+?!Dd@tE&s!kwr^9mNh0Cf4PuYg9qpzuLt(tAt8J7{yfw@S}&_Is$HhOP0LqQ z8Mn)96B3w6l;zu~DzsaO4)_=UQktf!C%Nf z!rrgXqyIGnXoC|95`g*#q?K{4thJ|U_}|%H2M3Oh;c|OpW5Yd=C%+it3B$e{%)ekOSzjl6Nuz zfaWJ1*K20>=B7qH8BXW6hHLMeG4l5%TSA*B7l(olw@or}sj_|DJWGKj)C8cbH))e( zne(S*q00)NY-=~yErE^SgSFWs!Cl+qy|g~k1_VF1Yko1ho-2LAJ@uyF$D3aDkSRw) z0FtwCM}H`JURA!W;Hk9-jmPhrJm4zy+MI^$3ARQW!Ir07kyEV5!j?=czBwbI(OZAi zkV0gSQGde)VE8QE#^bF1%E&hi{cOz*$%l70rTwjaDGbfTL?&1tZXx{EGKO}vQ~k{0 zhgOvqs*=ou&$R^6a}*j^%p$m5vZOyL)UzRAlclzo-x(ZH^RxVJmx^#fs3&q5r?iu{ z$2x%_JjIu;-_%!^NGT!ooNk)d{*d5y`BdO%t$^$Mg7nbQZySm9gDCbQn=KX7^z0&b zmX}$n8U)~q-t*bJxSx2dMrMoeu^jW2hD_y}MdVyq4OE>5-PJz!8#8DIjU4h)0S{a*K!i>mJVVCD^kQ5IHGsm^=1>z+FI)Tw&v zz2|;5 zYXiKvXAppke-?cB?jC^K0C4>59N#}M1b8m}xWN9m&Tq?d4;^`$3nP}(pC4rW)qR_5 zKt-??KzML0Bg?XF0WdI@VU185d=w)kA`~mw7?IVLbLY;3D!2sF6tWD`ER0DCNfO?7 zI*{j(x1rU7b}No;C~~s;IMxc|ue?cX@%rWftQD*k1h7Wfy?f^tYwL!tfLf?lf$D8h zjjsf?g7=`NgaKy-HG&AJ3Y9FwBOo3K!0;X~0^TDMCKY^$Bg7#dJRx2{O;{K}*Gh>7 ztf1Os0Gczu1&UJ#X#$l5vNZMt5(iG9=s;dTE04VeOF6W2$O}}5aXkPkPoHKY21CJ!U{_^v8Xy`U*q`vX%#{A#01X5mtL``3Wj}4_b=eEU&o)}BH zcC!Nrol+61khoCqTE#GZvCBZkunzPltylR~F5%(E(lYhTaDB;yE$K=b5S$vobLD22 zD>u8WQCC0Ls$_n}C!#5=1r@`b3$=HqY!|4(sUXN2HLsgB8jo2qp8k93?-T&>g72GH zFe_J90#zZ=ko@OU-}3936D%#>xTpG8Y6Cp=>`tC}VFC}RGg~nb1AK?~_rJly!UDH$ z-J&Q8L>2*RmC}ns$#9hnDF1_1m8Hc<-5*m|${p@{U>9F*?@YhOX2JRd6<}qE@f>YdJGB!_d$W)>^#xG@H%40#K{h zaM6gg)QA+E3nyHlDgdZft7KW$r?@xXX>%H>7ePy{I3CBnBed6yF^ELpk2<)ko3Ayf z4fFOGE}LF^6%FD{qr2~6_bkHAUwgN`#=r?`j}F+N`lcCPEN~`$&arv@}^A; z=Akz@DTr9>h8#O?D+0kLD4~xZiw`$t;7R^CJc-1^Tkf@#^<3q;ENiAN3@tpJr&MxJ z9Mmi?Y=b++@_j{w&EOpY{lJ&^8nSfVFaAC%4PNnqhp5#y<;d=05NvPP_9tuICIxGQ z;jyN*%EyYLXw8yUPTH1pTI8g$xnyS4to;#FLaX4WkS|JHT2huy4z>3eQn(TwKE)(Q zS^=d{M(z|ULbictOX2s=NXg1Xz>*S^<+qj;lJCDK;Zq0}_-ISZhMESBc`2btH8d@7 zIp8UIFuBwdFGD_hI*YZ_`9lxhUZq^EXiZD1OBjEqz)#*Oe8xw*>Dn>y0n2Be}`b*H6^QGzZ#5$~Phajy#>G_SqO6&`}WyxiJKPwd0kqJ&1a2&yS5DIrDM z1^ok;0W3=8)uvYoC|%8MGh~jR>PMH>w*si%iSFG&@4mv1goH#N^NBB~I17 zgeyN|E>tGGa;-hyD&>`=J$I*Q)k3brFt6m3Q#Ev_Vzb(|gE%)IMaj$ffmoZ11!Ng4UxY0-C-1%zDvUh*zm@1UDa6uCW?&q^~X$UKoUf~Q2M66w?dvIlSD0bgg;+&VdUr|Ord zmtq2;vU$ticj5Ral7v2EDw_AKoY~nKatY*_%Kd1on$tEvcikN&cq|YKqoNE`z?S#W zjKWXe9>}KtVJg(K6FoO#9##B1OfuYY9cFrZh@mYX=+sujk_L^3zS#4gRSXuD zxJEwjL6Yq^*RO6f*r|T_*-pw<{I`^{xCd{A`o3R&1p@$rjmFR7!X-kQULAEepDRMF5}<4^}}rgHy-+C zy#wsRu8rN{GH_FuIW*Dpk^AzG+c!@1)Gvk#{8D||Uh%3-j=0y#q0-L80U{M`ngj@y zx%I?i)6mj<7;RU1;vLbr~2 z9h2{#uE$45N1wZd7No+eFnNJ2%dPL8p6elZ7(>pqGb_9gmY+>zH7z^4QCC1f1!d(VzOi&K2-?x zPu)4K<^W5$QyS{+J#zZgDI@N~b{4X1;6`%iaOnHL`Q|riMIUnNGy!3VlV?Wr?YH;} z{fP$~KKWFaE!c@Opxy~4j<8s6K>~rhv9g(;o@LlOHX;2vscvxiZXqQgAV6q+u^=~> z{GXdJ!90HP>7j`>YC3Sy_%PsoJe#?c%JLBCm7y<14QE1F5*AWKaLh z+ecH$K%Ys&8z+|L?By}3@b-+;9@2n%2bo{2}YdMvgUmUw+>t&Uh+-*gQgs?<2M^#J!6@oXs@+d~^HY6KjU y+L-fG#=m*>d%QYbMjca)g^iS1hka+xQUK0K!IL(4&o=!(5BU4+@~-z1rvDG{VsMcF diff --git a/bacula/src/qt-console/images/undo.png b/bacula/src/qt-console/images/undo.png deleted file mode 100644 index eee23d24a3128303b6096d80582ffa3fef7af7fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1768 zcmVP)v;?WRp>X|*mD_Z_hyiV7$yvZ;u`ASfcP;4lboY$HMe#c@G)aiIz*;#$B8 zT9IJD6|IP9%^1|G)LOAF=!^=Uo)15bQYo66HffyXWHK}V-E;3b_ul_U0zmR#Lh?3& z|78MZQiYM3G+1Wp6clgj7?@`27?3{He!;4Nw%(H^63NFzGs&BN4VxI!m&6gnoEH~+ zEZlrKVEN(Oq0tws6)Uc&70a)v1EbD7kSTWG8f@p6Z(uQ9#v`8)@4f-z#g-&ZnKU<9 z6_HSOH#|X8D-Q=IEda)P0;8t_Bi#UNcffrf5Efne#KLvSwbr_NQXbd&$HdbYrB*1D zuRaWn2HXNkBm+#Q0fv(SJt@%J9_VIEj0XDI0Ma?Yg76}BufY>?7{=iBiJceg5{gN_ z$*PqbNxTMd4FW9Wz))6fOblcagS-in>3aY@U4Tww09^}Uh!YSHrG7ThR#wSyPOn8i zd}4^)#v`gMJieqVJQrImJ0rZxnBm4oI2$GU;embyxFR;E4*i-~0`~diG zrR*!H4ioLeUKq??@Lk5_yyL4GTJZ|x3MZlJ$i$MWh;<|iW7Q-bMZaw#*=z~)bQ=(R z2*@e}wjNZ~gv9Pqdn|~17`ZM_v%Q3pXHW@VYfNiK(JDnO?HMD#$M8%393PH`F~9hT z(0X2S2hW%bv1vCo^Xauy2w+K>ty!@&29U90y{!Rhs&lk+tXTIt2vs#MH9i4J~JF>eAn0ytpW|m{{-( z|I~`uEt*;{CB5ZAEBa}_3h+o_6*)l4F(CW&omyGwhDQSNm!0(Ud3HJBMT}!Sf8WUT z-!e}EKB-KaaeU)}$fOfbx*Lr-&ujby1xgE#FspT^AL*OBW$Br@$hpC``921>Hg)Xt(OPo7cDq4OW)RfGhc~*bt)^#ExS`YQLe1+ z)Ne#71H=$Bi6KPmhO1S$7i1i~Se?$K<2Vs%2k+FHJNe&lq1`%@Kf4lb>k`t}i-m9S@rPoe)llq`}nok8-oStp*1Bze1T1CQ`v zBr%p~-`EXBXzuj9vb%*UApZg|FLH}oR82_SmiVG>;)DcpirJmqY<5h-fs#+_r%hzk3`>B6BAxYTu31A z6vv9)?Ym%@#~mqBv%23hK$*cOO*9%NGjPirK%sa;G32Cb08R=}k>}CCQ_< zJ`~A?ei80~x-Xm+5-6fXaaJ-8{wY z8-1W)yg6|hMYl>SG_}sM75BOsT9=C>>P&Pbnm0Uf?(EON!JkN0THkDY=v#ILu#fT; z+yKs20qb@bsr#5nckoCb;{8S*O6)=t_g>3CeN!`bdc^I{`lE#Xuu{D1{gqst)r{<- z%bM)sOHZ?kR5jU0RW&)p-ebgZRn7NA?g;^xp1S(3u4<*L=Og;B)!_M{heyEri>uQL zs|+n?p8Klj-~;?Rg0L55Z~jur3`Wmz8DKTLpx^Mx=k?57FExr`uBtX&406P|@A48G znsqm_HSaytapQ+AKaJvNIWdxG*VLnzu(<|^i(z&Xa1%rmAEmS!#1TGg6JHDWG0`gR zS9$JhCMMBFY_PvWn(hEjNT^D6#f9lk8NL3s+J@G0000< KMNUMnLSTY!`bcR2 diff --git a/bacula/src/qt-console/main.cpp b/bacula/src/qt-console/main.cpp deleted file mode 100644 index cc99377062..0000000000 --- a/bacula/src/qt-console/main.cpp +++ /dev/null @@ -1,254 +0,0 @@ -/* - Bacula® - The Network Backup Solution - - Copyright (C) 2007 Free Software Foundation Europe e.V. - - The main author of Bacula is Kern Sibbald, with contributions from - many others, a complete list can be found in the file AUTHORS. - This program is Free Software; you can redistribute it and/or - modify it under the terms of version two of the GNU General Public - License as published by the Free Software Foundation plus additions - that are listed in the file LICENSE. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301, USA. - - Bacula® is a registered trademark of John Walker. - The licensor of Bacula is the Free Software Foundation Europe - (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich, - Switzerland, email:ftf@fsfeurope.org. -*/ - -/* - * Main program for bat (qt-console) - * - * Kern Sibbald, January MMVI - * - */ - - -#include -#include "bat.h" - - -/* Forward referenced functions */ -void terminate_console(int sig); -static void usage(); -static int check_resources(); - -#define CONFIG_FILE "./bat.conf" /* default configuration file */ - -/* Static variables */ -static char *configfile = NULL; - -MainWin *mainWin; -QApplication *app; - - -int main(int argc, char *argv[]) -{ - - int ch; - bool no_signals = true; - bool test_config = false; - - - app = new QApplication(argc, argv); - app->setQuitOnLastWindowClosed(true); - - -#ifdef ENABLE_NLS - setlocale(LC_ALL, ""); - bindtextdomain("bacula", LOCALEDIR); - textdomain("bacula"); -#endif - - init_stack_dump(); - my_name_is(argc, argv, "gnome-console"); - init_msg(NULL, NULL); - working_directory = "/tmp"; - - struct sigaction sigignore; - sigignore.sa_flags = 0; - sigignore.sa_handler = SIG_IGN; - sigfillset(&sigignore.sa_mask); - sigaction(SIGPIPE, &sigignore, NULL); - - while ((ch = getopt(argc, argv, "bc:d:r:st?")) != -1) { - switch (ch) { - case 'c': /* configuration file */ - if (configfile != NULL) { - free(configfile); - } - configfile = bstrdup(optarg); - break; - - case 'd': - debug_level = atoi(optarg); - if (debug_level <= 0) - debug_level = 1; - break; - - case 's': /* turn off signals */ - no_signals = true; - break; - - case 't': - test_config = true; - break; - - case '?': - default: - usage(); - } - } - argc -= optind; - argv += optind; - - - if (!no_signals) { - init_signals(terminate_console); - } - - if (argc) { - usage(); - } - - if (configfile == NULL) { - configfile = bstrdup(CONFIG_FILE); - } - - parse_config(configfile); - - if (init_crypto() != 0) { - Emsg0(M_ERROR_TERM, 0, _("Cryptography library initialization failed.\n")); - } - - if (!check_resources()) { - Emsg1(M_ERROR_TERM, 0, _("Please correct configuration file: %s\n"), configfile); - } - - mainWin = new MainWin; - mainWin->show(); - - return app->exec(); -} - -void terminate_console(int sig) -{ - (void)sig; /* avoid compiler complaints */ - exit(0); -} - -static void usage() -{ - fprintf(stderr, _( -PROG_COPYRIGHT -"\nVersion: %s (%s) %s %s %s\n\n" -"Usage: bat [-s] [-c config_file] [-d debug_level] [config_file]\n" -" -c set configuration file to file\n" -" -dnn set debug level to nn\n" -" -s no signals\n" -" -t test - read configuration and exit\n" -" -? print this message.\n" -"\n"), 2007, VERSION, BDATE, HOST_OS, DISTNAME, DISTVER); - - exit(1); -} - -#ifdef xxx -/* - * Call-back for reading a passphrase for an encrypted PEM file - * This function uses getpass(), which uses a static buffer and is NOT thread-safe. - */ -static int tls_pem_callback(char *buf, int size, const void *userdata) -{ -#ifdef HAVE_TLS - const char *prompt = (const char *) userdata; - char *passwd; - - passwd = getpass(prompt); - bstrncpy(buf, passwd, size); - return (strlen(buf)); -#else - buf[0] = 0; - return 0; -#endif -} -#endif - - -/* - * Make a quick check to see that we have all the - * resources needed. - */ -static int check_resources() -{ - bool ok = true; - DIRRES *director; - int numdir; - - LockRes(); - - numdir = 0; - foreach_res(director, R_DIRECTOR) { - numdir++; - /* tls_require implies tls_enable */ - if (director->tls_require) { - if (have_tls) { - director->tls_enable = true; - } else { - Jmsg(NULL, M_FATAL, 0, _("TLS required but not configured in Bacula.\n")); - ok = false; - continue; - } - } - - if ((!director->tls_ca_certfile && !director->tls_ca_certdir) && director->tls_enable) { - Emsg2(M_FATAL, 0, _("Neither \"TLS CA Certificate\"" - " or \"TLS CA Certificate Dir\" are defined for Director \"%s\" in %s." - " At least one CA certificate store is required.\n"), - director->hdr.name, configfile); - ok = false; - } - } - - if (numdir == 0) { - Emsg1(M_FATAL, 0, _("No Director resource defined in %s\n" - "Without that I don't how to speak to the Director :-(\n"), configfile); - ok = false; - } - - CONRES *cons; - /* Loop over Consoles */ - foreach_res(cons, R_CONSOLE) { - /* tls_require implies tls_enable */ - if (cons->tls_require) { - if (have_tls) { - cons->tls_enable = true; - } else { - Jmsg(NULL, M_FATAL, 0, _("TLS required but not configured in Bacula.\n")); - ok = false; - continue; - } - } - - if ((!cons->tls_ca_certfile && !cons->tls_ca_certdir) && cons->tls_enable) { - Emsg2(M_FATAL, 0, _("Neither \"TLS CA Certificate\"" - " or \"TLS CA Certificate Dir\" are defined for Console \"%s\" in %s.\n"), - cons->hdr.name, configfile); - ok = false; - } - } - - UnlockRes(); - - return ok; -} diff --git a/bacula/src/qt-console/main.qrc b/bacula/src/qt-console/main.qrc deleted file mode 100644 index 3573c5c5ea..0000000000 --- a/bacula/src/qt-console/main.qrc +++ /dev/null @@ -1,18 +0,0 @@ - - - images/copy.png - images/cut.png - images/new.png - images/open.png - images/paste.png - images/save.png - images/bat.png - images/connected.png - images/disconnected.png - images/run.png - images/restore.png - images/server.png - images/label.png - images/big-server.png - - diff --git a/bacula/src/qt-console/main.ui b/bacula/src/qt-console/main.ui deleted file mode 100644 index 5dd1a13232..0000000000 --- a/bacula/src/qt-console/main.ui +++ /dev/null @@ -1,430 +0,0 @@ - - Kern Sibbald - MainForm - - - - 0 - 0 - 1038 - 802 - - - - bat - Bacula Admin Tool - - - images/bat.png - - - - - 9 - - - 6 - - - - - Qt::Horizontal - - - - - 5 - 7 - 1 - 1 - - - - - 200 - 100 - - - - - 400 - 16777215 - - - - - - 9 - - - 6 - - - - - - 5 - 7 - 1 - 1 - - - - - 0 - 0 - - - - - 0 - 0 - - - - Selects right panel - - - true - - - - - - - - - - 7 - 7 - 200 - 0 - - - - - 1 - 0 - - - - 0 - - - - - 9 - - - 6 - - - - - - 7 - 7 - 200 - 0 - - - - - 0 - 0 - - - - - 1 - 0 - - - - Qt::NoFocus - - - false - - - - - - - - - - - - - - - QTextEdit::NoWrap - - - true - - - - - - - - - 9 - - - 6 - - - - - 0 - - - - Restore 1 - - - - - Restore 2 - - - - - - - - - - - - - 0 - - - 6 - - - - - Command: - - - - - - - - - - - - - - 0 - 0 - 1038 - 33 - - - - - &Edit - - - - - - - - &File - - - - - - - - &Help - - - - - - - - - - Current Status - - - Current Status - - - - - - 51 - 39 - - - - Tool Bar - - - Qt::Horizontal - - - 4 - - - - - - - - - - - &Quit - - - Ctrl+Q - - - QAction::QuitRole - - - - - images/bat.png - - - &About bat - - - - - images/copy.png - - - &Copy - - - - - images/cut.png - - - Cu&t - - - - - images/new.png - - - new - - - - - images/open.png - - - open - - - - - images/paste.png - - - &Paste - - - - - images/print.png - - - &Print - - - Print - - - - - images/save.png - - - &Save - - - Save (not implemented) - - - - - images/disconnected.png - - - Connect - - - Connect/disconnect - - - - - images/label.png - - - Label - - - Label a Volume - - - Label a Volume - - - - - images/restore.png - - - Restore - - - Restore Files - - - - - false - - - images/run.png - - - Run Job - - - Run Job - - - Run Job - - - Run a Job - - - - - - - - diff --git a/bacula/src/qt-console/mainwin.cpp b/bacula/src/qt-console/mainwin.cpp deleted file mode 100644 index ebe975d103..0000000000 --- a/bacula/src/qt-console/mainwin.cpp +++ /dev/null @@ -1,122 +0,0 @@ -/* - Bacula® - The Network Backup Solution - - Copyright (C) 2000-2007 Free Software Foundation Europe e.V. - - The main author of Bacula is Kern Sibbald, with contributions from - many others, a complete list can be found in the file AUTHORS. - This program is Free Software; you can redistribute it and/or - modify it under the terms of version two of the GNU General Public - License as published by the Free Software Foundation plus additions - that are listed in the file LICENSE. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301, USA. - - Bacula® is a registered trademark of John Walker. - The licensor of Bacula is the Free Software Foundation Europe - (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich, - Switzerland, email:ftf@fsfeurope.org. -*/ - -/* - * Main Window control for bat (qt-console) - * - * Kern Sibbald, January MMVI - * - */ - -#include "bat.h" - -MainWin::MainWin(QWidget *parent) : QMainWindow(parent) -{ - mainWin = this; - setupUi(this); /* Setup UI defined by main.ui (designer) */ - stackedWidget->setCurrentIndex(0); - - statusBar()->showMessage("Director not connected. Click on connect button."); - - m_console = new Console(); - - lineEdit->setFocus(); - - /* Connect signals to slots */ - connect(lineEdit, SIGNAL(returnPressed()), this, SLOT(input_line())); - connect(actionAbout_bat, SIGNAL(triggered()), this, SLOT(about())); - - connect(treeWidget, SIGNAL(itemActivated(QTreeWidgetItem *, int)), this, - SLOT(treeItemClicked(QTreeWidgetItem *, int))); - connect(treeWidget, SIGNAL(itemClicked(QTreeWidgetItem *, int)), this, - SLOT(treeItemClicked(QTreeWidgetItem *, int))); - connect(treeWidget, SIGNAL(itemPressed(QTreeWidgetItem *, int)), this, - SLOT(treeItemClicked(QTreeWidgetItem *, int))); - connect(actionQuit, SIGNAL(triggered()), app, SLOT(closeAllWindows())); - connect(actionConnect, SIGNAL(triggered()), m_console, SLOT(connect())); - -} - -void MainWin::treeItemClicked(QTreeWidgetItem *item, int column) -{ - (void)column; - int index = item->text(1).toInt(); - if (index >= 0 && index < 2) { - stackedWidget->setCurrentIndex(index); - } -} - - -/* - * The user just finished typing a line in the command line edit box - */ -void MainWin::input_line() -{ - QString cmdStr = lineEdit->text(); /* Get the text */ - lineEdit->clear(); /* clear the lineEdit box */ - if (m_console->is_connected()) { - m_console->set_text(cmdStr + "\n"); - m_console->write_dir(cmdStr.toUtf8().data()); /* send to dir */ - } else { - set_status("Director not connected. Click on connect button."); - } -} - - -void MainWin::about() -{ - QMessageBox::about(this, tr("About bat"), - tr("

bat 0.1

" - "

Copyright © " BYEAR " Free Software Foundation Europe e.V." - "

The bat is an administrative console" - " interface to the Director.")); -} - -void MainWin::set_statusf(const char *fmt, ...) -{ - va_list arg_ptr; - char buf[1000]; - int len; - va_start(arg_ptr, fmt); - len = bvsnprintf(buf, sizeof(buf), fmt, arg_ptr); - va_end(arg_ptr); - set_status(buf); -// set_scroll_bar_to_end(); -} - -void MainWin::set_status_ready() -{ - set_status("Ready"); -// set_scroll_bar_to_end(); -} - -void MainWin::set_status(const char *buf) -{ - statusBar()->showMessage(buf); -// ready = false; -} diff --git a/bacula/src/qt-console/mainwin.h b/bacula/src/qt-console/mainwin.h deleted file mode 100644 index 67d7b81acf..0000000000 --- a/bacula/src/qt-console/mainwin.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - Bacula® - The Network Backup Solution - - Copyright (C) 2000-2007 Free Software Foundation Europe e.V. - - The main author of Bacula is Kern Sibbald, with contributions from - many others, a complete list can be found in the file AUTHORS. - This program is Free Software; you can redistribute it and/or - modify it under the terms of version two of the GNU General Public - License as published by the Free Software Foundation plus additions - that are listed in the file LICENSE. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301, USA. - - Bacula® is a registered trademark of John Walker. - The licensor of Bacula is the Free Software Foundation Europe - (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich, - Switzerland, email:ftf@fsfeurope.org. -*/ - -/* - * qt-console main window class definition. - * - * Written by Kern Sibbald, January MMVI - */ - -#ifndef _MAINWIN_H_ -#define _MAINWIN_H_ - -#include -#include "ui_main.h" - -class Console; - -class MainWin : public QMainWindow, public Ui::MainForm -{ - Q_OBJECT - -public: - MainWin(QWidget *parent = 0); - void set_statusf(const char *fmt, ...); - void set_status_ready(); - void set_status(const char *buf); - -public slots: - void input_line(); - void about(); - void treeItemClicked(QTreeWidgetItem *item, int column); - -private: - QString m_UserInput; - Console *m_console; -}; - -#endif /* _MAINWIN_H_ */ diff --git a/bacula/src/stored/append.c b/bacula/src/stored/append.c index 402324fa4d..6a57c14b47 100644 --- a/bacula/src/stored/append.c +++ b/bacula/src/stored/append.c @@ -7,7 +7,7 @@ /* Bacula® - The Network Backup Solution - Copyright (C) 2000-2007 Free Software Foundation Europe e.V. + Copyright (C) 2000-2006 Free Software Foundation Europe e.V. The main author of Bacula is Kern Sibbald, with contributions from many others, a complete list can be found in the file AUTHORS. @@ -38,7 +38,6 @@ /* Responses sent to the File daemon */ static char OK_data[] = "3000 OK data\n"; -static char OK_append[] = "3000 OK append data\n"; /* Forward referenced functions */ @@ -262,14 +261,6 @@ bool do_append_data(JCR *jcr) } } - /* Create Job status for end of session label */ - set_jcr_job_status(jcr, ok?JS_Terminated:JS_ErrorTerminated); - - /* Terminate connection with FD */ - bnet_fsend(ds, OK_append); - do_fd_commands(jcr); /* finish dialog with FD */ - - time_t job_elapsed = time(NULL) - jcr->run_time; if (job_elapsed <= 0) { @@ -280,6 +271,8 @@ bool do_append_data(JCR *jcr) job_elapsed / 3600, job_elapsed % 3600 / 60, job_elapsed % 60, edit_uint64_with_suffix(jcr->JobBytes / job_elapsed, ec)); + /* Create Job status for end of session label */ + set_jcr_job_status(jcr, ok?JS_Terminated:JS_ErrorTerminated); Dmsg1(200, "Write EOS label JobStatus=%c\n", jcr->JobStatus); @@ -310,8 +303,6 @@ bool do_append_data(JCR *jcr) Pmsg0(000, _("NULL Volume name. This shouldn't happen!!!\n")); } - - if (!ok) { discard_data_spool(dcr); } else { diff --git a/bacula/src/stored/fd_cmds.c b/bacula/src/stored/fd_cmds.c index 78a59331c9..47306f20b5 100644 --- a/bacula/src/stored/fd_cmds.c +++ b/bacula/src/stored/fd_cmds.c @@ -15,7 +15,7 @@ /* Bacula® - The Network Backup Solution - Copyright (C) 2000-2007 Free Software Foundation Europe e.V. + Copyright (C) 2000-2006 Free Software Foundation Europe e.V. The main author of Bacula is Kern Sibbald, with contributions from many others, a complete list can be found in the file AUTHORS. @@ -95,6 +95,7 @@ static char NOT_opened[] = "3902 Error session not opened\n"; static char OK_end[] = "3000 OK end\n"; static char OK_close[] = "3000 OK close Status = %d\n"; static char OK_open[] = "3000 OK open ticket = %d\n"; +static char OK_append[] = "3000 OK append data\n"; static char ERROR_append[] = "3903 Error append data\n"; static char OK_bootstrap[] = "3000 OK bootstrap\n"; static char ERROR_bootstrap[] = "3904 Error bootstrap\n"; @@ -106,7 +107,6 @@ char Job_end[] = /* * Run a File daemon Job -- File daemon already authorized - * Director sends us this command. * * Basic task here is: * - Read a command from the File daemon @@ -115,9 +115,14 @@ char Job_end[] = */ void run_job(JCR *jcr) { + int i; + bool found, quit; + BSOCK *fd = jcr->file_bsock; BSOCK *dir = jcr->dir_bsock; char ec1[30]; + + fd->jcr = jcr; dir->jcr = jcr; Dmsg1(120, "Start run Job=%s\n", jcr->Job); bnet_fsend(dir, Job_start, jcr->Job); @@ -125,27 +130,6 @@ void run_job(JCR *jcr) jcr->run_time = jcr->start_time; set_jcr_job_status(jcr, JS_Running); dir_send_job_status(jcr); /* update director */ - do_fd_commands(jcr); - jcr->end_time = time(NULL); - dequeue_messages(jcr); /* send any queued messages */ - set_jcr_job_status(jcr, JS_Terminated); - generate_daemon_event(jcr, "JobEnd"); - bnet_fsend(dir, Job_end, jcr->Job, jcr->JobStatus, jcr->JobFiles, - edit_uint64(jcr->JobBytes, ec1)); - bnet_sig(dir, BNET_EOD); /* send EOD to Director daemon */ - return; -} - -/* - * Now talk to the FD and do what he says - */ -void do_fd_commands(JCR *jcr) -{ - int i; - bool found, quit; - BSOCK *fd = jcr->file_bsock; - - fd->jcr = jcr; for (quit=false; !quit;) { int stat; @@ -176,8 +160,17 @@ void do_fd_commands(JCR *jcr) } } bnet_sig(fd, BNET_TERMINATE); /* signal to FD job is done */ + jcr->end_time = time(NULL); + dequeue_messages(jcr); /* send any queued messages */ + set_jcr_job_status(jcr, JS_Terminated); + generate_daemon_event(jcr, "JobEnd"); + bnet_fsend(dir, Job_end, jcr->Job, jcr->JobStatus, jcr->JobFiles, + edit_uint64(jcr->JobBytes, ec1)); + bnet_sig(dir, BNET_EOD); /* send EOD to Director daemon */ + return; } + /* * Append Data command * Open Data Channel and receive Data for archiving @@ -192,10 +185,7 @@ static bool append_data_cmd(JCR *jcr) Dmsg1(110, "msg); jcr->JobType = JT_BACKUP; if (do_append_data(jcr)) { - return true; -#ifdef xxx return bnet_fsend(fd, OK_append); -#endif } else { bnet_suppress_error_messages(fd, 1); /* ignore errors at this point */ bnet_fsend(fd, ERROR_append); diff --git a/bacula/src/stored/job.c b/bacula/src/stored/job.c index 2bd6be9d24..891c4477b6 100644 --- a/bacula/src/stored/job.c +++ b/bacula/src/stored/job.c @@ -9,7 +9,7 @@ /* Bacula® - The Network Backup Solution - Copyright (C) 2000-2007 Free Software Foundation Europe e.V. + Copyright (C) 2000-2006 Free Software Foundation Europe e.V. The main author of Bacula is Kern Sibbald, with contributions from many others, a complete list can be found in the file AUTHORS. diff --git a/bacula/src/stored/protos.h b/bacula/src/stored/protos.h index 3b8388e7a5..2e3bbdf3a8 100644 --- a/bacula/src/stored/protos.h +++ b/bacula/src/stored/protos.h @@ -6,7 +6,7 @@ /* Bacula® - The Network Backup Solution - Copyright (C) 2000-2007 Free Software Foundation Europe e.V. + Copyright (C) 2000-2006 Free Software Foundation Europe e.V. The main author of Bacula is Kern Sibbald, with contributions from many others, a complete list can be found in the file AUTHORS. @@ -144,8 +144,7 @@ void *handle_connection_request(void *arg); /* From fd_cmds.c */ void run_job(JCR *jcr); -bool get_bootstrap_file(JCR *jcr, BSOCK *bsock); -void do_fd_commands(JCR *jcr); +bool get_bootstrap_file(JCR *jcr, BSOCK *bsock); /* From job.c */ void stored_free_jcr(JCR *jcr); diff --git a/bacula/src/version.h b/bacula/src/version.h index 78cd11f5c2..2461938a3f 100644 --- a/bacula/src/version.h +++ b/bacula/src/version.h @@ -3,7 +3,7 @@ */ #undef VERSION -#define VERSION "2.1.1" +#define VERSION "2.0.2" #define BDATE "28 January 2007" #define LSMDATE "28Jan07" @@ -47,7 +47,7 @@ #define TRACE_FILE 1 /* If this is set stdout will not be closed on startup */ -#define DEVELOPER 1 +/* #define DEVELOPER 1 */ #define DATA_ENCRYPTION 1 diff --git a/bacula/src/win32/libbac/libbac.vcproj b/bacula/src/win32/libbac/libbac.vcproj index 41b08d796e..a6fb606533 100644 --- a/bacula/src/win32/libbac/libbac.vcproj +++ b/bacula/src/win32/libbac/libbac.vcproj @@ -1565,11 +1565,11 @@ > Documentation link on Win32 to point to index.html instead of bacula.html. Fixed bug #750. diff --git a/regress/.cvsignore b/regress/.cvsignore deleted file mode 100644 index 90b65e5916..0000000000 --- a/regress/.cvsignore +++ /dev/null @@ -1,12 +0,0 @@ -config.out -build -bin -test.out -weird-files -weird-files2 -diff -tmp -working -Makefile -test1.out -time.out diff --git a/regress/Makefile.in b/regress/Makefile.in deleted file mode 100644 index be5940ace0..0000000000 --- a/regress/Makefile.in +++ /dev/null @@ -1,72 +0,0 @@ -# -# Makefile for Bacula regression testing -# -# Note, Makefile is built from Makefile.in, which you should not really -# need to change, by envoking: -# -# ./config -# e.g. -# -# ./config kern.conf -# -# - -# suck in user's configuration -@CONFIG@ - -first_rule: all - -all: - -setup: bacula sed - -# -# Some machines cannot handle the sticky bit and other garbage that -# is in weird-files, so we load and run it only on Linux machines. -# -bacula: all - @rm -rf bin build weird-files tmp - (if test x`uname` = xLinux -o x`uname` = xFreeBSD ; then \ - tar xfz weird-files.tar.gz ;\ - fi) - rm -rf tmp working - mkdir tmp working - echo "Doing: scripts/setup ${BACULA_SOURCE} ${EMAIL} ${WHICHDB} ${TCPWRAPPERS} ${OPENSSL}" - scripts/setup ${BACULA_SOURCE} ${EMAIL} ${WHICHDB} ${TCPWRAPPERS} ${SMTP_HOST} ${OPENSSL} - -sed: - echo "Doing: scripts/do_sed ${EMAIL} ${TAPE_DRIVE} ${AUTOCHANGER} ${AUTOCHANGER_PATH} ${TAPE_DRIVE1} ${SMTP_HOST}" - scripts/do_sed ${EMAIL} ${TAPE_DRIVE} ${AUTOCHANGER} ${AUTOCHANGER_PATH} ${TAPE_DRIVE1} ${SMTP_HOST} - -# Run all non-root userid tests -test: - ./all-non-root-tests - -# run all file and tape tests -full_test: - ./all-tape-and-file-tests - -# These tests require you to run as root -root_test: - ./all-root-tests - -clean: - scripts/cleanup - rm -f /tmp/file-list - rm -fr tmp/* working/* - rm -f test.out - rm -f diff - rm -f 1 2 3 scripts/1 scripts/2 scripts/3 tests/1 tests/2 tests/3 - find . -name .#* -exec rm -rf {} \; - -# Reset our userid after running as root -reset: - chown -R ${USER}:${USER} . tmp working - scripts/cleanup - rm -f /tmp/file-list tmp/file-list - rm -f tmp/* working/* - -distclean: clean - rm -rf bin build weird-files weird-files weird-files2 tmp working - rm -f scripts/*.conf - diff --git a/regress/README b/regress/README deleted file mode 100644 index 040f87fc11..0000000000 --- a/regress/README +++ /dev/null @@ -1,126 +0,0 @@ - Bacula Regression - Kern Sibbald - -This is Bacula's regression script directory. - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -Warning!!!! Make sure not to run it on the same system -with your production Catalog because the tables will all -be cleared. You can run it on the your production system -if you use a different database. E.g. if your production -system uses MySQL, you can use SQLite here. -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - -To set it up, create your personal configuration file, by -copying prototype.conf to xxx.conf or simply editing prototype.conf -directly. - -Then edit your conf file and define appropriate values -for the variables that are in that file. If you want to see -a real example, look at kern.conf, but please don't use my -email address! - -If you are using SQLite, make sure that depkgs is pre-built if it -isn't already: (cd your-depkgs; make sqlite). - -Note, if you use any database other than SQLite, be sure it is not -your production database because Bacula will delete all the tables -and recreate them. With SQLite, a new different database is created, -so it will not affect your production system. - -Using the .conf file, you can now select between any Catalog type: -SQLite, SQLite3, MySQL, or PostgreSQL. Be aware, however, if you -use an installed database on a production server, running these -tests will delete all the tables !!!!!!!!!!!!!!!!!! I run my -tests on a non-production machine, and in addition, I normally use -SQLite as the database, while my production uses MySQL. - -Then do: - - ./config xxx.conf - make setup - -You run the above one time. This will build a Makefile from -Makefile.in and your xxx.conf file, copy the Bacula source, -configure, build it, and configure all the Bacula scripts -and conf files. If you change your source, you will need to -redo this command. - -Then you can run any of the tests in the tests subdirectory. -Each test whose name ends in -root requires you to be root for -a resonable run. Each test is totally independent of any other -test. Aside from the required "make setup", each test is totally -self-initalizing and should clean up after itself. - -All the tests expect you to execute them from the main regress -directory! - -You can run all the disk based tests by doing: - - ./do_file - -The disk based tests are totally separate from any production -system, provided you have configured the database appropriately -as noted above. - -You can run all the disk and most of the tape tests by doing: - - ./do_all - -======== Important !!! ============ -When running the tape tests, Bacula will write on any tape that -is in the tape drive that you have configured. If it is a production -Bacula tape, it will be destroyed. If you have configured an Autochanger, -Bacula will write on the tapes in slots 1 and 2 thus destroying any -information on those tapes, even if they are Bacula production tapes. -=================================== - -Each of the above calls one or more scripts. By looking at the -scripts available in this directory, you can see that there are a number -of options for running tests. - -You can run them individually as: - - tests/two-jobs-test - -or all non-root tests (my normal testing under my account) - - ./all-non-root-tests - -or all tests (I only run these before a production release): - - su - ./all-tests - - -after running the root tests, while still root, it is a good idea -to do: - - make reset - -this cleans up any files that may be created with root permissions. - -If you want to add more tests, do so by putting the shell script -in the tests subdirectory. Be careful when adding (or better not) -new clients, pools, and such to the test-bacula-dir.conf.in file -as it may invalidate a good number of tests, which respond to -questions by answering with a number (i.e. the order of the selection -list is known). It might be better to add your own testb-bacula... -configuration file. - -To avoid re-doing a make setup if you have made a change to the -conf files, and you do not need a new copy of the source, you can simply do: - - make sed - -Debugging failed tests: -The simplest thing to do is to edit tests/xxxx where xxxx is the name of -the test, and change the line "set_debug 0" to "set_debug 1". If the test has -not been updated to have the debug variable, please notify Kern, and I -will be happy to fix it -- I am upgrading them one at a time. - -Also, if you run from time to time on a computer that is not connected -to the network, please be sure that "hostname" is set to "localhost", -otherwise, your tests may fail because the hostname used by Bacula's -./configure cannot be properly resolved. diff --git a/regress/all-non-root-2tape-tests b/regress/all-non-root-2tape-tests deleted file mode 100755 index 5201731263..0000000000 --- a/regress/all-non-root-2tape-tests +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -# -# Run all tape tests -# -tests/test0 -tests/two-volume-tape -tests/incremental-2tape -echo " " -echo " " -echo "2 Tape Test results" -cat test.out -scripts/cleanup diff --git a/regress/all-non-root-tape-tests b/regress/all-non-root-tape-tests deleted file mode 100755 index 5e57ebb2df..0000000000 --- a/regress/all-non-root-tape-tests +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh -# -# Run all tape tests -# -. ./config.out -if test ! x$AUTOCHANGER = x/dev/null ; then - mtx -f $AUTOCHANGER load 1 >/dev/null &2>/dev/null -fi -cp test.out test1.out -tests/test0 -tests/backup-bacula-tape -tests/btape-fill-tape -tests/fixed-block-size-tape -tests/four-concurrent-jobs-tape -tests/four-jobs-tape -tests/incremental-tape -tests/relabel-tape -tests/restore-by-file-tape -tests/small-file-size-tape -tests/truncate-bug-tape -tests/two-pool-tape -tests/2drive-incremental-2tape -tests/bscan-tape -tests/verify-vol-tape -echo " " -echo " " -echo "Test results" -cat test.out -scripts/cleanup diff --git a/regress/all-non-root-tests b/regress/all-non-root-tests deleted file mode 100755 index 38d69e18fe..0000000000 --- a/regress/all-non-root-tests +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/sh -# -# Run all tests -# -rm -f test1.out -tests/test0 -echo " " -tests/auto-label-test -tests/backup-bacula-test -tests/bextract-test -tests/bscan-test -tests/bsr-opt-test -tests/compressed-test -tests/compress-encrypt-test -tests/concurrent-jobs-test -tests/data-encrypt-test -#tests/sparse-encrypt-test -#tests/gigaslam-sparse-test -tests/differential-test -tests/four-concurrent-jobs-test -tests/four-jobs-test -tests/incremental-test -tests/query-test -tests/recycle-test -tests/restore2-by-file-test -tests/restore-by-file-test -tests/restore-disk-seek-test -tests/six-vol-test -tests/span-vol-test -tests/sparse-compressed-test -tests/sparse-test -tests/two-jobs-test -tests/two-vol-test -tests/verify-vol-test -tests/weird-files2-test -tests/weird-files-test -tests/migration-job-test -tests/migration-jobspan-test -tests/migration-volume-test -tests/migration-time-test -tests/hardlink-test -# -# The following are Virtual Disk Autochanger tests -tests/two-pool-test -tests/two-volume-test -tests/incremental-2disk -tests/2drive-incremental-2disk -tests/scratch-pool-test -echo " " -echo "Test results" -cat test.out -scripts/cleanup diff --git a/regress/all-root-tests b/regress/all-root-tests deleted file mode 100755 index 3f077bba4c..0000000000 --- a/regress/all-root-tests +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -# -# Run all root tests -# -rm -f test.out -tests/dev-test-root -tests/etc-test-root -tests/lib-test-root -tests/usr-tape-root -cat test.out -scripts/cleanup diff --git a/regress/all-tape-and-file-tests b/regress/all-tape-and-file-tests deleted file mode 100755 index f3e726914a..0000000000 --- a/regress/all-tape-and-file-tests +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh -# -# Run all tests -# -./all-non-root-tests -./endtime -./all-non-root-tape-tests diff --git a/regress/all-tests b/regress/all-tests deleted file mode 100755 index b1b2b35e86..0000000000 --- a/regress/all-tests +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -# -# Run all tests -# -./all-non-root-tests -./all-root-tests -cat test.out -scripts/cleanup diff --git a/regress/config b/regress/config deleted file mode 100755 index 4bc4f52703..0000000000 --- a/regress/config +++ /dev/null @@ -1,9 +0,0 @@ -#/bin/sh -# -# First argument is expected to be a user's configuration file -# -if ! test -e $1 ; then - echo "Arg1 must specify a config file (e.g. prototype.conf)" - exit 1 -fi -sed -e "/@CONFIG@/r $1" -e "s/@CONFIG@//" Makefile.in >Makefile diff --git a/regress/do_all b/regress/do_all deleted file mode 100755 index cc89df2178..0000000000 --- a/regress/do_all +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -/home/kern/bacula/bin/startmysql -make setup -./starttime -if [ ! -e bin/tape_options ] ; then - touch bin/tape_options -fi -./all-tape-and-file-tests -./endtime -./all-non-root-2tape-tests -./endtime diff --git a/regress/do_all_tapes b/regress/do_all_tapes deleted file mode 100755 index dd07d2ec99..0000000000 --- a/regress/do_all_tapes +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -make setup -./all-non-root-tape-tests diff --git a/regress/do_file b/regress/do_file deleted file mode 100755 index 5fe0a82ecb..0000000000 --- a/regress/do_file +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -# /home/kern/bacula/bin/startmysql -make setup -./starttime -./all-non-root-tests -./endtime diff --git a/regress/endtime b/regress/endtime deleted file mode 100755 index faf419f70d..0000000000 --- a/regress/endtime +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/python -from time import time as now - -t = now() -fn = open('time.out', 'r') -s = fn.readline() -fn.close() -diff = t - float(s) -h = int(diff / 3600) -m = int((diff - h * 3600) / 60) -sec = diff - h * 3600 - m * 60 -print 'Total time = %d:%02d:%02d or %d secs' % (h, m, sec, t - float(s)) diff --git a/regress/file b/regress/file deleted file mode 100755 index 8f2089051b..0000000000 --- a/regress/file +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -./all-non-root-tests diff --git a/regress/freebsd.conf b/regress/freebsd.conf deleted file mode 100644 index 823eb9cbbf..0000000000 --- a/regress/freebsd.conf +++ /dev/null @@ -1,31 +0,0 @@ -# Where to get the source to be tested -# BACULA_SOURCE="${HOME}/bacula/branch-1.36.2" -BACULA_SOURCE="${HOME}/bacula/k" - -# Where to send email !!!!! Change me !!!!!!! -EMAIL=kern@sibbald.com -SMTP_HOST="matou.sibbald.com" - -# Full "default" path where to find sqlite (no quotes!) -SQLITE_DIR=${HOME}/bacula/depkgs/sqlite - -TAPE_DRIVE="/dev/nsa0" -# if you don't have an autochanger set AUTOCHANGER to /dev/null -AUTOCHANGER="/dev/sg0" -# For two drive tests -- set to /dev/null if you do not have it -TAPE_DRIVE1="/dev/null" - -# This must be the path to the autochanger including its name -AUTOCHANGER_PATH="/usr/local/sbin/mtx" - -# Set your database here -WHICHDB?="--with-sqlite=${SQLITE_DIR}" -#WHICHDB="--with-mysql=${HOME}/mysql" - -# Set this to "--with-tcp-wrappers" or "--without-tcp-wrappers" -TCPWRAPPERS="--with-tcp-wrappers" - -# Set this to "" to disable OpenSSL support, "--with-openssl=yes" -# to enable it, or provide the path to the OpenSSL installation, -# eg "--with-openssl=/usr/local" -OPENSSL="" diff --git a/regress/kern.conf b/regress/kern.conf deleted file mode 100644 index 11c2c5160b..0000000000 --- a/regress/kern.conf +++ /dev/null @@ -1,35 +0,0 @@ -# Where to get the source to be tested -# BACULA_SOURCE="${HOME}/bacula/branch-1.38" -#BACULA_SOURCE="${HOME}/bacula/bacula-1.39.22-20060908" -BACULA_SOURCE="${HOME}/bacula/k" - -# Where to send email !!!!! Change me !!!!!!! -EMAIL=kern@sibbald.com -SMTP_HOST="localhost" - -# Full "default" path where to find sqlite (no quotes!) -#SQLITE_DIR=${HOME}/bacula/depkgs/sqlite3 -SQLITE_DIR=${HOME}/bacula/depkgs/sqlite - -TAPE_DRIVE="/dev/nst0" -# if you don't have an autochanger set AUTOCHANGER to /dev/null -AUTOCHANGER="/dev/sg0" -# For two drive tests -- set to /dev/null if you do not have it -TAPE_DRIVE1="/dev/null" - -# This must be the path to the autochanger including its name -AUTOCHANGER_PATH="/usr/sbin/mtx" - -# Set your database here -#WHICHDB="--with-sqlite=${SQLITE_DIR}" -WHICHDB="--with-mysql" -#WHICHDB="--with-postgresql" -#WHICHDB="--with-sqlite3=${SQLITE_DIR}" - -# Set this to "--with-tcp-wrappers" or "--without-tcp-wrappers" -TCPWRAPPERS="--with-tcp-wrappers" - -# Set this to "" to disable OpenSSL support, "--with-openssl=yes" -# to enable it, or provide the path to the OpenSSL installation, -# eg "--with-openssl=/usr/local" -OPENSSL="--with-openssl" diff --git a/regress/misc-tests b/regress/misc-tests deleted file mode 100644 index dd2734c56b..0000000000 --- a/regress/misc-tests +++ /dev/null @@ -1,2 +0,0 @@ -tests/btape-fill-full-tape -tests/eot-fail-tape diff --git a/regress/prototype.conf b/regress/prototype.conf deleted file mode 100644 index 2ea5a7079f..0000000000 --- a/regress/prototype.conf +++ /dev/null @@ -1,52 +0,0 @@ -# -# Prototype personal configuration file for the regression -# scripts. Either edit this file directly, or better copy -# it elsewhere so it won't get overwritten. -# - -# -# Put the full path to the Bacula source code to be tested -# -BACULA_SOURCE= - -# Where to send email messages -# -EMAIL= -SMTP_HOST=localhost - -# Full "default" path where to find sqlite. -# This is only used if you do not specify a database override on the -# make command. -# -# N.B. DON'T PUT QOUTES AROUND THE PATH. -# -SQLITE_DIR=${HOME}/bacula/depkgs/sqlite - -# -# The device name of your tape drive if you have one -# -TAPE_DRIVE=/dev/nst0 -TAPE_DRIVE1=/dev/null - -# -# if you don't have an autochanger set AUTOCHANGER to /dev/null -# -AUTOCHANGER=/dev/sg0 - -# -# This must be the path to the autochanger including its name -# -AUTOCHANGER_PATH=/bin/mtx - -# Set your database here -WHICHDB="--with-sqlite=${SQLITE_DIR}" -#WHICHDB="--with-mysql" -#WHICHDB="--with-postgresql" - -# Set this to "--with-tcp-wrappers" or "--without-tcp-wrappers" -TCPWRAPPERS="--with-tcp-wrappers" - -# Set this to "" to disable OpenSSL support, "--with-openssl=yes" -# to enable it, or provide the path to the OpenSSL installation, -# eg "--with-openssl=/usr/local" -OPENSSL="" diff --git a/regress/run b/regress/run deleted file mode 100755 index d48e2623c6..0000000000 --- a/regress/run +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -bin/bacula start -bin/bconsole -c bin/bconsole.conf diff --git a/regress/scripts/.cvsignore b/regress/scripts/.cvsignore deleted file mode 100644 index 9b411b0739..0000000000 --- a/regress/scripts/.cvsignore +++ /dev/null @@ -1,26 +0,0 @@ -bacula-dir-migration.conf -bacula-sd-migration.conf -crypto-bacula-fd.conf -new-test-bacula-dir.conf -bacula-dir.conf -bacula-fd.conf -bacula-sd.conf -console.conf -bconsole.conf -test-bacula-dir.conf -test-bacula-fd.conf -test-bacula-sd.conf -test-console.conf -testa-bacula-dir.conf -bacula-dir-tape.conf -bacula-sd-tape.conf -bacula-sd-2tape.conf -cleanup-tape -cleanup-2tape -prepare-two-tapes -cleanup-2drive -bacula-sd-2drive.conf -bacula-sd-win32-tape.conf -bacula-sd-2drive.conf -bacula-dir-win32-tape.conf -win32-bacula-dir-tape.conf diff --git a/regress/scripts/bacula-dir-migration.conf.in b/regress/scripts/bacula-dir-migration.conf.in deleted file mode 100644 index fb577c7666..0000000000 --- a/regress/scripts/bacula-dir-migration.conf.in +++ /dev/null @@ -1,229 +0,0 @@ -# -# Default Bacula Director Configuration file -# -# The only thing that MUST be changed is to add one or more -# file or directory names in the Include directive of the -# FileSet resource. -# -# For Bacula release 1.39 -# -# You might also want to change the default email address -# from root to your address. See the "mail" and "operator" -# directives in the Messages resource. -# - -Director { # define myself - Name = @hostname@-dir - DIRport = 8101 # 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 /tmp -Job { - Name = "NightlySave" - Type = Backup - Client=@hostname@-fd - FileSet="Full Set" - Storage = File - Messages = Standard - Pool = Default - Write Bootstrap = "@working_dir@/NightlySave.bsr" - Maximum Concurrent Jobs = 4 - SpoolData = yes -# Prefer Mounted Volumes = no -} - -Job { - Name = "migrate-job" - Type = Migrate - Level = Full - Client=@hostname@-fd - FileSet="Full Set" - Messages = Standard - Storage = DiskChanger - Write Bootstrap = "@working_dir@/migratejob.bsr" - Pool = Default - Maximum Concurrent Jobs = 4 - Selection Type = Job - Selection Pattern = ".*Save" -} - -Job { - Name = "migrate-volume" - Type = Migrate - Level = Full - Client=@hostname@-fd - FileSet="Full Set" - Messages = Standard - Storage = DiskChanger - Write Bootstrap = "@working_dir@/migratevol.bsr" - Pool = Default - Maximum Concurrent Jobs = 4 - Selection Type = Volume - Selection Pattern = "File*" -} - -Job { - Name = "migrate-occupancy" - Type = Migrate - Level = Full - Client=@hostname@-fd - FileSet="Full Set" - Messages = Standard - Storage = DiskChanger - Write Bootstrap = "@working_dir@/migratejob.bsr" - Pool = Default - Maximum Concurrent Jobs = 4 - Selection Type = PoolOccupancy -} - -Job { - Name = "migrate-time" - Type = Migrate - Level = Full - Client=@hostname@-fd - FileSet="Full Set" - Messages = Standard - Storage = DiskChanger - Write Bootstrap = "@working_dir@/migratejob.bsr" - Pool = Default - Maximum Concurrent Jobs = 4 - Selection Type = PoolTime -} - - - - -# Standard Restore template, to be changed by Console program -Job { - Name = "RestoreFiles" - Type = Restore - Client=@hostname@-fd - FileSet="Full Set" - Storage = File - Messages = Standard - Pool = Default - Where = /tmp/bacula-restores -} - - -# List of files to be backed up -FileSet { - Name = "Full Set" - Include { Options { signature=MD5 } - File = &1 >/dev/null -@output tmp/dir.out -status dir -@output tmp/fd.out -status client -@output tmp/sd.out -status $1 -@output -quit -END_OF_DATA -grep "No Jobs running." tmp/dir.out 2>&1 >/dev/null -if [ $? != 0 ] ; then - echo " " - echo " !!!! Zombie Jobs in Director !!!!" - echo " !!!! Zombie Jobs in Director !!!!" >>test.out - echo " " -fi -grep "No Jobs running." tmp/fd.out 2>&1 >/dev/null -if [ $? != 0 ] ; then - echo " " - echo " !!!! Zombie Jobs in File daemon !!!!" - echo " !!!! Zombie Jobs in File daemon !!!!" >>test.out - echo " " -fi -grep "No Jobs running." tmp/sd.out 2>&1 >/dev/null -if [ $? != 0 ] ; then - echo " " - echo " !!!! Zombie Jobs in Storage daemon !!!!" - echo " !!!! Zombie Jobs in Storage daemon !!!!" >>test.out - echo " " -fi -grep "ERROR" tmp/log*.out 2>&1 >/dev/null -if [ $? = 0 ] ; then - echo " " - echo " !!!! ERROR in log output !!!!" - echo " !!!! ERROR in log output !!!!" >>test.out - echo " " -fi -grep "Fatal Error" tmp/log*.out 2>&1 >/dev/null -if [ $? = 0 ] ; then - echo " " - echo " !!!! Fatal Error in log output !!!!" - echo " !!!! Fatal Error in log output !!!!" >>test.out - echo " " -fi - diff --git a/regress/scripts/cleanup b/regress/scripts/cleanup deleted file mode 100755 index 46079e4f1f..0000000000 --- a/regress/scripts/cleanup +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -# -# Cleanup left over files -- both before and after test run -# -rm -rf /tmp/FileVolume* tmp/FileVolume* -rm -rf /tmp/TestVolume001 /tmp/bacula-restores /tmp/Small* -rm -rf tmp/original tmp/bacula-restores tmp/Small* tmp/TestVolume* -rm -rf tmp/restored tmp/largefile tmp/bscan.bsr tmp/log*.out -rm -rf /tmp/sed_tmp /tmp/file-list -rm -rf tmp/build tmp/restore-list tmp/restore2-list -rm -rf tmp/fd.out tmp/dir.out tmp/sd.out -rm -rf working/log tmp/TEST-* -rm -rf working/*.bsr -rm -rf tmp/disk-changer /tmp/disk-changer -find . -name "gigaslam.gif" -exec rm -f {} \; - -bin/bacula stop 2>&1 >/dev/null -cd bin -./drop_bacula_tables >/dev/null 2>&1 -./make_bacula_tables >/dev/null 2>&1 -./grant_bacula_privileges >/dev/null 2>&1 -cd .. diff --git a/regress/scripts/cleanup-2drive.in b/regress/scripts/cleanup-2drive.in deleted file mode 100755 index 32b27c019e..0000000000 --- a/regress/scripts/cleanup-2drive.in +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/sh -# -# Cleanup left over files -- both before and after test run -# -scripts/cleanup - -if test x@autochanger@ != x/dev/null; then - slot=`bin/mtx-changer @autochanger@ loaded 0 @tape_drive1@ 1` - echo "Slot $slot in drive 1" - if test x$slot != x0 ; then - echo "unload slot $slot in drive 1" - bin/mtx-changer @autochanger@ unload $slot @tape_drive1@ 1 - fi - slot=`bin/mtx-changer @autochanger@ loaded 0 @tape_drive@ 0` - echo "Slot $slot in drive 0" - if test x$slot != x0 ; then - echo "unload slot $slot in drive 0" - bin/mtx-changer @autochanger@ unload $slot @tape_drive@ 0 - fi - - - slot=`bin/mtx-changer @autochanger@ loaded 0 @tape_drive1@ 1` - if test x$slot != x2; then - echo "load slot 2 in drive 1" - bin/mtx-changer @autochanger@ load 2 @tape_drive1@ 1 - fi - echo "WEOF drive 1" - mt -f @tape_drive1@ rewind - mt -f @tape_drive1@ weof - echo "unload slot 2 in drive 1" - bin/mtx-changer @autochanger@ unload 2 @tape_drive1@ 1 - - slot=`bin/mtx-changer @autochanger@ loaded 0 @tape_drive@ 0` - echo "Slot $slot in drive 0" - if test x$slot != x1; then - echo "load slot 1 in drive 0" - bin/mtx-changer @autochanger@ load 1 @tape_drive@ 0 - fi - echo "WEOF drive 0" - mt -f @tape_drive@ rewind - mt -f @tape_drive@ weof - echo "unload slot 1 from drive 0" - bin/mtx-changer @autochanger@ unload 1 @tape_drive@ 0 -fi diff --git a/regress/scripts/cleanup-2tape.in b/regress/scripts/cleanup-2tape.in deleted file mode 100755 index 0f33ec95c7..0000000000 --- a/regress/scripts/cleanup-2tape.in +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh -# -# Cleanup left over files -- both before and after test run -# -scripts/cleanup - -if test x@autochanger@ != x/dev/null; then - drive=`bin/mtx-changer @autochanger@ loaded 0 dummy 0` - if test x${drive} != x2; then - bin/mtx-changer @autochanger@ unload 0 @tape_drive@ 0 - bin/mtx-changer @autochanger@ load 2 @tape_drive@ 0 - fi - mt -f @tape_drive@ rewind - mt -f @tape_drive@ weof -fi - - -# -# If we have an autochanger always load tape in slot 1 -# -if test x@autochanger@ != x/dev/null; then - drive=`bin/mtx-changer @autochanger@ loaded 0 dummy 0` - if test x${drive} != x1; then - bin/mtx-changer @autochanger@ unload 0 @tape_drive@ 0 - bin/mtx-changer @autochanger@ load 1 @tape_drive@ 0 - fi -fi - -mt -f @tape_drive@ rewind -mt -f @tape_drive@ weof diff --git a/regress/scripts/cleanup-tape.in b/regress/scripts/cleanup-tape.in deleted file mode 100755 index 98ed537766..0000000000 --- a/regress/scripts/cleanup-tape.in +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -# -# Cleanup left over files -- both before and after test run -# -scripts/cleanup - -mt -f @tape_drive@ rewind -mt -f @tape_drive@ weof diff --git a/regress/scripts/copy-2disk-confs b/regress/scripts/copy-2disk-confs deleted file mode 100755 index 87790955f0..0000000000 --- a/regress/scripts/copy-2disk-confs +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -# -# Setup for using the Virtual Disk Changer (simulates tape changer) -# -/bin/cp -f scripts/bacula-dir-tape.conf bin/bacula-dir.conf -/bin/cp -f scripts/bacula-sd-2disk.conf bin/bacula-sd.conf -/bin/cp -f scripts/test-bacula-fd.conf bin/bacula-fd.conf -/bin/cp -f scripts/test-console.conf bin/bconsole.conf -outf="tmp/sed_tmp" -echo "s%# Autochanger = yes% Autochanger = yes%g" >${outf} -cp bin/bacula-dir.conf tmp/1 -sed -f ${outf} tmp/1 >bin/bacula-dir.conf diff --git a/regress/scripts/copy-2disk-drive-confs b/regress/scripts/copy-2disk-drive-confs deleted file mode 100755 index 7a5dcd30ea..0000000000 --- a/regress/scripts/copy-2disk-drive-confs +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -/bin/cp -f scripts/bacula-dir-tape.conf bin/bacula-dir.conf -/bin/cp -f scripts/bacula-sd-2disk-drive.conf bin/bacula-sd.conf -/bin/cp -f scripts/test-bacula-fd.conf bin/bacula-fd.conf -/bin/cp -f scripts/test-console.conf bin/bconsole.conf -outf="tmp/sed_tmp" -echo "s%# Autochanger = yes% Autochanger = yes%g" >${outf} -cp bin/bacula-dir.conf tmp/1 -sed -f ${outf} tmp/1 >bin/bacula-dir.conf - diff --git a/regress/scripts/copy-2drive-confs b/regress/scripts/copy-2drive-confs deleted file mode 100755 index 0388c4c175..0000000000 --- a/regress/scripts/copy-2drive-confs +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -/bin/cp -f scripts/bacula-dir-tape.conf bin/bacula-dir.conf -/bin/cp -f scripts/bacula-sd-2drive.conf bin/bacula-sd.conf -/bin/cp -f scripts/test-bacula-fd.conf bin/bacula-fd.conf -/bin/cp -f scripts/test-console.conf bin/bconsole.conf -outf="tmp/sed_tmp" -echo "s%# Autochanger = yes% Autochanger = yes%g" >${outf} -cp bin/bacula-dir.conf tmp/1 -sed -f ${outf} tmp/1 >bin/bacula-dir.conf - -# get proper SD tape definitions -cp -f scripts/linux_tape_options bin/tape_options -if test x`uname` = xFreeBSD ; then - cp -f scripts/freebsd_tape_options bin/tape_options -fi diff --git a/regress/scripts/copy-2tape-confs b/regress/scripts/copy-2tape-confs deleted file mode 100755 index e23adc5c82..0000000000 --- a/regress/scripts/copy-2tape-confs +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -/bin/cp -f scripts/bacula-dir-tape.conf bin/bacula-dir.conf -/bin/cp -f scripts/bacula-sd-2tape.conf bin/bacula-sd.conf -/bin/cp -f scripts/test-bacula-fd.conf bin/bacula-fd.conf -/bin/cp -f scripts/test-console.conf bin/bconsole.conf -outf="tmp/sed_tmp" -echo "s%# Autochanger = yes% Autochanger = yes%g" >${outf} -cp bin/bacula-dir.conf tmp/1 -sed -f ${outf} tmp/1 >bin/bacula-dir.conf - -# get proper SD tape definitions -cp -f scripts/linux_tape_options bin/tape_options -if test x`uname` = xFreeBSD ; then - cp -f scripts/freebsd_tape_options bin/tape_options -fi diff --git a/regress/scripts/copy-confs b/regress/scripts/copy-confs deleted file mode 100755 index c12a20a359..0000000000 --- a/regress/scripts/copy-confs +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -/bin/cp -f scripts/bacula-dir.conf bin/bacula-dir.conf -/bin/cp -f scripts/bacula-sd.conf bin/bacula-sd.conf -/bin/cp -f scripts/bacula-fd.conf bin/bacula-fd.conf -/bin/cp -f scripts/bconsole.conf bin/bconsole.conf - -# get proper SD tape definitions -cp -f scripts/linux_tape_options bin/tape_options -if test x`uname` = xFreeBSD ; then - cp -f scripts/freebsd_tape_options bin/tape_options -fi diff --git a/regress/scripts/copy-crypto-confs b/regress/scripts/copy-crypto-confs deleted file mode 100755 index 28df20cb21..0000000000 --- a/regress/scripts/copy-crypto-confs +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -/bin/cp -f scripts/new-test-bacula-dir.conf bin/bacula-dir.conf -/bin/cp -f scripts/test-bacula-sd.conf bin/bacula-sd.conf -/bin/cp -f scripts/crypto-bacula-fd.conf bin/bacula-fd.conf -/bin/cp -f scripts/test-console.conf bin/bconsole.conf -/bin/cp -f scripts/cryptokeypair.pem bin/cryptokeypair.pem diff --git a/regress/scripts/copy-migration-confs b/regress/scripts/copy-migration-confs deleted file mode 100755 index c7680bc40e..0000000000 --- a/regress/scripts/copy-migration-confs +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -# -# Setup for using the Virtual Disk Changer (simulates tape changer) -# -/bin/cp -f scripts/bacula-dir-migration.conf bin/bacula-dir.conf -/bin/cp -f scripts/bacula-sd-migration.conf bin/bacula-sd.conf -/bin/cp -f scripts/test-bacula-fd.conf bin/bacula-fd.conf -/bin/cp -f scripts/test-console.conf bin/bconsole.conf diff --git a/regress/scripts/copy-tape-confs b/regress/scripts/copy-tape-confs deleted file mode 100755 index c8dae32c4a..0000000000 --- a/regress/scripts/copy-tape-confs +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -/bin/cp -f scripts/bacula-dir-tape.conf bin/bacula-dir.conf -/bin/cp -f scripts/bacula-sd-tape.conf bin/bacula-sd.conf -/bin/cp -f scripts/test-bacula-fd.conf bin/bacula-fd.conf -/bin/cp -f scripts/test-console.conf bin/bconsole.conf - -# get proper SD tape definitions -cp -f scripts/linux_tape_options bin/tape_options -if test x`uname` = xFreeBSD ; then - cp -f scripts/freebsd_tape_options bin/tape_options -fi diff --git a/regress/scripts/copy-test-confs b/regress/scripts/copy-test-confs deleted file mode 100755 index 5552c77116..0000000000 --- a/regress/scripts/copy-test-confs +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -/bin/cp -f scripts/new-test-bacula-dir.conf bin/bacula-dir.conf -/bin/cp -f scripts/test-bacula-sd.conf bin/bacula-sd.conf -/bin/cp -f scripts/test-bacula-fd.conf bin/bacula-fd.conf -/bin/cp -f scripts/test-console.conf bin/bconsole.conf - -# get proper SD tape definitions -cp -f scripts/linux_tape_options bin/tape_options -if test x`uname` = xFreeBSD ; then - cp -f scripts/freebsd_tape_options bin/tape_options -fi diff --git a/regress/scripts/copy-testa-confs b/regress/scripts/copy-testa-confs deleted file mode 100755 index 46116b9f90..0000000000 --- a/regress/scripts/copy-testa-confs +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -/bin/cp -f scripts/testa-bacula-dir.conf bin/bacula-dir.conf -/bin/cp -f scripts/test-bacula-sd.conf bin/bacula-sd.conf -/bin/cp -f scripts/test-bacula-fd.conf bin/bacula-fd.conf -/bin/cp -f scripts/test-console.conf bin/bconsole.conf - -# get proper SD tape definitions -cp -f scripts/linux_tape_options bin/tape_options -if test x`uname` = xFreeBSD ; then - cp -f scripts/freebsd_tape_options bin/tape_options -fi diff --git a/regress/scripts/copy-win32-confs b/regress/scripts/copy-win32-confs deleted file mode 100755 index 7cda59aabc..0000000000 --- a/regress/scripts/copy-win32-confs +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -/bin/cp -f scripts/win32-bacula-dir-tape.conf bin/bacula-dir.conf -/bin/cp -f scripts/win32-bacula-sd-tape.conf bin/bacula-sd.conf -/bin/cp -f scripts/win32-bacula-fd.conf bin/bacula-fd.conf -/bin/cp -f scripts/test-console.conf bin/bconsole.conf - -# get proper SD tape definitions -cp -f scripts/linux_tape_options bin/tape_options -if test x`uname` = xFreeBSD ; then - cp -f scripts/freebsd_tape_options bin/tape_options -fi diff --git a/regress/scripts/crypto-bacula-fd.conf.in b/regress/scripts/crypto-bacula-fd.conf.in deleted file mode 100644 index ec4152d2b8..0000000000 --- a/regress/scripts/crypto-bacula-fd.conf.in +++ /dev/null @@ -1,36 +0,0 @@ -# -# Default Bacula File Daemon Configuration file -# -# For Bacula release 1.33 -# -# There is not much to change here except perhaps the -# File daemon Name to -# - -# -# List Directors who are permitted to contact this File daemon -# -Director { - Name = @hostname@-dir - Password = "xevrjURYoCHhn26RaJoWbeWXEY/a3VqGKp/37tgWiuHc" -} - -# -# "Global" File daemon configuration specifications -# -FileDaemon { # this is me - Name = @hostname@-fd - FDport = 8102 # where we listen for the director - WorkingDirectory = "@working_dir@" - Pid Directory = "@piddir@" - SubSys Directory = "@subsysdir@" - PKI Signatures = Yes - PKI Encryption = Yes - PKI Keypair = "@scriptdir@/cryptokeypair.pem" -} - -# Send all messages except skipped files back to Director -Messages { - Name = Standard - director = @hostname@-dir = all, !terminate -} diff --git a/regress/scripts/cryptokeypair.pem b/regress/scripts/cryptokeypair.pem deleted file mode 100644 index 440dcce4f0..0000000000 --- a/regress/scripts/cryptokeypair.pem +++ /dev/null @@ -1,23 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIBOgIBAAJBAKIc649Amif6weq+c8rVtS7jyn7E9oZ9Irrl9WviQZi0+J2OLgCi -PNaj/FzPhTIgBBRFEP0ZU5DfVv6CoXKbpr8CAwEAAQJAQbvUUFvzpi5pnxPmw+Jv -+zlmjIy1Icdv47UHFN3Dl3V0+X05g12xUlnyNKzo2jlSwkBi1w8AJCMV6/TnnLiI -AQIhAM4SH9cb01DUH+1O5gk90GgNYW1Aq2vL1vygm02kppi/AiEAyWQ9eAILPXhX -H3a7mEj8z1bCTBiVrhe73NUjim4QcgECIEC3hHRj8ruBwv0eODRSy27CNQTAuJVE -ESKJtfxuZzu1AiEAotXYFbahW/x3hUs9d25ca1EdHOYr8G3kSjRT3lQMHAECIHBl -uX+Ywc1jjWhc+vN2ZrLWkKMVbrd+SWOPUQGroM0j ------END RSA PRIVATE KEY----- ------BEGIN CERTIFICATE----- -MIICKzCCAdWgAwIBAgIJAO4x/m+tHX8HMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV -BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX -aWRnaXRzIFB0eSBMdGQwHhcNMDYxMjA0MDMxMzUwWhcNMDcwMTAzMDMxMzUwWjBF -MQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50 -ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKIc -649Amif6weq+c8rVtS7jyn7E9oZ9Irrl9WviQZi0+J2OLgCiPNaj/FzPhTIgBBRF -EP0ZU5DfVv6CoXKbpr8CAwEAAaOBpzCBpDAdBgNVHQ4EFgQUiGz2I+bks0nCHyCI -IwuV3DpDPMwwdQYDVR0jBG4wbIAUiGz2I+bks0nCHyCIIwuV3DpDPMyhSaRHMEUx -CzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRl -cm5ldCBXaWRnaXRzIFB0eSBMdGSCCQDuMf5vrR1/BzAMBgNVHRMEBTADAQH/MA0G -CSqGSIb3DQEBBQUAA0EAkjFYcs9rrpdURlBaNlbud68VlA5rU+Bv4keYx41DUmqo -sXtkQZENR9iYYYhOUso1/1dwQgrt3egjTZTtq7o5zw== ------END CERTIFICATE----- diff --git a/regress/scripts/do_sed b/regress/scripts/do_sed deleted file mode 100755 index c471970e0e..0000000000 --- a/regress/scripts/do_sed +++ /dev/null @@ -1,74 +0,0 @@ -#!/bin/sh -# -if test $# != 6 ; then - echo "First arg must be email name" - echo " and the second must be a tape drive" - echo " and the third must be a tape control name or /dev/null" - echo " and the fourth must be the full path to the mtx program" - echo " and the fifth must be tape drive 1 or /dev/null" - echo " and the sixth must be the smtp or email host" - exit 1 -fi -cwd=`pwd` -mkdir -p ${cwd}/bin -out="/tmp/sed_tmp" -HOST="localhost" -# Create sed command script -echo "s%@sbindir@%${cwd}/bin%g" >${out} -echo "s%@scriptdir@%${cwd}/bin%g" >>${out} -echo "s%@working_dir@%${cwd}/working%g" >>${out} -echo "s%@piddir@%${cwd}/working%g" >>${out} -echo "s%@subsysdir@%${cwd}/working%g" >>${out} -echo "s%@job_email@%${1}%g" >>${out} -echo "s%@tape_drive@%${2}%g" >>${out} -echo "s%@autochanger@%${3}%g" >>${out} -echo "s%@tmpdir@%${cwd}/tmp%g" >>${out} -echo "s%@hostname@%${HOST}%g" >>${out} -echo "s%@changer_path@%${4}%g" >>${out} -echo "s%@tape_drive1@%${5}%g" >>${out} -echo "s%@smtp_host@%${6}%g" >>${out} -echo "s%@disk_drive@%${cwd}/tmp/disk-changer%g" >>${out} - -echo "AUTOCHANGER=\"${3}\"" >config.out -echo "TAPE_DRIVE1=\"${5}\"" >>config.out - - -# process .in files with sed script -sed -f ${out} ${cwd}/scripts/test-bacula-dir.conf.in >${cwd}/scripts/test-bacula-dir.conf -sed -f ${out} ${cwd}/scripts/new-test-bacula-dir.conf.in >${cwd}/scripts/new-test-bacula-dir.conf -sed -f ${out} ${cwd}/scripts/testa-bacula-dir.conf.in >${cwd}/scripts/testa-bacula-dir.conf -sed -f ${out} ${cwd}/scripts/test-bacula-fd.conf.in >${cwd}/scripts/test-bacula-fd.conf -sed -f ${out} ${cwd}/scripts/test-bacula-sd.conf.in >${cwd}/scripts/test-bacula-sd.conf -sed -f ${out} ${cwd}/scripts/test-console.conf.in >${cwd}/scripts/test-console.conf -sed -f ${out} ${cwd}/scripts/crypto-bacula-fd.conf.in >${cwd}/scripts/crypto-bacula-fd.conf -sed -f ${out} ${cwd}/scripts/bacula-dir-tape.conf.in >${cwd}/scripts/bacula-dir-tape.conf -sed -f ${out} ${cwd}/scripts/bacula-dir-migration.conf.in >${cwd}/scripts/bacula-dir-migration.conf -sed -f ${out} ${cwd}/scripts/win32-bacula-dir-tape.conf.in >${cwd}/scripts/win32-bacula-dir-tape.conf -sed -f ${out} ${cwd}/scripts/bacula-sd-tape.conf.in >${cwd}/scripts/bacula-sd-tape.conf -sed -f ${out} ${cwd}/scripts/bacula-sd-2tape.conf.in >${cwd}/scripts/bacula-sd-2tape.conf -sed -f ${out} ${cwd}/scripts/bacula-sd-migration.conf.in >${cwd}/scripts/bacula-sd-migration.conf -sed -f ${out} ${cwd}/scripts/bacula-sd-2disk.conf.in >${cwd}/scripts/bacula-sd-2disk.conf -sed -f ${out} ${cwd}/scripts/bacula-sd-2drive.conf.in >${cwd}/scripts/bacula-sd-2drive.conf -sed -f ${out} ${cwd}/scripts/bacula-sd-2disk-drive.conf.in >${cwd}/scripts/bacula-sd-2disk-drive.conf -sed -f ${out} ${cwd}/scripts/cleanup-tape.in >${cwd}/scripts/cleanup-tape -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 - -cp ${cwd}/bin/bacula-sd.conf /tmp/bac$$ -sed s%/tmp%${cwd}/tmp%g /tmp/bac$$ >${cwd}/bin/bacula-sd.conf -chmod 777 ${cwd}/scripts/cleanup-*tape ${cwd}/scripts/cleanup-*drive ${cwd}/scripts/prepare-two-tapes -rm -f /tmp/bac$$ -cp ${cwd}/bin/mtx-changer /tmp/bac$$ -sed "s%^MTX.*$%MTX=${4}%g" /tmp/bac$$ >${cwd}/bin/mtx-changer -chmod 777 ${cwd}/bin/mtx-changer - -# get proper SD tape definitions -cp -f ${cwd}/scripts/linux_tape_options ${cwd}/bin/tape_options -if test x`uname` = xFreeBSD ; then - cp -f ${cwd}/scripts/freebsd_tape_options ${cwd}/bin/tape_options -fi - -rm -f ${out} -rm -f /tmp/bac$$ diff --git a/regress/scripts/exclude-dev-test b/regress/scripts/exclude-dev-test deleted file mode 100644 index 4165ea1ae7..0000000000 --- a/regress/scripts/exclude-dev-test +++ /dev/null @@ -1,5 +0,0 @@ -dev/ptmx -dev/pts -dev/rd/c5d2 -dev/rd -dev/shm diff --git a/regress/scripts/exclude-etc-test b/regress/scripts/exclude-etc-test deleted file mode 100644 index f59ca8df2a..0000000000 --- a/regress/scripts/exclude-etc-test +++ /dev/null @@ -1 +0,0 @@ -etc/mail/statistics diff --git a/regress/scripts/exclude-lib-test b/regress/scripts/exclude-lib-test deleted file mode 100644 index 5be32f443b..0000000000 --- a/regress/scripts/exclude-lib-test +++ /dev/null @@ -1,5 +0,0 @@ -lib/ld-2.2.5.so -lib/libtermcap.so.2.0.8 -lib/libc-2.2.5.so -lib/libnsl-2.2.5.so -lib/libnss_files-2.2.5.so diff --git a/regress/scripts/flist b/regress/scripts/flist deleted file mode 100644 index 87f103defe..0000000000 --- a/regress/scripts/flist +++ /dev/null @@ -1,23 +0,0 @@ -/build/configure -/build/src/stored/bextract -/build/src/tools/testfind -/build/Makefile.in -/build/src/dird/bacula-dir -/build/src/console/bconsole -/build/src/filed/bacula-fd -/build/src/findlib/find_one.c -/build/src/jcr.h -/build/platforms/Makefile.in -/build/platforms/redhat/Makefile.in -/build/scripts/Makefile.in -/build/src/win32/filed/winservice.cpp -/build/src/filed/restore.c -/build/autoconf/configure.in -/build/examples/afs-bacula -/build/src/win32/Makefile.inc.in -/build/src/win32/installer/winbacula.nsi -/build/autoconf/configure.in -/build/src/version.h -/build/src/lib/message.c -/build/src/lib/bnet_server.c -/build/src/lib/libbac.a diff --git a/regress/scripts/freebsd_tape_options b/regress/scripts/freebsd_tape_options deleted file mode 100644 index 05be3449c4..0000000000 --- a/regress/scripts/freebsd_tape_options +++ /dev/null @@ -1,8 +0,0 @@ -# -# FreeBSD tape drive options -# -Hardware End of Medium = no -Fast Forward Space File = no -BSF at EOM = yes -Backward Space Record = no -TWO EOF = yes diff --git a/regress/scripts/functions b/regress/scripts/functions deleted file mode 100644 index 7da6d38058..0000000000 --- a/regress/scripts/functions +++ /dev/null @@ -1,147 +0,0 @@ -# -# A set of useful functions to be sourced in each test -# - -start_test() -{ - echo " " - echo " " - echo " === Starting $TestName at `date +%R:%S` ===" - echo " === Starting $TestName at `date +%R:%S` ===" >>working/log - echo " " -} - -set_debug() -{ - debug=$1 - if test "$debug" -eq 1 ; then - out="tee" - else - out="output" - fi -} - -run_bacula() -{ - if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf - else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null - fi -} - -run_bconsole() -{ - if test "$debug" -eq 1 ; then - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf - else - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null - fi -} - -run_btape() -{ - if test "$debug" -eq 1 ; then - cat tmp/bconcmds | bin/btape -c bin/bacula-sd.conf DDS-4 | tee tmp/log1.out - else - cat tmp/bconcmds | bin/btape -c bin/bacula-sd.conf DDS-4 2>&1 >tmp/log1.out - fi -} - -run_bscan() -{ - if test "$debug" -eq 1 ; then - bin/bscan $* | tee tmp/log.out - else - bin/bscan $* 2>&1 >/dev/null - fi -} - - -stop_bacula() -{ - bin/bacula stop 2>&1 >/dev/null -} - -check_for_zombie_jobs() -{ - scripts/check_for_zombie_jobs $1 -} - -change_jobname() -{ - if test $# -eq 1; then - oldname=NightlySave - newname=$1 - else - oldname=$1 - newname=$2 - fi - rm -f bin/1 - mv bin/bacula-dir.conf bin/1 - echo "s%${oldname}%${newname}%g" >tmp/1 - sed -f tmp/1 bin/1 >bin/bacula-dir.conf -# echo "Job ${oldname} changed to ${newname}" -} - -check_two_logs() -{ - grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null - bstat=$? - grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null - rstat=$? -} - -check_restore_diff() -{ - diff -r build tmp/bacula-restores${cwd}/build 2>&1 >/dev/null - dstat=$? -} - -check_restore_tmp_build_diff() -{ - diff -r tmp/build tmp/bacula-restores${cwd}/tmp/build 2>&1 >/dev/null - dstat=$? -} - -end_test() -{ - if [ $dstat != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! $TestName Bacula source failed!!! !!!!! " - echo " !!!!! $TestName failed!!! !!!!! " >>test.out - if [ $bstat != 0 -o $rstat != 0 ] ; then - echo " !!!!! Bad Job termination status !!!!! " - echo " !!!!! Bad Job termination status !!!!! " >>test.out - else - echo " !!!!! Restored files differ !!!!! " - echo " !!!!! Restored files differ !!!!! " >>test.out - fi - echo " " - else - echo " ===== $TestName Bacula source OK `date +%R:%S` ===== " - echo " ===== $TestName OK `date +%R:%S` ===== " >>test.out - if test "$debug" -eq 0 ; then - scripts/cleanup - fi - fi -} - -copy_tape_confs() -{ - scripts/copy-tape-confs - scripts/cleanup-tape -} - -copy_test_confs() -{ - scripts/copy-test-confs - scripts/cleanup -} - - -# Save current directory -cwd=`pwd` diff --git a/regress/scripts/linux_osst_tape_options b/regress/scripts/linux_osst_tape_options deleted file mode 100644 index 5def0c08cb..0000000000 --- a/regress/scripts/linux_osst_tape_options +++ /dev/null @@ -1,7 +0,0 @@ - Minimum Block Size = 32768 - Maximum Block Size = 32768 - Hardware End of Medium = yes - BSF at EOM = yes - Fast Forward Space File = yes - Two EOF = no - diff --git a/regress/scripts/linux_tape_options b/regress/scripts/linux_tape_options deleted file mode 100644 index 601eb82aa5..0000000000 --- a/regress/scripts/linux_tape_options +++ /dev/null @@ -1 +0,0 @@ -# nothing needed for Linux diff --git a/regress/scripts/new-test-bacula-dir.conf.in b/regress/scripts/new-test-bacula-dir.conf.in deleted file mode 100644 index f190724fc3..0000000000 --- a/regress/scripts/new-test-bacula-dir.conf.in +++ /dev/null @@ -1,342 +0,0 @@ -# -# Default Bacula Director Configuration file -# -# The only thing that MUST be changed is to add one or more -# file or directory names in the Include directive of the -# FileSet resource. -# -# For Bacula release 1.39 or later -# -# You might also want to change the default email address -# from root to your address. See the "mail" and "operator" -# directives in the Messages resource. -# - -Director { # define myself - Name = @hostname@-dir - DIRport = 8101 # where we listen for UA connections - QueryFile = "@scriptdir@/query.sql" - WorkingDirectory = "@working_dir@" - PidDirectory = "@piddir@" - SubSysDirectory = "@subsysdir@" - Maximum Concurrent Jobs = 4 - Password = "pNvX1WiXnwv2C/F7E52LGvw6rKjbbPvu2kyuPa9pVaL3" # Console password - Messages = Standard -} - -# -# Define the main nightly save backup job -# By default, this job will back up to disk in /tmp -Job { - Name = "NightlySave" - Type = Backup - Client=@hostname@-fd - FileSet="Full Set" - Storage = File - Messages = Standard - Pool = Default - Write Bootstrap = "@working_dir@/NightlySave.bsr" - Maximum Concurrent Jobs = 4 - SpoolData=yes -} - -Job { - Name = "MonsterSave" - Type = Backup - Client=@hostname@-fd - FileSet="Full Set" - Storage = File1 - Messages = Standard - Pool = Default - Write Bootstrap = "@working_dir@/NightlySave.bsr" -} - - -Job { - Name = "VerifyVolume" - Type = Verify - Level = VolumeToCatalog - Client=@hostname@-fd - FileSet="Full Set" - Storage = File - Messages = Standard - Pool = Default - Write Bootstrap = "@working_dir@/NightlySave.bsr" -} - - -Job { - Name = "SparseTest" - Type = Backup - Client=@hostname@-fd - FileSet="SparseSet" - Storage = File - Messages = Standard - Pool = Default - Write Bootstrap = "@working_dir@/NightlySave.bsr" -} - -Job { - Name = "CompressedTest" - Type = Backup - Client=@hostname@-fd - FileSet="CompressedSet" - Storage = File - Messages = Standard - Pool = Default - Maximum Concurrent Jobs = 4 - Write Bootstrap = "@working_dir@/NightlySave.bsr" -} - -Job { - Name = "SparseCompressedTest" - Type = Backup - Client=@hostname@-fd - FileSet="SparseCompressedSet" - Storage = File - Messages = Standard - Pool = Default - Write Bootstrap = "@working_dir@/NightlySave.bsr" -} - - -# Backup the catalog database (after the nightly save) -Job { - Name = "BackupCatalog" - Type = Backup - Client=@hostname@-fd - FileSet="Catalog" -# Schedule = "WeeklyCycleAfterBackup" - Storage = File - Messages = Standard - Pool = Default - # This creates an ASCII copy of the catalog - RunBeforeJob = "@sbindir@/make_catalog_backup -u bacula" - # This deletes the copy of the catalog - RunAfterJob = "@sbindir@/delete_catalog_backup" - Write Bootstrap = "@working_dir@/BackupCatalog.bsr" -} - -JobDefs { - Name = "BackupJob" - Type = Backup - Pool = Default - Storage = File - Messages = Standard - Priority = 10 -} - -Job { - JobDefs = "BackupJob" - Name = "bug621-job-1" - Client = @hostname@-fd - FileSet="Full Set" - ClientRunBeforeJob = "/bin/sleep 60" -} - -Job { - JobDefs = "BackupJob" - Name = "bug621-job-2" - Client = @hostname@-fd - FileSet = "Full Set" - Max Run Time = 30 - Priority = 15 -} - - -# Standard Restore template, to be changed by Console program -Job { - Name = "RestoreFiles" - Type = Restore - Client=@hostname@-fd - FileSet="Full Set" - Storage = File - Messages = Standard - Pool = Default - Where = /tmp/bacula-restores -} - - -# List of files to be backed up -FileSet { - Name = "Full Set" - Include { Options { signature=MD5 } - File = /tmp/file-list -if test ! -d ${cwd}/tmp/build ; then - mkdir ${cwd}/tmp/build -fi -cp -p ${cwd}/build/src/dird/*.c ${cwd}/tmp/build -cd ${cwd}/tmp -echo "${cwd}/tmp/build/ficheriro1.txt" >restore-list -echo "${cwd}/tmp/build/ficheriro2.txt" >>restore-list -cd ${cwd} - -# Turn off Prefer Mounted Volumes so we use 2 drives -outf="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 <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=1 Pool=Default drive=0 -label storage=DDS-4 volume=TestVolume002 slot=2 Pool=Default drive=1 -status storage=DDS-4 -@#setdebug level=120 storage=DDS-4 -run job=NightlySave yes -run job=NightlySave yes -run job=NightlySave yes -run job=NightlySave yes -run job=NightlySave yes -@sleep 3 -status storage=DDS-4 -wait -list volumes -list jobs -status storage=DDS-4 -messages -quit -END_OF_DATA - -run_bacula -echo "ficheriro1.txt" >${cwd}/tmp/build/ficheriro1.txt -echo "ficheriro2.txt" >${cwd}/tmp/build/ficheriro2.txt - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -@# Force Incremental on the second Volume -update volume=TestVolume001 VolStatus=Used -status storage=DDS-4 -@#setdebug level=120 storage=DDS-4 -run level=Incremental job=NightlySave yes -wait -list volumes -status storage=DDS-4 -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores -7 -<${cwd}/tmp/restore-list - -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bconsole -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -check_two_logs -# The restore should read from TestVolume002, which was on drive 1 -grep tmp/log2.out TestVolume002 -if [ $? != 0 ] ; then - rstat=$? -fi - -# -# Delete .c files because we will only restored the txt files -# -rm -f tmp/build/*.c -check_restore_tmp_build_diff - -end_test diff --git a/regress/tests/2drive-incremental-2tape b/regress/tests/2drive-incremental-2tape deleted file mode 100755 index a301c1ca55..0000000000 --- a/regress/tests/2drive-incremental-2tape +++ /dev/null @@ -1,112 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory then create some -# new files, do an Incremental and restore those two files. -# -# This script uses the autochanger and two tapes -# -. config.out -if test x${TAPE_DRIVE1} = x/dev/null ; then - echo "Skipping 2drive-incremenatal-2tape test. No second drive." - exit -fi -TestName="2drive-incremental-2tape" -JobName="2drive2tape" -. scripts/functions -set_debug 0 - -cwd=`pwd` - -scripts/copy-2drive-confs -scripts/cleanup-2drive - -change_jobname localhost-fd $JobName - -echo "${cwd}/tmp/build" >/tmp/file-list -if test ! -d ${cwd}/tmp/build ; then - mkdir ${cwd}/tmp/build -fi -cp -p ${cwd}/build/src/dird/*.c ${cwd}/tmp/build -cd ${cwd}/tmp -echo "${cwd}/tmp/build/ficheriro1.txt" >restore-list -echo "${cwd}/tmp/build/ficheriro2.txt" >>restore-list -cd ${cwd} - -# Turn off Prefer Mounted Volumes so we use 2 drives -outf="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 - -start_test - -# Write out bconsole commands -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=1 Pool=Default drive=0 -label storage=DDS-4 volume=TestVolume002 slot=2 Pool=Default drive=1 -@#setdebug level=100 storage=DDS-4 -run job=NightlySave yes -run job=NightlySave yes -run job=NightlySave yes -run job=NightlySave yes -run job=NightlySave yes -@sleep 3 -status storage=DDS-4 -wait -list volumes -list jobs -status storage=DDS-4 -messages -quit -END_OF_DATA - -run_bacula - -echo "ficheriro1.txt" >${cwd}/tmp/build/ficheriro1.txt -echo "ficheriro2.txt" >${cwd}/tmp/build/ficheriro2.txt - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -@# Force Incremental on the second Volume -update volume=TestVolume001 VolStatus=Used -status storage=DDS-4 -@#setdebug level=400 storage=DDS-4 -run level=Incremental job=NightlySave yes -wait -list volumes -status storage=DDS-4 -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores -7 -<${cwd}/tmp/restore-list - -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bconsole -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -check_two_logs -# -# Delete .c files because we will only restored the txt files -# -rm -f tmp/build/*.c -check_restore_tmp_build_diff - -end_test diff --git a/regress/tests/auto-label-test b/regress/tests/auto-label-test deleted file mode 100755 index 6583937e03..0000000000 --- a/regress/tests/auto-label-test +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/sh -# -# Test if Bacula can automatically create a Volume label. -# - -TestName="auto-label-test" -JobName=AutoLabel -. scripts/functions -set_debug 0 -copy_test_confs - -echo "${cwd}/build" >/tmp/file-list - -cp ${cwd}/bin/bacula-dir.conf ${cwd}/tmp/1 -sed "s%# Label Format% Label Format%" ${cwd}/tmp/1 >${cwd}/bin/bacula-dir.conf - -change_jobname CompressedTest $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -status all -status all -list pools -messages -@#setdebug level=110 storage=File -run job=$JobName storage=File yes -list pools -list volumes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=File -unmark * -mark * -count -ls * -dir * -find Makefile -pwd -lsmark -estimate -? -help -done -yes -wait -messages -@$out -quit -END_OF_SCRIPT - -run_bacula -check_for_zombie_jobs storage=File -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/tests/backup-bacula-tape b/regress/tests/backup-bacula-tape deleted file mode 100755 index 21d521d563..0000000000 --- a/regress/tests/backup-bacula-tape +++ /dev/null @@ -1,117 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# to a tape then restore it, we do that twice to ensure that -# we can correctly append to a tape. -# We also use the purge and the relabel commands as -# well as a pile of status storage commands. -# -TestName="backup-bacula-tape" -JobName=backuptape -. scripts/functions -set_debug 0 - -scripts/copy-tape-confs -scripts/cleanup-tape - -echo "${cwd}/build" >/tmp/file-list - -change_jobname NightlySave $JobName -start_test - - -# Write out bconsole commands -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -@#setdebug level=200 storage=DDS-4 -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -purge volume=TestVolume001 -relabel pool=Default storage=DDS-4 oldVolume=TestVolume001 volume=TestVolume002 slot=0 -purge volume=TestVolume002 -relabel pool=Default storage=DDS-4 oldVolume=TestVolume002 volume=TestVolume001 slot=0 -run job=$JobName yes -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -@sleep 1 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -@sleep 1 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -@sleep 1 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -@sleep 1 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select all storage=DDS-4 done -yes -wait -list volumes -messages -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -# -# Now do a second backup after making a few changes -# -touch ${cwd}/build/src/dird/*.c -echo "test test" > ${cwd}/build/src/dird/xxx - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -list volumes -run job=$JobName yes -wait -list volumes -messages -@# -@# now do a second restore -@# -@$out tmp/log2.out -list volumes -restore where=${cwd}/tmp/bacula-restores select all storage=DDS-4 done -yes -wait -list volumes -messages -@$out -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/tests/backup-bacula-test b/regress/tests/backup-bacula-test deleted file mode 100755 index 7f50f4674c..0000000000 --- a/regress/tests/backup-bacula-test +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# then restore it. -# -TestName="backup-bacula-test" -JobName=backup -. scripts/functions -set_debug 0 - -scripts/cleanup -scripts/copy-confs - -change_jobname Client1 $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label volume=TestVolume001 -@#setdebug level=100 storage=File -run job=$JobName yes -status storage=File -status storage=File -status storage=File -status storage=File -status storage=File -status storage=File -@sleep 1 -status storage=File -status storage=File -status storage=File -status storage=File -status storage=File -@sleep 1 -status storage=File -status storage=File -status storage=File -status storage=File -status storage=File -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select all done -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=File -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/tests/backup-win32-tape b/regress/tests/backup-win32-tape deleted file mode 100755 index f6f6c3b0c0..0000000000 --- a/regress/tests/backup-win32-tape +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# to a tape then restore it, we do that twice to ensure that -# we can correctly append to a tape. -# -TestName="backup-win32-tape" -JobName=backupwintape -. scripts/functions -set_debug 0 - -scripts/cleanup-tape -scripts/copy-win32-confs - -echo "${cwd}/build" >/tmp/file-list - -change_jobname $JobName -start_test - - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -run job=NightlySave yes -@sleep 10 -status storage=DDS-4 -@sleep 30 -messages -wait -messages -@# -@# now do a restore -@# -@$outt tmp/log2.out -@#restore where=${cwd}/tmp/bacula-restores select all storage=DDS-4 done -@#yes -@#wait -@#messages -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/tests/bextract-test b/regress/tests/bextract-test deleted file mode 100755 index 904a39223b..0000000000 --- a/regress/tests/bextract-test +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory but -# split the archive into two volumes, then build a BSR with -# the restore command and use bextract to restore the files. -# -TestName="bextract-test" -JobName="bextract" -. scripts/functions -set_debug 0 - -scripts/cleanup -scripts/copy-test-confs -echo "${cwd}/build" >/tmp/file-list - -change_jobname NightlySave $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label storage=File1 volume=TestVolume001 -label storage=File1 volume=TestVolume002 -update Volume=TestVolume001 MaxVolBytes=3000000 -@#setdebug level=400 dir -@#setdebug level=400 storage=File1 -run job=$JobName storage=File1 yes -wait -messages -@# -@# now build the bsr file -@# -@$out tmp/log2.out -restore bootstrap=${cwd}/working/restore.bsr where=${cwd}/tmp/bacula-restores select all storage=File1 done -no -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=File1 -stop_bacula - -mkdir -p ${cwd}/tmp/bacula-restores -bin/bextract -b working/restore.bsr -c bin/bacula-sd.conf ${cwd}/tmp ${cwd}/tmp/bacula-restores 2>&1 >/dev/null -rstat=$? -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -check_restore_diff -end_test diff --git a/regress/tests/bscan-fast-tape b/regress/tests/bscan-fast-tape deleted file mode 100755 index 2c8121896d..0000000000 --- a/regress/tests/bscan-fast-tape +++ /dev/null @@ -1,89 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory using the compressed option -# then backup four times, each with incremental then -# do a bscan and restore. -# It should require at least 4 different bsrs. -# -TestName="bscan-tape" -JobName=bscantape -. scripts/functions -set_debug 0 - -copy_tape_confs - -echo "${cwd}/build" >/tmp/file-list - -cp ${cwd}/bin/bacula-sd.conf ${cwd}/tmp/1 -# sed "s%# Maximum File Size% Maximum File Size%" ${cwd}/tmp/1 >${cwd}/bin/bacula-sd.conf - -change_jobname NightlySave $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -setdebug level=2 storage=DDS-4 -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -run job=$JobName yes -wait -messages -quit -END_OF_DATA - -echo "Starting Bacula tape writing" -#bin/btape -c bin/bacula-sd.conf /dev/nst0 </dev/null 2>&1 -./make_bacula_tables >/dev/null 2>&1 -./grant_bacula_privileges 2>&1 >/dev/null -cd .. - -echo "Begin attempt to read tape that crashes the system" -echo "volume=TestVolume001" >tmp/bscan.bsr -strace -o strace.new bin/bscan -d200 -w working -m -s -v -b tmp/bscan.bsr -c bin/bacula-sd.conf DDS-4 -exit -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log2.out -@# -@# now do a restore -@# -restore where=${cwd}/tmp/bacula-restores select all storage=DDS-4 done -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula -rm -f ${cwd}/build/src/lib/dummy - -check_two_logs -check_restore_diff -end_test diff --git a/regress/tests/bscan-tape b/regress/tests/bscan-tape deleted file mode 100755 index 7f7e708c1e..0000000000 --- a/regress/tests/bscan-tape +++ /dev/null @@ -1,142 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory using the compressed option -# then backup four times, each with incremental then -# do a bscan and restore. -# It should require at least 4 different bsrs. -# -TestName="bscan-tape" -JobName=bscantape -. scripts/functions -set_debug 0 - -copy_tape_confs - -echo "${cwd}/build" >/tmp/file-list - -cp ${cwd}/bin/bacula-sd.conf ${cwd}/tmp/1 -sed "s%# Maximum File Size% Maximum File Size%" ${cwd}/tmp/1 >${cwd}/bin/bacula-sd.conf - -change_jobname NightlySave $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -estimate job=$JobName listing -estimate job=$JobName listing -estimate job=$JobName listing -messages -@$out tmp/log1.out -setdebug level=2 storage=DDS-4 -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -run job=$JobName yes -wait -run job=$JobName level=Full yes -wait -run job=$JobName level=Full yes -wait -messages -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 - -echo "Backup 1 done" -# make some files for the incremental to pick up -touch ${cwd}/build/src/dird/*.c ${cwd}/build/src/dird/*.o -touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o - -# -# run a second job -# -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -run job=$JobName level=Incremental yes -wait -messages -quit -END_OF_DATA - -run_bacula -scripts/check_for_zombie_jobs storage=DDS-4 - -echo "Backup 2 done" -touch ${cwd}/build/src/dird/*.c -touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o -# -# run a third job -# -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -run job=$JobName level=Incremental yes -wait -messages -quit -END_OF_DATA - -run_bacula -scripts/check_for_zombie_jobs storage=DDS-4 - -echo "Backup 3 done" -# make some files for the incremental to pick up -touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o -#echo "abc" > ${cwd}/build/src/lib/dummy -# -# run a fourth job -# -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -run job=$JobName level=Incremental yes -wait -messages -quit -END_OF_DATA - -run_bacula - -scripts/check_for_zombie_jobs storage=DDS-4 -stop_bacula - -echo "Backup 4 done" -# -# now drop and recreate the database -# -cd bin -./drop_bacula_tables >/dev/null 2>&1 -./make_bacula_tables >/dev/null 2>&1 -./grant_bacula_privileges 2>&1 >/dev/null -cd .. - -echo "volume=TestVolume001" >tmp/bscan.bsr -bin/bscan -w working -m -s -v -b tmp/bscan.bsr -c bin/bacula-sd.conf DDS-4 2>&1 >/dev/null - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log2.out -@# -@# now do a restore -@# -restore where=${cwd}/tmp/bacula-restores select all storage=DDS-4 done -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula -rm -f ${cwd}/build/src/lib/dummy - -check_two_logs -check_restore_diff -end_test diff --git a/regress/tests/bscan-test b/regress/tests/bscan-test deleted file mode 100755 index 91fa8598a2..0000000000 --- a/regress/tests/bscan-test +++ /dev/null @@ -1,84 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory but -# split the archive into two volumes then bscan it -# into the catalog after the backup. It also to a limited -# extent tests the purge volume and delete volume commands. -# - -TestName="bscan-test" -JobName=bscan -. scripts/functions -set_debug 0 - -cwd=`pwd` -scripts/cleanup -scripts/copy-test-confs -echo "${cwd}/build" >/tmp/file-list - -change_jobname NightlySave $JobName -start_test - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=File1 -TestVolume001 -label storage=File1 -TestVolume002 -update Volume=TestVolume001 MaxVolBytes=3000000 -run job=$JobName storage=File1 -yes -wait -messages -@$out /dev/null -@# -@# now purge the Volume -@# -purge volume=TestVolume001 -purge volume=TestVolume002 -delete volume=TestVolume001 -yes -delete volume=TestVolume002 -yes -messages -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=File1 -stop_bacula - -echo "volume=TestVolume001|TestVolume002" >tmp/bscan.bsr - -if test "$debug" -eq 1 ; then - bin/bscan -w working -m -s -v -b tmp/bscan.bsr -c bin/bacula-sd.conf ${cwd}/tmp -else - bin/bscan -w working -m -s -v -b tmp/bscan.bsr -c bin/bacula-sd.conf ${cwd}/tmp 2>&1 >/dev/null -fi - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log2.out -@# -@# now do a restore -@# -@#setdebug level=400 storage=File1 -restore bootstrap=${cwd}/tmp/kern.bsr where=${cwd}/tmp/bacula-restores select all storage=File1 done -yes -wait -messages -@$out -quit -END_OF_DATA - -# now run restore -run_bacula -check_for_zombie_jobs storage=File1 -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/tests/bsr-opt-test b/regress/tests/bsr-opt-test deleted file mode 100755 index c2dfd74241..0000000000 --- a/regress/tests/bsr-opt-test +++ /dev/null @@ -1,81 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory but -# split the archive into two volumes, then restore -# files on only one of the volumes and ensure that -# the other volume is not used. I.e. bsr optimization -# works. -# -TestName="bsr-opt-test" -JobName=bsr-opt -. scripts/functions -set_debug 0 - -scripts/cleanup -scripts/copy-test-confs -echo "${cwd}/build" >/tmp/file-list - -change_jobname NightlySave $JobName -start_test - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=File1 volume=TestVolume001 -label storage=File1 volume=TestVolume002 -update Volume=TestVolume001 MaxVolBytes=3000000 -run job=$JobName storage=File1 yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore bootstrap=${cwd}/working/restore.bsr where=${cwd}/tmp/bacula-restores select storage=File1 -unmark * -cd ${cwd}/build/src/cats -mark * -ls -done -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=File1 -stop_bacula -# -# This test is not really reliable. What we want to do is -# to select files on only one Volume, then insure here -# that only one Volume is chosen. -# -grep TestVolume002 working/restore.bsr 2>&1 >/dev/null -bsrstat=$? -check_two_logs - -diff -r build/src/cats tmp/bacula-restores${cwd}/build/src/cats 2>&1 >/dev/null -if [ $? != 0 -o $bsrstat != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! bsr-opt-test Bacula source failed!!! !!!!! " - echo " !!!!! bsr-opt-test failed!!! !!!!! " >>test.out - if [ $bstat != 0 -o $rstat != 0 ] ; then - echo " !!!!! Bad Job termination status !!!!! " - echo " !!!!! Bad Job termination status !!!!! " >>test.out - elif [ $bsrstat != 0 ] ; then - echo " !!!!! Volume selection error !!!!! " - echo " !!!!! Volume selection error !!!!! " >>test.out - else - echo " !!!!! Restored files differ !!!!! " - echo " !!!!! Restored files differ !!!!! " >>test.out - fi - echo " " -else - echo " ===== bsr-opt-test Bacula source OK `date +%R:%S` ===== " - echo " ===== bsr-opt-test OK `date +%R:%S` ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/btape-fill-full-tape b/regress/tests/btape-fill-full-tape deleted file mode 100755 index f4ba59fb5b..0000000000 --- a/regress/tests/btape-fill-full-tape +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/sh -# -# Test the fill command in btape -# -TestName="btape-fill-full-tape" -JobName=AutoLabel -. scripts/functions -set_debug 0 - -scripts/copy-tape-confs -scripts/cleanup-tape - -change_jobname $JobName -start_test - -bin/btape -c bin/bacula-sd.conf DDS-4 <&1 >tmp/log1.out -fill -s - -quit -END_OF_DATA - - -grep "^The last block on the tape matches\. Test succeeded\." tmp/log1.out 2>&1 >/dev/null -if [ $? != 0 ] ; then - echo " " - echo " " - echo " !!!!! btape fill test failed!!! !!!!! " - echo " !!!!! btape fill test failed!!! !!!!! " >>test.out - echo " " -else - echo " ===== btape fill test OK ===== " - echo " ===== btape fill test OK ===== " >>test.out -# scripts/cleanup -fi diff --git a/regress/tests/btape-fill-tape b/regress/tests/btape-fill-tape deleted file mode 100755 index b3fb4e5afd..0000000000 --- a/regress/tests/btape-fill-tape +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh -# -# Test the fill command in btape -# -TestName="btape-fill-tape" -JobName=filltape -. scripts/functions -set_debug 0 - -copy_tape_confs - -echo "${cwd}/build" >/tmp/file-list - -cp ${cwd}/bin/bacula-sd.conf ${cwd}/tmp/1 -sed "s%# MaximumVolumeSize% MaximumVolumeSize%" ${cwd}/tmp/1 >${cwd}/bin/bacula-sd.conf - -start_test - -cat <tmp/bconcmds -fill -s -quit -END_OF_DATA - -run_btape DDS-4 - -grep "^The last block on the tape matches\. Test succeeded\." tmp/log1.out 2>&1 >/dev/null -if [ $? != 0 ] ; then - echo " " - echo " " - echo " !!!!! btape fill test failed!!! !!!!! " - echo " !!!!! btape fill test failed!!! !!!!! " >>test.out - echo " " -else - echo " ===== btape fill test OK ===== " - echo " ===== btape fill test OK ===== " >>test.out -# scripts/cleanup -fi diff --git a/regress/tests/compress-encrypt-test b/regress/tests/compress-encrypt-test deleted file mode 100755 index 265512bc22..0000000000 --- a/regress/tests/compress-encrypt-test +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/sh -# -# Run a simple backup with encryption and compression of the Bacula build directory -# then verify the signatures. -# -TestName="compressed-encrypt-test" -JobName=CompressedTest -. scripts/functions -set_debug 0 - -scripts/cleanup -scripts/copy-crypto-confs -echo "${cwd}/build" >/tmp/file-list - -start_test - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=File volume=TestVolume001 -setdebug level=10 fd -run job=$JobName yes -wait -messages -list volumes -@# -@# now do a restore -@# -@$out tmp/log2.out -@# setdebug level=0 fd -restore where=${cwd}/tmp/bacula-restores storage=File -5 -mark * -done -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -sleep 2 -check_for_zombie_jobs storage=File -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/tests/compressed-test b/regress/tests/compressed-test deleted file mode 100755 index 9be43dead2..0000000000 --- a/regress/tests/compressed-test +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory using the compressed option -# then restore it. -# -TestName="compressed-test" -JobName=compressed -. scripts/functions -set_debug 0 - -scripts/cleanup -scripts/copy-test-confs -echo "${cwd}/build" >/tmp/file-list - -change_jobname CompressedTest $JobName -start_test - -cat <tmp/bconcmds -@output -messages -@$out tmp/log1.out -status all -status all -messages -label storage=File volume=TestVolume001 -run job=$JobName storage=File yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=File -unmark * -mark * -done -yes -wait -messages -@output -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=File -stop_bacula - -check_two_logs -check_restore_diff -grep " Software Compression" tmp/log1.out | grep "%" 2>&1 1>/dev/null -if [ $? != 0 ] ; then - echo " !!!!! No compression !!!!!" - bstat=1 -fi -end_test diff --git a/regress/tests/concurrent-jobs-test b/regress/tests/concurrent-jobs-test deleted file mode 100755 index 1cb0580ce9..0000000000 --- a/regress/tests/concurrent-jobs-test +++ /dev/null @@ -1,67 +0,0 @@ -#!/bin/sh -# -# Run two jobs at the same time -# - -TestName="concurrent-jobs-test" -JobName=concurrent-jobs -. scripts/functions -set_debug 0 - -copy_test_confs - -echo "${cwd}/tmp/largefile" >/tmp/file-list -if test -c /dev/urandom ; then -# Create 56MB file with random data - echo "Creating a 56MB file with random data ..." - dd if=/dev/urandom of=${cwd}/tmp/largefile bs=1024 count=55000 -else - echo "Creating a 56MB file with bacula-dir data ..." - dd if=bin/bacula-dir of=${cwd}/tmp/1 bs=1024 count=1000 - cat ${cwd}/tmp/1 ${cwd}/tmp/1 ${cwd}/tmp/1 ${cwd}/tmp/1 ${cwd}/tmp/1 >${cwd}/tmp/2 - rm -f ${cwd}/tmp/1 - cat ${cwd}/tmp/2 ${cwd}/tmp/2 ${cwd}/tmp/2 ${cwd}/tmp/2 ${cwd}/tmp/2 >>${cwd}/tmp/3 - rm -f ${cwd}/tmp/2 - cat ${cwd}/tmp/3 ${cwd}/tmp/3 ${cwd}/tmp/3 ${cwd}/tmp/3 ${cwd}/tmp/3 >${cwd}/tmp/largefile - rm -f ${cwd}/tmp/3 -fi - -echo "largefile created" - -change_jobname CompressedTest $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label storage=File volume=TestVolume001 -run job=$JobName level=Full yes -run job=$JobName level=Full yes -run job=$JobName level=Full yes -run job=$JobName level=Full yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=File -unmark * -mark * -done -yes -wait -messages -@output -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=File -stop_bacula - -check_two_logs -diff tmp/largefile tmp/bacula-restores${cwd}/tmp/largefile 2>&1 >/dev/null -dstat=$? -end_test diff --git a/regress/tests/data-encrypt-test b/regress/tests/data-encrypt-test deleted file mode 100755 index d184c9737b..0000000000 --- a/regress/tests/data-encrypt-test +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/sh -# -# Run a simple backup with encryption and no other options -# (i.e. no compression and no sparse handling) of the -# Bacula build directory. -# -TestName="data-encrypt-test" -JobName=Crypto -. scripts/functions -set_debug 0 - -scripts/cleanup -scripts/copy-crypto-confs -echo "${cwd}/build" >/tmp/file-list - -change_jobname NightlySave $JobName -start_test - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=File volume=TestVolume001 -@#setdebug level=10 fd -run job=$JobName yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -@#setdebug level=10 fd -restore where=${cwd}/tmp/bacula-restores storage=File -5 -mark * -done -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -sleep 2 -check_for_zombie_jobs storage=File -stop_bacula - -du -s build -du -s tmp/bacula-restores/ - - -check_two_logs -check_restore_diff -end_test diff --git a/regress/tests/dev-test-root b/regress/tests/dev-test-root deleted file mode 100755 index 26ae6fee84..0000000000 --- a/regress/tests/dev-test-root +++ /dev/null @@ -1,85 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# then restore it. -# -MUID=`/usr/bin/id -u` -if [ $MUID != 0 ] ; then - echo " " - echo "You must be root to run this test." - echo " ===== !!!! dev-test-root not run !!!! ===== " - echo " ===== !!!! dev-test-root not run !!!! ===== " >>test.out - echo " " - exit 1 -fi -cwd=`pwd` -scripts/cleanup -scripts/copy-test-confs -echo "/dev" >/tmp/file-list - -echo " " -echo " " -echo " === Starting dev-test-root test ===" -echo " " -echo " === Note, this test can fail for trivial ===" -echo " === reasons on non-Linux systems. ===" -echo " " -echo " " - -bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -cd / -${cwd}/bin/testls -e ${cwd}/scripts/exclude-etc-test dev >${cwd}/tmp/original -cd ${cwd}/tmp/bacula-restores -${cwd}/bin/testls -e ${cwd}/scripts/exclude-etc-test dev >${cwd}/tmp/restored -cd ${cwd}/tmp -# -# Use sed to cut out parts that *always* change -# -cat >sed.scr <1 -sed -f sed.scr 1 | sort >original -# -mv -f restored 1 -sed -f sed.scr 1 | sort >restored -rm -f sed.scr -# -cd ${cwd} -diff tmp/original tmp/restored 2>&1 1>/dev/null -if [ $? != 0 ] ; then - echo " " - echo " " - echo " ===== !!!! dev-test-root failed !!!! ===== " - echo " ===== !!!! dev-test-root failed !!!! ===== " >>test.out - echo " " -else - echo " ===== dev-test-root OK ===== " - echo " ===== dev-test-root OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/differential-test b/regress/tests/differential-test deleted file mode 100755 index 4949bfe6d8..0000000000 --- a/regress/tests/differential-test +++ /dev/null @@ -1,88 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory then create some -# new files, do a differential and restore those two files. -# -TestName="differential-test" -JobName=differential -. scripts/functions -set_debug 0 - -scripts/cleanup -scripts/copy-test-confs -echo "${cwd}/tmp/build" >/tmp/file-list -mkdir ${cwd}/tmp/build -cp -p ${cwd}/build/src/dird/*.c ${cwd}/tmp/build -cd ${cwd}/tmp -echo "${cwd}/tmp/build/ficheriro1.txt" >restore-list -echo "${cwd}/tmp/build/ficheriro2.txt" >>restore-list -cd ${cwd} - -change_jobname CompressedTest $JobName -start_test - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=File volume=TestVolume002 -label storage=File volume=TestVolume001 -run job=$JobName yes -wait -messages -quit -END_OF_DATA - -run_bacula - -scripts/check_for_zombie_jobs storage=File -echo "ficheriro1.txt" >${cwd}/tmp/build/ficheriro1.txt -echo "ficheriro2.txt" >${cwd}/tmp/build/ficheriro2.txt - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -@# Force differential on the second Volume -update volume=TestVolume002 VolStatus=Used -run level=differential job=$JobName yes -wait -messages -@$out -END_OF_DATA - -run_bconsole - -scripts/check_for_zombie_jobs storage=File -echo "ficheriro2.txt" >${cwd}/tmp/build/ficheriro2.txt - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -run level=incremental job=$JobName yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores storage=File file=<${cwd}/tmp/restore-list -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bconsole -scripts/check_for_zombie_jobs storage=File -stop_bacula - -check_two_logs -# -# Delete .c files because we will only restore the txt files -# -rm -f tmp/build/*.c -check_restore_tmp_build_diff -end_test diff --git a/regress/tests/eot-fail-tape b/regress/tests/eot-fail-tape deleted file mode 100755 index 4907e8dca6..0000000000 --- a/regress/tests/eot-fail-tape +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# to two tapes where the maximum tape file size is set to 1M -# -TestName="eot-fail-tape" -JobName=eotfailtape -. scripts/functions -set_debug 0 - -scripts/cleanup-tape -scripts/copy-tape-confs - -echo "${cwd}/build" >/tmp/file-list - -out="tmp/sed_tmp" -echo "s%# Maximum File Size% Maximum File Size%g" >${out} -cp -f ${cwd}/bin/bacula-sd.conf ${cwd}/tmp/1 -sed -f ${out} ${cwd}/tmp/1 >${cwd}/bin/bacula-sd.conf - -change_jobname $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -update Volume=TestVolume001 MaxVolBytes=3000000 -run job=$JobName yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select all storage=DDS-4 done -yes -wait -messages -@tee -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/tests/etc-test-root b/regress/tests/etc-test-root deleted file mode 100755 index e3a4495b88..0000000000 --- a/regress/tests/etc-test-root +++ /dev/null @@ -1,70 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# then restore it. -# -MUID=`/usr/bin/id -u` -if [ $MUID != 0 ] ; then - echo " " - echo "You must be root to run this test." - echo " ===== !!!! etc-test-root not run !!!! ===== " - echo " ===== !!!! etc-test-root not run !!!! ===== " >>test.out - echo " " - exit 1 -fi -echo " " -echo " " -echo " === Starting /etc save/restore test ===" -echo " " -echo " " -cwd=`pwd` -scripts/cleanup -scripts/copy-test-confs -echo "/etc" >/tmp/file-list - -bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -cd / -${cwd}/bin/testls -e ${cwd}/scripts/exclude-etc-test etc >${cwd}/tmp/1 -cd ${cwd}/tmp/bacula-restores -${cwd}/bin/testls -e ${cwd}/scripts/exclude-etc-test etc >${cwd}/tmp/2 -sort <${cwd}/tmp/1 >${cwd}/tmp/original -sort <${cwd}/tmp/2 >${cwd}/tmp/restored -rm -f ${cwd}/tmp/1 ${cwd}/tmp/2 -cd ${cwd} -diff tmp/original tmp/restored 2>&1 1>/dev/null -if [ $? != 0 ] ; then - echo " " - echo " " - echo " ===== !!!! etc-test-root failed !!!! ===== " - echo " ===== !!!! etc-test-root failed !!!! ===== " >>test.out - echo " " -else - echo " ===== etc-test-root OK ===== " - echo " ===== etc-test-root OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/fixed-block-size-tape b/regress/tests/fixed-block-size-tape deleted file mode 100755 index 10de2c45e5..0000000000 --- a/regress/tests/fixed-block-size-tape +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# to a tape where we set the minimum and maximum block -# sizes. -# -TestName="fixed-block-size-tape" -JobName=fixedblocksize -. scripts/functions -set_debug 0 - -copy_tape_confs - -echo "${cwd}/build" >/tmp/file-list - -cp ${cwd}/bin/bacula-sd.conf ${cwd}/tmp/1 -echo "s%# Maximum Block Size% Maximum Block Size%" >${cwd}/tmp/2 -echo "s%# Minimum Block Size% Minimum Block Size%" >>${cwd}/tmp/2 -sed -f ${cwd}/tmp/2 ${cwd}/tmp/1 >${cwd}/bin/bacula-sd.conf -if [ $? != 0 ] ; then - echo " " - echo " " - echo "!!!! sed problem in Fixed Block Size test !!!!!" - echo " " - exit 1 -fi -rm -f ${cwd}/tmp/1 ${cwd}/tmp/2 - -change_jobname NightlySave $JobName -start_test - - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -run job=$JobName yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=DDS-4 -unmark * -mark * -done -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/tests/four-concurrent-jobs-tape b/regress/tests/four-concurrent-jobs-tape deleted file mode 100755 index 0d0918f62b..0000000000 --- a/regress/tests/four-concurrent-jobs-tape +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/sh -# -# Run four jobs at the same time -# -TestName="four-concurrent-jobs-tape" -JobName=FourConcurrentJobs -. scripts/functions -set_debug 0 - -scripts/cleanup-tape -scripts/copy-tape-confs - -echo "${cwd}/build" >/tmp/file-list - -change_jobname $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -run job=$JobName level=Full Storage=DDS-4 yes -run job=$JobName level=Full Storage=DDS-4 yes -run job=$JobName level=Full Storage=DDS-4 yes -run job=$JobName level=Full Storage=DDS-4 yes -@sleep 2 -status dir -@sleep 5 -status dir -status storage=DDS-4 -messages -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=DDS-4 -unmark * -mark * -done -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/tests/four-concurrent-jobs-test b/regress/tests/four-concurrent-jobs-test deleted file mode 100755 index bd7e20f885..0000000000 --- a/regress/tests/four-concurrent-jobs-test +++ /dev/null @@ -1,76 +0,0 @@ -#!/bin/sh -# -# Run two jobs at the same time -# -TestName="four-concurrent-jobs-test" -JobName=Four-concurrent-jobs -. scripts/functions -set_debug 0 - -scripts/cleanup -scripts/copy-test-confs -echo "${cwd}/build" >/tmp/file-list - -change_jobname NightlySave $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label storage=File1 -TestVolume001 -label storage=File1 -TestVolume002 -update Volume=TestVolume001 MaxVolBytes=100000000 -@#50000000 -@#12 -run job=$JobName level=Full Storage=File1 -yes -reload -run job=$JobName level=Full Storage=File1 -yes -reload -run job=$JobName level=Full Storage=File1 -yes -reload -run job=$JobName level=Full Storage=File1 -yes -reload -reload -reload -reload -@sleep 2 -status dir -reload -@sleep 5 -messages -reload -reload -wait -reload -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=File1 -unmark * -mark * -done -yes -wait -reload -reload -messages -@output -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=File1 -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/tests/four-jobs-tape b/regress/tests/four-jobs-tape deleted file mode 100755 index 4252ba2d7e..0000000000 --- a/regress/tests/four-jobs-tape +++ /dev/null @@ -1,153 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory using the compressed option -# then backup four times, each with incremental then finally restore. -# It should require at least 4 different bsrs. -# -TestName="four-jobs-tape" -JobName=fourjobstape -. scripts/functions -set_debug 0 - -scripts/cleanup-tape -scripts/copy-tape-confs -echo "${cwd}/build" >/tmp/file-list - -change_jobname $JobName -start_test - -cat <tmp/bconcmds -@$out /dev/null -estimate job=$JobName listing -estimate job=$JobName listing -estimate job=$JobName listing -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -run job=$JobName yes -wait -messages -quit -END_OF_DATA -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi - -scripts/check_for_zombie_jobs storage=DDS-4 -echo "Backup 1 done" -# make some files for the incremental to pick up -touch ${cwd}/build/src/dird/*.c ${cwd}/build/src/dird/*.o -touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o - -# -# run a second job -# -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -run job=$JobName level=Incremental yes -wait -messages -quit -END_OF_DATA -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi - -scripts/check_for_zombie_jobs storage=DDS-4 -echo "Backup 2 done" -touch ${cwd}/build/src/dird/*.c -touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o -# -# run a third job -# -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -run job=$JobName level=Incremental yes -wait -messages -quit -END_OF_DATA -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi - -scripts/check_for_zombie_jobs storage=DDS-4 -echo "Backup 3 done" -# make some files for the incremental to pick up -touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o -# -# run a fourth job -# -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -run job=$JobName level=Incremental yes -wait -messages -quit -END_OF_DATA -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi - -scripts/check_for_zombie_jobs storage=DDS-4 -echo "Backup 4 done" -# -# now do several restores to ensure we cleanup between jobs -# -cat <tmp/bconcmds -@$out /dev/null -restore where=${cwd}/tmp/bacula-restores select all done -yes -wait -restore where=${cwd}/tmp/bacula-restores select all done -yes -wait -@$out tmp/log2.out -@# -@# now unmount the tape and start two restores -@# at the same time -@# -unmount storage=DDS-4 -restore where=${cwd}/tmp/bacula-restores select all done -yes -restore where=${cwd}/tmp/bacula-restores select -unmark * -mark * -done -yes -mount storage=DDS-4 -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/tests/four-jobs-test b/regress/tests/four-jobs-test deleted file mode 100755 index 20fdc05fca..0000000000 --- a/regress/tests/four-jobs-test +++ /dev/null @@ -1,128 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory using the compressed option -# then backup four times, each with incremental then finally restore. -# It should require at least 4 different bsrs. -# -TestName="four-jobs-test" -JobName=SpanVol -. scripts/functions -set_debug 0 - -cwd=`pwd` -scripts/cleanup -scripts/copy-test-confs -echo "${cwd}/build" >/tmp/file-list - -change_jobname CompressedTest $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -estimate job=$JobName listing -estimate job=$JobName listing -estimate job=$JobName listing -messages -@$out tmp/log1.out -label storage=File volume=TestVolume001 -run job=$JobName yes -wait -messages -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=File -echo "Backup 1 done" -# make some files for the incremental to pick up -touch ${cwd}/build/src/dird/*.c ${cwd}/build/src/dird/*.o -touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o - -# -# run a second job -# -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -run job=$JobName -yes -wait -messages -quit -END_OF_DATA - -run_bconsole -check_for_zombie_jobs storage=File - -echo "Backup 2 done" -touch ${cwd}/build/src/dird/*.c -touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o -# -# run a third job -# -cat <tmp/bconcmds -@output /dev/null -messages -@output tmp/log1.out -label storage=File volume=TestVolume001 -run job=$JobName yes -wait -messages -quit -END_OF_DATA - -run_bconsole -check_for_zombie_jobs storage=File - -echo "Backup 3 done" -# make some files for the incremental to pick up -touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o -# -# run a fourth job -# -cat <tmp/bconcmds -@output /dev/null -messages -@output tmp/log1.out -label storage=File volume=TestVolume001 -run job=$JobName yes -wait -messages -quit -END_OF_DATA - -run_bconsole -check_for_zombie_jobs storage=File - -echo "Backup 4 done" -# -# now do several restores to ensure we cleanup between jobs -# -cat <tmp/bconcmds -@output /dev/null -restore where=${cwd}/tmp/bacula-restores select all storage=File done -yes -wait -restore where=${cwd}/tmp/bacula-restores select all storage=File done -yes -wait -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=File -unmark * -mark * -done -yes -wait -messages -@output -quit -END_OF_DATA - -run_bconsole -check_for_zombie_jobs storage=File -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/tests/gigaslam-sparse-test b/regress/tests/gigaslam-sparse-test deleted file mode 100755 index f638735205..0000000000 --- a/regress/tests/gigaslam-sparse-test +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory using the Sparse option -# then restore it. -# -TestName="gigaslam-sparse-test" -JobName=SparseTest -. scripts/functions -set_debug 0 - -cwd=`pwd` -scripts/cleanup -scripts/copy-test-confs -echo "${cwd}/build" >/tmp/file-list -cd ${cwd}/build/src/tools -./gigaslam -if [ $? != 0 ]; then - echo "Execute of ${cwd}/build/src/tools/gigaslam failed." - rm -f ${cwd}/build/src/tools/gigaslam.gif - exit 1 -fi -cd ${cwd} - -start_test - -cat >tmp/bconcmds </tmp/file-list -echo "${cwd}/weird-files" >>/tmp/file-list - -start_test - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=File -TestVolume001 -run job=$JobName -yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores storage=File -5 -cd ${cwd}/weird-files/subdir -mark another-hardlink -done -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=File -stop_bacula - -check_two_logs -diff ${cwd}/weird-files/subdir/another-hardlink \ - ${cwd}/tmp/bacula-restores/${cwd}/weird-files/subdir/another-hardlink 2>&1 >/dev/null -dstat=$? -end_test diff --git a/regress/tests/incremental-2disk b/regress/tests/incremental-2disk deleted file mode 100755 index a2227f79bb..0000000000 --- a/regress/tests/incremental-2disk +++ /dev/null @@ -1,92 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory then create some -# new files, do an Incremental and restore those two files. -# -# This script uses the virtual disk autochanger -# -TestName="incremental-2disk" -JobName=Inc2disk -. scripts/functions -set_debug 0 - -. config.out - -stop_bacula -cd bin -./drop_bacula_tables >/dev/null 2>&1 -./make_bacula_tables >/dev/null 2>&1 -./grant_bacula_privileges 2>&1 >/dev/null -cd .. - -scripts/copy-2disk-confs -scripts/prepare-two-disks - -echo "${cwd}/tmp/build" >/tmp/file-list -if test ! -d ${cwd}/tmp/build ; then - mkdir ${cwd}/tmp/build -fi -cp -p ${cwd}/build/src/dird/*.c ${cwd}/tmp/build -cd ${cwd}/tmp -echo "${cwd}/tmp/build/ficheriro1.txt" >restore-list -echo "${cwd}/tmp/build/ficheriro2.txt" >>restore-list -cd ${cwd} - -change_jobname $JobName -start_test - -# Write out bconsole commands -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=1 Pool=Default drive=0 -label storage=DDS-4 volume=TestVolume002 slot=2 Pool=Default drive=0 -run job=$JobName yes -wait -messages -quit -END_OF_DATA - -run_bacula - -echo "ficheriro1.txt" >${cwd}/tmp/build/ficheriro1.txt -echo "ficheriro2.txt" >${cwd}/tmp/build/ficheriro2.txt - - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -@# Force Incremental on the second Volume -update volume=TestVolume001 VolStatus=Used -run level=Incremental job=$JobName yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores -7 -<${cwd}/tmp/restore-list - -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bconsole - -check_for_zombie_jobs storage=File -stop_bacula -# -# Delete .c files because we will only restored the txt files -# -rm -f tmp/build/*.c - -check_two_logs -check_restore_tmp_build_diff -end_test diff --git a/regress/tests/incremental-2tape b/regress/tests/incremental-2tape deleted file mode 100755 index 1ee97cd49c..0000000000 --- a/regress/tests/incremental-2tape +++ /dev/null @@ -1,110 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory then create some -# new files, do an Incremental and restore those two files. -# -# This script uses the autochanger and two tapes -# -. config.out -if test x${AUTOCHANGER} = x/dev/null ; then - echo "incremental-2tape test skipped. No autochanger." - exit -fi -debug=0 -if test "$debug" -eq 1 ; then - out="tee" -else - out="output" -fi -cwd=`pwd` -bin/bacula stop 2>&1 >/dev/null -cd bin -./drop_bacula_tables >/dev/null 2>&1 -./make_bacula_tables >/dev/null 2>&1 -./grant_bacula_privileges 2>&1 >/dev/null -cd .. - -scripts/copy-2tape-confs -scripts/cleanup-2tape -echo "${cwd}/tmp/build" >/tmp/file-list -if test ! -d ${cwd}/tmp/build ; then - mkdir ${cwd}/tmp/build -fi -cp -p ${cwd}/build/src/dird/*.c ${cwd}/tmp/build -cd ${cwd}/tmp -echo "${cwd}/tmp/build/ficheriro1.txt" >restore-list -echo "${cwd}/tmp/build/ficheriro2.txt" >>restore-list -cd ${cwd} - -echo " " -echo " " -echo " === Starting incremental-2tape test ===" -echo " === Starting incremental-2tape test ===" >>working/log -echo " " - -# Write out bconsole commands -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=1 Pool=Default drive=0 -label storage=DDS-4 volume=TestVolume002 slot=2 Pool=Default drive=0 -run job=NightlySave yes -wait -messages -quit -END_OF_DATA - -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi -echo "ficheriro1.txt" >${cwd}/tmp/build/ficheriro1.txt -echo "ficheriro2.txt" >${cwd}/tmp/build/ficheriro2.txt -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Restore OK" tmp/log2.out 2>&1 >/dev/null -rstat=$? -# -# Delete .c files because we will only restored the txt files -# -rm -f tmp/build/*.c -diff -r tmp/build tmp/bacula-restores${cwd}/tmp/build 2>&1 >/dev/null -if [ $? != 0 -o $bstat != 0 -o $rstat != 0 ] ; then - echo " " - echo " " - echo " !!!!! incremental-2tape test Bacula source failed!!! !!!!! " - echo " !!!!! incremental-2tape test failed!!! !!!!! " >>test.out - echo " " -else - echo " ===== incremental-2tape test Bacula source OK ===== " - echo " ===== incremental-2tape test OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/incremental-tape b/regress/tests/incremental-tape deleted file mode 100755 index 3b7264da77..0000000000 --- a/regress/tests/incremental-tape +++ /dev/null @@ -1,76 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory then create some -# new files, do an Incremental and restore those two files. -# -TestName="incremental-tape" -JobName=IncTape -. scripts/functions -set_debug 0 - -copy_tape_confs - -echo "${cwd}/tmp/build" >/tmp/file-list -if test ! -d ${cwd}/tmp/build ; then - mkdir ${cwd}/tmp/build -fi -cp -p ${cwd}/build/src/dird/*.c ${cwd}/tmp/build -cd ${cwd}/tmp -echo "${cwd}/tmp/build/ficheriro1.txt" >restore-list -echo "${cwd}/tmp/build/ficheriro2.txt" >>restore-list -cd ${cwd} - -change_jobname NightlySave $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -run job=$JobName yes -wait -messages -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 - -echo "ficheriro1.txt" >${cwd}/tmp/build/ficheriro1.txt -echo "ficheriro2.txt" >${cwd}/tmp/build/ficheriro2.txt - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -run level=Incremental job=$JobName yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores storage=DDS-4 -7 -<${cwd}/tmp/restore-list - -yes -wait -messages -@output -quit -END_OF_DATA - -run_bconsole -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -# -# Delete .c files because we will only restored the txt files -# -rm -f tmp/build/*.c - -check_two_logs -check_restore_tmp_build_diff -end_test diff --git a/regress/tests/incremental-test b/regress/tests/incremental-test deleted file mode 100755 index 80ac6ee7ee..0000000000 --- a/regress/tests/incremental-test +++ /dev/null @@ -1,170 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory then create some -# new files, do an Incremental and restore those two files. -# -TestName="incremental-test" -JobName=Incremental -. scripts/functions -set_debug 0 - -scripts/cleanup -scripts/copy-test-confs -echo "${cwd}/tmp/build" >/tmp/file-list -mkdir ${cwd}/tmp/build -cp -p ${cwd}/build/src/dird/*.c ${cwd}/tmp/build -cd ${cwd}/tmp -echo "${cwd}/tmp/build/ficheriro1.txt" >restore-list -echo "${cwd}/tmp/build/ficheriro2.txt" >>restore-list -cd ${cwd} - -change_jobname CompressedTest $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label storage=File volume=TestVolume001 -label storage=File volume=TestVolume002 -run job=$JobName yes -wait -messages -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=File -# -# Now create two new files to be restored later -# -sleep 1 -echo "ficheriro1.txt" >${cwd}/tmp/build/ficheriro1.txt -cp -f ${cwd}/tmp/build/dird.c ${cwd}/tmp/build/ficheriro2.txt - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -@# Force Incremental on the second Volume -update volume=TestVolume001 VolStatus=Used -run level=Differential job=$JobName yes -wait -messages -quit -END_OF_DATA - -run_bconsole - -sleep 1 -touch ${cwd}/tmp/build/ficheriro1.txt -touch ${cwd}/tmp/build/ficheriro2.txt - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -run level=Incremental job=$JobName yes -wait -messages -quit -END_OF_DATA - -run_bconsole - -sleep 1 -cd ${cwd}/tmp/build -cp -f ficheriro2.txt 1 -sed "s%a%b%g" 1 >ficheriro2.txt -rm -f 1 -cd ${cwd} -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -run level=Differential job=$JobName yes -wait -messages -quit -END_OF_DATA - -run_bconsole - -sleep 1 -touch ${cwd}/tmp/build/ficheriro1.txt -touch ${cwd}/tmp/build/ficheriro2.txt -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -run level=Incremental job=$JobName yes -wait -messages -quit -END_OF_DATA - -run_bconsole - -sleep 1 -touch ${cwd}/tmp/build/ficheriro1.txt -touch ${cwd}/tmp/build/ficheriro2.txt -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -run level=Incremental job=$JobName yes -wait -messages -quit -END_OF_DATA - -run_bconsole - -sleep 1 -touch ${cwd}/tmp/build/ficheriro1.txt -touch ${cwd}/tmp/build/ficheriro2.txt -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -run level=Incremental job=$JobName yes -wait -messages -quit -END_OF_DATA - -run_bconsole -sleep 1 -touch ${cwd}/tmp/build/ficheriro1.txt -touch ${cwd}/tmp/build/ficheriro2.txt - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -run level=Incremental job=$JobName yes -wait -messages -@# -@# now do a restore -@# -@output tmp/log2.out -restore where=${cwd}/tmp/bacula-restores storage=File file=<${cwd}/tmp/restore-list -yes -wait -messages -@output -quit -END_OF_DATA - -run_bconsole -check_for_zombie_jobs storage=File -stop_bacula - -check_two_logs -# -# Delete .c files because we will only restored the txt files -# -rm -f tmp/build/*.c -check_restore_tmp_build_diff -end_test diff --git a/regress/tests/lib-tape-root b/regress/tests/lib-tape-root deleted file mode 100755 index 06289cd1d4..0000000000 --- a/regress/tests/lib-tape-root +++ /dev/null @@ -1,67 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the /lib directory -# then restore it. -# -cwd=`pwd` -bin/bacula stop 2>&1 >/dev/null -cd bin -./drop_bacula_tables >/dev/null 2>&1 -./make_bacula_tables >/dev/null 2>&1 -./grant_bacula_privileges 2>&1 >/dev/null -cd .. - -scripts/cleanup-tape -scripts/copy-tape-confs -echo "/lib" >/tmp/file-list -echo " " -echo " " -echo " === Starting lib-tape-root test ===" -echo " " -echo " " -bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -cd / -${cwd}/bin/testls -e ${cwd}/scripts/exclude-usr-test lib >${cwd}/tmp/original -cd ${cwd}/tmp/bacula-restores -${cwd}/bin/testls -e ${cwd}/scripts/exclude-usr-test lib >${cwd}/tmp/restored -cd ${cwd}/tmp -sed s%.*lib/kbd/consolefonts$%lib/kbd/consolefonts% original >1 -sort <1 >original -# -sed s%.*lib/kbd/consolefonts$%lib/kbd/consolefonts% restored >1 -sort <1 >restored -rm -f 1 -# -cd ${cwd} -diff tmp/original tmp/restored 2>&1 1>/dev/nul -if [ $? != 0 ] ; then - echo " " - echo " " - echo " ===== lib-tape-root failed!!! ===== " - echo " ===== lib-tape-root failed!!! ===== " >>test.out - echo " " -else - echo " ===== lib-tape-root OK ===== " - echo " ===== lib-tape-root OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/lib-test-root b/regress/tests/lib-test-root deleted file mode 100755 index 4f41954a29..0000000000 --- a/regress/tests/lib-test-root +++ /dev/null @@ -1,76 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# then restore it. -# -MUID=`/usr/bin/id -u` -if [ $MUID != 0 ] ; then - echo " " - echo "You must be root to run this test." - echo " ===== !!!! lib-test-root not run !!!! ===== " - echo " ===== !!!! lib-test-root not run !!!! ===== " >>test.out - echo " " - exit 1 -fi -cwd=`pwd` -scripts/cleanup -scripts/copy-test-confs -echo "/lib" >/tmp/file-list - -echo " " -echo " " -echo " === Starting /lib save/restore test ===" -echo " " -echo " " - -bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -cd / -${cwd}/bin/testls -e ${cwd}/scripts/exclude-lib-test lib >${cwd}/tmp/original -cd ${cwd}/tmp/bacula-restores -${cwd}/bin/testls -e ${cwd}/scripts/exclude-lib-test lib >${cwd}/tmp/restored -cd ${cwd}/tmp -sed s%.*lib/kbd/consolefonts$%lib/kbd/consolefonts% original >1 -sort <1 >original -# -sed s%.*lib/kbd/consolefonts$%lib/kbd/consolefonts% restored >1 -sort <1 >restored -rm -f 1 -# -cd ${cwd} -diff tmp/original tmp/restored 2>&1 1>/dev/nul -if [ $? != 0 ] ; then - echo " " - echo " " - echo " ===== !!!! lib-test-root failed !!!! ===== " - echo " ===== !!!! lib-test-root failed !!!! ===== " >>test.out - echo " " -else - echo " ===== lib-test-root OK ===== " - echo " ===== lib-test-root OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/migration-job-test b/regress/tests/migration-job-test deleted file mode 100755 index 0b6cb19691..0000000000 --- a/regress/tests/migration-job-test +++ /dev/null @@ -1,73 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory then migrate it -# to another device. -# -# This script uses the virtual disk autochanger -# -TestName="migration-job-test" -JobName=MigrationJobSave -. scripts/functions -set_debug 0 - -. config.out - -scripts/cleanup -scripts/copy-migration-confs -scripts/prepare-two-disks -echo "${cwd}/build" >/tmp/file-list - -change_jobname NightlySave $JobName -start_test - -# -# Note, we first backup into Pool Default, -# then Migrate into Pool Full. -# Pool Default uses Storage=File -# Pool Full uses Storage=DiskChanger - -# Write out bconsole commands -cat <tmp/bconcmds -@output -messages -@$out tmp/log1.out -label storage=File volume=FileVolume001 Pool=Default -label storage=DiskChanger volume=ChangerVolume001 slot=1 Pool=Full drive=0 -label storage=DiskChanger volume=ChangerVolume002 slot=2 Pool=Full drive=0 -@# run two jobs (both will be migrated) -run job=$JobName yes -run job=$JobName yes -wait -list jobs -list volumes -@#setdebug level=100 dir -@# should migrate two jobs -run job=migrate-job yes -wait -messages -@# purge volume=FileVolume001 -list jobs -list volumes -wait -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=DiskChanger -unmark * -mark * -done -yes -wait -messages -@output -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=File -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/tests/migration-jobspan-test b/regress/tests/migration-jobspan-test deleted file mode 100755 index 63a8ce1e0f..0000000000 --- a/regress/tests/migration-jobspan-test +++ /dev/null @@ -1,83 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory then migrate it -# to another device. -# -# Test migrating a job that spans two Volumes -# -# This script uses the virtual disk autochanger -# -TestName="migration-jobspan-test" -JobName=MigrationJobSpanSave -. scripts/functions -set_debug 0 - -. config.out - -scripts/cleanup -scripts/copy-migration-confs -scripts/prepare-two-disks -echo "${cwd}/build" >/tmp/file-list -cp ${cwd}/bin/bacula-sd.conf ${cwd}/tmp/1 -sed "s%# Maximum File Size% Maximum File Size%" ${cwd}/tmp/1 >${cwd}/bin/bacula-sd.conf - - -change_jobname NightlySave $JobName -start_test - -# -# Note, we first backup into Pool Default, -# then Migrate into Pool Full. -# Pool Default uses Storage=File -# Pool Full uses Storage=DiskChanger - -# Write out bconsole commands -cat <tmp/bconcmds -@output -messages -@$out tmp/log1.out -@#setdebug level=10 dir -@#setdebug level=100 storage=File -label storage=File volume=FileVolume001 Pool=Default -label storage=File volume=FileVolume002 Pool=Default -update Volume=FileVolume001 MaxVolBytes=3000000 pool=Default -label storage=DiskChanger volume=ChangerVolume001 slot=1 Pool=Full drive=0 -label storage=DiskChanger volume=ChangerVolume002 slot=2 Pool=Full drive=0 -list volumes -@# -run job=$JobName yes -@#run job=$JobName yes -wait -list volumes -@#setdebug level=200 dir -@# should migrate both Volumes -run job=migrate-job yes -wait -purge volume=FileVolume001 -purge volume=FileVolume002 -list volumes -list jobs -messages -wait -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=DiskChanger -unmark * -mark * -done -yes -wait -messages -@output -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=File -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/tests/migration-occupancy-test b/regress/tests/migration-occupancy-test deleted file mode 100755 index aed2298afa..0000000000 --- a/regress/tests/migration-occupancy-test +++ /dev/null @@ -1,72 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory then migrate it -# to another device. -# -# This script uses the virtual disk autochanger -# -TestName="migration-occupancy-test" -JobName=MigrationJobSave -. scripts/functions -set_debug 0 - -. config.out - -scripts/cleanup -scripts/copy-migration-confs -scripts/prepare-two-disks -echo "${cwd}/build" >/tmp/file-list - -change_jobname NightlySave $JobName -start_test - -# -# Note, we first backup into Pool Default, -# then Migrate into Pool Full. -# Pool Default uses Storage=File -# Pool Full uses Storage=DiskChanger - -# Write out bconsole commands -cat <tmp/bconcmds -@output -messages -@$out tmp/log1.out -label storage=File volume=FileVolume001 Pool=Default -label storage=DiskChanger volume=ChangerVolume001 slot=1 Pool=Full drive=0 -label storage=DiskChanger volume=ChangerVolume002 slot=2 Pool=Full drive=0 -list volumes -@# run two jobs (both will be migrated) -run job=$JobName yes -run job=$JobName yes -wait -update volume=FileVolume001 VolStatus=Used -list volumes -@# should migrate two jobs -run job=migrate-occupancy yes -list volumes -wait -messages -purge volume=FileVolume001 -wait -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=DiskChanger -unmark * -mark * -done -yes -wait -messages -@output -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=File -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/tests/migration-time-test b/regress/tests/migration-time-test deleted file mode 100755 index 1adbb0e6d1..0000000000 --- a/regress/tests/migration-time-test +++ /dev/null @@ -1,79 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory then migrate it -# to another device. -# -# This script uses the virtual disk autochanger -# -TestName="migration-time-test" -JobName=MigrationJobSave -. scripts/functions -set_debug 0 - -. config.out - -scripts/cleanup -scripts/copy-migration-confs -scripts/prepare-two-disks -echo "${cwd}/build" >/tmp/file-list - -change_jobname NightlySave $JobName -start_test - -# -# Note, we first backup into Pool Default, -# then Migrate into Pool Full. -# Pool Default uses Storage=File -# Pool Full uses Storage=DiskChanger - -# Write out bconsole commands -cat <tmp/bconcmds -@output -messages -@$out tmp/log1.out -label storage=File volume=FileVolume001 Pool=Default -label storage=DiskChanger volume=ChangerVolume001 slot=1 Pool=Full drive=0 -label storage=DiskChanger volume=ChangerVolume002 slot=2 Pool=Full drive=0 -list volumes -@# run three jobs -run job=$JobName level=Full yes -run job=$JobName level=Full yes -run job=$JobName level=Full yes -wait -update volume=FileVolume001 VolStatus=Used -sql -update Job SET RealEndTime='2004-01-01 12:01:01' WHERE JobId IN (2,3); - -llist jobid=2,3 -list jobs -list volumes -@# should migrate only jobid=2 and 3 -run job=migrate-time yes -wait -messages -wait -purge volume=FileVolume001 -list jobs -list volumes -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=DiskChanger -unmark * -mark * -done -yes -wait -messages -@output -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=File -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/tests/migration-volume-test b/regress/tests/migration-volume-test deleted file mode 100755 index bdcc87fcab..0000000000 --- a/regress/tests/migration-volume-test +++ /dev/null @@ -1,106 +0,0 @@ -#!/bin/sh -# -# Run a backup of the Bacula build directory on two Volumes -# then migrate it to another device. -# -# This script uses the virtual disk autochanger -# -TestName="migration-volume-test" -JobName=MigVolBackup -. scripts/functions -set_debug 0 - -. config.out - -scripts/cleanup -scripts/copy-migration-confs -scripts/prepare-two-disks -echo "${cwd}/build" >/tmp/file-list -#cp ${cwd}/bin/bacula-sd.conf ${cwd}/tmp/1 -#sed "s%# Maximum File Size% Maximum File Size%" ${cwd}/tmp/1 >${cwd}/bin/bacula-sd.conf - -change_jobname NightlySave $JobName -start_test - -# -# Note, we first backup into Pool Default, -# then Migrate into Pool Full. -# Pool Default uses Storage=File -# Pool Full uses Storage=DiskChanger - -# Write out bconsole commands -cat <tmp/bconcmds -@output -messages -@$out tmp/log1.out -label storage=File volume=FileVolume001 Pool=Default -label storage=File volume=FileVolume002 Pool=Default -update Volume=FileVolume001 MaxVolBytes=3000000 pool=Default -label storage=DiskChanger volume=ChangerVolume001 slot=1 Pool=Full drive=0 -label storage=DiskChanger volume=ChangerVolume002 slot=2 Pool=Full drive=0 -@# -run job=$JobName yes -wait -run job=$JobName yes -wait -update volume=FileVolume001 VolStatus=Used -update volume=FileVolume002 VolStatus=Used -@#list volumes -@#list jobs -@# should migrate two jobs -@# setdebug level=11 dir -@echo "Run migrate-volume Job" -@#setdebug level=100 dir -run job=migrate-volume yes -@sleep 5 -list jobs -llist jobid=1 -llist jobid=2 -llist jobid=3 -llist jobid=4 -llist jobid=5 -status storage=DiskChanger -wait -list volumes -list jobs -llist jobid=1 -llist jobid=2 -llist jobid=3 -llist jobid=4 -llist jobid=5 -sql -select * from JobMedia where JobId=1; - -@# Now run a second Migration job, which should do nothing -run job=migrate-volume yes -wait -list jobs -@# ensure we don't pickup old backup by purging volume -@# purge volume=FileVolume001 -@# purge volume=FileVolume002 -@echo "Now do a restore" -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=DiskChanger -unmark * -mark * -done -yes -wait -messages -@output -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=File -stop_bacula - -exit - -check_two_logs -check_restore_diff -end_test diff --git a/regress/tests/query-test b/regress/tests/query-test deleted file mode 100755 index 43b450bc6e..0000000000 --- a/regress/tests/query-test +++ /dev/null @@ -1,119 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory then create some -# new files, do a Differental then a bunch of query commands -# and finally restore the two files. -# -TestName="query-test" -JobName=query -. scripts/functions -set_debug 0 - -scripts/cleanup -scripts/copy-test-confs -echo "${cwd}/tmp/build" >/tmp/file-list -mkdir ${cwd}/tmp/build -cp -p ${cwd}/build/src/dird/*.c ${cwd}/tmp/build -cd ${cwd}/tmp -echo "${cwd}/tmp/build/ficheriro1.txt" >restore-list -echo "${cwd}/tmp/build/ficheriro2.txt" >>restore-list -cd ${cwd} - -change_jobname CompressedTest $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label storage=File volume=TestVolume001 -label storage=File volume=TestVolume002 -run job=$JobName yes -wait -messages -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=File - -echo "ficheriro1.txt" >${cwd}/tmp/build/ficheriro1.txt -echo "ficheriro2.txt" >${cwd}/tmp/build/ficheriro2.txt - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -@# Force differental on the second Volume -update volume=TestVolume001 VolStatus=Used -run level=differental job=$JobName yes -wait -messages -@output -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=File - -echo "ficheriro2.txt" >${cwd}/tmp/build/ficheriro2.txt -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -run level=incremental job=$JobName yes -wait -messages -@# -@# Now do the queries -@# -query -1 -ficheriro1.txt -query -2 -${cwd}/tmp/build/ -ficheriro1.txt -localhost-fd -query -6 -TestVolume001 -query -7 -1 -query -8 -localhost-fd -query -9 -Default -query -10 -query -11 -query -12 -1 -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores storage=File file=<${cwd}/tmp/restore-list -yes -wait -messages -@output -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=File -stop_bacula - -# -# Delete .c files because we will only restored the txt files -# -rm -f tmp/build/*.c - -check_two_logs -check_restore_tmp_build_diff -end_test diff --git a/regress/tests/recycle-test b/regress/tests/recycle-test deleted file mode 100755 index 244b0df2da..0000000000 --- a/regress/tests/recycle-test +++ /dev/null @@ -1,81 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory but -# create three volumes and do six backups causing the -# volumes to be recycled, and cycling through the volumes -# twice. Tests maxvoljobs and volretention. -# -TestName="recycle-test" -JobName=Recycle -. scripts/functions -set_debug 0 - -cwd=`pwd` -scripts/cleanup -scripts/copy-test-confs -echo "${cwd}/build" >/tmp/file-list - -change_jobname NightlySave $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label storage=File1 volume=TestVolume001 -label storage=File1 volume=TestVolume002 -label storage=File1 volume=TestVolume003 -update Volume=TestVolume001 volretention=10s -update Volume=TestVolume001 maxvoljobs=1 -update Volume=TestVolume002 volretention=10s -update Volume=TestVolume002 maxvoljobs=1 -update Volume=TestVolume003 volretention=10s -update Volume=TestVolume003 maxvoljobs=1 -list volumes -run job=$JobName storage=File1 level=full yes -wait -messages -list volumes -run job=$JobName storage=File1 level=full yes -wait -messages -list volumes -run job=$JobName storage=File1 level=full yes -wait -messages -list volumes -@sleep 10 -run job=$JobName storage=File1 level=full yes -wait -messages -list volumes -run job=$JobName storage=File1 level=full yes -wait -messages -list volumes -run job=$JobName storage=File1 level=full yes -wait -messages -list volumes -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=File1 -unmark * -mark * -done -yes -wait -messages -@output -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=File1 -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/tests/relabel-tape b/regress/tests/relabel-tape deleted file mode 100755 index 2a1ce858c7..0000000000 --- a/regress/tests/relabel-tape +++ /dev/null @@ -1,94 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory using the compressed option -# then backup four times, each with incremental then finally restore. -# It should require at least 4 different bsrs. -# -TestName="relabel-tape" -JobName=Relabeltape -. scripts/functions -set_debug 0 - -scripts/cleanup-tape -scripts/copy-tape-confs -echo "${cwd}/build" >/tmp/file-list - -change_jobname $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -run job=$JobName level=Full yes -wait -messages -add pool=Default -0 -TestVolume002 -@# set status to append -update volume=TestVolume001 -1 -. -run job=NightlySave level=Full yes -@sleep 20 -unmount -unmount -purge volume=TestVolume001 -relabel oldvolume=TestVolume001 volume=TestVolume003 slot=0 pool=Default -list volumes -mount -messages -wait -run job=$JobName level=Full yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 - - -echo "Backup done" -# -# now do several restores to ensure we cleanup between jobs -# -cat <tmp/bconcmds -@$out /dev/null -restore where=${cwd}/tmp/bacula-restores select all done -yes -wait -restore where=${cwd}/tmp/bacula-restores select all done -yes -wait -@$out tmp/log2.out -@# -@# now unmount the tape and start two restores -@# at the same time -@# -unmount storage=DDS-4 -restore where=${cwd}/tmp/bacula-restores select all done -yes -restore where=${cwd}/tmp/bacula-restores select -unmark * -mark * -done -yes -mount storage=DDS-4 -wait -messages -@$out -quit -END_OF_DATA - -run_bconsole - -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/tests/restore-by-file-tape b/regress/tests/restore-by-file-tape deleted file mode 100755 index 98827959f5..0000000000 --- a/regress/tests/restore-by-file-tape +++ /dev/null @@ -1,101 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# to a tape where the maximum tape file size is set to 1M -# then restore a few files from it. Note, by setting the maximum -# file size to 1M, it runs very slow. There are about 64 files that -# are created during each of the two backups. -# -TestName="restore-by-file-tape" -JobName=restorebyfile -. scripts/functions -set_debug 0 -copy_tape_confs - -echo "${cwd}/build" >/tmp/file-list -sed s%\^%${cwd}% ${cwd}/scripts/flist >${cwd}/tmp/restore2-list - -cp ${cwd}/bin/bacula-sd.conf ${cwd}/tmp/1 -sed "s%# Maximum File Size% Maximum File Size%" ${cwd}/tmp/1 >${cwd}/bin/bacula-sd.conf - -change_jobname NightlySave $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -run job=$JobName level=Full yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores storage=DDS-4 file=<${cwd}/tmp/restore2-list -yes -wait -messages -@output -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -dstat=0 -# -# We need to stop and start Bacula to -# test appending to a previously written tape -# -for i in `cat ${cwd}/tmp/restore2-list`; do - diff $i ${cwd}/tmp/bacula-restores$i - if [ $? != 0 ] ; then - dstat=1 - fi -done - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -run job=$JobName level=Full yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores -7 -<${cwd}/tmp/restore2-list - -yes -wait -messages -@output -quit -END_OF_DATA - -# -# Bacula was stopped, but we must restart it to -# test appending to a previously written tape -# -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -check_two_logs - -scripts/check_for_zombie_jobs storage=DDS-4 -bin/bacula stop 2>&1 >/dev/null -for i in `cat ${cwd}/tmp/restore2-list`; do - diff $i ${cwd}/tmp/bacula-restores$i - if [ $? != 0 ] ; then - dstat=1 - fi -done - -end_test diff --git a/regress/tests/restore-by-file-test b/regress/tests/restore-by-file-test deleted file mode 100755 index 16078fe638..0000000000 --- a/regress/tests/restore-by-file-test +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory using the compressed option -# then restore it. -# - -TestName="restore-by-file-test" -JobName=restorebyfile -. scripts/functions -set_debug 0 - -cwd=`pwd` -scripts/cleanup -scripts/copy-test-confs -echo "${cwd}/tmp/build" >/tmp/file-list -mkdir ${cwd}/tmp/build -cp -p ${cwd}/build/src/dird/*.c ${cwd}/tmp/build -cd ${cwd}/tmp/build -ls >../1 -cd .. -sed s%\^%${cwd}/tmp/build/% 1 >restore-list -rm -f 1 -cd ${cwd} - -change_jobname CompressedTest $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label storage=File volume=TestVolume001 -run job=$JobName yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores storage=File -7 -<${cwd}/tmp/restore-list - -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=File -stop_bacula - -check_two_logs -check_restore_tmp_build_diff -end_test diff --git a/regress/tests/restore-disk-seek-test b/regress/tests/restore-disk-seek-test deleted file mode 100755 index 72183a659a..0000000000 --- a/regress/tests/restore-disk-seek-test +++ /dev/null @@ -1,94 +0,0 @@ -#!/bin/sh -# -# Run a backup of the full bacula build directory, but with the -# Maximum File Size set. Then do a restore of a few files to kick in -# disk seeking (not yet enabled), and ensure that the restored files -# match. Even though disk seeking is not yet enabled, this is a good test, -# and once it is enabled, this will test it. -# -TestName="restore-disk-seek-test" -JobName=restore-disk-seek -. scripts/functions -set_debug 0 - -scripts/cleanup -scripts/copy-test-confs -echo "${cwd}/tmp/build" >/tmp/file-list -rm -rf ${cwd}/tmp/build -mkdir ${cwd}/tmp/build -# Copy only the .c files (to be restored) -# set files to "*.c" for all c files -files="ua_tree.c ua_update.c" -# files="*.c" -for i in ${files}; do - cp -p ${cwd}/build/src/dird/${i} ${cwd}/tmp/build -done -cd ${cwd}/tmp/build -ls >../1 -cd .. -sed s%\^%${cwd}/tmp/build/% 1 >restore-list -# -# At this point restore-list contains the list -# of files we will restore -# -rm -f 1 -cd ${cwd} -# -# Now arrange to backup *everything* -# -rm -rf ${cwd}/tmp/build -mkdir ${cwd}/tmp/build -cp -fp ${cwd}/build/src/dird/* ${cwd}/tmp/build -# -# Enable MaximumFileSize to ensure lots of JobMedia records and thus -# lots of seeking -# -cp ${cwd}/bin/bacula-sd.conf ${cwd}/tmp/1 -sed "s%# Maximum File Size% Maximum File Size%" ${cwd}/tmp/1 >${cwd}/bin/bacula-sd.conf - -change_jobname CompressedTest $JobName -start_test - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=File volume=TestVolume001 -run job=$JobName yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -setdebug level=30 fd -setdebug level=11 storage=File -sql -@# print the JobMedia records -select * from JobMedia; - -restore bootstrap=${cwd}/tmp/kern.bsr where=${cwd}/tmp/bacula-restores storage=File -7 -<${cwd}/tmp/restore-list - -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=File -stop_bacula - -# Now setup a control directory of only what we *should* restore -rm -rf ${cwd}/tmp/build -mkdir ${cwd}/tmp/build -for i in ${files}; do - cp -p ${cwd}/build/src/dird/${i} ${cwd}/tmp/build -done - -check_two_logs -check_restore_tmp_build_diff -end_test diff --git a/regress/tests/restore-seek-tape b/regress/tests/restore-seek-tape deleted file mode 100755 index fe3fe3c42b..0000000000 --- a/regress/tests/restore-seek-tape +++ /dev/null @@ -1,93 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# to a tape where the maximum tape file size is set to 1M -# then restore a few files from it. Note, by setting the maximum -# file size to 1M, it runs very slow. This tests the -# seeking capability -# -TestName="restore-seek-tape" -JobName=restore-tape-seek -. scripts/functions -set_debug 0 - -copy_tape_confs -echo "${cwd}/tmp/build" >/tmp/file-list -rm -rf ${cwd}/tmp/build -mkdir ${cwd}/tmp/build -# Copy only the .c files (to be restored) -# set files to "*.c" for all c files -files="ua_tree.c ua_update.c" -# files="*.c" -for i in ${files}; do - cp -p ${cwd}/build/src/dird/${i} ${cwd}/tmp/build -done -cd ${cwd}/tmp/build -ls >../1 -cd .. -sed s%\^%${cwd}/tmp/build/% 1 >restore-list -# -# At this point restore-list contains the list -# of files we will restore -# -rm -f 1 -cd ${cwd} -# -# Now arrange to backup *everything* -# -rm -rf ${cwd}/tmp/build -mkdir ${cwd}/tmp/build -cp -fp ${cwd}/build/src/dird/* ${cwd}/tmp/build -# -# Enable MaximumFileSize to ensure lots of JobMedia records and thus -# lots of seeking -# -cp ${cwd}/bin/bacula-sd.conf ${cwd}/tmp/1 -sed "s%# Maximum File Size = 1000000% Maximum File Size = 10KB%" ${cwd}/tmp/1 >${cwd}/bin/bacula-sd.conf - -change_jobname NightlySave $JobName -start_test - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 pool=Default -run job=$JobName yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -setdebug level=30 fd -setdebug level=10 storage=DDS-4 -sql -@# print the JobMedia records -select * from JobMedia; - -restore bootstrap=${cwd}/tmp/kern.bsr where=${cwd}/tmp/bacula-restores storage=DDS-4 -7 -<${cwd}/tmp/restore-list - -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -# Now setup a control directory of only what we *should* restore -rm -rf ${cwd}/tmp/build -mkdir ${cwd}/tmp/build -for i in ${files}; do - cp -p ${cwd}/build/src/dird/${i} ${cwd}/tmp/build -done - -check_two_logs -check_restore_tmp_build_diff -end_test diff --git a/regress/tests/restore2-by-file-test b/regress/tests/restore2-by-file-test deleted file mode 100755 index 77b4e375a5..0000000000 --- a/regress/tests/restore2-by-file-test +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory using the compressed option -# then restore a few selected files. -# -TestName="restore2-by-file-test" -JobName=restore2byfile -. scripts/functions -set_debug 0 -copy_test_confs - -echo "${cwd}/build" >/tmp/file-list -sed s%\^%${cwd}% ${cwd}/scripts/flist >${cwd}/tmp/restore2-list - -change_jobname CompressedTest $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label storage=File volume=TestVolume001 -run job=$JobName yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores storage=File file=<${cwd}/tmp/restore2-list -yes -wait -messages -@output -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=File -stop_bacula - -check_two_logs -dstat=0 -for i in `cat ${cwd}/tmp/restore2-list`; do - diff $i ${cwd}/tmp/bacula-restores$i - if [ $? != 0 ] ; then - dstat=1 - fi -done -end_test diff --git a/regress/tests/runscript-test b/regress/tests/runscript-test deleted file mode 100755 index 77212621fc..0000000000 --- a/regress/tests/runscript-test +++ /dev/null @@ -1,90 +0,0 @@ -#!/bin/sh -# -# Test if Bacula can automatically create a Volume label. -# - -TestName="runscript-test" - -. scripts/functions -set_debug 0 -copy_test_confs - -rm -f bin/bacula-dir.conf -/bin/cp -f scripts/bacula-dir.conf.testrunscript bin/bacula-dir.conf - -echo "${cwd}/build" >/tmp/file-list - -start_test - -cat <tmp/bconcmds -@output /dev/null -messages -label volume=TestVolume001 -@#setdebug level=100 storage=File -@output tmp/log.RUN2.out -run job=RUN_FD_WARNING yes -wait -@sleep 5 -messages -run job=RUN_ALL_OK yes -wait -@sleep 5 -messages -run job=RUN_FD_FAILED yes -wait -@sleep 5 -messages -run job=RUN_DIR_FAILED yes -wait -@sleep 5 -messages -st dir -quit -END_OF_DATA - - -bin/bacula start -cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf &> tmp/log.RUN1.out - -stop_bacula - -if grep -q 'dir: BeforeJob: run command "/bin/echo RunBeforeJob"' tmp/log.RUN1.out && - grep -q 'fd: ClientRunBeforeJob: ClientRunBeforeJob' tmp/log.RUN1.out && - grep -q 'fd: ClientAfterJob: run command "/bin/echo ClientRunAfterJob' tmp/log.RUN1.out && - grep -q 'dir: AfterJob: run command "/bin/echo RunAfterJob' tmp/log.RUN1.out -then - [ "$debug" -eq 1 ] && echo RUN_ALL_OK ok -else - echo "RUN_ALL_OK in error" - rstat=1 -fi - -if grep -q 'dir: BeforeJob: run command "/bin/false RUN_DIR_FAILED"' tmp/log.RUN1.out && - grep -q 'dir: BeforeJob: RunAfterFailedJob' tmp/log.RUN1.out && - true # grep -q 'Backup OK -- with warnings' tmp/log.RUN1.out -then - [ "$debug" -eq 1 ] && echo RUN_DIR_FAILED ok -else - echo "RUN_DIR_FAILED in error" - rstat=1 -fi - -if grep -q 'fd: ClientBeforeJob: run command "/bin/false RUN_FD_FAILED1"' tmp/log.RUN1.out && - grep -q 'fd: ClientBeforeJob: run command "/bin/false RUN_FD_FAILED2"' tmp/log.RUN1.out && - grep -q 'dir: AfterJob: run command "/bin/echo RunAfterFailedJob"' tmp/log.RUN1.out -then - [ "$debug" -eq 1 ] && echo RUN_FD_FAILED ok -else - echo "RUN_FD_FAILED in error" - rstat=1 -fi - -if grep -q 'fd: ClientBeforeJob: run command "/bin/false RUN_FD_WARNING"' tmp/log.RUN1.out && - grep -q 'Backup OK -- with warnings' tmp/log.RUN1.out -then - [ "$debug" -eq 1 ] && echo RUN_FD_WARNING ok -else - echo "RUN_FD_WARNING in error" - rstat=1 -fi - diff --git a/regress/tests/scratch-pool-test b/regress/tests/scratch-pool-test deleted file mode 100755 index f8fb24f88b..0000000000 --- a/regress/tests/scratch-pool-test +++ /dev/null @@ -1,74 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# to two tapes where the maximum tape file size is set to 1M -# Note, this test simulates the tape filling and writing to -# the next tape. One minor wrinkle: we create the two tapes -# in the Scratch pool, so they should be switched to the Default -# Pool automatically. -# We set TestVolume001 to not in the changer, so the algorithm -# should find TestVolume002 and use it rather than blocking. -# -# Note we use the viritual disk autochanger -# -TestName="scratch-pool-test" -JobName=scratch-pool -. scripts/functions -set_debug 0 - -. config.out -if test x${AUTOCHANGER} = x/dev/null ; then - echo "two-volume-test skipped. No autochanger." - exit -fi -cwd=`pwd` -scripts/cleanup -scripts/copy-2disk-confs -scripts/prepare-two-disks - -echo "${cwd}/build" >/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 NightlySave $JobName -start_test - -# Write out bconsole commands -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=1 pool=Scratch drive=0 -label storage=DDS-4 volume=TestVolume002 slot=2 pool=Scratch drive=0 -update Volume=TestVolume001 MaxVolBytes=2000000 pool=Scratch drive=0 -update Volume=TestVolume001 inchanger=no pool=Scratch drive=0 -@#setdebug level=200 storage=DDS-4 -llist volume=TestVolume001 -llist volume=TestVolume002 -run job=$JobName yes -wait -messages -list volumes -llist volume=TestVolume001 -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select all storage=DDS-4 done -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/tests/six-vol-test b/regress/tests/six-vol-test deleted file mode 100755 index 6969c3c7cc..0000000000 --- a/regress/tests/six-vol-test +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/sh -# -# Create a 60MB file with random bytes. Back it up to 6 Volumes -# each constrained to 10MB using the automatic labeling feature. -# -TestName="six-vol-test" -JobName=SixVol -. scripts/functions -set_debug 0 - -if test ! -c /dev/urandom ; then - echo "No random device. Test skipped.\n" - exit 0 -fi - -scripts/cleanup -scripts/copy-testa-confs -echo "${cwd}/tmp/largefile" >/tmp/file-list -# Create 56MB file with random data -echo "Creating a 56MB file with random data ..." -dd if=/dev/urandom of=${cwd}/tmp/largefile bs=1024 count=55000 -echo "largefile created" - -change_jobname MultiVol $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -run job=$JobName storage=File yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=File -unmark * -mark * -done -yes -wait -messages -@output -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=File -stop_bacula - -check_two_logs -diff tmp/largefile tmp/bacula-restores${cwd}/tmp/largefile 2>&1 >/dev/null -dstat=$? -end_test diff --git a/regress/tests/small-file-size-tape b/regress/tests/small-file-size-tape deleted file mode 100755 index 9c68cad1eb..0000000000 --- a/regress/tests/small-file-size-tape +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# to a tape where the maximum tape file size is set to 1M -# -TestName="small-file-size-tape" -JobName=smallfilesize -. scripts/functions -set_debug 0 - -copy_tape_confs - -echo "${cwd}/build" >/tmp/file-list -cp ${cwd}/bin/bacula-sd.conf ${cwd}/tmp/1 -sed "s%# Maximum File Size% Maximum File Size%" ${cwd}/tmp/1 >${cwd}/bin/bacula-sd.conf - -change_jobname NightlySave $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -setdebug level=2 storage=DDS-4 -run job=$JobName yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=DDS-4 -unmark * -mark * -done -yes -wait -messages -@output -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/tests/span-vol-test b/regress/tests/span-vol-test deleted file mode 100755 index c5ec639540..0000000000 --- a/regress/tests/span-vol-test +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory but -# split the archive into four volumes, two of which are -# totally full. I.e. make sure that bsr selects all tapes -# including those fully spanned. -# -TestName="span-vol-test" -JobName=SpanVol -. scripts/functions -set_debug 0 - -cwd=`pwd` -scripts/cleanup -scripts/copy-test-confs -echo "${cwd}/build" >/tmp/file-list - -change_jobname NightlySave $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label storage=File1 volume=TestVolume004 -label storage=File1 volume=TestVolume003 -label storage=File1 volume=TestVolume002 -label storage=File1 volume=TestVolume001 -update Volume=TestVolume004 MaxVolBytes=3000000 -update Volume=TestVolume003 MaxVolBytes=3000000 -update Volume=TestVolume002 MaxVolBytes=3000000 -run job=$JobName storage=File1 yes -wait -list volumes -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=File1 -unmark * -mark * -done -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=File1 -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/tests/sparse-compressed-test b/regress/tests/sparse-compressed-test deleted file mode 100755 index bcbb6bfc4d..0000000000 --- a/regress/tests/sparse-compressed-test +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory using the Sparse option -# then restore it. -# -TestName="sparse-compressed-test" -JobName=Sparse-conpressed -. scripts/functions -set_debug 0 - -cwd=`pwd` -scripts/cleanup -scripts/copy-test-confs -echo "${cwd}/build" >/tmp/file-list - -start_test - -cat >tmp/bconcmds </tmp/file-list -cd ${cwd}/build/src/tools -./gigaslam -if [ $? != 0 ]; then - echo "Execute of ${cwd}/build/src/tools/gigaslam failed." - rm -f ${cwd}/build/src/tools/gigaslam.gif - exit 1 -fi -cd ${cwd} - -start_test - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=File volume=TestVolume001 -setdebug level=10 fd -run job=$JobName yes -wait -messages -list volumes -@# -@# now do a restore -@# -@$out tmp/log2.out -@# setdebug level=0 fd -restore where=${cwd}/tmp/bacula-restores storage=File -5 -mark * -done -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -sleep 2 -check_for_zombie_jobs storage=File -stop_bacula - -size=`du ${cwd}/tmp/bacula-restores/${cwd}/build/src/tools/gigaslam.gif | cut -f 1` -if [ $size -gt 120 ]; then - echo "========== restored sparse file: gigaslam.gif too big =========" - echo " size is ${size}K it should be 120K" -fi - -check_two_logs -check_restore_diff -end_test -rm -f ${cwd}/build/src/tools/gigaslam.gif -rm -r ${cwd}/build/gigaslam.gif diff --git a/regress/tests/sparse-test b/regress/tests/sparse-test deleted file mode 100755 index 9ff464af29..0000000000 --- a/regress/tests/sparse-test +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory using the Sparse option -# then restore it. -# -TestName="sparse-test" -JobName=SparseTest -. scripts/functions -set_debug 0 - -cwd=`pwd` -scripts/cleanup -scripts/copy-test-confs -echo "${cwd}/build" >/tmp/file-list - -start_test - -cat >tmp/bconcmds <test.out -rm -f bin/working/* diff --git a/regress/tests/truncate-bug-tape b/regress/tests/truncate-bug-tape deleted file mode 100755 index acfda15f3e..0000000000 --- a/regress/tests/truncate-bug-tape +++ /dev/null @@ -1,87 +0,0 @@ -#!/bin/sh -# -# Test for a tape truncation bug. -# -TestName="truncate-bug-tape" -JobName=truncatebug -. scripts/functions - -set_debug 0 -copy_tape_confs - -echo "${cwd}/build" >/tmp/file-list - -change_jobname NightlySave $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -@# do a bunch of saves so we have 12 files on the tape -run job=$JobName yes -run level=Full job=$JobName yes -run level=Full job=$JobName yes -run level=Full job=$JobName yes -run level=Full job=$JobName yes -run level=Full job=$JobName yes -run level=Full job=$JobName yes -run level=Full job=$JobName yes -run level=Full job=$JobName yes -run level=Full job=$JobName yes -run level=Full job=$JobName yes -run level=Full job=$JobName yes -@#setdebug level=100 storage=DDS-4 -wait -messages -quit -END_OF_DATA - -run_bacula -scripts/check_for_zombie_jobs storage=DDS-4 - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log2.out -@# -@# now do a restore -@# -restore where=${cwd}/tmp/bacula-restores storage=DDS-4 -3 -@# select JobId=4 (i.e. file five on the tape) -4 -cd ${cwd}/build -@# mark a single file -mark configure -done -yes -wait -messages -@output -quit -END_OF_DATA - -run_bconsole -scripts/check_for_zombie_jobs storage=DDS-4 - -# Now write to tape one more time -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log3.out -run level=Full job=$JobName yes -wait -messages -quit -END_OF_DATA - -run_bconsole -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -check_two_logs -grep "^ Termination: *Backup OK" tmp/log3.out 2>&1 >/dev/null -dstat=$? -end_test diff --git a/regress/tests/two-jobs-test b/regress/tests/two-jobs-test deleted file mode 100755 index 9c20ca02c0..0000000000 --- a/regress/tests/two-jobs-test +++ /dev/null @@ -1,80 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory using the compressed option -# then backup a second time and finally restore it -# -TestName="two-jobs-test" -JobName=Two-Jobs -. scripts/functions -set_debug 0 - -cwd=`pwd` -scripts/cleanup -scripts/copy-test-confs -echo "${cwd}/build" >/tmp/file-list - -change_jobname CompressedTest $JobName -start_test - -cat >tmp/bconcmds <tmp/bconcmds </tmp/file-list -echo "${cwd}/build" >>/tmp/file-list -echo "${cwd}/build" >>/tmp/file-list -echo "${cwd}/build" >>/tmp/file-list -echo "${cwd}/build" >>/tmp/file-list - -start_test - -# Write out bconsole commands to a file -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -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 -@# Start job with Client run before and sleep -run job=NightlySave1 level=Full pool=Default yes -run job=NightlySave1 level=Full pool=Default yes -run job=NightlySave1 level=Full pool=Default yes -@# wait between starting jobs -@sleep 60 -@#setdebug level=100 storage=DDS-4 -run job=NightlySave2 level=Full pool=Full yes -run job=NightlySave2 level=Full pool=Full yes -run job=NightlySave2 level=Full pool=Full yes -@sleep 10 -messages -@sleep 10 -messages -@sleep 10 -status storage=DDS-4 -messages -wait -list volumes -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select all storage=DDS-4 done -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/tests/two-pool-test b/regress/tests/two-pool-test deleted file mode 100755 index 4cd29d8a34..0000000000 --- a/regress/tests/two-pool-test +++ /dev/null @@ -1,75 +0,0 @@ -#!/bin/sh -# -# This is Arno's test. It uses two pools, two tapes, and -# an autochanger. Note, the Director has three Pools in its -# conf: Default, Full, and Inc. Default is used in the -# NightlySave job by default. What is backed up is what -# is in /tmp/file-list, which is by default the Bacula -# source code (i.e. the build directory). -# -# Note, we use the virtual disk autochanger. -# -TestName="two-pool-test" -JobName=Two-pool -. scripts/functions -set_debug 0 - -. config.out -cwd=`pwd` -scripts/cleanup -scripts/copy-2disk-confs -scripts/prepare-two-disks - -# Make a relatively large backup set 5 x source code directory -# Reduced to 1 for portable -echo "${cwd}/build" >/tmp/file-list - -start_test - -# Write out bconsole commands to a file -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -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 -@# Start job with Client run before and sleep -run job=NightlySave1 level=Full pool=Default yes -run job=NightlySave1 level=Full pool=Default yes -run job=NightlySave1 level=Full pool=Default yes -@# wait between starting jobs -@sleep 60 -@#setdebug level=100 storage=DDS-4 -run job=NightlySave2 level=Full pool=Full yes -run job=NightlySave2 level=Full pool=Full yes -run job=NightlySave2 level=Full pool=Full yes -@sleep 10 -messages -@sleep 10 -messages -@sleep 10 -status storage=DDS-4 -messages -wait -list volumes -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select all storage=DDS-4 done -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/tests/two-vol-test b/regress/tests/two-vol-test deleted file mode 100755 index a7ad2d591e..0000000000 --- a/regress/tests/two-vol-test +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory but -# split the archive into two volumes -# -TestName="two-vol-test" -JobName=TwoVol -. scripts/functions -set_debug 0 - -cwd=`pwd` -scripts/cleanup -scripts/copy-test-confs -echo "${cwd}/build" >/tmp/file-list - -change_jobname NightlySave $JobName -start_test - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=File1 volume=TestVolume002 -label storage=File1 volume=TestVolume001 -update Volume=TestVolume002 MaxVolBytes=3000000 -run job=$JobName storage=File1 yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select all storage=File1 done -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=File1 -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/tests/two-volume-tape b/regress/tests/two-volume-tape deleted file mode 100755 index b26e0a9d85..0000000000 --- a/regress/tests/two-volume-tape +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# to two tapes where the maximum tape file size is set to 1M -# Note, this test simulates the tape filling and writing to -# the next tape. -# -TestName="two-volume-tape" -JobName=twovoltape -. scripts/functions -set_debug 0 - - -. config.out -if test x${AUTOCHANGER} = x/dev/null ; then - echo "two-volume-tape test skipped. No autochanger." - exit -fi - -scripts/cleanup -scripts/copy-2tape-confs -scripts/prepare-two-tapes - -echo "${cwd}/build" >/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=DDS-4 volume=TestVolume001 slot=1 pool=Default drive=0 -label storage=DDS-4 volume=TestVolume002 slot=2 pool=Default drive=0 -update Volume=TestVolume001 MaxVolBytes=3000000 pool=Default drive=0 -@#setdebug level=1000 client -run job=$JobName yes -wait -messages -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -mt -f ${TAPE_DRIVE} rewind -mtx -f ${AUTOCHANGER} unload -sleep 15 - -cat <tmp/bconcmds -@$out /dev/null -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select all storage=DDS-4 done -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/tests/two-volume-test b/regress/tests/two-volume-test deleted file mode 100755 index 7c2c51ad67..0000000000 --- a/regress/tests/two-volume-test +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# to two tapes where the maximum tape file size is set to 1M -# Note, this test simulates the tape filling and writing to -# the next tape. -# -# Note we use the viritual disk autochanger -# -TestName="two-volume-test" -JobName=TwoVolume -. scripts/functions -set_debug 0 -. config.out - -cwd=`pwd` -scripts/cleanup -scripts/copy-2disk-confs -scripts/prepare-two-disks - -echo "${cwd}/build" >/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 NightlySave $JobName -start_test - -# Write out bconsole commands -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=1 pool=Default drive=0 -label storage=DDS-4 volume=TestVolume002 slot=2 pool=Default drive=0 -update Volume=TestVolume001 MaxVolBytes=3000000 pool=Default drive=0 -@#setdebug level=1000 client -run job=$JobName yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select all storage=DDS-4 done -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/tests/usr-tape-root b/regress/tests/usr-tape-root deleted file mode 100755 index 0f5002d928..0000000000 --- a/regress/tests/usr-tape-root +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the /usr directory -# then restore it. -# -cwd=`pwd` -scripts/copy-tape-confs -scripts/cleanup-tape -echo "/usr" >/tmp/file-list - -echo " " -echo " " -echo " === Starting usr-tape-root test ===" -echo " " -echo " " - -bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -cd / -${cwd}/bin/testls -e ${cwd}/scripts/exclude-usr-test lib >${cwd}/tmp/original -cd ${cwd}/tmp/bacula-restores -${cwd}/bin/testls -e ${cwd}/scripts/exclude-usr-test lib >${cwd}/tmp/restored -cd ${cwd}/tmp -sed s%.*lib/kbd/consolefonts$%lib/kbd/consolefonts% original >1 -sort <1 >original -# -sed s%.*lib/kbd/consolefonts$%lib/kbd/consolefonts% restored >1 -sort <1 >restored -rm -f 1 -# -cd ${cwd} -diff tmp/original tmp/restored 2>&1 1>/dev/nul -if [ $? != 0 ] ; then - echo " " - echo " " - echo " ===== !!!! usr-tape-root failed !!!! ===== " - echo " ===== !!!! usr-tape-root failed !!!! ===== " >>test.out - echo " " -else - echo " ===== usr-tape-root OK ===== " - echo " ===== usr-tape-root OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/tests/verify-vol-tape b/regress/tests/verify-vol-tape deleted file mode 100755 index c544bc6603..0000000000 --- a/regress/tests/verify-vol-tape +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# then verify the catalog. -# -TestName="verify-vol-tape" -JobName=VerifyVol -. scripts/functions -set_debug 0 - -copy_tape_confs - -echo "${cwd}/build" >/tmp/file-list - -change_jobname NightlySave $JobName -start_test - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -setdebug level=1 storage=DDS-4 sd -label storage=DDS-4 volume=TestVolume001 pool=Default -run job=$JobName yes -wait -messages -@# -@# now do a verify volume -@# -@$out ${cwd}/tmp/original -run job=VerifyTape pool=Default -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula - -sleep 2 -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Verify OK" ${cwd}/tmp/original 2>&1 >/dev/null -rstat=$? -dstat=0 -end_test diff --git a/regress/tests/verify-vol-test b/regress/tests/verify-vol-test deleted file mode 100755 index af899b4de0..0000000000 --- a/regress/tests/verify-vol-test +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# then verify the catalog. -# -TestName="verify-vol-test" -JobName=VerifyVol -. scripts/functions -set_debug 0 - -cwd=`pwd` -scripts/cleanup -scripts/copy-test-confs -echo "${cwd}/build" >/tmp/file-list - -change_jobname NightlySave $JobName -start_test - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -setdebug level=1 storage=File sd -label storage=File volume=TestVolume001 -run job=$JobName yes -wait -messages -@# -@# now do a verify volume -@# -@$out ${cwd}/tmp/original -run job=VerifyVolume -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula - -sleep 2 -check_for_zombie_jobs storage=File -stop_bacula - -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Verify OK" ${cwd}/tmp/original 2>&1 >/dev/null -rstat=$? -dstat=0 -end_test diff --git a/regress/tests/weird-files-test b/regress/tests/weird-files-test deleted file mode 100755 index 96fed89322..0000000000 --- a/regress/tests/weird-files-test +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# then restore it. -# -TestName="weird-files-test" -JobName=wierd-files -. scripts/functions -set_debug 0 - -if test ! -d weird-files ; then - echo " " - echo "Weird files not configured. Test not run." - exit 0 -fi - -cwd=`pwd` -scripts/cleanup -scripts/copy-test-confs -change_jobname NightlySave $JobName -# -# Note, we save the weird-files directory twice on purpose -# because this causes problems with hard linked files -# that are only saved once. In 1.33, Bacula now deals -# with this situation. -# -echo "${cwd}/weird-files" >/tmp/file-list -echo "${cwd}/weird-files" >>/tmp/file-list - -start_test - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=File -TestVolume001 -run job=$JobName -yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=File -unmark * -mark * -done -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=File -stop_bacula - -${cwd}/bin/testls weird-files | sort >${cwd}/tmp/original -cd tmp/bacula-restores${cwd} -${cwd}/bin/testls weird-files | sort >${cwd}/tmp/restored -cd ${cwd} - -check_two_logs -diff ${cwd}/tmp/original ${cwd}/tmp/restored 2>&1 >/dev/null -dstat=$? -end_test diff --git a/regress/tests/weird-files2-test b/regress/tests/weird-files2-test deleted file mode 100755 index ec328155dd..0000000000 --- a/regress/tests/weird-files2-test +++ /dev/null @@ -1,80 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# then restore it. -# -TestName="weird-files2-test" -JobName=weird-files2 -. scripts/functions -set_debug 0 - -if test ! -d weird-files ; then - echo " " - echo "weird files not configured. Test not run." - exit 0 -fi -cwd=`pwd` -scripts/cleanup -scripts/copy-test-confs -rm -rf weird-files2 -cp -Rp weird-files weird-files2 -echo "${cwd}/weird-files2" >/tmp/file-list - -change_jobname NightlySave $JobName -start_test - -bin/testls weird-files2 >${cwd}/tmp/original - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=File volume=TestVolume001 -run job=$JobName yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=File -# -# Now mess up the a hard link, and a soft link -# -cd weird-files2 -rm -f hard-file2 -ln hard-file3 hard-file2 -rm -f soft-file2 -ln -s soft-file3 soft-file2 -cd ${cwd} -cat <tmp/bconcmds -@$out /dev/null -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where= storage=File -5 -unmark * -mark * -done -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bconsole -check_for_zombie_jobs storage=File -stop_bacula - -bin/testls weird-files2 >${cwd}/tmp/restored - -check_two_logs -diff ${cwd}/tmp/original ${cwd}/tmp/restored 2>&1 >/dev/null -dstat=$? - -end_test diff --git a/regress/tests/win32-backup-tape b/regress/tests/win32-backup-tape deleted file mode 100755 index 3322da8d49..0000000000 --- a/regress/tests/win32-backup-tape +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# to a tape then restore it, we do that twice to ensure that -# we can correctly append to a tape. -# -TestName="win32-backup-tape" -JobName=win32tape -. scripts/functions -set_debug 0 - -scripts/copy-win32-confs -scripts/cleanup-tape - -echo "${cwd}/build" >/tmp/file-list - -change_jobname $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default drive=0 -run job=$JobName yes -@sleep 10 -status storage=DDS-4 -@sleep 30 -messages -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=c:/tmp/bacula-restores select all storage=DDS-4 done -yes -wait -messages -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -check_two_logs -# no diff for now -dstat=0 -end_test diff --git a/regress/tests/win32-to-linux-tape b/regress/tests/win32-to-linux-tape deleted file mode 100755 index 5640e9f9ec..0000000000 --- a/regress/tests/win32-to-linux-tape +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# to a tape then restore it, we do that twice to ensure that -# we can correctly append to a tape. -# -TestName="win32-to-linux-tape" -JobName=AutoLabel -. scripts/functions -set_debug 0 - -scripts/copy-win32-confs -scripts/cleanup-tape - -echo "${cwd}/build" >/tmp/file-list - -change_job $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default drive=0 -run job=NightlySave yes -@sleep 10 -status storage=DDS-4 -@sleep 30 -messages -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=/tmp/bacula-restores client=Tibs select all storage=DDS-4 done -yes -wait -messages -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -check_two_logs -# No diff for the moment -dstat=0 -end_test diff --git a/regress/weird-files.tar.gz b/regress/weird-files.tar.gz deleted file mode 100644 index 78f715816ed797a3eeb5f9dd86c5fd192cf86bab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1711 zcmZ`&`#)591D??m#%IQ-FuH8>$)!Qo<>Q_>td+wi;nVvl&*=eOsF=ZEJ;%TgrNrYL_$*tNvsMF}m{ zGM>HlD)~$6K)0NO?>j%UQFq%%ZdBG8>XgGC!$`yX`bxcXeo2Y{JF-+L=~Yf?JTXB1 zNl8h_-)bz;a+T|5gZ~pFyL=xt7rf7k@qfiHq2F~<@(j}z32$h6XesVZ^H`X!J{M{4 zP{!Hyq{-knBh~%BkF{<}qTRRI`aTxe((!NZ!3*!{xQKn4)$hV{z)S^ z?t)g~3yNb}!q6DT>A%u>{=yv|`g>BkZHV@!U+p}abM(;kRi>AzL#X-i!=Mi=tNn`u zA*C+qkJPISUB-!`gVkI2QexlZoJA>X=`6j)X1USW`UntZfqR*0WYuiGO)4(*@~!V1 zZI&c!{uzY!7f8Y0{F9oXcZQ6u@4XA$WZLgxswr^|8UxPQPLMS!s)1RsyRnR3{V-edgE=%6-+*(dUjt*VdTX zm%44Cv=uI1y9kX>4DL(Lu)T*Bzr`SRrk(&?pA6{d64yk%aN!vvj?DVmR104d?BmL~ z=a?DW+_Y{?qGOu zq$dZYA0RlOIgYuw_3O{#X-Y^Xw7SlHK=%L#(iJdJi`{ z0c@~xq4Xi|;n%H^6}bIYz?g_$mYISYlVh>%VAV)st4uL$!)f-!{wtL1u z11jDyn7C=p;&4((ISW4ww3(^@Q1;rG^HEHm2wW=aA!%)P9O8pPA3$WyqR6Ks>?o$r zS=+r+a|BMwi48txM7%!6FyL^@ibi$rf#)SVegBTa3s-S0moUU%mg3(k<`JC=%Nr)V z6$>qw@T%eAOPX^XR44nMIp^9%C-v=Z(^&;Tu3<6jARoJs_3B0q0 zdgQ_rTj_<$@j+9c$fv&=naZafLNFCSZ$^yB#%UT&7WGN2xPAp!@S!w2;arO5h_<+V zl^@Sp4c%xLT7cLV8+_{Go_TaJfasd;rXYzu+uzim4YH2IPX`-8!J~`G!Zg$zbTM*UEZB<`}AEZcY?{CV#ZUQ!YR7D{`|V=Vqf&jBIJuw zm3n~Y@$^kv@m7>7Q11bH4rqA1`6dgpAi*Yh#g&{W&0#k%Bl~e4+!}&aK`CxVhUyzn zn~#6r?cS1Gu?&3H*SWcw1EHA$P!BG^zVLa_il+#q0{A!JyYr#$FcEFaITz%bfYaw6 zsGdTR@FTTyz@@ZuzPoy3tKS|TW_7H?HEhfM+h7KMm7vwe!|IUm1l&h$`6lkP4iPVh zHSjtc2CDv$Wrj7sVIT-4Z&OB-h@e=^^K4i%pZz8Tqo*Pwy-$DTAi?E%cxV$&eY>;Y vI23Z~+~u&}edXhS;`x1%NOYcRnul 2>&1 -COPY test.out test1.out -CALL tests\test0 -CALL tests\backup-bacula-tape -CALL tests\btape-fill-tape -CALL tests\fixed-block-size-tape -CALL tests\four-concurrent-jobs-tape -CALL tests\four-jobs-tape -CALL tests\incremental-tape -CALL tests\relabel-tape -CALL tests\restore-by-file-tape -CALL tests\small-file-size-tape -CALL tests\truncate-bug-tape -CALL tests\two-pool-tape -CALL tests\2drive-incremental-2tape -CALL tests\bscan-tape -CALL tests\verify-vol-tape -ECHO. -ECHO. -ECHO Test results -TYPE test.out -CALL scripts\cleanup diff --git a/regress/win32/all-non-root-tests.cmd b/regress/win32/all-non-root-tests.cmd deleted file mode 100644 index faeb4699ae..0000000000 --- a/regress/win32/all-non-root-tests.cmd +++ /dev/null @@ -1,48 +0,0 @@ -REM -REM Run all tests -REM -DEL test1.out -CALL tests\test0 -ECHO. -CALL tests\auto-label-test -CALL tests\backup-bacula-test -CALL tests\bextract-test -CALL tests\bscan-test -CALL tests\bsr-opt-test -CALL tests\compressed-test -CALL tests\concurrent-jobs-test -CALL tests\data-encrypt-test -CALL tests\differential-test -CALL tests\four-concurrent-jobs-test -CALL tests\four-jobs-test -CALL tests\incremental-test -CALL tests\query-test -CALL tests\recycle-test -CALL tests\restore2-by-file-test -CALL tests\restore-by-file-test -CALL tests\restore-disk-seek-test -CALL tests\six-vol-test -CALL tests\span-vol-test -CALL tests\sparse-compressed-test -CALL tests\sparse-test -CALL tests\two-jobs-test -CALL tests\two-vol-test -CALL tests\verify-vol-test -REM CALL tests\weird-files2-test -REM CALL tests\weird-files-test -CALL tests\migration-job-test -CALL tests\migration-jobspan-test -CALL tests\migration-volume-test -CALL tests\migration-time-test -REM CALL tests\hardlink-test -REM -REM The following are Virtual Disk Autochanger tests -CALL tests\two-pool-test -CALL tests\two-volume-test -CALL tests\incremental-2disk -CALL tests\2drive-incremental-2disk -CALL tests\scratch-pool-test -ECHO. -ECHO Test results -TYPE test.out -CALL scripts\cleanup diff --git a/regress/win32/all-root-tests.cmd b/regress/win32/all-root-tests.cmd deleted file mode 100644 index 20061b1768..0000000000 --- a/regress/win32/all-root-tests.cmd +++ /dev/null @@ -1,10 +0,0 @@ -REM -REM Run all root tests -REM -DEL test.out -CALL tests\dev-test-root -CALL tests\etc-test-root -CALL tests\lib-test-root -CALL tests\usr-tape-root -TYPE test.out -CALL scripts\cleanup diff --git a/regress/win32/all-tape-and-file-tests.cmd b/regress/win32/all-tape-and-file-tests.cmd deleted file mode 100644 index cbbebf2c2d..0000000000 --- a/regress/win32/all-tape-and-file-tests.cmd +++ /dev/null @@ -1,5 +0,0 @@ -REM -REM Run all tests -REM -CALL all-non-root-tests -CALL all-non-root-tape-tests diff --git a/regress/win32/all-tests.cmd b/regress/win32/all-tests.cmd deleted file mode 100644 index 62ffa6e940..0000000000 --- a/regress/win32/all-tests.cmd +++ /dev/null @@ -1,7 +0,0 @@ -REM -REM Run all tests -REM -CALL all-non-root-tests -CALL all-root-tests -TYPE test.out -CALL scripts\cleanup diff --git a/regress/win32/config.cmd b/regress/win32/config.cmd deleted file mode 100644 index 95a4113b1d..0000000000 --- a/regress/win32/config.cmd +++ /dev/null @@ -1,10 +0,0 @@ -@ECHO off -REM -REM First argument is expected to be a user's configuration file -REM -IF "%1" == "" ( - ECHO Arg1 must specify a config file ^(e.g. prototype.conf^) - EXIT /b 1 -) - -COPY %1 config_var.cmd diff --git a/regress/win32/make.cmd b/regress/win32/make.cmd deleted file mode 100644 index eaf74b1a4e..0000000000 --- a/regress/win32/make.cmd +++ /dev/null @@ -1,111 +0,0 @@ -@ECHO off -REM -REM Makefile for Bacula regression testing -REM -REM Note, Makefile is built from Makefile.in, which you should not really -REM need to change, by invoking: -REM -REM config -REM -REM e.g. -REM config kern.conf -REM - -SETLOCAL - -IF EXIST config_var.cmd GOTO :already_configured -ECHO You must run config first and supply the name of your conf file. -ECHO Use prototype.conf as a template. -EXIT /B 1 - -:already_configured - -SET PATH=%PATH%;%CD%\bin;%CD%\tools - -REM suck in user's configuration -CALL config_var.cmd - -IF EXIST "%BACULA_SOURCE%\configure" GOTO :source_ok -ECHO Unable to access the Bacula source in %BACULA_SOURCE%. Update -ECHO BACULA_SOURCE in your configuration file and rerun config. -EXIT /B 1 - -:source_ok -IF "%1" == "setup" GOTO :setup -IF "%1" == "bacula" GOTO :bacula -IF "%1" == "sed" GOTO :sed -IF "%1" == "test" GOTO :test -IF "%1" == "full_test" GOTO :full_test -IF "%1" == "root_test" GOTO :root_test -IF "%1" == "clean" GOTO :clean -IF "%1" == "reset" GOTO :reset -IF "%1" == "distclean" GOTO :distclean - -IF EXIST "%1" ( - %1 -) ELSE IF EXIST "%1.cmd" ( - %1 -) ELSE IF EXIST tests\%1 ( - tests\%1 -) ELSE IF EXIST tests\%1.cmd ( - tests\%1 -) ELSE ( - ECHO Unsupported option: %1 - ECHO Valid options are: - ECHO setup, bacula, sed, test, full_test, root_test, clean, reset, distclean - EXIT /b 1 -) - -:setup -CALL :bacula %2 -CALL :sed -GOTO :EOF - -:bacula -RD /s /q build bin weird-files tmp working 2>nul -MKDIR tmp working -SET BUILD_TYPE=%1 -IF "%BUILD_TYPE%"=="" SET BUILD_TYPE=release -ECHO Doing: scripts\setup "%BACULA_SOURCE%" %BUILD_TYPE% %EMAIL% %SMTP_HOST% %TAPE_DRIVE% %AUTOCHANGER% %AUTOCHANGER_PATH% %TAPE_DRIVE1% -CALL scripts\setup "%BACULA_SOURCE%" %BUILD_TYPE% %EMAIL% %SMTP_HOST% %TAPE_DRIVE% %AUTOCHANGER% %AUTOCHANGER_PATH% %TAPE_DRIVE1% -GOTO :EOF - -:sed -ECHO Doing: scripts\do_sed %EMAIL% %SMTP_HOST% %TAPE_DRIVE% %AUTOCHANGER% %AUTOCHANGER_PATH% %TAPE_DRIVE1% -CALL scripts\do_sed %EMAIL% %SMTP_HOST% %TAPE_DRIVE% %AUTOCHANGER% %AUTOCHANGER_PATH% %TAPE_DRIVE1% -GOTO :EOF - -:test -REM Run all non-root userid tests -CALL all-non-root-tests -GOTO :EOF - -:full_test -REM run all file and tape tests -CALL all-tape-and-file-tests -GOTO :EOF - -:root_test -REM These tests require you to run as root -CALL all-root-tests -GOTO :EOF - -:clean -CALL scripts\cleanup -DEL \tmp\file-list tmp\* working\* test.out diff >nul 2>&1 -DEL 1 2 3 scripts\1 scripts\2 scripts\3 tests\1 tests\2 tests\3 >nul 2>&1 -DEL .#* /s >nul 2>&1 -GOTO :EOF - -:reset -REM Reset our userid after running as root -CALL scripts\cleanup -DEL \tmp\file-list tmp\file-list -DEL tmp\* working\* -GOTO :EOF - -:distclean -RD /s /q bin build weird-files weird-files weird-files2 tmp working 2>nul -DEL scripts\*.conf -CALL :clean -GOTO :EOF diff --git a/regress/win32/prototype.conf b/regress/win32/prototype.conf deleted file mode 100644 index e6658feeda..0000000000 --- a/regress/win32/prototype.conf +++ /dev/null @@ -1,31 +0,0 @@ -REM -REM Prototype personal configuration file for the regression -REM scripts. Either edit this file directly, or better copy -REM it elsewhere so it won't get overwritten. -REM - -REM -REM Put the full path to the Bacula source code to be tested -REM -SET BACULA_SOURCE= - -REM Where to send email messages -REM -SET EMAIL= -SET SMTP_HOST=localhost - -REM -REM The device name of your tape drive if you have one -REM -SET TAPE_DRIVE=tape0 -SET TAPE_DRIVE1=nul - -REM -REM if you don't have an autochanger set AUTOCHANGER to nul -REM -SET AUTOCHANGER=changer0 - -REM -REM This must be the path to the autochanger including its name -REM -SET AUTOCHANGER_PATH=%CD%\bin\mtx diff --git a/regress/win32/scripts/bacula-dir-migration.conf.in b/regress/win32/scripts/bacula-dir-migration.conf.in deleted file mode 100644 index 312feb5205..0000000000 --- a/regress/win32/scripts/bacula-dir-migration.conf.in +++ /dev/null @@ -1,229 +0,0 @@ -# -# Default Bacula Director Configuration file -# -# The only thing that MUST be changed is to add one or more -# file or directory names in the Include directive of the -# FileSet resource. -# -# For Bacula release 1.39 -# -# You might also want to change the default email address -# from root to your address. See the "mail" and "operator" -# directives in the Messages resource. -# - -Director { # define myself - Name = @hostname@-dir - DIRport = 8101 # 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 /tmp -Job { - Name = "NightlySave" - Type = Backup - Client=@hostname@-fd - FileSet="Full Set" - Storage = File - Messages = Standard - Pool = Default - Write Bootstrap = "@working_dir@/NightlySave.bsr" - Maximum Concurrent Jobs = 4 - SpoolData = yes -# Prefer Mounted Volumes = no -} - -Job { - Name = "migrate-job" - Type = Migrate - Level = Full - Client=@hostname@-fd - FileSet="Full Set" - Messages = Standard - Storage = DiskChanger - Write Bootstrap = "@working_dir@/migratejob.bsr" - Pool = Default - Maximum Concurrent Jobs = 4 - Selection Type = Job - Selection Pattern = ".*Save" -} - -Job { - Name = "migrate-volume" - Type = Migrate - Level = Full - Client=@hostname@-fd - FileSet="Full Set" - Messages = Standard - Storage = DiskChanger - Write Bootstrap = "@working_dir@/migratevol.bsr" - Pool = Default - Maximum Concurrent Jobs = 4 - Selection Type = Volume - Selection Pattern = "File*" -} - -Job { - Name = "migrate-occupancy" - Type = Migrate - Level = Full - Client=@hostname@-fd - FileSet="Full Set" - Messages = Standard - Storage = DiskChanger - Write Bootstrap = "@working_dir@/migratejob.bsr" - Pool = Default - Maximum Concurrent Jobs = 4 - Selection Type = PoolOccupancy -} - -Job { - Name = "migrate-time" - Type = Migrate - Level = Full - Client=@hostname@-fd - FileSet="Full Set" - Messages = Standard - Storage = DiskChanger - Write Bootstrap = "@working_dir@/migratejob.bsr" - Pool = Default - Maximum Concurrent Jobs = 4 - Selection Type = PoolTime -} - - - - -# Standard Restore template, to be changed by Console program -Job { - Name = "RestoreFiles" - Type = Restore - Client=@hostname@-fd - FileSet="Full Set" - Storage = File - Messages = Standard - Pool = Default - Where = /tmp/bacula-restores -} - - -# List of files to be backed up -FileSet { - Name = "Full Set" - Include { Options { signature=MD5 } - File = tmp\bconcmds -CALL scripts\functions run_bconsole -grep "No Jobs running." tmp\dir.out >nul 2>&1 -IF %ERRORLEVEL% NEQ 0 ( - ECHO. - ECHO !!!! Zombie Jobs in Director !!!! - ECHO !!!! Zombie Jobs in Director !!!! >>test.out - ECHO. -) -grep "No Jobs running." tmp\fd.out >nul 2>&1 -IF %ERRORLEVEL% NEQ 0 ( - ECHO. - ECHO !!!! Zombie Jobs in File daemon !!!! - ECHO !!!! Zombie Jobs in File daemon !!!! >>test.out - ECHO. -) -grep "No Jobs running." tmp\sd.out >nul 2>&1 -IF %ERRORLEVEL% NEQ 0 ( - ECHO. - ECHO !!!! Zombie Jobs in Storage daemon !!!! - ECHO !!!! Zombie Jobs in Storage daemon !!!! >>test.out - ECHO. -) -grep "ERROR" tmp/log*.out >nul 2>&1 -IF %ERRORLEVEL% EQU 0 ( - ECHO. - ECHO !!!! ERROR in log output !!!! - ECHO !!!! ERROR in log output !!!! >>test.out - ECHO. -) -grep "Fatal Error" tmp\log*.out >nul 2>&1 -IF %ERRORLEVEL% EQU 0 ( - ECHO. - ECHO !!!! Fatal Error in log output !!!! - ECHO !!!! Fatal Error in log output !!!! >>test.out - ECHO. -) diff --git a/regress/win32/scripts/cleanup-2drive.cmd.in b/regress/win32/scripts/cleanup-2drive.cmd.in deleted file mode 100644 index c49d6dbacc..0000000000 --- a/regress/win32/scripts/cleanup-2drive.cmd.in +++ /dev/null @@ -1,43 +0,0 @@ -REM -REM Cleanup left over files -- both before and after test run -REM -CALL scripts\cleanup - -IF NOT "@autochanger@" == "nul" ( - SET slot=0 - FOR /f %%i in ( 'bin\mtx-changer @autochanger@ loaded 0 @tape_drive1@ 1' ) DO SET slot=%%i - ECHO Slot %slot% in drive 1 - IF !slot! NEQ 0 ( - ECHO unload slot !slot! in drive 1 - bin\mtx-changer @autochanger@ unload !slot! @tape_drive1@ 1 - ) - FOR /f %%i in ( 'bin\mtx-changer @autochanger@ loaded 0 @tape_drive@ 0' ) DO SET slot=%%i - ECHO Slot !slot! in drive 0 - IF !slot! NEQ 0 ( - echo "unload slot !slot! in drive 0" - bin\mtx-changer @autochanger@ unload !slot! @tape_drive@ 0 - ) - - FOR /f %%i in ( 'bin\mtx-changer @autochanger@ loaded 0 @tape_drive1@ 1' ) DO SET slot=%%i - IF !slot! NEQ 2 ( - ECHO load slot 2 in drive 1 - bin\mtx-changer @autochanger@ load 2 @tape_drive1@ 1 - ) - ECHO WEOF drive 1 - mt -f @tape_drive1@ rewind - mt -f @tape_drive1@ weof - ECHO unload slot 2 in drive 1 - bin\mtx-changer @autochanger@ unload 2 @tape_drive1@ 1 - - FOR /f %%i in ( 'bin\mtx-changer @autochanger@ loaded 0 @tape_drive@ 0' ) DO SET slot=%%i - ECHO Slot !slot! in drive 0 - IF !slot! NEQ 1 ( - ECHO load slot 1 in drive 0 - bin\mtx-changer @autochanger@ load 1 @tape_drive@ 0 - ) - ECHO WEOF drive 0 - mt -f @tape_drive@ rewind - mt -f @tape_drive@ weof - ECHO unload slot 1 from drive 0 - bin\mtx-changer @autochanger@ unload 1 @tape_drive@ 0 -) diff --git a/regress/win32/scripts/cleanup-2tape.cmd.in b/regress/win32/scripts/cleanup-2tape.cmd.in deleted file mode 100644 index a572d7f5a5..0000000000 --- a/regress/win32/scripts/cleanup-2tape.cmd.in +++ /dev/null @@ -1,29 +0,0 @@ -REM -REM Cleanup left over files -- both before and after test run -REM - -setlocal ENABLEDELAYEDEXPANSION - -CALL scripts\cleanup - -IF NOT "@autochanger@" == "nul" ( - SET slot=0 - FOR /f %%i in ( 'bin\mtx-changer @autochanger@ loaded 0 dummy 0' ) DO SET slot=%%i - IF !slot! NEQ 2 ( - bin\mtx-changer @autochanger@ unload 0 @tape_drive@ 0 - bin\mtx-changer @autochanger@ load 2 @tape_drive@ 0 - ) - mt -f @tape_drive@ rewind - mt -f @tape_drive@ weof - - REM - REM If we have an autochanger always load tape in slot 1 - REM - FOR /f %%i in ( 'bin\mtx-changer @autochanger@ loaded 0 dummy 0' ) DO SET slot=%%i - IF !slot! NEQ 1 ( - bin\mtx-changer @autochanger@ unload 0 @tape_drive@ 0 - bin\mtx-changer @autochanger@ load 1 @tape_drive@ 0 - ) -) -mt -f @tape_drive@ rewind -mt -f @tape_drive@ weof diff --git a/regress/win32/scripts/cleanup-tape.cmd.in b/regress/win32/scripts/cleanup-tape.cmd.in deleted file mode 100644 index 46ce41a6d5..0000000000 --- a/regress/win32/scripts/cleanup-tape.cmd.in +++ /dev/null @@ -1,7 +0,0 @@ -REM -REM Cleanup left over files -- both before and after test run -REM -CALL scripts\cleanup - -mt -f @tape_drive@ rewind -mt -f @tape_drive@ weof diff --git a/regress/win32/scripts/cleanup.cmd b/regress/win32/scripts/cleanup.cmd deleted file mode 100644 index 0125175548..0000000000 --- a/regress/win32/scripts/cleanup.cmd +++ /dev/null @@ -1,23 +0,0 @@ -@ECHO off -REM -REM Cleanup left over files -- both before and after test run -REM - -CALL scripts\bacula stop >nul 2>&1 - -DEL /q /f \tmp\FileVolume* tmp\FileVolume* >nul 2>&1 -DEL /q /f \tmp\TestVolume001 \tmp\Small* >nul 2>&1 -RD /s /q \tmp\bacula-restores tmp\bacula-restores >nul 2>&1 -DEL /q /f tmp\original tmp\Small* tmp\TestVolume* >nul 2>&1 -DEL /q /f tmp\restored tmp\largefile tmp\bscan.bsr tmp\log*.out >nul 2>&1 -DEL /q /f \tmp\sed_tmp \tmp\file-list >nul 2>&1 -RD /s /q tmp\build >nul 2>&1 -DEL /q /f tmp\restore-list tmp\restore2-list >nul 2>&1 -DEL /q /f tmp\fd.out tmp\dir.out tmp\sd.out >nul 2>&1 -DEL /q /f working\log tmp\TEST-* >nul 2>&1 -DEL /q /f working\*.bsr >nul 2>&1 -DEL /q /f tmp\disk-changer.cmd \tmp\disk-changer.cmd >nul 2>&1 - -CALL bin\drop_bacula_tables >nul 2>&1 -CALL bin\make_bacula_tables >nul 2>&1 -CALL bin\grant_bacula_privileges >nul 2>&1 diff --git a/regress/win32/scripts/copy-2disk-confs.cmd b/regress/win32/scripts/copy-2disk-confs.cmd deleted file mode 100644 index e759a41413..0000000000 --- a/regress/win32/scripts/copy-2disk-confs.cmd +++ /dev/null @@ -1,9 +0,0 @@ -REM -REM Setup for using the Virtual Disk Changer (simulates tape changer) -REM -COPY scripts\bacula-dir-tape.conf bin\bacula-dir.conf -COPY scripts\bacula-sd-2disk.conf bin\bacula-sd.conf -COPY scripts\test-bacula-fd.conf bin\bacula-fd.conf -COPY scripts\test-console.conf bin\bconsole.conf -COPY bin\bacula-dir.conf tmp\1 -bin\sed -e "s;# Autochanger = yes; Autochanger = yes;g" tmp\1 >bin\bacula-dir.conf diff --git a/regress/win32/scripts/copy-2disk-drive-confs.cmd b/regress/win32/scripts/copy-2disk-drive-confs.cmd deleted file mode 100644 index 173eec2df0..0000000000 --- a/regress/win32/scripts/copy-2disk-drive-confs.cmd +++ /dev/null @@ -1,6 +0,0 @@ -COPY scripts\bacula-dir-tape.conf bin\bacula-dir.conf -COPY scripts\bacula-sd-2disk-drive.conf bin\bacula-sd.conf -COPY scripts\test-bacula-fd.conf bin\bacula-fd.conf -COPY scripts\test-console.conf bin\bconsole.conf -COPY bin\bacula-dir.conf tmp\1 -bin\sed -e "s;# Autochanger = yes; Autochanger = yes;g" tmp\1 >bin\bacula-dir.conf diff --git a/regress/win32/scripts/copy-2drive-confs.cmd b/regress/win32/scripts/copy-2drive-confs.cmd deleted file mode 100644 index d20bf19ca9..0000000000 --- a/regress/win32/scripts/copy-2drive-confs.cmd +++ /dev/null @@ -1,10 +0,0 @@ -COPY scripts\bacula-dir-tape.conf bin\bacula-dir.conf -COPY scripts\bacula-sd-2drive.conf bin\bacula-sd.conf -COPY scripts\test-bacula-fd.conf bin\bacula-fd.conf -COPY scripts\test-console.conf bin\bconsole.conf - -COPY bin\bacula-dir.conf tmp\1 -bin\sed -e "s;# Autochanger = yes; Autochanger = yes;g" >bin\bacula-dir.conf - -REM get proper SD tape definitions -COPY scripts\win32_tape_options bin\tape_options diff --git a/regress/win32/scripts/copy-2tape-confs.cmd b/regress/win32/scripts/copy-2tape-confs.cmd deleted file mode 100644 index 3e5af7aa12..0000000000 --- a/regress/win32/scripts/copy-2tape-confs.cmd +++ /dev/null @@ -1,10 +0,0 @@ -COPY scripts\bacula-dir-tape.conf bin\bacula-dir.conf -COPY scripts\bacula-sd-2tape.conf bin\bacula-sd.conf -COPY scripts\test-bacula-fd.conf bin\bacula-fd.conf -COPY scripts\test-console.conf bin\bconsole.conf - -COPY bin\bacula-dir.conf tmp\1 -bin\sed -e "s;# Autochanger = yes; Autochanger = yes;g" tmp\1 >bin\bacula-dir.conf - -REM get proper SD tape definitions -COPY scripts\win32_tape_options bin\tape_options diff --git a/regress/win32/scripts/copy-confs.cmd b/regress/win32/scripts/copy-confs.cmd deleted file mode 100644 index 359839c6d8..0000000000 --- a/regress/win32/scripts/copy-confs.cmd +++ /dev/null @@ -1,7 +0,0 @@ -COPY scripts\bacula-dir.conf bin\bacula-dir.conf -COPY scripts\bacula-sd.conf bin\bacula-sd.conf -COPY scripts\bacula-fd.conf bin\bacula-fd.conf -COPY scripts\bconsole.conf bin\bconsole.conf - -REM get proper SD tape definitions -COPY scripts\win32_tape_options bin\tape_options diff --git a/regress/win32/scripts/copy-crypto-confs.cmd b/regress/win32/scripts/copy-crypto-confs.cmd deleted file mode 100644 index 7166399d97..0000000000 --- a/regress/win32/scripts/copy-crypto-confs.cmd +++ /dev/null @@ -1,5 +0,0 @@ -COPY scripts\new-test-bacula-dir.conf bin\bacula-dir.conf -COPY scripts\test-bacula-sd.conf bin\bacula-sd.conf -COPY scripts\crypto-bacula-fd.conf bin\bacula-fd.conf -COPY scripts\test-console.conf bin\bconsole.conf -COPY scripts\cryptokeypair.pem bin\cryptokeypair.pem diff --git a/regress/win32/scripts/copy-migration-confs.cmd b/regress/win32/scripts/copy-migration-confs.cmd deleted file mode 100644 index 7bf12ddbd8..0000000000 --- a/regress/win32/scripts/copy-migration-confs.cmd +++ /dev/null @@ -1,7 +0,0 @@ -REM -REM Setup for migration tests -REM -COPY scripts\bacula-dir-migration.conf bin\bacula-dir.conf -COPY scripts\bacula-sd-migration.conf bin\bacula-sd.conf -COPY scripts\test-bacula-fd.conf bin\bacula-fd.conf -COPY scripts\test-console.conf bin\bconsole.conf diff --git a/regress/win32/scripts/copy-tape-confs.cmd b/regress/win32/scripts/copy-tape-confs.cmd deleted file mode 100644 index 0a7a50a811..0000000000 --- a/regress/win32/scripts/copy-tape-confs.cmd +++ /dev/null @@ -1,7 +0,0 @@ -copy scripts\bacula-dir-tape.conf bin\bacula-dir.conf -copy scripts\bacula-sd-tape.conf bin\bacula-sd.conf -copy scripts\test-bacula-fd.conf bin\bacula-fd.conf -copy scripts\test-console.conf bin\bconsole.conf - -REM get proper SD tape definitions -copy scripts\win32_tape_options bin\tape_options diff --git a/regress/win32/scripts/copy-test-confs.cmd b/regress/win32/scripts/copy-test-confs.cmd deleted file mode 100644 index c07c5d6204..0000000000 --- a/regress/win32/scripts/copy-test-confs.cmd +++ /dev/null @@ -1,7 +0,0 @@ -COPY scripts\new-test-bacula-dir.conf bin\bacula-dir.conf -COPY scripts\test-bacula-sd.conf bin\bacula-sd.conf -COPY scripts\test-bacula-fd.conf bin\bacula-fd.conf -COPY scripts\test-console.conf bin\bconsole.conf - -REM get proper SD tape definitions -COPY scripts\win32_tape_options bin\tape_options diff --git a/regress/win32/scripts/copy-testa-confs.cmd b/regress/win32/scripts/copy-testa-confs.cmd deleted file mode 100644 index 4cc89ff02d..0000000000 --- a/regress/win32/scripts/copy-testa-confs.cmd +++ /dev/null @@ -1,7 +0,0 @@ -COPY scripts\testa-bacula-dir.conf bin\bacula-dir.conf -COPY scripts\test-bacula-sd.conf bin\bacula-sd.conf -COPY scripts\test-bacula-fd.conf bin\bacula-fd.conf -COPY scripts\test-console.conf bin\bconsole.conf - -REM get proper SD tape definitions -COPY scripts\win32_tape_options bin\tape_options diff --git a/regress/win32/scripts/copy-win32-confs.cmd b/regress/win32/scripts/copy-win32-confs.cmd deleted file mode 100644 index b9f0ab72f6..0000000000 --- a/regress/win32/scripts/copy-win32-confs.cmd +++ /dev/null @@ -1,7 +0,0 @@ -COPY scripts\win32-bacula-dir-tape.conf bin\bacula-dir.conf -COPY scripts\win32-bacula-sd-tape.conf bin\bacula-sd.conf -COPY scripts\win32-bacula-fd.conf bin\bacula-fd.conf -COPY scripts\test-console.conf bin\bconsole.conf - -REM get proper SD tape definitions -COPY scripts\win32_tape_options bin\tape_options diff --git a/regress/win32/scripts/crypto-bacula-fd.conf.in b/regress/win32/scripts/crypto-bacula-fd.conf.in deleted file mode 100644 index ec4152d2b8..0000000000 --- a/regress/win32/scripts/crypto-bacula-fd.conf.in +++ /dev/null @@ -1,36 +0,0 @@ -# -# Default Bacula File Daemon Configuration file -# -# For Bacula release 1.33 -# -# There is not much to change here except perhaps the -# File daemon Name to -# - -# -# List Directors who are permitted to contact this File daemon -# -Director { - Name = @hostname@-dir - Password = "xevrjURYoCHhn26RaJoWbeWXEY/a3VqGKp/37tgWiuHc" -} - -# -# "Global" File daemon configuration specifications -# -FileDaemon { # this is me - Name = @hostname@-fd - FDport = 8102 # where we listen for the director - WorkingDirectory = "@working_dir@" - Pid Directory = "@piddir@" - SubSys Directory = "@subsysdir@" - PKI Signatures = Yes - PKI Encryption = Yes - PKI Keypair = "@scriptdir@/cryptokeypair.pem" -} - -# Send all messages except skipped files back to Director -Messages { - Name = Standard - director = @hostname@-dir = all, !terminate -} diff --git a/regress/win32/scripts/cryptokeypair.pem b/regress/win32/scripts/cryptokeypair.pem deleted file mode 100644 index 440dcce4f0..0000000000 --- a/regress/win32/scripts/cryptokeypair.pem +++ /dev/null @@ -1,23 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -MIIBOgIBAAJBAKIc649Amif6weq+c8rVtS7jyn7E9oZ9Irrl9WviQZi0+J2OLgCi -PNaj/FzPhTIgBBRFEP0ZU5DfVv6CoXKbpr8CAwEAAQJAQbvUUFvzpi5pnxPmw+Jv -+zlmjIy1Icdv47UHFN3Dl3V0+X05g12xUlnyNKzo2jlSwkBi1w8AJCMV6/TnnLiI -AQIhAM4SH9cb01DUH+1O5gk90GgNYW1Aq2vL1vygm02kppi/AiEAyWQ9eAILPXhX -H3a7mEj8z1bCTBiVrhe73NUjim4QcgECIEC3hHRj8ruBwv0eODRSy27CNQTAuJVE -ESKJtfxuZzu1AiEAotXYFbahW/x3hUs9d25ca1EdHOYr8G3kSjRT3lQMHAECIHBl -uX+Ywc1jjWhc+vN2ZrLWkKMVbrd+SWOPUQGroM0j ------END RSA PRIVATE KEY----- ------BEGIN CERTIFICATE----- -MIICKzCCAdWgAwIBAgIJAO4x/m+tHX8HMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV -BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX -aWRnaXRzIFB0eSBMdGQwHhcNMDYxMjA0MDMxMzUwWhcNMDcwMTAzMDMxMzUwWjBF -MQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50 -ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKIc -649Amif6weq+c8rVtS7jyn7E9oZ9Irrl9WviQZi0+J2OLgCiPNaj/FzPhTIgBBRF -EP0ZU5DfVv6CoXKbpr8CAwEAAaOBpzCBpDAdBgNVHQ4EFgQUiGz2I+bks0nCHyCI -IwuV3DpDPMwwdQYDVR0jBG4wbIAUiGz2I+bks0nCHyCIIwuV3DpDPMyhSaRHMEUx -CzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRl -cm5ldCBXaWRnaXRzIFB0eSBMdGSCCQDuMf5vrR1/BzAMBgNVHRMEBTADAQH/MA0G -CSqGSIb3DQEBBQUAA0EAkjFYcs9rrpdURlBaNlbud68VlA5rU+Bv4keYx41DUmqo -sXtkQZENR9iYYYhOUso1/1dwQgrt3egjTZTtq7o5zw== ------END CERTIFICATE----- diff --git a/regress/win32/scripts/disk-changer.cmd b/regress/win32/scripts/disk-changer.cmd deleted file mode 100644 index 3efb1933ce..0000000000 --- a/regress/win32/scripts/disk-changer.cmd +++ /dev/null @@ -1,201 +0,0 @@ -@ECHO off -setlocal ENABLEDELAYEDEXPANSION -REM -REM -REM Bacula interface to virtual autoloader using disk storage -REM -REM $Id$ -REM -REM If you set in your Device resource -REM -REM Changer Command = "disk-changer %c %o %S %a %d" -REM you will have the following input to this script: -REM -REM So Bacula will always call with all the following arguments, even though -REM in some cases, not all are used. -REM -REM disk-changer "changer-device" "command" "slot" "archive-device" "drive-index" -REM %1 %2 %3 %4 %5 -REM -REM By default the autochanger has 10 Volumes and 1 Drive. -REM -REM Note: For this script to work, you *must" specify -REM Device Type = File -REM in each of the Devices associated with your AutoChanger resource. -REM -REM changer-device is the name of a file that overrides the default -REM volumes and drives. It may have: -REM maxslot=n where n is one based (default 10) -REM maxdrive=m where m is zero based (default 1 -- i.e. 2 drives) -REM -REM This code can also simulate barcodes. You simply put -REM a list of the slots and barcodes in the "base" directory/barcodes. -REM See below for the base directory definition. Example of a -REM barcodes file: -REM C:\TEMP\bacula\barcodes -REM 1:Vol001 -REM 2:Vol002 -REM ... -REM -REM archive-device is the name of the base directory where you want the -REM Volumes stored appended with \drive0 for the first drive; \drive1 -REM for the second drive, ... For example, you might use -REM C:\Temp\bacula\drive0 Note: you must not have a trailing slash, and -REM the string (e.g. \drive0) must be unique, and it must not match -REM any other part of the directory name. These restrictions could be -REM easily removed by any clever script jockey. -REM -REM Full example: disk-changer C:\Temp\bacula\conf load 1 C:\Temp\bacula\drive0 0 -REM -REM The Volumes will be created with names slot1, slot2, slot3, ... maxslot in the -REM base directory. In the above example the base directory is C:\Temp\bacula. -REM However, as with tapes, their Bacula Volume names will be stored inside the -REM Volume label. In addition to the Volumes (e.g. C:\Temp\bacula\slot1, -REM C:\Temp\bacula\slot3, ...) this script will create a C:\Temp\bacula\loadedn -REM file to keep track of what Slot is loaded. You should not change this file. -REM - -SET dbgfile=%CD%\disk-changer.log - -REM to turn on logging, uncomment the following line -IF NOT EXIST %dbgfile% COPY nul %dbgfile% >nul - -REM -REM check parameter count on commandline -REM -REM Check for special cases where only 2 arguments are needed, -REM all others are a minimum of 5 -REM -IF "%1" EQU "" goto :param_count_invalid -IF "%2" EQU "" goto :param_count_invalid -IF "%2" EQU "list" goto :param_count_valid -IF "%2" EQU "slots" goto :param_count_valid -IF "%3" EQU "" goto :param_count_invalid -IF "%4" EQU "" goto :param_count_invalid -IF "%5" EQU "" goto :param_count_invalid -GOTO :param_count_valid - -:param_count_invalid - echo Insufficient number of arguments given. - IF "%2" EQU "" ( - echo At least two arguments must be specified. - ) else echo Command expected 5 arguments. -:usage - ECHO. - ECHO usage: disk-changer ctl-device command [slot archive-device drive-index] - ECHO Valid commands are: unload, load, list, loaded, and slots. - EXIT /B 1 - -:param_count_valid - -REM Setup arguments -SET ctl=%1 -SET cmd=%2 -SET slot=%3 -SET device=%4 -SET drive=%5 - -REM set defaults -SET maxdrive=1 -SET maxslot=10 - -SET ctl=%ctl:/=\% -SET ctl=%ctl:\\=\% - -SET device=%device:/=\% -SET device=%device:\\=\% - -REM Pull in conf file -IF EXIST %ctl% CALL %ctl% - -FOR %%i IN ( %ctl% ) DO SET dirname=%%~dpi -IF NOT EXIST %dirname%nul ( - ECHO ERROR: Autochanger directory "%dirname%" does not exist. - ECHO You must create it. - EXIT /b 1 -) - -CALL :debug "Parms: %ctl% %cmd% %slot% %device% %drive%" -IF "%cmd%" EQU "unload" GOTO :cmdUnload -IF "%cmd%" EQU "load" GOTO :cmdLoad -IF "%cmd%" EQU "list" GOTO :cmdList -IF "%cmd%" EQU "loaded" GOTO :cmdLoaded -IF "%cmd%" EQU "slots" GOTO :cmdSlots -GOTO :cmdUnknown - -:cmdUnload - CALL :debug "Doing disk -f %ctl% unload %slot% %device% %drive%" - IF NOT EXIST %dirname%loaded%drive% ECHO 0 >%dirname%loaded%drive% - FOR /f %%i IN ( %dirname%loaded%drive% ) DO SET ld=%%i - - IF "%slot%" EQU "%ld%" ( - CALL :debug "Unloaded slot %ld% from drive %drive%" - ECHO 0 >%dirname%loaded%drive% - DEL %dirname%%device% >nul 2>nul - SET rtn=0 - ) ELSE ( - ECHO Storage Element %slot% is Already Full - CALL :debug "Storage Element %slot% is Already Full" - SET rtn=1 - ) - GOTO :cmdExit - -:cmdLoad - CALL :debug "Doing disk -f %ctl% load %slot% %device% %drive%" - SET ld=0 - IF NOT EXIST %dirname%loaded%drive% ECHO 0 >%dirname%loaded%drive% - FOR /f %%i IN ( %dirname%loaded%drive% ) DO SET ld=%%i - IF %ld% EQU 0 ( - IF NOT EXIST %dirname%slot%slot% COPY nul %dirname%slot%slot% >nul - DEL %device% - fsutil hardlink create %device% %dirname%slot%slot% >nul 2>&1 - SET rtn=%ERRORLEVEL% - IF !rtn! EQU 0 ( - ECHO %slot% >%dirname%loaded%drive% - CALL :debug "Loaded slot %slot% into drive %drive%" - ) ELSE ( - CALL :debug "Create hardlink failed, return = !rtn!" - ) - ) ELSE ( - ECHO Drive %drive% Full - Storage element %ld% loaded - CALL :debug "Drive %drive% Full - Storage element %ld% loaded" - ) - GOTO :cmdExit - -:cmdList - CALL :debug "Doing disk -f %ctl% -- to list volumes" - IF EXIST %dirname%barcodes ( - TYPE %dirname%barcodes - ) ELSE ( - FOR /l %%i IN ( 1, 1, %maxslot% ) DO ECHO %%i: - ) - SET rtn=0 - GOTO :cmdExit - -:cmdLoaded - CALL :debug "Doing disk -f %ctl% %drive% -- to find what is loaded" - IF EXIST %dirname%loaded%drive% ( TYPE %dirname%loaded%drive% ) ELSE ECHO 0 - SET rtn=0 - GOTO :cmdExit - -:cmdSlots - CALL :debug "Doing disk -f %ctl% -- to get count of slots" - ECHO %maxslot% - SET rtn=0 - GOTO :cmdExit - -:cmdExit - EXIT /b %rtn% - -:cmdUnknown - ECHO '%cmd%' is an invalid command. - GOTO :usage - -REM -REM log whats done -REM -:debug - IF NOT EXIST %dbgfile% GOTO :EOF - FOR /f "usebackq tokens=2-4,5-7 delims=/:. " %%i IN ( '%DATE% %TIME%' ) do SET TIMESTAMP=%%k%%i%%j-%%l:%%m:%%n - ECHO %TIMESTAMP% %* >> %dbgfile% - GOTO :EOF diff --git a/regress/win32/scripts/do_sed.cmd b/regress/win32/scripts/do_sed.cmd deleted file mode 100644 index a533a303f8..0000000000 --- a/regress/win32/scripts/do_sed.cmd +++ /dev/null @@ -1,73 +0,0 @@ -IF "%1" == "" GOTO :usage -IF "%2" == "" GOTO :usage -IF "%3" == "" GOTO :usage -IF "%4" == "" GOTO :usage -IF "%5" == "" GOTO :usage -IF "%6" == "" GOTO :usage -GOTO :args_ok - -:usage -ECHO First arg must be email name -ECHO and the second must be the smtp or email host -ECHO and the third must be a tape drive -ECHO and the fourth must be a tape control name or nul -ECHO and the fifth must be the full path to the mtx program -ECHO and the sixth must be tape drive 1 or nul -EXIT /b 1 - -:args_ok -SET out=tmp\sed_tmp - -REM Create sed command script - -ECHO s;@sbindir@;%CD:\=/%/bin;g >%out% -ECHO s;@scriptdir@;%CD:\=/%/scripts;g >>%out% -ECHO s;@working_dir@;%CD:\=/%/working;g >>%out% -ECHO s;@piddir@;%CD:\=/%/working;g >>%out% -ECHO s;@subsysdir@;%CD:\=/%/working;g >>%out% -ECHO s;@job_email@;%1;g >>%out% -ECHO s;@smtp_host@;%2;g >>%out% -ECHO s;@tape_drive@;%3;g >>%out% -ECHO s;@autochanger@;%4;g >>%out% -ECHO s;@tmpdir@;%CD:\=/%/tmp;g >>%out% -ECHO s;@hostname@;localhost;g >>%out% -ECHO s;@changer_path@;%5;g >>%out% -ECHO s;@tape_drive1@;%6;g >>%out% -ECHO s;@disk_drive@;%CD:\=/%/tmp/disk-changer;g >>%out% -ECHO s;@smtp_program@;%CD:\=/%/bin/bsmtp;g >>%out% - -ECHO SET AUTOCHANGER=%4 >config_out.cmd -ECHO SET AUTOCHANGER_PATH=%5 >>config_out.cmd -ECHO SET TAPE_DRIVE1=%6 >>config_out.cmd - -REM process .in files with sed script -sed -f %out% %CD%\scripts\test-bacula-dir.conf.in >%CD%\scripts\test-bacula-dir.conf -sed -f %out% %CD%\scripts\new-test-bacula-dir.conf.in >%CD%\scripts\new-test-bacula-dir.conf -sed -f %out% %CD%\scripts\testa-bacula-dir.conf.in >%CD%\scripts\testa-bacula-dir.conf -sed -f %out% %CD%\scripts\test-bacula-fd.conf.in >%CD%\scripts\test-bacula-fd.conf -sed -f %out% %CD%\scripts\test-bacula-sd.conf.in >%CD%\scripts\test-bacula-sd.conf -sed -f %out% %CD%\scripts\test-console.conf.in >%CD%\scripts\test-console.conf -sed -f %out% %CD%\scripts\crypto-bacula-fd.conf.in >%CD%\scripts\crypto-bacula-fd.conf -sed -f %out% %CD%\scripts\bacula-dir-tape.conf.in >%CD%\scripts\bacula-dir-tape.conf -sed -f %out% %CD%\scripts\bacula-dir-migration.conf.in >%CD%\scripts\bacula-dir-migration.conf -sed -f %out% %CD%\scripts\win32-bacula-dir-tape.conf.in >%CD%\scripts\win32-bacula-dir-tape.conf -sed -f %out% %CD%\scripts\bacula-sd-tape.conf.in >%CD%\scripts\bacula-sd-tape.conf -sed -f %out% %CD%\scripts\bacula-sd-2tape.conf.in >%CD%\scripts\bacula-sd-2tape.conf -sed -f %out% %CD%\scripts\bacula-sd-migration.conf.in >%CD%\scripts\bacula-sd-migration.conf -sed -f %out% %CD%\scripts\bacula-sd-2disk.conf.in >%CD%\scripts\bacula-sd-2disk.conf -sed -f %out% %CD%\scripts\bacula-sd-2drive.conf.in >%CD%\scripts\bacula-sd-2drive.conf -sed -f %out% %CD%\scripts\bacula-sd-2disk-drive.conf.in >%CD%\scripts\bacula-sd-2disk-drive.conf -sed -f %out% %CD%\scripts\cleanup-tape.cmd.in >%CD%\scripts\cleanup-tape.cmd -sed -f %out% %CD%\scripts\cleanup-2tape.cmd.in >%CD%\scripts\cleanup-2tape.cmd -sed -f %out% %CD%\scripts\cleanup-2drive.cmd.in >%CD%\scripts\cleanup-2drive.cmd -sed -f %out% %CD%\scripts\prepare-two-tapes.cmd.in >%CD%\scripts\prepare-two-tapes.cmd -sed -f %out% %CD%\scripts\bacula-dir.conf.testrunscript.in >%CD%\scripts\bacula-dir.conf.testrunscript - -COPY %CD%\bin\bacula-sd.conf tmp\bacula-sd.tmp >nul -sed -e "s;C:\\Temp;%CD:\=/%/tmp;g" tmp\bacula-sd.tmp >%CD%\bin\bacula-sd.conf - -REM get proper SD tape definitions -COPY %CD%\scripts\win32_tape_options %CD%\bin\tape_options >nul - -DEL %out% -DEL tmp\*.tmp diff --git a/regress/win32/scripts/exclude-dev-test b/regress/win32/scripts/exclude-dev-test deleted file mode 100644 index 4165ea1ae7..0000000000 --- a/regress/win32/scripts/exclude-dev-test +++ /dev/null @@ -1,5 +0,0 @@ -dev/ptmx -dev/pts -dev/rd/c5d2 -dev/rd -dev/shm diff --git a/regress/win32/scripts/exclude-etc-test b/regress/win32/scripts/exclude-etc-test deleted file mode 100644 index f59ca8df2a..0000000000 --- a/regress/win32/scripts/exclude-etc-test +++ /dev/null @@ -1 +0,0 @@ -etc/mail/statistics diff --git a/regress/win32/scripts/exclude-lib-test b/regress/win32/scripts/exclude-lib-test deleted file mode 100644 index 5be32f443b..0000000000 --- a/regress/win32/scripts/exclude-lib-test +++ /dev/null @@ -1,5 +0,0 @@ -lib/ld-2.2.5.so -lib/libtermcap.so.2.0.8 -lib/libc-2.2.5.so -lib/libnsl-2.2.5.so -lib/libnss_files-2.2.5.so diff --git a/regress/win32/scripts/flist b/regress/win32/scripts/flist deleted file mode 100644 index 87f103defe..0000000000 --- a/regress/win32/scripts/flist +++ /dev/null @@ -1,23 +0,0 @@ -/build/configure -/build/src/stored/bextract -/build/src/tools/testfind -/build/Makefile.in -/build/src/dird/bacula-dir -/build/src/console/bconsole -/build/src/filed/bacula-fd -/build/src/findlib/find_one.c -/build/src/jcr.h -/build/platforms/Makefile.in -/build/platforms/redhat/Makefile.in -/build/scripts/Makefile.in -/build/src/win32/filed/winservice.cpp -/build/src/filed/restore.c -/build/autoconf/configure.in -/build/examples/afs-bacula -/build/src/win32/Makefile.inc.in -/build/src/win32/installer/winbacula.nsi -/build/autoconf/configure.in -/build/src/version.h -/build/src/lib/message.c -/build/src/lib/bnet_server.c -/build/src/lib/libbac.a diff --git a/regress/win32/scripts/functions.cmd b/regress/win32/scripts/functions.cmd deleted file mode 100644 index 1a03141c14..0000000000 --- a/regress/win32/scripts/functions.cmd +++ /dev/null @@ -1,131 +0,0 @@ -REM -REM A set of useful functions to be sourced in each test -REM - -SET routine=%1 -SHIFT - -GOTO %routine% - -:start_test - ECHO. - ECHO. - ECHO === Starting %TestName% at %TIME% === - ECHO === Starting %TestName% at %TIME% === >>working\log - ECHO. - GOTO :EOF - -:set_debug - SET debug=%1 - IF "%debug%" EQU 1 ( - SET out=tee - ) ELSE ( - SET out=output - ) - GOTO :EOF - -:run_bacula - IF %debug% EQU 1 ( - CALL scripts\bacula start - bin\bconsole -c bin\bconsole.conf nul 2>&1 - bin\bconsole -c bin\bconsole.conf nul 2>&1 - ) - GOTO :EOF - -:run_bconsole - IF %debug% EQU 1 ( - bin\bconsole -c bin\bconsole.conf nul 2>&1 - ) - GOTO :EOF - -:run_btape - IF %debug% EQU 1 ( - bin\btape -c bin\bacula-sd.conf DDS-4 tmp\log1.out 2>&1 - ) - GOTO :EOF - -:run_bscan - IF %debug% EQU 1 ( - bin\bscan %1 %2 %3 %4 %5 %6 %7 %8 %9 | tools\tee tmp\log.out - ) ELSE ( - bin\bscan %1 %2 %3 %4 %5 %6 %7 %8 %9 >nul 2>&1 - ) - GOTO :EOF - -:stop_bacula - CALL scripts\bacula stop >nul 2>&1 - GOTO :EOF - -:check_for_zombie_jobs - CALL scripts\check_for_zombie_jobs %1 %2 - GOTO :EOF - -:change_jobname - IF "%2" == "" ( - SET oldname=NightlySave - SET newname=%1 - ) ELSE ( - SET oldname=%1 - SET newname=%2 - ) - IF EXIST bin\1 DEL /f bin\1 - REN bin\bacula-dir.conf 1 - bin\sed -e "s;%oldname%;%newname%;g" bin\1 >bin\bacula-dir.conf -REM ECHO Job %oldname% changed to %newname% - GOTO :EOF - -:check_two_logs - tools\grep "^ Termination: *Backup OK" tmp\log1.out >nul 2>&1 - SET bstat=%ERRORLEVEL% - tools\grep "^ Termination: *Restore OK" tmp\log2.out >nul 2>&1 - SET rstat=%ERRORLEVEL% - GOTO :EOF - -:check_restore_diff - tools\diff -r build tmp\bacula-restores\%CD::=%\build >nul 2>&1 - SET dstat=%ERRORLEVEL% - GOTO :EOF - -:check_restore_tmp_build_diff - tools\diff -r tmp\build tmp\bacula-restores\%CD::=%\tmp\build >nul 2>&1 - SET dstat=%ERRORLEVEL% - GOTO :EOF - -:end_test - SET /a errcount=%bstat% + %rstat% + %dstat% - IF %errcount% NEQ 0 ( - ECHO. - ECHO. - ECHO !!!!! %TestName% Bacula source failed!!! !!!!! - ECHO !!!!! %TestName% failed!!! !!!!! >>test.out - IF %dstat% NEQ 0 ( - ECHO !!!!! Restored files differ !!!!! - ECHO !!!!! Restored files differ !!!!! >>test.out - ) ELSE ( - ECHO !!!!! Bad Job termination status !!!!! - ECHO !!!!! Bad Job termination status !!!!! >>test.out - ) - ECHO. - ) ELSE ( - ECHO ===== %TestName% Bacula source OK %TIME% ===== - ECHO ===== %TestName% OK %TIME% ===== >>test.out - IF %debug% EQU 0 scripts\cleanup - ) - SET errcount= - GOTO :EOF - -:copy_tape_confs - CALL scripts\copy-tape-confs >nul 2>&1 - CALL scripts\cleanup-tape - GOTO :EOF - -:copy_test_confs - CALL scripts\copy-test-confs >nul 2>&1 - CALL scripts\cleanup - GOTO :EOF diff --git a/regress/win32/scripts/install_bacula.cmd b/regress/win32/scripts/install_bacula.cmd deleted file mode 100644 index fa7dad4af7..0000000000 --- a/regress/win32/scripts/install_bacula.cmd +++ /dev/null @@ -1,76 +0,0 @@ -REM Arguments: -REM 1 = Debug or Release -REM 2 = email address -REM 3 = mail server -REM 4 = tape device -REM 5 = changer device or nul -REM 6 = tape1 device or nul - -SETLOCAL ENABLEDELAYEDEXPANSION - -SET CATS=create_sqlite3_database.cmd drop_sqlite3_database.cmd drop_sqlite3_tables.cmd grant_sqlite3_privileges.cmd make_sqlite3_catalog_backup.cmd make_sqlite3_tables.cmd - -SET CONFS=bacula-dir.conf.in bacula-fd.conf.in bacula-sd.conf.in bconsole.conf.in - -CALL scripts\bacula stop - -IF NOT EXIST bin MKDIR bin - -COPY build\src\win32\installer\%1\*.exe bin >nul -COPY build\src\win32\installer\%1\*.dll bin >nul -COPY build\src\win32\installer\%1\*.manifest bin >nul -COPY build\src\win32\%1\*.pdb bin >nul -COPY build\src\win32\installer\%1\query.sql bin >nul - -COPY bin\cats_sqlite.dll bin\bacula_cats.dll >nul - -FOR /f %%i IN ( 'cmd /c openssl.exe rand -base64 33 2^>nul' ) DO SET CLIENT_PASSWORD=%%i -FOR /f %%i IN ( 'cmd /c openssl.exe rand -base64 33 2^>nul' ) DO SET STORAGE_PASSWORD=%%i -FOR /f %%i IN ( 'cmd /c openssl.exe rand -base64 33 2^>nul' ) DO SET DIRECTOR_PASSWORD=%%i -FOR /f %%i IN ( 'cmd /c openssl.exe rand -base64 33 2^>nul' ) DO SET MONITOR_PASSWORD=%%i - -ECHO s;@director_name@;localhost-dir;g >install.sed -ECHO s;@director_port@;8101;g >>install.sed -ECHO s;@storage_name@;localhost-sd;g >>install.sed -ECHO s;@storage_port@;8103;g >>install.sed -ECHO s;@client_name@;localhost-fd;g >>install.sed -ECHO s;@client_port@;8102;g >>install.sed - -REM ECHO s;@DISTVER@;$R2; - -ECHO s;@working_dir@;%CD:\=\\\\%\\\\working;g >>install.sed -ECHO s;@working_dir_cmd@;%CD:\=\\%\\working;g >>install.sed -ECHO s;@bin_dir@;%CD:\=\\\\%\\\\bin;g >>install.sed; -ECHO s;@bin_dir_cmd@;%CD:\=\\%\\bin;g >>install.sed -ECHO s;@BUILD_DIR@;%CD:\=/%/build;g >>install.sed -ECHO s;@director_address@;localhost;g >>install.sed -ECHO s;@client_address@;localhost;g >>install.sed -ECHO s;@storage_address@;localhost;g >>install.sed -ECHO s;@client_maxjobs@;2;g >>install.sed -ECHO s;@client_password@;%CLIENT_PASSWORD%;g >>install.sed -ECHO s;@storage_maxjobs@;10;g >>install.sed -ECHO s;@storage_password@;%STORAGE_PASSWORD%;g >>install.sed -ECHO s;@director_maxjobs@;1;g >>install.sed -ECHO s;@director_password@;%DIRECTOR_PASSWORD%;g >>install.sed -ECHO s;@job_email@;%2;g >>install.sed -ECHO s;@smtp_host@;%3;g >>install.sed -ECHO s;@monitor_name@;localhost-mon;g >>install.sed -ECHO s;@monitor_password@;%MONITOR_PASSWORD%;g >>install.sed -ECHO s;@tape_drive@;%4;g >>install.sed -ECHO s;@autochanger@;%5;g >>install.sed -ECHO s;@changer_path@;%6;g >>install.sed -ECHO s;@tape_drive1@;%7;g >>install.sed - -FOR %%i in ( %CATS% ) DO ( - SET NAME=%%i - SET TARGET=bin\!NAME:sqlite3=bacula! - tools\sed -f install.sed build\src\win32\installer\%1\!NAME! > !TARGET! -) - -FOR %%i in ( %CONFS% ) DO tools\sed -f install.sed build\src\win32\installer\%%i > bin\%%~ni - -tools\sed -f install.sed build\src\win32\installer\%1\make_sqlite3_tables.sql > bin\make_sqlite3_tables.sql -tools\sed -f install.sed build\src\win32\installer\%1\mtx-changer.cmd > bin\mtx-changer.cmd - -CALL scripts\bacula uninstall -CALL scripts\bacula install %CD%\bin diff --git a/regress/win32/scripts/new-test-bacula-dir.conf.in b/regress/win32/scripts/new-test-bacula-dir.conf.in deleted file mode 100644 index 7302f0c73d..0000000000 --- a/regress/win32/scripts/new-test-bacula-dir.conf.in +++ /dev/null @@ -1,326 +0,0 @@ -# -# Default Bacula Director Configuration file -# -# The only thing that MUST be changed is to add one or more -# file or directory names in the Include directive of the -# FileSet resource. -# -# For Bacula release 1.39 or later -# -# You might also want to change the default email address -# from root to your address. See the "mail" and "operator" -# directives in the Messages resource. -# - -Director { # define myself - Name = @hostname@-dir - DIRport = 8101 # where we listen for UA connections - QueryFile = "@scriptdir@/query.sql" - WorkingDirectory = "@working_dir@" - PidDirectory = "@piddir@" - SubSysDirectory = "@subsysdir@" - Maximum Concurrent Jobs = 4 - Password = "pNvX1WiXnwv2C/F7E52LGvw6rKjbbPvu2kyuPa9pVaL3" # Console password - Messages = Standard -} - -# -# Define the main nightly save backup job -# By default, this job will back up to disk in /tmp -Job { - Name = "NightlySave" - Type = Backup - Client=@hostname@-fd - FileSet="Full Set" - Storage = File - Messages = Standard - Pool = Default - Write Bootstrap = "@working_dir@/NightlySave.bsr" - Maximum Concurrent Jobs = 4 - SpoolData=yes -} - -Job { - Name = "Crypto" - Type = Backup - Client=@hostname@-fd - FileSet="SparseCompressedSet" - Storage = File - Messages = Standard - Pool = Default - Write Bootstrap = "@working_dir@/NightlySave.bsr" - Maximum Concurrent Jobs = 4 - SpoolData=yes -} - - -Job { - Name = "MonsterSave" - Type = Backup - Client=@hostname@-fd - FileSet="Full Set" - Storage = File1 - Messages = Standard - Pool = Default - Write Bootstrap = "@working_dir@/NightlySave.bsr" -} - - -Job { - Name = "VerifyVolume" - Type = Verify - Level = VolumeToCatalog - Client=@hostname@-fd - FileSet="Full Set" - Storage = File - Messages = Standard - Pool = Default - Write Bootstrap = "@working_dir@/NightlySave.bsr" -} - - -Job { - Name = "SparseTest" - Type = Backup - Client=@hostname@-fd - FileSet="SparseSet" - Storage = File - Messages = Standard - Pool = Default - Write Bootstrap = "@working_dir@/NightlySave.bsr" -} - -Job { - Name = "CompressedTest" - Type = Backup - Client=@hostname@-fd - FileSet="CompressedSet" - Storage = File - Messages = Standard - Pool = Default - Maximum Concurrent Jobs = 4 - Write Bootstrap = "@working_dir@/NightlySave.bsr" -} - -Job { - Name = "SparseCompressedTest" - Type = Backup - Client=@hostname@-fd - FileSet="SparseCompressedSet" - Storage = File - Messages = Standard - Pool = Default - Write Bootstrap = "@working_dir@/NightlySave.bsr" -} - - -# Backup the catalog database (after the nightly save) -Job { - Name = "BackupCatalog" - Type = Backup - Client=@hostname@-fd - FileSet="Catalog" -# Schedule = "WeeklyCycleAfterBackup" - Storage = File - Messages = Standard - Pool = Default - # This creates an ASCII copy of the catalog - RunBeforeJob = "@sbindir@/make_catalog_backup -u bacula" - # This deletes the copy of the catalog - RunAfterJob = "@sbindir@/delete_catalog_backup" - Write Bootstrap = "@working_dir@/BackupCatalog.bsr" -} - -# Standard Restore template, to be changed by Console program -Job { - Name = "RestoreFiles" - Type = Restore - Client=@hostname@-fd - FileSet="Full Set" - Storage = File - Messages = Standard - Pool = Default - Where = /tmp/bacula-restores -} - - -# List of files to be backed up -FileSet { - Name = "Full Set" - Include { Options { signature=MD5 } - File = nul 2>&1 -MKDIR tmp\disk-changer diff --git a/regress/win32/scripts/prepare-two-tapes.cmd.in b/regress/win32/scripts/prepare-two-tapes.cmd.in deleted file mode 100644 index 1bcd81898b..0000000000 --- a/regress/win32/scripts/prepare-two-tapes.cmd.in +++ /dev/null @@ -1,13 +0,0 @@ -REM -REM Create two blank tapes -REM -REM mt -f @tape_drive@ offline -@changer_path@ -f @autochanger@ unload -@changer_path@ -f @autochanger@ load 1 -mt -f @tape_drive@ rewind -mt -f @tape_drive@ weof -@changer_path@ -f @autochanger@ unload -@changer_path@ -f @autochanger@ load 2 -mt -f @tape_drive@ rewind -mt -f @tape_drive@ weof -REM @changer_path@ -f @autochanger@ unload diff --git a/regress/win32/scripts/setup.cmd b/regress/win32/scripts/setup.cmd deleted file mode 100644 index 53df74dcfd..0000000000 --- a/regress/win32/scripts/setup.cmd +++ /dev/null @@ -1,55 +0,0 @@ -REM -REM Script to setup running Bacula regression tests -REM - -IF "%1" == "" GOTO :usage -IF "%2" == "" GOTO :usage -IF "%3" == "" GOTO :usage -IF "%4" == "" GOTO :usage -IF "%5" == "" GOTO :usage -IF "%6" == "" GOTO :usage -IF "%7" == "" GOTO :usage -GOTO :param_count_ok - -:usage -ECHO Incorrect number of arguments. -ECHO setup bacula-src build-type email-address smtp-host tape-device changer-device tape1-device -ECHO. -EXIT /b 1 - -:param_count_ok -RD /s /q build bin tmp working >nul 2>&1 -MKDIR tmp - -REM Copy new source -ECHO Copying source from %1 -SET SRC=%1 -FOR /r %1 %%i in ( debug release ) do IF EXIST %%i ECHO %%i | sed -e "s;%SRC:\=\\%\\;;" -e "/installer\\%2/d" -e "/win32\\%2/d" >>tmp\exclude_list -ECHO .bsc >>tmp\exclude_list -ECHO .ncb >>tmp\exclude_list - -XCOPY %1 build\ /EXCLUDE:tmp\exclude_list /e /q - -DEL build\src\win32\%2\winbacula*.exe - -CALL scripts\install_bacula %2 %3 %4 %5 %6 %7 - -CALL scripts\bacula stop >nul 2>&1 - -IF NOT EXIST working MKDIR working -ECHO Running database creation scripts -CALL bin\create_bacula_database -CALL bin\drop_bacula_tables -CALL bin\make_bacula_tables -CALL bin\grant_bacula_privileges - -REM Start and stop Bacula to ensure conf files are OK - -CALL scripts\bacula start -CALL scripts\bacula stop >nul 2>&1 - -REM -REM Save Bacula default conf files for later use -REM -COPY bin\*.conf scripts >nul -GOTO :EOF diff --git a/regress/win32/scripts/test-bacula-dir.conf.in b/regress/win32/scripts/test-bacula-dir.conf.in deleted file mode 100644 index 93008cca82..0000000000 --- a/regress/win32/scripts/test-bacula-dir.conf.in +++ /dev/null @@ -1,312 +0,0 @@ -# -# Default Bacula Director Configuration file -# -# The only thing that MUST be changed is to add one or more -# file or directory names in the Include directive of the -# FileSet resource. -# -# For Bacula release 1.33 -# -# You might also want to change the default email address -# from root to your address. See the "mail" and "operator" -# directives in the Messages resource. -# - -Director { # define myself - Name = @hostname@-dir - DIRport = 8101 # where we listen for UA connections - QueryFile = "@scriptdir@/query.sql" - WorkingDirectory = "@working_dir@" - PidDirectory = "@piddir@" - SubSysDirectory = "@subsysdir@" - Maximum Concurrent Jobs = 4 - Password = "pNvX1WiXnwv2C/F7E52LGvw6rKjbbPvu2kyuPa9pVaL3" # Console password - Messages = Daemon -} - -# -# Define the main nightly save backup job -# By default, this job will back up to disk in /tmp -Job { - Name = "NightlySave" - Type = Backup - Client=@hostname@-fd - FileSet="Full Set" - Storage = File - Messages = Standard - Pool = Default - Write Bootstrap = "@working_dir@/NightlySave.bsr" - Maximum Concurrent Jobs = 4 - SpoolData=yes -} - -Job { - Name = "MonsterSave" - Type = Backup - Client=@hostname@-fd - FileSet="Full Set" - Storage = File1 - Messages = Standard - Pool = Default - Write Bootstrap = "@working_dir@/NightlySave.bsr" -} - - -Job { - Name = "VerifyVolume" - Type = Verify - Level = VolumeToCatalog - Client=@hostname@-fd - FileSet="Full Set" - Storage = File - Messages = Standard - Pool = Default - Write Bootstrap = "@working_dir@/NightlySave.bsr" -} - - -Job { - Name = "SparseTest" - Type = Backup - Client=@hostname@-fd - FileSet="SparseSet" - Storage = File - Messages = Standard - Pool = Default - Write Bootstrap = "@working_dir@/NightlySave.bsr" -} - -Job { - Name = "CompressedTest" - Type = Backup - Client=@hostname@-fd - FileSet="CompressedSet" - Storage = File - Messages = Standard - Pool = Default - Maximum Concurrent Jobs = 4 - Write Bootstrap = "@working_dir@/NightlySave.bsr" -# Max Run Time = 15 seconds -} - -Job { - Name = "SparseCompressedTest" - Type = Backup - Client=@hostname@-fd - FileSet="SparseCompressedSet" - Storage = File - Messages = Standard - Pool = Default - Write Bootstrap = "@working_dir@/NightlySave.bsr" -} - - -# Backup the catalog database (after the nightly save) -Job { - Name = "BackupCatalog" - Type = Backup - Client=@hostname@-fd - FileSet="Catalog" -# Schedule = "WeeklyCycleAfterBackup" - Storage = File - Messages = Standard - Pool = Default - # This creates an ASCII copy of the catalog - RunBeforeJob = "@sbindir@/make_catalog_backup -u bacula" - # This deletes the copy of the catalog - RunAfterJob = "@sbindir@/delete_catalog_backup" - Write Bootstrap = "@working_dir@/BackupCatalog.bsr" -} - -# Standard Restore template, to be changed by Console program -Job { - Name = "RestoreFiles" - Type = Restore - Client=@hostname@-fd - FileSet="Full Set" - Storage = File - Messages = Standard - Pool = Default - Where = /tmp/bacula-restores -} - - -# List of files to be backed up -FileSet { - Name = "Full Set" - Include { Options { signature=MD5 } - File = nul 2>&1 -CALL scripts\prepare-two-disks - -CALL scripts\functions change_jobname localhost-fd %JobName% -CALL scripts\functions start_test - -ECHO %CD:\=/%/tmp/build >\tmp\file-list -IF NOT EXIST tmp\build MKDIR tmp\build -COPY build\src\dird\*.c tmp\build >nul 2>&1 - -ECHO %CD:\=/%/tmp/build/ficheriro1.txt>tmp\restore-list -ECHO %CD:\=/%/tmp/build/ficheriro2.txt>>tmp\restore-list - -REM Turn off Prefer Mounted Volumes so we use2 drives -COPY bin\bacula-dir.conf tmp\1 >nul 2>&1 -REM Comment the next line out to write everything to one drive -REM otherwise, it writes the two jobs to different drives -sed -e "s;# Prefer Mounted Volumes; Prefer Mounted Volumes;g" tmp\1 >bin\bacula-dir.conf - -REM Write out bconsole commands -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\2drive-incremental-2disk.1.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -ECHO ficheriro1.txt >tmp\build\ficheriro1.txt -ECHO ficheriro2.txt >tmp\build\ficheriro2.txt - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\2drive-incremental-2disk.2.bscr >tmp\bconcmds - -CALL scripts\functions run_bconsole -CALL scripts\functions check_for_zombie_jobs storage=DDS-4 -CALL scripts\functions stop_bacula - -CALL scripts\functions check_two_logs -REM The restore should read from TestVolume002, which was on drive 1 -grep TestVolume002 tmp\log2.out >nul 2>&1 -IF %ERRORLEVEL% NEQ 0 SET rstat=%ERRORLEVEL% - -REM -REM Delete .c files because we will only restored the txt files -REM -DEL tmp\build\*.c -CALL scripts\functions check_restore_tmp_build_diff - -CALL scripts\functions end_test diff --git a/regress/win32/tests/2drive-incremental-2tape b/regress/win32/tests/2drive-incremental-2tape deleted file mode 100644 index a301c1ca55..0000000000 --- a/regress/win32/tests/2drive-incremental-2tape +++ /dev/null @@ -1,112 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory then create some -# new files, do an Incremental and restore those two files. -# -# This script uses the autochanger and two tapes -# -. config.out -if test x${TAPE_DRIVE1} = x/dev/null ; then - echo "Skipping 2drive-incremenatal-2tape test. No second drive." - exit -fi -TestName="2drive-incremental-2tape" -JobName="2drive2tape" -. scripts/functions -set_debug 0 - -cwd=`pwd` - -scripts/copy-2drive-confs -scripts/cleanup-2drive - -change_jobname localhost-fd $JobName - -echo "${cwd}/tmp/build" >/tmp/file-list -if test ! -d ${cwd}/tmp/build ; then - mkdir ${cwd}/tmp/build -fi -cp -p ${cwd}/build/src/dird/*.c ${cwd}/tmp/build -cd ${cwd}/tmp -echo "${cwd}/tmp/build/ficheriro1.txt" >restore-list -echo "${cwd}/tmp/build/ficheriro2.txt" >>restore-list -cd ${cwd} - -# Turn off Prefer Mounted Volumes so we use 2 drives -outf="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 - -start_test - -# Write out bconsole commands -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=1 Pool=Default drive=0 -label storage=DDS-4 volume=TestVolume002 slot=2 Pool=Default drive=1 -@#setdebug level=100 storage=DDS-4 -run job=NightlySave yes -run job=NightlySave yes -run job=NightlySave yes -run job=NightlySave yes -run job=NightlySave yes -@sleep 3 -status storage=DDS-4 -wait -list volumes -list jobs -status storage=DDS-4 -messages -quit -END_OF_DATA - -run_bacula - -echo "ficheriro1.txt" >${cwd}/tmp/build/ficheriro1.txt -echo "ficheriro2.txt" >${cwd}/tmp/build/ficheriro2.txt - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -@# Force Incremental on the second Volume -update volume=TestVolume001 VolStatus=Used -status storage=DDS-4 -@#setdebug level=400 storage=DDS-4 -run level=Incremental job=NightlySave yes -wait -list volumes -status storage=DDS-4 -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores -7 -<${cwd}/tmp/restore-list - -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bconsole -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -check_two_logs -# -# Delete .c files because we will only restored the txt files -# -rm -f tmp/build/*.c -check_restore_tmp_build_diff - -end_test diff --git a/regress/win32/tests/auto-label-test.bscr b/regress/win32/tests/auto-label-test.bscr deleted file mode 100644 index c33c0a6a42..0000000000 --- a/regress/win32/tests/auto-label-test.bscr +++ /dev/null @@ -1,35 +0,0 @@ -@output nul -messages -@@out@ tmp/log1.out -status all -status all -list pools -messages -@#setdebug level=110 storage=File -run job=@JobName@ storage=File yes -list pools -list volumes -wait -messages -@# -@# now do a restore -@# -@@out@ tmp/log2.out -restore where=@topdir@/tmp/bacula-restores select storage=File -unmark * -mark * -count -ls * -dir * -find Makefile -pwd -lsmark -estimate -? -help -done -yes -wait -messages -@@out@ -quit diff --git a/regress/win32/tests/auto-label-test.cmd b/regress/win32/tests/auto-label-test.cmd deleted file mode 100644 index 218ded6d07..0000000000 --- a/regress/win32/tests/auto-label-test.cmd +++ /dev/null @@ -1,27 +0,0 @@ -REM -REM Test if Bacula can automatically create a Volume label. -REM - -SET TestName=auto-label-test -SET JobName=AutoLabel - -CALL scripts\functions set_debug 0 -CALL scripts\functions copy_test_confs - -ECHO %CD:\=/%/build >\tmp\file-list - -COPY bin\bacula-dir.conf tmp\1 -sed -e "s;# Label Format; Label Format;" tmp\1 >bin\bacula-dir.conf - -CALL scripts\functions change_jobname CompressedTest %JobName% -CALL scripts\functions start_test - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\auto-label-test.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=File -CALL scripts\functions stop_bacula - -CALL scripts\functions check_two_logs -CALL scripts\functions check_restore_diff -CALL scripts\functions end_test diff --git a/regress/win32/tests/backup-bacula-tape b/regress/win32/tests/backup-bacula-tape deleted file mode 100644 index 21d521d563..0000000000 --- a/regress/win32/tests/backup-bacula-tape +++ /dev/null @@ -1,117 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# to a tape then restore it, we do that twice to ensure that -# we can correctly append to a tape. -# We also use the purge and the relabel commands as -# well as a pile of status storage commands. -# -TestName="backup-bacula-tape" -JobName=backuptape -. scripts/functions -set_debug 0 - -scripts/copy-tape-confs -scripts/cleanup-tape - -echo "${cwd}/build" >/tmp/file-list - -change_jobname NightlySave $JobName -start_test - - -# Write out bconsole commands -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -@#setdebug level=200 storage=DDS-4 -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -purge volume=TestVolume001 -relabel pool=Default storage=DDS-4 oldVolume=TestVolume001 volume=TestVolume002 slot=0 -purge volume=TestVolume002 -relabel pool=Default storage=DDS-4 oldVolume=TestVolume002 volume=TestVolume001 slot=0 -run job=$JobName yes -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -@sleep 1 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -@sleep 1 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -@sleep 1 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -@sleep 1 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -status storage=DDS-4 -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select all storage=DDS-4 done -yes -wait -list volumes -messages -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -# -# Now do a second backup after making a few changes -# -touch ${cwd}/build/src/dird/*.c -echo "test test" > ${cwd}/build/src/dird/xxx - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -list volumes -run job=$JobName yes -wait -list volumes -messages -@# -@# now do a second restore -@# -@$out tmp/log2.out -list volumes -restore where=${cwd}/tmp/bacula-restores select all storage=DDS-4 done -yes -wait -list volumes -messages -@$out -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/win32/tests/backup-bacula-test.bscr b/regress/win32/tests/backup-bacula-test.bscr deleted file mode 100644 index c6c22e9dae..0000000000 --- a/regress/win32/tests/backup-bacula-test.bscr +++ /dev/null @@ -1,36 +0,0 @@ -@output nul -messages -@@out@ tmp/log1.out -label volume=TestVolume001 -@#setdebug level=100 storage=File -run job=@JobName@ yes -status storage=File -status storage=File -status storage=File -status storage=File -status storage=File -status storage=File -@sleep 1 -status storage=File -status storage=File -status storage=File -status storage=File -status storage=File -@sleep 1 -status storage=File -status storage=File -status storage=File -status storage=File -status storage=File -wait -messages -@# -@# now do a restore -@# -@@out@ tmp/log2.out -restore where=@topdir@/tmp/bacula-restores select all done -yes -wait -messages -@@out@ -quit diff --git a/regress/win32/tests/backup-bacula-test.cmd b/regress/win32/tests/backup-bacula-test.cmd deleted file mode 100644 index dafec1d622..0000000000 --- a/regress/win32/tests/backup-bacula-test.cmd +++ /dev/null @@ -1,24 +0,0 @@ -REM -REM Run a simple backup of the Bacula build directory -REM then restore it. -REM - -SET TestName=backup-bacula-test -SET JobName=backup -CALL scripts\functions set_debug 0 - -CALL scripts\cleanup -CALL scripts\copy-confs >nul 2>&1 - -CALL scripts\functions change_jobname Client1 %JobName% -CALL scripts\functions start_test - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\backup-bacula-test.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=File -CALL scripts\functions stop_bacula - -CALL scripts\functions check_two_logs -CALL scripts\functions check_restore_diff -CALL scripts\functions end_test diff --git a/regress/win32/tests/backup-win32-tape b/regress/win32/tests/backup-win32-tape deleted file mode 100644 index f6f6c3b0c0..0000000000 --- a/regress/win32/tests/backup-win32-tape +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# to a tape then restore it, we do that twice to ensure that -# we can correctly append to a tape. -# -TestName="backup-win32-tape" -JobName=backupwintape -. scripts/functions -set_debug 0 - -scripts/cleanup-tape -scripts/copy-win32-confs - -echo "${cwd}/build" >/tmp/file-list - -change_jobname $JobName -start_test - - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -run job=NightlySave yes -@sleep 10 -status storage=DDS-4 -@sleep 30 -messages -wait -messages -@# -@# now do a restore -@# -@$outt tmp/log2.out -@#restore where=${cwd}/tmp/bacula-restores select all storage=DDS-4 done -@#yes -@#wait -@#messages -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/win32/tests/bextract-test.bscr b/regress/win32/tests/bextract-test.bscr deleted file mode 100644 index 090d518da0..0000000000 --- a/regress/win32/tests/bextract-test.bscr +++ /dev/null @@ -1,21 +0,0 @@ -@output nul -messages -@@out@ tmp/log1.out -label storage=File1 volume=TestVolume001 -label storage=File1 volume=TestVolume002 -update Volume=TestVolume001 MaxVolBytes=3000000 -@#setdebug level=400 dir -@#setdebug level=400 storage=File1 -run job=@JobName@ storage=File1 yes -wait -messages -@# -@# now build the bsr file -@# -@@out@ tmp/log2.out -restore bootstrap=@topdir@/working/restore.bsr where=@topdir@/tmp/bacula-restores select all storage=File1 done -no -wait -messages -@@out@ -quit diff --git a/regress/win32/tests/bextract-test.cmd b/regress/win32/tests/bextract-test.cmd deleted file mode 100644 index c119764c5e..0000000000 --- a/regress/win32/tests/bextract-test.cmd +++ /dev/null @@ -1,29 +0,0 @@ -REM -REM Run a simple backup of the Bacula build directory but -REM split the archive into two volumes, then build a BSR with -REM the restore command and use bextract to restore the files. -REM -SET TestName=bextract-test -SET JobName=bextract - -CALL scripts\functions set_debug 0 -CALL scripts\functions copy_test_confs - -ECHO %CD:\=/%/build >\tmp\file-list - -CALL scripts\functions change_jobname NightlySave %JobName% -CALL scripts\functions start_test - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\bextract-test.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=File1 -CALL scripts\functions stop_bacula - -MKDIR %CD%\tmp\bacula-restores -bin\bextract -b working/restore.bsr -c bin/bacula-sd.conf %CD:\=/%/tmp %CD:\=/%/tmp/bacula-restores 2>&1 >nul -SET rstat=%ERRORLEVEL% -grep "^ Termination: *Backup OK" tmp\log1.out 2>&1 >nul -SET bstat=%ERRORLEVEL% -CALL scripts\functions check_restore_diff -CALL scripts\functions end_test diff --git a/regress/win32/tests/bscan-fast-tape b/regress/win32/tests/bscan-fast-tape deleted file mode 100644 index fcb7e921ba..0000000000 --- a/regress/win32/tests/bscan-fast-tape +++ /dev/null @@ -1,89 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory using the compressed option -# then backup four times, each with incremental then -# do a bscan and restore. -# It should require at least 4 different bsrs. -# -TestName="bscan-tape" -JobName=bscantape -. scripts/functions -set_debug 1 - -copy_tape_confs - -echo "${cwd}/build" >/tmp/file-list - -cp ${cwd}/bin/bacula-sd.conf ${cwd}/tmp/1 -# sed "s%# Maximum File Size% Maximum File Size%" ${cwd}/tmp/1 >${cwd}/bin/bacula-sd.conf - -change_jobname NightlySave $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -setdebug level=2 storage=DDS-4 -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -run job=$JobName yes -wait -messages -quit -END_OF_DATA - -echo "Starting Bacula tape writing" -#bin/btape -c bin/bacula-sd.conf /dev/nst0 </dev/null 2>&1 -./make_bacula_tables >/dev/null 2>&1 -./grant_bacula_privileges 2>&1 >/dev/null -cd .. - -echo "Begin attempt to read tape that crashes the system" -echo "volume=TestVolume001" >tmp/bscan.bsr -strace -o strace.new bin/bscan -d200 -w working -m -s -v -b tmp/bscan.bsr -c bin/bacula-sd.conf DDS-4 -exit -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log2.out -@# -@# now do a restore -@# -restore where=${cwd}/tmp/bacula-restores select all storage=DDS-4 done -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula -rm -f ${cwd}/build/src/lib/dummy - -check_two_logs -check_restore_diff -end_test diff --git a/regress/win32/tests/bscan-tape b/regress/win32/tests/bscan-tape deleted file mode 100644 index 7f7e708c1e..0000000000 --- a/regress/win32/tests/bscan-tape +++ /dev/null @@ -1,142 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory using the compressed option -# then backup four times, each with incremental then -# do a bscan and restore. -# It should require at least 4 different bsrs. -# -TestName="bscan-tape" -JobName=bscantape -. scripts/functions -set_debug 0 - -copy_tape_confs - -echo "${cwd}/build" >/tmp/file-list - -cp ${cwd}/bin/bacula-sd.conf ${cwd}/tmp/1 -sed "s%# Maximum File Size% Maximum File Size%" ${cwd}/tmp/1 >${cwd}/bin/bacula-sd.conf - -change_jobname NightlySave $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -estimate job=$JobName listing -estimate job=$JobName listing -estimate job=$JobName listing -messages -@$out tmp/log1.out -setdebug level=2 storage=DDS-4 -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -run job=$JobName yes -wait -run job=$JobName level=Full yes -wait -run job=$JobName level=Full yes -wait -messages -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 - -echo "Backup 1 done" -# make some files for the incremental to pick up -touch ${cwd}/build/src/dird/*.c ${cwd}/build/src/dird/*.o -touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o - -# -# run a second job -# -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -run job=$JobName level=Incremental yes -wait -messages -quit -END_OF_DATA - -run_bacula -scripts/check_for_zombie_jobs storage=DDS-4 - -echo "Backup 2 done" -touch ${cwd}/build/src/dird/*.c -touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o -# -# run a third job -# -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -run job=$JobName level=Incremental yes -wait -messages -quit -END_OF_DATA - -run_bacula -scripts/check_for_zombie_jobs storage=DDS-4 - -echo "Backup 3 done" -# make some files for the incremental to pick up -touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o -#echo "abc" > ${cwd}/build/src/lib/dummy -# -# run a fourth job -# -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -run job=$JobName level=Incremental yes -wait -messages -quit -END_OF_DATA - -run_bacula - -scripts/check_for_zombie_jobs storage=DDS-4 -stop_bacula - -echo "Backup 4 done" -# -# now drop and recreate the database -# -cd bin -./drop_bacula_tables >/dev/null 2>&1 -./make_bacula_tables >/dev/null 2>&1 -./grant_bacula_privileges 2>&1 >/dev/null -cd .. - -echo "volume=TestVolume001" >tmp/bscan.bsr -bin/bscan -w working -m -s -v -b tmp/bscan.bsr -c bin/bacula-sd.conf DDS-4 2>&1 >/dev/null - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log2.out -@# -@# now do a restore -@# -restore where=${cwd}/tmp/bacula-restores select all storage=DDS-4 done -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula -rm -f ${cwd}/build/src/lib/dummy - -check_two_logs -check_restore_diff -end_test diff --git a/regress/win32/tests/bscan-test.1.bscr b/regress/win32/tests/bscan-test.1.bscr deleted file mode 100644 index 2ed6803e27..0000000000 --- a/regress/win32/tests/bscan-test.1.bscr +++ /dev/null @@ -1,24 +0,0 @@ -@@out@ nul -messages -@@out@ tmp/log1.out -label storage=File1 -TestVolume001 -label storage=File1 -TestVolume002 -update Volume=TestVolume001 MaxVolBytes=3000000 -run job=@JobName@ storage=File1 -yes -wait -messages -@@out@ nul -@# -@# now purge the Volume -@# -purge volume=TestVolume001 -purge volume=TestVolume002 -delete volume=TestVolume001 -yes -delete volume=TestVolume002 -yes -messages -quit diff --git a/regress/win32/tests/bscan-test.2.bscr b/regress/win32/tests/bscan-test.2.bscr deleted file mode 100644 index 9e80679312..0000000000 --- a/regress/win32/tests/bscan-test.2.bscr +++ /dev/null @@ -1,13 +0,0 @@ -@@out@ nul -messages -@@out@ tmp/log2.out -@# -@# now do a restore -@# -@#setdebug level=400 storage=File1 -restore bootstrap=@topdir@/tmp/bscan.bsr where=@topdir@/tmp/bacula-restores select all storage=File1 done -yes -wait -messages -@@out@ -quit diff --git a/regress/win32/tests/bscan-test.cmd b/regress/win32/tests/bscan-test.cmd deleted file mode 100644 index 5b71db8c1a..0000000000 --- a/regress/win32/tests/bscan-test.cmd +++ /dev/null @@ -1,42 +0,0 @@ -REM -REM Run a simple backup of the Bacula build directory but -REM split the archive into two volumes then bscan it -REM into the catalog after the backup. It also to a limited -REM extent tests the purge volume and delete volume commands. -REM - -SET TestName=bscan-test -SET JobName=bscan - -CALL scripts\functions set_debug 0 -CALL scripts\functions copy_test_confs - -ECHO %CD:\=/%/build >\tmp\file-list - -CALL scripts\functions change_jobname NightlySave %JobName% -CALL scripts\functions start_test - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\bscan-test.1.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=File1 -CALL scripts\functions stop_bacula - -ECHO volume=TestVolume001^|TestVolume002 >tmp\bscan.bsr - -IF %debug% EQU 1 ( - bin\bscan -w working -m -s -v -b tmp/bscan.bsr -c bin/bacula-sd.conf %CD:\=/%/tmp | tools\tee tmp\log.out -) ELSE ( - bin\bscan -w working -m -s -v -b tmp/bscan.bsr -c bin/bacula-sd.conf %CD:\=/%/tmp >nul 2>&1 -) - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\bscan-test.2.bscr >tmp\bconcmds - -REM now run restore -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=File1 -CALL scripts\functions stop_bacula - -CALL scripts\functions check_two_logs -CALL scripts\functions check_restore_diff -CALL scripts\functions end_test diff --git a/regress/win32/tests/bsr-opt-test.bscr b/regress/win32/tests/bsr-opt-test.bscr deleted file mode 100644 index 1f0576b930..0000000000 --- a/regress/win32/tests/bsr-opt-test.bscr +++ /dev/null @@ -1,24 +0,0 @@ -@@out@ nul -messages -@@out@ tmp/log1.out -label storage=File1 volume=TestVolume001 -label storage=File1 volume=TestVolume002 -update Volume=TestVolume001 MaxVolBytes=3000000 -run job=@JobName@ storage=File1 yes -wait -messages -@# -@# now do a restore -@# -@@out@ tmp/log2.out -restore bootstrap=@topdir@/working/restore.bsr where=@topdir@/tmp/bacula-restores select storage=File1 -unmark * -cd @topdir@/build/src/cats -mark * -ls -done -yes -wait -messages -@@out@ -quit diff --git a/regress/win32/tests/bsr-opt-test.cmd b/regress/win32/tests/bsr-opt-test.cmd deleted file mode 100644 index 9f816ab084..0000000000 --- a/regress/win32/tests/bsr-opt-test.cmd +++ /dev/null @@ -1,57 +0,0 @@ -REM -REM Run a simple backup of the Bacula build directory but -REM split the archive into two volumes, then restore -REM files on only one of the volumes and ensure that -REM the other volume is not used. I.e. bsr optimization -REM works. -REM -SET TestName=bsr-opt-test -SET JobName=bsr-opt - -CALL scripts\functions set_debug 0 -CALL scripts\functions copy_test_confs - -ECHO %CD:\=/%/build >\tmp\file-list - -CALL scripts\functions change_jobname NightlySave %JobName% -CALL scripts\functions start_test - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\bsr-opt-test.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=File1 -CALL scripts\functions stop_bacula -REM -REM This test is not really reliable. What we want to do is -REM to select files on only one Volume, then insure here -REM that only one Volume is chosen. -REM -grep TestVolume002 working\restore.bsr >nul 2>&1 -SET bsrstat=%ERRORLEVEL% -CALL scripts\functions check_two_logs - -diff -r build\src\cats tmp\bacula-restores\%CD::=%\build\src\cats >nul 2>&1 -SET /A errcount = %bsrstat% + %bstat% + %rstat% -IF %errcount% NEQ 0 ( - ECHO. - ECHO. - ECHO !!!!! bsr-opt-test Bacula source failed!!! !!!!! - ECHO !!!!! bsr-opt-test failed!!! !!!!! >>test.out - - SET /A errcount = %bstat% + %rstat% - IF %errcount% NEQ 0 ( - ECHO !!!!! Bad Job termination status !!!!! - ECHO !!!!! Bad Job termination status !!!!! >>test.out - ) ELSE IF %bsrstat% NEQ 0 ( - ECHO !!!!! Volume selection error !!!!! - ECHO !!!!! Volume selection error !!!!! >>test.out - ) ELSE ( - ECHO !!!!! Restored files differ !!!!! - ECHO !!!!! Restored files differ !!!!! >>test.out - ) - ECHO. -) ELSE ( - ECHO ===== bsr-opt-test Bacula source OK %TIME% ===== - ECHO ===== bsr-opt-test OK %TIME% ===== >>test.out - CALL scripts\cleanup -) diff --git a/regress/win32/tests/btape-fill-full-tape b/regress/win32/tests/btape-fill-full-tape deleted file mode 100644 index f4ba59fb5b..0000000000 --- a/regress/win32/tests/btape-fill-full-tape +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/sh -# -# Test the fill command in btape -# -TestName="btape-fill-full-tape" -JobName=AutoLabel -. scripts/functions -set_debug 0 - -scripts/copy-tape-confs -scripts/cleanup-tape - -change_jobname $JobName -start_test - -bin/btape -c bin/bacula-sd.conf DDS-4 <&1 >tmp/log1.out -fill -s - -quit -END_OF_DATA - - -grep "^The last block on the tape matches\. Test succeeded\." tmp/log1.out 2>&1 >/dev/null -if [ $? != 0 ] ; then - echo " " - echo " " - echo " !!!!! btape fill test failed!!! !!!!! " - echo " !!!!! btape fill test failed!!! !!!!! " >>test.out - echo " " -else - echo " ===== btape fill test OK ===== " - echo " ===== btape fill test OK ===== " >>test.out -# scripts/cleanup -fi diff --git a/regress/win32/tests/btape-fill-tape b/regress/win32/tests/btape-fill-tape deleted file mode 100644 index b3fb4e5afd..0000000000 --- a/regress/win32/tests/btape-fill-tape +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh -# -# Test the fill command in btape -# -TestName="btape-fill-tape" -JobName=filltape -. scripts/functions -set_debug 0 - -copy_tape_confs - -echo "${cwd}/build" >/tmp/file-list - -cp ${cwd}/bin/bacula-sd.conf ${cwd}/tmp/1 -sed "s%# MaximumVolumeSize% MaximumVolumeSize%" ${cwd}/tmp/1 >${cwd}/bin/bacula-sd.conf - -start_test - -cat <tmp/bconcmds -fill -s -quit -END_OF_DATA - -run_btape DDS-4 - -grep "^The last block on the tape matches\. Test succeeded\." tmp/log1.out 2>&1 >/dev/null -if [ $? != 0 ] ; then - echo " " - echo " " - echo " !!!!! btape fill test failed!!! !!!!! " - echo " !!!!! btape fill test failed!!! !!!!! " >>test.out - echo " " -else - echo " ===== btape fill test OK ===== " - echo " ===== btape fill test OK ===== " >>test.out -# scripts/cleanup -fi diff --git a/regress/win32/tests/compressed-test.bscr b/regress/win32/tests/compressed-test.bscr deleted file mode 100644 index d46459f878..0000000000 --- a/regress/win32/tests/compressed-test.bscr +++ /dev/null @@ -1,23 +0,0 @@ -@output -messages -@@out@ tmp/log1.out -status all -status all -messages -label storage=File volume=TestVolume001 -run job=@JobName@ storage=File yes -wait -messages -@# -@# now do a restore -@# -@@out@ tmp/log2.out -restore where=@topdir@/tmp/bacula-restores select storage=File -unmark * -mark * -done -yes -wait -messages -@output -quit diff --git a/regress/win32/tests/compressed-test.cmd b/regress/win32/tests/compressed-test.cmd deleted file mode 100644 index 2097c6124f..0000000000 --- a/regress/win32/tests/compressed-test.cmd +++ /dev/null @@ -1,24 +0,0 @@ -REM -REM Run a simple backup of the Bacula build directory using the compressed option -REM then restore it. -REM -SET TestName=compressed-test -SET JobName=compressed - -CALL scripts\functions set_debug 0 -CALL scripts\functions copy_test_confs - -ECHO %CD:\=/%/build >\tmp\file-list - -CALL scripts\functions change_jobname CompressedTest %JobName% -CALL scripts\functions start_test - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\compressed-test.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=File -CALL scripts\functions stop_bacula - -CALL scripts\functions check_two_logs -CALL scripts\functions check_restore_diff -CALL scripts\functions end_test diff --git a/regress/win32/tests/concurrent-jobs-test.bscr b/regress/win32/tests/concurrent-jobs-test.bscr deleted file mode 100644 index 1799fd6e0b..0000000000 --- a/regress/win32/tests/concurrent-jobs-test.bscr +++ /dev/null @@ -1,23 +0,0 @@ -@output nul -messages -@@out@ tmp/log1.out -label storage=File volume=TestVolume001 -run job=@JobName@ level=Full yes -run job=@JobName@ level=Full yes -run job=@JobName@ level=Full yes -run job=@JobName@ level=Full yes -wait -messages -@# -@# now do a restore -@# -@@out@ tmp/log2.out -restore where=@topdir@/tmp/bacula-restores select storage=File -unmark * -mark * -done -yes -wait -messages -@output -quit diff --git a/regress/win32/tests/concurrent-jobs-test.cmd b/regress/win32/tests/concurrent-jobs-test.cmd deleted file mode 100644 index 9c36b48c7e..0000000000 --- a/regress/win32/tests/concurrent-jobs-test.cmd +++ /dev/null @@ -1,35 +0,0 @@ -REM -REM Run two jobs at the same time -REM - -SET TestName=concurrent-jobs-test -SET JobName=concurrent-jobs - -CALL scripts\functions set_debug 0 -CALL scripts\functions copy_test_confs - -ECHO %CD:\=/%/tmp/largefile >\tmp\file-list -ECHO Creating a 50MB file with bacula-dir data ... -tools\dd if=bin/bacula-dir.exe of=%CD:\=/%/tmp/1 bs=1024 count=512 >nul 2>&1 -COPY /b %CD%\tmp\1+%CD%\tmp\1+%CD%\tmp\1+%CD%\tmp\1 %CD%\tmp\2 >nul 2>&1 -DEL %CD%\tmp\1 -COPY /b %CD%\tmp\2+%CD%\tmp\2+%CD%\tmp\2+%CD%\tmp\2+%CD%\tmp\2 %CD%\tmp\3 >nul 2>&1 -DEL %CD%\tmp\2 -COPY /b %CD%\tmp\3+%CD%\tmp\3+%CD%\tmp\3+%CD%\tmp\3+%CD%\tmp\3 %CD%\tmp\largefile >nul 2>&1 -DEL %CD%\tmp\3 - -ECHO largefile created - -CALL scripts\functions change_jobname CompressedTest %JobName% -CALL scripts\functions start_test - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\concurrent-jobs-test.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=File -CALL scripts\functions stop_bacula - -CALL scripts\functions check_two_logs -diff tmp\largefile tmp\bacula-restores\%CD::=%\tmp\largefile >nul 2>&1 -SET dstat=%ERRORLEVEL% -CALL scripts\functions end_test diff --git a/regress/win32/tests/dev-test-root b/regress/win32/tests/dev-test-root deleted file mode 100644 index 26ae6fee84..0000000000 --- a/regress/win32/tests/dev-test-root +++ /dev/null @@ -1,85 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# then restore it. -# -MUID=`/usr/bin/id -u` -if [ $MUID != 0 ] ; then - echo " " - echo "You must be root to run this test." - echo " ===== !!!! dev-test-root not run !!!! ===== " - echo " ===== !!!! dev-test-root not run !!!! ===== " >>test.out - echo " " - exit 1 -fi -cwd=`pwd` -scripts/cleanup -scripts/copy-test-confs -echo "/dev" >/tmp/file-list - -echo " " -echo " " -echo " === Starting dev-test-root test ===" -echo " " -echo " === Note, this test can fail for trivial ===" -echo " === reasons on non-Linux systems. ===" -echo " " -echo " " - -bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -cd / -${cwd}/bin/testls -e ${cwd}/scripts/exclude-etc-test dev >${cwd}/tmp/original -cd ${cwd}/tmp/bacula-restores -${cwd}/bin/testls -e ${cwd}/scripts/exclude-etc-test dev >${cwd}/tmp/restored -cd ${cwd}/tmp -# -# Use sed to cut out parts that *always* change -# -cat >sed.scr <1 -sed -f sed.scr 1 | sort >original -# -mv -f restored 1 -sed -f sed.scr 1 | sort >restored -rm -f sed.scr -# -cd ${cwd} -diff tmp/original tmp/restored 2>&1 1>/dev/null -if [ $? != 0 ] ; then - echo " " - echo " " - echo " ===== !!!! dev-test-root failed !!!! ===== " - echo " ===== !!!! dev-test-root failed !!!! ===== " >>test.out - echo " " -else - echo " ===== dev-test-root OK ===== " - echo " ===== dev-test-root OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/win32/tests/differential-test.1.bscr b/regress/win32/tests/differential-test.1.bscr deleted file mode 100644 index 5b23122bdc..0000000000 --- a/regress/win32/tests/differential-test.1.bscr +++ /dev/null @@ -1,9 +0,0 @@ -@@out@ nul -messages -@@out@ tmp/log1.out -label storage=File volume=TestVolume002 -label storage=File volume=TestVolume001 -run job=@JobName@ yes -wait -messages -quit diff --git a/regress/win32/tests/differential-test.2.bscr b/regress/win32/tests/differential-test.2.bscr deleted file mode 100644 index c8ddb49849..0000000000 --- a/regress/win32/tests/differential-test.2.bscr +++ /dev/null @@ -1,9 +0,0 @@ -@@out@ nul -messages -@@out@ tmp/log1.out -@# Force differential on the second Volume -update volume=TestVolume002 VolStatus=Used -run level=differential job=@JobName@ yes -wait -messages -@@out@ diff --git a/regress/win32/tests/differential-test.3.bscr b/regress/win32/tests/differential-test.3.bscr deleted file mode 100644 index 3d2b98e26b..0000000000 --- a/regress/win32/tests/differential-test.3.bscr +++ /dev/null @@ -1,16 +0,0 @@ -@@out@ nul -messages -@@out@ tmp/log1.out -run level=incremental job=@JobName@ yes -wait -messages -@# -@# now do a restore -@# -@@out@ tmp/log2.out -restore where=@topdir@/tmp/bacula-restores storage=File file=<@topdir@/tmp/restore-list -yes -wait -messages -@@out@ -quit diff --git a/regress/win32/tests/differential-test.cmd b/regress/win32/tests/differential-test.cmd deleted file mode 100644 index 6ffdff055c..0000000000 --- a/regress/win32/tests/differential-test.cmd +++ /dev/null @@ -1,48 +0,0 @@ -REM -REM Run a simple backup of the Bacula build directory then create some -REM new files, do a differential and restore those two files. -REM -SET TestName=differential-test -SET JobName=differential - -CALL scripts\functions set_debug 0 -CALL scripts\functions copy_test_confs - -ECHO %CD:\=/%/tmp/build >\tmp\file-list -MKDIR tmp\build -COPY build\src\dird\*.c tmp\build >nul 2>&1 - -ECHO %CD:\=/%/tmp/build/ficheriro1.txt>tmp\restore-list -ECHO %CD:\=/%/tmp/build/ficheriro2.txt>>tmp\restore-list - -CALL scripts\functions change_jobname CompressedTest %JobName% -CALL scripts\functions start_test - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\differential-test.1.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=File - -ECHO ficheriro1.txt >tmp\build\ficheriro1.txt -ECHO ficheriro2.txt >tmp\build\ficheriro2.txt - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\differential-test.2.bscr >tmp\bconcmds - -CALL scripts\functions run_bconsole - -CALL scripts\functions check_for_zombie_jobs storage=File -ECHO ficheriro2.txt >tmp\build\ficheriro2.txt - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\differential-test.3.bscr >tmp\bconcmds - -CALL scripts\functions run_bconsole -CALL scripts\functions check_for_zombie_jobs storage=File -CALL scripts\functions stop_bacula - -CALL scripts\functions check_two_logs -REM -REM Delete .c files because we will only restore the txt files -REM -DEL tmp\build\*.c -CALL scripts\functions check_restore_tmp_build_diff -CALL scripts\functions end_test diff --git a/regress/win32/tests/eot-fail-tape b/regress/win32/tests/eot-fail-tape deleted file mode 100644 index 4907e8dca6..0000000000 --- a/regress/win32/tests/eot-fail-tape +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# to two tapes where the maximum tape file size is set to 1M -# -TestName="eot-fail-tape" -JobName=eotfailtape -. scripts/functions -set_debug 0 - -scripts/cleanup-tape -scripts/copy-tape-confs - -echo "${cwd}/build" >/tmp/file-list - -out="tmp/sed_tmp" -echo "s%# Maximum File Size% Maximum File Size%g" >${out} -cp -f ${cwd}/bin/bacula-sd.conf ${cwd}/tmp/1 -sed -f ${out} ${cwd}/tmp/1 >${cwd}/bin/bacula-sd.conf - -change_jobname $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -update Volume=TestVolume001 MaxVolBytes=3000000 -run job=$JobName yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select all storage=DDS-4 done -yes -wait -messages -@tee -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/win32/tests/etc-test-root b/regress/win32/tests/etc-test-root deleted file mode 100644 index e3a4495b88..0000000000 --- a/regress/win32/tests/etc-test-root +++ /dev/null @@ -1,70 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# then restore it. -# -MUID=`/usr/bin/id -u` -if [ $MUID != 0 ] ; then - echo " " - echo "You must be root to run this test." - echo " ===== !!!! etc-test-root not run !!!! ===== " - echo " ===== !!!! etc-test-root not run !!!! ===== " >>test.out - echo " " - exit 1 -fi -echo " " -echo " " -echo " === Starting /etc save/restore test ===" -echo " " -echo " " -cwd=`pwd` -scripts/cleanup -scripts/copy-test-confs -echo "/etc" >/tmp/file-list - -bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -cd / -${cwd}/bin/testls -e ${cwd}/scripts/exclude-etc-test etc >${cwd}/tmp/1 -cd ${cwd}/tmp/bacula-restores -${cwd}/bin/testls -e ${cwd}/scripts/exclude-etc-test etc >${cwd}/tmp/2 -sort <${cwd}/tmp/1 >${cwd}/tmp/original -sort <${cwd}/tmp/2 >${cwd}/tmp/restored -rm -f ${cwd}/tmp/1 ${cwd}/tmp/2 -cd ${cwd} -diff tmp/original tmp/restored 2>&1 1>/dev/null -if [ $? != 0 ] ; then - echo " " - echo " " - echo " ===== !!!! etc-test-root failed !!!! ===== " - echo " ===== !!!! etc-test-root failed !!!! ===== " >>test.out - echo " " -else - echo " ===== etc-test-root OK ===== " - echo " ===== etc-test-root OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/win32/tests/fixed-block-size-tape b/regress/win32/tests/fixed-block-size-tape deleted file mode 100644 index 10de2c45e5..0000000000 --- a/regress/win32/tests/fixed-block-size-tape +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# to a tape where we set the minimum and maximum block -# sizes. -# -TestName="fixed-block-size-tape" -JobName=fixedblocksize -. scripts/functions -set_debug 0 - -copy_tape_confs - -echo "${cwd}/build" >/tmp/file-list - -cp ${cwd}/bin/bacula-sd.conf ${cwd}/tmp/1 -echo "s%# Maximum Block Size% Maximum Block Size%" >${cwd}/tmp/2 -echo "s%# Minimum Block Size% Minimum Block Size%" >>${cwd}/tmp/2 -sed -f ${cwd}/tmp/2 ${cwd}/tmp/1 >${cwd}/bin/bacula-sd.conf -if [ $? != 0 ] ; then - echo " " - echo " " - echo "!!!! sed problem in Fixed Block Size test !!!!!" - echo " " - exit 1 -fi -rm -f ${cwd}/tmp/1 ${cwd}/tmp/2 - -change_jobname NightlySave $JobName -start_test - - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -run job=$JobName yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=DDS-4 -unmark * -mark * -done -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/win32/tests/four-concurrent-jobs-tape b/regress/win32/tests/four-concurrent-jobs-tape deleted file mode 100644 index 0d0918f62b..0000000000 --- a/regress/win32/tests/four-concurrent-jobs-tape +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/sh -# -# Run four jobs at the same time -# -TestName="four-concurrent-jobs-tape" -JobName=FourConcurrentJobs -. scripts/functions -set_debug 0 - -scripts/cleanup-tape -scripts/copy-tape-confs - -echo "${cwd}/build" >/tmp/file-list - -change_jobname $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -run job=$JobName level=Full Storage=DDS-4 yes -run job=$JobName level=Full Storage=DDS-4 yes -run job=$JobName level=Full Storage=DDS-4 yes -run job=$JobName level=Full Storage=DDS-4 yes -@sleep 2 -status dir -@sleep 5 -status dir -status storage=DDS-4 -messages -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=DDS-4 -unmark * -mark * -done -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/win32/tests/four-concurrent-jobs-test.bscr b/regress/win32/tests/four-concurrent-jobs-test.bscr deleted file mode 100644 index cdae631049..0000000000 --- a/regress/win32/tests/four-concurrent-jobs-test.bscr +++ /dev/null @@ -1,50 +0,0 @@ -@output nul -messages -@@out@ tmp/log1.out -label storage=File1 -TestVolume001 -label storage=File1 -TestVolume002 -update Volume=TestVolume001 MaxVolBytes=100000000 -@#50000000 -@#12 -run job=@JobName@ level=Full Storage=File1 -yes -reload -run job=@JobName@ level=Full Storage=File1 -yes -reload -run job=@JobName@ level=Full Storage=File1 -yes -reload -run job=@JobName@ level=Full Storage=File1 -yes -reload -reload -reload -reload -@sleep 2 -status dir -reload -@sleep 5 -messages -reload -reload -wait -reload -messages -@# -@# now do a restore -@# -@@out@ tmp/log2.out -restore where=@topdir@/tmp/bacula-restores select storage=File1 -unmark * -mark * -done -yes -wait -reload -reload -messages -@output -quit diff --git a/regress/win32/tests/four-concurrent-jobs-test.cmd b/regress/win32/tests/four-concurrent-jobs-test.cmd deleted file mode 100644 index 0530baa8f0..0000000000 --- a/regress/win32/tests/four-concurrent-jobs-test.cmd +++ /dev/null @@ -1,23 +0,0 @@ -REM -REM Run two jobs at the same time -REM -SET TestName=four-concurrent-jobs-test -SET JobName=Four-concurrent-jobs - -CALL scripts\functions set_debug 0 -CALL scripts\functions copy_test_confs - -ECHO %CD:\=/%/build >\tmp\file-list - -CALL scripts\functions change_jobname NightlySave %JobName% -CALL scripts\functions start_test - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\four-concurrent-jobs-test.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=File1 -CALL scripts\functions stop_bacula - -CALL scripts\functions check_two_logs -CALL scripts\functions check_restore_diff -CALL scripts\functions end_test diff --git a/regress/win32/tests/four-jobs-tape b/regress/win32/tests/four-jobs-tape deleted file mode 100644 index 4252ba2d7e..0000000000 --- a/regress/win32/tests/four-jobs-tape +++ /dev/null @@ -1,153 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory using the compressed option -# then backup four times, each with incremental then finally restore. -# It should require at least 4 different bsrs. -# -TestName="four-jobs-tape" -JobName=fourjobstape -. scripts/functions -set_debug 0 - -scripts/cleanup-tape -scripts/copy-tape-confs -echo "${cwd}/build" >/tmp/file-list - -change_jobname $JobName -start_test - -cat <tmp/bconcmds -@$out /dev/null -estimate job=$JobName listing -estimate job=$JobName listing -estimate job=$JobName listing -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -run job=$JobName yes -wait -messages -quit -END_OF_DATA -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi - -scripts/check_for_zombie_jobs storage=DDS-4 -echo "Backup 1 done" -# make some files for the incremental to pick up -touch ${cwd}/build/src/dird/*.c ${cwd}/build/src/dird/*.o -touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o - -# -# run a second job -# -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -run job=$JobName level=Incremental yes -wait -messages -quit -END_OF_DATA -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi - -scripts/check_for_zombie_jobs storage=DDS-4 -echo "Backup 2 done" -touch ${cwd}/build/src/dird/*.c -touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o -# -# run a third job -# -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -run job=$JobName level=Incremental yes -wait -messages -quit -END_OF_DATA -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi - -scripts/check_for_zombie_jobs storage=DDS-4 -echo "Backup 3 done" -# make some files for the incremental to pick up -touch ${cwd}/build/src/lib/*.c ${cwd}/build/src/lib/*.o -# -# run a fourth job -# -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -run job=$JobName level=Incremental yes -wait -messages -quit -END_OF_DATA -if test "$debug" -eq 1 ; then - bin/bacula start - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf -else - bin/bacula start 2>&1 >/dev/null - cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf 2>&1 >/dev/null -fi - -scripts/check_for_zombie_jobs storage=DDS-4 -echo "Backup 4 done" -# -# now do several restores to ensure we cleanup between jobs -# -cat <tmp/bconcmds -@$out /dev/null -restore where=${cwd}/tmp/bacula-restores select all done -yes -wait -restore where=${cwd}/tmp/bacula-restores select all done -yes -wait -@$out tmp/log2.out -@# -@# now unmount the tape and start two restores -@# at the same time -@# -unmount storage=DDS-4 -restore where=${cwd}/tmp/bacula-restores select all done -yes -restore where=${cwd}/tmp/bacula-restores select -unmark * -mark * -done -yes -mount storage=DDS-4 -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/win32/tests/four-jobs-test.1.bscr b/regress/win32/tests/four-jobs-test.1.bscr deleted file mode 100644 index 462c2545f8..0000000000 --- a/regress/win32/tests/four-jobs-test.1.bscr +++ /dev/null @@ -1,11 +0,0 @@ -@output nul -estimate job=@JobName@ listing -estimate job=@JobName@ listing -estimate job=@JobName@ listing -messages -@@out@ tmp/log1.out -label storage=File volume=TestVolume001 -run job=@JobName@ yes -wait -messages -quit diff --git a/regress/win32/tests/four-jobs-test.2.bscr b/regress/win32/tests/four-jobs-test.2.bscr deleted file mode 100644 index 02fdc49786..0000000000 --- a/regress/win32/tests/four-jobs-test.2.bscr +++ /dev/null @@ -1,8 +0,0 @@ -@output nul -messages -@@out@ tmp/log1.out -run job=@JobName@ -yes -wait -messages -quit diff --git a/regress/win32/tests/four-jobs-test.3.bscr b/regress/win32/tests/four-jobs-test.3.bscr deleted file mode 100644 index 6da93295f1..0000000000 --- a/regress/win32/tests/four-jobs-test.3.bscr +++ /dev/null @@ -1,8 +0,0 @@ -@output nul -messages -@output tmp/log1.out -label storage=File volume=TestVolume001 -run job=@JobName@ yes -wait -messages -quit diff --git a/regress/win32/tests/four-jobs-test.4.bscr b/regress/win32/tests/four-jobs-test.4.bscr deleted file mode 100644 index 6da93295f1..0000000000 --- a/regress/win32/tests/four-jobs-test.4.bscr +++ /dev/null @@ -1,8 +0,0 @@ -@output nul -messages -@output tmp/log1.out -label storage=File volume=TestVolume001 -run job=@JobName@ yes -wait -messages -quit diff --git a/regress/win32/tests/four-jobs-test.5.bscr b/regress/win32/tests/four-jobs-test.5.bscr deleted file mode 100644 index 30bf4a7053..0000000000 --- a/regress/win32/tests/four-jobs-test.5.bscr +++ /dev/null @@ -1,17 +0,0 @@ -@output nul -restore where=@topdir@/tmp/bacula-restores select all storage=File done -yes -wait -restore where=@topdir@/tmp/bacula-restores select all storage=File done -yes -wait -@@out@ tmp/log2.out -restore where=@topdir@/tmp/bacula-restores select storage=File -unmark * -mark * -done -yes -wait -messages -@output -quit diff --git a/regress/win32/tests/four-jobs-test.cmd b/regress/win32/tests/four-jobs-test.cmd deleted file mode 100644 index 7978a7e2ed..0000000000 --- a/regress/win32/tests/four-jobs-test.cmd +++ /dev/null @@ -1,74 +0,0 @@ -REM -REM Run a simple backup of the Bacula build directory using the compressed option -REM then backup four times, each with incremental then finally restore. -REM It should require at least 4 different bsrs. -REM -SET TestName=four-jobs-test -SET JobName=SpanVol - -CALL scripts\functions set_debug 0 -CALL scripts\functions copy_test_confs - -ECHO %CD:\=/%/build >/tmp/file-list - -CALL scripts\functions change_jobname CompressedTest %JobName% -CALL scripts\functions start_test - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\four-jobs-test.1.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=File - -ECHO Backup 1 done - -REM make some files for the incremental to pick up -tools\touch %CD:\=/%/build/src/dird/*.c -tools\touch %CD:\=/%/build/src/lib/*.c - -REM -REM run a second job -REM -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\four-jobs-test.2.bscr >tmp\bconcmds - -CALL scripts\functions run_bconsole -CALL scripts\functions check_for_zombie_jobs storage=File - -ECHO Backup 2 done - -tools\touch %CD:\=/%/build/src/dird/*.c -tools\touch %CD:\=/%/build/src/lib/*.c - -REM -REM run a third job -REM -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\four-jobs-test.3.bscr >tmp\bconcmds - -CALL scripts\functions run_bconsole -CALL scripts\functions check_for_zombie_jobs storage=File - -ECHO Backup 3 done - -REM make some files for the incremental to pick up -tools\touch %CD:\=/%/build/src/lib/*.c - -REM -REM run a fourth job -REM -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\four-jobs-test.4.bscr >tmp\bconcmds - -CALL scripts\functions run_bconsole -CALL scripts\functions check_for_zombie_jobs storage=File - -ECHO Backup 4 done -REM -REM now do several restores to ensure we cleanup between jobs -REM -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\four-jobs-test.5.bscr >tmp\bconcmds - -CALL scripts\functions run_bconsole -CALL scripts\functions check_for_zombie_jobs storage=File -CALL scripts\functions stop_bacula - -CALL scripts\functions check_two_logs -CALL scripts\functions check_restore_diff -CALL scripts\functions end_test diff --git a/regress/win32/tests/hardlink-test b/regress/win32/tests/hardlink-test deleted file mode 100644 index 42e38bcdde..0000000000 --- a/regress/win32/tests/hardlink-test +++ /dev/null @@ -1,66 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# then restore it. -# -TestName="hardlink-test" -JobName=hardlink -. scripts/functions -set_debug 0 - -if test ! -d weird-files ; then - echo " " - echo "Weird files not configured. Test not run." - exit 0 -fi - -cwd=`pwd` -scripts/cleanup -scripts/copy-test-confs -change_jobname NightlySave $JobName -# -# Note, we save the weird-files directory twice on purpose -# because this causes problems with hard linked files -# that are only saved once. In 1.33, Bacula now deals -# with this situation. -# -echo "${cwd}/weird-files" >/tmp/file-list -echo "${cwd}/weird-files" >>/tmp/file-list - -start_test - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=File -TestVolume001 -run job=$JobName -yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores storage=File -5 -cd ${cwd}/weird-files/subdir -mark another-hardlink -done -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=File -stop_bacula - -check_two_logs -diff ${cwd}/weird-files/subdir/another-hardlink \ - ${cwd}/tmp/bacula-restores/${cwd}/weird-files/subdir/another-hardlink 2>&1 >/dev/null -dstat=$? -end_test diff --git a/regress/win32/tests/incremental-2disk.1.bscr b/regress/win32/tests/incremental-2disk.1.bscr deleted file mode 100644 index fdbc4a7615..0000000000 --- a/regress/win32/tests/incremental-2disk.1.bscr +++ /dev/null @@ -1,9 +0,0 @@ -@@out@ nul -messages -@@out@ tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=1 Pool=Default drive=0 -label storage=DDS-4 volume=TestVolume002 slot=2 Pool=Default drive=0 -run job=@JobName@ yes -wait -messages -quit diff --git a/regress/win32/tests/incremental-2disk.2.bscr b/regress/win32/tests/incremental-2disk.2.bscr deleted file mode 100644 index 76032d1a1d..0000000000 --- a/regress/win32/tests/incremental-2disk.2.bscr +++ /dev/null @@ -1,21 +0,0 @@ -@@out@ nul -messages -@@out@ tmp/log1.out -@# Force Incremental on the second Volume -update volume=TestVolume001 VolStatus=Used -run level=Incremental job=@JobName@ yes -wait -messages -@# -@# now do a restore -@# -@@out@ tmp/log2.out -restore where=@topdir@/tmp/bacula-restores -7 -<@topdir@/tmp/restore-list - -yes -wait -messages -@@out@ -quit diff --git a/regress/win32/tests/incremental-2disk.cmd b/regress/win32/tests/incremental-2disk.cmd deleted file mode 100644 index a51fc8ad05..0000000000 --- a/regress/win32/tests/incremental-2disk.cmd +++ /dev/null @@ -1,55 +0,0 @@ -REM -REM Run a simple backup of the Bacula build directory then create some -REM new files, do an Incremental and restore those two files. -REM -REM This script uses the virtual disk autochanger -REM -SET TestName=incremental-2disk -SET JobName=Inc2disk - -CALL scripts\functions set_debug 0 - -CALL config_out - -CALL scripts\functions stop_bacula - -CALL bin\drop_bacula_tables >nul 2>&1 -CALL bin\make_bacula_tables >nul 2>&1 -CALL bin\grant_bacula_privileges >nul 2>&1 - -CALL scripts\copy-2disk-confs >nul 2>&1 -CALL scripts\prepare-two-disks - -ECHO %CD:\=/%/tmp/build >\tmp\file-list -IF NOT EXIST tmp\build MKDIR tmp\build - -COPY build\src\dird\*.c tmp\build >nul 2>&1 -ECHO %CD:\=/%/tmp/build/ficheriro1.txt>tmp\restore-list -ECHO %CD:\=/%/tmp/build/ficheriro2.txt>>tmp\restore-list - -CALL scripts\functions change_jobname %JobName% -CALL scripts\functions start_test - -REM Write out bconsole commands -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\incremental-2disk.1.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula - -ECHO ficheriro1.txt >tmp\build\ficheriro1.txt -ECHO ficheriro2.txt >tmp\build\ficheriro2.txt - - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\incremental-2disk.2.bscr >tmp\bconcmds - -CALL scripts\functions run_bconsole - -CALL scripts\functions check_for_zombie_jobs storage=File -CALL scripts\functions stop_bacula -REM -REM Delete .c files because we will only restored the txt files -REM -DEL tmp\build\*.c - -CALL scripts\functions check_two_logs -CALL scripts\functions check_restore_tmp_build_diff -CALL scripts\functions end_test diff --git a/regress/win32/tests/incremental-2tape.1.bscr b/regress/win32/tests/incremental-2tape.1.bscr deleted file mode 100644 index b5fa189e47..0000000000 --- a/regress/win32/tests/incremental-2tape.1.bscr +++ /dev/null @@ -1,9 +0,0 @@ -@@out@ nul -messages -@@out@ tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=1 Pool=Default drive=0 -label storage=DDS-4 volume=TestVolume002 slot=2 Pool=Default drive=0 -run job=NightlySave yes -wait -messages -quit diff --git a/regress/win32/tests/incremental-2tape.2.bscr b/regress/win32/tests/incremental-2tape.2.bscr deleted file mode 100644 index f57357f747..0000000000 --- a/regress/win32/tests/incremental-2tape.2.bscr +++ /dev/null @@ -1,21 +0,0 @@ -@@out@ nul -messages -@@out@ tmp/log1.out -@# Force Incremental on the second Volume -update volume=TestVolume001 VolStatus=Used -run level=Incremental job=NightlySave yes -wait -messages -@# -@# now do a restore -@# -@@out@ tmp/log2.out -restore where=@topdir@/tmp/bacula-restores -7 -<@topdir@/tmp/restore-list - -yes -wait -messages -@@out@ -quit diff --git a/regress/win32/tests/incremental-2tape.cmd b/regress/win32/tests/incremental-2tape.cmd deleted file mode 100644 index 2a646a0edd..0000000000 --- a/regress/win32/tests/incremental-2tape.cmd +++ /dev/null @@ -1,48 +0,0 @@ -REM -REM Run a simple backup of the Bacula build directory then create some -REM new files, do an Incremental and restore those two files. -REM -REM This script uses the autochanger and two tapes -REM -SET TestName=incremental-2tape -SET JobName=inctwotape -CALL scripts\functions set_debug 0 - -CALL config_out -IF "%AUTOCHANGER%" == "nul" ( - ECHO incremental-2tape test skipped. No autochanger. - EXIT -) - -CALL scripts\functions stop_bacula -CALL drop_bacula_tables >nul 2>&1 -CALL make_bacula_tables >nul 2>&1 -CALL grant_bacula_privileges >nul 2>&1 - -CALL scripts\copy-2tape-confs -CALL scripts\cleanup-2tape -ECHO %CD:\=/%/tmp/build >\tmp\file-list -IF NOT EXIST tmp\build MKDIR tmp\build -COPY build\src\dird\*.c tmp\build -ECHO %CD:\=/%/tmp/build/ficheriro1.txt>tmp\restore-list -ECHO %CD:\=/%/tmp/build/ficheriro2.txt>>tmp\restore-list - -CALL scripts\functions start_test - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\incremental-2tape.1.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula - -ECHO ficheriro1.txt >tmp\build\ficheriro1.txt -ECHO ficheriro2.txt >tmp\build\ficheriro2.txt - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\incremental-2tape.2.bscr >tmp\bconcmds -CALL scripts\functions run_bconsole -CALL scripts\bacula stop_bacula -CALL scripts\bacula check_two_logs -REM -REM Delete .c files because we will only restore the txt files -REM -DEL tmp\build\*.c -CALL scripts\bacula check_restore_tmp_build_diff -CALL scripts\bacula end_test diff --git a/regress/win32/tests/incremental-tape b/regress/win32/tests/incremental-tape deleted file mode 100644 index 3b7264da77..0000000000 --- a/regress/win32/tests/incremental-tape +++ /dev/null @@ -1,76 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory then create some -# new files, do an Incremental and restore those two files. -# -TestName="incremental-tape" -JobName=IncTape -. scripts/functions -set_debug 0 - -copy_tape_confs - -echo "${cwd}/tmp/build" >/tmp/file-list -if test ! -d ${cwd}/tmp/build ; then - mkdir ${cwd}/tmp/build -fi -cp -p ${cwd}/build/src/dird/*.c ${cwd}/tmp/build -cd ${cwd}/tmp -echo "${cwd}/tmp/build/ficheriro1.txt" >restore-list -echo "${cwd}/tmp/build/ficheriro2.txt" >>restore-list -cd ${cwd} - -change_jobname NightlySave $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -run job=$JobName yes -wait -messages -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 - -echo "ficheriro1.txt" >${cwd}/tmp/build/ficheriro1.txt -echo "ficheriro2.txt" >${cwd}/tmp/build/ficheriro2.txt - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -run level=Incremental job=$JobName yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores storage=DDS-4 -7 -<${cwd}/tmp/restore-list - -yes -wait -messages -@output -quit -END_OF_DATA - -run_bconsole -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -# -# Delete .c files because we will only restored the txt files -# -rm -f tmp/build/*.c - -check_two_logs -check_restore_tmp_build_diff -end_test diff --git a/regress/win32/tests/incremental-test.1.bscr b/regress/win32/tests/incremental-test.1.bscr deleted file mode 100644 index 9ab38bffe0..0000000000 --- a/regress/win32/tests/incremental-test.1.bscr +++ /dev/null @@ -1,9 +0,0 @@ -@output nul -messages -@@out@ tmp/log1.out -label storage=File volume=TestVolume001 -label storage=File volume=TestVolume002 -run job=@JobName@ yes -wait -messages -quit diff --git a/regress/win32/tests/incremental-test.2.bscr b/regress/win32/tests/incremental-test.2.bscr deleted file mode 100644 index f716a022c8..0000000000 --- a/regress/win32/tests/incremental-test.2.bscr +++ /dev/null @@ -1,9 +0,0 @@ -@output nul -messages -@@out@ tmp/log1.out -@# Force Incremental on the second Volume -update volume=TestVolume001 VolStatus=Used -run level=Differential job=@JobName@ yes -wait -messages -quit diff --git a/regress/win32/tests/incremental-test.3.bscr b/regress/win32/tests/incremental-test.3.bscr deleted file mode 100644 index c4239dd0a3..0000000000 --- a/regress/win32/tests/incremental-test.3.bscr +++ /dev/null @@ -1,7 +0,0 @@ -@output nul -messages -@@out@ tmp/log1.out -run level=Incremental job=@JobName@ yes -wait -messages -quit diff --git a/regress/win32/tests/incremental-test.4.bscr b/regress/win32/tests/incremental-test.4.bscr deleted file mode 100644 index 700afcb8d4..0000000000 --- a/regress/win32/tests/incremental-test.4.bscr +++ /dev/null @@ -1,7 +0,0 @@ -@output nul -messages -@@out@ tmp/log1.out -run level=Differential job=@JobName@ yes -wait -messages -quit diff --git a/regress/win32/tests/incremental-test.5.bscr b/regress/win32/tests/incremental-test.5.bscr deleted file mode 100644 index 1f093f18ef..0000000000 --- a/regress/win32/tests/incremental-test.5.bscr +++ /dev/null @@ -1,16 +0,0 @@ -@output nul -messages -@@out@ tmp/log1.out -run level=Incremental job=@JobName@ yes -wait -messages -@# -@# now do a restore -@# -@output tmp/log2.out -restore where=@topdir@/tmp/bacula-restores storage=File file=<@topdir@/tmp/restore-list -yes -wait -messages -@output -quit diff --git a/regress/win32/tests/incremental-test.cmd b/regress/win32/tests/incremental-test.cmd deleted file mode 100644 index 3bc0ac92f9..0000000000 --- a/regress/win32/tests/incremental-test.cmd +++ /dev/null @@ -1,91 +0,0 @@ -REM -REM Run a simple backup of the Bacula build directory then create some -REM new files, do an Incremental and restore those two files. -REM -SET TestName=incremental-test -SET JobName=Incremental - -CALL scripts\functions set_debug 0 -CALL scripts\functions copy_test_confs - -ECHO %CD:\=/%/tmp/build>/tmp/file-list - -MKDIR tmp\build -COPY build\src\dird\*.c tmp\build >nul 2>&1 - -ECHO %CD:\=/%/tmp/build/ficheriro1.txt>tmp\restore-list -ECHO %CD:\=/%/tmp/build/ficheriro2.txt>>tmp\restore-list - -CALL scripts\functions change_jobname CompressedTest %JobName% -CALL scripts\functions start_test - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\incremental-test.1.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=File -REM -REM Now create two new files to be restored later -REM -bin\bsleep 1 -ECHO ficheriro1.txt >tmp\build\ficheriro1.txt -COPY tmp\build\dird.c tmp\build\ficheriro2.txt >nul 2>&1 - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\incremental-test.2.bscr >tmp\bconcmds - -CALL scripts\functions run_bconsole - -bin\bsleep 1 -touch tmp\build\ficheriro1.txt -touch tmp\build\ficheriro2.txt - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\incremental-test.3.bscr >tmp\bconcmds - -CALL scripts\functions run_bconsole - -bin\bsleep 1 - -COPY tmp\build\ficheriro2.txt tmp\build\1 >nul 2>&1 -sed -e "s;a;b;g" tmp\build\1 >tmp\build\ficheriro2.txt -DEL tmp\build\1 - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\incremental-test.4.bscr >tmp\bconcmds - -CALL scripts\functions run_bconsole - -bin\bsleep 1 -touch tmp\build\ficheriro1.txt -touch tmp\build\ficheriro2.txt -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\incremental-test.3.bscr >tmp\bconcmds - -CALL scripts\functions run_bconsole - -bin\bsleep 1 -touch tmp\build\ficheriro1.txt -touch tmp\build\ficheriro2.txt -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\incremental-test.3.bscr >tmp\bconcmds - -CALL scripts\functions run_bconsole - -bin\bsleep 1 -touch tmp\build\ficheriro1.txt -touch tmp\build\ficheriro2.txt -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\incremental-test.3.bscr >tmp\bconcmds - -CALL scripts\functions run_bconsole -bin\bsleep 1 -touch tmp\build\ficheriro1.txt -touch tmp\build\ficheriro2.txt - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\incremental-test.5.bscr >tmp\bconcmds - -CALL scripts\functions run_bconsole -CALL scripts\functions check_for_zombie_jobs storage=File -CALL scripts\functions stop_bacula - -CALL scripts\functions check_two_logs -REM -REM Delete .c files because we will only restored the txt files -REM -DEL tmp\build\*.c -CALL scripts\functions check_restore_tmp_build_diff -CALL scripts\functions end_test diff --git a/regress/win32/tests/lib-tape-root b/regress/win32/tests/lib-tape-root deleted file mode 100644 index 06289cd1d4..0000000000 --- a/regress/win32/tests/lib-tape-root +++ /dev/null @@ -1,67 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the /lib directory -# then restore it. -# -cwd=`pwd` -bin/bacula stop 2>&1 >/dev/null -cd bin -./drop_bacula_tables >/dev/null 2>&1 -./make_bacula_tables >/dev/null 2>&1 -./grant_bacula_privileges 2>&1 >/dev/null -cd .. - -scripts/cleanup-tape -scripts/copy-tape-confs -echo "/lib" >/tmp/file-list -echo " " -echo " " -echo " === Starting lib-tape-root test ===" -echo " " -echo " " -bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -cd / -${cwd}/bin/testls -e ${cwd}/scripts/exclude-usr-test lib >${cwd}/tmp/original -cd ${cwd}/tmp/bacula-restores -${cwd}/bin/testls -e ${cwd}/scripts/exclude-usr-test lib >${cwd}/tmp/restored -cd ${cwd}/tmp -sed s%.*lib/kbd/consolefonts$%lib/kbd/consolefonts% original >1 -sort <1 >original -# -sed s%.*lib/kbd/consolefonts$%lib/kbd/consolefonts% restored >1 -sort <1 >restored -rm -f 1 -# -cd ${cwd} -diff tmp/original tmp/restored 2>&1 1>/dev/nul -if [ $? != 0 ] ; then - echo " " - echo " " - echo " ===== lib-tape-root failed!!! ===== " - echo " ===== lib-tape-root failed!!! ===== " >>test.out - echo " " -else - echo " ===== lib-tape-root OK ===== " - echo " ===== lib-tape-root OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/win32/tests/lib-test-root b/regress/win32/tests/lib-test-root deleted file mode 100644 index 4f41954a29..0000000000 --- a/regress/win32/tests/lib-test-root +++ /dev/null @@ -1,76 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# then restore it. -# -MUID=`/usr/bin/id -u` -if [ $MUID != 0 ] ; then - echo " " - echo "You must be root to run this test." - echo " ===== !!!! lib-test-root not run !!!! ===== " - echo " ===== !!!! lib-test-root not run !!!! ===== " >>test.out - echo " " - exit 1 -fi -cwd=`pwd` -scripts/cleanup -scripts/copy-test-confs -echo "/lib" >/tmp/file-list - -echo " " -echo " " -echo " === Starting /lib save/restore test ===" -echo " " -echo " " - -bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -cd / -${cwd}/bin/testls -e ${cwd}/scripts/exclude-lib-test lib >${cwd}/tmp/original -cd ${cwd}/tmp/bacula-restores -${cwd}/bin/testls -e ${cwd}/scripts/exclude-lib-test lib >${cwd}/tmp/restored -cd ${cwd}/tmp -sed s%.*lib/kbd/consolefonts$%lib/kbd/consolefonts% original >1 -sort <1 >original -# -sed s%.*lib/kbd/consolefonts$%lib/kbd/consolefonts% restored >1 -sort <1 >restored -rm -f 1 -# -cd ${cwd} -diff tmp/original tmp/restored 2>&1 1>/dev/nul -if [ $? != 0 ] ; then - echo " " - echo " " - echo " ===== !!!! lib-test-root failed !!!! ===== " - echo " ===== !!!! lib-test-root failed !!!! ===== " >>test.out - echo " " -else - echo " ===== lib-test-root OK ===== " - echo " ===== lib-test-root OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/win32/tests/migration-job-test.cmd b/regress/win32/tests/migration-job-test.cmd deleted file mode 100644 index d851fdeea6..0000000000 --- a/regress/win32/tests/migration-job-test.cmd +++ /dev/null @@ -1,37 +0,0 @@ -REM -REM Run a simple backup of the Bacula build directory then migrate it -REM to another device. -REM -REM This script uses the virtual disk autochanger -REM -SET TestName=migration-job-test -SET JobName=MigrationJobSave - -CALL scripts\functions set_debug 0 - -CALL config_out - -CALL scripts\cleanup -CALL scripts\copy-migration-confs -CALL scripts\prepare-two-disks -ECHO %CD:\=/%/build >\tmp\file-list - -CALL scripts\functions change_jobname NightlySave %JobName% -CALL scripts\functions start_test - -REM -REM Note, we first backup into Pool Default, -REM then Migrate into Pool Full. -REM Pool Default uses Storage=File -REM Pool Full uses Storage=DiskChanger - -REM Write out bconsole commands -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\migration-job-test.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=File -CALL scripts\functions stop_bacula - -CALL scripts\functions check_two_logs -CALL scripts\functions check_restore_diff -CALL scripts\functions end_test diff --git a/regress/win32/tests/migration-jobspan-test.cmd b/regress/win32/tests/migration-jobspan-test.cmd deleted file mode 100644 index e21a19aaf2..0000000000 --- a/regress/win32/tests/migration-jobspan-test.cmd +++ /dev/null @@ -1,42 +0,0 @@ -REM -REM Run a simple backup of the Bacula build directory then migrate it -REM to another device. -REM -REM Test migrating a job that spans two Volumes -REM -REM This script uses the virtual disk autochanger -REM -SET TestName=migration-jobspan-test -SET JobName=MigrationJobSpanSave - -CALL scripts\functions set_debug 0 - -CALL config_out - -CALL scripts\cleanup -CALL scripts\copy-migration-confs -CALL scripts\prepare-two-disks - -ECHO %CD:\=/%/build >\tmp\file-list - -COPY bin\bacula-sd.conf tmp\1 -sed "s;# Maximum File Size; Maximum File Size;" %CD%\tmp\1 >%CD%\bin\bacula-sd.conf - -CALL scripts\functions change_jobname NightlySave %JobName% -CALL scripts\functions start_test - -REM -REM Note, we first backup into Pool Default, -REM then Migrate into Pool Full. -REM Pool Default uses Storage=File -REM Pool Full uses Storage=DiskChanger - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\migration-jobspan-test.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=File -CALL scripts\functions stop_bacula - -CALL scripts\functions check_two_logs -CALL scripts\functions check_restore_diff -CALL scripts\functions end_test diff --git a/regress/win32/tests/migration-occupancy-test.cmd b/regress/win32/tests/migration-occupancy-test.cmd deleted file mode 100644 index d68dac563d..0000000000 --- a/regress/win32/tests/migration-occupancy-test.cmd +++ /dev/null @@ -1,36 +0,0 @@ -REM -REM Run a simple backup of the Bacula build directory then migrate it -REM to another device. -REM -REM This script uses the virtual disk autochanger -REM -SET TestName=migration-occupancy-test -SET JobName=MigrationJobSave - -CALL scripts\functions set_debug 0 - -CALL config_out - -CALL scripts\cleanup -CALL scripts\copy-migration-confs -CALL scripts\prepare-two-disks -ECHO %CD:\=/%/build >\tmp\file-list - -CALL scripts\functions change_jobname NightlySave %JobName% -CALL scripts\functions start_test - -REM -REM Note, we first backup into Pool Default, -REM then Migrate into Pool Full. -REM Pool Default uses Storage=File -REM Pool Full uses Storage=DiskChanger - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\migration-occupancy-test.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=File -CALL scripts\functions stop_bacula - -CALL scripts\functions check_two_logs -CALL scripts\functions check_restore_diff -CALL scripts\functions end_test diff --git a/regress/win32/tests/migration-time-test.cmd b/regress/win32/tests/migration-time-test.cmd deleted file mode 100644 index 473ebe6b5e..0000000000 --- a/regress/win32/tests/migration-time-test.cmd +++ /dev/null @@ -1,37 +0,0 @@ -REM -REM Run a simple backup of the Bacula build directory then migrate it -REM to another device. -REM -REM This script uses the virtual disk autochanger -REM -SET TestName=migration-time-test -SET JobName=MigrationJobSave - -CALL scripts\functions set_debug 0 - -CALL config_out - -CALL scripts\cleanup -CALL scripts\copy-migration-confs -CALL scripts\prepare-two-disks - -ECHO %CD:\=/%/build >\tmp\file-list - -CALL scripts\functions change_jobname NightlySave %JobName% -CALL scripts\functions start_test - -REM -REM Note, we first backup into Pool Default, -REM then Migrate into Pool Full. -REM Pool Default uses Storage=File -REM Pool Full uses Storage=DiskChanger - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\migration-time-test.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=File -CALL scripts\functions stop_bacula - -CALL scripts\functions check_two_logs -CALL scripts\functions check_restore_diff -CALL scripts\functions end_test diff --git a/regress/win32/tests/migration-volume-test.cmd b/regress/win32/tests/migration-volume-test.cmd deleted file mode 100644 index 86505d46a6..0000000000 --- a/regress/win32/tests/migration-volume-test.cmd +++ /dev/null @@ -1,40 +0,0 @@ -REM -REM Run a backup of the Bacula build directory on two Volumes -REM then migrate it to another device. -REM -REM This script uses the virtual disk autochanger -REM -SET TestName=migration-volume-test -SET JobName=MigVolBackup - -CALL scripts\functions set_debug 0 - -CALL config_out - -CALL scripts\cleanup -CALL scripts\copy-migration-confs -CALL scripts\prepare-two-disks - -ECHO %CD:\=/%/build >\tmp\file-list - -REM COPY bin\bacula-sd.conf tmp\1 -REM sed "s;# Maximum File Size; Maximum File Size;" tmp\1 >bin\bacula-sd.conf - -CALL scripts\functions change_jobname NightlySave %JobName% -CALL scripts\functions start_test - -REM -REM Note, we first backup into Pool Default, -REM then Migrate into Pool Full. -REM Pool Default uses Storage=File -REM Pool Full uses Storage=DiskChanger - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\migration-volume-test.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=File -CALL scripts\functions stop_bacula - -CALL scripts\functions check_two_logs -CALL scripts\functions check_restore_diff -CALL scripts\functions end_test diff --git a/regress/win32/tests/query-test.1.bscr b/regress/win32/tests/query-test.1.bscr deleted file mode 100644 index 9ab38bffe0..0000000000 --- a/regress/win32/tests/query-test.1.bscr +++ /dev/null @@ -1,9 +0,0 @@ -@output nul -messages -@@out@ tmp/log1.out -label storage=File volume=TestVolume001 -label storage=File volume=TestVolume002 -run job=@JobName@ yes -wait -messages -quit diff --git a/regress/win32/tests/query-test.2.bscr b/regress/win32/tests/query-test.2.bscr deleted file mode 100644 index 9e1afb7dfb..0000000000 --- a/regress/win32/tests/query-test.2.bscr +++ /dev/null @@ -1,9 +0,0 @@ -@output nul -messages -@@out@ tmp/log1.out -@# Force differental on the second Volume -update volume=TestVolume001 VolStatus=Used -run level=differental job=@JobName@ yes -wait -messages -@output diff --git a/regress/win32/tests/query-test.3.bscr b/regress/win32/tests/query-test.3.bscr deleted file mode 100644 index 266f6a4ff7..0000000000 --- a/regress/win32/tests/query-test.3.bscr +++ /dev/null @@ -1,46 +0,0 @@ -@output nul -messages -@@out@ tmp/log1.out -run level=incremental job=@JobName@ yes -wait -messages -@# -@# Now do the queries -@# -query -1 -ficheriro1.txt -query -2 -@topdir@/tmp/build/ -ficheriro1.txt -localhost-fd -query -6 -TestVolume001 -query -7 -1 -query -8 -localhost-fd -query -9 -Default -query -10 -query -11 -query -12 -1 -@# -@# now do a restore -@# -@@out@ tmp/log2.out -restore where=@topdir@/tmp/bacula-restores storage=File file=<@topdir@/tmp/restore-list -yes -wait -messages -@output -quit diff --git a/regress/win32/tests/query-test.cmd b/regress/win32/tests/query-test.cmd deleted file mode 100644 index d919bbea87..0000000000 --- a/regress/win32/tests/query-test.cmd +++ /dev/null @@ -1,48 +0,0 @@ -REM -REM Run a simple backup of the Bacula build directory then create some -REM new files, do a Differental then a bunch of query commands -REM and finally restore the two files. -REM -SET TestName=query-test -SET JobName=query - -CALL scripts\functions set_debug 0 -CALL scripts\functions copy_test_confs - -ECHO %CD:\=/%/tmp/build >\tmp\file-list -MKDIR tmp\build -COPY build\src\dird\*.c tmp\build >nul 2>&1 -ECHO %CD:\=/%/tmp/build/ficheriro1.txt>tmp\restore-list -ECHO %CD:\=/%/tmp/build/ficheriro2.txt>>tmp\restore-list - -CALL scripts\functions change_jobname CompressedTest %JobName% -CALL scripts\functions start_test - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\query-test.1.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=File - -ECHO ficheriro1.txt >tmp\build\ficheriro1.txt -ECHO ficheriro2.txt >tmp\build\ficheriro2.txt - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\query-test.2.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=File - -ECHO ficheriro2.txt >tmp\build\ficheriro2.txt -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\query-test.3.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=File -CALL scripts\functions stop_bacula - -REM -REM Delete .c files because we will only restored the txt files -REM -DEL tmp\build\*.c - -CALL scripts\functions check_two_logs -CALL scripts\functions check_restore_tmp_build_diff -CALL scripts\functions end_test diff --git a/regress/win32/tests/recycle-test.bscr b/regress/win32/tests/recycle-test.bscr deleted file mode 100644 index 734cc7e9d3..0000000000 --- a/regress/win32/tests/recycle-test.bscr +++ /dev/null @@ -1,51 +0,0 @@ -@output nul -messages -@@out@ tmp/log1.out -label storage=File1 volume=TestVolume001 -label storage=File1 volume=TestVolume002 -label storage=File1 volume=TestVolume003 -update Volume=TestVolume001 volretention=10s -update Volume=TestVolume001 maxvoljobs=1 -update Volume=TestVolume002 volretention=10s -update Volume=TestVolume002 maxvoljobs=1 -update Volume=TestVolume003 volretention=10s -update Volume=TestVolume003 maxvoljobs=1 -list volumes -run job=@JobName@ storage=File1 level=full yes -wait -messages -list volumes -run job=@JobName@ storage=File1 level=full yes -wait -messages -list volumes -run job=@JobName@ storage=File1 level=full yes -wait -messages -list volumes -@sleep 10 -run job=@JobName@ storage=File1 level=full yes -wait -messages -list volumes -run job=@JobName@ storage=File1 level=full yes -wait -messages -list volumes -run job=@JobName@ storage=File1 level=full yes -wait -messages -list volumes -@# -@# now do a restore -@# -@@out@ tmp/log2.out -restore where=@topdir@/tmp/bacula-restores select storage=File1 -unmark * -mark * -done -yes -wait -messages -@output -quit diff --git a/regress/win32/tests/recycle-test.cmd b/regress/win32/tests/recycle-test.cmd deleted file mode 100644 index b006fe482f..0000000000 --- a/regress/win32/tests/recycle-test.cmd +++ /dev/null @@ -1,26 +0,0 @@ -REM -REM Run a simple backup of the Bacula build directory but -REM create three volumes and do six backups causing the -REM volumes to be recycled, and cycling through the volumes -REM twice. Tests maxvoljobs and volretention. -REM -SET TestName=recycle-test -SET JobName=Recycle - -CALL scripts\functions set_debug 0 -CALL scripts\functions copy_test_confs - -ECHO %CD:\=/%/build >\tmp\file-list - -CALL scripts\functions change_jobname NightlySave %JobName% -CALL scripts\functions start_test - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\recycle-test.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=File1 -CALL scripts\functions stop_bacula - -CALL scripts\functions check_two_logs -CALL scripts\functions check_restore_diff -CALL scripts\functions end_test diff --git a/regress/win32/tests/relabel-tape b/regress/win32/tests/relabel-tape deleted file mode 100644 index 2a1ce858c7..0000000000 --- a/regress/win32/tests/relabel-tape +++ /dev/null @@ -1,94 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory using the compressed option -# then backup four times, each with incremental then finally restore. -# It should require at least 4 different bsrs. -# -TestName="relabel-tape" -JobName=Relabeltape -. scripts/functions -set_debug 0 - -scripts/cleanup-tape -scripts/copy-tape-confs -echo "${cwd}/build" >/tmp/file-list - -change_jobname $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -run job=$JobName level=Full yes -wait -messages -add pool=Default -0 -TestVolume002 -@# set status to append -update volume=TestVolume001 -1 -. -run job=NightlySave level=Full yes -@sleep 20 -unmount -unmount -purge volume=TestVolume001 -relabel oldvolume=TestVolume001 volume=TestVolume003 slot=0 pool=Default -list volumes -mount -messages -wait -run job=$JobName level=Full yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 - - -echo "Backup done" -# -# now do several restores to ensure we cleanup between jobs -# -cat <tmp/bconcmds -@$out /dev/null -restore where=${cwd}/tmp/bacula-restores select all done -yes -wait -restore where=${cwd}/tmp/bacula-restores select all done -yes -wait -@$out tmp/log2.out -@# -@# now unmount the tape and start two restores -@# at the same time -@# -unmount storage=DDS-4 -restore where=${cwd}/tmp/bacula-restores select all done -yes -restore where=${cwd}/tmp/bacula-restores select -unmark * -mark * -done -yes -mount storage=DDS-4 -wait -messages -@$out -quit -END_OF_DATA - -run_bconsole - -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/win32/tests/restore-by-file-tape b/regress/win32/tests/restore-by-file-tape deleted file mode 100644 index 98827959f5..0000000000 --- a/regress/win32/tests/restore-by-file-tape +++ /dev/null @@ -1,101 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# to a tape where the maximum tape file size is set to 1M -# then restore a few files from it. Note, by setting the maximum -# file size to 1M, it runs very slow. There are about 64 files that -# are created during each of the two backups. -# -TestName="restore-by-file-tape" -JobName=restorebyfile -. scripts/functions -set_debug 0 -copy_tape_confs - -echo "${cwd}/build" >/tmp/file-list -sed s%\^%${cwd}% ${cwd}/scripts/flist >${cwd}/tmp/restore2-list - -cp ${cwd}/bin/bacula-sd.conf ${cwd}/tmp/1 -sed "s%# Maximum File Size% Maximum File Size%" ${cwd}/tmp/1 >${cwd}/bin/bacula-sd.conf - -change_jobname NightlySave $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -run job=$JobName level=Full yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores storage=DDS-4 file=<${cwd}/tmp/restore2-list -yes -wait -messages -@output -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -dstat=0 -# -# We need to stop and start Bacula to -# test appending to a previously written tape -# -for i in `cat ${cwd}/tmp/restore2-list`; do - diff $i ${cwd}/tmp/bacula-restores$i - if [ $? != 0 ] ; then - dstat=1 - fi -done - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -run job=$JobName level=Full yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores -7 -<${cwd}/tmp/restore2-list - -yes -wait -messages -@output -quit -END_OF_DATA - -# -# Bacula was stopped, but we must restart it to -# test appending to a previously written tape -# -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -check_two_logs - -scripts/check_for_zombie_jobs storage=DDS-4 -bin/bacula stop 2>&1 >/dev/null -for i in `cat ${cwd}/tmp/restore2-list`; do - diff $i ${cwd}/tmp/bacula-restores$i - if [ $? != 0 ] ; then - dstat=1 - fi -done - -end_test diff --git a/regress/win32/tests/restore-by-file-test.bscr b/regress/win32/tests/restore-by-file-test.bscr deleted file mode 100644 index ad4053aed4..0000000000 --- a/regress/win32/tests/restore-by-file-test.bscr +++ /dev/null @@ -1,20 +0,0 @@ -@output nul -messages -@@out@ tmp/log1.out -label storage=File volume=TestVolume001 -run job=@JobName@ yes -wait -messages -@# -@# now do a restore -@# -@@out@ tmp/log2.out -restore where=@topdir@/tmp/bacula-restores storage=File -7 -<@topdir@/tmp/restore-list - -yes -wait -messages -@@out@ -quit diff --git a/regress/win32/tests/restore-by-file-test.cmd b/regress/win32/tests/restore-by-file-test.cmd deleted file mode 100644 index 669196648a..0000000000 --- a/regress/win32/tests/restore-by-file-test.cmd +++ /dev/null @@ -1,30 +0,0 @@ -REM -REM Run a simple backup of the Bacula build directory using the compressed option -REM then restore it. -REM - -SET TestName=restore-by-file-test -SET JobName=restorebyfile - -CALL scripts\functions set_debug 0 -CALL scripts\functions copy_test_confs - -ECHO %CD:\=/%/tmp/build >\tmp\file-list -MKDIR tmp\build -COPY build\src\dird\*.c tmp\build >nul 2>&1 -DIR /b tmp\build >tmp\1 -sed -e "s;^;%CD:\=/%/tmp/build/;" tmp\1 >tmp\restore-list -DEL tmp\1 - -CALL scripts\functions change_jobname CompressedTest %JobName% -CALL scripts\functions start_test - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\restore-by-file-test.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=File -CALL scripts\functions stop_bacula - -CALL scripts\functions check_two_logs -CALL scripts\functions check_restore_tmp_build_diff -CALL scripts\functions end_test diff --git a/regress/win32/tests/restore-disk-seek-test.bscr b/regress/win32/tests/restore-disk-seek-test.bscr deleted file mode 100644 index a6f4ef68a6..0000000000 --- a/regress/win32/tests/restore-disk-seek-test.bscr +++ /dev/null @@ -1,23 +0,0 @@ -@@out@ nul -messages -@@out@ tmp/log1.out -label storage=File volume=TestVolume001 -run job=@JobName@ yes -wait -messages -@# -@# now do a restore -@# -@@out@ tmp/log2.out -sql -select * from JobMedia; - -restore bootstrap=@topdir@/tmp/rbn.bsr where=@topdir@/tmp/bacula-restores storage=File -7 -<@topdir@/tmp/restore-list - -yes -wait -messages -@@out@ -quit diff --git a/regress/win32/tests/restore-disk-seek-test.cmd b/regress/win32/tests/restore-disk-seek-test.cmd deleted file mode 100644 index 6fdfdbd60f..0000000000 --- a/regress/win32/tests/restore-disk-seek-test.cmd +++ /dev/null @@ -1,55 +0,0 @@ -REM -REM Run a backup of the full bacula build directory, but with the -REM Maximum File Size set. Then do a restore of a few files to kick in -REM disk seeking (not yet enabled), and ensure that the restored files -REM match. Even though disk seeking is not yet enabled, this is a good test, -REM and once it is enabled, this will test it. -REM -SET TestName=restore-disk-seek-test -SET JobName=restore-disk-seek - -CALL scripts\functions set_debug 1 -CALL scripts\functions copy_test_confs - -ECHO %CD:\=/%/tmp/build >\tmp\file-list - -IF EXIST tmp\build RD /s /q tmp\build -MKDIR tmp\build - -REM Copy only the .c files (to be restored) -REM set files to "*.c" for all c files -SET files=ua_tree.c ua_update.c -REM SET files=*.c -FOR %%i in ( %files% ) DO COPY build\src\dird\%%i tmp\build >nul 2>&1 -DIR /b tmp\build >tmp\1 -sed -e "s;^;%CD:\=/%/tmp/build/;" tmp\1 >tmp\restore-list - -REM At this point restore-list contains the list -REM of files we will restore -DEL tmp\1 - -REM Now backup *everything* -IF EXIST tmp\build RD /s /q tmp\build -MKDIR tmp\build -COPY build\src\dird\* tmp\build >nul 2>&1 -REM Enable MaximumFileSize -COPY bin\bacula-sd.conf tmp\1 >nul 2>&1 -sed "s;# Maximum File Size; Maximum File Size;" tmp\1 >bin\bacula-sd.conf - -CALL scripts\functions change_jobname CompressedTest %JobName% -CALL scripts\functions start_test - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\restore-disk-seek-test.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=File -CALL scripts\functions stop_bacula - -REM Now setup a control directory of only what we *should* restore -RD /s /q tmp\build -MKDIR tmp\build -FOR %%i in ( %files% ) DO COPY build\src\dird\%%i tmp\build >nul 2>&1 - -CALL scripts\functions check_two_logs -CALL scripts\functions check_restore_tmp_build_diff -CALL scripts\functions end_test diff --git a/regress/win32/tests/restore2-by-file-test.bscr b/regress/win32/tests/restore2-by-file-test.bscr deleted file mode 100644 index 12d2d8fd4b..0000000000 --- a/regress/win32/tests/restore2-by-file-test.bscr +++ /dev/null @@ -1,17 +0,0 @@ -@output nul -messages -@@out@ tmp/log1.out -label storage=File volume=TestVolume001 -run job=@JobName@ yes -wait -messages -@# -@# now do a restore -@# -@@out@ tmp/log2.out -restore where=@topdir@/tmp/bacula-restores storage=File file=<@topdir@/tmp/restore2-list -yes -wait -messages -@output -quit diff --git a/regress/win32/tests/restore2-by-file-test.cmd b/regress/win32/tests/restore2-by-file-test.cmd deleted file mode 100644 index cba7ea35b1..0000000000 --- a/regress/win32/tests/restore2-by-file-test.cmd +++ /dev/null @@ -1,31 +0,0 @@ -REM -REM Run a simple backup of the Bacula build directory using the compressed option -REM then restore a few selected files. -REM -SETLOCAL ENABLEDELAYEDEXPANSION -SET TestName=restore2-by-file-test -SET JobName=restore2byfile - -CALL scripts\functions set_debug 0 -CALL scripts\functions copy_test_confs - -ECHO %CD:\=/%/build >\tmp\file-list -sed -e "s;^;%CD:\=/%;" scripts/flist >tmp\restore2-list - -CALL scripts\functions change_jobname CompressedTest %JobName% -CALL scripts\functions start_test - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\restore2-by-file-test.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=File -CALL scripts\functions stop_bacula - -CALL scripts\functions check_two_logs -SET dstat=0 -FOR /f %%i IN ( tmp\restore2-list ) DO ( - SET SUBDIR=%%i - diff %%i tmp/bacula-restores/!SUBDIR::=! - IF %ERRORLEVEL% NEQ 0 SET dstat=1 -) -CALL scripts\functions end_test diff --git a/regress/win32/tests/runscript-test b/regress/win32/tests/runscript-test deleted file mode 100644 index 77212621fc..0000000000 --- a/regress/win32/tests/runscript-test +++ /dev/null @@ -1,90 +0,0 @@ -#!/bin/sh -# -# Test if Bacula can automatically create a Volume label. -# - -TestName="runscript-test" - -. scripts/functions -set_debug 0 -copy_test_confs - -rm -f bin/bacula-dir.conf -/bin/cp -f scripts/bacula-dir.conf.testrunscript bin/bacula-dir.conf - -echo "${cwd}/build" >/tmp/file-list - -start_test - -cat <tmp/bconcmds -@output /dev/null -messages -label volume=TestVolume001 -@#setdebug level=100 storage=File -@output tmp/log.RUN2.out -run job=RUN_FD_WARNING yes -wait -@sleep 5 -messages -run job=RUN_ALL_OK yes -wait -@sleep 5 -messages -run job=RUN_FD_FAILED yes -wait -@sleep 5 -messages -run job=RUN_DIR_FAILED yes -wait -@sleep 5 -messages -st dir -quit -END_OF_DATA - - -bin/bacula start -cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf &> tmp/log.RUN1.out - -stop_bacula - -if grep -q 'dir: BeforeJob: run command "/bin/echo RunBeforeJob"' tmp/log.RUN1.out && - grep -q 'fd: ClientRunBeforeJob: ClientRunBeforeJob' tmp/log.RUN1.out && - grep -q 'fd: ClientAfterJob: run command "/bin/echo ClientRunAfterJob' tmp/log.RUN1.out && - grep -q 'dir: AfterJob: run command "/bin/echo RunAfterJob' tmp/log.RUN1.out -then - [ "$debug" -eq 1 ] && echo RUN_ALL_OK ok -else - echo "RUN_ALL_OK in error" - rstat=1 -fi - -if grep -q 'dir: BeforeJob: run command "/bin/false RUN_DIR_FAILED"' tmp/log.RUN1.out && - grep -q 'dir: BeforeJob: RunAfterFailedJob' tmp/log.RUN1.out && - true # grep -q 'Backup OK -- with warnings' tmp/log.RUN1.out -then - [ "$debug" -eq 1 ] && echo RUN_DIR_FAILED ok -else - echo "RUN_DIR_FAILED in error" - rstat=1 -fi - -if grep -q 'fd: ClientBeforeJob: run command "/bin/false RUN_FD_FAILED1"' tmp/log.RUN1.out && - grep -q 'fd: ClientBeforeJob: run command "/bin/false RUN_FD_FAILED2"' tmp/log.RUN1.out && - grep -q 'dir: AfterJob: run command "/bin/echo RunAfterFailedJob"' tmp/log.RUN1.out -then - [ "$debug" -eq 1 ] && echo RUN_FD_FAILED ok -else - echo "RUN_FD_FAILED in error" - rstat=1 -fi - -if grep -q 'fd: ClientBeforeJob: run command "/bin/false RUN_FD_WARNING"' tmp/log.RUN1.out && - grep -q 'Backup OK -- with warnings' tmp/log.RUN1.out -then - [ "$debug" -eq 1 ] && echo RUN_FD_WARNING ok -else - echo "RUN_FD_WARNING in error" - rstat=1 -fi - diff --git a/regress/win32/tests/scratch-pool-test.bscr b/regress/win32/tests/scratch-pool-test.bscr deleted file mode 100644 index 9170fb7c60..0000000000 --- a/regress/win32/tests/scratch-pool-test.bscr +++ /dev/null @@ -1,25 +0,0 @@ -@@out@ nul -messages -@@out@ tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=1 pool=Scratch drive=0 -label storage=DDS-4 volume=TestVolume002 slot=2 pool=Scratch drive=0 -update Volume=TestVolume001 MaxVolBytes=2000000 pool=Scratch drive=0 -update Volume=TestVolume001 inchanger=no pool=Scratch drive=0 -@#setdebug level=200 storage=DDS-4 -llist volume=TestVolume001 -llist volume=TestVolume002 -run job=@JobName@ yes -wait -messages -list volumes -llist volume=TestVolume001 -@# -@# now do a restore -@# -@@out@ tmp/log2.out -restore where=@topdir@/tmp/bacula-restores select all storage=DDS-4 done -yes -wait -messages -@@out@ -quit diff --git a/regress/win32/tests/scratch-pool-test.cmd b/regress/win32/tests/scratch-pool-test.cmd deleted file mode 100644 index d8e88f400c..0000000000 --- a/regress/win32/tests/scratch-pool-test.cmd +++ /dev/null @@ -1,45 +0,0 @@ -REM -REM Run a simple backup of the Bacula build directory -REM to two tapes where the maximum tape file size is set to 1M -REM Note, this test simulates the tape filling and writing to -REM the next tape. One minor wrinkle: we create the two tapes -REM in the Scratch pool, so they should be switched to the Default -REM Pool automatically. -REM We set TestVolume001 to not in the changer, so the algorithm -REM should find TestVolume002 and use it rather than blocking. -REM -REM Note we use the viritual disk autochanger -REM -SET TestName=scratch-pool-test -SET JobName=scratch-pool - -CALL scripts\functions set_debug 0 - -CALL config_out -IF "%AUTOCHANGER%" == "nul" ( - ECHO two-volume-test skipped. No autochanger. - EXIT /b 1 -) - -CALL scripts\cleanup -CALL scripts\copy-2disk-confs >nul 2>&1 -CALL scripts\prepare-two-disks - -ECHO %CD:\=/%/build >\tmp\file-list - -COPY bin\bacula-sd.conf tmp\1 >nul 2>&1 -sed -e "s;# Maximum File Size; Maximum File Size;g" tmp\1 >bin\bacula-sd.conf - -CALL scripts\functions change_jobname NightlySave %JobName% -CALL scripts\functions start_test - -REM Write out bconsole commands -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\scratch-pool-test.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=DDS-4 -CALL scripts\functions stop_bacula - -CALL scripts\functions check_two_logs -CALL scripts\functions check_restore_diff -CALL scripts\functions end_test diff --git a/regress/win32/tests/six-vol-test.bscr b/regress/win32/tests/six-vol-test.bscr deleted file mode 100644 index e6698df335..0000000000 --- a/regress/win32/tests/six-vol-test.bscr +++ /dev/null @@ -1,19 +0,0 @@ -@output nul -messages -@@out@ tmp/log1.out -run job=@JobName@ storage=File yes -wait -messages -@# -@# now do a restore -@# -@@out@ tmp/log2.out -restore where=@topdir@/tmp/bacula-restores select storage=File -unmark * -mark * -done -yes -wait -messages -@output -quit diff --git a/regress/win32/tests/six-vol-test.cmd b/regress/win32/tests/six-vol-test.cmd deleted file mode 100644 index ab3ca0559b..0000000000 --- a/regress/win32/tests/six-vol-test.cmd +++ /dev/null @@ -1,36 +0,0 @@ -REM -REM Create a 60MB file with random bytes. Back it up to 6 Volumes -REM each constrained to 10MB using the automatic labeling feature. -REM -SET TestName=six-vol-test -SET JobName=SixVol - -CALL scripts\functions set_debug 0 - -CALL scripts\cleanup -CALL scripts\copy-testa-confs >nul 2>&1 -ECHO %CD:\=/%/tmp/largefile >\tmp\file-list - -ECHO Creating a 60MB file with bacula-dir data ... -tools\dd if=bin/bacula-dir.exe of=%CD:\=/%/tmp/1 bs=1024 count=500 >nul 2>&1 -COPY /b %CD%\tmp\1+%CD%\tmp\1+%CD%\tmp\1+%CD%\tmp\1+%CD%\tmp\1 %CD%\tmp\2 >nul 2>&1 -DEL %CD%\tmp\1 -COPY /b %CD%\tmp\2+%CD%\tmp\2 %CD%\tmp\3 >nul 2>&1 -DEL %CD%\tmp\2 -COPY /b %CD%\tmp\3+%CD%\tmp\3+%CD%\tmp\3+%CD%\tmp\3+%CD%\tmp\3+%CD%\tmp\3 %CD%\tmp\4 >nul 2>&1 -COPY /b %CD%\tmp\3+%CD%\tmp\3+%CD%\tmp\3+%CD%\tmp\3+%CD%\tmp\3+%CD%\tmp\4 %CD%\tmp\largefile >nul 2>&1 -DEL %CD%\tmp\3 %CD%\tmp\4 - -CALL scripts\functions change_jobname MultiVol %JobName% -CALL scripts\functions start_test - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\six-vol-test.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=File -CALL scripts\functions stop_bacula - -CALL scripts\functions check_two_logs -diff tmp\largefile tmp\bacula-restores\%CD::=%\tmp\largefile >nul 2>&1 -SET dstat=%ERRORLEVEL% -CALL scripts\functions end_test diff --git a/regress/win32/tests/small-file-size-tape b/regress/win32/tests/small-file-size-tape deleted file mode 100644 index 9c68cad1eb..0000000000 --- a/regress/win32/tests/small-file-size-tape +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# to a tape where the maximum tape file size is set to 1M -# -TestName="small-file-size-tape" -JobName=smallfilesize -. scripts/functions -set_debug 0 - -copy_tape_confs - -echo "${cwd}/build" >/tmp/file-list -cp ${cwd}/bin/bacula-sd.conf ${cwd}/tmp/1 -sed "s%# Maximum File Size% Maximum File Size%" ${cwd}/tmp/1 >${cwd}/bin/bacula-sd.conf - -change_jobname NightlySave $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -setdebug level=2 storage=DDS-4 -run job=$JobName yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=DDS-4 -unmark * -mark * -done -yes -wait -messages -@output -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/win32/tests/span-vol-test.bscr b/regress/win32/tests/span-vol-test.bscr deleted file mode 100644 index 6ec7c37eae..0000000000 --- a/regress/win32/tests/span-vol-test.bscr +++ /dev/null @@ -1,27 +0,0 @@ -@output nul -messages -@@out@ tmp/log1.out -label storage=File1 volume=TestVolume004 -label storage=File1 volume=TestVolume003 -label storage=File1 volume=TestVolume002 -label storage=File1 volume=TestVolume001 -update Volume=TestVolume004 MaxVolBytes=3000000 -update Volume=TestVolume003 MaxVolBytes=3000000 -update Volume=TestVolume002 MaxVolBytes=3000000 -run job=@JobName@ storage=File1 yes -wait -list volumes -messages -@# -@# now do a restore -@# -@@out@ tmp/log2.out -restore where=@topdir@/tmp/bacula-restores select storage=File1 -unmark * -mark * -done -yes -wait -messages -@@out@ -quit diff --git a/regress/win32/tests/span-vol-test.cmd b/regress/win32/tests/span-vol-test.cmd deleted file mode 100644 index 52cbaffb77..0000000000 --- a/regress/win32/tests/span-vol-test.cmd +++ /dev/null @@ -1,26 +0,0 @@ -REM -REM Run a simple backup of the Bacula build directory but -REM split the archive into four volumes, two of which are -REM totally full. I.e. make sure that bsr selects all tapes -REM including those fully spanned. -REM -SET TestName=span-vol-test -SET JobName=SpanVol - -CALL scripts\functions set_debug 0 -CALL scripts\functions copy_test_confs - -ECHO %CD:\=/%/build >\tmp\file-list - -CALL scripts\functions change_jobname NightlySave %JobName% -CALL scripts\functions start_test - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\span-vol-test.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=File1 -CALL scripts\functions stop_bacula - -CALL scripts\functions check_two_logs -CALL scripts\functions check_restore_diff -CALL scripts\functions end_test diff --git a/regress/win32/tests/sparse-compressed-test.bscr b/regress/win32/tests/sparse-compressed-test.bscr deleted file mode 100644 index e4d1040296..0000000000 --- a/regress/win32/tests/sparse-compressed-test.bscr +++ /dev/null @@ -1,17 +0,0 @@ -@output nul -messages -@@out@ tmp/log1.out -label storage=File volume=TestVolume001 -run job=SparseCompressedTest yes -wait -messages -@# -@# now do a restore -@# -@@out@ tmp/log2.out -restore where=@topdir@/tmp/bacula-restores select all storage=File done -yes -wait -messages -@output -quit diff --git a/regress/win32/tests/sparse-compressed-test.cmd b/regress/win32/tests/sparse-compressed-test.cmd deleted file mode 100644 index e8b701dcf1..0000000000 --- a/regress/win32/tests/sparse-compressed-test.cmd +++ /dev/null @@ -1,23 +0,0 @@ -REM -REM Run a simple backup of the Bacula build directory using the Sparse option -REM then restore it. -REM -SET TestName=sparse-compressed-test -SET JobName=Sparse-conpressed - -CALL scripts\functions set_debug 0 -CALL scripts\functions copy_test_confs - -ECHO %CD:\=/%/build >\tmp\file-list - -CALL scripts\functions start_test - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\sparse-compressed-test.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=File -CALL scripts\functions stop_bacula - -CALL scripts\functions check_two_logs -CALL scripts\functions check_restore_diff -CALL scripts\functions end_test diff --git a/regress/win32/tests/sparse-test.bscr b/regress/win32/tests/sparse-test.bscr deleted file mode 100644 index b7438e9dfb..0000000000 --- a/regress/win32/tests/sparse-test.bscr +++ /dev/null @@ -1,20 +0,0 @@ -@output nul -messages -@@out@ tmp/log1.out -label storage=File volume=TestVolume001 -run job=@JobName@ yes -wait -messages -@# -@# now do a restore -@# -@@out@ tmp/log2.out -restore where=@topdir@/tmp/bacula-restores select storage=File -unmark * -mark * -done -yes -wait -messages -@output -quit diff --git a/regress/win32/tests/sparse-test.cmd b/regress/win32/tests/sparse-test.cmd deleted file mode 100644 index a8ba5d1680..0000000000 --- a/regress/win32/tests/sparse-test.cmd +++ /dev/null @@ -1,23 +0,0 @@ -REM -REM Run a simple backup of the Bacula build directory using the Sparse option -REM then restore it. -REM -SET TestName=sparse-test -SET JobName=SparseTest - -CALL scripts\functions set_debug 0 -CALL scripts\functions copy_test_confs - -ECHO %CD:\=/%/build >\tmp\file-list - -CALL scripts\functions start_test - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\sparse-test.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=File -CALL scripts\functions stop_bacula - -CALL scripts\functions check_two_logs -CALL scripts\functions check_restore_diff -CALL scripts\functions end_test diff --git a/regress/win32/tests/test0.cmd b/regress/win32/tests/test0.cmd deleted file mode 100644 index e1824b12b7..0000000000 --- a/regress/win32/tests/test0.cmd +++ /dev/null @@ -1,2 +0,0 @@ -COPY nul test.out >nul 2>&1 -DEL bin\working\* 2>&1 diff --git a/regress/win32/tests/truncate-bug-tape b/regress/win32/tests/truncate-bug-tape deleted file mode 100644 index acfda15f3e..0000000000 --- a/regress/win32/tests/truncate-bug-tape +++ /dev/null @@ -1,87 +0,0 @@ -#!/bin/sh -# -# Test for a tape truncation bug. -# -TestName="truncate-bug-tape" -JobName=truncatebug -. scripts/functions - -set_debug 0 -copy_tape_confs - -echo "${cwd}/build" >/tmp/file-list - -change_jobname NightlySave $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default -@# do a bunch of saves so we have 12 files on the tape -run job=$JobName yes -run level=Full job=$JobName yes -run level=Full job=$JobName yes -run level=Full job=$JobName yes -run level=Full job=$JobName yes -run level=Full job=$JobName yes -run level=Full job=$JobName yes -run level=Full job=$JobName yes -run level=Full job=$JobName yes -run level=Full job=$JobName yes -run level=Full job=$JobName yes -run level=Full job=$JobName yes -@#setdebug level=100 storage=DDS-4 -wait -messages -quit -END_OF_DATA - -run_bacula -scripts/check_for_zombie_jobs storage=DDS-4 - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log2.out -@# -@# now do a restore -@# -restore where=${cwd}/tmp/bacula-restores storage=DDS-4 -3 -@# select JobId=4 (i.e. file five on the tape) -4 -cd ${cwd}/build -@# mark a single file -mark configure -done -yes -wait -messages -@output -quit -END_OF_DATA - -run_bconsole -scripts/check_for_zombie_jobs storage=DDS-4 - -# Now write to tape one more time -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log3.out -run level=Full job=$JobName yes -wait -messages -quit -END_OF_DATA - -run_bconsole -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -check_two_logs -grep "^ Termination: *Backup OK" tmp/log3.out 2>&1 >/dev/null -dstat=$? -end_test diff --git a/regress/win32/tests/two-jobs-test.1.bscr b/regress/win32/tests/two-jobs-test.1.bscr deleted file mode 100644 index 745a2e1011..0000000000 --- a/regress/win32/tests/two-jobs-test.1.bscr +++ /dev/null @@ -1,14 +0,0 @@ -setdebug level=15 storage=File -@output nul -messages -@output nul -estimate job=@JobName@ listing -estimate job=@JobName@ listing -estimate job=@JobName@ listing -messages -@@out@ tmp/log1.out -label storage=File volume=TestVolume001 -run job=@JobName@ yes -wait -messages -quit diff --git a/regress/win32/tests/two-jobs-test.2.bscr b/regress/win32/tests/two-jobs-test.2.bscr deleted file mode 100644 index 144ac5f997..0000000000 --- a/regress/win32/tests/two-jobs-test.2.bscr +++ /dev/null @@ -1,27 +0,0 @@ -@output nul -messages -@@out@ tmp/log1.out -run job=@JobName@ -yes -wait -messages -@# -@# now do several restores to ensure we cleanup between jobs -@# -@output nul -restore where=@topdir@/tmp/bacula-restores select all storage=File done -yes -wait -restore where=@topdir@/tmp/bacula-restores select all storage=File done -yes -wait -@@out@ tmp/log2.out -restore where=@topdir@/tmp/bacula-restores select storage=File -unmark * -mark * -done -yes -wait -messages -@output -quit diff --git a/regress/win32/tests/two-jobs-test.cmd b/regress/win32/tests/two-jobs-test.cmd deleted file mode 100644 index 3964e90d16..0000000000 --- a/regress/win32/tests/two-jobs-test.cmd +++ /dev/null @@ -1,35 +0,0 @@ -REM -REM Run a simple backup of the Bacula build directory using the compressed option -REM then backup a second time and finally restore it -REM -SET TestName=two-jobs-test -SET JobName=Two-Jobs - -CALL scripts\functions set_debug 0 -CALL scripts\functions copy_test_confs - -ECHO %CD:\=/%/build >\tmp\file-list - -CALL scripts\functions change_jobname CompressedTest %JobName% -CALL scripts\functions start_test - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\two-jobs-test.1.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=File - -ECHO Backup 1 done -tools\touch build\src\dird\*.c - -REM -REM run a second job -REM -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\two-jobs-test.2.bscr >tmp\bconcmds - -CALL scripts\functions run_bconsole -CALL scripts\functions check_for_zombie_jobs storage=File -CALL scripts\functions stop_bacula - -CALL scripts\functions check_two_logs -CALL scripts\functions check_restore_diff -CALL scripts\functions end_test diff --git a/regress/win32/tests/two-pool-tape b/regress/win32/tests/two-pool-tape deleted file mode 100644 index 9da395ae69..0000000000 --- a/regress/win32/tests/two-pool-tape +++ /dev/null @@ -1,82 +0,0 @@ -#!/bin/sh -# -# This is Arno's test. It uses two pools, two tapes, and -# an autochanger. Note, the Director has three Pools in its -# conf: Default, Full, and Inc. Default is used in the -# NightlySave job by default. What is backed up is what -# is in /tmp/file-list, which is by default the Bacula -# source code (i.e. the build directory). -# -TestName="two-pool-tape" -JobName=twopooltape -. scripts/functions -set_debug 0 - -. config.out -if test x${AUTOCHANGER} = x/dev/null ; then - echo "two-pool-tape test skipped. No autochanger." - exit -fi - -scripts/cleanup -scripts/copy-2tape-confs -echo "Prepare two tapes" -scripts/prepare-two-tapes -echo "Done prepare two tapes" - -# Make a relatively large backup set 5 x source code directory -echo "${cwd}/build" >/tmp/file-list -echo "${cwd}/build" >>/tmp/file-list -echo "${cwd}/build" >>/tmp/file-list -echo "${cwd}/build" >>/tmp/file-list -echo "${cwd}/build" >>/tmp/file-list - -start_test - -# Write out bconsole commands to a file -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -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 -@# Start job with Client run before and sleep -run job=NightlySave1 level=Full pool=Default yes -run job=NightlySave1 level=Full pool=Default yes -run job=NightlySave1 level=Full pool=Default yes -@# wait between starting jobs -@sleep 60 -@#setdebug level=100 storage=DDS-4 -run job=NightlySave2 level=Full pool=Full yes -run job=NightlySave2 level=Full pool=Full yes -run job=NightlySave2 level=Full pool=Full yes -@sleep 10 -messages -@sleep 10 -messages -@sleep 10 -status storage=DDS-4 -messages -wait -list volumes -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select all storage=DDS-4 done -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -check_two_logs -check_restore_diff -end_test diff --git a/regress/win32/tests/two-pool-test.bscr b/regress/win32/tests/two-pool-test.bscr deleted file mode 100644 index 57b3903e6a..0000000000 --- a/regress/win32/tests/two-pool-test.bscr +++ /dev/null @@ -1,36 +0,0 @@ -@output nul -messages -@@out@ tmp/log1.out -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 -@# Start job with Client run before and sleep -run job=NightlySave1 level=Full pool=Default yes -run job=NightlySave1 level=Full pool=Default yes -run job=NightlySave1 level=Full pool=Default yes -@# wait between starting jobs -@sleep 60 -@#setdebug level=100 storage=DDS-4 -run job=NightlySave2 level=Full pool=Full yes -run job=NightlySave2 level=Full pool=Full yes -run job=NightlySave2 level=Full pool=Full yes -@sleep 10 -messages -@sleep 10 -messages -@sleep 10 -status storage=DDS-4 -messages -wait -list volumes -messages -@# -@# now do a restore -@# -@@out@ tmp/log2.out -restore where=@topdir@/tmp/bacula-restores select all storage=DDS-4 done -yes -wait -messages -@@out@ -quit diff --git a/regress/win32/tests/two-pool-test.cmd b/regress/win32/tests/two-pool-test.cmd deleted file mode 100644 index e2d9904c36..0000000000 --- a/regress/win32/tests/two-pool-test.cmd +++ /dev/null @@ -1,37 +0,0 @@ -REM -REM This is Arno's test. It uses two pools, two tapes, and -REM an autochanger. Note, the Director has three Pools in its -REM conf: Default, Full, and Inc. Default is used in the -REM NightlySave job by default. What is backed up is what -REM is in /tmp/file-list, which is by default the Bacula -REM source code (i.e. the build directory). -REM -REM Note, we use the virtual disk autochanger. -REM -SET TestName=two-pool-test -SET JobName=Two-pool - -CALL scripts\functions set_debug 0 - -CALL config_out - -CALL scripts\cleanup -CALL scripts\copy-2disk-confs >nul 2>&1 -CALL scripts\prepare-two-disks - -REM Make a relatively large backup set 5 x source code directory -REM Reduced to 1 for portable -ECHO %CD:\=/%/build >\tmp\file-list - -CALL scripts\functions start_test - -REM Write out bconsole commands to a file -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\two-pool-test.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=DDS-4 -CALL scripts\functions stop_bacula - -CALL scripts\functions check_two_logs -CALL scripts\functions check_restore_diff -CALL scripts\functions end_test diff --git a/regress/win32/tests/two-vol-test.bscr b/regress/win32/tests/two-vol-test.bscr deleted file mode 100644 index 8de06c5d64..0000000000 --- a/regress/win32/tests/two-vol-test.bscr +++ /dev/null @@ -1,19 +0,0 @@ -@@out@ nul -messages -@@out@ tmp/log1.out -label storage=File1 volume=TestVolume002 -label storage=File1 volume=TestVolume001 -update Volume=TestVolume002 MaxVolBytes=3000000 -run job=@JobName@ storage=File1 yes -wait -messages -@# -@# now do a restore -@# -@@out@ tmp/log2.out -restore where=@topdir@/tmp/bacula-restores select all storage=File1 done -yes -wait -messages -@@out@ -quit diff --git a/regress/win32/tests/two-vol-test.cmd b/regress/win32/tests/two-vol-test.cmd deleted file mode 100644 index ce59794572..0000000000 --- a/regress/win32/tests/two-vol-test.cmd +++ /dev/null @@ -1,24 +0,0 @@ -REM -REM Run a simple backup of the Bacula build directory but -REM split the archive into two volumes -REM -SET TestName=two-vol-test -SET JobName=TwoVol - -CALL scripts\functions set_debug 0 -CALL scripts\functions copy_test_confs - -ECHO %CD:\=/%/build >\tmp\file-list - -CALL scripts\functions change_jobname NightlySave %JobName% -CALL scripts\functions start_test - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\two-vol-test.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=File1 -CALL scripts\functions stop_bacula - -CALL scripts\functions check_two_logs -CALL scripts\functions check_restore_diff -CALL scripts\functions end_test diff --git a/regress/win32/tests/two-volume-tape.1.bscr b/regress/win32/tests/two-volume-tape.1.bscr deleted file mode 100644 index 30ebdf96bf..0000000000 --- a/regress/win32/tests/two-volume-tape.1.bscr +++ /dev/null @@ -1,11 +0,0 @@ -@@out@ nul -messages -@@out@ @topdir@/tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=1 pool=Default drive=0 -label storage=DDS-4 volume=TestVolume002 slot=2 pool=Default drive=0 -update Volume=TestVolume001 MaxVolBytes=3000000 pool=Default drive=0 -@#setdebug level=1000 client -run job=@JobName@ yes -wait -messages -quit diff --git a/regress/win32/tests/two-volume-tape.2.bscr b/regress/win32/tests/two-volume-tape.2.bscr deleted file mode 100644 index 6af471c6b7..0000000000 --- a/regress/win32/tests/two-volume-tape.2.bscr +++ /dev/null @@ -1,12 +0,0 @@ -@@out@ nul -messages -@# -@# now do a restore -@# -@@out@ tmp/log2.out -restore where=@topdir@/tmp/bacula-restores select all storage=DDS-4 done -yes -wait -messages -@@out@ -quit diff --git a/regress/win32/tests/two-volume-tape.cmd b/regress/win32/tests/two-volume-tape.cmd deleted file mode 100644 index 62e80ecaa9..0000000000 --- a/regress/win32/tests/two-volume-tape.cmd +++ /dev/null @@ -1,48 +0,0 @@ -REM -REM Run a simple backup of the Bacula build directory -REM to two tapes where the maximum tape file size is set to 1M -REM Note, this test simulates the tape filling and writing to -REM the next tape. -REM -SET TestName=two-volume-tape -SET JobName=twovoltape -CALL scripts\functions set_debug 0 - -CALL config_out -IF "%AUTOCHANGER%" == "nul" ( - ECHO two-volume-tape test skipped. No autochanger. - EXIT /b 1 -) - -CALL scripts\cleanup -CALL scripts\copy-2tape-confs -CALL scripts\prepare-two-tapes - -ECHO %CD:\=/%/build >\tmp\file-list - -COPY bin\bacula-sd.conf tmp\1 -sed -e "s%# Maximum File Size% Maximum File Size%g" >bin\bacula-sd.conf - -CALL scripts\functions change_jobname %JobName% -CALL scripts\functions start_test - -REM Write out bconsole commands -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\two-volume-tape.1.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=DDS-4 -CALL scripts\functions stop_bacula - -mt -f %TAPE_DRIVE% rewind -mtx -f %AUTOCHANGER% unload -bin\bsleep 15 - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\two-volume-tape.2.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=DDS-4 -CALL scripts\functions stop_bacula - -CALL scripts\functions check_two_logs -CALL scripts\functions check_restore_diff -CALL scripts\functions end_test diff --git a/regress/win32/tests/two-volume-test.bscr b/regress/win32/tests/two-volume-test.bscr deleted file mode 100644 index bd08ef35e1..0000000000 --- a/regress/win32/tests/two-volume-test.bscr +++ /dev/null @@ -1,21 +0,0 @@ -@@out@ nul -messages -@@out@ tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=1 pool=Default drive=0 -label storage=DDS-4 volume=TestVolume002 slot=2 pool=Default drive=0 -update Volume=TestVolume001 MaxVolBytes=3000000 pool=Default drive=0 -@#setdebug level=1000 client -run job=@JobName@ yes -wait -messages -@# -@# now do a restore -@# -@@out@ tmp/log2.out -restore where=@topdir@/tmp/bacula-restores select all storage=DDS-4 done -yes -wait -messages -@@out@ -quit - diff --git a/regress/win32/tests/two-volume-test.cmd b/regress/win32/tests/two-volume-test.cmd deleted file mode 100644 index 9bfe9c88da..0000000000 --- a/regress/win32/tests/two-volume-test.cmd +++ /dev/null @@ -1,35 +0,0 @@ -REM -REM Run a simple backup of the Bacula build directory -REM to two tapes where the maximum tape file size is set to 1M -REM Note, this test simulates the tape filling and writing to -REM the next tape. -REM -REM Note we use the viritual disk autochanger -REM -SET TestName=two-volume-test -SET JobName=TwoVolume -CALL scripts\functions set_debug 1 -CALL config_out - -CALL scripts\cleanup -CALL scripts\copy-2disk-confs >nul 2>&1 -CALL scripts\prepare-two-disks - -ECHO %CD:\=/%/build >\tmp\file-list - -COPY bin\bacula-sd.conf tmp\1 -sed -e "s;# Maximum File Size; Maximum File Size;g" tmp\1 >bin\bacula-sd.conf - -CALL scripts\functions change_jobname NightlySave %JobName% -CALL scripts\functions start_test - -REM Write out bconsole commands -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\two-volume-test.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula -CALL scripts\functions check_for_zombie_jobs storage=DDS-4 -CALL scripts\functions stop_bacula - -CALL scripts\functions check_two_logs -CALL scripts\functions check_restore_diff -CALL scripts\functions end_test diff --git a/regress/win32/tests/usr-tape-root b/regress/win32/tests/usr-tape-root deleted file mode 100644 index 0f5002d928..0000000000 --- a/regress/win32/tests/usr-tape-root +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the /usr directory -# then restore it. -# -cwd=`pwd` -scripts/copy-tape-confs -scripts/cleanup-tape -echo "/usr" >/tmp/file-list - -echo " " -echo " " -echo " === Starting usr-tape-root test ===" -echo " " -echo " " - -bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -cd / -${cwd}/bin/testls -e ${cwd}/scripts/exclude-usr-test lib >${cwd}/tmp/original -cd ${cwd}/tmp/bacula-restores -${cwd}/bin/testls -e ${cwd}/scripts/exclude-usr-test lib >${cwd}/tmp/restored -cd ${cwd}/tmp -sed s%.*lib/kbd/consolefonts$%lib/kbd/consolefonts% original >1 -sort <1 >original -# -sed s%.*lib/kbd/consolefonts$%lib/kbd/consolefonts% restored >1 -sort <1 >restored -rm -f 1 -# -cd ${cwd} -diff tmp/original tmp/restored 2>&1 1>/dev/nul -if [ $? != 0 ] ; then - echo " " - echo " " - echo " ===== !!!! usr-tape-root failed !!!! ===== " - echo " ===== !!!! usr-tape-root failed !!!! ===== " >>test.out - echo " " -else - echo " ===== usr-tape-root OK ===== " - echo " ===== usr-tape-root OK ===== " >>test.out - scripts/cleanup -fi diff --git a/regress/win32/tests/verify-vol-tape b/regress/win32/tests/verify-vol-tape deleted file mode 100644 index c544bc6603..0000000000 --- a/regress/win32/tests/verify-vol-tape +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# then verify the catalog. -# -TestName="verify-vol-tape" -JobName=VerifyVol -. scripts/functions -set_debug 0 - -copy_tape_confs - -echo "${cwd}/build" >/tmp/file-list - -change_jobname NightlySave $JobName -start_test - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -setdebug level=1 storage=DDS-4 sd -label storage=DDS-4 volume=TestVolume001 pool=Default -run job=$JobName yes -wait -messages -@# -@# now do a verify volume -@# -@$out ${cwd}/tmp/original -run job=VerifyTape pool=Default -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula - -sleep 2 -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -grep "^ Termination: *Backup OK" tmp/log1.out 2>&1 >/dev/null -bstat=$? -grep "^ Termination: *Verify OK" ${cwd}/tmp/original 2>&1 >/dev/null -rstat=$? -dstat=0 -end_test diff --git a/regress/win32/tests/verify-vol-test.bscr b/regress/win32/tests/verify-vol-test.bscr deleted file mode 100644 index 8c73bbc59f..0000000000 --- a/regress/win32/tests/verify-vol-test.bscr +++ /dev/null @@ -1,18 +0,0 @@ -@@out@ nul -messages -@@out@ tmp/log1.out -setdebug level=1 storage=File sd -label storage=File volume=TestVolume001 -run job=@JobName@ yes -wait -messages -@# -@# now do a verify volume -@# -@@out@ @topdir@/tmp/original -run job=VerifyVolume -yes -wait -messages -@@out@ -quit diff --git a/regress/win32/tests/verify-vol-test.cmd b/regress/win32/tests/verify-vol-test.cmd deleted file mode 100644 index 377fb3428f..0000000000 --- a/regress/win32/tests/verify-vol-test.cmd +++ /dev/null @@ -1,29 +0,0 @@ -REM -REM Run a simple backup of the Bacula build directory -REM then verify the catalog. -REM -SET TestName=verify-vol-test -SET JobName=VerifyVol - -CALL scripts\functions set_debug 0 -CALL scripts\functions copy_test_confs - -ECHO %CD:\=/%/build >\tmp\file-list - -CALL scripts\functions change_jobname NightlySave %JobName% -CALL scripts\functions start_test - -sed -e "s;@JobName@;%JobName%;g" -e "s;@out@;%out%;g" -e "s;@topdir@;%CD:\=/%;g" tests\verify-vol-test.bscr >tmp\bconcmds - -CALL scripts\functions run_bacula - -bin\bsleep 2 -CALL scripts\functions check_for_zombie_jobs storage=File -CALL scripts\functions stop_bacula - -grep "^ Termination: *Backup OK" tmp\log1.out 2>&1 >nul -SET bstat=%ERRORLEVEL% -grep "^ Termination: *Verify OK" tmp\original 2>&1 >nul -SET rstat=%ERRORLEVEL% -SET dstat=0 -CALL scripts\functions end_test diff --git a/regress/win32/tests/weird-files-test b/regress/win32/tests/weird-files-test deleted file mode 100644 index 96fed89322..0000000000 --- a/regress/win32/tests/weird-files-test +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# then restore it. -# -TestName="weird-files-test" -JobName=wierd-files -. scripts/functions -set_debug 0 - -if test ! -d weird-files ; then - echo " " - echo "Weird files not configured. Test not run." - exit 0 -fi - -cwd=`pwd` -scripts/cleanup -scripts/copy-test-confs -change_jobname NightlySave $JobName -# -# Note, we save the weird-files directory twice on purpose -# because this causes problems with hard linked files -# that are only saved once. In 1.33, Bacula now deals -# with this situation. -# -echo "${cwd}/weird-files" >/tmp/file-list -echo "${cwd}/weird-files" >>/tmp/file-list - -start_test - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=File -TestVolume001 -run job=$JobName -yes -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=${cwd}/tmp/bacula-restores select storage=File -unmark * -mark * -done -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=File -stop_bacula - -${cwd}/bin/testls weird-files | sort >${cwd}/tmp/original -cd tmp/bacula-restores${cwd} -${cwd}/bin/testls weird-files | sort >${cwd}/tmp/restored -cd ${cwd} - -check_two_logs -diff ${cwd}/tmp/original ${cwd}/tmp/restored 2>&1 >/dev/null -dstat=$? -end_test diff --git a/regress/win32/tests/weird-files2-test b/regress/win32/tests/weird-files2-test deleted file mode 100644 index ec328155dd..0000000000 --- a/regress/win32/tests/weird-files2-test +++ /dev/null @@ -1,80 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# then restore it. -# -TestName="weird-files2-test" -JobName=weird-files2 -. scripts/functions -set_debug 0 - -if test ! -d weird-files ; then - echo " " - echo "weird files not configured. Test not run." - exit 0 -fi -cwd=`pwd` -scripts/cleanup -scripts/copy-test-confs -rm -rf weird-files2 -cp -Rp weird-files weird-files2 -echo "${cwd}/weird-files2" >/tmp/file-list - -change_jobname NightlySave $JobName -start_test - -bin/testls weird-files2 >${cwd}/tmp/original - -cat <tmp/bconcmds -@$out /dev/null -messages -@$out tmp/log1.out -label storage=File volume=TestVolume001 -run job=$JobName yes -wait -messages -@$out -quit -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=File -# -# Now mess up the a hard link, and a soft link -# -cd weird-files2 -rm -f hard-file2 -ln hard-file3 hard-file2 -rm -f soft-file2 -ln -s soft-file3 soft-file2 -cd ${cwd} -cat <tmp/bconcmds -@$out /dev/null -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where= storage=File -5 -unmark * -mark * -done -yes -wait -messages -@$out -quit -END_OF_DATA - -run_bconsole -check_for_zombie_jobs storage=File -stop_bacula - -bin/testls weird-files2 >${cwd}/tmp/restored - -check_two_logs -diff ${cwd}/tmp/original ${cwd}/tmp/restored 2>&1 >/dev/null -dstat=$? - -end_test diff --git a/regress/win32/tests/win32-backup-tape b/regress/win32/tests/win32-backup-tape deleted file mode 100644 index 3322da8d49..0000000000 --- a/regress/win32/tests/win32-backup-tape +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# to a tape then restore it, we do that twice to ensure that -# we can correctly append to a tape. -# -TestName="win32-backup-tape" -JobName=win32tape -. scripts/functions -set_debug 0 - -scripts/copy-win32-confs -scripts/cleanup-tape - -echo "${cwd}/build" >/tmp/file-list - -change_jobname $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default drive=0 -run job=$JobName yes -@sleep 10 -status storage=DDS-4 -@sleep 30 -messages -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=c:/tmp/bacula-restores select all storage=DDS-4 done -yes -wait -messages -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -check_two_logs -# no diff for now -dstat=0 -end_test diff --git a/regress/win32/tests/win32-to-linux-tape b/regress/win32/tests/win32-to-linux-tape deleted file mode 100644 index 780c7dfb8c..0000000000 --- a/regress/win32/tests/win32-to-linux-tape +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/sh -# -# Run a simple backup of the Bacula build directory -# to a tape then restore it, we do that twice to ensure that -# we can correctly append to a tape. -# -TestName="win32-to-linux-tape" -JobName=AutoLabel -. scripts/functions -set_debug 1 - -scripts/copy-win32-confs -scripts/cleanup-tape - -echo "${cwd}/build" >/tmp/file-list - -change_job $JobName -start_test - -cat <tmp/bconcmds -@output /dev/null -messages -@$out tmp/log1.out -label storage=DDS-4 volume=TestVolume001 slot=0 pool=Default drive=0 -run job=NightlySave yes -@sleep 10 -status storage=DDS-4 -@sleep 30 -messages -wait -messages -@# -@# now do a restore -@# -@$out tmp/log2.out -restore where=/tmp/bacula-restores client=Tibs select all storage=DDS-4 done -yes -wait -messages -END_OF_DATA - -run_bacula -check_for_zombie_jobs storage=DDS-4 -stop_bacula - -check_two_logs -# No diff for the moment -dstat=0 -end_test -- 2.39.5