62 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from json import dumps
 | 
						|
from bundlewrap.metadata import MetadataJSONEncoder
 | 
						|
 | 
						|
files = {
 | 
						|
    '/etc/cron.d/zfsutils-linux': {'delete': True, 'needs': {'pkg_apt:zfs-auto-snapshot'}},
 | 
						|
    '/etc/cron.d/zfs-auto-snapshot': {'delete': True, 'needs': {'pkg_apt:zfs-auto-snapshot'}},
 | 
						|
    '/etc/cron.hourly/zfs-auto-snapshot': {'delete': True, 'needs': {'pkg_apt:zfs-auto-snapshot'}},
 | 
						|
    '/etc/cron.daily/zfs-auto-snapshot': {'delete': True, 'needs': {'pkg_apt:zfs-auto-snapshot'}},
 | 
						|
    '/etc/cron.weekly/zfs-auto-snapshot': {'delete': True, 'needs': {'pkg_apt:zfs-auto-snapshot'}},
 | 
						|
    '/etc/cron.monthly/zfs-auto-snapshot': {'delete': True, 'needs': {'pkg_apt:zfs-auto-snapshot'}},
 | 
						|
    '/etc/modprobe.d/zfs.conf': {
 | 
						|
        'content': '\n'.join(
 | 
						|
            f'options zfs {k}={v}'
 | 
						|
                for k, v in node.metadata.get('zfs/kernel_params').items()
 | 
						|
        ) + '\n',
 | 
						|
    },
 | 
						|
    '/usr/lib/nagios/plugins/check_zpool_space': {
 | 
						|
        'mode': '0755',
 | 
						|
    },
 | 
						|
}
 | 
						|
 | 
						|
actions = {
 | 
						|
    'modprobe_zfs': {
 | 
						|
        'command': 'modprobe zfs',
 | 
						|
        'unless': 'lsmod | grep ^zfs',
 | 
						|
        'needs': {
 | 
						|
            'pkg_apt:zfs-dkms',
 | 
						|
        },
 | 
						|
        'needed_by': {
 | 
						|
            'pkg_apt:zfs-zed',
 | 
						|
            'pkg_apt:zfsutils-linux',
 | 
						|
            'zfs_dataset:',
 | 
						|
            'zfs_pool:',
 | 
						|
        },
 | 
						|
        'comment': 'If this fails, do a dist-upgrade, reinstall zfs-dkms, reboot',
 | 
						|
    },
 | 
						|
}
 | 
						|
 | 
						|
svc_systemd = {
 | 
						|
    'zfs-zed': {
 | 
						|
        'needs': {
 | 
						|
            'pkg_apt:zfs-zed'
 | 
						|
        },
 | 
						|
    },
 | 
						|
}
 | 
						|
 | 
						|
for name, config in node.metadata.get('zfs/datasets', {}).items():
 | 
						|
    zfs_datasets[name] = config
 | 
						|
    zfs_datasets[name].pop('backup', None)
 | 
						|
 | 
						|
for name, config in node.metadata.get('zfs/pools', {}).items():
 | 
						|
    zfs_pools[name] = {
 | 
						|
        "when_creating": {
 | 
						|
            "config": [
 | 
						|
                {
 | 
						|
                    "type": config.get('type', None),
 | 
						|
                    "devices": config['devices'],
 | 
						|
                },
 | 
						|
            ],
 | 
						|
        },
 | 
						|
        "autotrim": False,
 | 
						|
    }
 |