fix: align lab02 and lab03 student verification flows
This commit is contained in:
@@ -16,7 +16,7 @@ NC='\033[0m'
|
||||
|
||||
# Get script directory
|
||||
TEST_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "$TEST_DIR/../.." && pwd)"
|
||||
PROJECT_ROOT="$(cd "$TEST_DIR/../../.." && pwd)"
|
||||
LAB_DIR="$PROJECT_ROOT/labs/lab-02-network"
|
||||
|
||||
# Counter helpers
|
||||
@@ -61,7 +61,9 @@ print_info() {
|
||||
}
|
||||
|
||||
# Main header
|
||||
clear
|
||||
if command -v clear &> /dev/null; then
|
||||
clear
|
||||
fi
|
||||
print_header "Lab 02: Network & VPC - Final Verification"
|
||||
echo ""
|
||||
echo -e "This script verifies your entire Lab 02 implementation."
|
||||
@@ -105,7 +107,7 @@ if [[ "${FAIL_REASON:-}" == "compose_missing" ]]; then
|
||||
print_warn "Skipping network tests - compose file missing"
|
||||
else
|
||||
# Check for custom networks
|
||||
NETWORKS=$(docker compose -f "$COMPOSE_FILE" config --format json 2>/dev/null | grep -o '"networks"' | wc -l || echo "0")
|
||||
NETWORKS=$(docker compose -f "$COMPOSE_FILE" config --format json 2>/dev/null | grep -o '"networks"' | wc -l)
|
||||
if [[ $NETWORKS -gt 0 ]]; then
|
||||
print_pass "Custom networks defined in docker-compose.yml"
|
||||
|
||||
@@ -119,7 +121,7 @@ else
|
||||
fi
|
||||
|
||||
# Check for VPC-style naming (PARA-02 requirement)
|
||||
VPC_NAMES=$(grep -E 'vpc-|subnet-|network-' "$COMPOSE_FILE" 2>/dev/null | wc -l || echo "0")
|
||||
VPC_NAMES=$(grep -E 'vpc-|subnet-|network-' "$COMPOSE_FILE" 2>/dev/null | wc -l)
|
||||
if [[ $VPC_NAMES -gt 0 ]]; then
|
||||
print_pass "Uses VPC-style naming convention (PARA-02 compliant)"
|
||||
else
|
||||
@@ -132,7 +134,7 @@ print_section "3. INF-02 Security Compliance"
|
||||
|
||||
if [[ -f "$COMPOSE_FILE" ]]; then
|
||||
# Check for 0.0.0.0 bindings
|
||||
ZERO_BINDINGS=$(grep -c -E '0\.0\.0\.0:[0-9]+' "$COMPOSE_FILE" 2>/dev/null || echo "0")
|
||||
ZERO_BINDINGS=$(grep -c -E '0\.0\.0\.0:[0-9]+' "$COMPOSE_FILE" 2>/dev/null || true)
|
||||
if [[ $ZERO_BINDINGS -eq 0 ]]; then
|
||||
print_pass "No 0.0.0.0 port bindings found (INF-02 compliant)"
|
||||
else
|
||||
@@ -142,7 +144,7 @@ if [[ -f "$COMPOSE_FILE" ]]; then
|
||||
fi
|
||||
|
||||
# Check for localhost bindings
|
||||
LOCALHOST_BINDINGS=$(grep -c -E '127\.0\.0\.1:[0-9]+' "$COMPOSE_FILE" 2>/dev/null || echo "0")
|
||||
LOCALHOST_BINDINGS=$(grep -c -E '127\.0\.0\.1:[0-9]+' "$COMPOSE_FILE" 2>/dev/null || true)
|
||||
if [[ $LOCALHOST_BINDINGS -gt 0 ]]; then
|
||||
print_pass "Found $LOCALHOST_BINDINGS service(s) with 127.0.0.1 binding (secure)"
|
||||
else
|
||||
@@ -150,7 +152,7 @@ if [[ -f "$COMPOSE_FILE" ]]; then
|
||||
fi
|
||||
|
||||
# Check for host networking
|
||||
HOST_NET=$(grep -c -E 'network_mode:\s*host' "$COMPOSE_FILE" 2>/dev/null || echo "0")
|
||||
HOST_NET=$(grep -c -E 'network_mode:\s*host' "$COMPOSE_FILE" 2>/dev/null || true)
|
||||
if [[ $HOST_NET -eq 0 ]]; then
|
||||
print_pass "No services using host networking mode"
|
||||
else
|
||||
@@ -193,9 +195,9 @@ print_section "5. Documentation Completeness (Diátxis Framework)"
|
||||
|
||||
DOC_COUNT=0
|
||||
DOC_FILES=(
|
||||
"$LAB_DIR/tutorial/01-create-networks.md"
|
||||
"$LAB_DIR/tutorial/02-deploy-containers.md"
|
||||
"$LAB_DIR/tutorial/03-verify-isolation.md"
|
||||
"$LAB_DIR/tutorial/01-create-vpc-networks.md"
|
||||
"$LAB_DIR/tutorial/02-deploy-containers-networks.md"
|
||||
"$LAB_DIR/tutorial/03-verify-network-isolation.md"
|
||||
"$LAB_DIR/how-to-guides/*.md"
|
||||
"$LAB_DIR/reference/*.md"
|
||||
"$LAB_DIR/explanation/*.md"
|
||||
@@ -223,10 +225,7 @@ fi
|
||||
print_section "6. Test Infrastructure Verification"
|
||||
|
||||
TEST_FILES=(
|
||||
"$TEST_DIR/01-network-creation-test.sh"
|
||||
"$TEST_DIR/02-isolation-verification-test.sh"
|
||||
"$TEST_DIR/03-inf02-compliance-test.sh"
|
||||
"$TEST_DIR/run-all-tests.sh"
|
||||
"$TEST_DIR/99-final-verification.sh"
|
||||
)
|
||||
|
||||
TESTS_FOUND=0
|
||||
@@ -237,9 +236,9 @@ for test_file in "${TEST_FILES[@]}"; do
|
||||
done
|
||||
|
||||
if [[ $TESTS_FOUND -eq ${#TEST_FILES[@]} ]]; then
|
||||
print_pass "All test scripts present and executable"
|
||||
print_pass "Final verification script present and executable"
|
||||
elif [[ $TESTS_FOUND -gt 0 ]]; then
|
||||
print_warn "Some test scripts missing: $TESTS_FOUND/${#TEST_FILES[@]} found"
|
||||
print_warn "Some expected test scripts missing: $TESTS_FOUND/${#TEST_FILES[@]} found"
|
||||
else
|
||||
print_fail "Test infrastructure not found"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user