From bde440bbd66ba7b9fbec99ab012dd4de80945a4c Mon Sep 17 00:00:00 2001 From: Saku Ytti Date: Wed, 16 Apr 2014 15:04:05 +0300 Subject: run cmd :secret blocks if CFG.remove_secret is set Model can inmplement something like cmd :secret do |cfg| cfg.sub! / secret (\d+) (\S+).*/, '\\1 SECRET' cfg end Which is called for all commands if CFG.remove_secret is set --- lib/oxidized/config.rb | 25 +++++++++++++------------ lib/oxidized/model/model.rb | 5 +++++ 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/lib/oxidized/config.rb b/lib/oxidized/config.rb index cb5f81d..9e5ec60 100644 --- a/lib/oxidized/config.rb +++ b/lib/oxidized/config.rb @@ -14,20 +14,21 @@ module Oxidized attr_accessor :mgr end CFGS = Asetus.new :name=>'oxidized', :load=>false, :key_to_s=>true - CFGS.default.username = 'username' - CFGS.default.password = 'password' - CFGS.default.model = 'junos' - CFGS.default.interval = 3600 - CFGS.default.log = File.join Config::Root, 'log' - CFGS.default.debug = false - CFGS.default.threads = 30 - CFGS.default.timeout = 30 - CFGS.default.prompt = /^([\w.@-]+[#>]\s?)$/ - CFGS.default.rest = '0.0.0.0:8888' # or false to disable - CFGS.default.vars = {} # could be 'enable'=>'enablePW' + CFGS.default.username = 'username' + CFGS.default.password = 'password' + CFGS.default.model = 'junos' + CFGS.default.interval = 3600 + CFGS.default.log = File.join Config::Root, 'log' + CFGS.default.debug = false + CFGS.default.threads = 30 + CFGS.default.timeout = 30 + CFGS.default.prompt = /^([\w.@-]+[#>]\s?)$/ + CFGS.default.rest = '0.0.0.0:8888' # or false to disable + CFGS.default.vars = {} # could be 'enable'=>'enablePW' + CFGS.default.remove_secret = false # runs cmd(:secret) blocks if true CFGS.default.input.default = 'ssh, telnet' - CFGS.default.input.ssh.secure = false # complain about changed certs + CFGS.default.input.ssh.secure = false # complain about changed certs CFGS.default.output.default = 'file' # file, git CFGS.default.source.default = 'csv' # csv, sql diff --git a/lib/oxidized/model/model.rb b/lib/oxidized/model/model.rb index d8f5fe2..6e44039 100644 --- a/lib/oxidized/model/model.rb +++ b/lib/oxidized/model/model.rb @@ -80,6 +80,11 @@ module Oxidized self.class.cmds[:all].each do |all_block| out = instance_exec out, string, &all_block end + if CFG.remove_secret? + self.class.cmds[:secret].each do |all_block| + out = instance_exec out, string, &all_block + end + end out = instance_exec out, &block if block out end -- cgit v1.2.1