class Citrus::ConsoleModules::MonitorWatcher
MaterWatcher
Public Class Methods
new(args={})
click to toggle source
Initialize the module
@param [Hash] args @param [Object] console_service
# File lib/citrus/modules/monitor_watcher.rb, line 23 def initialize args={}, console_service @app = args[:app] @service = console_service @server_id = @app.server_id end
Public Instance Methods
monitor_handler(agent, msg, &block)
click to toggle source
Monitor
handler
@param [Object] agent @param [Hash] msg
# File lib/citrus/modules/monitor_watcher.rb, line 38 def monitor_handler agent, msg, &block return if !msg || !msg[:action] case msg[:action] when 'add_server' handle_add_server agent, msg else end end
start(&block)
click to toggle source
Start the module
# File lib/citrus/modules/monitor_watcher.rb, line 30 def start &block subscribe_request &block end
Private Instance Methods
add_servers(sinfos)
click to toggle source
Add servers
@param [Array] sinfos
@private
# File lib/citrus/modules/monitor_watcher.rb, line 80 def add_servers sinfos return unless sinfos && !sinfos.empty? @app.add_servers sinfos end
handle_add_server(agent, msg)
click to toggle source
Handle add server
@param [Object] agent @param [Hash] msg
@private
# File lib/citrus/modules/monitor_watcher.rb, line 70 def handle_add_server agent, msg return if !msg || !msg[:server] add_servers [msg[:server]] end
subscribe_request() { |err| ... }
click to toggle source
Subscribe request
@private
# File lib/citrus/modules/monitor_watcher.rb, line 52 def subscribe_request &block msg = { :action => 'subscribe', :server_id => @server_id } @service.agent.request ConsoleModules::MasterWatcher.module_id, msg, proc{ |err, servers| if err block_given? and yield err return end add_servers servers block_given? and yield } end