Class: Bosh::Blobstore::RetryableBlobstoreClient

Inherits:
BaseClient show all
Extended by:
Forwardable
Defined in:
lib/blobstore_client/retryable_blobstore_client.rb

Constant Summary

Constants inherited from Client

Client::PROVIDER_NAMES, Client::VERSION

Instance Method Summary collapse

Methods inherited from BaseClient

#create, #delete, #exists?

Methods inherited from Client

create, safe_create

Constructor Details

#initialize(client, retryable) ⇒ RetryableBlobstoreClient

Returns a new instance of RetryableBlobstoreClient.



8
9
10
11
# File 'lib/blobstore_client/retryable_blobstore_client.rb', line 8

def initialize(client, retryable)
  @client = client
  @retryable = retryable
end

Instance Method Details

#get(id, file = nil, options = {}) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/blobstore_client/retryable_blobstore_client.rb', line 13

def get(id, file = nil, options = {})
  # BoshRetryable#retryer interface does not allow nil
  # as a successful return value; hence, we save off last result
  last_result = nil

  @retryable.retryer do
    last_result = @client.get(id, file, options)
    true
  end

  last_result
end