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