Skip to content

Commit 90e290b

Browse files
committed
Add loadbalancer support
1 parent 96b747d commit 90e290b

File tree

3 files changed

+10
-7
lines changed

3 files changed

+10
-7
lines changed

lib/smart_proxy_container_gateway/container_gateway.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class Plugin < ::Proxy::Plugin
4141
container_instance.singleton_dependency :container_gateway_main_impl, (lambda do
4242
Proxy::ContainerGateway::ContainerGatewayMain.new(
4343
database: container_instance.get_dependency(:database_impl),
44-
**settings.slice(:pulp_endpoint, :pulp_client_ssl_ca, :pulp_client_ssl_cert, :pulp_client_ssl_key)
44+
**settings.slice(:pulp_endpoint, :pulp_client_ssl_ca, :pulp_client_ssl_cert, :pulp_client_ssl_key, :loadbalancer)
4545
)
4646
end)
4747
end

lib/smart_proxy_container_gateway/container_gateway_api.rb

+6-4
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,9 @@ class Api < ::Sinatra::Base
4545
status pulp_response.code.to_i
4646
body pulp_response.body
4747
else
48-
redirection_location = pulp_response['location']
49-
redirect to(redirection_location)
48+
redirection_uri = URI(pulp_response['location'])
49+
redirection_uri.host = container_gateway_main.loadbalancer
50+
redirect(redirection_uri.to_s)
5051
end
5152
end
5253

@@ -217,8 +218,9 @@ def head_or_get_blobs
217218
status pulp_response.code.to_i
218219
body pulp_response.body
219220
else
220-
redirection_location = pulp_response['location']
221-
redirect to(redirection_location)
221+
redirection_uri = URI(pulp_response['location'])
222+
redirection_uri.host = container_gateway_main.loadbalancer
223+
redirect(redirection_uri.to_s)
222224
end
223225
end
224226

lib/smart_proxy_container_gateway/container_gateway_main.rb

+3-2
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,12 @@ module ContainerGateway
99
extend ::Proxy::Log
1010

1111
class ContainerGatewayMain
12-
attr_reader :database
12+
attr_reader :database, :loadbalancer
1313

14-
def initialize(database:, pulp_endpoint:, pulp_client_ssl_ca:, pulp_client_ssl_cert:, pulp_client_ssl_key:)
14+
def initialize(database:, pulp_endpoint:, pulp_client_ssl_ca:, pulp_client_ssl_cert:, pulp_client_ssl_key:, loadbalancer:)
1515
@database = database
1616
@pulp_endpoint = pulp_endpoint
17+
@loadbalancer = loadbalancer || pulp_endpoint
1718
@pulp_client_ssl_ca = pulp_client_ssl_ca
1819
@pulp_client_ssl_cert = OpenSSL::X509::Certificate.new(File.read(pulp_client_ssl_cert))
1920
@pulp_client_ssl_key = OpenSSL::PKey::RSA.new(

0 commit comments

Comments
 (0)