You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltacloud.apache.org by mf...@apache.org on 2011/02/18 17:13:48 UTC

svn commit: r1072038 - /incubator/deltacloud/trunk/client/lib/deltacloud.rb

Author: mfojtik
Date: Fri Feb 18 16:13:47 2011
New Revision: 1072038

URL: http://svn.apache.org/viewvc?rev=1072038&view=rev
Log:
:open_timeout and :timeout can be specified, but default to
10 and 45 seconds, respectively. If exceeded, a RestClient::RequestTimeout
exception is raised. (Thanks Matt Wagner)

Modified:
    incubator/deltacloud/trunk/client/lib/deltacloud.rb

Modified: incubator/deltacloud/trunk/client/lib/deltacloud.rb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/client/lib/deltacloud.rb?rev=1072038&r1=1072037&r2=1072038&view=diff
==============================================================================
--- incubator/deltacloud/trunk/client/lib/deltacloud.rb (original)
+++ incubator/deltacloud/trunk/client/lib/deltacloud.rb Fri Feb 18 16:13:47 2011
@@ -315,14 +315,17 @@ module DeltaCloud
         :method => (args[0] || 'get').to_sym,
         :path => (args[1]=~/^http/) ? args[1] : "#{api_uri.to_s}#{args[1]}",
         :query_args => args[2] || {},
-        :form_data => args[3] || {}
+        :form_data => args[3] || {},
+        :timeout => args[4] || 45,
+        :open_timeout => args[5] || 10
       }
       if conf[:query_args] != {}
         conf[:path] += '?' + URI.escape(conf[:query_args].collect{ |key, value| "#{key}=#{value}" }.join('&')).to_s
       end
 
       if conf[:method].eql?(:post)
-        RestClient.send(:post, conf[:path], conf[:form_data], default_headers.merge(extended_headers)) do |response, request, block|
+        resource = RestClient::Resource.new(conf[:path], :open_timeout => conf[:open_timeout], :timeout => conf[:timeout])
+        resource.send(:post, conf[:form_data], default_headers.merge(extended_headers)) do |response, request, block|
           handle_backend_error(response) if response.code.eql?(500)
           if response.respond_to?('body')
             yield response.body if block_given?
@@ -331,7 +334,8 @@ module DeltaCloud
           end
         end
       else
-        RestClient.send(conf[:method], conf[:path], default_headers.merge(extended_headers)) do |response, request, block|
+        resource = RestClient::Resource.new(conf[:path], :open_timeout => conf[:open_timeout], :timeout => conf[:timeout])
+        resource.send(conf[:method], default_headers.merge(extended_headers)) do |response, request, block|
           handle_backend_error(response) if response.code.eql?(500)
           if conf[:method].eql?(:get) and [301, 302, 307].include? response.code
             response.follow_redirection(request) do |response, request, block|