mirror of
https://github.com/mulgadc/spinifex.git
synced 2026-10-15 17:11:30 +00:00
fix: e2e verify ssl
This commit is contained in:
@@ -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) || {
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user