mirror of
https://github.com/hansjone/netx.git
synced 2026-10-09 10:40:46 +08:00
feat(ne): ZTE jump host for connect test and collection
Add hop fields and encrypted credentials, unified Netmiko session factory with ZTE ssh/telnet CLI templates and secondary auth, wire connect/collect paths, and NE management UI with auto-suggested jump commands. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
71ec3385d2
commit
4575fef523
13 changed files with 635 additions and 56 deletions
19
web/src/utils/zteHop.ts
Normal file
19
web/src/utils/zteHop.ts
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
/** ZTE device CLI jump commands: ssh/telnet <ip> [vrf <name>]. */
|
||||
|
||||
const LEGACY_HOP_TEMPLATES = new Set([
|
||||
"ssh {target_user}@{target_ip}",
|
||||
"ssh {target_ip}",
|
||||
"telnet {target_ip}",
|
||||
]);
|
||||
|
||||
export function zteHopTemplate(protocol: string, vrf: string): string {
|
||||
const cmd = String(protocol || "ssh").toLowerCase() === "telnet" ? "telnet" : "ssh";
|
||||
const v = String(vrf || "").trim();
|
||||
return v ? `${cmd} {target_ip} vrf {vrf}` : `${cmd} {target_ip}`;
|
||||
}
|
||||
|
||||
export function isAutoHopTemplate(template: string, protocol: string, vrf: string): boolean {
|
||||
const t = String(template || "").trim();
|
||||
if (!t || LEGACY_HOP_TEMPLATES.has(t)) return true;
|
||||
return t === zteHopTemplate(protocol, vrf);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue