aboutsummaryrefslogtreecommitdiff
path: root/src/conf/py-sample
diff options
context:
space:
mode:
authorDavid Timber <dxdt@dev.snart.me>2022-05-13 14:45:59 +0800
committerDavid Timber <dxdt@dev.snart.me>2022-05-13 14:45:59 +0800
commit515bf01a057f0b40d89c6b7b247eb4e2fc19d1b7 (patch)
tree1a625d2a85b858227c3bd67955da3da90be49bda /src/conf/py-sample
parenta01c87416b241315a9268bb4eb5206ade8328069 (diff)
Impl ...
- launch.json: change debug cwd to the project root dir - Add subcmd "mods" - Docs - Tidy up sample and debug config files - Change core exec - 'dnf-list-instaled' -> 'rpm-list-installed' as dnf does not work on ro fs - Accept the exit code 1 from tar(allow live fs change) - Add the generic sample config - Fix 'run' subcmd not accepting empty task-id - Change module loading: modules are not required to have the 'backup_backends' var - Reduce required Python version by removing the use of match ... case - Fix 'exec-append' not taking 'env' into account - Remove use of exceptions from irrelevant packages - Fix unimpl methods of NullBackupBackend - Tidy up instantiation of raised exceptions - Change "include" behaviour - Relative config paths are now resolved like #include C preprocessor - Fix bug where "include" circular ref checked is not done with absolute paths of config files - Add own exception hierachy - aws-s3: change storage class only when "rot-storage-class" is different from "sink-storage-class"
Diffstat (limited to 'src/conf/py-sample')
-rw-r--r--src/conf/py-sample/conf.d/core.json41
-rw-r--r--src/conf/py-sample/sample.jsonc127
2 files changed, 168 insertions, 0 deletions
diff --git a/src/conf/py-sample/conf.d/core.json b/src/conf/py-sample/conf.d/core.json
new file mode 100644
index 0000000..46d3feb
--- /dev/null
+++ b/src/conf/py-sample/conf.d/core.json
@@ -0,0 +1,41 @@
+{
+ "execs": [
+ {
+ "id": "tar",
+ "argv": [ "/bin/tar", "--xattrs", "--selinux", "--warning=none", "-cf", "-" ],
+ "ec": "<2"
+ },
+ {
+ "id": "filter-xz-parallel",
+ "argv": [ "/bin/xz", "-T0" ]
+ },
+ {
+ "id": "filter-gzip-plain",
+ "argv": [ "/bin/gzip" ]
+ },
+ {
+ "id": "filter-zstd-plain",
+ "argv": [ "/bin/zstd" ]
+ },
+ {
+ "id": "filter-zstd-parallel",
+ "argv": [ "/bin/zstd", "-T0" ]
+ },
+ {
+ "id": "rpm-list-installed",
+ "argv": [ "/bin/rpm", "-qa" ]
+ },
+ {
+ "id": "dpkg-list-installed",
+ "argv": [ "/bin/dpkg-query", "-l" ]
+ },
+ {
+ "id": "lsblk-all-json",
+ "argv": [ "/bin/lsblk", "-JbOa" ]
+ },
+ {
+ "id": "os-release",
+ "argv": [ "/bin/cat", "/etc/os-release" ]
+ }
+ ]
+}
diff --git a/src/conf/py-sample/sample.jsonc b/src/conf/py-sample/sample.jsonc
new file mode 100644
index 0000000..f1c4501
--- /dev/null
+++ b/src/conf/py-sample/sample.jsonc
@@ -0,0 +1,127 @@
+{
+ "include": [ "/etc/palhm/conf.d/core.json" ],
+ // "modules": [ "aws" ],
+ "nb-workers": 0,
+ // "vl": 4,
+ "tasks": [
+ {
+ "id": "backup",
+ "type": "backup",
+ "backend": "null",
+ "backend-param": {},
+ "object-groups": [
+ { "id": "meta-run" },
+ {
+ "id": "data-dump",
+ "depends": [ "meta-run" ]
+ },
+ {
+ "id": "tar-root",
+ "depends": [ "data-dump" ]
+ }
+ ],
+ "objects": [
+ {
+ "path": "os-release",
+ "group": "meta-run",
+ "pipeline": [ { "type": "exec" , "exec-id": "os-release" } ]
+ },
+ {
+ "path": "pm-list.zstd",
+ "group": "meta-run",
+ "pipeline": [
+ { "type": "exec", "exec-id": "rpm-list-installed" },
+ { "type": "exec", "exec-id": "filter-zstd-plain" }
+ ]
+ },
+ {
+ "path": "lsblk.json.zstd",
+ "group": "meta-run",
+ "pipeline": [
+ { "type": "exec", "exec-id": "lsblk-all-json" },
+ { "type": "exec", "exec-id": "filter-zstd-plain" }
+ ]
+ },
+ // {
+ // "path": "db.sql.zstd",
+ // "group": "data-dump",
+ // "pipeline": [
+ // {
+ // "type": "exec-inline",
+ // "argv": [
+ // "/bin/mysqldump",
+ // "-uroot",
+ // "--all-databases"
+ // ]
+ // // "ec": "<=2" // don't fail when the DB is offline
+ // },
+ // { "type": "exec", "exec-id": "filter-zstd-parallel" }
+ // ]
+ // },
+ {
+ "path": "root.tar.zstd",
+ "group": "tar-root",
+ "pipeline": [
+ {
+ "type": "exec-append",
+ "exec-id": "tar",
+ "argv": [
+ "-C",
+ "/",
+ "etc",
+ "home",
+ "root",
+ "var"
+ ]
+ },
+ { "type": "exec", "exec-id": "filter-zstd-parallel" }
+ ]
+ }
+ ]
+ },
+ {
+ "id": "update",
+ "type": "routine",
+ "routine": [
+ {
+ "type": "exec-inline",
+ "argv": [ "/bin/dnf", "--refresh", "-yq", "update" ]
+ }
+ // {
+ // "type": "exec-inline",
+ // "argv": [ "/bin/sa-update" ]
+ // }
+ ]
+ },
+ {
+ "id": "reboot",
+ "type": "routine",
+ "routine": [
+ {
+/*
+ * Block SIGTERM from systemd/init.d so PALHM can exit gracefully after issuing
+ * reboot.
+ */
+ "type": "builtin",
+ "builtin-id": "sigmask",
+ "param": [
+ { "action": "block", "sig": [ "TERM" ] }
+ ]
+ },
+ {
+ "type": "exec-inline",
+ "argv": [ "/sbin/reboot" ]
+ }
+ ]
+ },
+ {
+ "id": "default",
+ "type": "routine",
+ "routine": [
+ { "type": "task", "task-id": "backup" },
+ { "type": "task", "task-id": "update" },
+ { "type": "task", "task-id": "reboot" }
+ ]
+ }
+ ]
+}