module Oxidized::Input::CLI
Attributes
node[R]
Public Class Methods
new()
click to toggle source
# File lib/oxidized/input/cli.rb, line 6 def initialize @post_login = [] @pre_logout = [] @username, @password, @exec = nil end
Public Instance Methods
connect_cli()
click to toggle source
# File lib/oxidized/input/cli.rb, line 22 def connect_cli Oxidized.logger.debug "lib/oxidized/input/cli.rb: Running post_login commands at #{node.name}" @post_login.each do |command, block| Oxidized.logger.debug "lib/oxidized/input/cli.rb: Running post_login command: #{command.inspect}, block: #{block.inspect} at #{node.name}" block ? block.call : (cmd command) end end
disconnect_cli()
click to toggle source
# File lib/oxidized/input/cli.rb, line 30 def disconnect_cli Oxidized.logger.debug "lib/oxidized/input/cli.rb Running pre_logout commands at #{node.name}" @pre_logout.each { |command, block| block ? block.call : (cmd command, nil) } end
get()
click to toggle source
# File lib/oxidized/input/cli.rb, line 12 def get connect_cli d = node.model.get disconnect d rescue PromptUndetect disconnect raise end
login()
click to toggle source
# File lib/oxidized/input/cli.rb, line 55 def login match_re = [@node.prompt] match_re << @username if @username match_re << @password if @password until (match = expect(match_re)) == @node.prompt cmd(@node.auth[:username], nil) if match == @username cmd(@node.auth[:password], nil) if match == @password match_re.delete match end end
password(regex = /^Password/)
click to toggle source
# File lib/oxidized/input/cli.rb, line 51 def password(regex = /^Password/) @password || (@password = regex) end
post_login(cmd = nil, &block)
click to toggle source
# File lib/oxidized/input/cli.rb, line 35 def post_login(cmd = nil, &block) return if @exec @post_login << [cmd, block] end
pre_logout(cmd = nil, &block)
click to toggle source
# File lib/oxidized/input/cli.rb, line 41 def pre_logout(cmd = nil, &block) return if @exec @pre_logout << [cmd, block] end
username(regex = /^(Username|login)/)
click to toggle source
# File lib/oxidized/input/cli.rb, line 47 def username(regex = /^(Username|login)/) @username || (@username = regex) end