class Chef::ChefFS::FileSystem::ChefServer::DataBagsDir
Public Instance Methods
Source
# File lib/chef/chef_fs/file_system/chef_server/data_bags_dir.rb, line 44 def can_have_child?(name, is_dir) is_dir end
Source
# File lib/chef/chef_fs/file_system/chef_server/data_bags_dir.rb, line 32 def children @children ||= root.get_json(api_path).keys.sort.map { |entry| make_child_entry(entry, true) } rescue Timeout::Error => e raise Chef::ChefFS::FileSystem::OperationFailedError.new(:children, self, e, "Timeout getting children: #{e}") rescue Net::HTTPClientException => e if e.response.code == "404" raise Chef::ChefFS::FileSystem::NotFoundError.new(self, e) else raise Chef::ChefFS::FileSystem::OperationFailedError.new(:children, self, e, "HTTP error getting children: #{e}") end end
Source
# File lib/chef/chef_fs/file_system/chef_server/data_bags_dir.rb, line 48 def create_child(name, file_contents) begin rest.post(api_path, { "name" => name }) rescue Timeout::Error => e raise Chef::ChefFS::FileSystem::OperationFailedError.new(:create_child, self, e, "Timeout creating child '#{name}': #{e}") rescue Net::HTTPClientException => e if e.response.code == "409" raise Chef::ChefFS::FileSystem::AlreadyExistsError.new(:create_child, self, e, "Cannot create #{name} under #{path}: already exists") else raise Chef::ChefFS::FileSystem::OperationFailedError.new(:create_child, self, e, "HTTP error creating child '#{name}': #{e}") end end @children = nil DataBagDir.new(name, self, true) end
Source
# File lib/chef/chef_fs/file_system/chef_server/data_bags_dir.rb, line 27 def make_child_entry(name, exists = false) result = @children.find { |child| child.name == name } if @children result || DataBagDir.new(name, self, exists) end