Sha256: ff739a699604f81cf1ba90ccb5011d3a06b09ec0d79216bbc37a910748404766
Contents?: true
Size: 1.21 KB
Versions: 3
Compression:
Stored size: 1.21 KB
Contents
class ChefVault module Mixins # In Chef 12, Chef Solo can have an array of data_bag paths, rather # than just a string. To cope with that, we'll: # 1. Look for an existing data bag item in any of the configured # paths and use that by preference # 1. Otherwise, just use the first location in the array def find_solo_path(item_id) if Chef::Config[:data_bag_path].kind_of?(Array) path = Chef::Config[:data_bag_path].find { |dir| File.exist?(File.join(dir, data_bag, "#{item_id}.json")) } path ||= Chef::Config[:data_bag_path].first data_bag_path = File.join(path, data_bag) else data_bag_path = File.join(Chef::Config[:data_bag_path], data_bag) end data_bag_item_path = File.join(data_bag_path, item_id) + ".json" [data_bag_path, data_bag_item_path] end def save_solo(item_id = @raw_data["id"]) data_bag_path, data_bag_item_path = find_solo_path(item_id) FileUtils.mkdir(data_bag_path) unless File.exist?(data_bag_path) File.open(data_bag_item_path, "w") do |file| file.write(JSON.pretty_generate(raw_data)) end raw_data end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
chef-vault-2.9.1 | lib/chef-vault/mixins.rb |
chef-vault-2.9.0 | lib/chef-vault/mixins.rb |
chef-vault-2.8.0 | lib/chef-vault/mixins.rb |