Merge "Don't warn on lock removal if file doesn't exist"
This commit is contained in:
commit
80a6e1d489
@ -14,6 +14,7 @@
|
||||
# under the License.
|
||||
|
||||
import contextlib
|
||||
import errno
|
||||
import functools
|
||||
import logging
|
||||
import os
|
||||
@ -199,9 +200,10 @@ def remove_external_lock_file(name, lock_file_prefix=None, lock_path=None,
|
||||
lock_file_path = _get_lock_path(name, lock_file_prefix, lock_path)
|
||||
try:
|
||||
os.remove(lock_file_path)
|
||||
except OSError:
|
||||
LOG.info('Failed to remove file %(file)s',
|
||||
{'file': lock_file_path})
|
||||
except OSError as exc:
|
||||
if exc.errno != errno.ENOENT:
|
||||
LOG.warning('Failed to remove file %(file)s',
|
||||
{'file': lock_file_path})
|
||||
|
||||
|
||||
def internal_lock(name, semaphores=None):
|
||||
|
@ -13,6 +13,7 @@
|
||||
# under the License.
|
||||
|
||||
import collections
|
||||
import errno
|
||||
import multiprocessing
|
||||
import os
|
||||
import signal
|
||||
@ -320,8 +321,8 @@ class LockTestCase(test_base.BaseTestCase):
|
||||
remove_mock.assert_called_once_with(path_mock.return_value)
|
||||
log_mock.assert_not_called()
|
||||
|
||||
@mock.patch('logging.Logger.info')
|
||||
@mock.patch('os.remove', side_effect=OSError)
|
||||
@mock.patch('logging.Logger.warning')
|
||||
@mock.patch('os.remove', side_effect=OSError(errno.ENOENT, None))
|
||||
@mock.patch('oslo_concurrency.lockutils._get_lock_path')
|
||||
def test_remove_lock_external_file_doesnt_exists(self, path_mock,
|
||||
remove_mock, log_mock):
|
||||
@ -332,6 +333,20 @@ class LockTestCase(test_base.BaseTestCase):
|
||||
mock.sentinel.prefix,
|
||||
mock.sentinel.lock_path)
|
||||
remove_mock.assert_called_once_with(path_mock.return_value)
|
||||
log_mock.assert_not_called()
|
||||
|
||||
@mock.patch('logging.Logger.warning')
|
||||
@mock.patch('os.remove', side_effect=OSError(errno.EPERM, None))
|
||||
@mock.patch('oslo_concurrency.lockutils._get_lock_path')
|
||||
def test_remove_lock_external_file_permission_error(
|
||||
self, path_mock, remove_mock, log_mock):
|
||||
lockutils.remove_external_lock_file(mock.sentinel.name,
|
||||
mock.sentinel.prefix,
|
||||
mock.sentinel.lock_path)
|
||||
path_mock.assert_called_once_with(mock.sentinel.name,
|
||||
mock.sentinel.prefix,
|
||||
mock.sentinel.lock_path)
|
||||
remove_mock.assert_called_once_with(path_mock.return_value)
|
||||
log_mock.assert_called()
|
||||
|
||||
def test_no_slash_in_b64(self):
|
||||
|
Loading…
x
Reference in New Issue
Block a user