Files
Mateusz Suski ca5a876d03
lint / shell-yaml-ansible (push) Failing after 21s
Improve infra-run portfolio credibility
2026-05-08 21:18:22 +00:00

55 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# shellcheck source=00_env.sh
source "$SCRIPT_DIR/00_env.sh"
parse_common_args "$@"
require_inputs disks
missing=0
for cmd in vxdisk vxdisksetup awk; do
require_cmd "$cmd" || missing=1
done
if (( missing != 0 )); then
exit 2
fi
status=0
for disk in $DISKS; do
if ! vxdisk list "$disk" >/dev/null 2>&1; then
critical "disk not found in vxdisk list: $disk"
status=1
continue
fi
info="$(disk_status_line "$disk")"
disk_status="${info#*|}"
if [[ "$disk_status" != *"online invalid"* ]]; then
critical "disk '$disk' is not safe to initialize; status is '${disk_status:-unknown}', expected 'online invalid'"
status=1
continue
fi
ok "disk '$disk' validated as online invalid"
done
if (( status != 0 )); then
critical "one or more disks failed validation; no initialization attempted"
exit 1
fi
confirm_execute "This will initialize VxVM metadata on disk(s): $DISKS"
for disk in $DISKS; do
run_cmd "Initialize VxVM disk $disk" vxdisksetup -i "$disk"
done
for disk in $DISKS; do
capture_cmd "Post-initialization VxVM disk state for $disk" vxdisk list "$disk"
done
ok "disk initialization step completed"