aboutsummaryrefslogtreecommitdiff
path: root/src/conf/py-debug
diff options
context:
space:
mode:
authorDavid Timber <dxdt@dev.snart.me>2022-04-27 17:40:41 +0800
committerDavid Timber <dxdt@dev.snart.me>2022-04-27 17:40:41 +0800
commita01c87416b241315a9268bb4eb5206ade8328069 (patch)
tree2aff1601c93d20c88ec505b8bc183b9fcbb847dd /src/conf/py-debug
Initial commit
Diffstat (limited to 'src/conf/py-debug')
-rw-r--r--src/conf/py-debug/aws.sample.jsonc160
-rw-r--r--src/conf/py-debug/conf.d/core.jsonc44
-rw-r--r--src/conf/py-debug/localfs.sample.jsonc157
-rw-r--r--src/conf/py-debug/null.sample.jsonc140
4 files changed, 501 insertions, 0 deletions
diff --git a/src/conf/py-debug/aws.sample.jsonc b/src/conf/py-debug/aws.sample.jsonc
new file mode 100644
index 0000000..46ad562
--- /dev/null
+++ b/src/conf/py-debug/aws.sample.jsonc
@@ -0,0 +1,160 @@
+// PALHM Instance Config
+{
+ "include": [ "conf/py-debug/conf.d/core.jsonc" ],
+ "modules": [ "aws" ],
+ "nb-workers": 0, // assumed $(nproc) - default
+ // "nb-workers": 1, // to disable concurrent task despatch
+ // To unlimit the number of workers.
+ // Does not fail on resource alloc failure.
+ // "nb-workers": -1,
+ "vl": 4,
+ "tasks": [
+ {
+ "id": "backup",
+ "type": "backup",
+ "backend": "aws-s3",
+ "backend-param": {
+ // "profile": "default",
+ "bucket": "palhm.test",
+ "root": "/palhm/backup",
+ "prefix": {
+ "type": "default"
+ // "type": "iso8601",
+ // "timespec": "seconds",
+ // "tz": "utc"
+ },
+ // "sink-storage-class": "STANDARD_IA",
+ // "rot-storage-class": "ONEZONE_IA",
+ "nb-copy-limit": 2, // or Infinity assumed(not in JSON spec)
+ "root-size-limit": "Infinity" // or Infinity assumed
+ },
+ "object-groups": [
+ { "id": "pre-start" },
+ {
+ "id": "data-dump",
+ "depends": [ "pre-start" ]
+ },
+ {
+ "id": "tar-media-0",
+ "depends": [ "data-dump" ]
+ },
+ {
+ "id": "tar-media-1",
+ "depends": [ "data-dump" ]
+ }
+ ],
+ "objects": [
+ {
+ "path": "pm-list.gz",
+ "group": "pre-start",
+ "pipeline": [
+ { "type": "exec", "exec-id": "dnf-list-installed" },
+ { "type": "exec", "exec-id": "filter-gzip-plain" }
+ ]
+ },
+ {
+ "path": "lsblk.json.gz",
+ "group": "pre-start",
+ "pipeline": [
+ {
+ "type": "exec-append",
+ "exec-id": "lsblk-all-json",
+ "argv": [ "-a" ]
+ },
+ { "type": "exec", "exec-id": "filter-gzip-plain" }
+ ]
+ },
+ {
+ "path": "random-dump.sql.xz",
+ "group": "data-dump",
+ "pipeline": [
+ {
+ "type": "exec-inline",
+ "argv": [
+ "/bin/dd",
+ "if=/dev/urandom",
+ "bs=4096",
+ "count=512",
+ "status=none"
+ ]
+ },
+ { "type": "exec", "exec-id": "filter-xz-parallel" }
+ ]
+ },
+ {
+ "path": "random-dump.0.xz",
+ "group": "tar-media-0",
+ "pipeline": [
+ {
+ "type": "exec-inline",
+ "argv": [
+ "/bin/dd",
+ "if=/dev/zero",
+ "bs=4096",
+ "count=512",
+ "status=none"
+ ]
+ },
+ { "type": "exec", "exec-id": "filter-xz-parallel" }
+ ]
+ },
+ {
+ "path": "random-dump.1.xz",
+ "group": "tar-media-1",
+ "pipeline": [
+ {
+ "type": "exec-inline",
+ "argv": [
+ "/bin/dd",
+ "if=/dev/zero",
+ "bs=4096",
+ "count=512",
+ "status=none"
+ ]
+ },
+ { "type": "exec", "exec-id": "filter-xz-parallel" }
+ ]
+ }
+ ]
+ },
+ {
+ "id": "update",
+ "type": "routine",
+ "routine": [
+ {
+ "type": "exec-inline",
+ "argv": [ "/bin/echo", "0" ]
+ },
+ {
+ "type": "exec-inline",
+ "argv": [ "/bin/sleep", "1" ]
+ },
+ {
+ "type": "exec-inline",
+ "argv": [ "/bin/echo", "1" ]
+ }
+ ]
+ },
+ {
+ "id": "default",
+ "type": "routine",
+ "routine": [
+ { "type": "task", "task-id": "backup" },
+ { "type": "task", "task-id": "update" },
+ {
+ // Block SIGTERM from systemd/init.d so the program is not
+ // affected by the reboot command.
+ "type": "builtin",
+ "builtin-id": "sigmask",
+ "param": [
+ { "action": "block", "sig": [ "TERM" ] }
+ ]
+ },
+ {
+ "type": "exec-inline",
+ "argv": [ "/bin/true" ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/conf/py-debug/conf.d/core.jsonc b/src/conf/py-debug/conf.d/core.jsonc
new file mode 100644
index 0000000..4afe7f5
--- /dev/null
+++ b/src/conf/py-debug/conf.d/core.jsonc
@@ -0,0 +1,44 @@
+// PALHM Core Config
+{
+ "execs": [
+ // {
+ // "id": "Exec ID",
+ // "argv": [ "cmd", "--option1=opt1_val", "-o", "opt2_val" ],
+ // "env": { "NAME": "VAL" },
+ // "ec": "0", // this is assumed
+ // "ec": "0-127", // inclusive range (not terminated by a signal)
+ // "ec": "<1", // range (only 0)
+ // "ec": "<=1", // range (0 and 1)
+ // "ec": ">0", // range (always fail)
+ // "ec": ">=0", // range (only 0)
+ // "vl-stderr": 1 // verbosity level of stderr produced by this process
+ // verbosity level of stderr produced by this process. Ignored if used
+ // as part of pipeline
+ // "vl-stdout": 2
+ // },
+ {
+ "id": "tar",
+ "argv": [ "/usr/bin/tar", "--xattrs", "--selinux" ]
+ },
+ {
+ "id": "filter-xz-parallel",
+ "argv": [ "/usr/bin/xz", "-T0" ]
+ },
+ {
+ "id": "filter-gzip-plain",
+ "argv": [ "/usr/bin/gzip" ]
+ },
+ {
+ "id": "filter-zstd-plain",
+ "argv": [ "/usr/bin/zstd" ]
+ },
+ {
+ "id": "dnf-list-installed",
+ "argv": [ "/usr/bin/dnf", "-yq", "list", "installed" ]
+ },
+ {
+ "id": "lsblk-all-json",
+ "argv": [ "/usr/bin/lsblk", "-JbOa" ]
+ }
+ ]
+}
diff --git a/src/conf/py-debug/localfs.sample.jsonc b/src/conf/py-debug/localfs.sample.jsonc
new file mode 100644
index 0000000..ec12808
--- /dev/null
+++ b/src/conf/py-debug/localfs.sample.jsonc
@@ -0,0 +1,157 @@
+// PALHM Instance Config
+{
+ "include": [ "conf/py-debug/conf.d/core.jsonc" ],
+ "nb-workers": 0, // assumed $(nproc) - default
+ // "nb-workers": 1, // to disable concurrent task despatch
+ // To unlimit the number of workers.
+ // Does not fail on resource alloc failure.
+ // "nb-workers": -1,
+ "vl": 4,
+ "tasks": [
+ {
+ "id": "backup",
+ "type": "backup",
+ "backend": "localfs",
+ "backend-param": {
+ "root": "/var/tmp/palhm-backup-root",
+ "prefix": {
+ "type": "default"
+ // "type": "iso8601",
+ // "timespec": "seconds",
+ // "tz": "utc"
+ },
+ // "dmode": "755",
+ // "fmode": "644",
+ "nb-copy-limit": 2,
+ "root-size-limit": "Infinity"
+ },
+ "object-groups": [
+ { "id": "pre-start" },
+ {
+ "id": "data-dump",
+ "depends": [ "pre-start" ]
+ },
+ {
+ "id": "tar-media-0",
+ "depends": [ "data-dump" ]
+ },
+ {
+ "id": "tar-media-1",
+ "depends": [ "data-dump" ]
+ }
+ ],
+ "objects": [
+ {
+ "path": "pm-list.gz",
+ "group": "pre-start",
+ "pipeline": [
+ { "type": "exec", "exec-id": "dnf-list-installed" },
+ { "type": "exec", "exec-id": "filter-gzip-plain" }
+ ]
+ },
+ {
+ "path": "lsblk.json.gz",
+ "group": "pre-start",
+ "pipeline": [
+ {
+ "type": "exec-append",
+ "exec-id": "lsblk-all-json",
+ "argv": [ "-a" ]
+ },
+ { "type": "exec", "exec-id": "filter-gzip-plain" }
+ ]
+ },
+ {
+ "path": "random-dump.sql.xz",
+ "group": "data-dump",
+ "pipeline": [
+ {
+ "type": "exec-inline",
+ "argv": [
+ "/bin/dd",
+ "if=/dev/urandom",
+ "bs=4096",
+ "count=512",
+ "status=none"
+ ]
+ },
+ { "type": "exec", "exec-id": "filter-xz-parallel" }
+ ]
+ },
+ {
+ "path": "random-dump.0.xz",
+ "group": "tar-media-0",
+ "pipeline": [
+ {
+ "type": "exec-inline",
+ "argv": [
+ "/bin/dd",
+ "if=/dev/zero",
+ "bs=4096",
+ "count=512",
+ "status=none"
+ ]
+ },
+ { "type": "exec", "exec-id": "filter-xz-parallel" }
+ ]
+ },
+ {
+ "path": "random-dump.1.xz",
+ "group": "tar-media-1",
+ "pipeline": [
+ {
+ "type": "exec-inline",
+ "argv": [
+ "/bin/dd",
+ "if=/dev/zero",
+ "bs=4096",
+ "count=512",
+ "status=none"
+ ]
+ },
+ { "type": "exec", "exec-id": "filter-xz-parallel" }
+ ]
+ }
+ ]
+ },
+ {
+ "id": "update",
+ "type": "routine",
+ "routine": [
+ {
+ "type": "exec-inline",
+ "argv": [ "/bin/echo", "0" ]
+ },
+ {
+ "type": "exec-inline",
+ "argv": [ "/bin/sleep", "1" ]
+ },
+ {
+ "type": "exec-inline",
+ "argv": [ "/bin/echo", "1" ]
+ }
+ ]
+ },
+ {
+ "id": "default",
+ "type": "routine",
+ "routine": [
+ { "type": "task", "task-id": "backup" },
+ { "type": "task", "task-id": "update" },
+ {
+ // Block SIGTERM from systemd/init.d so the program is not
+ // affected by the reboot command.
+ "type": "builtin",
+ "builtin-id": "sigmask",
+ "param": [
+ { "action": "block", "sig": [ "TERM" ] }
+ ]
+ },
+ {
+ "type": "exec-inline",
+ "argv": [ "/bin/true" ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/conf/py-debug/null.sample.jsonc b/src/conf/py-debug/null.sample.jsonc
new file mode 100644
index 0000000..a83de95
--- /dev/null
+++ b/src/conf/py-debug/null.sample.jsonc
@@ -0,0 +1,140 @@
+// PALHM Instance Config
+{
+ "include": [ "conf/py-debug/conf.d/core.jsonc" ],
+ "nb-workers": 1,
+ "vl": 3,
+ "tasks": [
+ {
+ "id": "backup",
+ "type": "backup",
+ "backend": "null",
+ "object-groups": [
+ { "id": "pre-start" },
+ {
+ "id": "data-dump",
+ "depends": [ "pre-start" ]
+ },
+ {
+ "id": "tar-media-0",
+ "depends": [ "data-dump" ]
+ },
+ {
+ "id": "tar-media-1",
+ "depends": [ "data-dump" ]
+ }
+ ],
+ "objects": [
+ {
+ "path": "pm-list.gz",
+ "group": "pre-start",
+ "pipeline": [
+ { "type": "exec", "exec-id": "dnf-list-installed" },
+ { "type": "exec", "exec-id": "filter-gzip-plain" }
+ ]
+ },
+ {
+ "path": "lsblk.json.gz",
+ "group": "pre-start",
+ "pipeline": [
+ {
+ "type": "exec-append",
+ "exec-id": "lsblk-all-json",
+ "argv": [ "-a" ]
+ },
+ { "type": "exec", "exec-id": "filter-gzip-plain" }
+ ]
+ },
+ {
+ "path": "random-dump.sql.xz",
+ "group": "data-dump",
+ "pipeline": [
+ {
+ "type": "exec-inline",
+ "argv": [
+ "/bin/dd",
+ "if=/dev/urandom",
+ "bs=4096",
+ "count=512",
+ "status=none"
+ ]
+ },
+ { "type": "exec", "exec-id": "filter-xz-parallel" }
+ ]
+ },
+ {
+ "path": "random-dump.0.xz",
+ "group": "tar-media-0",
+ "pipeline": [
+ {
+ "type": "exec-inline",
+ "argv": [
+ "/bin/dd",
+ "if=/dev/zero",
+ "bs=4096",
+ "count=512",
+ "status=none"
+ ]
+ },
+ { "type": "exec", "exec-id": "filter-xz-parallel" }
+ ]
+ },
+ {
+ "path": "random-dump.1.xz",
+ "group": "tar-media-1",
+ "pipeline": [
+ {
+ "type": "exec-inline",
+ "argv": [
+ "/bin/dd",
+ "if=/dev/zero",
+ "bs=4096",
+ "count=512",
+ "status=none"
+ ]
+ },
+ { "type": "exec", "exec-id": "filter-xz-parallel" }
+ ]
+ }
+ ]
+ },
+ {
+ "id": "update",
+ "type": "routine",
+ "routine": [
+ {
+ "type": "exec-inline",
+ "argv": [ "/bin/echo", "0" ]
+ },
+ {
+ "type": "exec-inline",
+ "argv": [ "/bin/sleep", "1" ]
+ },
+ {
+ "type": "exec-inline",
+ "argv": [ "/bin/echo", "1" ]
+ }
+ ]
+ },
+ {
+ "id": "default",
+ "type": "routine",
+ "routine": [
+ { "type": "task", "task-id": "backup" },
+ { "type": "task", "task-id": "update" },
+ {
+ // Block SIGTERM from systemd/init.d so the program is not
+ // affected by the reboot command.
+ "type": "builtin",
+ "builtin-id": "sigmask",
+ "param": [
+ { "action": "block", "sig": [ "TERM" ] }
+ ]
+ },
+ {
+ "type": "exec-inline",
+ "argv": [ "/bin/true" ]
+ }
+ ]
+ }
+ ]
+}