class Chef::Knife::DataBagEdit
Public Instance Methods
edit_item(item)
click to toggle source
# File lib/chef/knife/data_bag_edit.rb, line 70 def edit_item(item) output = edit_data(item) if use_encryption Chef::EncryptedDataBagItem.encrypt_data_bag_item(output, read_secret) else output end end
load_item(bag, item_name)
click to toggle source
# File lib/chef/knife/data_bag_edit.rb, line 61 def load_item(bag, item_name) item = Chef::DataBagItem.load(bag, item_name) if use_encryption Chef::EncryptedDataBagItem.new(item, read_secret).to_hash else item end end
read_secret()
click to toggle source
# File lib/chef/knife/data_bag_edit.rb, line 45 def read_secret if config[:secret] config[:secret] else Chef::EncryptedDataBagItem.load_secret(config[:secret_file]) end end
run()
click to toggle source
# File lib/chef/knife/data_bag_edit.rb, line 79 def run if @name_args.length != 2 stdout.puts "You must supply the data bag and an item to edit!" stdout.puts opt_parser exit 1 end item = load_item(@name_args[0], @name_args[1]) output = edit_item(item) rest.put_rest("data/#{@name_args[0]}/#{@name_args[1]}", output) stdout.puts("Saved data_bag_item[#{@name_args[1]}]") ui.output(output) if config[:print_after] end
use_encryption()
click to toggle source
# File lib/chef/knife/data_bag_edit.rb, line 53 def use_encryption if config[:secret] && config[:secret_file] stdout.puts "please specify only one of --secret, --secret-file" exit(1) end config[:secret] || config[:secret_file] end