Remove unnecessary util method temporary_mutation

Util method temporary_mutation was introduced when copying the ironic
code base. See: I14afd02f5791c74a2d5daf55681ae7047083037a. This method
has never been used and can safely be removed. This method has a high
cyclomatic complexity and was picked up by flake8.

Change-Id: I5f62a7c9dfa79d697aac775f43e25a6cf68dfe23
Partial-Bug: #1501331
This commit is contained in:
Tom Cammann 2015-09-30 14:07:21 +01:00 committed by Adrian Otto
parent f3b6ada57b
commit 41d41d6409
1 changed files with 0 additions and 51 deletions

View File

@ -332,57 +332,6 @@ def hash_file(file_like_object):
return checksum.hexdigest()
@contextlib.contextmanager
def temporary_mutation(obj, **kwargs):
"""Temporarily change object attribute.
Temporarily set the attr on a particular object to a given value then
revert when finished.
One use of this is to temporarily set the read_deleted flag on a context
object:
with temporary_mutation(context, read_deleted="yes"):
do_something_that_needed_deleted_objects()
"""
def is_dict_like(thing):
return hasattr(thing, 'has_key')
def get(thing, attr, default):
if is_dict_like(thing):
return thing.get(attr, default)
else:
return getattr(thing, attr, default)
def set_value(thing, attr, val):
if is_dict_like(thing):
thing[attr] = val
else:
setattr(thing, attr, val)
def delete(thing, attr):
if is_dict_like(thing):
del thing[attr]
else:
delattr(thing, attr)
NOT_PRESENT = object()
old_values = {}
for attr, new_value in kwargs.items():
old_values[attr] = get(obj, attr, NOT_PRESENT)
set_value(obj, attr, new_value)
try:
yield
finally:
for attr, old_value in old_values.items():
if old_value is NOT_PRESENT:
delete(obj, attr)
else:
set_value(obj, attr, old_value)
@contextlib.contextmanager
def tempdir(**kwargs):
tempfile.tempdir = CONF.tempdir