54 lines
1.4 KiB
Python
54 lines
1.4 KiB
Python
size = node.metadata.get('systemd-swap')
|
|
|
|
actions = {
|
|
'stop_swap': {
|
|
'command': f'systemctl stop swapfile.swap',
|
|
'unless': f'! systemctl is-active swapfile.swap',
|
|
'triggered': True,
|
|
},
|
|
'remove_swapfile': {
|
|
'command': f'rm /swapfile',
|
|
'unless': f'! test -e /swapfile',
|
|
'triggered': True,
|
|
'needs': {
|
|
'action:stop_swap',
|
|
},
|
|
},
|
|
'create_swapfile': {
|
|
'command': f'fallocate -l {size} /swapfile',
|
|
'unless': f'stat -c %s /swapfile | grep ^{size}$',
|
|
'preceded_by': {
|
|
'action:stop_swap',
|
|
'action:remove_swapfile',
|
|
},
|
|
'triggers': {
|
|
'svc_systemd:swapfile.swap:restart',
|
|
},
|
|
},
|
|
'swapfile_mode': {
|
|
'command': f'chmod 600 /swapfile',
|
|
'unless': f'stat -c "%a" /swapfile | grep -q "^600$"',
|
|
'needs': {
|
|
'action:create_swapfile',
|
|
},
|
|
'triggers': {
|
|
'svc_systemd:swapfile.swap:restart',
|
|
},
|
|
},
|
|
'initialize_swapfile': {
|
|
'command': f'mkswap /swapfile',
|
|
'unless': 'blkid -o value -s TYPE /swapfile | grep -q "^swap$"',
|
|
'needs': {
|
|
'action:swapfile_mode',
|
|
}
|
|
},
|
|
}
|
|
|
|
svc_systemd = {
|
|
'swapfile.swap': {
|
|
'needs': {
|
|
'action:initialize_swapfile',
|
|
'action:systemd-reload',
|
|
},
|
|
},
|
|
}
|