bundlewrap/bundles/nfs-client/items.py

71 lines
2.1 KiB
Python
Raw Normal View History

2021-03-11 14:23:47 +00:00
if node.has_bundle('pacman'):
package = 'pkg_pacman:nfs-utils'
else:
package = 'pkg_apt:nfs-common'
for mount, data in node.metadata.get('nfs-client/mounts',{}).items():
2020-10-10 14:37:33 +00:00
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,
}
2020-10-10 14:37:33 +00:00
for parameter in ['mode', 'owner', 'group']:
if parameter in data:
directories[data['mountpoint']][parameter] = data[parameter]
if 'suid' not in data['mount_options']:
data['mount_options'].add('nosuid')
if 'hard' not in data['mount_options']:
data['mount_options'].add('soft')
2020-10-10 14:37:33 +00:00
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']),
2021-03-11 14:23:47 +00:00
package,
2020-10-10 14:37:33 +00:00
},
}
else:
svc_systemd['{}.mount'.format(unitname)] = {
'needs': {
'file:/etc/systemd/system/{}.mount'.format(unitname),
'directory:{}'.format(data['mountpoint']),
2021-03-11 14:23:47 +00:00
package,
2020-10-10 14:37:33 +00:00
},
}
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",
},
}