diff options
| author | nertwork <webmaster@nertwork.com> | 2016-12-20 10:49:24 -0800 | 
|---|---|---|
| committer | nertwork <webmaster@nertwork.com> | 2016-12-20 10:49:24 -0800 | 
| commit | e0621bbb81daab0de9fccc031c3e875031c2b67b (patch) | |
| tree | 9b527895c0a07d216f67728526b0ed7f82a40d12 /lib/oxidized/node.rb | |
| parent | bcdd40d552cbf5e32dafebf4e531d407eb85bc84 (diff) | |
| parent | 1466f0f635d1e014ea993179729306d3a9a8d381 (diff) | |
Merge remote-tracking branch 'upstream/master'
* upstream/master: (109 commits)
  delete secret password if it is called secret
  bump up version
  update changelogs
  Recursively search from one dir above specified
  Fix suggested by ytti for issue #610
  Remove trailing whitespace and enable prompt detection
  Update eos.rb
  exclude time from output
  New hook: awssns - Publish messages to AWS SNS topics
  Updated config options
  Added option to disable ssl verification checks for http source
  Update ciscosmb.rb
  Update ciscosmb.rb
  Update ciscosmb.rb
  expect prompt after entering enable password
  add support for PLANET SG switches
  renamed  alvarion -> alvarion.rb
  This adds support for Hatteras Networks devices
  This adds support for D-Link switches
  This adds support for the Casa C1G CMTS
  ...
Diffstat (limited to 'lib/oxidized/node.rb')
| -rw-r--r-- | lib/oxidized/node.rb | 52 | 
1 files changed, 35 insertions, 17 deletions
| diff --git a/lib/oxidized/node.rb b/lib/oxidized/node.rb index f2b125a..b13ce0e 100644 --- a/lib/oxidized/node.rb +++ b/lib/oxidized/node.rb @@ -128,24 +128,15 @@ module Oxidized      end      def resolve_auth opt -      # Resolve configured username/password, give priority to group level configuration -      # TODO: refactor to use revised behaviour of Asetus -      cfg_username, cfg_password = -        if Oxidized.config.groups.has_key?(@group) and ['username', 'password'].all? {|e| Oxidized.config.groups[@group].has_key?(e)} -          [Oxidized.config.groups[@group].username, Oxidized.config.groups[@group].password] -        elsif ['username', 'password'].all? {|e| Oxidized.config.has_key?(e)} -          [Oxidized.config.username, Oxidized.config.password] -        else -          [nil, nil] -        end -      auth = {} -      auth[:username] = (opt[:username] or cfg_username) -      auth[:password] = (opt[:password] or cfg_password) -      auth +      # Resolve configured username/password +      { +        username:       resolve_key(:username, opt), +        password:       resolve_key(:password, opt), +      }      end      def resolve_input opt -      inputs = (opt[:input]  or Oxidized.config.input.default) +      inputs = resolve_key :input, opt, Oxidized.config.input.default        inputs.split(/\s*,\s*/).map do |input|          if not Oxidized.mgr.input[input]            Oxidized.mgr.add_input input or raise MethodNotFound, "#{input} not found for node #{ip}" @@ -155,7 +146,7 @@ module Oxidized      end      def resolve_output opt -      output = (opt[:output] or Oxidized.config.output.default) +      output = resolve_key :output, opt, Oxidized.config.output.default        if not Oxidized.mgr.output[output]          Oxidized.mgr.add_output output or raise MethodNotFound, "#{output} not found for node #{ip}"        end @@ -163,7 +154,7 @@ module Oxidized      end      def resolve_model opt -      model = (opt[:model] or Oxidized.config.model) +      model = resolve_key :model, opt        if not Oxidized.mgr.model[model]          Oxidized.logger.debug "lib/oxidized/node.rb: Loading model #{model.inspect}"          Oxidized.mgr.add_model model or raise ModelNotFound, "#{model} not found for node #{ip}" @@ -187,6 +178,33 @@ module Oxidized        end      end +    def resolve_key key, opt, global=nil +      # resolve key, first get global, then get group then get node config +      key_sym = key.to_sym +      key_str = key.to_s +      value   = global +      Oxidized.logger.debug "node.rb: resolving node key '#{key}', with passed global value of '#{value}' and node value '#{opt[key_sym]}'" + +      #global +      if not value and Oxidized.config.has_key?(key_str) +        value = Oxidized.config[key_str] +        Oxidized.logger.debug "node.rb: setting node key '#{key}' to value '#{value}' from global" +      end + +      #group +      if Oxidized.config.groups.has_key?(@group) +        if Oxidized.config.groups[@group].has_key?(key_str) +          value = Oxidized.config.groups[@group][key_str] +          Oxidized.logger.debug "node.rb: setting node key '#{key}' to value '#{value}' from group" +        end +      end + +      #node +      value = opt[key_sym] || value +      Oxidized.logger.debug "node.rb: returning node key '#{key}' with value '#{value}'" +      value +    end +      def is_git? opt        (opt[:output] || Oxidized.config.output.default) == 'git'      end | 
