X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/27b18bf9b168319660bdde4632ac4c3f359666d6..e0f045ddedd05716bd813f801654308d3bbd2dd0:/services/api/config/initializers/eventbus.rb diff --git a/services/api/config/initializers/eventbus.rb b/services/api/config/initializers/eventbus.rb index 7c452c33dd..eb5561a47f 100644 --- a/services/api/config/initializers/eventbus.rb +++ b/services/api/config/initializers/eventbus.rb @@ -1,32 +1,31 @@ -require 'eventbus' +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: AGPL-3.0 -# See application.yml for details about configuring the websocket service. +if ENV['ARVADOS_WEBSOCKETS'] + Server::Application.configure do + Rails.logger.error "Built-in websocket server is disabled. See note (2017-03-23, e8cc0d7) at https://dev.arvados.org/projects/arvados/wiki/Upgrading_to_master" -Server::Application.configure do - # Enables websockets if ARVADOS_WEBSOCKETS is defined with any value. If - # ARVADOS_WEBSOCKETS=ws-only, server will only accept websocket connections - # and return an error response for all other requests. - if ENV['ARVADOS_WEBSOCKETS'] - config.middleware.insert_after ArvadosApiToken, RackSocket, { - :handler => EventBus, - :mount => "/websocket", - :websocket_only => (ENV['ARVADOS_WEBSOCKETS'] == "ws-only") - } - Rails.logger.info "Websockets #{ENV['ARVADOS_WEBSOCKETS']}, running at /websocket" - - Rails.application.config.after_initialize do - ActiveRecord::Base.connection_pool.disconnect! - - ActiveSupport.on_load(:active_record) do - config = ActiveRecord::Base.configurations[Rails.env] || - Rails.application.config.database_configuration[Rails.env] - config['pool'] = Rails.application.config.websocket_db_pool - ActiveRecord::Base.establish_connection(config) - Rails.logger.info "Database connection pool size #{Rails.application.config.websocket_db_pool}" + class EventBusRemoved + def overloaded? + false + end + def on_connect ws + ws.on :open do |e| + EM::Timer.new 1 do + ws.send(SafeJSON.dump({status: 501, message: "Server misconfigured? see http://doc.arvados.org/install/install-ws.html"})) + end + EM::Timer.new 3 do + ws.close + end + end end end - else - Rails.logger.info "Websockets disabled" + config.middleware.insert_after(ArvadosApiToken, RackSocket, { + handler: EventBusRemoved, + mount: "/websocket", + websocket_only: (ENV['ARVADOS_WEBSOCKETS'] == "ws-only") + }) end end