From f6de4f21868db407f79b8265d2c08770a3875f45 Mon Sep 17 00:00:00 2001 From: Don Mitchell <dmitchell@edx.org> Date: Mon, 16 Dec 2013 12:31:19 -0500 Subject: [PATCH] Location map uses a separate cache and defaults to general --- cms/djangoapps/auth/authz.py | 3 +-- cms/envs/dev.py | 7 ++++++- cms/envs/test.py | 7 ++++++- common/lib/xmodule/xmodule/modulestore/django.py | 6 +++++- lms/envs/dev.py | 6 +++++- lms/envs/test.py | 7 ++++++- 6 files changed, 29 insertions(+), 7 deletions(-) diff --git a/cms/djangoapps/auth/authz.py b/cms/djangoapps/auth/authz.py index c6a67bd451c..19c00f832ac 100644 --- a/cms/djangoapps/auth/authz.py +++ b/cms/djangoapps/auth/authz.py @@ -203,8 +203,7 @@ def remove_user_from_course_group(caller, user, location, role): # see if the user is actually in that role, if not then we don't have to do anything groupnames, _ = get_all_course_role_groupnames(location, role) - for group in user.groups.filter(name__in=groupnames): - user.groups.remove(group) + user.groups.remove(*user.groups.filter(name__in=groupnames)) user.save() diff --git a/cms/envs/dev.py b/cms/envs/dev.py index 74561cee636..0ca4266f40d 100644 --- a/cms/envs/dev.py +++ b/cms/envs/dev.py @@ -129,7 +129,12 @@ CACHES = { 'LOCATION': '/var/tmp/mongo_metadata_inheritance', 'TIMEOUT': 300, 'KEY_FUNCTION': 'util.memcache.safe_key', - } + }, + 'loc_cache': { + 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', + 'LOCATION': 'edx_location_mem_cache', + }, + } # Make the keyedcache startup warnings go away diff --git a/cms/envs/test.py b/cms/envs/test.py index a35824ed52b..e541b0d390d 100644 --- a/cms/envs/test.py +++ b/cms/envs/test.py @@ -138,7 +138,12 @@ CACHES = { 'LOCATION': '/var/tmp/mongo_metadata_inheritance', 'TIMEOUT': 300, 'KEY_FUNCTION': 'util.memcache.safe_key', - } + }, + 'loc_cache': { + 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', + 'LOCATION': 'edx_location_mem_cache', + }, + } # hide ratelimit warnings while running tests diff --git a/common/lib/xmodule/xmodule/modulestore/django.py b/common/lib/xmodule/xmodule/modulestore/django.py index a17886c4847..ef4b9df40af 100644 --- a/common/lib/xmodule/xmodule/modulestore/django.py +++ b/common/lib/xmodule/xmodule/modulestore/django.py @@ -129,8 +129,12 @@ def loc_mapper(): global _loc_singleton # pylint: disable=W0212 if _loc_singleton is None: + try: + loc_cache = get_cache('loc_cache') + except InvalidCacheBackendError: + loc_cache = get_cache('default') # instantiate - _loc_singleton = LocMapperStore(get_cache('default'), **settings.DOC_STORE_CONFIG) + _loc_singleton = LocMapperStore(loc_cache, **settings.DOC_STORE_CONFIG) # inject into split mongo modulestore if 'split' in _MODULESTORES: _MODULESTORES['split'].loc_mapper = _loc_singleton diff --git a/lms/envs/dev.py b/lms/envs/dev.py index bfff68157e1..30053d3da3e 100644 --- a/lms/envs/dev.py +++ b/lms/envs/dev.py @@ -85,7 +85,11 @@ CACHES = { 'LOCATION': '/var/tmp/mongo_metadata_inheritance', 'TIMEOUT': 300, 'KEY_FUNCTION': 'util.memcache.safe_key', - } + }, + 'loc_cache': { + 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', + 'LOCATION': 'edx_location_mem_cache', + }, } diff --git a/lms/envs/test.py b/lms/envs/test.py index 31636f6aad9..52b5b74c90f 100644 --- a/lms/envs/test.py +++ b/lms/envs/test.py @@ -165,7 +165,12 @@ CACHES = { 'LOCATION': '/var/tmp/mongo_metadata_inheritance', 'TIMEOUT': 300, 'KEY_FUNCTION': 'util.memcache.safe_key', - } + }, + 'loc_cache': { + 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', + 'LOCATION': 'edx_location_mem_cache', + }, + } # Dummy secret key for dev -- GitLab