Files
smom-dbis-138/scripts/deployment/wait-for-terraform.sh

62 lines
1.9 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
# Wait for Terraform to complete and monitor progress
set -e
echo "=== Waiting for Terraform to Complete ==="
echo ""
TERRAFORM_PID=""
if ps aux | grep -i "terraform apply" | grep -v grep > /dev/null; then
TERRAFORM_PID=$(ps aux | grep -i "terraform apply" | grep -v grep | awk '{print $2}' | head -1)
echo "✅ Terraform Process Found (PID: $TERRAFORM_PID)"
echo ""
echo "Monitoring progress (press Ctrl+C to stop)..."
echo ""
while ps -p "$TERRAFORM_PID" > /dev/null 2>&1; do
RUNTIME=$(ps -p "$TERRAFORM_PID" -o etime= 2>/dev/null | tr -d ' ' || echo "unknown")
echo "[$(date +%H:%M:%S)] Terraform still running (Runtime: $RUNTIME)"
if [ -f /tmp/terraform-apply-retry.log ]; then
LOG_SIZE=$(du -h /tmp/terraform-apply-retry.log | cut -f1)
LOG_LINES=$(wc -l < /tmp/terraform-apply-retry.log)
echo " Log: $LOG_SIZE, $LOG_LINES lines"
# Check for completion
if tail -5 /tmp/terraform-apply-retry.log | grep -q "Apply complete"; then
echo ""
echo "✅ Deployment Complete!"
break
fi
fi
sleep 30
done
if ! ps -p "$TERRAFORM_PID" > /dev/null 2>&1; then
echo ""
echo "✅ Terraform Process Completed"
echo ""
echo "Checking result..."
if [ -f /tmp/terraform-apply-retry.log ]; then
if tail -5 /tmp/terraform-apply-retry.log | grep -q "Apply complete"; then
echo "✅ Deployment Successful!"
elif tail -5 /tmp/terraform-apply-retry.log | grep -q "Error"; then
echo "⚠️ Deployment had errors - check log"
else
echo "⚠️ Deployment status unclear - check log"
fi
fi
fi
else
echo "⚠️ No Terraform process found"
echo ""
echo "Checking for state lock..."
cd terraform/well-architected/cloud-sovereignty
echo " State lock may be stale - consider force unlock if needed"
fi
echo ""