Tags: gokele/ovh
Tags
v0.0.8: VPS 控制中心 + 合同期切换 + DDoS Mitigation
后端
- 新增 32 个 VPS 控制 endpoint (list/电源/重装/快照/任务/二级 DNS/options/终止/续费/合同期/DDoS/统计 等)
- US 区适配:reinstall 走 /rebuild + imageId,template 走 /images/available,变更联系人/重置密码在 US 直接拒
- 服务器控制新增 6 个合同期 endpoint (查/订/撤/到期策略) + 3 个 DDoS Mitigation endpoint
- 反向 DNS 重写走 /ip/{block}/reverse 正确路径,加 DELETE
- ListVps 把 lockStatus 对象拍平成字符串,避免前端渲染崩
- 续费策略 PUT serviceInfos 接口(已有)接 VPS 端点
前端
- 新页面 /vps-control:概览/快照/DDoS/维护 四 tab,顶部状态/系统/到期/续费胶囊条
- 复用现有 RenewalDialog / EngagementDialog / ChangeContactDialog (加 mutation/hooks props 解耦)
- 新增 VpsSnapshotPane / VpsReinstallDialog / VpsMitigationPane / VpsTasksDialog
- 服务器控制顶部续费 + OS pill 可点击触发对应 dialog
- 概览异常时显示告警:VPS 锁定 / 救援模式
- 区域字段中文化(OpenStack 代号 + 老机房代号映射 27 个区域)
- DDoS state 状态机校准 (creationPending/ok/removalPending),过渡态自动 5s 轮询
- IPv6 IP 不显示 Mitigation 按钮(OVH 只支持 IPv4)
- axios 拦截器 /vps-control 路径加入账户注入白名单
bug 修复
- 移除 VPS 监控 (OVH 2024 年废弃 /monitoring + /statistics,无替代端点)
- 模板列表 10 路并发拉取 + 后端缓存 10 分钟(冷加载 15s → 2s)
- TaskType/TaskState 翻译表对齐 OVH 真实 enum(rebootVm/startVm 等带 Vm 后缀)
- 反向 DNS PUT 改 read-modify-write 避免字段被清
v0.0.7: OVH API 返回类型对齐 + 多账户 VPS 区域修复 后端 - changeContact 返回 long[] (任务 ID 数组) 而非对象,之前用 map 解析直接 500 - terminate / confirmTermination 返回 string (确认 token),改用 string 接收 - spla POST 返回 long (新建 ID),不再当对象解析 - ola/ungroup 返回 Task[] 数组 (与 group/aggregation 单 Task 不同) - vps.go 新增 vpsAPIBaseURL(subsidiary),替代多账户用户为空的旧 state.Config.APIBaseURL() 前端 - ChangeContactDialog: 收到 "contact change task is already running" 时自动切到「待审请求」tab,toast 提示用户先处理已有请求 - 错误读取兼容 message / error 双字段,显示 OVH 真实错误而非泛 500
前端 v0.0.4: 队列对话框 chip 选择器 + 价格修复 + Combobox 滚动 - 新增 components/common/OptionGroupSection.tsx 共享 chip 选择器 (servers.tsx 和 queue.tsx 共用) - queue 新建抢购任务:planCode 在 catalog → 显示 chip 选择器, 不在 → 显示手填文本框。二选一不混用,完全用户驱动不预选默认。 切换 planCode 自动清空已选;切换 DC 后 chip 红/绿点收紧到选中 DC - servers.tsx 卡片价格用 catalog defaultOptions 走 computePriceFromOptions, 跟详情对话框初始价格一致(消除"卡片 236 / 弹窗 183"对不上) - 修复 monthlyPrice 把"安装费"条目当月费返回的 bug: OVH 同 plan pricings 数组里安装费跟月费都满足 interval=1+month+default, 只是 capacities 不同。漏掉过滤 capacities=installation 导致月费被错叠 - hasStockWithOption 加 dcCodes 参数,选中 DC 后 chip 收紧只看这些 DC - PlanCodeCombobox 加 onWheel/onTouchMove stopPropagation + overscroll-contain, 修复嵌在 Dialog 里时下拉列表滚不动的问题 - VERSION → 0.0.4 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
抢购对话框: 选配可用性可视化(option 绿红点 + DC 联动) v0.0.3
- 每个 RAM / 存储 / 系统盘 option chip 左边加 1.5px 圆点:
绿 = 该 addon 出现在某个有 DC 有货的 FQN;红 = 没货
- 选中 DC 后 chip 收紧到"只看这些 DC 内"重判,
避免"chip 绿但目标 DC 不卖"
- 带宽 / vRack / CPU / other 永远绿(OVH FQN 不含这些段,跟主机库存解耦)
- DC 红绿沿用聚合("该 DC 任意配置有货"),跟外面卡片一致
- chip 去掉长技术 ID 显示(如 softraid-4x3840nvme-pcie-gen4-24adv01-v2),
只留友好名 SOFTRAID 4× 3840GB NVME
实现:
- use-availability: buildVariantIndex / variantCoversAll / hasStockWithOption /
fqnMatchesOption / variantDcStatus + 双向前缀匹配
(OVH availability FQN 段是短前缀,catalog option.value 带 plan 后缀,
strict equality 永远不命中 → 全红 bug)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
docs: README 同步多账户 / 自动检测更新 / 表结构调整 - 项目定位改为"灵感来自 coolci/OVH-BUY",澄清非二开 - 主要功能加"多账户"小节、删"配置绑定狙击"、加"自动检测更新" - OvhCredsGate 描述改为"至少一个账户",首次访问流程同步 - 持久化表 7 → 8: 加 ovh_accounts,删 config_sniper_tasks, queue / history / monitor 等加 account_id 关联说明 - 鉴权白名单同步 /version 系列 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>