From 748ee9c7d55ef51ffc9763960b46a99dfadc142d Mon Sep 17 00:00:00 2001 From: Jaymala Date: Tue, 31 Jan 2023 16:23:46 -0500 Subject: [PATCH] Update replication verification to check connection status (#18921) * Update replication verification to check connection status Signed-off-by: Jaymala Sinha * Output replication status after verifying connection Signed-off-by: Jaymala Sinha --------- Signed-off-by: Jaymala Sinha --- .../main.tf | 2 ++ .../scripts/verify-performance-replication.sh | 17 +++++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/enos/modules/vault_verify_performance_replication/main.tf b/enos/modules/vault_verify_performance_replication/main.tf index 1faa36d968..d072f5631e 100644 --- a/enos/modules/vault_verify_performance_replication/main.tf +++ b/enos/modules/vault_verify_performance_replication/main.tf @@ -52,6 +52,7 @@ resource "enos_remote_exec" "verify_replication_on_primary" { environment = { VAULT_ADDR = "http://127.0.0.1:8200" VAULT_INSTALL_DIR = var.vault_install_dir + REPLICATION_MODE = "primary" } scripts = ["${path.module}/scripts/verify-performance-replication.sh"] @@ -76,6 +77,7 @@ resource "enos_remote_exec" "verify_replication_on_secondary" { environment = { VAULT_ADDR = "http://127.0.0.1:8200" VAULT_INSTALL_DIR = var.vault_install_dir + REPLICATION_MODE = "secondary" } scripts = ["${path.module}/scripts/verify-performance-replication.sh"] diff --git a/enos/modules/vault_verify_performance_replication/scripts/verify-performance-replication.sh b/enos/modules/vault_verify_performance_replication/scripts/verify-performance-replication.sh index fbbca79b1b..10f48a7d7e 100644 --- a/enos/modules/vault_verify_performance_replication/scripts/verify-performance-replication.sh +++ b/enos/modules/vault_verify_performance_replication/scripts/verify-performance-replication.sh @@ -28,17 +28,26 @@ retry() { return 0 } +test -x "$binpath" || fail "unable to locate vault binary at $binpath" + check_pr_status() { - pr_status=$($binpath read -format=json sys/replication/performance/status) cluster_state=$($binpath read -format=json sys/replication/performance/status | jq -r '.data.state') + if [[ "${REPLICATION_MODE}" == "primary" ]]; then + connection_status=$($binpath read -format=json sys/replication/performance/status | jq -r '.data.secondaries[0].connection_status') + else + connection_status=$($binpath read -format=json sys/replication/performance/status | jq -r '.data.primaries[0].connection_status') + fi + + if [[ "$connection_status" == 'disconnected' ]]; then + fail "expected connection status to be connected" + fi + if [[ "$cluster_state" == 'idle' ]]; then fail "expected cluster state to be not idle" fi } -test -x "$binpath" || fail "unable to locate vault binary at $binpath" - # Retry a few times because it can take some time for replication to sync retry 5 check_pr_status -echo $pr_status +echo $($binpath read -format=json sys/replication/performance/status)