61 lines
1.8 KiB
Python
61 lines
1.8 KiB
Python
directories = {
|
|
'/usr/local/lib/systemd/system': {
|
|
'purge': True,
|
|
'triggers': {
|
|
'action:systemd-reload',
|
|
},
|
|
},
|
|
'/var/lib/systemd-timer-monitored': {
|
|
'mode': '0777',
|
|
},
|
|
}
|
|
|
|
files = {
|
|
'/usr/local/sbin/systemd-timer-monitored': {
|
|
'mode': '0755',
|
|
},
|
|
'/usr/local/share/icinga/plugins/check_systemd_timer': {
|
|
'mode': '0755',
|
|
},
|
|
}
|
|
|
|
for timer, config in node.metadata.get('systemd-timers/timers', {}).items():
|
|
if config.get('delete', False):
|
|
action[f'systemd-timer_stop_timer_{timer}'] = {
|
|
# can't use svc_systemd: here, because that depends on
|
|
# action:systemd-reload
|
|
'command': f'systemctl disable --now {timer}.timer',
|
|
'precedes': {
|
|
# stop, then delete unit files
|
|
'directory:/usr/local/lib/systemd/system',
|
|
},
|
|
}
|
|
else:
|
|
files[f'/usr/local/lib/systemd/system/{timer}.timer'] = {
|
|
'source': 'template.timer',
|
|
'content_type': 'mako',
|
|
'context': {
|
|
'timer': timer,
|
|
'config': config,
|
|
},
|
|
'triggers': {
|
|
'action:systemd-reload',
|
|
},
|
|
}
|
|
files[f'/usr/local/lib/systemd/system/{timer}.service'] = {
|
|
'source': 'template.service',
|
|
'content_type': 'mako',
|
|
'context': {
|
|
'timer': timer,
|
|
'config': config,
|
|
},
|
|
'triggers': {
|
|
'action:systemd-reload',
|
|
},
|
|
}
|
|
svc_systemd[f'{timer}.timer'] = {
|
|
'needs': {
|
|
f'file:/usr/local/lib/systemd/system/{timer}.service',
|
|
f'file:/usr/local/lib/systemd/system/{timer}.timer',
|
|
},
|
|
}
|