diff options
author | Alexander Sulfrian <alexander.sulfrian@fu-berlin.de> | 2016-07-12 02:43:23 +0200 |
---|---|---|
committer | Alexander Sulfrian <alexander.sulfrian@fu-berlin.de> | 2017-03-21 17:26:08 +0100 |
commit | e28947abe9042e33586924c4daa2b1c09ffe4782 (patch) | |
tree | 376c2604e4e01a461b7fcd2b103d1dc2f48c78a0 /src/lib | |
parent | 99f1110d43e00654eb06c35495871da253c21e5b (diff) | |
download | bcfg2-e28947abe9042e33586924c4daa2b1c09ffe4782.tar.gz bcfg2-e28947abe9042e33586924c4daa2b1c09ffe4782.tar.bz2 bcfg2-e28947abe9042e33586924c4daa2b1c09ffe4782.zip |
Server/Cache: Return the number of expired items
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/Bcfg2/Server/Cache.py | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/lib/Bcfg2/Server/Cache.py b/src/lib/Bcfg2/Server/Cache.py index d05eb0bf6..b3b906b2c 100644 --- a/src/lib/Bcfg2/Server/Cache.py +++ b/src/lib/Bcfg2/Server/Cache.py @@ -96,15 +96,19 @@ class _Cache(MutableMapping): return len(list(iter(self))) def expire(self, key=None): - """ expire all items, or a specific item, from the cache """ + """ expire all items, or a specific item, from the cache + + :returns: number of expired entries + """ + if key is None: - expire(*self._tags) + return expire(*self._tags) else: tags = self._tags | set([key]) # py 2.5 doesn't support mixing *args and explicit keyword # args kwargs = dict(exact=True) - expire(*tags, **kwargs) + return expire(*tags, **kwargs) def __repr__(self): return repr(dict(self)) @@ -152,7 +156,10 @@ def expire(*tags, **kwargs): """ Expire all items, a set of items, or one specific item from the cache. If ``exact`` is set to True, then if the given tag set doesn't match exactly one item in the cache, nothing will be - expired. """ + expired. + + :returns: number of expired entries + """ exact = kwargs.pop("exact", False) count = 0 if not tags: @@ -170,6 +177,8 @@ def expire(*tags, **kwargs): for hook in _hooks: hook(tags, exact, count) + return count + def add_expire_hook(func): """ Add a hook that will be called when an item is expired from |