Sha256: 8713d8d474e0623e36af76dc51afc787282457e015d62104a44a7edf5ac129cb
Contents?: true
Size: 1.46 KB
Versions: 5
Compression:
Stored size: 1.46 KB
Contents
class SSH def initialize(host, user, password) @ssh = Net::SSH.start(host, user, {:password => password}) @ssh.send_global_request("[EMAIL PROTECTED]") @ssh_telnet = Net::SSH::Telnet.new("Session" => @ssh) end def navigate(nav_path=[]) unless nav_path.kind_of?(Array) raise ArgumentError, "argument must be an array" end data = [] nav_path.each { |cmd| retry_ct = 0 @ssh.send_global_request("[EMAIL PROTECTED]") puts "executing cmd: #{cmd.inspect}" raise ArgumentError unless cmd.has_key?(:execute) begin if cmd.has_key?(:expected_output) && cmd.has_key?(:timeout) out = @ssh_telnet.cmd("String" => cmd[:execute], "Match" => cmd[:expected_output], "Waittime" => cmd[:timeout]) elsif cmd.has_key?(:expected_output) out = @ssh_telnet.cmd("String" => cmd[:execute], "Match" => cmd[:expected_output]) else if cmd.has_key?(:timeout) out = @ssh_telnet.cmd("String" => cmd[:execute], "Waittime" => cmd[:timeout]) else out = @ssh_telnet.cmd("String" => cmd[:execute]) end end rescue Timeout::Error => e retry_ct += 1 out = '' retry if retry_ct < 4 puts "Timout::Error occured: retrying" retry end puts out data << out } data end end
Version data entries
5 entries across 5 versions & 1 rubygems