for mount, data in node.metadata.get('nfs-client/mounts',{}).items(): data['mount'] = mount data['mount_options'] = set(data.get('mount_options', set())) unitname = data.get('mountpoint','')[1:].replace('-','\\x2d').replace('/','-') directories[data['mountpoint']] = { 'owner': None, 'group': None, 'mode': None, } for parameter in ['mode', 'owner', 'group']: if parameter in data: directories[data['mountpoint']][parameter] = data[parameter] if data.get('automount', True): data['mount_options'].add('x-systemd.automount') files['/etc/systemd/system/{}.automount'.format(unitname)] = { 'mode': "0644", 'owner': "root", 'group': "root", 'source': "nfs.automount", 'content_type': 'mako', 'context': data, 'triggers': { "action:systemd-reload", }, } svc_systemd['{}.automount'.format(unitname)] = { 'needs': { 'file:/etc/systemd/system/{}.mount'.format(unitname), 'file:/etc/systemd/system/{}.automount'.format(unitname), 'directory:{}'.format(data['mountpoint']), 'pkg_apt:nfs-common', }, } else: svc_systemd['{}.mount'.format(unitname)] = { 'needs': { 'file:/etc/systemd/system/{}.mount'.format(unitname), 'directory:{}'.format(data['mountpoint']), 'pkg_apt:nfs-common', }, } files['/etc/systemd/system/{}.mount'.format(unitname)] = { 'mode': "0644", 'owner': "root", 'group': "root", 'source': "nfs.mount", 'content_type': 'mako', 'context': data, 'triggers': { "action:systemd-reload", }, }