Sha256: 476ccac022be96c17d6753ea1ee2ebab371917dda4594f488e7ea8005e82e83d

Contents?: true

Size: 1.81 KB

Versions: 29

Compression:

Stored size: 1.81 KB

Contents

module Fog
  module Storage
    class HP
      class Real
        # Get details for a shared object
        #
        # ==== Parameters
        # * shared_object_url<~String> - Url of the shared object
        #
        def get_shared_object(shared_object_url, &block)
          # split up the shared object url
          uri = URI.parse(shared_object_url)
          path   = uri.path

          if block_given?
            response = shared_request(
              :response_block  => block,
              :expects  => 200,
              :method   => 'GET',
              :path     => path
            )
          else
            response = shared_request({
              :expects  => 200,
              :method   => 'GET',
              :path     => path
            }, false, &block)
          end
          response
        end
      end

      class Mock # :nodoc:all
        def get_shared_object(shared_object_url, &block)
          response = Excon::Response.new
          response.status = 200
          response.headers = {
            'Last-Modified'            => Date.today.rfc822,
            'Etag'                     => Fog::HP::Mock.etag,
            'Accept-Ranges'            => 'bytes',
            'Content-Type'             => "text/plain",
            'Content-Length'           => 11,
            'X-Trans-Id'               => "tx#{Fog::Mock.random_hex(32)}"
          }
          unless block_given?
            response.body = "This is a sample text.\n"
          else
            data = StringIO.new("This is a sample text.\n")
            remaining = data.length
            while remaining > 0
              chunk = data.read([remaining, Excon::CHUNK_SIZE].min)
              block.call(chunk)
              remaining -= Excon::CHUNK_SIZE
            end
          end
          response
        end
      end
    end
  end
end

Version data entries

29 entries across 29 versions & 4 rubygems

Version Path
fog-1.37.0 lib/fog/hp/requests/storage/get_shared_object.rb
fog-1.36.0 lib/fog/hp/requests/storage/get_shared_object.rb
fog-1.35.0 lib/fog/hp/requests/storage/get_shared_object.rb
fog-2.0.0.pre.0 lib/fog/hp/requests/storage/get_shared_object.rb
vagrant-cloudstack-1.2.0 vendor/bundle/gems/fog-1.32.0/lib/fog/hp/requests/storage/get_shared_object.rb
fog-1.34.0 lib/fog/hp/requests/storage/get_shared_object.rb
fog-1.33.0 lib/fog/hp/requests/storage/get_shared_object.rb
fog-1.32.0 lib/fog/hp/requests/storage/get_shared_object.rb
fog-1.31.0 lib/fog/hp/requests/storage/get_shared_object.rb
vagrant-cloudstack-1.1.0 vendor/bundle/gems/fog-1.22.1/lib/fog/hp/requests/storage/get_shared_object.rb
fog-1.30.0 lib/fog/hp/requests/storage/get_shared_object.rb
fog-1.29.0 lib/fog/hp/requests/storage/get_shared_object.rb
fog-1.28.0 lib/fog/hp/requests/storage/get_shared_object.rb
fog-1.27.0 lib/fog/hp/requests/storage/get_shared_object.rb
fog-1.26.0 lib/fog/hp/requests/storage/get_shared_object.rb
fog-1.25.0 lib/fog/hp/requests/storage/get_shared_object.rb
nsidc-fog-1.24.1 lib/fog/hp/requests/storage/get_shared_object.rb
fog-1.24.0 lib/fog/hp/requests/storage/get_shared_object.rb
ns-fog-1.22.11 lib/fog/hp/requests/storage/get_shared_object.rb
ns-fog-1.22.10 lib/fog/hp/requests/storage/get_shared_object.rb