Method: Chef::DataBagItem.load

Defined in:
lib/chef/data_bag_item.rb

.load(data_bag, name) ⇒ Object

Load a Data Bag Item by name via either the RESTful API or local data_bag_path if run in solo mode



150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
# File 'lib/chef/data_bag_item.rb', line 150

def self.load(data_bag, name)
  if Chef::Config[:solo_legacy_mode]
    bag = Chef::DataBag.load(data_bag)
    raise Exceptions::InvalidDataBagItemID, "Item #{name} not found in data bag #{data_bag}. Other items found: #{bag.keys.join(", ")}" unless bag.include?(name)

    item = bag[name]
  else
    item = Chef::ServerAPI.new(Chef::Config[:chef_server_url]).get("data/#{data_bag}/#{name}")
  end

  if item.is_a?(DataBagItem)
    item
  else
    item = from_hash(item)
    item.data_bag(data_bag)
    item
  end
end