X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=doc%2Fclasses%2FMCollective%2FRunner.html;fp=doc%2Fclasses%2FMCollective%2FRunner.html;h=62f7e8f1b9aff8530daff2bf0e6230cb3614a3d4;hb=d1f1649ba43c5cbc43c4beb2380096ba051d646a;hp=0000000000000000000000000000000000000000;hpb=8a3fe7daeecccf43dd71c59371c5005400d35101;p=packages%2Fprecise%2Fmcollective.git diff --git a/doc/classes/MCollective/Runner.html b/doc/classes/MCollective/Runner.html new file mode 100644 index 0000000..62f7e8f --- /dev/null +++ b/doc/classes/MCollective/Runner.html @@ -0,0 +1,253 @@ + + + + + + Class: MCollective::Runner + + + + + + + + + + +
+ + + + + + + + + + + + + + +
ClassMCollective::Runner
In: + + lib/mcollective/runner.rb + +
+
Parent: + Object +
+
+ + +
+ + + +
+ +
+

+The main runner for the daemon, supports running in the foreground and the +background, keeps detailed stats and provides hooks to access all this +information +

+ +
+ + +
+ +
+

Methods

+ +
+ new   + run   +
+
+ +
+ + + +
+

Included Modules

+ +
+ Translatable +
+
+ +
+ + + + + + + + + +
+

Public Class methods

+ +
+ + + + +
+

[Source]

+
+
+    # File lib/mcollective/runner.rb, line 8
+ 8:     def initialize(configfile)
+ 9:       @config = Config.instance
+10:       @config.loadconfig(configfile) unless @config.configured
+11:       @config.mode = :server
+12: 
+13:       @stats = PluginManager["global_stats"]
+14: 
+15:       @security = PluginManager["security_plugin"]
+16:       @security.initiated_by = :node
+17: 
+18:       @connection = PluginManager["connector_plugin"]
+19:       @connection.connect
+20: 
+21:       @agents = Agents.new
+22: 
+23:       unless Util.windows?
+24:         Signal.trap("USR1") do
+25:           log_code(:PLMC2, "Reloading all agents after receiving USR1 signal", :info)
+26:           @agents.loadagents
+27:         end
+28: 
+29:         Signal.trap("USR2") do
+30:           log_code(:PLMC3, "Cycling logging level due to USR2 signal", :info)
+31: 
+32:           Log.cycle_level
+33:         end
+34:       else
+35:         Util.setup_windows_sleeper
+36:       end
+37:     end
+
+
+
+
+ +

Public Instance methods

+ +
+ + + + +
+

+Starts the main loop, before calling this you should initialize the MCollective::Config singleton. +

+

[Source]

+
+
+    # File lib/mcollective/runner.rb, line 40
+40:     def run
+41:       Data.load_data_sources
+42: 
+43:       Util.subscribe(Util.make_subscriptions("mcollective", :broadcast))
+44:       Util.subscribe(Util.make_subscriptions("mcollective", :directed)) if @config.direct_addressing
+45: 
+46:       # Start the registration plugin if interval isn't 0
+47:       begin
+48:         PluginManager["registration_plugin"].run(@connection) unless @config.registerinterval == 0
+49:       rescue Exception => e
+50:         logexception(:PLMC4, "Failed to start registration plugin: %{error}", :error, e)
+51:       end
+52: 
+53:       loop do
+54:         begin
+55:           request = receive
+56: 
+57:           unless request.agent == "mcollective"
+58:             agentmsg(request)
+59:           else
+60:             log_code(:PLMC5, "Received a control message, possibly via 'mco controller' but this has been deprecated", :error)
+61:           end
+62:         rescue SignalException => e
+63:           logexception(:PLMC7, "Exiting after signal: %{error}", :warn, e)
+64:           @connection.disconnect
+65:           raise
+66: 
+67:         rescue MsgTTLExpired => e
+68:           logexception(:PLMC9, "Expired Message: %{error}", :warn, e)
+69: 
+70:         rescue NotTargettedAtUs => e
+71:           log_code(:PLMC6, "Message does not pass filters, ignoring", :debug)
+72: 
+73:         rescue Exception => e
+74:           logexception(:PLMC10, "Failed to handle message: %{error}", :warn, e, true)
+75:         end
+76:       end
+77:     end
+
+
+
+
+ + +
+ + +
+ + +
+

[Validate]

+
+ + + \ No newline at end of file