From 2a9da5782f615c0cd69abd8aebd19faffecaad03 Mon Sep 17 00:00:00 2001 From: Evan Smith Date: Mon, 17 Dec 2012 10:08:19 -0800 Subject: [PATCH] fixed bug where Fog::Storage::Rackspace::File raised Fog::Storage::Rackspace::NotFound if file was created with passed etag attribute. Changed to check existence based on last_modified instead of etag. --- lib/fog/rackspace/models/storage/file.rb | 2 +- tests/rackspace/models/storage/file_tests.rb | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/fog/rackspace/models/storage/file.rb b/lib/fog/rackspace/models/storage/file.rb index 4142341e9..82117f190 100644 --- a/lib/fog/rackspace/models/storage/file.rb +++ b/lib/fog/rackspace/models/storage/file.rb @@ -124,7 +124,7 @@ module Fog end def metadata_attributes - if etag + if last_modified headers = connection.head_object(directory.key, self.key).headers headers.reject! {|k, v| !metadata_attribute?(k)} else diff --git a/tests/rackspace/models/storage/file_tests.rb b/tests/rackspace/models/storage/file_tests.rb index 12c758f6d..8d2172185 100644 --- a/tests/rackspace/models/storage/file_tests.rb +++ b/tests/rackspace/models/storage/file_tests.rb @@ -26,6 +26,12 @@ Shindo.tests('Fog::Rackspace::Storage | file', ['rackspace']) do directories. create(directory_attributes) + model_tests(@directory.files, file_attributes.merge(:etag => 'foo'), Fog.mocking?) do + tests('#save should not blow up with etag') do + @instance.save + end + end + model_tests(@directory.files, file_attributes, Fog.mocking?) do tests("#metadata should load empty metadata").returns({}) do