bundlewrap/bundles/systemd-timers/items.py

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',
},
}