# File lib/phusion_passenger/admin_tools/instance.rb, line 35 def initialize(path) @path = path # Possible states: # # * :good - Everything is good. But the Watchdog process that created # it might have died. In that case, the directory should be cleaned up. # Use `locked?` to check. # # * :not_finalized - The instance directory hasn't been finalized yet, # so we can't read any information from it. It is possible that the # process that has created it has died, i.e. that it will never # become finalized. In that case, the directory should be cleaned up. # Use `stale?` to check. # # * :structure_version_unsupported - The properties file advertised a # structure version that we don't support. We can't read any # information from it. # # * :corrupted - The instance directory is corrupted in some way. @state = nil reload_properties end
# File lib/phusion_passenger/admin_tools/instance.rb, line 110 def core_pid @core_pid ||= File.read("#{@path}/core.pid").to_i end
# File lib/phusion_passenger/admin_tools/instance.rb, line 114 def full_admin_password @full_admin_password ||= File.read("#{@path}/full_admin_password.txt") end
# File lib/phusion_passenger/admin_tools/instance.rb, line 89 def http_request(socket_path, request) sock = Net::BufferedIO.new(UNIXSocket.new("#{@path}/#{socket_path}")) begin request.exec(sock, "1.1", request.path) done = false while !done response = Net::HTTPResponse.read_new(sock) done = !response.kind_of?(Net::HTTPContinue) end response.reading_body(sock, request.response_body_permitted?) do # Nothing end ensure sock.close end return response end
# File lib/phusion_passenger/admin_tools/instance.rb, line 59 def locked? if defined?(File::LOCK_EX) begin !File.open("#{@path}/lock", "r") do |f| f.flock(File::LOCK_EX | File::LOCK_NB) end rescue Errno::ENOENT false end else # Solaris :-( # Since using fcntl locks in Ruby is a huge pain, # we'll fallback to checking the watchdog PID. watchdog_alive? end end
# File lib/phusion_passenger/admin_tools/instance.rb, line 118 def read_only_admin_password @read_only_admin_password ||= File.read("#{@path}/read_only_admin_password.txt") end
Generated with the Darkfish Rdoc Generator 2.