Sync openstack/common/memorycache.py with Oslo

This fixes an issue in Client.get(), where a dictionary was modified as we
iterated on its keys, which does not work in Python 3.

Change-Id: I37583504dcc672060a3d780dce46418baa32dd53
changes/12/178912/1
Cyril Roelandt 2014-02-07 20:45:13 +01:00
parent 4e954148f7
commit c26a5a3769
2 changed files with 3 additions and 4 deletions

View File

@ -1,5 +1,3 @@
# vim: tabstop=4 shiftwidth=4 softtabstop=4
# Copyright 2010 United States Government as represented by the
# Administrator of the National Aeronautics and Space Administration.
# All Rights Reserved.
@ -57,11 +55,11 @@ class Client(object):
def get(self, key):
"""Retrieves the value for a key or None.
this expunges expired keys during each get
This expunges expired keys during each get.
"""
now = timeutils.utcnow_ts()
for k in self.cache.keys():
for k in list(self.cache):
(timeout, _value) = self.cache[k]
if timeout and now >= timeout:
del self.cache[k]

View File

@ -4,6 +4,7 @@
module=importutils
module=install_venv_common
module=jsonutils
module=memorycache
module=strutils
module=timeutils
module=py3kcompat