# File lib/ec2/ec2.rb, line 1304
    def try_create_snapshot(volume_id, connect_timeout = nil, read_timeout = nil)
      # For safety in the ensure block...we don't want to restore values
      # if we never read them in the first place
      orig_reiteration_time                         = nil
      orig_http_params                              = nil

      orig_reiteration_time                         = Aws::AWSErrorHandler::reiteration_time
      Aws::AWSErrorHandler::reiteration_time        = 0

      orig_http_params                              = Rightscale::HttpConnection::params()
      new_http_params                               = orig_http_params.dup
      new_http_params[:http_connection_retry_count] = 0
      new_http_params[:http_connection_open_timeout] = connect_timeout if !connect_timeout.nil?
      new_http_params[:http_connection_read_timeout] = read_timeout if !read_timeout.nil?
      Rightscale::HttpConnection::params = new_http_params

      link                               = generate_request("CreateSnapshot",
                                                            "VolumeId" => volume_id.to_s)
      request_info(link, QEc2CreateSnapshotParser.new(:logger => @logger))

    rescue Exception
      on_exception
    ensure
      Aws::AWSErrorHandler::reiteration_time = orig_reiteration_time if orig_reiteration_time
      Rightscale::HttpConnection::params = orig_http_params if orig_http_params
    end