diff options
author | Saku Ytti <saku@ytti.fi> | 2017-07-07 14:05:48 +0300 |
---|---|---|
committer | Saku Ytti <saku@ytti.fi> | 2017-07-07 14:05:48 +0300 |
commit | 72a6619986086df4d8db876ca0424f6bb6671b1b (patch) | |
tree | c248aae3c2f57bf228eb2884091d3d84a66c84da /lib/oxidized/input/cli.rb | |
parent | 776386ea339b53b90284acf123e0dce5758b901c (diff) |
add pre_loginfeature-pre_login
Diffstat (limited to 'lib/oxidized/input/cli.rb')
-rw-r--r-- | lib/oxidized/input/cli.rb | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/oxidized/input/cli.rb b/lib/oxidized/input/cli.rb index 660e173..fb39b81 100644 --- a/lib/oxidized/input/cli.rb +++ b/lib/oxidized/input/cli.rb @@ -4,12 +4,15 @@ module Oxidized attr_reader :node def initialize + @pre_login = [] @post_login = [] @pre_logout = [] @username, @password, @exec = nil end def get + pre_login + login connect_cli d = node.model.get disconnect @@ -19,6 +22,14 @@ module Oxidized raise end + def pre_login + Oxidized.logger.debug "lib/oxidized/input/cli.rb: Running pre_login commands at #{node.name}" + @pre_login.each do |command, block| + Oxidized.logger.debug "lib/oxidized/input/cli.rb: Running pre_login command: #{command.inspect}, block: #{block.inspect} at #{node.name}" + block ? block.call : (cmd command) + end + end + def connect_cli Oxidized.logger.debug "lib/oxidized/input/cli.rb: Running post_login commands at #{node.name}" @post_login.each do |command, block| @@ -32,6 +43,12 @@ module Oxidized @pre_logout.each { |command, block| block ? block.call : (cmd command, nil) } end + def pre_login _pre_login=nil, &block + unless @exec + @pre_login << [_pre_login, block] + end + end + def post_login _post_login=nil, &block unless @exec @post_login << [_post_login, block] |