55 lines
1.8 KiB
Python
55 lines
1.8 KiB
Python
for mount, data in node.metadata.get('nfs-client',{}).get('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']] = {}
|
|
|
|
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",
|
|
},
|
|
}
|