Module: Chef::DSL::SecureDataBag

Defined in:
lib/chef/dsl/data_query.rb

Instance Method Summary collapse

Instance Method Details

#secure_data_bag_item(bag, item, cache: false) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/chef/dsl/data_query.rb', line 5

def secure_data_bag_item(bag, item, cache: false)
  data_bag_item = begin
    node.run_state[:secure_data_bag] ||= {}
    node.run_state[:secure_data_bag][bag] ||= {}
    node.run_state[:secure_data_bag][bag][item]
  end if cache

  data_bag_item ||= begin
    DataBag.validate_name!(bag.to_s)
    ::SecureDataBag::Item.validate_id!(item)
    ::SecureDataBag::Item.load(bag, item)
  rescue Exception
    Log.error("Failed to load secure data bag item: #{bag.inspect} #{item.inspect}")
    raise
  end
end

#secure_data_bag_item!(item, fields = []) ⇒ Object



22
23
24
25
26
# File 'lib/chef/dsl/data_query.rb', line 22

def secure_data_bag_item!(item, fields=[])
  secure = ::SecureDataBag::Item.from_item item
  secure.encoded_fields.concat(Array(fields))
  secure
end