A convenience class for communicating with MessageServer servers, for example the ApplicationPool server.
Connect to the given server. By default it connects to the current generation's core.
# File lib/phusion_passenger/message_client.rb, line 37 def initialize(username, password, address) @socket = connect_to_server(address) begin @channel = MessageChannel.new(@socket) result = @channel.read if result.nil? raise EOFError elsif result.size != 2 || result[0] != "version" raise IOError, "The message server didn't sent a valid version identifier" elsif result[1] != "1" raise IOError, "Unsupported message server protocol version #{result[1]}" end @channel.write_scalar(username) @channel.write_scalar(password) result = @channel.read if result.nil? raise EOFError elsif result[0] != "ok" raise SecurityError, result[0] end rescue Exception @socket.close raise end end
# File lib/phusion_passenger/message_client.rb, line 184 def check_security_response begin result = @channel.read rescue auto_disconnect raise end if result.nil? raise EOFError elsif result[0] != "Passed security" raise SecurityError, result[0] end end
# File lib/phusion_passenger/message_client.rb, line 66 def close @socket.close if @socket @channel = @socket = nil end
# File lib/phusion_passenger/message_client.rb, line 71 def connected? return !!@channel end
Passenger core BacktracesServer methods ###
# File lib/phusion_passenger/message_client.rb, line 133 def core_backtraces write("backtraces") check_security_response return read_scalar end
# File lib/phusion_passenger/message_client.rb, line 125 def core_requests write("requests") check_security_response return read_scalar end
Passenger core process methods ###
# File lib/phusion_passenger/message_client.rb, line 77 def pool_detach_process(pid) write("detach_process", pid) check_security_response result = read if result.nil? raise EOFError else return result.first == "true" end end
# File lib/phusion_passenger/message_client.rb, line 88 def pool_detach_process_by_key(detach_key) write("detach_process_by_key", detach_key) check_security_response result = read if result.nil? raise EOFError else return result.first == "true" end end
# File lib/phusion_passenger/message_client.rb, line 99 def pool_status(options = {}) write("inspect", *options.to_a.flatten) check_security_response return read_scalar rescue auto_disconnect raise end
# File lib/phusion_passenger/message_client.rb, line 108 def pool_xml write("toXml", true) check_security_response return read_scalar end
Low level I/O methods ###
# File lib/phusion_passenger/message_client.rb, line 149 def read return @channel.read rescue auto_disconnect raise end
# File lib/phusion_passenger/message_client.rb, line 170 def read_scalar return @channel.read_scalar rescue auto_disconnect raise end
# File lib/phusion_passenger/message_client.rb, line 177 def recv_io(klass = IO, negotiate = true) return @channel.recv_io(klass, negotiate) rescue auto_disconnect raise end
# File lib/phusion_passenger/message_client.rb, line 114 def restart_app_group(app_group_name, options = {}) write("restart_app_group", app_group_name, *options.to_a.flatten) check_security_response result = read if result.nil? raise EOFError else return result.first == "true" end end
Passenger UstRouter AdminServer methods ###
# File lib/phusion_passenger/message_client.rb, line 141 def ust_router_status write("status") check_security_response return read_scalar end
Generated with the Darkfish Rdoc Generator 2.