Class: Chef::Knife::BriefcasePut
- Inherits:
-
Chef::Knife
- Object
- Chef::Knife
- Chef::Knife::BriefcasePut
- Includes:
- KnifeBriefcase::Knife
- Defined in:
- lib/chef/knife/briefcase_put.rb
Instance Method Summary collapse
Methods included from KnifeBriefcase::Knife
#data_bag_name, deps, #file, #highline, inherited, #item_name, #recipients, #signers
Instance Method Details
#run ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/chef/knife/briefcase_put.rb', line 7 def run encrypted = crypto.encrypt( GPGME::Data.from_io(file ? File.open(file) : stdin), :recipients => recipients, :sign => !!signers, :signers => signers, :always_trust => true) 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 item = Chef::DataBagItem.from_hash( 'id' => item_name, 'content' => encrypted.to_s ) item.data_bag(data_bag_name) begin rest.post_rest("data/#{data_bag_name}", item) rescue Net::HTTPServerException => e raise unless e.to_s =~ /^409/ rest.put_rest("data/#{data_bag_name}/#{item_name}", item) end end |