51 lines
1.2 KiB
Python
51 lines
1.2 KiB
Python
size = node.metadata.get('systemd-swap')
|
|
assert isinstance(size, int)
|
|
|
|
actions = {
|
|
'stop_swap': {
|
|
'command': f'systemctl stop swapfile.swap',
|
|
'unless': f'rm /swapfile',
|
|
'triggered': True,
|
|
},
|
|
'create_swapfile': {
|
|
'command': f'dd if=/dev/zero of=/swapfile bs={size} count=1',
|
|
'unless': f'stat -c %s /swapfile | grep ^{size}$',
|
|
'preceded_by': {
|
|
'action:stop_swap',
|
|
},
|
|
'triggers': {
|
|
'action:initialize_swapfile',
|
|
'svc_systemd:swapfile.swap:restart',
|
|
},
|
|
},
|
|
'initialize_swapfile': {
|
|
'command': f'mkswap /swapfile',
|
|
'triggered': True,
|
|
'needs': {
|
|
'action:create_swapfile',
|
|
}
|
|
},
|
|
}
|
|
|
|
files = {
|
|
'/swapfile': {
|
|
'content_type': 'any',
|
|
'mode': '600',
|
|
'triggers': {
|
|
'svc_systemd:swapfile.swap:restart',
|
|
},
|
|
}
|
|
}
|
|
|
|
svc_systemd = {
|
|
'swapfile.swap': {
|
|
'preceded_by': {
|
|
'action:initialize_swapfile',
|
|
},
|
|
'needs': {
|
|
'file:/swapfile',
|
|
'action:initialize_swapfile',
|
|
'action:systemd-reload',
|
|
},
|
|
},
|
|
}
|