51 lines
2.2 KiB
Python
51 lines
2.2 KiB
Python
"""Diagnose remote 7777 stuck: guest-new + messages API + chatwoot health."""
|
|
import os
|
|
import paramiko
|
|
|
|
pw = os.environ["DEPLOY_PASSWORD"]
|
|
c = paramiko.SSHClient()
|
|
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
c.connect("20.191.152.26", username="wakka", password=pw, timeout=30)
|
|
|
|
script = r"""
|
|
set -e
|
|
echo '=== docker ps ==='
|
|
sudo docker ps --filter name=guest-chat --format 'table {{.Names}}\t{{.Status}}'
|
|
|
|
echo '=== chatwoot rails :3000 ==='
|
|
curl -s -o /dev/null -w 'rails root: %{http_code}\n' http://127.0.0.1:3000/ 2>/dev/null || echo rails curl failed
|
|
sudo docker exec guest-chat bash -c 'curl -s -o /dev/null -w "internal rails: %{http_code}\n" http://127.0.0.1:3000/' 2>/dev/null || true
|
|
|
|
echo '=== guest-chat/new ==='
|
|
rm -f /tmp/gc.jar /tmp/g.html
|
|
curl -s -c /tmp/gc.jar http://127.0.0.1:7777/guest-customer-service -o /tmp/g.html
|
|
csrf=$(python3 -c "import re; print(re.search(r'\"csrf_token\":\s*\"([^\"]+)\"', open('/tmp/g.html').read()).group(1))")
|
|
NEW=$(curl -s -b /tmp/gc.jar -X POST http://127.0.0.1:7777/guest-chat/new -H 'Content-Type: application/json' -H "X-CSRF-Token: $csrf" -d '{}')
|
|
echo "$NEW" | head -c 400
|
|
echo
|
|
wt=$(python3 -c "import json,sys; d=json.loads(open('/dev/stdin').read()); print(d.get('widget_token',''))" <<< "$NEW")
|
|
echo widget_token_len=${#wt}
|
|
|
|
echo '=== messages via flask proxy ==='
|
|
curl -s -o /dev/null -w 'proxy messages: %{http_code}\n' "http://127.0.0.1:7777/api/v1/widget/messages?website_token=j1UAjqBgZMWQ8WfczgJSymQx&cw_conversation=$wt"
|
|
curl -s "http://127.0.0.1:7777/api/v1/widget/messages?website_token=j1UAjqBgZMWQ8WfczgJSymQx&cw_conversation=$wt" | head -c 500
|
|
echo
|
|
|
|
echo '=== messages direct chatwoot ==='
|
|
curl -s -o /dev/null -w 'direct messages: %{http_code}\n' "http://127.0.0.1:3000/api/v1/widget/messages?website_token=j1UAjqBgZMWQ8WfczgJSymQx&cw_conversation=$wt" 2>/dev/null || echo direct failed
|
|
|
|
echo '=== FRONTEND_URL ==='
|
|
sudo docker exec guest-chat printenv FRONTEND_URL 2>/dev/null || true
|
|
sudo docker exec guest-chat printenv CHATWOOT_GUEST_BASE_URL 2>/dev/null || true
|
|
|
|
echo '=== recent logs ==='
|
|
sudo docker logs guest-chat --tail 25 2>&1
|
|
"""
|
|
|
|
_, o, e = c.exec_command(script, timeout=120)
|
|
print(o.read().decode())
|
|
err = e.read().decode()
|
|
if err:
|
|
print("ERR:", err[:800])
|
|
c.close()
|