diff options
-rw-r--r-- | lib/oxidized/model/powerconnect.rb | 6 | ||||
-rw-r--r-- | lib/oxidized/model/procurve.rb | 45 |
2 files changed, 51 insertions, 0 deletions
diff --git a/lib/oxidized/model/powerconnect.rb b/lib/oxidized/model/powerconnect.rb index 0dbd808..304fc86 100644 --- a/lib/oxidized/model/powerconnect.rb +++ b/lib/oxidized/model/powerconnect.rb @@ -4,6 +4,11 @@ class PowerConnect < Oxidized::Model comment '! ' + expect /^\s--More--\s+.*$/ do |data, re| + send ' ' + data.sub re, '' + end + cmd :all do |cfg| cfg.each_line.to_a[1..-3].join end @@ -25,6 +30,7 @@ class PowerConnect < Oxidized::Model cfg :telnet, :ssh do post_login 'terminal datadump' + post_login 'enable' pre_logout 'exit' end diff --git a/lib/oxidized/model/procurve.rb b/lib/oxidized/model/procurve.rb new file mode 100644 index 0000000..b431629 --- /dev/null +++ b/lib/oxidized/model/procurve.rb @@ -0,0 +1,45 @@ +class Procurve < Oxidized::Model + + # FIXME: this is way too unsafe + prompt /.*?([\w\d_]+# ).*/m + + comment '! ' + + expect /Press any key to continue/ do + send ' ' + "" + end + + cmd :all do |cfg| + cfg = cfg.each_line.to_a[1..-3].join + cfg = cfg.gsub /\r/, '' + new_cfg = '' + cfg.each_line do |line| + line.sub! /^\e.*(\e.*)/, '\1' #leave last escape + line.sub! /\e\[24;1H/, '' #remove last escape, is it always this? + new_cfg << line + end + new_cfg + end + + cmd 'show running-config' + + cmd 'show version' do |cfg| + comment cfg + end + + cmd 'show system-information' do |cfg| + comment cfg + end + + cfg :telnet do + username /^\r?Username:/ + password /Password: / + end + + cfg :telnet, :ssh do + post_login 'no page' + pre_logout "logout\ny" + end + +end |