|
96 | 96 |
|
97 | 97 | __call_cl_api() { |
98 | 98 | local exitstatus |
| 99 | + local nodes |
| 100 | + local node |
| 101 | + local node_reachable=0 |
| 102 | + |
| 103 | + nodes=$(echo "${CL_NODE}" | tr ',' ' ') |
| 104 | + for node in ${nodes}; do |
| 105 | + if curl -s -m 5 -o /dev/null -w "%{http_code}" "${node}" | grep -q "^[23]"; then |
| 106 | + node_reachable=1 |
| 107 | + break |
| 108 | + fi |
| 109 | + done |
| 110 | + |
| 111 | + if [[ "${node_reachable}" -eq 0 ]]; then |
| 112 | + echo "No consensus client node is reachable via any URL in ${CL_NODE}" |
| 113 | + exit 1 |
| 114 | + fi |
99 | 115 |
|
100 | 116 | set +e |
101 | 117 | if [[ -z "${__api_data}" ]]; then |
102 | 118 | __code=$(curl -m 60 -s --show-error -o /tmp/result.txt -w "%{http_code}" -X "${__http_method}" -H "Accept: application/json" \ |
103 | | - "${CL_NODE}"/"${__api_path}") |
| 119 | + "${node}"/"${__api_path}") |
104 | 120 | else |
105 | 121 | __code=$(curl -m 60 -s --show-error -o /tmp/result.txt -w "%{http_code}" -X "${__http_method}" -H "Accept: application/json" -H "Content-Type: application/json" \ |
106 | | - --data "${__api_data}" "${CL_NODE}"/"${__api_path}") |
| 122 | + --data "${__api_data}" "${node}"/"${__api_path}") |
107 | 123 | fi |
108 | 124 | exitstatus=$? |
109 | 125 | if [[ "${exitstatus}" -ne 0 ]]; then |
110 | 126 | echo "Error encountered while trying to call the consensus client REST API via curl." |
111 | | - echo "Please make sure the ${CL_NODE} URL is reachable." |
| 127 | + echo "Please make sure the ${node} URL is reachable." |
112 | 128 | echo "Error code ${exitstatus}" |
113 | 129 | exit ${exitstatus} |
114 | 130 | fi |
@@ -585,6 +601,9 @@ validator-list() { |
585 | 601 |
|
586 | 602 |
|
587 | 603 | validator-count() { |
| 604 | + local nodes |
| 605 | + local node |
| 606 | + local node_reachable=0 |
588 | 607 | local vc_api_container |
589 | 608 | local vc_service |
590 | 609 | local vc_api_port |
@@ -635,9 +654,22 @@ validator-count() { |
635 | 654 | fi |
636 | 655 | fi |
637 | 656 |
|
| 657 | + nodes=$(echo "${CL_NODE}" | tr ',' ' ') |
| 658 | + for node in ${nodes}; do |
| 659 | + if curl -s -m 5 -o /dev/null -w "%{http_code}" "${node}" | grep -q "^[23]"; then |
| 660 | + node_reachable=1 |
| 661 | + break |
| 662 | + fi |
| 663 | + done |
| 664 | + |
| 665 | + if [[ "${node_reachable}" -eq 0 ]]; then |
| 666 | + echo "No consensus client node is reachable via any URL in ${CL_NODE}" |
| 667 | + exit 1 |
| 668 | + fi |
| 669 | + |
638 | 670 | echo "Querying validator state, this may take a minute" |
639 | 671 | for __pubkey in $(echo "${vals}" | jq -r '.data[].validating_pubkey'); do |
640 | | - val_state=$(curl -k -m 60 -s --show-error "${CL_NODE}/eth/v1/beacon/states/head/validators/${__pubkey}" | jq -r .data.status) |
| 672 | + val_state=$(curl -k -m 60 -s --show-error "${node}/eth/v1/beacon/states/head/validators/${__pubkey}" | jq -r .data.status) |
641 | 673 | case "${val_state}" in |
642 | 674 | active_ongoing) ((vals_active++));; |
643 | 675 | active_exiting) ((vals_exiting++));; |
|
0 commit comments