Skip to content

Commit d697b9f

Browse files
committed
Split data backup and restore plugin namespaces
1 parent 00e9964 commit d697b9f

10 files changed

Lines changed: 388 additions & 358 deletions

File tree

docs/plugins/generated.md

Lines changed: 246 additions & 216 deletions
Large diffs are not rendered by default.

docs/plugins/index.md

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,6 @@ automax plugins list
1717
Current builtin plugins:
1818

1919
```text
20-
backup.directory
21-
backup.file
22-
backup.manifest
23-
backup.prune
24-
backup.restore
25-
backup.restore_preview
26-
backup.restore_verify
27-
backup.rotate
28-
backup.verify
2920
data.archive.tar.check
3021
data.archive.tar.create
3122
data.archive.tar.extract
@@ -34,6 +25,13 @@ data.archive.zip.check
3425
data.archive.zip.create
3526
data.archive.zip.extract
3627
data.archive.zip.list
28+
data.backup.directory.create
29+
data.backup.file.create
30+
data.backup.list
31+
data.backup.manifest.create
32+
data.backup.prune
33+
data.backup.rotate
34+
data.backup.verify
3735
data.compression.bzip2.check
3836
data.compression.bzip2.compress
3937
data.compression.bzip2.decompress
@@ -47,6 +45,9 @@ data.compression.zstd.check
4745
data.compression.zstd.compress
4846
data.compression.zstd.decompress
4947
data.download.url
48+
data.restore.apply
49+
data.restore.preview
50+
data.restore.verify
5051
data.transfer.download
5152
data.transfer.rsync
5253
data.transfer.sync

examples/runbooks/RUNBOOK_INDEX.md

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,41 +4,31 @@ Per-plugin runbooks only. No combined runbook, no reused runtime smoke flow, and
44

55
| File | Plugin/family | Substeps |
66
|---|---:|---:|
7-
| `runbooks/01-os-alternatives.check.yaml` | `os.alternatives` | 4 |
87
| `runbooks/02-apparmor.check.yaml` | `security.apparmor` | 8 |
9-
| `runbooks/03-data-archive.check.yaml` | `data.archive` | 6 |
8+
| `runbooks/03-data-archive.check.yaml` | `data.archive.tar` | 20 |
109
| `runbooks/05-auditd.check.yaml` | `security.audit` | 8 |
1110
| `runbooks/06-authselect.check.yaml` | `security.authselect` | 1 |
12-
| `runbooks/07-backup.check.yaml` | `backup` | 9 |
13-
| `runbooks/10-os-capability.check.yaml` | `os.capability` | 1 |
11+
| `runbooks/07-data-backup-restore.check.yaml` | `data.backup/data.restore` | 10 |
1412
| `runbooks/11-cert.check.yaml` | `security.pki.cert` | 11 |
15-
| `runbooks/12-os-time-chrony.check.yaml` | `os.time.chrony` | 5 |
1613
| `runbooks/13-system-cron.check.yaml` | `system.cron.entry` | 5 |
1714
| `runbooks/14-db.check.yaml` | `db` | 5 |
1815
| `runbooks/15-data-download.check.yaml` | `data.download` | 1 |
19-
| `runbooks/16-os-env.check.yaml` | `os.env` | 5 |
20-
| `runbooks/17-facts.check.yaml` | `facts/os` | 6 |
16+
| `runbooks/17-facts.check.yaml` | `facts` | 6 |
2117
| `runbooks/19-firewalld.check.yaml` | `network.firewall.firewalld` | 11 |
2218
| `runbooks/20-fs.check.yaml` | `fs.acl` | 31 |
2319
| `runbooks/22-group.check.yaml` | `identity.group` | 5 |
24-
| `runbooks/24-os-hostname.check.yaml` | `os.hostname` | 3 |
25-
| `runbooks/25-os-hosts.check.yaml` | `os.hosts` | 4 |
2620
| `runbooks/26-http.check.yaml` | `http` | 3 |
2721
| `runbooks/27-iptables.check.yaml` | `network.firewall.iptables` | 9 |
2822
| `runbooks/28-system-journal.check.yaml` | `system.journal` | 2 |
2923
| `runbooks/29-system-kernel.check.yaml` | `system.kernel.boot_param` | 8 |
30-
| `runbooks/30-os-limits.check.yaml` | `os.limits` | 1 |
3124
| `runbooks/31-local.check.yaml` | `local` | 1 |
3225
| `runbooks/32-system-log.check.yaml` | `system.log` | 2 |
33-
| `runbooks/33-os-login.check.yaml` | `os.login` | 3 |
3426
| `runbooks/35-mail.check.yaml` | `mail` | 1 |
3527
| `runbooks/38-network.check.yaml` | `network.link` | 14 |
3628
| `runbooks/39-nftables.check.yaml` | `network.firewall.nftables` | 6 |
3729
| `runbooks/40-pam.check.yaml` | `security.pam` | 14 |
3830
| `runbooks/41-password.check.yaml` | `security.password` | 1 |
39-
| `runbooks/42-os-package.check.yaml` | `os.package` | 27 |
4031
| `runbooks/43-pki.check.yaml` | `security.pki.trust` | 3 |
41-
| `runbooks/44-os-platform.check.yaml` | `os.platform` | 1 |
4232
| `runbooks/45-plugin.check.yaml` | `plugin` | 1 |
4333
| `runbooks/46-system-process.check.yaml` | `system.process` | 5 |
4434
| `runbooks/47-remote.check.yaml` | `remote` | 1 |
@@ -52,8 +42,6 @@ Per-plugin runbooks only. No combined runbook, no reused runtime smoke flow, and
5242
| `runbooks/57-system.check.yaml` | `system` | 1 |
5343
| `runbooks/58-system-service.check.yaml` | `system.systemd` | 12 |
5444
| `runbooks/59-system-systemd.check.yaml` | `system.systemd` | 4 |
55-
| `runbooks/60-os-time.check.yaml` | `os.time` | 7 |
56-
| `runbooks/61-os-tool.check.yaml` | `os.tool` | 2 |
5745
| `runbooks/62-data-transfer.check.yaml` | `data.transfer` | 4 |
5846
| `runbooks/63-udev.check.yaml` | `udev` | 7 |
5947
| `runbooks/64-ufw.check.yaml` | `network.firewall.ufw` | 6 |

examples/runbooks/runbooks/07-backup.check.yaml

Lines changed: 0 additions & 65 deletions
This file was deleted.
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Check-only plugin catalog. Run with automax run --check, not as a normal runtime job.
2+
apiVersion: automax.io/v1
3+
kind: Job
4+
metadata:
5+
name: plugin-smoke-check-data-backup-restore
6+
tasks:
7+
- id: data_backup_restore
8+
description: Check-mode catalog for data backup and restore plugins.
9+
targets: all
10+
tags: [all-functions, check, data, backup, restore]
11+
steps:
12+
- id: catalog
13+
substeps:
14+
- id: data_backup_directory_create
15+
use: data.backup.directory.create
16+
with: {src: /tmp/source, dest: /tmp/dest}
17+
- id: data_backup_file_create
18+
use: data.backup.file.create
19+
with: {src: /tmp/source, dest: /tmp/dest}
20+
- id: data_backup_list
21+
use: data.backup.list
22+
with: {path: /tmp/automax-demo}
23+
- id: data_backup_manifest_create
24+
use: data.backup.manifest.create
25+
with: {root: /tmp/automax-demo, dest: /tmp/automax-manifest.txt}
26+
- id: data_backup_prune
27+
use: data.backup.prune
28+
with: {path: /tmp/automax-demo, confirm: true, keep: 1, patterns: ['*.old']}
29+
- id: data_backup_rotate
30+
use: data.backup.rotate
31+
with: {path: /tmp/automax-demo, keep: 1, confirm: true}
32+
- id: data_backup_verify
33+
use: data.backup.verify
34+
with: {path: /tmp/automax-demo}
35+
- id: data_restore_apply
36+
use: data.restore.apply
37+
with: {src: /tmp/source, dest: /tmp/dest, confirm: true}
38+
- id: data_restore_preview
39+
use: data.restore.preview
40+
with: {src: /tmp/source, dest: /tmp/dest}
41+
- id: data_restore_verify
42+
use: data.restore.verify
43+
with: {src: /tmp/source, dest: /tmp/dest}

src/automax/plugins/audit.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -138,13 +138,13 @@ def sample_params(plugin: Any) -> dict[str, Any]:
138138
if plugin.name == "db.health":
139139
params["engine"] = "sqlite"
140140
params["connection"] = {"path": "/tmp/automax.sqlite"}
141-
if plugin.name in {"backup.prune", "backup.restore", "backup.rotate", "network.firewall.iptables.restore", "storage.lvm.lv.remove", "storage.lvm.pv.remove", "storage.lvm.vg.remove"}:
141+
if plugin.name in {"data.backup.prune", "data.restore.apply", "data.backup.rotate", "network.firewall.iptables.restore", "storage.lvm.lv.remove", "storage.lvm.pv.remove", "storage.lvm.vg.remove"}:
142142
params["confirm"] = True
143143
if plugin.name == "plugin.requirements":
144144
params["plugin"] = "data.transfer.rsync"
145-
if plugin.name == "backup.directory":
145+
if plugin.name == "data.backup.directory.create":
146146
params["compression"] = "none"
147-
if plugin.name == "backup.verify":
147+
if plugin.name == "data.backup.verify":
148148
params["checksum"] = "sha256"
149149
if plugin.name.startswith("data.compression.") and plugin.name.endswith(".compress"):
150150
params["dest"] = "/tmp/automax-demo.gz"

0 commit comments

Comments
 (0)