56 lines
1.5 KiB
Python
56 lines
1.5 KiB
Python
from bundlewrap.utils.dicts import merge_dict
|
|
|
|
files = {
|
|
'/etc/systemd/journald.conf.d/managed.conf': {
|
|
'content': repo.libs.systemd.generate_unitfile({
|
|
'Jorunal': node.metadata.get('systemd/journald.conf'),
|
|
}),
|
|
'triggers': {
|
|
'svc_systemd:systemd-journald:restart',
|
|
},
|
|
}
|
|
}
|
|
|
|
svc_systemd = {
|
|
'systemd-journald': {},
|
|
}
|
|
|
|
actions = {
|
|
'systemd-reload': {
|
|
'command': 'systemctl daemon-reload',
|
|
'cascade_skip': False,
|
|
'triggered': True,
|
|
},
|
|
}
|
|
|
|
for name, unit in node.metadata.get('systemd/units').items():
|
|
extension = name.split('.')[-1]
|
|
|
|
if extension in ['netdev', 'network']:
|
|
path = f'/etc/systemd/network/{name}'
|
|
dependencies = {
|
|
'triggers': [
|
|
'svc_systemd:systemd-networkd:restart',
|
|
],
|
|
}
|
|
elif extension in ['timer', 'service', 'mount']:
|
|
path = f'/etc/systemd/system/{name}'
|
|
dependencies = {
|
|
'triggers': [
|
|
"action:systemd-reload",
|
|
],
|
|
}
|
|
if name in node.metadata.get('systemd/services'):
|
|
dependencies['triggers'].append(f'svc_systemd:{name}:restart')
|
|
|
|
files[path] = {
|
|
'content': repo.libs.systemd.generate_unitfile(unit),
|
|
**dependencies,
|
|
}
|
|
|
|
for name, config in node.metadata.get('systemd/services').items():
|
|
svc_systemd[name] = merge_dict(config, {
|
|
'needs': [
|
|
'action:systemd-reload',
|
|
],
|
|
})
|