Sha256: 5dbc3ddc9faeef98b56caae0321ec3c3c4e64552ab9f277297c6c744ce29e9b0

Contents?: true

Size: 1.09 KB

Versions: 3

Compression:

Stored size: 1.09 KB

Contents

module Provider
  class CdbFilesystem
    def load_yaml(filename)
      if File.file? filename
        begin
          YAML.load_file(filename)
        rescue
          puts "Error: YAML parsing in #{filename}"
          raise 'YAML not parsable'
        end
      else
        fail "File not found: #{filename}"
      end
    end

    def read_data(cdb_path, options = {})
      config    = {}
      basedir   = File.join(($recipe_config[:recipe_base_dir] || $recipe_config[:deploy_home]), 'cdb')
      filename  = ''
      if cdb_path.nil? or cdb_path.empty?
        $log.writer.error 'Error while talking to configuration database, no cdb path given!'
        exit 1
      end
      paths = cdb_path.split('/')

      paths.each do |path|
        basedir = File.join(basedir, path.to_s)
        filename = basedir + '.yaml'
        additional_config = load_yaml(filename)
        next unless additional_config.is_a?(Hash)
        if options[:disable_merge]
          config = additional_config
        else
          config.merge!(additional_config)
        end
      end
      config.to_json
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
depengine-3.0.23 lib/depengine/provider/cdb_filesystem.rb
depengine-3.0.22 lib/depengine/provider/cdb_filesystem.rb
depengine-3.0.21 lib/depengine/provider/cdb_filesystem.rb