summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorytti <saku@ytti.fi>2017-05-07 13:38:04 +0300
committerGitHub <noreply@github.com>2017-05-07 13:38:04 +0300
commiteebda09fdda9043d18d915c39b0597b2a5b801db (patch)
treed7c4df180ffd2978cda376fcca34cbb5c0a17812
parent23d55da7338c96158f009252f1bd522da88a36b2 (diff)
parent25d30f8329610b1917fb6513158cc5e2e4542a96 (diff)
Merge pull request #826 from davromaniak/master
Added support for model specific credentials
-rw-r--r--README.md16
-rw-r--r--lib/oxidized/config.rb1
-rw-r--r--lib/oxidized/config/vars.rb6
-rw-r--r--lib/oxidized/node.rb8
4 files changed, 30 insertions, 1 deletions
diff --git a/README.md b/README.md
index 11231d0..0745577 100644
--- a/README.md
+++ b/README.md
@@ -839,6 +839,22 @@ map:
name: 1
group: 2
```
+For model specific credentials
+
+```
+models:
+ junos:
+ username: admin
+ password: password
+ ironware:
+ username: admin
+ password: password
+ vars:
+ enable: enablepassword
+ apc_aos:
+ username: apc
+ password: password
+```
### Triggered backups
diff --git a/lib/oxidized/config.rb b/lib/oxidized/config.rb
index aba8b63..23af9c2 100644
--- a/lib/oxidized/config.rb
+++ b/lib/oxidized/config.rb
@@ -31,6 +31,7 @@ module Oxidized
asetus.default.next_adds_job = false # if true, /next adds job, so device is fetched immmeiately
asetus.default.vars = {} # could be 'enable'=>'enablePW'
asetus.default.groups = {} # group level configuration
+ asetus.default.models = {} # model level configuration
asetus.default.pid = File.join(Oxidized::Config::Root, 'pid')
asetus.default.input.default = 'ssh, telnet'
diff --git a/lib/oxidized/config/vars.rb b/lib/oxidized/config/vars.rb
index 09f9781..d926ee2 100644
--- a/lib/oxidized/config/vars.rb
+++ b/lib/oxidized/config/vars.rb
@@ -8,8 +8,12 @@ module Oxidized::Config::Vars
r ||= Oxidized.config.groups[@node.group].vars[name.to_s]
end
end
+ if Oxidized.config.models.has_key?(@node.model.class.name.to_s.downcase)
+ if Oxidized.config.models[@node.model.class.name.to_s.downcase].vars.has_key?(name.to_s)
+ r ||= Oxidized.config.models[@node.model.class.name.to_s.downcase].vars[name.to_s]
+ end
+ end
r ||= Oxidized.config.vars[name.to_s] if Oxidized.config.vars.has_key?(name.to_s)
r
end
end
-
diff --git a/lib/oxidized/node.rb b/lib/oxidized/node.rb
index cf71e48..8d0d0af 100644
--- a/lib/oxidized/node.rb
+++ b/lib/oxidized/node.rb
@@ -216,6 +216,14 @@ module Oxidized
end
end
+ #model
+ if Oxidized.config.models.has_key?(@model.class.name.to_s.downcase)
+ if Oxidized.config.models[@model.class.name.to_s.downcase].has_key?(key_str)
+ value = Oxidized.config.models[@model.class.name.to_s.downcase][key_str]
+ Oxidized.logger.debug "node.rb: setting node key '#{key}' to value '#{value}' from model"
+ end
+ end
+
#node
value = opt[key_sym] || value
Oxidized.logger.debug "node.rb: returning node key '#{key}' with value '#{value}'"