# File lib/chef/knife/data_bag_create.rb, line 45 def read_secret if config[:secret] config[:secret] else Chef::EncryptedDataBagItem.load_secret(config[:secret_file]) end end
# File lib/chef/knife/data_bag_create.rb, line 61 def run @data_bag_name, @data_bag_item_name = @name_args if @data_bag_name.nil? show_usage ui.fatal("You must specify a data bag name") exit 1 end begin Chef::DataBag.validate_name!(@data_bag_name) rescue Chef::Exceptions::InvalidDataBagName => e ui.fatal(e.message) exit(1) end # create the data bag begin rest.post_rest("data", { "name" => @data_bag_name }) ui.info("Created data_bag[#{@data_bag_name}]") rescue Net::HTTPServerException => e raise unless e.to_s =~ /^409/ ui.info("Data bag #{@data_bag_name} already exists") end # if an item is specified, create it, as well if @data_bag_item_name create_object({ "id" => @data_bag_item_name }, "data_bag_item[#{@data_bag_item_name}]") do |output| item = Chef::DataBagItem.from_hash( if use_encryption Chef::EncryptedDataBagItem.encrypt_data_bag_item(output, read_secret) else output end) item.data_bag(@data_bag_name) rest.post_rest("data/#{@data_bag_name}", item) end end end
Generated with the Darkfish Rdoc Generator 2.