Sha256: 721d95b04880dbd86ccd56d3dc99f6a8083325dd4c6cbbb88b1e64df2dd7005d
Contents?: true
Size: 1.03 KB
Versions: 246
Compression:
Stored size: 1.03 KB
Contents
module Bosh module Blobstore class Client PROVIDER_NAMES = %w[dav simple s3 swift atmos 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: 3, sleep: 0.5, 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
246 entries across 246 versions & 1 rubygems