# File lib/chef/config_fetcher.rb, line 48 def config_missing? return false if remote_config? # Check if the config file exists, and check if it is underneath the config file jail begin real_config_file = Pathname.new(config_location).realpath.to_s rescue Errno::ENOENT return true end # If realpath succeeded, the file exists return false if !config_file_jail begin real_jail = Pathname.new(config_file_jail).realpath.to_s rescue Errno::ENOENT Chef::Log.warn("Config file jail #{config_file_jail} does not exist: will not load any config file.") return true end !Chef::ChefFS::PathUtils.descendant_of?(real_config_file, real_jail) end
# File lib/chef/config_fetcher.rb, line 17 def fetch_json config_data = read_config begin Chef::JSONCompat.from_json(config_data) rescue FFI_Yajl::ParseError => error Chef::Application.fatal!("Could not parse the provided JSON file (#{config_location}): " + error.message, 2) end end
# File lib/chef/config_fetcher.rb, line 34 def fetch_remote_config http.get("") rescue SocketError, SystemCallError, Net::HTTPServerException => error Chef::Application.fatal!("Cannot fetch config '#{config_location}': '#{error.class}: #{error.message}", 2) end
# File lib/chef/config_fetcher.rb, line 71 def http Chef::HTTP::Simple.new(config_location) end
# File lib/chef/config_fetcher.rb, line 26 def read_config if remote_config? fetch_remote_config else read_local_config end end
# File lib/chef/config_fetcher.rb, line 40 def read_local_config ::File.read(config_location) rescue Errno::ENOENT => error Chef::Application.fatal!("Cannot load configuration from #{config_location}", 2) rescue Errno::EACCES => error Chef::Application.fatal!("Permissions are incorrect on #{config_location}. Please chmod a+r #{config_location}", 2) end
Generated with the Darkfish Rdoc Generator 2.