wait_for_services.sh 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #!/bin/bash
  2. # Wait for services to be ready
  3. set -e
  4. OPENBAO_ADDR=${OPENBAO_ADDR:-"http://127.0.0.1:8200"}
  5. SEAWEEDFS_S3_ENDPOINT=${SEAWEEDFS_S3_ENDPOINT:-"http://127.0.0.1:8333"}
  6. MAX_WAIT=120 # 2 minutes
  7. echo "🕐 Waiting for services to be ready..."
  8. # Wait for OpenBao
  9. echo " Waiting for OpenBao at $OPENBAO_ADDR..."
  10. for i in $(seq 1 $MAX_WAIT); do
  11. if curl -s "$OPENBAO_ADDR/v1/sys/health" >/dev/null 2>&1; then
  12. echo " ✅ OpenBao is ready!"
  13. break
  14. fi
  15. if [ $i -eq $MAX_WAIT ]; then
  16. echo " ❌ Timeout waiting for OpenBao"
  17. exit 1
  18. fi
  19. sleep 1
  20. done
  21. # Wait for SeaweedFS Master
  22. echo " Waiting for SeaweedFS Master at http://127.0.0.1:9333..."
  23. for i in $(seq 1 $MAX_WAIT); do
  24. if curl -s "http://127.0.0.1:9333/cluster/status" >/dev/null 2>&1; then
  25. echo " ✅ SeaweedFS Master is ready!"
  26. break
  27. fi
  28. if [ $i -eq $MAX_WAIT ]; then
  29. echo " ❌ Timeout waiting for SeaweedFS Master"
  30. exit 1
  31. fi
  32. sleep 1
  33. done
  34. # Wait for SeaweedFS Volume Server
  35. echo " Waiting for SeaweedFS Volume Server at http://127.0.0.1:8080..."
  36. for i in $(seq 1 $MAX_WAIT); do
  37. if curl -s "http://127.0.0.1:8080/status" >/dev/null 2>&1; then
  38. echo " ✅ SeaweedFS Volume Server is ready!"
  39. break
  40. fi
  41. if [ $i -eq $MAX_WAIT ]; then
  42. echo " ❌ Timeout waiting for SeaweedFS Volume Server"
  43. exit 1
  44. fi
  45. sleep 1
  46. done
  47. # Wait for SeaweedFS S3 API
  48. echo " Waiting for SeaweedFS S3 API at $SEAWEEDFS_S3_ENDPOINT..."
  49. for i in $(seq 1 $MAX_WAIT); do
  50. if curl -s "$SEAWEEDFS_S3_ENDPOINT/" >/dev/null 2>&1; then
  51. echo " ✅ SeaweedFS S3 API is ready!"
  52. break
  53. fi
  54. if [ $i -eq $MAX_WAIT ]; then
  55. echo " ❌ Timeout waiting for SeaweedFS S3 API"
  56. exit 1
  57. fi
  58. sleep 1
  59. done
  60. echo "🎉 All services are ready!"
  61. # Show service status
  62. echo ""
  63. echo "📊 Service Status:"
  64. echo " OpenBao: $(curl -s $OPENBAO_ADDR/v1/sys/health | jq -r '.initialized // "Unknown"')"
  65. echo " SeaweedFS Master: $(curl -s http://127.0.0.1:9333/cluster/status | jq -r '.IsLeader // "Unknown"')"
  66. echo " SeaweedFS Volume: $(curl -s http://127.0.0.1:8080/status | jq -r '.Version // "Unknown"')"
  67. echo " SeaweedFS S3 API: Ready"
  68. echo ""