# -*- coding: utf-8 -*-
"""
上传 users.json 到服务器
"""

import paramiko
import os
import time

# 从环境变量读取服务器配置
ssh_host = os.environ.get('SSH_HOST', '192.168.5.60')
ssh_user = os.environ.get('SSH_USER', 'ubains')
ssh_password = os.environ.get('SSH_PASSWORD', '')

if not ssh_password:
    print("错误：SSH_PASSWORD 环境变量未设置")
    print("请设置环境变量或创建 .env 文件")
    exit(1)

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ssh_host, username=ssh_user, password=ssh_password)

# 上传 users.json
print('上传 users.json...')
sftp = ssh.open_sftp()
sftp.put(r'E:\github\ubains-module-test\develop\.claude\skills\Troubleshoot\code\web\users.json', '/opt/troubleshoot/web/users.json')
sftp.close()
print('OK: users.json 已上传')

# 重启服务
print('重启服务...')
stdin, stdout, stderr = ssh.exec_command('pkill -f "python.*server.py"')
stdout.read()
time.sleep(2)

stdin, stdout, stderr = ssh.exec_command('cd /opt/troubleshoot/web && nohup python server.py > /tmp/troubleshoot.log 2>&1 &')
stdout.read()
time.sleep(3)
print('OK: 服务已重启')

ssh.close()
print('\n完成！')
print('新增普通用户账号：')
print('  用户名：user')
print('  密码：User@2026')
print('  角色：普通用户')