|
63 | 63 |
|
64 | 64 | # Final status check |
65 | 65 | if [ "$test_ping" = true ] && [ "$test_namespace" = true ]; then |
66 | | - echo "✅ Collector is running and reachable" |
| 66 | + echo "✅ Collector is running and reachable on port ${LOCAL_COLLECTOR_PORT} and namespace ${FULL_NAMESPACE}" |
67 | 67 | exit 100 |
68 | 68 | else |
69 | | - echo "⚠️ No active collector found - searching for available ports..." |
70 | | - for port in {50051..51050}; do |
71 | | - port_is_free=false |
72 | | - if [[ "$PORT_CHECK_CMD" == *"curl"* ]]; then |
73 | | - if ! $PORT_CHECK_CMD "localhost:$port" 2>/dev/null; then |
74 | | - port_is_free=true |
| 69 | + echo "⚠️ No active collector found" |
| 70 | + |
| 71 | + # Only search for alternative port if configured port is in use (test_ping=true) |
| 72 | + if [ "$test_ping" = true ]; then |
| 73 | + echo "⚠️ Configured port ${LOCAL_COLLECTOR_PORT} is in use - searching for other available ports..." |
| 74 | + for port in {50051..51050}; do |
| 75 | + if [ "$port" = "$LOCAL_COLLECTOR_PORT" ]; then |
| 76 | + continue # Skip the port we know is in use |
75 | 77 | fi |
76 | | - else |
77 | | - if ! $PORT_CHECK_CMD "localhost" "$port" 2>/dev/null; then |
78 | | - port_is_free=true |
| 78 | + |
| 79 | + port_is_free=true |
| 80 | + for host in "${hosts[@]}"; do |
| 81 | + if command -v nc &> /dev/null; then |
| 82 | + if nc -z "${host}" "${port}" 2>/dev/null; then |
| 83 | + port_is_free=false |
| 84 | + break |
| 85 | + fi |
| 86 | + elif command -v netcat &> /dev/null; then |
| 87 | + if netcat -z "${host}" "${port}" 2>/dev/null; then |
| 88 | + port_is_free=false |
| 89 | + break |
| 90 | + fi |
| 91 | + else |
| 92 | + if timeout 1 bash -c "</dev/tcp/${host}/${port}" 2>/dev/null; then |
| 93 | + port_is_free=false |
| 94 | + break |
| 95 | + fi |
| 96 | + fi |
| 97 | + done |
| 98 | + |
| 99 | + if [ "$port_is_free" = true ]; then |
| 100 | + echo "✅ Found available port: $port (replacing conflicting configured port ${LOCAL_COLLECTOR_PORT}) for namespace ${FULL_NAMESPACE}" |
| 101 | + sed -i".backup" "s/^LOCAL_COLLECTOR_PORT=.*/LOCAL_COLLECTOR_PORT=${port}/" "${ENV_FILE}" |
| 102 | + break |
79 | 103 | fi |
80 | | - fi |
81 | | - |
82 | | - if [ "$port_is_free" = true ]; then |
83 | | - echo "✅ Found available port: $port" |
84 | | - sed -i".backup" "s/^LOCAL_COLLECTOR_PORT=.*/LOCAL_COLLECTOR_PORT=${port}/" "${ENV_FILE}" |
85 | | - break |
86 | | - fi |
87 | | - done |
| 104 | + done |
| 105 | + else |
| 106 | + echo "✅ Configured port ${LOCAL_COLLECTOR_PORT} is available for namespace ${FULL_NAMESPACE} - will use it for new collector" |
| 107 | + fi |
| 108 | + |
88 | 109 | exit 101 |
89 | 110 | fi |
0 commit comments