bmc-daemon-lib 0.12.2 → 0.13.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/bmc-daemon-lib.gemspec +4 -4
- data/lib/bmc-daemon-lib/conf.rb +150 -123
- metadata +5 -5
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 | 
            -
             | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 2 | 
            +
            SHA256:
         | 
| 3 | 
            +
              metadata.gz: c82b143ff8a357de485934538617e19a176535ed160cf608ccd652ded70abaee
         | 
| 4 | 
            +
              data.tar.gz: 46f2b9db709b3197195eadfbd68378407cd1212c8ad61e63ef0c3856d7059814
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 396b40feb073d614a22ffc7b3999981bb2539d28fe44494aa790b8c0428183fc3d73cb1d2c545553ad88bbf6d86cfa1cc13654c974d55b3eb61736c40d793772
         | 
| 7 | 
            +
              data.tar.gz: b5f46871abf578101a6bf51078811a9c432276b382c02e7fd623c0b5d674b4635622552be6c466172435d79bdd389d94067b6cf3b646f9d8d97a445eb68c34ba
         | 
    
        data/bmc-daemon-lib.gemspec
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            # coding: utf-8
         | 
| 2 2 | 
             
            Gem::Specification.new do |spec|
         | 
| 3 3 | 
             
              # Project version
         | 
| 4 | 
            -
              spec.version                      = "0. | 
| 4 | 
            +
              spec.version                      = "0.13.2"
         | 
| 5 5 |  | 
| 6 6 | 
             
              # Project description
         | 
| 7 7 | 
             
              spec.name                         = "bmc-daemon-lib"
         | 
| @@ -24,12 +24,12 @@ Gem::Specification.new do |spec| | |
| 24 24 | 
             
              spec.add_development_dependency   "rake"
         | 
| 25 25 | 
             
              spec.add_development_dependency   "rspec"
         | 
| 26 26 | 
             
              spec.add_development_dependency   "rubocop"
         | 
| 27 | 
            -
               | 
| 28 | 
            -
             | 
| 27 | 
            +
              
         | 
| 29 28 | 
             
              # Runtime dependencies
         | 
| 30 29 | 
             
              # spec.add_runtime_dependency       "hashie" , "~> 3.4.6"   # upgrading to 3.5.4 breaks things !
         | 
| 31 30 | 
             
              # spec.add_runtime_dependency       "chamber" , "~> 2.9.1"
         | 
| 32 31 |  | 
| 33 | 
            -
              spec.add_runtime_dependency       "hashie" , "~> 3.4.6"   # upgrading to 3.5.4 breaks things !
         | 
| 32 | 
            +
              # spec.add_runtime_dependency       "hashie" , "~> 3.4.6"   # upgrading to 3.5.4 breaks things !
         | 
| 33 | 
            +
              spec.add_runtime_dependency       "hashie" , "~> 3"   # upgrading to 3.5.4 breaks things !
         | 
| 34 34 | 
             
              spec.add_runtime_dependency       "chamber"
         | 
| 35 35 | 
             
            end
         | 
    
        data/lib/bmc-daemon-lib/conf.rb
    CHANGED
    
    | @@ -14,99 +14,67 @@ module BmcDaemonLib | |
| 14 14 | 
             
                extend Chamber
         | 
| 15 15 | 
             
                PIDFILE_DIR = "/tmp/"
         | 
| 16 16 |  | 
| 17 | 
            +
                # Set up encodings
         | 
| 18 | 
            +
                Encoding.default_internal = "utf-8"
         | 
| 19 | 
            +
                Encoding.default_external = "utf-8"
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                # Some global init
         | 
| 22 | 
            +
                @app_started  = Time.now
         | 
| 23 | 
            +
                @app_name     = ""
         | 
| 24 | 
            +
                @app_env      = "production"
         | 
| 25 | 
            +
                @app_host     = `hostname`.to_s.chomp.split(".").first
         | 
| 26 | 
            +
             | 
| 27 | 
            +
                # By default, Newrelic is disabled
         | 
| 28 | 
            +
                ENV["NEWRELIC_AGENT_ENABLED"] = "false"
         | 
| 29 | 
            +
             | 
| 17 30 | 
             
                class << self
         | 
| 18 | 
            -
                  attr_accessor :app_env
         | 
| 19 31 | 
             
                  attr_reader   :app_root
         | 
| 20 | 
            -
                  attr_reader   : | 
| 32 | 
            +
                  attr_reader   :app_started
         | 
| 21 33 | 
             
                  attr_reader   :app_name
         | 
| 34 | 
            +
                  attr_reader   :app_env
         | 
| 35 | 
            +
                  attr_reader   :app_host
         | 
| 22 36 | 
             
                  attr_reader   :app_ver
         | 
| 23 | 
            -
                  attr_reader   :app_started
         | 
| 24 37 | 
             
                  attr_reader   :app_spec
         | 
| 25 | 
            -
                  attr_reader   : | 
| 26 | 
            -
                  attr_reader   :host
         | 
| 27 | 
            -
                end
         | 
| 28 | 
            -
             | 
| 29 | 
            -
                def self.init app_root
         | 
| 30 | 
            -
                  # Permanent flags
         | 
| 31 | 
            -
                  @initialized  = true
         | 
| 32 | 
            -
                  @app_started  = Time.now
         | 
| 33 | 
            -
             | 
| 34 | 
            -
                  # Default values
         | 
| 35 | 
            -
                  @files        ||= []
         | 
| 36 | 
            -
                  @app_name     ||= "app_name"
         | 
| 37 | 
            -
                  @app_env      ||= "production"
         | 
| 38 | 
            -
                  @host         ||= `hostname`.to_s.chomp.split(".").first
         | 
| 39 | 
            -
             | 
| 40 | 
            -
                  # Store and clean app_root
         | 
| 41 | 
            -
                  @app_root = File.expand_path(app_root)
         | 
| 42 | 
            -
                  gemspec_path = "#{@app_root}/*.gemspec"
         | 
| 43 | 
            -
             | 
| 44 | 
            -
                  # Try to find any gemspec file
         | 
| 45 | 
            -
                  matches   = Dir[gemspec_path]
         | 
| 46 | 
            -
                  fail ConfigGemspecMissing, "gemspec file not found: #{gemspec_path}" if matches.size < 1
         | 
| 47 | 
            -
                  fail ConfigGemspecNotUnique, "gemspec file not found: #{gemspec_path}" if matches.size > 1
         | 
| 48 | 
            -
             | 
| 49 | 
            -
                  # Load Gemspec (just the only match)
         | 
| 50 | 
            -
                  @spec     = Gem::Specification::load(matches.first)
         | 
| 51 | 
            -
                  fail ConfigGemspecInvalid, "gemspec not readable: #{gemspec_path}" unless @spec
         | 
| 52 | 
            -
             | 
| 53 | 
            -
                  # Extract useful information from gemspec
         | 
| 54 | 
            -
                  @app_name = @spec.name.to_s
         | 
| 55 | 
            -
                  @app_ver  = @spec.version.to_s
         | 
| 56 | 
            -
                  fail ConfigMissingParameter, "gemspec: missing name" unless @app_name
         | 
| 57 | 
            -
                  fail ConfigMissingParameter, "gemspec: missing version" unless @app_ver
         | 
| 38 | 
            +
                  attr_reader   :app_config
         | 
| 58 39 |  | 
| 59 | 
            -
                   | 
| 60 | 
            -
             | 
| 61 | 
            -
             | 
| 62 | 
            -
                   | 
| 63 | 
            -
                  ENV["NEWRELIC_AGENT_ENABLED"] = "false"
         | 
| 64 | 
            -
             | 
| 65 | 
            -
                  # Add other config files
         | 
| 66 | 
            -
                  add_config generate_config_defaults
         | 
| 67 | 
            -
                  add_config generate_config_etc
         | 
| 68 | 
            -
             | 
| 69 | 
            -
                  # Return something
         | 
| 70 | 
            -
                  return @app_name
         | 
| 71 | 
            -
                end
         | 
| 40 | 
            +
                  def app_env= value
         | 
| 41 | 
            +
                    @app_env = value
         | 
| 42 | 
            +
                    ENV["RACK_ENV"] = value.to_s
         | 
| 43 | 
            +
                  end
         | 
| 72 44 |  | 
| 73 | 
            -
             | 
| 74 | 
            -
             | 
| 45 | 
            +
                  def app_config= path
         | 
| 46 | 
            +
                    @app_config= path
         | 
| 47 | 
            +
                  end
         | 
| 75 48 |  | 
| 76 | 
            -
                   | 
| 77 | 
            -
             | 
| 78 | 
            -
                   | 
| 49 | 
            +
                  def cmd_config= path
         | 
| 50 | 
            +
                    @app_config= path
         | 
| 51 | 
            +
                  end
         | 
| 79 52 |  | 
| 80 | 
            -
                  #  | 
| 81 | 
            -
                   | 
| 53 | 
            +
                  # def self.init app_root = nil
         | 
| 54 | 
            +
                  def app_root= path
         | 
| 55 | 
            +
                    self.init_from path
         | 
| 56 | 
            +
                  end
         | 
| 82 57 |  | 
| 83 | 
            -
                   | 
| 84 | 
            -
             | 
| 85 | 
            -
             | 
| 58 | 
            +
                  def init_from path
         | 
| 59 | 
            +
                    # Store it
         | 
| 60 | 
            +
                    @app_root = ::File.expand_path(path)
         | 
| 61 | 
            +
                    return unless @app_root
         | 
| 86 62 |  | 
| 87 | 
            -
             | 
| 88 | 
            -
             | 
| 63 | 
            +
                    # Read the gemspec
         | 
| 64 | 
            +
                    gemspec = init_from_gemspec
         | 
| 89 65 |  | 
| 90 | 
            -
             | 
| 91 | 
            -
             | 
| 92 | 
            -
             | 
| 93 | 
            -
                  fail ConfigOtherError, "#{e.message} \n #{e.backtrace.to_yaml}"
         | 
| 94 | 
            -
                end
         | 
| 95 | 
            -
             | 
| 96 | 
            -
                # Reload files
         | 
| 97 | 
            -
                def self.reload!
         | 
| 98 | 
            -
                  ensure_init
         | 
| 99 | 
            -
                  load_files
         | 
| 100 | 
            -
                end
         | 
| 66 | 
            +
                    #return gemspec
         | 
| 67 | 
            +
                    return @app_root
         | 
| 68 | 
            +
                  end
         | 
| 101 69 |  | 
| 102 | 
            -
             | 
| 103 | 
            -
             | 
| 104 | 
            -
                   | 
| 70 | 
            +
                  def dump
         | 
| 71 | 
            +
                    to_hash.to_yaml(indent: 4, useheader: true, useversion: false )
         | 
| 72 | 
            +
                  end
         | 
| 73 | 
            +
                
         | 
| 105 74 | 
             
                end
         | 
| 106 75 |  | 
| 107 76 | 
             
                # Direct access to any depth
         | 
| 108 77 | 
             
                def self.at *path
         | 
| 109 | 
            -
                  ensure_init
         | 
| 110 78 | 
             
                  path.reduce(Conf) { |m, key| m && m[key.to_s] }
         | 
| 111 79 | 
             
                end
         | 
| 112 80 |  | 
| @@ -140,17 +108,13 @@ module BmcDaemonLib | |
| 140 108 | 
             
                def self.gem_installed? gemname
         | 
| 141 109 | 
             
                  Gem::Specification.collect(&:name).include? gemname
         | 
| 142 110 | 
             
                end
         | 
| 143 | 
            -
             | 
| 144 | 
            -
             | 
| 145 111 | 
             
                def self.feature_newrelic?
         | 
| 146 | 
            -
                  ensure_init
         | 
| 147 112 | 
             
                  return false unless gem_installed?('newrelic_rpm')
         | 
| 148 113 | 
             
                  return false if self.at(:newrelic, :enabled) == false
         | 
| 149 114 | 
             
                  return false if self.at(:newrelic, :disabled) == true
         | 
| 150 115 | 
             
                  return self.at(:newrelic, :license) || false
         | 
| 151 116 | 
             
                end
         | 
| 152 117 | 
             
                def self.feature_rollbar?
         | 
| 153 | 
            -
                  ensure_init
         | 
| 154 118 | 
             
                  return false unless gem_installed?('rollbar')
         | 
| 155 119 | 
             
                  return false if self.at(:rollbar, :enabled) == false
         | 
| 156 120 | 
             
                  return false if self.at(:rollbar, :disabled) == true
         | 
| @@ -168,36 +132,46 @@ module BmcDaemonLib | |
| 168 132 | 
             
                end
         | 
| 169 133 |  | 
| 170 134 | 
             
                # Generators
         | 
| 171 | 
            -
                def self. | 
| 172 | 
            -
                   | 
| 173 | 
            -
             | 
| 174 | 
            -
             | 
| 175 | 
            -
                def self.generate_config_defaults
         | 
| 176 | 
            -
                  ensure_init
         | 
| 177 | 
            -
                  "#{@app_root}/defaults.yml" if @app_root
         | 
| 135 | 
            +
                def self.app_libs
         | 
| 136 | 
            +
                  check_presence_of @app_name, @app_root
         | 
| 137 | 
            +
             | 
| 138 | 
            +
                  ::File.expand_path("lib/#{@app_name}/", @app_root)
         | 
| 178 139 | 
             
                end
         | 
| 179 | 
            -
             | 
| 180 | 
            -
             | 
| 181 | 
            -
                   | 
| 140 | 
            +
             | 
| 141 | 
            +
                def self.generate_user_agent
         | 
| 142 | 
            +
                  check_presence_of @app_name, @app_ver
         | 
| 143 | 
            +
             | 
| 144 | 
            +
                  "#{@app_name}/#{@app_ver}"
         | 
| 182 145 | 
             
                end
         | 
| 146 | 
            +
             | 
| 183 147 | 
             
                def self.generate_process_name
         | 
| 184 | 
            -
                   | 
| 148 | 
            +
                  check_presence_of @app_name, @app_env
         | 
| 149 | 
            +
             | 
| 185 150 | 
             
                  parts = [@app_name, @app_env]
         | 
| 186 151 | 
             
                  parts << self[:port] if self[:port]
         | 
| 187 152 | 
             
                  parts.join('-')
         | 
| 188 153 | 
             
                end
         | 
| 154 | 
            +
             | 
| 155 | 
            +
                def self.generate_config_defaults
         | 
| 156 | 
            +
                  check_presence_of @app_root
         | 
| 157 | 
            +
                  "#{@app_root}/defaults.yml"
         | 
| 158 | 
            +
                end
         | 
| 159 | 
            +
             | 
| 160 | 
            +
                def self.generate_config_etc
         | 
| 161 | 
            +
                  check_presence_of @app_name
         | 
| 162 | 
            +
                  "/etc/#{@app_name}.yml"
         | 
| 163 | 
            +
                end
         | 
| 164 | 
            +
             | 
| 189 165 | 
             
                def self.generate_pidfile
         | 
| 190 | 
            -
                   | 
| 191 | 
            -
                  process_name = self.generate_process_name
         | 
| 192 | 
            -
                  File.expand_path "#{process_name}.pid", PIDFILE_DIR
         | 
| 166 | 
            +
                  ::File.expand_path "#{self.generate_process_name}.pid", PIDFILE_DIR
         | 
| 193 167 | 
             
                end
         | 
| 168 | 
            +
             | 
| 194 169 | 
             
                def self.generate_config_message
         | 
| 195 | 
            -
                   | 
| 196 | 
            -
             | 
| 197 | 
            -
                    config_etc = self.generate(:config_etc)
         | 
| 198 | 
            -
                    "A default configuration is available (#{config_defaults}) and can be copied to the default location (#{config_etc}): \n sudo cp #{config_defaults} #{config_etc}"
         | 
| 170 | 
            +
                  return unless self.generate_config_defaults && self.generate_config_etc
         | 
| 171 | 
            +
                  "A default configuration is available (#{self.generate_config_defaults}) and can be copied to the default location (#{self.generate_config_etc}): \n sudo cp #{self.generate_config_defaults} #{self.generate_config_etc}"
         | 
| 199 172 | 
             
                end
         | 
| 200 173 |  | 
| 174 | 
            +
                # Plugins
         | 
| 201 175 | 
             
                def self.prepare_newrelic
         | 
| 202 176 | 
             
                  # Disable if no config present
         | 
| 203 177 | 
             
                  return unless self.feature?(:newrelic)
         | 
| @@ -217,17 +191,6 @@ module BmcDaemonLib | |
| 217 191 | 
             
                  ENV["NEW_RELIC_LOG"] = logfile_path(:newrelic)
         | 
| 218 192 | 
             
                  ENV["NEW_RELIC_LICENSE_KEY"] = conf[:license].to_s
         | 
| 219 193 | 
             
                  ENV["NEW_RELIC_APP_NAME"] = conf[:app_name].to_s
         | 
| 220 | 
            -
             | 
| 221 | 
            -
                  # logger_newrelic = Logger.new('/tmp/newrelic.log')
         | 
| 222 | 
            -
                  # logger_newrelic.debug Time.now()
         | 
| 223 | 
            -
                  # Start the agent
         | 
| 224 | 
            -
                  # NewRelic::Agent.manual_start({
         | 
| 225 | 
            -
                  #   agent_enabled: true,
         | 
| 226 | 
            -
                  #   log: logger_newrelic,
         | 
| 227 | 
            -
                  #   env: @app_env,
         | 
| 228 | 
            -
                  #   license_key: conf[:license].to_s,
         | 
| 229 | 
            -
                  #   app_name: conf[:app_name].to_s,
         | 
| 230 | 
            -
                  # })
         | 
| 231 194 | 
             
                end
         | 
| 232 195 |  | 
| 233 196 | 
             
                def self.prepare_rollbar
         | 
| @@ -254,7 +217,7 @@ module BmcDaemonLib | |
| 254 217 | 
             
                  end
         | 
| 255 218 |  | 
| 256 219 | 
             
                  # Notify startup
         | 
| 257 | 
            -
                  Rollbar.info("[#{@app_ver}] #{@ | 
| 220 | 
            +
                  Rollbar.info("[#{@app_ver}] #{@app_host}")
         | 
| 258 221 | 
             
                end
         | 
| 259 222 |  | 
| 260 223 | 
             
                def self.log origin, message
         | 
| @@ -268,9 +231,37 @@ module BmcDaemonLib | |
| 268 231 |  | 
| 269 232 | 
             
              protected
         | 
| 270 233 |  | 
| 234 | 
            +
                def self.init_from_gemspec
         | 
| 235 | 
            +
                  # Check conditions
         | 
| 236 | 
            +
                  check_presence_of @app_root
         | 
| 237 | 
            +
             | 
| 238 | 
            +
                  # puts "Conf.init_from_gemspec"
         | 
| 239 | 
            +
                  gemspec_path = "#{@app_root}/*.gemspec"
         | 
| 240 | 
            +
             | 
| 241 | 
            +
                  # Try to find any gemspec file
         | 
| 242 | 
            +
                  matches   = Dir[gemspec_path]
         | 
| 243 | 
            +
                  fail ConfigGemspecMissing, "gemspec file not found: #{gemspec_path}" if matches.size < 1
         | 
| 244 | 
            +
                  fail ConfigGemspecNotUnique, "gemspec file not found: #{gemspec_path}" if matches.size > 1
         | 
| 245 | 
            +
             | 
| 246 | 
            +
                  # Load Gemspec (just the only match)
         | 
| 247 | 
            +
                  @spec     = Gem::Specification::load(matches.first)
         | 
| 248 | 
            +
                  fail ConfigGemspecInvalid, "gemspec not readable: #{gemspec_path}" unless @spec
         | 
| 249 | 
            +
             | 
| 250 | 
            +
                  # Extract useful information from gemspec
         | 
| 251 | 
            +
                  @app_name = @spec.name.to_s
         | 
| 252 | 
            +
                  @app_ver  = @spec.version.to_s
         | 
| 253 | 
            +
                  fail ConfigMissingParameter, "gemspec: missing name" unless @app_name
         | 
| 254 | 
            +
                  fail ConfigMissingParameter, "gemspec: missing version" unless @app_ver
         | 
| 255 | 
            +
             | 
| 256 | 
            +
                  return @spec
         | 
| 257 | 
            +
                end
         | 
| 258 | 
            +
             | 
| 271 259 | 
             
                def self.newrelic_init_app_name conf
         | 
| 272 260 | 
             
                  # Ignore if already set
         | 
| 273 | 
            -
                  return if  | 
| 261 | 
            +
                  return if @app_name
         | 
| 262 | 
            +
             | 
| 263 | 
            +
                  # Check conditions
         | 
| 264 | 
            +
                  check_presence_of @app_env
         | 
| 274 265 |  | 
| 275 266 | 
             
                  # Stack all those parts
         | 
| 276 267 | 
             
                  stack = []
         | 
| @@ -280,25 +271,53 @@ module BmcDaemonLib | |
| 280 271 | 
             
                  text = stack.join('-')
         | 
| 281 272 |  | 
| 282 273 | 
             
                  # Return a composite appname
         | 
| 283 | 
            -
                  conf[:app_name] = "#{text}; #{text}-#{@ | 
| 274 | 
            +
                  conf[:app_name] = "#{text}; #{text}-#{@app_host}"
         | 
| 284 275 | 
             
                end
         | 
| 285 276 |  | 
| 286 | 
            -
                def self. | 
| 287 | 
            -
                   | 
| 277 | 
            +
                def self.reload
         | 
| 278 | 
            +
                  files=[]
         | 
| 279 | 
            +
             | 
| 280 | 
            +
                  # Load defaults
         | 
| 281 | 
            +
                  add_config(files, self.generate_config_defaults)
         | 
| 282 | 
            +
             | 
| 283 | 
            +
                  # Load etc config
         | 
| 284 | 
            +
                  add_config(files, self.generate_config_etc)
         | 
| 285 | 
            +
             | 
| 286 | 
            +
                  # Load app config
         | 
| 287 | 
            +
                  add_config(files, @app_config)
         | 
| 288 | 
            +
             | 
| 289 | 
            +
                  # Reload config
         | 
| 290 | 
            +
                  # puts "Conf.reload: loading files: #{files.inspect}"
         | 
| 291 | 
            +
                  log :conf, "reloading from files: #{files.inspect}"
         | 
| 292 | 
            +
                  load files: files, namespaces: { environment: @app_env }
         | 
| 293 | 
            +
             | 
| 294 | 
            +
                  # Try to access any key to force parsing of the files
         | 
| 295 | 
            +
                  self[:test35547647654856865436346453754746588586799078079876543245678654324567865432]
         | 
| 296 | 
            +
             | 
| 297 | 
            +
                rescue Psych::SyntaxError => e
         | 
| 298 | 
            +
                  fail ConfigParseError, e.message
         | 
| 299 | 
            +
                rescue StandardError => e
         | 
| 300 | 
            +
                  fail ConfigOtherError, "#{e.message} \n #{e.backtrace.to_yaml}"
         | 
| 301 | 
            +
             | 
| 302 | 
            +
                else
         | 
| 303 | 
            +
                  return to_hash
         | 
| 288 304 | 
             
                end
         | 
| 289 305 |  | 
| 290 | 
            -
                def self.add_config path
         | 
| 291 | 
            -
                  #  | 
| 292 | 
            -
                  return unless path | 
| 306 | 
            +
                def self.add_config files, path
         | 
| 307 | 
            +
                  # Should be not empty/nil
         | 
| 308 | 
            +
                  return unless path
         | 
| 309 | 
            +
             | 
| 310 | 
            +
                  # Should be readable
         | 
| 311 | 
            +
                  return unless File.readable?(path)
         | 
| 293 312 |  | 
| 294 313 | 
             
                  # Check if Chamber's behaviour may cause problems with hyphens
         | 
| 295 314 | 
             
                  basename = File.basename(path)
         | 
| 296 | 
            -
                  if  | 
| 315 | 
            +
                  if basename.include?'-'
         | 
| 297 316 | 
             
                    log :conf, "WARNING: files with dashes may cause unexpected behaviour with Chamber (#{basename})"
         | 
| 298 317 | 
             
                  end
         | 
| 299 318 |  | 
| 300 | 
            -
                  #  | 
| 301 | 
            -
                   | 
| 319 | 
            +
                  # Add it
         | 
| 320 | 
            +
                  files << File.expand_path(path) 
         | 
| 302 321 | 
             
                end
         | 
| 303 322 |  | 
| 304 323 | 
             
                def self.logfile_path pipe
         | 
| @@ -320,9 +339,17 @@ module BmcDaemonLib | |
| 320 339 |  | 
| 321 340 | 
             
              private
         | 
| 322 341 |  | 
| 323 | 
            -
                 | 
| 324 | 
            -
             | 
| 325 | 
            -
             | 
| 342 | 
            +
                # Check every argument for value presence
         | 
| 343 | 
            +
                def self.check_presence_of *args
         | 
| 344 | 
            +
                  # puts "check_presence_of #{args.inspect}"
         | 
| 345 | 
            +
                  args.each do |arg|
         | 
| 346 | 
            +
                    # OK if it's not empty
         | 
| 347 | 
            +
                    # puts "- [#{arg}]"
         | 
| 348 | 
            +
                    next unless arg.to_s.empty?
         | 
| 349 | 
            +
             | 
| 350 | 
            +
                    # Otherise, we just exit
         | 
| 351 | 
            +
                    log :conf, "FAILED: object Conf has not been initialized correctly yet"
         | 
| 352 | 
            +
                    exit 200
         | 
| 326 353 | 
             
                  end
         | 
| 327 354 | 
             
                end
         | 
| 328 355 |  | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: bmc-daemon-lib
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.13.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Bruno MEDICI
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2018-12-03 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         | 
| @@ -72,14 +72,14 @@ dependencies: | |
| 72 72 | 
             
                requirements:
         | 
| 73 73 | 
             
                - - "~>"
         | 
| 74 74 | 
             
                  - !ruby/object:Gem::Version
         | 
| 75 | 
            -
                    version: 3 | 
| 75 | 
            +
                    version: '3'
         | 
| 76 76 | 
             
              type: :runtime
         | 
| 77 77 | 
             
              prerelease: false
         | 
| 78 78 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 79 79 | 
             
                requirements:
         | 
| 80 80 | 
             
                - - "~>"
         | 
| 81 81 | 
             
                  - !ruby/object:Gem::Version
         | 
| 82 | 
            -
                    version: 3 | 
| 82 | 
            +
                    version: '3'
         | 
| 83 83 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 84 84 | 
             
              name: chamber
         | 
| 85 85 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -134,7 +134,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 134 134 | 
             
                  version: '0'
         | 
| 135 135 | 
             
            requirements: []
         | 
| 136 136 | 
             
            rubyforge_project: 
         | 
| 137 | 
            -
            rubygems_version: 2. | 
| 137 | 
            +
            rubygems_version: 2.7.3
         | 
| 138 138 | 
             
            signing_key: 
         | 
| 139 139 | 
             
            specification_version: 4
         | 
| 140 140 | 
             
            summary: 'Shared utilities to build a daemon: logger, configuration, helpers'
         |