Class: Qurd::Configuration
- Inherits:
-
Object
- Object
- Qurd::Configuration
- Includes:
- Mixins::ConfigurationHelpers, Singleton
- Defined in:
- lib/qurd/configuration.rb
Overview
Parse a configuration file, create a logger and various data structures
Instance Attribute Summary collapse
-
#config ⇒ Hashie::Mash
readonly
Configuration options, ie
aws_credentials,auto_scaling_queues,actions,daemonize,dry_run,listen_timeout,log_file,log_level,pid_file,save_failures,stats_interval,sqs_set_attributes_timeout,visibility_timeout,wait_time. -
#logger ⇒ Object
readonly
Returns the value of attribute logger.
Instance Method Summary collapse
-
#configure(config_path) ⇒ Object
Configure Qurd.
-
#debug? ⇒ Boolean
Determine if the daemon is running in debug mode.
-
#get_context(attrs = {}) ⇒ Cabin::Context
Get a logging context and optionally initialize it.
-
#init(config_path) ⇒ Object
Initialize Qurd.
-
#logger!(msg, e = RuntimeError) ⇒ Object
Log an error and raise an exception.
Instance Attribute Details
#config ⇒ Hashie::Mash (readonly)
Configuration options, ie aws_credentials, auto_scaling_queues, actions, daemonize, dry_run, listen_timeout, log_file, log_level, pid_file, save_failures, stats_interval, sqs_set_attributes_timeout, visibility_timeout, wait_time. Additional configuration keys include listeners.
18 19 20 |
# File 'lib/qurd/configuration.rb', line 18 def config @config end |
#logger ⇒ Object (readonly)
Returns the value of attribute logger.
18 |
# File 'lib/qurd/configuration.rb', line 18 attr_reader :config, :logger |
Instance Method Details
#configure(config_path) ⇒ Object
Configure Qurd
53 54 55 56 57 58 59 60 |
# File 'lib/qurd/configuration.rb', line 53 def configure(config_path) init(config_path) mkdir_p_file!(@config.pid_file) configure_credentials configure_auto_scaling_queues configure_actions end |
#debug? ⇒ Boolean
Determine if the daemon is running in debug mode
64 65 66 |
# File 'lib/qurd/configuration.rb', line 64 def debug? config.log_level == 'debug' end |
#get_context(attrs = {}) ⇒ Cabin::Context
Get a logging context and optionally initialize it
79 80 81 82 83 84 85 |
# File 'lib/qurd/configuration.rb', line 79 def get_context(attrs = {}) ctx = logger.context attrs.each do |k, v| ctx[k] = v end ctx end |
#init(config_path) ⇒ Object
Initialize Qurd
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/qurd/configuration.rb', line 23 def init(config_path) config_path ||= '/etc/qurd/config.yml' @config = Hashie::Mash.new YAML.load(File.read(config_path)) @sqs_queues = {} @config.daemonize = false if @config.daemonize.nil? @config.dry_run = get_or_default(@config, :dry_run, false) @config.pid_file ||= '/var/run/qurd/qurd.pid' @config.save_failures = get_or_default(@config, :save_failures, true) @queues = [] @aws_credentials = [] st = get_or_default(@config, :sqs_set_attributes_timeout, 10, :to_f) si = get_or_default(@config, :stats_interval, 600, :to_i) vt = get_or_default(@config, :visibility_timeout, 300, :to_s) wt = get_or_default(@config, :wait_time, 20, :to_s) lt = get_or_default(@config, :listen_timeout, vt, :to_f) @config.stats_interval = si @config.visibility_timeout = vt @config.wait_time = wt @config.sqs_set_attributes_timeout = st @config.listen_timeout = lt %w[launch launch_error terminate terminate_error test].each do |action| @config.actions[action] ||= [] end configure_logger end |
#logger!(msg, e = RuntimeError) ⇒ Object
Log an error and raise an exception
71 72 73 74 |
# File 'lib/qurd/configuration.rb', line 71 def logger!(msg, e = RuntimeError) logger.error msg fail e, msg end |