diff options
| -rw-r--r-- | modules/zfssnap/zfssnap.py | 11 | 
1 files changed, 6 insertions, 5 deletions
| diff --git a/modules/zfssnap/zfssnap.py b/modules/zfssnap/zfssnap.py index 57b0e95f..7404b453 100644 --- a/modules/zfssnap/zfssnap.py +++ b/modules/zfssnap/zfssnap.py | |||
| @@ -202,16 +202,15 @@ def autosnap(): | |||
| 202 | except KeyError: | 202 | except KeyError: | 
| 203 | pass | 203 | pass | 
| 204 | 204 | ||
| 205 | all_snap_names = set() | ||
| 205 | def do_snapshot(*snap_items, recursive=False): | 206 | def do_snapshot(*snap_items, recursive=False): | 
| 206 | nonlocal items | 207 | nonlocal items, all_snap_names | 
| 207 | snap_names = {_snap_name(item) for item in snap_items} | 208 | snap_names = {_snap_name(item) for item in snap_items} | 
| 208 | all_snap_names = None | ||
| 209 | if recursive: | 209 | if recursive: | 
| 210 | all_snap_names = set() | ||
| 211 | for snap_item in snap_items: | 210 | for snap_item in snap_items: | 
| 212 | all_snap_names |= {_snap_name(item) for item in items if item.startswith(snap_item)} | 211 | all_snap_names |= {_snap_name(item) for item in items if item.startswith(snap_item)} | 
| 213 | else: | 212 | else: | 
| 214 | all_snap_names = snap_names | 213 | all_snap_names |= snap_names | 
| 215 | 214 | ||
| 216 | args = ['zfs', 'snapshot'] | 215 | args = ['zfs', 'snapshot'] | 
| 217 | if recursive: | 216 | if recursive: | 
| @@ -220,10 +219,12 @@ def autosnap(): | |||
| 220 | 219 | ||
| 221 | _log_cmd(*args) | 220 | _log_cmd(*args) | 
| 222 | subprocess.run(args, check=True) | 221 | subprocess.run(args, check=True) | 
| 223 | rename(snapshots=all_snap_names) | ||
| 224 | 222 | ||
| 225 | do_snapshot(*single) | 223 | do_snapshot(*single) | 
| 226 | do_snapshot(*recursive, recursive=True) | 224 | do_snapshot(*recursive, recursive=True) | 
| 225 | for snap in all_snap_names: | ||
| 226 | logger.info(f'Created ‘{snap}’') | ||
| 227 | rename(snapshots=all_snap_names) | ||
| 227 | 228 | ||
| 228 | def main(): | 229 | def main(): | 
| 229 | global logger | 230 | global logger | 
