module Fog module AzureRM class Storage # This class provides the actual implementation for service calls. class Real def get_blob_properties(container_name, name, options = {}) options[:request_id] = SecureRandom.uuid msg = "Get Blob #{name} properties in container #{container_name}, options: #{options}." Fog::Logger.debug msg begin blob = @blob_client.get_blob_properties(container_name, name, options) rescue Azure::Core::Http::HTTPError => ex raise 'NotFound' if ex.message.include?('(404)') raise_azure_exception(ex, msg) end Fog::Logger.debug "Getting properties of blob #{name} successfully." blob end end # This class provides the mock implementation for unit tests. class Mock def get_blob_properties(*) blob = Azure::Storage::Blob::Blob.new blob.name = 'test_blob' blob.metadata = {} blob.properties = { last_modified: 'Mon, 04 Jul 2016 09:30:31 GMT', etag: '0x8D3A3EDD7C2B777', lease_status: 'unlocked', lease_state: 'available', lease_duration: nil, content_length: 4_194_304, content_type: 'application/octet-stream', content_encoding: nil, content_language: nil, content_disposition: nil, content_md5: 'tXAohIyxuu/t94Lp/ujeRw==', cache_control: nil, sequence_number: 0, blob_type: 'PageBlob', copy_id: '095adc3b-e277-4c3d-97e0-0abca881f60c', copy_status: 'success', copy_source: 'https://testaccount.blob.core.windows.net/testblob/4m?snapshot=2016-02-04T08%3A35%3A50.3157696Z', copy_progress: '4194304/4194304', copy_completion_time: 'Thu, 04 Feb 2016 08:35:52 GMT', copy_status_description: nil, accept_ranges: 0 } blob end end end end end