bundles/backup-server: improve
This commit is contained in:
parent
c905b7dc13
commit
a15740c899
2 changed files with 22 additions and 46 deletions
|
@ -83,47 +83,24 @@ def zfs_pool(metadata):
|
|||
|
||||
devices = metadata.get('backup-server/encrypted-devices')
|
||||
|
||||
# TODO remove this once we have migrated all systems
|
||||
if isinstance(devices, dict):
|
||||
pool_devices = set()
|
||||
pool_devices = set()
|
||||
|
||||
for number, (device, passphrase) in enumerate(sorted(devices.items())):
|
||||
crypt_devices[device] = {
|
||||
'dm-name': f'backup{number}',
|
||||
'passphrase': passphrase,
|
||||
}
|
||||
pool_devices.add(f'/dev/mapper/backup{number}')
|
||||
unlock_actions.add(f'action:dm-crypt_open_backup{number}')
|
||||
for device, dconfig in devices.items():
|
||||
crypt_devices[dconfig['device']] = {
|
||||
'dm-name': f'backup-{device}',
|
||||
'passphrase': dconfig['passphrase'],
|
||||
}
|
||||
pool_devices.add(f'/dev/mapper/backup-{device}')
|
||||
unlock_actions.add(f'action:dm-crypt_open_backup-{device}')
|
||||
|
||||
pool_config = [{
|
||||
'devices': pool_devices,
|
||||
}]
|
||||
pool_config = [{
|
||||
'devices': pool_devices,
|
||||
}]
|
||||
|
||||
if len(pool_devices) > 2:
|
||||
pool_config[0]['type'] = 'raidz'
|
||||
elif len(pool_devices) > 1:
|
||||
pool_config[0]['type'] = 'mirror'
|
||||
|
||||
elif isinstance(devices, list):
|
||||
pool_config = []
|
||||
|
||||
for idx, intended_pool in enumerate(devices):
|
||||
pool_devices = set()
|
||||
|
||||
for number, (device, passphrase) in enumerate(sorted(intended_pool.items())):
|
||||
crypt_devices[device] = {
|
||||
'dm-name': f'backup{idx}-{number}',
|
||||
'passphrase': passphrase,
|
||||
}
|
||||
pool_devices.add(f'/dev/mapper/backup{idx}-{number}')
|
||||
unlock_actions.add(f'action:dm-crypt_open_backup{idx}-{number}')
|
||||
|
||||
pool_config.append({
|
||||
'devices': pool_devices,
|
||||
'type': 'raidz',
|
||||
})
|
||||
else:
|
||||
raise BundleError(f'{node.name}: unsupported configuration for backup-server/encrypted-devices')
|
||||
if len(pool_devices) > 2:
|
||||
pool_config[0]['type'] = 'raidz'
|
||||
elif len(pool_devices) > 1:
|
||||
pool_config[0]['type'] = 'mirror'
|
||||
|
||||
return {
|
||||
'backup-server': {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue