class ChefFS::FileSystem::NodesDir

Public Class Methods

new(parent) click to toggle source
Calls superclass method
# File lib/chef_fs/file_system/nodes_dir.rb, line 27
def initialize(parent)
  super("nodes", parent, nil, ChefFS::DataHandler::NodeDataHandler.new)
end

Public Instance Methods

children() click to toggle source

Identical to RestListDir.children, except supports environments

# File lib/chef_fs/file_system/nodes_dir.rb, line 32
def children
  begin
    @children ||= ChefFS::RawRequest.raw_json(rest, env_api_path).keys.sort.map do |key|
      _make_child_entry("#{key}.json", true)
    end
  rescue Timeout::Error => e
    raise ChefFS::FileSystem::OperationFailedError.new(:children, self, e), "Timeout retrieving children: #{e}"
  rescue Net::HTTPServerException => e
    if $!.response.code == "404"
      raise ChefFS::FileSystem::NotFoundError.new(self, $!)
    else
      raise ChefFS::FileSystem::OperationFailedError.new(:children, self, e), "HTTP error retrieving children: #{e}"
    end
  end
end
env_api_path() click to toggle source
# File lib/chef_fs/file_system/nodes_dir.rb, line 48
def env_api_path
  environment ? "environments/#{environment}/#{api_path}" : api_path
end