40 lines
1 KiB
Python
40 lines
1 KiB
Python
from re import sub
|
|
|
|
files['/etc/exports'] = {
|
|
'content_type': 'mako',
|
|
'triggers': {
|
|
'action:nfs_reload_shares',
|
|
},
|
|
}
|
|
|
|
files['/etc/default/nfs-kernel-server'] = {
|
|
'source': 'etc-default',
|
|
'triggers': {
|
|
'svc_systemd:nfs-server:restart',
|
|
},
|
|
}
|
|
|
|
actions['nfs_reload_shares'] = {
|
|
'command': 'exportfs -a',
|
|
'triggered': True,
|
|
}
|
|
|
|
svc_systemd['nfs-server'] = {}
|
|
|
|
if node.has_bundle('avahi-daemon'):
|
|
for path, shares in node.metadata.get('nfs-server/shares', {}).items():
|
|
create_avahi_file = False
|
|
for share_target, share_options in shares.items():
|
|
if ',insecure,' in f',{share_options},':
|
|
create_avahi_file = True
|
|
|
|
if create_avahi_file:
|
|
share_name_normalized = sub('[^a-z0-9-_]+', '_', path)
|
|
|
|
files[f'/etc/avahi/services/nfs{share_name_normalized}.service'] = {
|
|
'source': 'avahi.service',
|
|
'content_type': 'mako',
|
|
'context': {
|
|
'path': path,
|
|
},
|
|
}
|