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