Class: Oxidized::Telnet
Constant Summary
collapse
- RESCUE_FAIL =
{}.freeze
Instance Attribute Summary collapse
Attributes included from Input::CLI
#node
Instance Method Summary
collapse
Methods included from Input::CLI
#connect_cli, #disconnect_cli, #get, #initialize, #login, #password, #post_login, #pre_logout, #username
#vars
Instance Attribute Details
#telnet ⇒ Object
Returns the value of attribute telnet.
7
8
9
|
# File 'lib/oxidized/input/telnet.rb', line 7
def telnet
@telnet
end
|
Instance Method Details
#cmd(cmd_str, expect = @node.prompt) ⇒ Object
37
38
39
40
41
42
43
44
45
46
47
|
# File 'lib/oxidized/input/telnet.rb', line 37
def cmd(cmd_str, expect = @node.prompt)
Oxidized.logger.debug "Telnet: #{cmd_str} @#{@node.name}"
return send(cmd_str + "\r\n") unless expect
out = String(' ')
@telnet.puts(cmd_str)
@telnet.oxidized_expect(timeout: @timeout, expect: expect, out: out)
out
end
|
#connect(node) ⇒ Object
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/oxidized/input/telnet.rb', line 9
def connect(node)
@node = node
@timeout = Oxidized.config.timeout
@node.model.cfg['telnet'].each { |cb| instance_exec(&cb) }
@log = File.open(Oxidized::Config::LOG + "/#{@node.ip}-telnet", 'w') if Oxidized.config.input.debug?
port = vars(:telnet_port) || 23
telnet_opts = {
'Host' => @node.ip,
'Port' => port.to_i,
'Timeout' => @timeout,
'Model' => @node.model,
'Log' => @log
}
@telnet = Net::Telnet.new telnet_opts
begin
login
rescue Timeout::Error
raise PromptUndetect, ['unable to detect prompt:', @node.prompt].join(' ')
end
connected?
end
|
#connected? ⇒ Boolean
33
34
35
|
# File 'lib/oxidized/input/telnet.rb', line 33
def connected?
@telnet && (not @telnet.sock.closed?)
end
|
#output ⇒ Object
53
54
55
|
# File 'lib/oxidized/input/telnet.rb', line 53
def output
@telnet.output
end
|
#send(data) ⇒ Object
49
50
51
|
# File 'lib/oxidized/input/telnet.rb', line 49
def send(data)
@telnet.write data
end
|