Sha256: b1f8659ee987f6a7198fb9c17e8dc2ed545455ce7309f1b66694f74ba6ea06c4

Contents?: true

Size: 1.02 KB

Versions: 55

Compression:

Stored size: 1.02 KB

Contents

module Bosh
  module Blobstore
    class Client
      PROVIDER_NAMES = %w[dav simple s3 local]

      def self.create(blobstore_provider, options = {})
        unless PROVIDER_NAMES.include?(blobstore_provider)
          raise BlobstoreError,
            "Unknown client provider '#{blobstore_provider}', " +
            "available providers are: #{PROVIDER_NAMES}"
        end
        blobstore_client_constantize(blobstore_provider).new(options)
      end

      def self.safe_create(provider, options = {})
        wrapped_client = create(provider, options)
        sha1_client    = Sha1VerifiableBlobstoreClient.new(wrapped_client)
        retryable      = Retryable.new(tries: 6, sleep: 2.0, on: [BlobstoreError])
        RetryableBlobstoreClient.new(sha1_client, retryable)
      end

      private

      def self.blobstore_client_constantize(base_string)
        class_string = base_string.capitalize + (base_string == 'local' ? '' : 'Blobstore') + 'Client'
        Bosh::Blobstore.const_get class_string
      end
    end
  end
end

Version data entries

55 entries across 55 versions & 1 rubygems

Version Path
blobstore_client-1.3215.4.0 lib/blobstore_client/client.rb
blobstore_client-1.3215.3.0 lib/blobstore_client/client.rb
blobstore_client-1.3215.0 lib/blobstore_client/client.rb
blobstore_client-1.3146.10.0 lib/blobstore_client/client.rb
blobstore_client-1.3213.0 lib/blobstore_client/client.rb
blobstore_client-1.3202.0 lib/blobstore_client/client.rb
blobstore_client-1.3200.0 lib/blobstore_client/client.rb
blobstore_client-1.3146.9.0 lib/blobstore_client/client.rb
blobstore_client-1.3197.0 lib/blobstore_client/client.rb
blobstore_client-1.3196.0 lib/blobstore_client/client.rb
blobstore_client-1.3146.8.0 lib/blobstore_client/client.rb
blobstore_client-1.3192.0 lib/blobstore_client/client.rb
blobstore_client-1.3146.7.0 lib/blobstore_client/client.rb
blobstore_client-1.3191.0 lib/blobstore_client/client.rb
blobstore_client-1.3189.0 lib/blobstore_client/client.rb
blobstore_client-1.3146.6.0 lib/blobstore_client/client.rb
blobstore_client-1.3184.1.0 lib/blobstore_client/client.rb
blobstore_client-1.3184.0 lib/blobstore_client/client.rb
blobstore_client-1.3146.5.0 lib/blobstore_client/client.rb
blobstore_client-1.3181.0 lib/blobstore_client/client.rb