lib/openstudio/analysis/server_api.rb in openstudio-analysis-1.3.4 vs lib/openstudio/analysis/server_api.rb in openstudio-analysis-1.3.5
- old
+ new
@@ -29,19 +29,25 @@
# TODO: add support for the proxy
# create connection with basic capabilities
@conn = Faraday.new(url: @hostname) do |faraday|
faraday.request :url_encoded # form-encode POST params
+ faraday.options.timeout = 300
+ faraday.options.open_timeout = 300
+ faraday.options.write_timeout = 1800
faraday.use Faraday::Response::Logger, @logger
# faraday.response @logger # log requests to STDOUT
faraday.adapter Faraday.default_adapter # make requests with Net::HTTP
end
# create connection to server api with multipart capabilities
@conn_multipart = Faraday.new(url: @hostname) do |faraday|
faraday.request :multipart
faraday.request :url_encoded # form-encode POST params
+ faraday.options.timeout = 300
+ faraday.options.open_timeout = 300
+ faraday.options.write_timeout = 1800
faraday.use Faraday::Response::Logger, @logger
# faraday.response :logger # log requests to STDOUT
faraday.adapter Faraday.default_adapter # make requests with Net::HTTP
end
end
@@ -95,17 +101,21 @@
options = defaults.merge(options)
project_id = nil
# TODO: make this a display name and a machine name
project_hash = { project: { name: (options[:project_name]).to_s } }
-
- response = @conn.post do |req|
- req.url '/projects.json'
- req.headers['Content-Type'] = 'application/json'
- req.body = project_hash.to_json
+ begin
+ response = @conn.post do |req|
+ req.url '/projects.json'
+ req.headers['Content-Type'] = 'application/json'
+ req.body = project_hash.to_json
+ end
+ puts "response.status: #{response.status}"
+ puts response.inspect
+ rescue Net::OpenTimeout => e
+ puts "new_project OpenTimeout: #{e.message}"
end
-
if response.status == 201
project_id = JSON.parse(response.body)['_id']
puts "new project created with ID: #{project_id}"
# grab the project id
@@ -202,20 +212,23 @@
status = nil
begin
resp = @conn.get do |req|
req.url 'status.json'
- req.options.timeout = 120
- req.options.open_timeout = 120
+ req.options.timeout = 300
+ req.options.open_timeout = 300
end
-
+ puts "machine_status resp.status: #{resp.status}"
+ puts resp.inspect
if resp.status == 200
j = JSON.parse resp.body, symbolize_names: true
status = j if j
end
- rescue Faraday::ConnectionFailed
- rescue Net::ReadTimeout
+ rescue Faraday::ConnectionFailed => e
+ puts "machine_Status ConnectionFailed: #{e.message}"
+ rescue Net::ReadTimeout => e
+ puts "machine_Status ReadTimeout: #{e.message}"
end
status
end
@@ -464,11 +477,12 @@
response = @conn.post do |req|
req.url "projects/#{project_id}/analyses.json"
req.headers['Content-Type'] = 'application/json'
req.body = formulation_json.to_json
- req.options[:timeout] = 600 # seconds
+ req.options.timeout = 600 # seconds
+ req.options.write_timeout = 1800
end
if response.status == 201
puts "asked to create analysis with #{analysis_id}"
# puts resp.inspect
@@ -484,11 +498,12 @@
if options[:upload_file]
raise "upload file does not exist #{options[:upload_file]}" unless File.exist?(options[:upload_file])
payload = { file: Faraday::UploadIO.new(options[:upload_file], 'application/zip') }
response = @conn_multipart.post "analyses/#{analysis_id}/upload.json", payload do |req|
- req.options[:timeout] = 1800 # seconds
+ req.options.timeout = 1800 # seconds
+ req.options.write_timeout = 1800
end
if response.status == 201
puts 'Successfully uploaded ZIP file'
else
@@ -630,10 +645,11 @@
puts "Run analysis is configured with #{options.to_json}"
response = @conn.post do |req|
req.url "analyses/#{analysis_id}/action.json"
req.headers['Content-Type'] = 'application/json'
req.body = options.to_json
- req.options[:timeout] = 1800 # seconds
+ req.options.timeout = 1800 # seconds
+ req.options.write_timeout = 1800
end
if response.status == 200
puts "Received request to run analysis #{analysis_id}"
else