fix(script): Do snapshots atomically (#1)
This commit is contained in:
parent
0b9c00c26b
commit
bba8160d84
@ -206,21 +206,32 @@ function trim_pkg_list_oneline () {
|
|||||||
|
|
||||||
function do_snaps () {
|
function do_snaps () {
|
||||||
local snap_name snap_return_code
|
local snap_name snap_return_code
|
||||||
for snappable_dataset in "${snappable_datasets[@]}"; do
|
local -a planned_snaps
|
||||||
snap_name="${snappable_dataset}"'@'"${snap_name_prefix}${snap_field_separator}${date_string}${snap_field_separator}"'op:'"${conf_op_suffix}${snap_field_separator}"'sev:'"${severity}${snap_field_separator}"'pkgs:'"${trimmed_pkg_list_oneline}"
|
for snappable_dataset_id in "${!snappable_datasets[@]}"; do
|
||||||
|
snap_name="${snappable_datasets[${snappable_dataset_id}]}"'@'"${snap_name_prefix}${snap_field_separator}${date_string}${snap_field_separator}"'op:'"${conf_op_suffix}${snap_field_separator}"'sev:'"${severity}${snap_field_separator}"'pkgs:'"${trimmed_pkg_list_oneline}"
|
||||||
|
planned_snaps["${snappable_dataset_id}"]="${snap_name}"
|
||||||
|
done
|
||||||
if [[ "${do_dry_run}" == 'true' ]]; then
|
if [[ "${do_dry_run}" == 'true' ]]; then
|
||||||
pprint 'info' 'Dry-run, pretending to run zfs snapshot '"${snap_name}"
|
pprint 'info' 'Dry-run, pretending to atomically do zfs snapshot:'
|
||||||
|
for planned_snap in "${planned_snaps[@]}"; do
|
||||||
|
pprint 'info' "${planned_snap}"
|
||||||
|
done
|
||||||
else
|
else
|
||||||
zfs snapshot "${snap_name}"
|
zfs snapshot "${planned_snaps[@]}"
|
||||||
snap_return_code="${?}"
|
snap_return_code="${?}"
|
||||||
if [[ "${snap_return_code}" -eq '0' ]]; then
|
if [[ "${snap_return_code}" -eq '0' ]]; then
|
||||||
successfully_snapped_datasets+=("${snappable_dataset}")
|
successfully_snapped_datasets=("${snappable_datasets[@]}")
|
||||||
pprint 'info' 'Snapshot done: '"${snap_name}"
|
pprint 'info' 'zfs snapshot atomically done:'
|
||||||
else
|
for planned_snap in "${planned_snaps[@]}"; do
|
||||||
pprint 'warn' 'Snapshot failed: '"${snap_name}"
|
pprint 'info' "${planned_snap}"
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
else
|
||||||
|
pprint 'warn' 'zfs snapshot failed:'
|
||||||
|
for planned_snap in "${planned_snaps[@]}"; do
|
||||||
|
pprint 'warn' "${planned_snap}"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function get_snaps_in_cur_sev () {
|
function get_snaps_in_cur_sev () {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user