diff --git a/lib/oxidized/input/sshbase.rb b/lib/oxidized/input/sshbase.rb index 2a26aba61..c9bcdb19f 100644 --- a/lib/oxidized/input/sshbase.rb +++ b/lib/oxidized/input/sshbase.rb @@ -28,6 +28,7 @@ def connected? end def make_ssh_opts + node_ssh_port = @node.input_port || vars(:ssh_port) ssh_opts = { number_of_password_prompts: 0, keepalive: vars(:ssh_no_keepalive) ? false : true, @@ -35,7 +36,7 @@ def make_ssh_opts append_all_supported_algorithms: true, password: @node.auth[:password], timeout: @node.timeout, - port: (vars(:ssh_port) || 22).to_i, + port: (node_ssh_port || 22).to_i, forward_agent: false } diff --git a/lib/oxidized/input/telnet.rb b/lib/oxidized/input/telnet.rb index 02fa6c96d..634ff891f 100644 --- a/lib/oxidized/input/telnet.rb +++ b/lib/oxidized/input/telnet.rb @@ -12,7 +12,7 @@ def connect(node) # rubocop:disable Naming/PredicateMethod @text_debug = DebugText.new(Oxidized.config.input.debug, @node, config_name) - port = vars(:telnet_port) || 23 + port = @node.input_port || vars(:telnet_port) || 23 telnet_opts = { 'Host' => @node.ip, diff --git a/lib/oxidized/node.rb b/lib/oxidized/node.rb index a3e5c10c0..da6d4bd11 100644 --- a/lib/oxidized/node.rb +++ b/lib/oxidized/node.rb @@ -7,7 +7,7 @@ class ModelNotFound < OxidizedError; end class Node include SemanticLogger::Loggable - attr_reader :name, :ip, :model, :input, :output, :group, :auth, :prompt, :timeout, :vars, :last, :repo + attr_reader :name, :ip, :model, :input, :output, :group, :auth, :prompt, :timeout, :vars, :last, :repo, :input_port attr_accessor :running, :user, :email, :msg, :from, :stats, :retry, :err_type, :err_reason, :nexted alias running? running alias nexted? nexted @@ -25,6 +25,7 @@ def initialize(opt) @group = opt[:group] @model = resolve_model opt @input = resolve_input opt + @input_port = resolve_input_port opt @output = resolve_output opt @auth = resolve_auth opt @prompt = resolve_prompt opt @@ -183,6 +184,10 @@ def resolve_input(opt) end end + def resolve_input_port(opt) + resolve_key :input_port, opt + end + def resolve_output(opt) output = resolve_key :output, opt, Oxidized.config.output.default unless Oxidized.mgr.output[output]