summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYogeshwar Srikrishnan <yoga80@yahoo.com>2011-07-26 10:25:52 -0500
committerJames E. Blair <james.blair@rackspace.com>2011-07-28 09:55:30 -0700
commiteced013df6b56d7c216b600769ee67b75fc4f0b7 (patch)
tree48f54c976a4efdc06843849a4192fc7d046907cd
parent17743367b6710babb2a0596a6002e7f415624bc0 (diff)
Changes to make cache time configurable.
-rwxr-xr-xetc/keystone.conf2
-rwxr-xr-xkeystone/backends/memcache/__init__.py4
-rwxr-xr-xkeystone/backends/memcache/api/token.py13
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)