29 lines
1.0 KiB
Markdown
29 lines
1.0 KiB
Markdown
|
|
# 宝塔未安装时一键登录友好提示
|
|||
|
|
|
|||
|
|
**日期**:2026-07-09
|
|||
|
|
|
|||
|
|
## 摘要
|
|||
|
|
|
|||
|
|
未安装宝塔的子机点击「宝塔一键登录」时,不再抛出 Python `ModuleNotFoundError: public` 堆栈,改为明确中文:`该机未检测到宝塔面板…`。
|
|||
|
|
|
|||
|
|
## 动机
|
|||
|
|
|
|||
|
|
运维误对无宝塔机器点登录,SSH 回退脚本 `import public` 失败,前端只显示晦涩 Traceback。
|
|||
|
|
|
|||
|
|
## 涉及文件
|
|||
|
|
|
|||
|
|
| 路径 | 说明 |
|
|||
|
|
|------|------|
|
|||
|
|
| `server/infrastructure/btpanel/ssh_login.py` | `BtPanelNotInstalledError`、`humanize_ssh_login_error`、SSH 前检测 `common.py` |
|
|||
|
|
| `server/application/services/btpanel_service.py` | bootstrap `bt_not_installed` 不再回退 SSH |
|
|||
|
|
| `server/api/btpanel.py` | 400 + 友好 `detail` |
|
|||
|
|
| `tests/test_btpanel_ssh_login.py` | 未安装 / public 模块报错映射 |
|
|||
|
|
|
|||
|
|
## 验证
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
.venv/bin/pytest tests/test_btpanel_ssh_login.py tests/test_btpanel_temp_login_ttl.py -q
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
对未装宝塔机器 `POST /api/btpanel/servers/{id}/login-url` → HTTP 400,detail 含「未检测到宝塔面板」。
|