backups: do backup rotation ourselves instead of relying on zfs-auto-snapshot
This commit is contained in:
parent
b6eb12ed90
commit
c9054a243a
7 changed files with 169 additions and 13 deletions
|
@ -16,6 +16,11 @@ defaults = {
|
|||
)
|
||||
def get_my_clients(metadata):
|
||||
my_clients = {}
|
||||
retain_defaults = {
|
||||
'daily': 14,
|
||||
'weekly': 4,
|
||||
'monthly': 6,
|
||||
}
|
||||
|
||||
for rnode in repo.nodes:
|
||||
if not rnode.has_bundle('backup-client') or rnode.metadata.get('backups/exclude_from_backups', False):
|
||||
|
@ -26,6 +31,11 @@ def get_my_clients(metadata):
|
|||
|
||||
my_clients[rnode.name] = {
|
||||
'user': rnode.metadata.get('backup-client/user-name'),
|
||||
'retain': {
|
||||
'daily': rnode.metadata.get('backups/retain/daily', retain_defaults['daily']),
|
||||
'weekly': rnode.metadata.get('backups/retain/weekly', retain_defaults['weekly']),
|
||||
'monthly': rnode.metadata.get('backups/retain/monthly', retain_defaults['monthly']),
|
||||
},
|
||||
}
|
||||
|
||||
return {
|
||||
|
@ -97,15 +107,10 @@ def zfs_pool(metadata):
|
|||
|
||||
@metadata_reactor.provides(
|
||||
'zfs/datasets',
|
||||
'zfs/snapshots/retain_per_dataset',
|
||||
'zfs/snapshots/snapshot_never',
|
||||
)
|
||||
def zfs_datasets_and_snapshots(metadata):
|
||||
zfs_datasets = {}
|
||||
zfs_retains = {}
|
||||
retain_defaults = {
|
||||
'weekly': 4,
|
||||
'monthly': 6,
|
||||
}
|
||||
|
||||
for client in metadata.get('backup-server/clients', {}).keys():
|
||||
dataset = '{}/{}'.format(metadata.get('backup-server/zfs-base'), client)
|
||||
|
@ -115,13 +120,14 @@ def zfs_datasets_and_snapshots(metadata):
|
|||
'compression': 'on',
|
||||
}
|
||||
|
||||
zfs_retains[dataset] = retain_defaults.copy()
|
||||
|
||||
return {
|
||||
'zfs': {
|
||||
'datasets': zfs_datasets,
|
||||
'snapshots': {
|
||||
'retain_per_dataset': zfs_retains,
|
||||
'snapshot_never': {
|
||||
metadata.get('backup-server/zfs-base'),
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue