mirror of
https://github.com/hansjone/netx.git
synced 2026-10-09 03:10:46 +08:00
Decouple cutover HF from portrait and tighten ops UI.
Portrait stays on biz-monitor; cutover create/ensure owns purpose=cutover_hf slots with project collect override, multi-interval bindings, window pause, and industrial detail UX. Also expand ZTE collect/config parsers and TextFSM for route/BGP/L2VPN/VRRP coverage. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
a65c9fc420
commit
285c19e5a3
67 changed files with 9510 additions and 723 deletions
|
|
@ -253,6 +253,11 @@ const zh = {
|
|||
filterColumn: "筛选列",
|
||||
filterAllCols: "全部列",
|
||||
listFilterPh: "筛选网元 / IP / 厂商 / 状态",
|
||||
purposeFilter: "任务用途",
|
||||
purposeAll: "全部用途",
|
||||
purposePortrait: "画像",
|
||||
purposeCutoverHf: "割接高频",
|
||||
colPurpose: "用途",
|
||||
colNe: "网元",
|
||||
colStatus: "状态",
|
||||
colLast: "最近采集",
|
||||
|
|
@ -365,7 +370,10 @@ const zh = {
|
|||
"每行一对:操作前接口,操作后接口(逗号/Tab/竖线分隔)。例:\ngei-0/1/1,gei-0/1/2\nxgei-0/1/0,xgei-0/2/0\n# 井号开头为注释。不是 A,B/C,D 这种斜杠分组。",
|
||||
mappingSaved: "映射已保存",
|
||||
mappingOptionalHint:
|
||||
"可选。留空=忽略本端端口改名,按非接口 Key 对齐。填写后才做端口映射校验。",
|
||||
"可选。留空=忽略本端端口改名,按非接口 Key 对齐。填写后才做端口映射校验。主接口映射会自动覆盖 .子接口(后缀不变)。",
|
||||
ifaceNormalize: "接口归一化",
|
||||
ifaceNormalizeHint:
|
||||
"模板级规则,每行:简写,规范名。先归一化再端口映射。例:\nGE,gei\nSG,smartgroup\nXGE,xgei",
|
||||
createJob: "建立比对任务",
|
||||
defaultJobName: "割接比对",
|
||||
jobName: "名称",
|
||||
|
|
@ -469,46 +477,77 @@ const zh = {
|
|||
title: "割接监控",
|
||||
hint: "与业务对比独立:相对基线漂移 + 本批预期 + 老/新双端判定。复用采集任务与端口映射。",
|
||||
hintPort: "当前监控项:端口状态(interface_brief / admin·phy·prot)。选基线 → 勾选本批端口 → 判定看板。",
|
||||
hintShort: "监控模板定判定规则;绑老/新采集与双基线 → 勾预期 → 看板评估。",
|
||||
hintShort: "选老/新设备与监控模板,创建后自动高频采集;基线来自业务监控画像。",
|
||||
create: "创建任务",
|
||||
createHint: "先填任务名并绑定老/新业务监控采集任务;映射与基线可稍后在详情里补。",
|
||||
createHintShort: "任务名 + 老/新采集任务即可创建;模板、映射、基线可稍后补。",
|
||||
createHint:
|
||||
"除画像基线外,整条割接流程在本页完成;创建后自动生成业务监控高频任务并按计划执行。",
|
||||
createHintShort:
|
||||
"选老/新设备 → 监控模板与采集项 → 周期/窗口 → 基线(画像)→ 端口映射 → 创建。后台自动建高频任务。",
|
||||
pickOldNe: "老设备",
|
||||
pickNewNe: "新设备",
|
||||
pickNe: "选择设备",
|
||||
pickNeHint: "点击选择网元",
|
||||
hideNePicker: "收起列表",
|
||||
nePairReady: "老/新设备已选好,可进入下一步;点击上方卡片可重新选择。",
|
||||
needNePair: "请填写任务名并选择老/新设备",
|
||||
needProjectName: "请填写任务名称",
|
||||
needMonitorTemplate: "请选择监控模板",
|
||||
needMetrics: "请至少勾选一项监控项",
|
||||
noPortraitBaseline: "该设备尚无画像采集任务或批次,请先在业务监控跑通画像后再选基线(可稍后补)。",
|
||||
baselineOptionalHint: "基线可稍后在详情里补;有画像批次时可在此直接选定。",
|
||||
metricInterval: "分项周期(秒)",
|
||||
metricIntervalOptional: "分项周期(可选)",
|
||||
metricIntervalHint: "留空则使用上方全局周期;填写后该监控项会单独建高频任务。",
|
||||
scheduleHint: "按本机时间填写窗口,入库为 UTC;窗口外调度器自动暂停高频任务。",
|
||||
sectionSchedule: "采集周期与窗口",
|
||||
sectionBaseline: "基线与映射",
|
||||
sectionDevices: "老 / 新设备",
|
||||
sectionMetrics: "监控项",
|
||||
createSteps: "创建步骤",
|
||||
stepDevices: "设备",
|
||||
stepTemplate: "模板",
|
||||
stepSchedule: "周期",
|
||||
stepBaseline: "基线",
|
||||
next: "下一步",
|
||||
back: "上一步",
|
||||
colHf: "高频",
|
||||
hfReady: "已建",
|
||||
hfMissing: "未建",
|
||||
showCreateMore: "更多:模板 / 映射 / 基线",
|
||||
hideCreateMore: "收起更多",
|
||||
setupHintShort: "采集任务创建后固定;此处配置监控模板、映射与双基线。",
|
||||
setupHintShort: "画像任务用于基线;高频任务用于窗口内采集。此处配置模板、采集项、窗口与双基线。",
|
||||
createProject: "创建任务",
|
||||
projectName: "任务名称",
|
||||
projectNamePh: "例如:CN1/CN2 第1夜割接",
|
||||
projectNamePh: "例如:PE-A / PE-B 割接-1",
|
||||
sectionName: "1. 任务名称",
|
||||
sectionTasks: "2. 绑定采集任务(必填)",
|
||||
sectionTasksHint: "分别选择老设备、新设备上的业务监控任务;两侧不能为空。",
|
||||
sectionOptional: "3. 监控模板、映射与基线(可选)",
|
||||
sectionOptionalHint: "可先跳过,创建后再到「基线配置」里设置。未选监控模板时默认绑端口割接监控。",
|
||||
sectionOptionalHint: "可先跳过,创建后再到「基线配置」里设置。未选监控模板时使用系统默认。",
|
||||
sectionPair: "已绑定采集任务",
|
||||
sectionPairHint: "采集任务在创建时绑定;此处可调整监控模板、映射与基线。",
|
||||
sectionBaseline: "基线批次",
|
||||
sectionBaselineHint: "老侧与新侧基线均必填;老侧用于列出本批预期对象,新侧参与双端判定。",
|
||||
optionalNone: "不选",
|
||||
monitorTemplate: "监控模板",
|
||||
monitorTemplateHint: "决定对比哪些 metric 与双端成功语义;默认端口割接监控。",
|
||||
monitorTemplateHint: "决定对比哪些 metric 与双端成功语义;默认绑定系统默认监控模板。",
|
||||
compareTemplate: "对比模板",
|
||||
compareTemplateBound: "绑定对比模板:{{name}}",
|
||||
portMappingHint:
|
||||
"有映射时,带接口字段的监控项只比映射内的口(这些口必须在割接后出现)。映射外的同名口不参与迁移对比;老口 down、新口同名 up 记为异常。未配映射则按同名直比。BGP/PW 仍用本批预期勾选。",
|
||||
baselineNeedTask: "请先选择对应采集任务",
|
||||
baselinePickHint: "从该任务的历史采集批次中选择",
|
||||
oldTask: "老设备采集任务",
|
||||
newTask: "新设备采集任务",
|
||||
oldTask: "老设备画像任务",
|
||||
newTask: "新设备画像任务",
|
||||
portMapping: "端口映射",
|
||||
oldBaseline: "老设备基线批次",
|
||||
newBaseline: "新设备基线批次",
|
||||
needProjectFields: "请填写任务名并选择老/新采集任务",
|
||||
needProjectFields: "请填写任务名并选择老/新画像任务",
|
||||
needExpectPorts: "请先勾选本批预期迁移的对象",
|
||||
needBaselineFirst: "请先保存老设备基线批次,才能列出预期对象",
|
||||
needBaselineFirst: "先设基线",
|
||||
needBothBaselines: "请先保存老、新两侧基线批次后再评估",
|
||||
errOldBaselineRequired: "缺少老设备基线批次",
|
||||
errNewBaselineRequired: "缺少新设备基线批次",
|
||||
needBizStateTasks: "尚无业务监控任务,请先创建:",
|
||||
needBizStateTasks: "尚无业务监控(画像)任务,请先创建:",
|
||||
projectCreated: "任务已创建",
|
||||
projects: "任务",
|
||||
empty: "暂无割接任务。",
|
||||
|
|
@ -533,20 +572,20 @@ const zh = {
|
|||
tabSetup: "基线配置",
|
||||
tabBatches: "割接批次",
|
||||
tabBoard: "判定看板",
|
||||
saveBaseline: "保存基线/映射/模板",
|
||||
saveBaseline: "保存配置",
|
||||
baselineSaved: "基线已保存",
|
||||
pickExpectPorts: "本批预期对象(来自老基线)",
|
||||
portFilterPh: "筛选对象 / 描述",
|
||||
emptyBaselinePorts: "基线中无对应 metric 数据(确认监控模板与采集任务已勾选相应 profile)",
|
||||
pickExpectPorts: "本批预期",
|
||||
portFilterPh: "筛选",
|
||||
emptyBaselinePorts: "基线无数据",
|
||||
batchLabel: "批次标签",
|
||||
defaultBatchLabel: "第N晚",
|
||||
expectPorts: "本批预期端口(老侧)",
|
||||
expectPortsPh: "逗号或换行分隔",
|
||||
createBatch: "新建批次",
|
||||
createBatch: "新建",
|
||||
batchCreated: "批次已创建",
|
||||
batches: "批次",
|
||||
startBatch: "本批开始",
|
||||
finishBatch: "本批完成",
|
||||
startBatch: "启动",
|
||||
finishBatch: "收工",
|
||||
evaluate: "立即判定",
|
||||
evaluated: "判定完成",
|
||||
statusUpdated: "状态已更新",
|
||||
|
|
@ -554,12 +593,12 @@ const zh = {
|
|||
metricPort: "端口状态",
|
||||
progress: "进度",
|
||||
anomaly: "异常",
|
||||
onlyExpect: "仅看预期对象",
|
||||
onlyExpect: "仅预期",
|
||||
onlyExpectHint: "默认显示全部漂移;勾选后只看本批预期",
|
||||
pinCurrentBatches: "当前采集批次",
|
||||
pinOldBatch: "老侧当前批",
|
||||
pinNewBatch: "新侧当前批",
|
||||
pinLatest: "自动最新成功批",
|
||||
pinOldBatch: "老侧当前",
|
||||
pinNewBatch: "新侧当前",
|
||||
pinLatest: "最新",
|
||||
runHistory: "判定历史",
|
||||
runLatest: "最新一次",
|
||||
colRuleHit: "命中规则",
|
||||
|
|
@ -568,6 +607,31 @@ const zh = {
|
|||
colMetric: "监控项",
|
||||
colKey: "对象",
|
||||
colPort: "老侧端口",
|
||||
openRedChip: "红单 {{n}}",
|
||||
metaPortrait: "画像",
|
||||
metaHf: "HF",
|
||||
metaBaseline: "基线",
|
||||
baselineOk: "已设",
|
||||
baselineMissing: "缺",
|
||||
needBaselineFirst: "先设基线",
|
||||
enableHighfreq: "开启高频",
|
||||
highfreqReady: "高频已就绪",
|
||||
collectNow: "立即采集",
|
||||
collectTriggered: "已触发采集",
|
||||
openBizState: "业务监控",
|
||||
hfNotBound: "未绑定",
|
||||
projectCollectMetrics: "采集项",
|
||||
hfInterval: "周期(秒)",
|
||||
hfStart: "开始",
|
||||
hfEnd: "结束",
|
||||
markProjectDone: "完成并停HF",
|
||||
confirmProjectDone: "确认完成项目并暂停全部高频?",
|
||||
projectMarkedDone: "已完成,高频已停",
|
||||
deleteProject: "删除",
|
||||
confirmDeleteProject: "确认删除项目?将停高频并清批次记录。",
|
||||
projectDeleted: "已删除",
|
||||
acceptPassedShort: "通过",
|
||||
acceptFailedShort: "未过",
|
||||
colMapped: "映射新口",
|
||||
colDesc: "描述",
|
||||
colOldPort: "老端口",
|
||||
|
|
@ -586,27 +650,38 @@ const zh = {
|
|||
verdictNotInvolved: "未涉及",
|
||||
verdictUnexpected: "意外新增",
|
||||
verdictOk: "正常",
|
||||
enableHighfreq: "开启高频采集",
|
||||
highfreqHint:
|
||||
"按当前监控模板的 collect_metric_ids(空则取对比模板全量)为老/新设备各建或复用高频采集任务并勾选对应 profile。",
|
||||
highfreqReady: "高频采集任务已就绪(已绑定到本任务)",
|
||||
collectNow: "立即采集老+新",
|
||||
collectTriggered: "已触发采集",
|
||||
openBizState: "打开业务监控",
|
||||
boundTasks: "当前绑定采集任务",
|
||||
acceptTitle: "本批验收小结",
|
||||
acceptPassed: "本批验收通过",
|
||||
acceptFailed: "本批验收未通过(红单 {{n}},可带红开下一批)",
|
||||
acceptPassedShort: "通过",
|
||||
acceptFailedShort: "未通过",
|
||||
newBaselineMissingBanner: "这些表没有可用的新侧基线内容,判定不可信:{{metrics}}",
|
||||
acceptCarryHint: "验收不过不拦截:可新建下一批继续;红单保留留痕,可手动关闭。",
|
||||
openRedHint: "任务仍有 {{n}} 条未关闭红单(带红继续)",
|
||||
redTitle: "红单留痕",
|
||||
highfreqHint: "",
|
||||
boundTasks: "绑定任务",
|
||||
oldPortraitTask: "老画像",
|
||||
newPortraitTask: "新画像",
|
||||
oldHfTask: "老HF",
|
||||
newHfTask: "新HF",
|
||||
projectCollectHint: "",
|
||||
hfWindowInactive: "高频窗口未到/已结束,或项目已完成,当前不可采集",
|
||||
baselinePortraitOnly: "",
|
||||
collectSkipped: "未采",
|
||||
collectSkippedBanner: "未采:{{metrics}}",
|
||||
currentMissing: "缺当前",
|
||||
currentMissingBanner: "缺当前批次:{{metrics}}",
|
||||
highfreqReadyInactive: "高频已绑定(窗口未开,未立即采集)",
|
||||
collectPartial: "部分失败(成功 {{ok}} / 失败 {{fail}})",
|
||||
confirmProjectDone: "确认完成项目并暂停全部高频?",
|
||||
projectMarkedDone: "已完成,高频已停",
|
||||
confirmDeleteProject: "确认删除项目?将停高频并清批次记录。",
|
||||
projectDeleted: "已删除",
|
||||
errMetricNeedsBindings: "监控项「{{metric}}」需要参数绑定({{params}}),割接高频暂不支持,请去掉该项",
|
||||
errNoProfileForMetric: "监控项「{{metric}}」在当前设备厂商下无可用采集 profile",
|
||||
acceptTitle: "本批验收",
|
||||
acceptPassed: "验收通过",
|
||||
acceptFailed: "验收未过(红单 {{n}})",
|
||||
newBaselineMissingBanner: "缺新基线:{{metrics}}",
|
||||
acceptCarryHint: "可带红开下一批",
|
||||
openRedHint: "红单 {{n}}",
|
||||
redTitle: "红单",
|
||||
redOpen: "未关闭",
|
||||
resolveRed: "关闭",
|
||||
redResolved: "红单已关闭",
|
||||
batchCreatedWithRed: "批次已创建(当前有 {{n}} 条未关闭红单,允许带红继续)",
|
||||
redResolved: "已关闭",
|
||||
batchCreatedWithRed: "已建批(红单 {{n}})",
|
||||
colStatus: "状态",
|
||||
verdictUnfinished: "未完成",
|
||||
},
|
||||
|
|
@ -626,7 +701,7 @@ const zh = {
|
|||
listFilterPh: "筛选名称 / 对比模板 / 备注",
|
||||
kpiTotal: "模板数",
|
||||
colName: "名称",
|
||||
namePh: "例如:端口+BGP 割接监控",
|
||||
namePh: "例如:状态割接监控",
|
||||
colCompare: "对比模板",
|
||||
colCollect: "高频采集项",
|
||||
colNote: "备注",
|
||||
|
|
@ -634,6 +709,13 @@ const zh = {
|
|||
needName: "请填写名称",
|
||||
defaultsInvalid: "defaults JSON 无效",
|
||||
overridesInvalid: "sheet_overrides JSON 无效",
|
||||
exportTemplate: "导出",
|
||||
importTemplate: "导入",
|
||||
templateExported: "模板已导出",
|
||||
templateImported: "模板已导入",
|
||||
templateImportInvalid: "导入文件无效:需要 name 与 compare_template_id(或 compare_template_name)",
|
||||
templateImportHint: "导入/导出 JSON,便于私下传递监控模板(不含任务/批次数据)",
|
||||
templateImportCompareMissing: "未找到对应对比模板,请先导入或创建同名对比模板",
|
||||
formHint: "先选对比模板 → 出现与对比模板相同的表页签 → 为每张表配置成功条件。",
|
||||
compareHint: "决定有哪些表以及 Key/比对字段;此处只配置双端判定。",
|
||||
pickCompare: "选择对比模板…",
|
||||
|
|
@ -809,7 +891,7 @@ const zh = {
|
|||
prev: "上一步",
|
||||
next: "下一步",
|
||||
fieldTitle: "任务名称",
|
||||
titlePh: "例如:接入侧上联",
|
||||
titlePh: "例如:上联链路组",
|
||||
titleRequired: "请填写任务名称",
|
||||
portsRequired: "请至少选择一个接口",
|
||||
interval: "周期(秒)",
|
||||
|
|
@ -2423,7 +2505,7 @@ const zh = {
|
|||
sourceTopology: "拓扑占位",
|
||||
sourceWebcrt: "WebCRT",
|
||||
regexTitle: "正则查找",
|
||||
patternPh: "正则,如 ^CORE- 或 -BJ-",
|
||||
patternPh: "正则,如 ^CORE- 或 -EDGE-",
|
||||
fieldName: "名称",
|
||||
fieldNameIp: "名称+IP",
|
||||
findMatches: "查找匹配",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue