#!/bin/bash
set -e
ADMIN_PWD=$(aws secretsmanager get-secret-value --region us-west-2 --secret-id goku/rds/prod-agent-datastore/db_admin_password --query SecretString --output text)
AURORA_HOST=prod-agent-datastore.cluster-cceh7mp1wrym.us-west-2.rds.amazonaws.com

echo "=== Create scout DB if missing ==="
EXISTS=$(PGPASSWORD=$ADMIN_PWD psql -h $AURORA_HOST -U goku -d postgres -t -c "SELECT 1 FROM pg_database WHERE datname='scout'" 2>&1)
echo "Check result: $EXISTS"
if echo "$EXISTS" | grep -q "1"; then
  echo "scout database already exists"
else
  PGPASSWORD=$ADMIN_PWD psql -h $AURORA_HOST -U goku -d postgres -c "CREATE DATABASE scout"
  echo "scout database created"
fi

echo "=== Update FEEDBACK_DB.PASSWORD in secrets.yaml ==="
python3 -c "
import subprocess, re
pwd = subprocess.check_output(['aws','secretsmanager','get-secret-value','--region','us-west-2','--secret-id','goku/rds/prod-agent-datastore/db_admin_password','--query','SecretString','--output','text'], text=True).strip()
f='/etc/goku/pharos-scout-dev/secrets.yaml'
c=open(f).read()
c=re.sub(r'PASSWORD:.*', 'PASSWORD: \"' + pwd + '\"', c)
open(f,'w').write(c)
print('secrets.yaml password updated')
"

echo "=== Kill stale socket_handler ==="
docker ps --format "{{.ID}} {{.Command}}" | grep socket_handler | awk '{print $1}' | xargs -r docker kill 2>/dev/null || echo "none running"

echo "=== Waiting 75s for cron to restart ==="
sleep 75

echo "=== Final socket_handler log ==="
tail -20 /var/log/goku/pharos-scout-dev/v1.1.16/feedback_socket.log
