Add ca file option for requests to Poseidon
This commit is contained in:

committed by
Sebastian Serth

parent
09b672eb08
commit
44395b7792
@ -556,7 +556,6 @@ DEPENDENCIES
|
|||||||
capybara
|
capybara
|
||||||
carrierwave
|
carrierwave
|
||||||
charlock_holmes
|
charlock_holmes
|
||||||
concurrent-ruby
|
|
||||||
database_cleaner
|
database_cleaner
|
||||||
docker-api
|
docker-api
|
||||||
eventmachine
|
eventmachine
|
||||||
|
@ -15,6 +15,7 @@ default: &default
|
|||||||
enabled: false
|
enabled: false
|
||||||
strategy: poseidon
|
strategy: poseidon
|
||||||
url: https://runners.example.org
|
url: https://runners.example.org
|
||||||
|
ca_file: /example/certificates/ca.crt
|
||||||
unused_runner_expiration_time: 180
|
unused_runner_expiration_time: 180
|
||||||
|
|
||||||
development:
|
development:
|
||||||
|
@ -16,7 +16,8 @@ class Runner::Strategy::Poseidon < Runner::Strategy
|
|||||||
|
|
||||||
def self.sync_environment(environment)
|
def self.sync_environment(environment)
|
||||||
url = "#{config[:url]}/execution-environments/#{environment.id}"
|
url = "#{config[:url]}/execution-environments/#{environment.id}"
|
||||||
response = Faraday.put(url, environment.to_json, HEADERS)
|
connection = Faraday.new nil, ssl: {ca_file: config[:ca_file]}
|
||||||
|
response = connection.put url, environment.to_json, HEADERS
|
||||||
return true if [201, 204].include? response.status
|
return true if [201, 204].include? response.status
|
||||||
|
|
||||||
Rails.logger.warn("Could not create execution environment in Poseidon, got response: #{response.as_json}")
|
Rails.logger.warn("Could not create execution environment in Poseidon, got response: #{response.as_json}")
|
||||||
@ -32,7 +33,8 @@ class Runner::Strategy::Poseidon < Runner::Strategy
|
|||||||
executionEnvironmentId: environment.id,
|
executionEnvironmentId: environment.id,
|
||||||
inactivityTimeout: config[:unused_runner_expiration_time].seconds,
|
inactivityTimeout: config[:unused_runner_expiration_time].seconds,
|
||||||
}
|
}
|
||||||
response = Faraday.post(url, body.to_json, HEADERS)
|
connection = Faraday.new nil, ssl: {ca_file: config[:ca_file]}
|
||||||
|
response = connection.post url, body.to_json, HEADERS
|
||||||
|
|
||||||
case response.status
|
case response.status
|
||||||
when 200
|
when 200
|
||||||
@ -91,7 +93,8 @@ class Runner::Strategy::Poseidon < Runner::Strategy
|
|||||||
end
|
end
|
||||||
url = "#{runner_url}/files"
|
url = "#{runner_url}/files"
|
||||||
body = {copy: copy}
|
body = {copy: copy}
|
||||||
response = Faraday.patch(url, body.to_json, HEADERS)
|
connection = Faraday.new nil, ssl: {ca_file: self.class.config[:ca_file]}
|
||||||
|
response = connection.patch url, body.to_json, HEADERS
|
||||||
return if response.status == 204
|
return if response.status == 204
|
||||||
|
|
||||||
Runner.destroy(@allocation_id) if response.status == 400
|
Runner.destroy(@allocation_id) if response.status == 400
|
||||||
@ -108,7 +111,8 @@ class Runner::Strategy::Poseidon < Runner::Strategy
|
|||||||
end
|
end
|
||||||
|
|
||||||
def destroy_at_management
|
def destroy_at_management
|
||||||
response = Faraday.delete runner_url
|
connection = Faraday.new nil, ssl: {ca_file: self.class.config[:ca_file]}
|
||||||
|
response = connection.delete runner_url, nil, HEADERS
|
||||||
self.class.handle_error response unless response.status == 204
|
self.class.handle_error response unless response.status == 204
|
||||||
rescue Faraday::Error => e
|
rescue Faraday::Error => e
|
||||||
raise Runner::Error::FaradayError.new("Request to Poseidon failed: #{e.inspect}")
|
raise Runner::Error::FaradayError.new("Request to Poseidon failed: #{e.inspect}")
|
||||||
@ -119,7 +123,8 @@ class Runner::Strategy::Poseidon < Runner::Strategy
|
|||||||
def execute_command(command)
|
def execute_command(command)
|
||||||
url = "#{runner_url}/execute"
|
url = "#{runner_url}/execute"
|
||||||
body = {command: command, timeLimit: @execution_environment.permitted_execution_time}
|
body = {command: command, timeLimit: @execution_environment.permitted_execution_time}
|
||||||
response = Faraday.post(url, body.to_json, HEADERS)
|
connection = Faraday.new nil, ssl: {ca_file: self.class.config[:ca_file]}
|
||||||
|
response = connection.post url, body.to_json, HEADERS
|
||||||
case response.status
|
case response.status
|
||||||
when 200
|
when 200
|
||||||
response_body = self.class.parse response
|
response_body = self.class.parse response
|
||||||
|
Reference in New Issue
Block a user