| 13 # |
13 # |
| 14 # Defaults |
14 # Defaults |
| 15 # |
15 # |
| 16 |
16 |
| 17 defaults={ |
17 defaults={ |
| 18 # Default: backup every 6 hours (21600 seconds) |
18 # borg |
| 19 'backup_interval': 21600, |
19 # Default: backup every 6 hours (21600 seconds) |
| 20 # Default: retry every 15 minutes if unable to connect / unfinished backup |
20 'backup_interval': 21600, |
| 21 'retry_interval': 900, |
21 # Default: retry every 15 minutes if unable to connect / unfinished backup |
| 22 # borg |
22 'retry_interval': 900, |
| 23 'borg': { |
23 # Extract passphrases at startup or on demand? |
| 24 'executable': 'borg', |
24 '__extract_passphrases_at_startup': True, |
| 25 'common_parameters': [], |
25 # Borg settings |
| 26 'create_parameters': [], |
26 'borg': { |
| 27 'prune_parameters': [], |
27 'executable': 'borg', |
| |
28 'common_parameters': [], |
| |
29 'create_parameters': [], |
| |
30 'prune_parameters': [], |
| 28 } |
31 } |
| 29 } |
32 } |
| 30 |
33 |
| 31 |
34 |
| 32 # |
35 # |
| 123 |
126 |
| 124 # |
127 # |
| 125 # Verify basic settings |
128 # Verify basic settings |
| 126 # |
129 # |
| 127 |
130 |
| 128 if 'borg' not in settings: |
131 def check_and_set(cfg, field, loc, defa, fn): |
| 129 settings['borg']=defaults['borg'] |
132 cfg[field]=fn(cfg, field, field, loc, defa[field]) |
| 130 else: |
|
| 131 def check_and_set(cfg, field, loc, defa, fn): |
|
| 132 cfg[field]=fn(cfg, field, field, loc, defa[field]) |
|
| 133 return cfg |
|
| 134 |
133 |
| 135 def check_parameters(cmd): |
134 def check_parameters(cmd): |
| 136 settings['borg']=check_and_set(settings['borg'], cmd+'_parameters', |
135 check_and_set(settings['borg'], cmd+'_parameters', |
| 137 'borg', defaults['borg'], |
136 'borg', defaults['borg'], |
| 138 check_list_of_dicts) |
137 check_list_of_dicts) |
| 139 |
138 |
| 140 settings['borg']=check_and_set(settings['borg'], 'executable', 'borg', |
139 check_and_set(settings, 'backup_interval', 'top-level', defaults, check_nonneg_int) |
| 141 defaults['borg'], check_string) |
140 check_and_set(settings, 'retry_interval', 'top-level', defaults, check_nonneg_int) |
| |
141 check_and_set(settings, '__extract_passphrases_at_startup', 'top-level', defaults, check_nonneg_int) |
| |
142 check_and_set(settings, 'borg', 'top-level', defaults, check_dict) |
| |
143 # Check parameters within 'borg' |
| |
144 if True: |
| |
145 check_and_set(settings['borg'], 'executable', 'borg', |
| |
146 defaults['borg'], check_string) |
| 142 |
147 |
| 143 check_parameters('common') |
148 check_parameters('common') |
| 144 check_parameters('create') |
149 check_parameters('create') |
| 145 check_parameters('prune') |
150 check_parameters('prune') |
| 146 |
151 |