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