33 lines
1.0 KiB
Bash
33 lines
1.0 KiB
Bash
#!/usr/bin/env bash
|
|
set -u -o pipefail
|
|
|
|
TEST_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
source "${TEST_ROOT}/tests/testlib.sh"
|
|
source "${TEST_ROOT}/inc/ha-status.inc"
|
|
|
|
STATUS_FILE="$(mktemp /tmp/tapm-ha-status.XXXXXX)"
|
|
cleanup_ha_status_test() {
|
|
[[ "$STATUS_FILE" == /tmp/tapm-ha-status.* ]] && rm -f -- "$STATUS_FILE"
|
|
}
|
|
trap cleanup_ha_status_test EXIT
|
|
|
|
printf '%s\n' \
|
|
'{"node_status":{"pve1":"online","pve2":"maintenance mode"}}' \
|
|
>"$STATUS_FILE"
|
|
assert_success "maintenance node detected in HA manager state" \
|
|
TAPM_HA_NODE_IN_MAINTENANCE pve2 "$STATUS_FILE"
|
|
assert_failure "active node is not reported as maintenance" \
|
|
TAPM_HA_NODE_IN_MAINTENANCE pve1 "$STATUS_FILE"
|
|
|
|
printf '%s\n' \
|
|
'{"nodes":[{"node":"pve3","state":"maintenance"}]}' \
|
|
>"$STATUS_FILE"
|
|
assert_success "structured HA node state detected" \
|
|
TAPM_HA_NODE_IN_MAINTENANCE pve3 "$STATUS_FILE"
|
|
|
|
printf '%s\n' 'not-json' >"$STATUS_FILE"
|
|
assert_failure "malformed HA state is rejected" \
|
|
TAPM_HA_NODE_IN_MAINTENANCE pve1 "$STATUS_FILE"
|
|
|
|
finish_tests
|