From eced013df6b56d7c216b600769ee67b75fc4f0b7 Mon Sep 17 00:00:00 2001 From: Yogeshwar Srikrishnan Date: Tue, 26 Jul 2011 10:25:52 -0500 Subject: Changes to make cache time configurable. --- etc/keystone.conf | 2 ++ keystone/backends/memcache/__init__.py | 4 +++- keystone/backends/memcache/api/token.py | 13 +++---------- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/etc/keystone.conf b/etc/keystone.conf index 3439543f..1f0ef59b 100755 --- a/etc/keystone.conf +++ b/etc/keystone.conf @@ -74,6 +74,8 @@ backend_entities = ['Tenant', 'User', 'Group'] [keystone.backends.memcache] memcache_hosts = 127.0.0.1:11211 backend_entities = ['Token'] +#Time in seconds +cache_time = 86400 [pipeline:admin] pipeline = diff --git a/keystone/backends/memcache/__init__.py b/keystone/backends/memcache/__init__.py index 9b0e340f..37140256 100755 --- a/keystone/backends/memcache/__init__.py +++ b/keystone/backends/memcache/__init__.py @@ -31,7 +31,7 @@ import memcache MODEL_PREFIX = 'keystone.backends.memcache.models.' API_PREFIX = 'keystone.backends.memcache.api.' memcache_server = None - +cache_time = 86400 def configure_backend(options): hosts = options['memcache_hosts'] @@ -39,6 +39,8 @@ def configure_backend(options): if not memcache_server: memcache_server = Memcache_Server(hosts) register_models(options) + global cache_time + cache_time = config.get_option(options, 'cache_time', type='int', default=86400) class Memcache_Server(): diff --git a/keystone/backends/memcache/api/token.py b/keystone/backends/memcache/api/token.py index d70faaee..80d81530 100755 --- a/keystone/backends/memcache/api/token.py +++ b/keystone/backends/memcache/api/token.py @@ -15,25 +15,19 @@ # License for the specific language governing permissions and limitations # under the License. -from keystone.backends.memcache import memcache_server, models +from keystone.backends.memcache import memcache_server, models, cache_time from keystone.backends.api import BaseTokenAPI class TokenAPI(BaseTokenAPI): def create(self, token): - if token.tenant_id is None: - token_tenant_key = token.id - else: - token_tenant_key = token.id + "::" + token.tenant_id - if token.tenant_id != None: tenant_user_key = token.tenant_id + "::" + token.user_id else: tenant_user_key = token.user_id #Setting them for a day. - memcache_server.set(token.id, token, 86400) - memcache_server.set(token_tenant_key, token, 86400) - memcache_server.set(tenant_user_key, token, 86400) + memcache_server.set(token.id, token, cache_time) + memcache_server.set(tenant_user_key, token, cache_time) def get(self, id, session=None): return memcache_server.get(id) @@ -44,7 +38,6 @@ class TokenAPI(BaseTokenAPI): memcache_server.delete(id) if token.tenant_id != None: - memcache_server.delete(token.id + "::" + token.tenant_id) memcache_server.delete(token.tenant_id + "::" + token.user_id) else: memcache_server.delete(token.id) -- cgit