read_metadata() consumers should catch IOError
The xattr module raises IOError which is what the call to read_metadata() in rmobjdir() should be catching. Change-Id: I2983ad0be453647f80b862eea93a5fc16fcef04a Signed-off-by: Prashanth Pai <ppai@redhat.com>
This commit is contained in:
parent
d792d40bd7
commit
18d039a893
@ -311,7 +311,7 @@ def rmobjdir(dir_path):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
metadata = read_metadata(fullpath)
|
metadata = read_metadata(fullpath)
|
||||||
except OSError as err:
|
except IOError as err:
|
||||||
if err.errno == errno.ENOENT:
|
if err.errno == errno.ENOENT:
|
||||||
# Ignore removal from another entity.
|
# Ignore removal from another entity.
|
||||||
continue
|
continue
|
||||||
|
@ -27,7 +27,8 @@ import shutil
|
|||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from mock import patch
|
from mock import patch
|
||||||
from swiftonfile.swift.common import utils
|
from swiftonfile.swift.common import utils
|
||||||
from swiftonfile.swift.common.exceptions import SwiftOnFileSystemOSError
|
from swiftonfile.swift.common.exceptions import SwiftOnFileSystemOSError, \
|
||||||
|
SwiftOnFileSystemIOError
|
||||||
from swift.common.exceptions import DiskFileNoSpace
|
from swift.common.exceptions import DiskFileNoSpace
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -579,7 +580,8 @@ class TestUtilsDirObjects(unittest.TestCase):
|
|||||||
def _mock_rm(path):
|
def _mock_rm(path):
|
||||||
print "_mock_rm-metadata_enoent(%s)" % path
|
print "_mock_rm-metadata_enoent(%s)" % path
|
||||||
shutil.rmtree(path)
|
shutil.rmtree(path)
|
||||||
raise OSError(errno.ENOENT, os.strerror(errno.ENOENT))
|
raise SwiftOnFileSystemIOError(errno.ENOENT,
|
||||||
|
os.strerror(errno.ENOENT))
|
||||||
|
|
||||||
# Remove the files
|
# Remove the files
|
||||||
for f in self.files:
|
for f in self.files:
|
||||||
@ -590,8 +592,8 @@ class TestUtilsDirObjects(unittest.TestCase):
|
|||||||
try:
|
try:
|
||||||
try:
|
try:
|
||||||
self.assertTrue(utils.rmobjdir(self.rootdir))
|
self.assertTrue(utils.rmobjdir(self.rootdir))
|
||||||
except OSError:
|
except IOError:
|
||||||
self.fail("Unexpected OSError")
|
self.fail("Unexpected IOError")
|
||||||
else:
|
else:
|
||||||
pass
|
pass
|
||||||
finally:
|
finally:
|
||||||
|
1
tox.ini
1
tox.ini
@ -35,7 +35,6 @@ setenv = VIRTUAL_ENV={envdir}
|
|||||||
NOSE_COVER_HTML_DIR={toxinidir}/cover
|
NOSE_COVER_HTML_DIR={toxinidir}/cover
|
||||||
|
|
||||||
[tox:jenkins]
|
[tox:jenkins]
|
||||||
# Commented as workaround for PyECLib issue
|
|
||||||
downloadcache = ~/cache/pip
|
downloadcache = ~/cache/pip
|
||||||
|
|
||||||
# To be used by Jenkins
|
# To be used by Jenkins
|
||||||
|
Loading…
x
Reference in New Issue
Block a user