Sha256: 7611844fca378961dbc861b0c5ed928d6fe6344a92ebc8d9e62588145a029056

Contents?: true

Size: 988 Bytes

Versions: 6

Compression:

Stored size: 988 Bytes

Contents

require 'chef/encrypted_data_bag_item'

module EncryptedDataBag
  def setup
    super
    FileUtils.cp $base_dir.join('support', 'data_bag_key'), 'data_bag_key'
    FileUtils.cp_r $base_dir.join('support', 'secret_cookbook'), 'cookbooks/secret_cookbook'
    @password = "essential particles busy loud"
    create_data_bag
  end

  def create_data_bag
    secret = Chef::EncryptedDataBagItem.load_secret('data_bag_key')
    data = {"id" => "passwords", "admin" => @password}
    encrypted_data = Chef::EncryptedDataBagItem.encrypt_data_bag_item(data, secret)
    write_json_file('data_bags/dev/passwords.json', encrypted_data)
  end

  # Test that we can read an encrypted data bag value
  # NOTE: This shells out to ssh, so may not be windows-compatible
  def test_reading_encrypted_data_bag
    write_nodefile(run_list: ["recipe[secret_cookbook]"])
    assert_subcommand "cook"
    actual = `ssh #{connection_string} cat /etc/admin_password`
    assert_equal @password, actual
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
knife-solo-0.3.0.pre2 test/integration/cases/encrypted_data_bag.rb
knife-solo-0.3.0.pre1 test/integration/cases/encrypted_data_bag.rb
knife-solo-0.2.0 test/integration/cases/encrypted_data_bag.rb
knife-solo-0.2.0.pre1 test/integration/cases/encrypted_data_bag.rb
knife-solo-0.1.0 test/integration/cases/encrypted_data_bag.rb
knife-solo-0.1.0.pre1 test/integration/cases/encrypted_data_bag.rb