diff --git a/docs/Supported-OS-Types.md b/docs/Supported-OS-Types.md index 000b1cb3c..5e6960380 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 @@ -276,5 +278,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 new file mode 100644 index 000000000..534b8f682 --- /dev/null +++ b/lib/oxidized/model/addpack.rb @@ -0,0 +1,26 @@ +class AddPack < Oxidized::Model + # Used in AddPack Voip, such as AP100B, AP100_G2, AP700, AP1000, AP1100F + + using Refinements + PROMPT = /^.*[>#]\s?$/ + + expect /-- [Mm]ore --/ do |data, re| + send ' ' + data.sub re, '' + end + + prompt PROMPT + cmd 'enable' + + cmd 'show running-config' do |cfg| + cfg.gsub! /^Building configuration.../, '' + cfg.gsub! /^*show running-config/, '' + cfg.gsub! PROMPT, '' + cfg + end + + cfg :telnet do + username /[Ll]ogin:\s?/ + password /[Pp]assword:\s?/ + 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 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