Revision 56bbece7

b/snf-astakos-app/astakos/api/quotas.py
38 38

  
39 39
from snf_django.lib import api
40 40
from snf_django.lib.api.faults import BadRequest, ItemNotFound
41
from django.core.cache import cache
41 42

  
43
from astakos.im import settings
42 44
from astakos.im import register
43 45
from astakos.im.quotas import get_user_quotas, service_get_quotas
44 46

  
......
49 51
                   user_from_token, component_from_token)
50 52

  
51 53

  
54
def get_visible_resources():
55
    key = "resources"
56
    result = cache.get(key)
57
    if result is None:
58
        cache.set(key, register.get_api_visible_resources(),
59
                  settings.RESOURCE_CACHE_TIMEOUT)
60
        result = cache.get(key)
61
    return result
62

  
63

  
52 64
@api.api_method(http_method='GET', token_required=True, user_required=False)
53 65
@user_from_token
54 66
def quotas(request):
55
    visible_resources = register.get_api_visible_resources()
67
    visible_resources = get_visible_resources()
56 68
    resource_names = [r.name for r in visible_resources]
57 69
    result = get_user_quotas(request.user, resources=resource_names)
58 70
    return json_response(result)
......
73 85

  
74 86
@api.api_method(http_method='GET', token_required=False, user_required=False)
75 87
def resources(request):
76
    resources = register.get_api_visible_resources()
88
    resources = get_visible_resources()
77 89
    result = register.resources_to_dict(resources)
78 90
    return json_response(result)
79 91

  
b/snf-astakos-app/astakos/im/settings.py
216 216
ENDPOINT_CACHE_TIMEOUT = getattr(settings,
217 217
                                 'ASTAKOS_ENDPOINT_CACHE_TIMEOUT',
218 218
                                 60)
219

  
220
RESOURCE_CACHE_TIMEOUT = getattr(settings,
221
                                 'ASTAKOS_RESOURCE_CACHE_TIMEOUT',
222
                                 60)
b/snf-astakos-app/conf/20-snf-astakos-app-settings.conf
142 142

  
143 143
## Timeout in seconds for caching endpoints in POST /tokens
144 144
# ASTAKOS_ENDPOINT_CACHE_TIMEOUT = 60
145

  
146
## Timeout in seconds for caching visible resources in GET /quotas
147
# ASTAKOS_RESOURCE_CACHE_TIMEOUT = 60

Also available in: Unified diff