37 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| defaults = {
 | |
|     'backup-freshness-check': {
 | |
|         'server': node.name,
 | |
|         'prefix': 'auto-backup_',
 | |
|         'datasets': {},
 | |
|     },
 | |
|     'monitoring': {
 | |
|         'services': {
 | |
|             'backup freshness': {
 | |
|                 'vars.command': '/usr/lib/nagios/plugins/check_backup_freshness',
 | |
|                 'check_interval': '6h',
 | |
|                 'vars.sudo': True,
 | |
|             },
 | |
|         },
 | |
|     },
 | |
| }
 | |
| 
 | |
| 
 | |
| @metadata_reactor.provides(
 | |
|     'backup-freshness-check/datasets'
 | |
| )
 | |
| def backup_freshness_check(metadata):
 | |
|     return {
 | |
|         'backup-freshness-check': {
 | |
|             'datasets': {
 | |
|                 f"{other_node.metadata.get('id')}/{dataset}"
 | |
|                     for other_node in repo.nodes
 | |
|                     if not other_node.dummy
 | |
|                     and other_node.has_bundle('backup')
 | |
|                     and other_node.has_bundle('zfs')
 | |
|                     and other_node.metadata.get('backup/server') == metadata.get('backup-freshness-check/server')
 | |
|                     for dataset, options in other_node.metadata.get('zfs/datasets').items()
 | |
|                     if options.get('backup', True)
 | |
|                     and not options.get('mountpoint', None) in [None, 'none']
 | |
|             },
 | |
|         },
 | |
|     }
 |