class Chef::Knife::DataBagTarDownload

Public Class Methods

download_data_bags(tar_file) click to toggle source
# File lib/chef/knife/data_bag_tar_download.rb, line 28
def self.download_data_bags(tar_file)
  dir = tar_file.data_bags_path
  Chef::DataBag.list.each do |bag_name, url|
    system("mkdir -p #{File.join(dir, bag_name)}")
    Chef::DataBag.load(bag_name).each do |item_name, itemUrl|
      Chef::Log.info("Backing up data bag #{bag_name} item #{item_name}")
      item = Chef::DataBagItem.load(bag_name, item_name)
      File.open(File.join(dir, bag_name, "#{item_name}.json"), "w") do |dbag_file|
        dbag_file.print(item.raw_data.to_json)
      end
    end
  end
end

Public Instance Methods

run() click to toggle source
# File lib/chef/knife/data_bag_tar_download.rb, line 14
def run
  #Get Arguments
  if @name_args.size != 1
    ui.info("Please specify a tar path")
    show_usage
    exit 1
  end
  
  tar_file = Chef::TarFile.new(@name_args.first, true)
  DataBagTarDownload.download_data_bags tar_file
  tar_file.save

end