diff options
author | ytti <saku@ytti.fi> | 2013-05-12 06:42:01 -0700 |
---|---|---|
committer | ytti <saku@ytti.fi> | 2013-05-12 06:42:01 -0700 |
commit | b19297dde99dfa2430f96ab90b9daeed2a9f340b (patch) | |
tree | dcbb65120ddde3860f2de32936bb3dbbc0ab594a /lib | |
parent | 0a9ff589905b4637dc2c824d761dfbfec6cb00db (diff) | |
parent | 0d28c4a5e6a8c64d765229cc26e6574fb7a35a5d (diff) |
Merge pull request #5 from nopedial/workflow
Add procurve model, enhance powerconnect model, add EHOSTUNREACH rescue to input/ssh.rb
Diffstat (limited to 'lib')
-rw-r--r-- | lib/oxidized/input/ssh.rb | 2 | ||||
-rw-r--r-- | lib/oxidized/model/powerconnect.rb | 6 | ||||
-rw-r--r-- | lib/oxidized/model/procurve.rb | 45 |
3 files changed, 52 insertions, 1 deletions
diff --git a/lib/oxidized/input/ssh.rb b/lib/oxidized/input/ssh.rb index 430eaa2..c0594db 100644 --- a/lib/oxidized/input/ssh.rb +++ b/lib/oxidized/input/ssh.rb @@ -12,7 +12,7 @@ module Oxidized begin @ssh = Net::SSH.start @node.ip, @node.auth[:username], :password => @node.auth[:password], :timeout => CFG.timeout - rescue Timeout::Error, Errno::ECONNREFUSED, Errno::ECONNRESET, Net::SSH::Disconnect + rescue Timeout::Error, Errno::ECONNREFUSED, Errno::ECONNRESET, Errno::EHOSTUNREACH, Net::SSH::Disconnect return false end open_shell @ssh unless @exec 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 |