From df8fe4a436011b9525d3240159ea93dbad9a9302 Mon Sep 17 00:00:00 2001 From: Bastian Blank Date: Wed, 1 Jul 2026 16:39:01 +0200 Subject: [PATCH] Fixes #38120 - Use Sinatra 4 Support Rack 3 and Sinatra 4. --- lib/launcher.rb | 2 +- lib/smart_proxy_for_testing.rb | 1 + lib/smart_proxy_main.rb | 1 + smart_proxy.gemspec | 4 ++-- test/registration/registration_api_test.rb | 4 ++-- 5 files changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/launcher.rb b/lib/launcher.rb index d8e6b63b3..c87bf29bb 100644 --- a/lib/launcher.rb +++ b/lib/launcher.rb @@ -119,7 +119,7 @@ def load_ssl_certificate(path) def webrick_server(app, addresses, port) server = ::WEBrick::HTTPServer.new(app) addresses.each { |a| server.listen(a, port) } - server.mount "/", Rack::Handler::WEBrick, app[:app] + server.mount "/", Rackup::Handler::WEBrick, app[:app] server end diff --git a/lib/smart_proxy_for_testing.rb b/lib/smart_proxy_for_testing.rb index c617beea3..dc985e26b 100644 --- a/lib/smart_proxy_for_testing.rb +++ b/lib/smart_proxy_for_testing.rb @@ -1,6 +1,7 @@ require 'smart_proxy' require 'json' require 'rack' +require 'rackup' require 'sinatra' require 'webrick/https' require 'proxy/log' diff --git a/lib/smart_proxy_main.rb b/lib/smart_proxy_main.rb index 581a07c6e..120fb1c8e 100644 --- a/lib/smart_proxy_main.rb +++ b/lib/smart_proxy_main.rb @@ -32,6 +32,7 @@ require 'json' require 'rack' +require 'rackup' require 'sinatra' require 'sinatra/authorization' require 'sinatra/default_not_found_page' diff --git a/smart_proxy.gemspec b/smart_proxy.gemspec index 4dc05065d..0222b2409 100644 --- a/smart_proxy.gemspec +++ b/smart_proxy.gemspec @@ -17,10 +17,10 @@ Gem::Specification.new do |s| s.add_dependency 'json' s.add_dependency 'logging' s.add_dependency 'ostruct' - s.add_dependency 'rack', '>= 1.3' + s.add_dependency 'rackup' s.add_dependency 'rexml', '~> 3.2' s.add_dependency 'sd_notify', '~> 0.1' - s.add_dependency 'sinatra', '~> 2.0' + s.add_dependency 'sinatra', '~> 4.0' s.add_dependency 'webrick', '~> 1.0' s.description = <<~EOF Foreman Proxy is used via The Foreman Project, it allows Foreman to manage diff --git a/test/registration/registration_api_test.rb b/test/registration/registration_api_test.rb index bd9ff7b1b..f89736f3a 100644 --- a/test/registration/registration_api_test.rb +++ b/test/registration/registration_api_test.rb @@ -94,7 +94,7 @@ def test_host_401_html_response end def test_global_500 - Rack::NullLogger.any_instance.stubs(:exception) + Logger.any_instance.stubs(:exception) stub_request(:get, "#{@foreman_url}/register").to_timeout get '/' @@ -103,7 +103,7 @@ def test_global_500 end def test_host_500 - Rack::NullLogger.any_instance.stubs(:exception) + Logger.any_instance.stubs(:exception) stub_request(:post, "#{@foreman_url}/register").to_timeout post '/'