#!/bin/bash set -e RESULTS_DIR="/root/workspace/ppanda/mock-test-jsons" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PARENT_DIR="$(dirname "$SCRIPT_DIR")" SSH_KEY="/tmp/test_ansible_key" mkdir -p "$RESULTS_DIR" cat > "$SCRIPT_DIR/test_inventory.ini" << 'EOF' [test_containers] ubuntu-20-04-test ansible_host=127.0.0.1 ansible_port=2220 ansible_user=root ansible_ssh_private_key_file=/tmp/test_ansible_key ansible_ssh_common_args='-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' ubuntu-22-04-test ansible_host=127.0.0.1 ansible_port=2221 ansible_user=root ansible_ssh_private_key_file=/tmp/test_ansible_key ansible_ssh_common_args='-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' ubuntu-24-04-test ansible_host=127.0.0.1 ansible_port=2222 ansible_user=root ansible_ssh_private_key_file=/tmp/test_ansible_key ansible_ssh_common_args='-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' debian-11-test ansible_host=127.0.0.1 ansible_port=2223 ansible_user=root ansible_ssh_private_key_file=/tmp/test_ansible_key ansible_ssh_common_args='-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' debian-12-test ansible_host=127.0.0.1 ansible_port=2224 ansible_user=root ansible_ssh_private_key_file=/tmp/test_ansible_key ansible_ssh_common_args='-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' debian-13-test ansible_host=127.0.0.1 ansible_port=2225 ansible_user=root ansible_ssh_private_key_file=/tmp/test_ansible_key ansible_ssh_common_args='-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' alpine-test ansible_host=127.0.0.1 ansible_port=2226 ansible_user=root ansible_ssh_private_key_file=/tmp/test_ansible_key ansible_ssh_common_args='-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' [all:vars] ansible_python_interpreter=/usr/bin/python3 EOF cd "$PARENT_DIR" echo "==========================================" echo "Running Maintenance Playbooks" echo "==========================================" echo "" TOTAL_SUCCESS=0 TOTAL_FAILED=0 echo "1. Running analyze_disk_space.yml..." if timeout 300 ansible-playbook playbooks/analyze_disk_space.yml -i "$SCRIPT_DIR/test_inventory.ini" > "$RESULTS_DIR/analyze_disk_space_run.log" 2>&1; then echo " ✓ analyze_disk_space.yml completed successfully" ((TOTAL_SUCCESS++)) else echo " ✗ analyze_disk_space.yml failed or timed out" ((TOTAL_FAILED++)) fi echo "2. Running cleanup_docker.yml..." if timeout 300 ansible-playbook playbooks/cleanup_docker.yml -i "$SCRIPT_DIR/test_inventory.ini" > "$RESULTS_DIR/cleanup_docker_run.log" 2>&1; then echo " ✓ cleanup_docker.yml completed successfully" ((TOTAL_SUCCESS++)) else echo " ✗ cleanup_docker.yml failed or timed out" ((TOTAL_FAILED++)) fi echo "3. Running archive_logs.yml..." if timeout 300 ansible-playbook playbooks/archive_logs.yml -i "$SCRIPT_DIR/test_inventory.ini" > "$RESULTS_DIR/archive_logs_run.log" 2>&1; then echo " ✓ archive_logs.yml completed successfully" ((TOTAL_SUCCESS++)) else echo " ✗ archive_logs.yml failed or timed out" ((TOTAL_FAILED++)) fi echo "" echo "==========================================" echo "Collecting JSON Reports" echo "==========================================" echo "" TOTAL_JSON=0 for container in ubuntu-20-04-test ubuntu-22-04-test ubuntu-24-04-test debian-11-test debian-12-test debian-13-test alpine-test; do echo "Fetching from $container..." docker exec "$container" /bin/sh -c "find /tmp -name '*_report_*.json' -type f 2>/dev/null" | while read -r file; do filename=$(basename "$file") echo " Found: $filename" docker cp "$container:$file" "$RESULTS_DIR/${container}_$filename" 2>/dev/null && ((TOTAL_JSON++)) done done echo "" echo "==========================================" echo "Test Summary" echo "==========================================" echo "Playbooks successful: $TOTAL_SUCCESS" echo "Playbooks failed: $TOTAL_FAILED" echo "JSON files collected: $TOTAL_JSON" echo "" echo "Results directory: $RESULTS_DIR" echo "" ls -lh "$RESULTS_DIR"/*.json 2>/dev/null | awk '{print $9, $5}'