From 6a231f86e48111c24585cbaedaca57fa64f2418b Mon Sep 17 00:00:00 2001 From: Maskim Vylegzhanin Date: Tue, 15 Aug 2023 11:13:51 +0500 Subject: [PATCH 1/3] * routeros.rb changed * addpack.rb added * zynosadsl.rb added --- lib/oxidized/model/addpack.rb | 24 ++++++++++++++++++++++++ lib/oxidized/model/routeros.rb | 8 ++++---- lib/oxidized/model/zynosadsl.rb | 14 ++++++++++++++ 3 files changed, 42 insertions(+), 4 deletions(-) create mode 100644 lib/oxidized/model/addpack.rb create mode 100644 lib/oxidized/model/zynosadsl.rb diff --git a/lib/oxidized/model/addpack.rb b/lib/oxidized/model/addpack.rb new file mode 100644 index 000000000..4fe181de1 --- /dev/null +++ b/lib/oxidized/model/addpack.rb @@ -0,0 +1,24 @@ +class AddPack < Oxidized::Model + using Refinements + PROMPT = /^.*[>#]\s?$/ + + # Used in AddPack Voip, such as AP100_G2 + + prompt PROMPT + cmd 'enable' + + cmd 'show running-config' do |cfg| + cfg.gsub! /^Building configuration.../, '' + cfg.gsub! /^*show running-config/, '' + cfg.gsub! PROMPT, '' + expect '\s--More--\s' do + send ' ' + end + cfg + end + + cfg :telnet do + username /^Login:/i + password /^Password:/i + end +end diff --git a/lib/oxidized/model/routeros.rb b/lib/oxidized/model/routeros.rb index 5baede0a3..389660947 100644 --- a/lib/oxidized/model/routeros.rb +++ b/lib/oxidized/model/routeros.rb @@ -14,14 +14,14 @@ class RouterOS < Oxidized::Model cfg end - cmd '/system routerboard print without-paging' do |cfg| + cmd '/system routerboard print' do |cfg| cfg = cfg.each_line.grep(/(model|firmware-type|current-firmware|serial-number):/).join comment cfg end - cmd '/system package update print without-paging' do |cfg| - version_line = cfg.each_line.grep(/installed-version: /)[0] - @ros_version = /: ([0-9])/.match(version_line)[1].to_i + cmd '/system package update print' do |cfg| + version_line = cfg.each_line.grep(/installed-version:\s|current-version:\s/)[0] + @ros_version = /([0-9])/.match(version_line)[0].to_i comment version_line end diff --git a/lib/oxidized/model/zynosadsl.rb b/lib/oxidized/model/zynosadsl.rb new file mode 100644 index 000000000..58b6ea35a --- /dev/null +++ b/lib/oxidized/model/zynosadsl.rb @@ -0,0 +1,14 @@ +class ZyNOSADSL < Oxidized::Model + using Refinements + + # Used in Zyxel ADSL, such as AAM1212-51 + + prompt /^.*>\s?$/ + comment ';; ' + + cmd 'config show all nopause' + + cfg :telnet do + password /^Password:/i + end +end From 7382e61c5c7749171a28ccc5247ffb9ad5297c77 Mon Sep 17 00:00:00 2001 From: Maskim Vylegzhanin Date: Wed, 23 Aug 2023 11:00:22 +0500 Subject: [PATCH 2/3] * addpack.rb fixed for use with AP100B, AP100_G2, AP700, AP1000, AP1100F * Supported-OS-Types.md updated --- docs/Supported-OS-Types.md | 3 +++ lib/oxidized/model/addpack.rb | 14 ++++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/docs/Supported-OS-Types.md b/docs/Supported-OS-Types.md index 925d5ea9c..6f1c85df1 100644 --- a/docs/Supported-OS-Types.md +++ b/docs/Supported-OS-Types.md @@ -8,6 +8,8 @@ * [AEN](/lib/oxidized/model/aen.rb) * Acme Packet * [ACMEPACKET](/lib/oxidized/model/acmepacket.rb) +* AddPack + * [AddPack](/lib/oxidized/model/addpack.rb) * Adtran * [Total Access (AOS)](/lib/oxidized/model/adtran.rb) * Alcatel-Lucent @@ -274,5 +276,6 @@ * Zyxel * [ZyNOS](/lib/oxidized/model/zynos.rb) * [ZyNOS GS-series variant](/lib/oxidized/model/zynosgs.rb) + * [ZyNOS ADSL](/lib/oxidized/model/zynosadsl.rb) * [NDMS](/lib/oxidized/model/ndms.rb) * [1308](/lib/oxidized/model/zy1308.rb) diff --git a/lib/oxidized/model/addpack.rb b/lib/oxidized/model/addpack.rb index 4fe181de1..534b8f682 100644 --- a/lib/oxidized/model/addpack.rb +++ b/lib/oxidized/model/addpack.rb @@ -1,8 +1,13 @@ class AddPack < Oxidized::Model + # Used in AddPack Voip, such as AP100B, AP100_G2, AP700, AP1000, AP1100F + using Refinements PROMPT = /^.*[>#]\s?$/ - # Used in AddPack Voip, such as AP100_G2 + expect /-- [Mm]ore --/ do |data, re| + send ' ' + data.sub re, '' + end prompt PROMPT cmd 'enable' @@ -11,14 +16,11 @@ class AddPack < Oxidized::Model cfg.gsub! /^Building configuration.../, '' cfg.gsub! /^*show running-config/, '' cfg.gsub! PROMPT, '' - expect '\s--More--\s' do - send ' ' - end cfg end cfg :telnet do - username /^Login:/i - password /^Password:/i + username /[Ll]ogin:\s?/ + password /[Pp]assword:\s?/ end end From a0cfb482983c9c108ad9f6bbc896d86b5f366271 Mon Sep 17 00:00:00 2001 From: Maskim Vylegzhanin Date: Mon, 23 Oct 2023 13:13:32 +0500 Subject: [PATCH 3/3] ZynosMGS added --- lib/oxidized/model/zynosmgs.rb | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 lib/oxidized/model/zynosmgs.rb diff --git a/lib/oxidized/model/zynosmgs.rb b/lib/oxidized/model/zynosmgs.rb new file mode 100644 index 000000000..79d99f981 --- /dev/null +++ b/lib/oxidized/model/zynosmgs.rb @@ -0,0 +1,32 @@ +class ZyNOSMGS < Oxidized::Model + using Refinements + + PROMPT = /^(\w.*)>(.*)?$/ + # Used in Zyxel MGS Series switches + + prompt PROMPT + comment '! ' + + cmd 'show version' do |cfg| + clear_output cfg + end + + cmd 'show running-config' do |cfg| + clear_output cfg + end + + cfg :telnet do + username /^User\s?name(\(1-32 chars\))?:/i + password /^Password(\(1-32 chars\))?:/i + end + + cfg :telnet, :ssh do + pre_logout 'exit' + end + + private + + def clear_output(output) + output.gsub PROMPT, '' + end +end