47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
#!/usr/bin/env python3
|
|
from __future__ import annotations
|
|
|
|
import os
|
|
import socket
|
|
from pathlib import Path
|
|
from urllib.parse import urlparse
|
|
|
|
from dotenv import load_dotenv
|
|
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
load_dotenv(ROOT / ".env", override=False)
|
|
|
|
NAMES = [
|
|
"TIM_COMPLETE_INVOICES_URL", "TIM_URL_CONSULTA_VAS", "TIM_VAS_HISTORY_URL",
|
|
"TIM_URL_BLOQUEIO_VAS", "TIM_CANCELAMENTO_URL", "TIM_CONTRATO_URL",
|
|
"TIM_CUSTOMER_CONTESTATION_URL", "TIM_PROTOCOL_URL",
|
|
"TIM_SERVICE_REQUEST_STATUS_URL", "TIM_TRACKING_ACTIVITIES_URL",
|
|
"TIM_SMS_URL", "TIM_URL_INVOICE_RECOVER", "TIM_PROFILE_FULL_URL",
|
|
"TIM_DIVERGENCIA_URL", "LANGFUSE_HOST", "OTEL_EXPORTER_OTLP_LOGS_ENDPOINT",
|
|
]
|
|
|
|
|
|
def probe(url: str) -> str:
|
|
if not url:
|
|
return "NOT_CONFIGURED"
|
|
parsed = urlparse(url if "://" in url else "http://" + url)
|
|
host = parsed.hostname
|
|
port = parsed.port or (443 if parsed.scheme == "https" else 80)
|
|
if not host:
|
|
return "INVALID_URL"
|
|
try:
|
|
socket.getaddrinfo(host, port)
|
|
except OSError as exc:
|
|
return f"DNS_FAIL: {exc}"
|
|
try:
|
|
with socket.create_connection((host, port), timeout=3):
|
|
return "TCP_OK"
|
|
except OSError as exc:
|
|
return f"TCP_FAIL: {exc}"
|
|
|
|
|
|
print(f"TIM_GATEWAY_MODE={os.getenv('TIM_GATEWAY_MODE')} TIM_USE_MOCK_GATEWAY={os.getenv('TIM_USE_MOCK_GATEWAY')}")
|
|
for name in NAMES:
|
|
value = os.getenv(name, "")
|
|
print(f"{name:38} {probe(value)} {value}")
|