Skip to content

v0.15.0

Choose a tag to compare

@github-actions github-actions released this 19 Oct 12:34
  • SSH 归档主连接保持到批次结束,避免空闲超时后密码认证失效;关闭后释放退出清理登记,收尾取消保留原始失败与已完成回执。

  • 使用 Ruby 内置的 IO 等待接口,移除已弃用的 io-wait 依赖,避免示例和命令行输出弃用警告。

  • prepare_command 仅接受 Command 或 nil;非法返回值在替代命令发送前转为带原脚本位置的 ScriptError,保留此前完成步骤且不展开返回值。

  • 拓扑 CLI 在交付异步取消前固定完成回执或同步失败,避免已完成应用被记成状态不明的中断;阻塞操作仍可取消。

  • PTY 输出预算直接使用 expect-pty 的公开 buffer_bytesize 查询,减少大输出背压时的累计正文复制;输出上限不受日志开关影响。

  • 不兼容:要求 Ruby 3.4+ 与 expect-pty 0.9.4+;PTY 传输和 SSH 归档认证统一使用 Session、transcript、spawn(raw: true) 与 expect,移除旧接口分支及旧依赖能力探测,CI 与文档同步更新。

  • 单设备接口业务收敛为 device.interfaces.neighbors/descriptions/plan/audit/apply/sync;直接迁移原 Topology 实现至 Interfaces 与 device/interfaces/,移除旧设备平铺入口、常量和加载路径。计划、审计、策略及 CLI/批量调用同步迁移,Netdisco 多设备方法和 Batch 返回值不变。

  • 接口规划、审计与同步统一在设备访问前校验格式选项;规划的邻居和描述采集全程持有会话租约,接口对象复用时仍重新读取现场证据。

  • 配置与接口描述批次复用 Worker 的结果发布机制;取消后保留已完成回执,区分执行中断与未启动任务,提供 Operation#last_batch 和 Fleet#last_operation_batch,原始中断仍传播且不重放命令。

  • 文本报告与终端进度共用诊断白名单,未知错误码和类型不再作为自由文本输出。

  • 追加敏感命令的脱敏范围覆盖提示符回调及异常归一化;无秘密规则的日志脱敏跳过过滤器分配,保留独立二进制返回值。

  • 地址成员集合改名为 Netdisco::AddressSet,文件为 netdisco/address_set.rb;移除 AddressFilter 旧名称。

  • Netdisco 多设备描述动作使用 plan_descriptions、apply_descriptions、sync_descriptions,移除更早的长方法名,更新批次操作名称;单设备入口见上方 device.interfaces 迁移。

  • 设备批次操作统一为单数 Netdisco::Operation 与 netdisco/operation/,同步入口、结果对象及 Fleet 调用,移除复数旧接口。

  • SSH 归档集中到 netdisco/ssh/archive/,统一为 SSH::Archive::Client/Pool 与 worker.py;认证独立为 SSH::Authentication,移除旧加载路径及常量。

  • 拓扑默认输出中文分类摘要和实际配置来源,区分待核实证据与执行失败,取消重复的逐设备刷屏;详细模式仍显示每台原因,JSON 保留状态码并增加统计。

  • 拓扑计划按设备导出 scripts/设备名-IP.cfg 和 devices/设备名-IP.txt,命名与备份一致;索引记录路径及命令文件 SHA-256,导出失败阻止应用,无变更不生成空命令文件。

  • 拓扑规划、同步和下发前重验共用未知邻居身份校验;占位符名称或端口不生成描述命令,逐接口保留问题和可核实的其他变更。

  • 描述比较保留语义一致的旧值,忽略大小写和同类型端口别名差异;补齐 G、SE/Smartrate-Ethernet,Netdisco 可用 topology.neighbor_name_prefixes 声明既有名称前缀,仍按当前模板生成真正需要修改的描述。

  • 高并发执行前为 SSH 管道、设备伪终端、日志和锁预留文件描述符额度,必要时在本进程硬上限内提高软额度;不能满足时先拒绝整批,资源耗尽类型保留在受控诊断中。

  • SSH 主连接预检最多四条并行,失败或取消时回收全部连接;多服务器按各自选中设备数分配连接,避免小服务器按整批并发过量建连。

  • 批次、拓扑和通用线程池的最大并发统一提高至 500,CLI、YAML、环境配置及交互提示共用相同范围。

  • 不兼容调整:并发参数统一为 parallel:,YAML 使用 parallel、环境变量使用 NC_PARALLEL、命令行使用 --parallel;移除旧名称,不提供兼容别名。

  • SSH 归档按批次并发分配多个主连接,保留单连接会话上限及跨连接目标锁,修复并发 50 实际被压缩为 4 的吞吐下降。

  • SSH 归档在设备任务前使用实际服务器进程预检私有目录和写权限;公共目录故障只报一次,避免整批逐设备归档失败。

  • SSH 归档预检区分密码未配置与已配置但连接失败,提示 .env 特殊字符引用规则,避免误导用户重复设置密码。

  • 不兼容调整:并行入口统一为 Parallel 和 parallel/,内置 TextFSM 资源改为 textfsm/;旧并发常量及加载路径移除。

  • 增加 Centec 配置采集、保存与原生 TFTP 导出;修复 Centec、Cisco IOS/NX-OS 接受 > 登录但普通命令无法完成的问题,不隐式提权。

  • Radware 核对设备回显中的实际上传目标,目标不一致时保留完成回执并明确报错,不再伪造请求路径成功。

  • 拒绝全空白 YAML 筛选项及单主机参数中的网段,统一重复主机校验;清单预览过滤终端控制符。

  • 备份取消时保留已完成产物和回执,区分中断与未开始任务并保存摘要;任务返回交接及多服务器关闭故障不覆盖原始中断,也不自动重放设备命令。

  • TFTP 支持无密码 URI 的 SSH 双端归档及非交互认证;服务器目录和锁通过权限、所有者及固定描述符保护,认证取消时回收临时目录。

  • 修复 SSH 归档独立加载缺失错误依赖,以及路径中的查询、片段、百分号字符被 URI 重新解释的问题;明确使用路径编解码规则,避免默认解析器弃用警告。

  • 配置采集在安全提示符场景复用渲染结果,保留正文完整性与重绘边界;补齐库方法的中文用途和复杂逻辑说明。

  • 发布包使用独立公开模板 backup.example.yml,排除运行中的现场配置;同步加载路径、贡献指南与迁移说明。