-
v1.2.0
StableAll checks were successfulBuild and Publish Package / build-and-publish (push) Successful in 5sreleased this
2026-03-24 22:29:19 +00:00 | 17 commits to master since this releaseOverview
v1.2.0 delivers full BWeb Management Suite compatibility, including the Next Jobs page that previously required a live Director. A new
bconsole-mockwrapper intercepts BWeb's bconsole calls and answers them via the mock REST API, with no Bacula infrastructure required. Alongside this, job history generation has been redesigned around a schedule-based model that produces strictly ascending JobId/StartTime pairs — matching real Director behaviour and fixing a class of BWeb display issues. Wire compatibility is hardened throughout. No breaking API changes.Highlights
bconsole-mock wrapper — A new stdlib-only script (
scripts/bconsole-mock) reads bconsole commands from stdin and returns wire-compatible text output by calling the mock REST API internally. This is the bridge that makes BWeb's Next Jobs page (action=next_job) work without a real Director. Handled commands includeshow schedule,show job,.api 2,.status dir scheduled, and the*prompt that BWeb'sBconsole.pmparser expects.Automated BWeb installer —
install-bweb-scheduled.shdeploysbconsole-mockto/opt/bacula/bin/bconsole-mock, writes credentials to/opt/bacula/etc/bconsole-mock.env, and patchesbweb.confin a single step. The existinginstall-bweb-mock.shworkflow is unchanged for sites that do not need the Next Jobs page.Schedule-based job history — Job timestamps are no longer scattered randomly across the catalog. Jobs are now created oldest-first at regular intervals going back
history_days, so JobId and StartTime are always strictly correlated. This matches real Bacula Director behaviour and is a prerequisite for BWeb's scheduled jobs table. Three newconfig.yamlparameters control the model:history_days(default: 7),job_interval_hours(default: 24), andjitter(default: 0.1).Wire compatibility hardening —
POST /status/directoris now routed.?jobs=scheduledis added as a dedicated endpoint. Scheduled jobs responses use the correctschedtimeanddatekey names..api 2JSON mode and.status dir scheduledkey=value output match BWeb parser expectations exactly. JobIds are assigned chronologically across all clients. The simulated fleet now carries realistic mixed client OS versions and a wire-compatibleunameformat.Bug fixes —
sync_mock_to_sqlite.pynow selects recent jobs byStartTimeinstead ofJobId, since a higher JobId no longer implies a newer job under schedule-based generation. A byte-range fix corrects HTTP response handling for range requests.Supported API Surface
Category Endpoints Catalog /cat/Client,/cat/Job,/cat/JobTotals,/cat/JobLog,/cat/Pool,/cat/StorageCommands /cmd/run,/cmd/restore,/cmd/cancel,/cmd/estimate,/cmd/label,/cmd/purge,/cmd/pruneStatus /status/director(GET + POST),/status/client/,?jobs=scheduledResources /res/director,/res/filedaemon,/res/storagedaemonAuth /oauth/tokenMock control /mock/health,/mock/initialize,/mock/resetbconsole bconsole-mockwrapper (.api 2,.status dir scheduled,show schedule,show job)System Requirements
Component Minimum OS Debian 13, Other Platforms untested Python 3.8+ Disk ~100 MB Memory 512 MB (1 GB recommended for 500+ clients) Port 9101 (configurable) All Python dependencies are installed automatically in a virtual environment during setup.
Installation
sudo ./install.sh sudo systemctl start bacula-mock bacula-mock init 100 0.25 bacula-mock smoke-testBWeb Next Jobs (optional):
sudo ./install-bweb-scheduled.shVerifying the Package
Release packages are GPG-signed. Import the public key, then verify with:
gpg --verify BaculaMockServer-v1.2.0.tar.gz.asc BaculaMockServer-v1.2.0.tar.gz sha256sum -c BaculaMockServer-v1.2.0.tar.gz.sha256See the README for full verification instructions and download URLs.
Documentation
- Implementation Guide — Bacula-Mock-Server-Manual.md
- End User Guide — Bacula_Mock_EndUser_Guide.md
- BWeb Integration Guide — BWeb_Mock_Server_Integration_Guide.md
- Usage Examples — USAGE.md
Known Limitations
- This is a mock server — it does not perform actual backups or restores.
- Self-signed TLS certificates require clients to disable certificate verification or trust the generated CA.
- Very large client counts (1,000+) may require tuning memory allocation beyond the default 512 MB.
bconsole-mockimplements the subset of bconsole commands used by BWeb; full bconsole emulation is out of scope.
"Bacula" is a registered trademark of Bacula Systems SA. This software is not affiliated with or endorsed by Bacula Systems SA.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads