From 275c6eb22b32313e17913915a2bbb2f7d6f87621 Mon Sep 17 00:00:00 2001 From: mwiegand Date: Mon, 5 Jul 2021 23:44:40 +0200 Subject: [PATCH] wip --- bundles/systemd-timers/items.py | 21 +++++++++++++++++++++ bundles/systemd-timers/metadata.py | 27 +++++++++++++++++++++++++++ groups/os/linux.py | 1 + nodes/htz.mails.py | 6 ++++++ 4 files changed, 55 insertions(+) create mode 100644 bundles/systemd-timers/items.py create mode 100644 bundles/systemd-timers/metadata.py diff --git a/bundles/systemd-timers/items.py b/bundles/systemd-timers/items.py new file mode 100644 index 0000000..3012f75 --- /dev/null +++ b/bundles/systemd-timers/items.py @@ -0,0 +1,21 @@ +for name, config in node.metadata.get('systemd-timers').items(): + files[f'/etc/systemd/system/{name}.timer'] = { + 'content': repo.libs.systemd.generate_unitfile({ + 'Unit':{ + 'Description': f'{name} timer', + }, + 'Timer': { + 'OnCalendar': config['when'], + 'Unit': f'{name}.service', + }, + 'Install': { + 'WantedBy': 'multi-user.target', + } + }), + 'triggers': [ + 'action:systemd-reload', + f'svc_systemd:{name}:restart', + ], + } + + svc_systemd[f'{name}.timer'] = {} diff --git a/bundles/systemd-timers/metadata.py b/bundles/systemd-timers/metadata.py new file mode 100644 index 0000000..6102abf --- /dev/null +++ b/bundles/systemd-timers/metadata.py @@ -0,0 +1,27 @@ +defaults = { + 'systemd-timers': {}, +} + + +@metadata_reactor.provides( + 'systemd/services', +) +def services(metadata): + return { + 'systemd': { + 'services': { + name: { + 'content': { + 'Unit':{ + 'Description': f'{name} timer service', + }, + 'Service': { + 'ExecStart': config['command'], + }, + }, + 'enabled': False, + 'running': False, + } for name, config in metadata.get('systemd-timers').items() + }, + }, + } diff --git a/groups/os/linux.py b/groups/os/linux.py index 0f8f0d7..b632300 100644 --- a/groups/os/linux.py +++ b/groups/os/linux.py @@ -6,5 +6,6 @@ 'network', 'systemd', 'systemd-networkd', + 'systemd-timers', ], } diff --git a/nodes/htz.mails.py b/nodes/htz.mails.py index 6b47232..c1eb523 100644 --- a/nodes/htz.mails.py +++ b/nodes/htz.mails.py @@ -16,6 +16,12 @@ 'zfs', ], 'metadata': { + 'systemd-timers': { + 'test1': { + 'when': 'weekly', + 'command': '/bin/ls', + }, + }, 'nextcloud': { 'hostname': 'cloud.sublimity.de', 'version': '21.0.0',