From d9b1ae590516f5481f865bc9b21e434d95caefa5 Mon Sep 17 00:00:00 2001 From: hygienic-books Date: Wed, 15 Mar 2023 22:38:05 +0100 Subject: [PATCH] refactor(script): List snapshots (#1) --- pacman-zfs-snapshot.sh | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/pacman-zfs-snapshot.sh b/pacman-zfs-snapshot.sh index 4ab7d88..4ea0b6c 100755 --- a/pacman-zfs-snapshot.sh +++ b/pacman-zfs-snapshot.sh @@ -245,6 +245,7 @@ function get_snaps_in_cur_sev () { function do_retention () { local snap_list snaps_done_by_us snaps_in_cur_sev snaps_limit oldest_snap snap_return_code + local -a destroyed_snaps failed_to_destroy_snaps if [[ "${do_dry_run}" == 'true' ]]; then pprint 'info' 'Dry-run, skipping potential zfs destroy operations ...' else @@ -260,11 +261,23 @@ function do_retention () { zfs destroy "${oldest_snap}" snap_return_code="${?}" if [[ "${snap_return_code}" -eq '0' ]]; then - pprint 'info' 'Oldest in chain '"'"'sev:'"${severity}"''"'"' destroyed: '"${oldest_snap}" + destroyed_snaps+=("${oldest_snap}") else - pprint 'warn' 'Snapshot destruction failed: '"${oldest_snap}" + failed_to_destroy_snaps+=("${oldest_snap}") fi done + if [[ "${#destroyed_snaps[@]}" -gt '0' ]]; then + pprint 'info' 'Oldest ZFS snapshot'"$([[ "${#failed_to_destroy_snaps[@]}" -gt '1' ]] && printf -- '%s' 's')"' in chain '"'"'sev:'"${severity}"''"'"' destroyed:' + for destroyed_snap in "${destroyed_snaps[@]}"; do + pprint 'info' ' '"${destroyed_snap}" + done + fi + if [[ "${#failed_to_destroy_snaps[@]}" -gt '0' ]]; then + pprint 'warn' 'Failed to prune ZFS snapshot'"$([[ "${#failed_to_destroy_snaps[@]}" -gt '1' ]] && printf -- '%s' 's')"' in chain '"'"'sev:'"${severity}"''"'"':' + for failed_to_destroy_snap in "${failed_to_destroy_snaps[@]}"; do + pprint 'warn' ' '"${failed_to_destroy_snap}" + done + fi done fi return 0