Revision 468ba00b

b/snf-cyclades-app/setup.py
76 76
    'setproctitle>=1.0.1',
77 77
    'bitarray>=0.8',
78 78
    'objpool>=0.2',
79
    'astakosclient',
79 80
    'snf-django-lib'
80 81
]
81 82

  
b/snf-cyclades-app/synnefo/helpdesk/tests.py
51 51

  
52 52
from synnefo.db import models_factory as mfactory
53 53

  
54

  
55
class AstakosClientMock():
56
    def __init__(*args, **kwargs):
57
        pass
58

  
59
    def get_username(self, token, uuid):
60
        try:
61
            return USERS_UUIDS.get(uuid)['displayname']
62
        except TypeError:
63
            return None
64

  
65
    def get_uuid(self, token, display_name):
66
        try:
67
            return USERS_DISPLAYNAMES.get(display_name)['uuid']
68
        except TypeError:
69
            return None
70

  
71

  
54 72
class AuthClient(Client):
55 73

  
56 74
    def request(self, **request):
......
79 97
                                                           'helpdesk'],
80 98
                                'auth_token': '0001'}
81 99

  
82
        def get_uuid_mock(token, displayname, url):
83
            try:
84
                return USERS_DISPLAYNAMES.get(displayname)['uuid']
85
            except TypeError:
86
                return None
87

  
88
        def get_displayname_mock(token, uuid, url):
89
            try:
90
                return USERS_UUIDS.get(uuid)['displayname']
91
            except TypeError:
92
                return None
93

  
94 100
        # mock the astakos authentication function
95 101
        from snf_django.lib import astakos
96 102
        astakos.get_user = get_user_mock
97
        astakos.get_displayname = get_displayname_mock
98
        astakos.get_user_uuid = get_uuid_mock
103
        import astakosclient
104
        astakosclient.AstakosClient = AstakosClientMock
99 105

  
100 106
        settings.SKIP_SSH_VALIDATION = True
101 107
        settings.HELPDESK_ENABLED = True
b/snf-cyclades-app/synnefo/helpdesk/views.py
45 45

  
46 46
from snf_django.lib.astakos import get_user
47 47
from synnefo.db.models import VirtualMachine, NetworkInterface, Network
48
from snf_django.lib import astakos
48
from astakosclient import AstakosClient
49 49

  
50 50
# server actions specific imports
51 51
from synnefo.api import servers
......
58 58
VM_SEARCH_REGEX = re.compile('vm(-){0,}(?P<vmid>[0-9]+)')
59 59

  
60 60

  
61

  
62 61
def get_token_from_cookie(request, cookiename):
63 62
    """
64 63
    Extract token from the cookie name provided. Cookie should be in the same
......
81 80
PERMITTED_GROUPS = getattr(settings, 'HELPDESK_PERMITTED_GROUPS', ['helpdesk'])
82 81
SHOW_DELETED_VMS = getattr(settings, 'HELPDESK_SHOW_DELETED_VMS', False)
83 82

  
84
# guess cyclades setting too
85
USER_CATALOG_URL = getattr(settings, 'CYCLADES_USER_CATALOG_URL', None)
86
USER_CATALOG_URL = getattr(settings, 'HELPDESK_USER_CATALOG_URL',
87
                           USER_CATALOG_URL)
88

  
89 83

  
90 84
def token_check(func):
91 85
    """
......
115 109
            raise Http404
116 110

  
117 111
        token = get_token_from_cookie(request, AUTH_COOKIE_NAME)
118
        get_user(request, settings.ASTAKOS_URL, fallback_token=token)
112
        get_user(request, settings.ASTAKOS_URL,
113
                 fallback_token=token, logger=logger)
119 114
        if hasattr(request, 'user') and request.user:
120 115
            groups = request.user.get('groups', [])
121 116

  
......
199 194
            account = None
200 195
            search_query = vmid
201 196

  
197
    astakos = AstakosClient(settings.ASTAKOS_URL, retry=2,
198
                            use_pool=True, logger=logger)
199

  
202 200
    if is_uuid:
203 201
        account = search_query
204
        account_name = astakos.get_displayname(auth_token, account,
205
                                               USER_CATALOG_URL)
202
        account_name = astakos.get_username(auth_token, account)
206 203

  
207 204
    if account_exists and not is_uuid:
208 205
        account_name = search_query
209
        account = astakos.get_user_uuid(auth_token, account_name,
210
                                        USER_CATALOG_URL)
206
        account = astakos.get_uuid(auth_token, account_name)
211 207

  
212 208
    if not account:
213 209
        account_exists = False
b/snf-cyclades-app/synnefo/ui/views.py
256 256

  
257 257

  
258 258
def user_quota(request):
259
    try:
260
        get_user(request, settings.ASTAKOS_URL, usage=True)
261
    except TypeError:
262
        # astakos client backwards compatibility
263
        get_user(request, settings.ASTAKOS_URL)
259
    get_user(request, settings.ASTAKOS_URL, usage=True)
264 260

  
265 261
    if request.user and 'usage' in request.user:
266 262
        response = json.dumps(request.user['usage'])

Also available in: Unified diff