summaryrefslogtreecommitdiff
path: root/lib/oxidized/input/cli.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/oxidized/input/cli.rb')
-rw-r--r--lib/oxidized/input/cli.rb17
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]