class Tengine::Resource::Config::Resource
Public Class Methods
default_hash()
click to toggle source
# File lib/tengine/resource/config/resource.rb, line 12 def default_hash new.to_hash end
Also aliased as: skelton_hash
new(hash_or_filepath = nil)
click to toggle source
# File lib/tengine/resource/config/resource.rb, line 33 def initialize(hash_or_filepath = nil) build if respond_to?(:build) case hash_or_filepath when Hash then if config = hash_or_filepath[:config] load_file(config) else load(hash_or_filepath) end when String then load_file(hash_or_filepath) end end
parse(args)
click to toggle source
# File lib/tengine/resource/config/resource.rb, line 25 def parse(args) config = new config.parse!(args) config end
parse_to_hash(args)
click to toggle source
# File lib/tengine/resource/config/resource.rb, line 17 def parse_to_hash(args) config = new config.parse!(args) result = new result.config = config.config result.to_hash end
Public Instance Methods
build()
click to toggle source
# File lib/tengine/resource/config/resource.rb, line 53 def build banner <<EOS Usage: tengine_resource_watchd [-k action] [-f path_to_config] [-o mq_conn_host] [-p mq_conn_port] [-u mq_conn_user] [-s mq_conn_pass] [-e mq_exchange_name] [-q mq_queue_name] EOS field(:action, "start|stop|force-stop|status", :type => :string, :default => "start") load_config(:config, "path/to/config_file", :type => :string) add(:process, Tengine::Resource::Config::Resource::Process) add(:watchd, Tengine::Resource::Config::Resource::Watchd) field(:db, "settings to connect to db", :type => :hash, :default => { 'host' => 'localhost', 'port' => 27017, 'username' => nil, 'password' => nil, 'database' => 'tengine_production', }) group(:event_queue) do add(:connection, Tengine::Core::Config::Core::AmqpConnection) add(:exchange , Tengine::Support::Config::Amqp::Exchange, :defaults => {:name => 'tengine_event_exchange'}) add(:queue , Tengine::Support::Config::Amqp::Queue , :defaults => {:name => 'tengine_event_queue'}) end add(:log_common, Tengine::Support::Config::Logger, :defaults => { :rotation => 3 , :rotation_size => 1024 * 1024, :level => 'info' , }) add(:application_log, Tengine::Resource::Config::Resource::LoggerConfig, :parameters => {:logger_name => "application"}, :dependencies => { :process_config => :process, :log_common => :log_common,}){ self.formatter = lambda{|level, t, prog, msg| "#{t.iso8601} #{level} #{@process_identifier} #{msg}\n"} } add(:process_stdout_log, Tengine::Resource::Config::Resource::LoggerConfig, :parameters => {:logger_name => "#{File.basename($PROGRAM_NAME)}_#{::Process.pid}_stdout"}, :dependencies => { :process_config => :process, :log_common => :log_common,}){ self.formatter = lambda{|level, t, prog, msg| "#{t.iso8601} STDOUT #{@process_identifier} #{msg}\n"} } add(:process_stderr_log, Tengine::Resource::Config::Resource::LoggerConfig, :parameters => {:logger_name => "#{File.basename($PROGRAM_NAME)}_#{::Process.pid}_stderr"}, :dependencies => { :process_config => :process, :log_common => :log_common,}, :defaults => { :output => proc{ process_config.daemon ? "./log/#{logger_name}.log" : "STDERR" }}){ self.formatter = lambda{|level, t, prog, msg| "#{t.iso8601} STDERR #{@process_identifier} #{msg}\n"} } group(:heartbeat, :hidden => true) do add(:resourcew, Tengine::Core::Config::Core::Heartbeat) end separator("\nGeneral:") field(:verbose, "Show detail to this command", :type => :boolean) __action__(:version, "show version"){ STDOUT.puts Tengine::Resource.version.to_s; exit } __action__(:dump_skelton, "dump skelton of config"){ STDOUT.puts YAML.dump(root.to_hash); exit } __action__(:help , "show this help message"){ STDOUT.puts option_parser.help; exit } mapping({ [:action] => :k, [:config] => :f, [:process, :daemon] => :D, [:event_queue, :connection, :host] => :o, [:event_queue, :connection, :port] => :p, [:event_queue, :connection, :user] => :u, [:event_queue, :connection, :pass] => :s, [:event_queue, :exchange , :name] => :e, [:event_queue, :queue , :name] => :q, [:verbose] => :V, [:version] => :v, [:help] => :h }) end
load_file(filepath)
click to toggle source
Calls superclass method
# File lib/tengine/resource/config/resource.rb, line 46 def load_file(filepath) super rescue Exception => e raise Tengine::Core::ConfigError, "[#{e.class.name}] #{e.message} when loading configuration file: #{filepath}." end
setup_loggers()
click to toggle source
# File lib/tengine/resource/config/resource.rb, line 179 def setup_loggers Tengine.logger = application_log.new_logger Tengine::Core.stdout_logger = process_stdout_log.new_logger Tengine::Core.stderr_logger = process_stderr_log.new_logger Tengine::Core.stdout_logger.info("#{self.class.name}#setup_loggers complete") rescue Exception Tengine::Core.stderr_logger.info("#{self.class.name}#setup_loggers failure") raise end