def exception_handler(e)
status = :internal_server_error
case e
when OpenShift::AuthServiceException
log_action(@request_id, 'nil', 'nil', "LEGACY_BROKER", false, "#{e.class.name} for #{request.path}: #{e.message}")
Rails.logger.error e.backtrace[0..5].join("\n")
@reply.append e.resultIO if e.resultIO
@reply.resultIO << "An error occurred while contacting the authentication service. If the problem persists please contact Red Hat support." if @reply.resultIO.length == 0
when OpenShift::UserException
log_action(@request_id.nil? ? 'nil' : @request_id, @cloud_user.nil? ? 'nil' : @cloud_user.uuid, @login.nil? ? 'nil' : @login, "LEGACY_BROKER", false, "#{e.class.name} for #{request.path}: #{e.message}")
@reply.resultIO << e.message
status = :bad_request
when OpenShift::DNSException
log_action(@request_id.nil? ? 'nil' : @request_id, @cloud_user.nil? ? 'nil' : @cloud_user.uuid, @login.nil? ? 'nil' : @login, "LEGACY_BROKER", false, "#{e.class.name} for #{request.path}: #{e.message}")
@reply.resultIO << e.message
status = :service_unavailable
when OpenShift::OOException
log_action(@request_id.nil? ? 'nil' : @request_id, @cloud_user.nil? ? 'nil' : @cloud_user.uuid, @login.nil? ? 'nil' : @login, "LEGACY_BROKER", false, "#{e.class.name} for #{request.path}: #{e.message}")
Rails.logger.error e.backtrace[0..5].join("\n")
Rails.logger.error e.resultIO
@reply.resultIO << e.message if @reply.resultIO.length == 0
@reply.append e.resultIO if e.resultIO
else
log_action(@request_id.nil? ? 'nil' : @request_id, @cloud_user.nil? ? 'nil' : @cloud_user.uuid, @login.nil? ? 'nil' : @login, "LEGACY_BROKER", false, "#{e.class.name} for #{request.path}: #{e.message}")
Rails.logger.error e.backtrace
@reply.debugIO << e.message
@reply.debugIO << e.backtrace[0..5].join("\n")
@reply.resultIO << e.message if @reply.resultIO.length == 0
end
@reply.exitcode = e.respond_to?('code') ? e.code : 1
render :json => @reply, :status => status
end