Loading services/run_capif_tests.sh +90 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ fi echo "CAPIF_HOSTNAME = $CAPIF_HOSTNAME" echo "CAPIF_REGISTER = $CAPIF_REGISTER" echo "CAPIF_INTERCONNECTION_HOSTNAME = $CAPIF_INTERCONNECTION_HOSTNAME" echo "CAPIF_HTTP_PORT = $CAPIF_HTTP_PORT" echo "CAPIF_HTTPS_PORT = $CAPIF_HTTPS_PORT" echo "CAPIF_VAULT = $CAPIF_VAULT" Loading @@ -27,6 +28,95 @@ echo "CAPIF_VAULT_TOKEN = $CAPIF_VAULT_TOKEN" echo "MOCK_SERVER_URL = $MOCK_SERVER_URL" echo "DOCKER_ROBOT_IMAGE = $DOCKER_ROBOT_IMAGE:$DOCKER_ROBOT_IMAGE_VERSION" resolve_hostname() { local hostname="$1" if command -v getent >/dev/null 2>&1; then getent hosts "$hostname" >/dev/null 2>&1 return $? fi if command -v dscacheutil >/dev/null 2>&1; then dscacheutil -q host -a name "$hostname" | grep -q "^ip_address:" return $? fi if command -v host >/dev/null 2>&1; then host "$hostname" >/dev/null 2>&1 return $? fi if command -v nslookup >/dev/null 2>&1; then nslookup "$hostname" >/dev/null 2>&1 return $? fi return 1 } has_localhost_hosts_entry() { local hostname="$1" awk -v host="$hostname" ' $0 !~ /^[[:space:]]*#/ && $1 == "127.0.0.1" { for (i = 2; i <= NF; i++) { if ($i == host) { found = 1 } } } END { exit(found ? 0 : 1) } ' /etc/hosts } validate_hostname_or_local_hosts() { local hostnames=("$CAPIF_HOSTNAME" "$CAPIF_REGISTER" "$CAPIF_INTERCONNECTION_HOSTNAME") local missing=() for hostname in "${hostnames[@]}"; do if resolve_hostname "$hostname"; then echo "Hostname '$hostname' resolves correctly." continue fi echo "Hostname '$hostname' does not resolve via DNS/system resolver." if has_localhost_hosts_entry "$hostname"; then echo "Found local mapping in /etc/hosts: 127.0.0.1 $hostname" else missing+=("$hostname") fi done if [[ ${#missing[@]} -gt 0 ]]; then echo "Error: missing local host mappings for: ${missing[*]}" >&2 echo "Please add entries in /etc/hosts at least as 127.0.0.1 for each hostname, for example:" >&2 for hostname in "${missing[@]}"; do echo " 127.0.0.1 $hostname" >&2 done exit 1 fi } validate_required_variables() { local required_vars=("CAPIF_HOSTNAME" "CAPIF_REGISTER" "CAPIF_INTERCONNECTION_HOSTNAME") local missing=() for var_name in "${required_vars[@]}"; do if [[ -z "${!var_name:-}" ]]; then missing+=("$var_name") fi done if [[ ${#missing[@]} -gt 0 ]]; then echo "Error: required environment variables are not set: ${missing[*]}" >&2 exit 1 fi } validate_required_variables validate_hostname_or_local_hosts INPUT_OPTIONS=$@ # Check if input is provided if [ -z "$1" ]; then Loading Loading
services/run_capif_tests.sh +90 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ fi echo "CAPIF_HOSTNAME = $CAPIF_HOSTNAME" echo "CAPIF_REGISTER = $CAPIF_REGISTER" echo "CAPIF_INTERCONNECTION_HOSTNAME = $CAPIF_INTERCONNECTION_HOSTNAME" echo "CAPIF_HTTP_PORT = $CAPIF_HTTP_PORT" echo "CAPIF_HTTPS_PORT = $CAPIF_HTTPS_PORT" echo "CAPIF_VAULT = $CAPIF_VAULT" Loading @@ -27,6 +28,95 @@ echo "CAPIF_VAULT_TOKEN = $CAPIF_VAULT_TOKEN" echo "MOCK_SERVER_URL = $MOCK_SERVER_URL" echo "DOCKER_ROBOT_IMAGE = $DOCKER_ROBOT_IMAGE:$DOCKER_ROBOT_IMAGE_VERSION" resolve_hostname() { local hostname="$1" if command -v getent >/dev/null 2>&1; then getent hosts "$hostname" >/dev/null 2>&1 return $? fi if command -v dscacheutil >/dev/null 2>&1; then dscacheutil -q host -a name "$hostname" | grep -q "^ip_address:" return $? fi if command -v host >/dev/null 2>&1; then host "$hostname" >/dev/null 2>&1 return $? fi if command -v nslookup >/dev/null 2>&1; then nslookup "$hostname" >/dev/null 2>&1 return $? fi return 1 } has_localhost_hosts_entry() { local hostname="$1" awk -v host="$hostname" ' $0 !~ /^[[:space:]]*#/ && $1 == "127.0.0.1" { for (i = 2; i <= NF; i++) { if ($i == host) { found = 1 } } } END { exit(found ? 0 : 1) } ' /etc/hosts } validate_hostname_or_local_hosts() { local hostnames=("$CAPIF_HOSTNAME" "$CAPIF_REGISTER" "$CAPIF_INTERCONNECTION_HOSTNAME") local missing=() for hostname in "${hostnames[@]}"; do if resolve_hostname "$hostname"; then echo "Hostname '$hostname' resolves correctly." continue fi echo "Hostname '$hostname' does not resolve via DNS/system resolver." if has_localhost_hosts_entry "$hostname"; then echo "Found local mapping in /etc/hosts: 127.0.0.1 $hostname" else missing+=("$hostname") fi done if [[ ${#missing[@]} -gt 0 ]]; then echo "Error: missing local host mappings for: ${missing[*]}" >&2 echo "Please add entries in /etc/hosts at least as 127.0.0.1 for each hostname, for example:" >&2 for hostname in "${missing[@]}"; do echo " 127.0.0.1 $hostname" >&2 done exit 1 fi } validate_required_variables() { local required_vars=("CAPIF_HOSTNAME" "CAPIF_REGISTER" "CAPIF_INTERCONNECTION_HOSTNAME") local missing=() for var_name in "${required_vars[@]}"; do if [[ -z "${!var_name:-}" ]]; then missing+=("$var_name") fi done if [[ ${#missing[@]} -gt 0 ]]; then echo "Error: required environment variables are not set: ${missing[*]}" >&2 exit 1 fi } validate_required_variables validate_hostname_or_local_hosts INPUT_OPTIONS=$@ # Check if input is provided if [ -z "$1" ]; then Loading