diff --git a/tests/e2e/lib/multinode-helpers.sh b/tests/e2e/lib/multinode-helpers.sh index 0b9e2240e..c6a62583b 100755 --- a/tests/e2e/lib/multinode-helpers.sh +++ b/tests/e2e/lib/multinode-helpers.sh @@ -4,13 +4,6 @@ # Provides utilities for managing simulated IPs, starting/stopping node services, # and verifying NATS cluster health. -# Suppress urllib3 InsecureRequestWarning from AWS CLI (we use --no-verify-ssl) -export PYTHONWARNINGS="ignore::urllib3.exceptions.InsecureRequestWarning" - -# Helper to filter AWS CLI output (removes Python warnings that break jq) -aws_json() { - "$@" 2>&1 | grep -v "^urllib3\|^InsecureRequestWarning\|certificate verification" -} # Network configuration SIMULATED_NETWORK="10.11.12" @@ -163,7 +156,7 @@ wait_for_instance_state() { while [ $attempt -lt $max_attempts ]; do local state - state=$(aws_json aws --endpoint-url https://${NODE1_IP}:${AWSGW_PORT} --no-verify-ssl ec2 describe-instances \ + state=$(aws --endpoint-url https://${NODE1_IP}:${AWSGW_PORT} ec2 describe-instances \ --instance-ids "$instance_id" \ --query 'Reservations[0].Instances[0].State.Name' \ --output text) || { diff --git a/tests/e2e/run-multinode-e2e.sh b/tests/e2e/run-multinode-e2e.sh index 54c3401d3..80941590c 100755 --- a/tests/e2e/run-multinode-e2e.sh +++ b/tests/e2e/run-multinode-e2e.sh @@ -35,13 +35,6 @@ trap cleanup EXIT # Use Hive profile for AWS CLI export AWS_PROFILE=hive -# Suppress urllib3 InsecureRequestWarning from AWS CLI (we use --no-verify-ssl) -export PYTHONWARNINGS="ignore::urllib3.exceptions.InsecureRequestWarning" - -# Helper to filter AWS CLI output (removes Python warnings that break jq) -aws_json() { - "$@" 2>&1 | grep -v "^urllib3\|^InsecureRequestWarning\|certificate verification" -} echo "========================================" echo "Multi-Node E2E Test Suite" @@ -141,13 +134,12 @@ echo "" wait_for_gateway "${NODE1_IP}" 30 # Define AWS CLI args pointing to node1's gateway -# Use --no-verify-ssl because the self-signed cert only has localhost SANs, not node IPs -AWS_EC2="aws --endpoint-url https://${NODE1_IP}:${AWSGW_PORT} --no-verify-ssl ec2" +AWS_EC2="aws --endpoint-url https://${NODE1_IP}:${AWSGW_PORT} ec2" # Verify gateway responds echo "" echo "Testing gateway connectivity..." -aws_json $AWS_EC2 describe-regions | jq -e '.Regions | length > 0' || { +$AWS_EC2 describe-regions | jq -e '.Regions | length > 0' || { echo "ERROR: Gateway not responding correctly" exit 1 } @@ -160,7 +152,7 @@ echo "========================================" # Discover instance types echo "Discovering available instance types..." -AVAILABLE_TYPES=$(aws_json $AWS_EC2 describe-instance-types --query 'InstanceTypes[*].InstanceType' --output text) +AVAILABLE_TYPES=$($AWS_EC2 describe-instance-types --query 'InstanceTypes[*].InstanceType' --output text) echo " Available: $AVAILABLE_TYPES" # Pick nano instance type @@ -172,14 +164,14 @@ fi echo " Selected: $INSTANCE_TYPE" # Get architecture -ARCH=$(aws_json $AWS_EC2 describe-instance-types --instance-types "$INSTANCE_TYPE" \ +ARCH=$($AWS_EC2 describe-instance-types --instance-types "$INSTANCE_TYPE" \ --query 'InstanceTypes[0].ProcessorInfo.SupportedArchitectures[0]' --output text) echo " Architecture: $ARCH" # Create test key echo "" echo "Creating test key pair..." -KEY_MATERIAL=$(aws_json $AWS_EC2 create-key-pair --key-name multinode-test-key --query 'KeyMaterial' --output text) +KEY_MATERIAL=$($AWS_EC2 create-key-pair --key-name multinode-test-key --query 'KeyMaterial' --output text) echo "$KEY_MATERIAL" > multinode-test-key.pem chmod 600 multinode-test-key.pem echo " Key created: multinode-test-key" @@ -205,7 +197,7 @@ fi echo " AMI ID: $AMI_ID" # Verify AMI -aws_json $AWS_EC2 describe-images --image-ids "$AMI_ID" | jq -e ".Images[0] | select(.ImageId==\"$AMI_ID\")" > /dev/null +$AWS_EC2 describe-images --image-ids "$AMI_ID" | jq -e ".Images[0] | select(.ImageId==\"$AMI_ID\")" > /dev/null echo " AMI verified" # Phase 5: Multi-Node Instance Tests @@ -222,7 +214,7 @@ echo "Launching 3 instances to test distribution across nodes..." INSTANCE_IDS=() for i in 1 2 3; do echo " Launching instance $i..." - RUN_OUTPUT=$(aws_json $AWS_EC2 run-instances \ + RUN_OUTPUT=$($AWS_EC2 run-instances \ --image-id "$AMI_ID" \ --instance-type "$INSTANCE_TYPE" \ --key-name multinode-test-key) @@ -260,7 +252,7 @@ echo "Test 2: DescribeInstances Aggregation" echo "----------------------------------------" echo "Verifying all instances are returned via fan-out query..." -DESCRIBE_OUTPUT=$(aws_json $AWS_EC2 describe-instances --query 'Reservations[*].Instances[*].InstanceId' --output text) +DESCRIBE_OUTPUT=$($AWS_EC2 describe-instances --query 'Reservations[*].Instances[*].InstanceId' --output text) DESCRIBED_COUNT=$(echo "$DESCRIBE_OUTPUT" | wc -w) echo " Launched: ${#INSTANCE_IDS[@]} instances" @@ -285,12 +277,12 @@ echo " Test instance: $TEST_INSTANCE" # Stop instance echo " Stopping instance..." -aws_json $AWS_EC2 stop-instances --instance-ids "$TEST_INSTANCE" > /dev/null +$AWS_EC2 stop-instances --instance-ids "$TEST_INSTANCE" > /dev/null wait_for_instance_state "$TEST_INSTANCE" "stopped" 30 # Start instance echo " Starting instance..." -aws_json $AWS_EC2 start-instances --instance-ids "$TEST_INSTANCE" > /dev/null +$AWS_EC2 start-instances --instance-ids "$TEST_INSTANCE" > /dev/null wait_for_instance_state "$TEST_INSTANCE" "running" 30 echo " Cross-node operations test passed" @@ -311,7 +303,7 @@ echo "Cleanup: Terminating test instances" echo "----------------------------------------" for instance_id in "${INSTANCE_IDS[@]}"; do echo " Terminating $instance_id..." - aws_json $AWS_EC2 terminate-instances --instance-ids "$instance_id" > /dev/null + $AWS_EC2 terminate-instances --instance-ids "$instance_id" > /dev/null done # Wait for termination - track failures