Revision f759041f

b/docs/quick-install-admin-guide.rst
1050 1050

  
1051 1051
   PITHOS_SERVICE_TOKEN = 'pithos_service_token22w'
1052 1052

  
1053
   # Set to False if astakos & pithos are on the same host
1054
   PITHOS_PROXY_USER_SERVICES = True
1055

  
1056 1053

  
1057 1054
The ``PITHOS_BACKEND_DB_CONNECTION`` option tells to the Pithos app where to
1058 1055
find the Pithos backend database. Above we tell Pithos that its database is
b/docs/scale/i-pithos.rst
63 63
    PITHOS_UPDATE_MD5 = False
64 64
    PITHOS_SERVICE_TOKEN = 'XXXXXXXXXXX'
65 65

  
66
    # Set False if astakos & pithos are on the same node
67
    PITHOS_PROXY_USER_SERVICES = True
68

  
69 66

  
70 67
Install pithos web UI with:
71 68

  
b/snf-common/synnefo/settings/test.py
56 56

  
57 57
ASTAKOS_IM_MODULES = ['local', 'shibboleth']
58 58

  
59
PITHOS_PROXY_USER_SERVICES = False
60 59

  
61 60
ASTAKOS_BASE_URL = 'http://accounts.example.synnefo.org/astakos/'
62 61
ASTAKOS_AUTH_URL = 'http://accounts.example.synnefo.org/astakos/identity/v2.0/'
b/snf-pithos-app/conf/20-snf-pithos-app-settings.conf
2 2
#PITHOS_BASE_URL = "https://pithos.example.synnefo.org/"
3 3

  
4 4
# Top-level URL for the Astakos instance to be used for user management
5
#ASTAKOS_BASE_URL = 'https://accounts.example.synnefo.org/'
5
#ASTAKOS_AUTH_URL = 'https://accounts.example.synnefo.org/identity/v2.0/'
6 6

  
7 7
# Cookie name to search for fallback token
8 8
#PITHOS_ASTAKOS_COOKIE_NAME = '_pithos2_a'
......
37 37
# identity management.  WARNING: Setting to True will break your installation.
38 38
# PITHOS_TRANSLATE_UUIDS = False
39 39

  
40
# Set PITHOS_PROXY_USER_SERVICES to True to have snf-pithos-app handle all
41
# Astakos user-visible services (feedback, login, etc.) by proxying them to
42
# a running Astakos.
43
# Set to False if snf astakos-app is running on the same machine, so it handles
44
# the requests on its own.
45
#PITHOS_PROXY_USER_SERVICES = True
40
## Proxy Astakos services under the following path
41
#PITHOS_PROXY_PREFIX = '_astakos'
46 42

  
47 43
# Tune the size of the http pool for the astakos client.
48 44
# It limits the maximum number of quota changing requests
b/snf-pithos-app/pithos/api/functions.py
60 60
)
61 61

  
62 62
from pithos.api.settings import (UPDATE_MD5, TRANSLATE_UUIDS,
63
                                 SERVICE_TOKEN, ASTAKOS_BASE_URL)
63
                                 SERVICE_TOKEN, ASTAKOS_AUTH_URL)
64 64

  
65 65
from pithos.api import settings
66 66

  
......
76 76

  
77 77
def get_uuids(names):
78 78
    try:
79
        astakos = AstakosClient(ASTAKOS_BASE_URL, retry=2,
80
                                use_pool=True, logger=logger)
81
        uuids = astakos.service_get_uuids(SERVICE_TOKEN, names)
79
        astakos = AstakosClient(SERVICE_TOKEN, ASTAKOS_AUTH_URL,
80
                                retry=2, use_pool=True, logger=logger)
81
        uuids = astakos.service_get_uuids(names)
82 82
    except Exception, e:
83 83
        logger.exception(e)
84 84
        return {}
......
710 710
                if name != x[:name_idx]:
711 711
                    continue
712 712
                objects_bulk.append(x[name_idx:])
713
                
713

  
714 714
            if len(objects_bulk) > 0:
715 715
                object_permissions = \
716 716
                    request.backend.get_object_permissions_bulk(
b/snf-pithos-app/pithos/api/management/commands/reconcile-commissions-pithos.py
58 58
        b = get_backend()
59 59
        try:
60 60
            b.pre_exec()
61
            pending_commissions = b.astakosclient.get_pending_commissions(
62
                token=b.service_token)
61
            pending_commissions = b.astakosclient.get_pending_commissions()
63 62

  
64 63
            if pending_commissions:
65 64
                self.stdout.write(
......
73 72
                to_accept = b.commission_serials.lookup(pending_commissions)
74 73
                to_reject = list(set(pending_commissions) - set(to_accept))
75 74
                response = b.astakosclient.resolve_commissions(
76
                    token=b.service_token,
77 75
                    accept_serials=to_accept,
78 76
                    reject_serials=to_reject
79 77
                )
b/snf-pithos-app/pithos/api/settings.py
1 1
#coding=utf8
2 2
from django.conf import settings
3 3
from synnefo.lib import parse_base_url, join_urls
4
from synnefo.lib.services import fill_endpoints, get_public_endpoint
5
from synnefo.util.keypath import get_path, set_path
4
from synnefo.lib.services import fill_endpoints
5
from synnefo.util.keypath import get_path
6 6
from pithos.api.services import pithos_services as vanilla_pithos_services
7
from astakosclient import astakos_services as vanilla_astakos_services
7
from astakosclient import AstakosClient
8 8

  
9 9
from copy import deepcopy
10 10

  
11

  
12
# --------------------------------------------------------------------
13
# Process Pithos settings
14

  
11 15
# Top-level URL for Pithos. Must set.
12 16
BASE_URL = getattr(settings, 'PITHOS_BASE_URL',
13 17
                   "https://object-store.example.synnefo.org/pithos/")
18
# Service Token acquired by identity provider.
19
SERVICE_TOKEN = getattr(settings, 'PITHOS_SERVICE_TOKEN', '')
14 20

  
15 21
BASE_HOST, BASE_PATH = parse_base_url(BASE_URL)
16 22

  
17
# Process Astakos settings
18
ASTAKOS_BASE_URL = getattr(settings, 'ASTAKOS_BASE_URL',
19
                           'https://accounts.example.synnefo.org/astakos/')
20
ASTAKOS_BASE_HOST, ASTAKOS_BASE_PATH = parse_base_url(ASTAKOS_BASE_URL)
21

  
22 23
pithos_services = deepcopy(vanilla_pithos_services)
23 24
fill_endpoints(pithos_services, BASE_URL)
24 25
PITHOS_PREFIX = get_path(pithos_services, 'pithos_object-store.prefix')
25 26
PUBLIC_PREFIX = get_path(pithos_services, 'pithos_public.prefix')
26 27
UI_PREFIX = get_path(pithos_services, 'pithos_ui.prefix')
27 28

  
28
astakos_services = deepcopy(vanilla_astakos_services)
29
fill_endpoints(astakos_services, ASTAKOS_BASE_URL)
30
CUSTOMIZE_ASTAKOS_SERVICES = getattr(settings,
31
                                     'PITHOS_CUSTOMIZE_ASTAKOS_SERVICES', ())
32
for path, value in CUSTOMIZE_ASTAKOS_SERVICES:
33
    set_path(astakos_services, path, value, createpath=True)
29
COOKIE_NAME = getattr(settings, 'PITHOS_ASTAKOS_COOKIE_NAME', '_pithos2_a')
30

  
34 31

  
35
ASTAKOS_ACCOUNTS_PREFIX = get_path(astakos_services, 'astakos_account.prefix')
36
ASTAKOS_VIEWS_PREFIX = get_path(astakos_services, 'astakos_ui.prefix')
37
ASTAKOS_KEYSTONE_PREFIX = get_path(astakos_services, 'astakos_identity.prefix')
32
# --------------------------------------------------------------------
33
# Process Astakos settings
38 34

  
39
BASE_ASTAKOS_PROXY_PATH = getattr(settings, 'PITHOS_BASE_ASTAKOS_PROXY_PATH',
40
                                  ASTAKOS_BASE_PATH)
41
BASE_ASTAKOS_PROXY_PATH = join_urls(BASE_PATH, BASE_ASTAKOS_PROXY_PATH)
42
BASE_ASTAKOS_PROXY_PATH = BASE_ASTAKOS_PROXY_PATH.strip('/')
35
ASTAKOS_AUTH_URL = getattr(
36
    settings, 'ASTAKOS_AUTH_URL',
37
    'https://accounts.example.synnefo.org/astakos/identity/v2.0/')
38

  
39
ASTAKOSCLIENT_POOLSIZE = \
40
    getattr(settings, 'PITHOS_ASTAKOSCLIENT_POOLSIZE', 200)
41

  
42

  
43
# --------------------------------------
44
# Define a LazyAstakosUrl
45
class LazyAstakosUrl(object):
46
    def __init__(self, endpoints_name):
47
        self.endpoints_name = endpoints_name
48

  
49
    def __str__(self):
50
        if not hasattr(self, 'str'):
51
            try:
52
                astakos_client = \
53
                    AstakosClient(SERVICE_TOKEN, ASTAKOS_AUTH_URL)
54
                self.str = getattr(astakos_client, self.endpoints_name)
55
            except:
56
                return None
57
        return self.str
58

  
59
# --------------------------------------
60
# Define ASTAKOS_ACCOUNT_URL and ASTAKOS_UR_URL as LazyAstakosUrl
61
ASTAKOS_ACCOUNT_URL = LazyAstakosUrl('account_url')
62
ASTAKOS_UI_URL = LazyAstakosUrl('ui_url')
63

  
64
# --------------------------------------
65
# Define Astakos prefixes
66
ASTAKOS_PROXY_PREFIX = getattr(settings, 'PITHOS_PROXY_PREFIX', '_astakos')
67
ASTAKOS_AUTH_PREFIX = join_urls('/', ASTAKOS_PROXY_PREFIX, 'identity')
68
ASTAKOS_ACCOUNT_PREFIX = join_urls('/', ASTAKOS_PROXY_PREFIX, 'account')
69
ASTAKOS_UI_PREFIX = join_urls('/', ASTAKOS_PROXY_PREFIX, 'ui')
70

  
71
# --------------------------------------
72
# Define Astakos proxy paths
73
ASTAKOS_AUTH_PROXY_PATH = join_urls(BASE_PATH, ASTAKOS_AUTH_PREFIX)
74
ASTAKOS_ACCOUNT_PROXY_PATH = join_urls(BASE_PATH, ASTAKOS_ACCOUNT_PREFIX)
75
ASTAKOS_UI_PROXY_PATH = join_urls(BASE_PATH, ASTAKOS_UI_PREFIX)
43 76

  
77
# Astakos login URL to redirect if the user information is missing
78
LOGIN_URL = join_urls(ASTAKOS_UI_PROXY_PATH, 'login')
44 79

  
45
ASTAKOSCLIENT_POOLSIZE = getattr(settings, 'PITHOS_ASTAKOSCLIENT_POOLSIZE',
46
                                 200)
47 80

  
48
COOKIE_NAME = getattr(settings, 'PITHOS_ASTAKOS_COOKIE_NAME', '_pithos2_a')
81
# --------------------------------------------------------------------
82
# Backend settings
49 83

  
50 84
# SQLAlchemy (choose SQLite/MySQL/PostgreSQL).
51 85
BACKEND_DB_MODULE = getattr(
......
88 122
# Update object checksums.
89 123
UPDATE_MD5 = getattr(settings, 'PITHOS_UPDATE_MD5', False)
90 124

  
91
# Service Token acquired by identity provider.
92
SERVICE_TOKEN = getattr(settings, 'PITHOS_SERVICE_TOKEN', '')
93

  
94 125
RADOS_STORAGE = getattr(settings, 'PITHOS_RADOS_STORAGE', False)
95 126
RADOS_POOL_BLOCKS = getattr(settings, 'PITHOS_RADOS_POOL_BLOCKS', 'blocks')
96 127
RADOS_POOL_MAPS = getattr(settings, 'PITHOS_RADOS_POOL_MAPS', 'maps')
......
99 130
# identity management.  WARNING: Setting to True will break your installation.
100 131
TRANSLATE_UUIDS = getattr(settings, 'PITHOS_TRANSLATE_UUIDS', False)
101 132

  
102
# Set PROXY_USER_SERVICES to True to have snf-pithos-app handle all Astakos
103
# user-visible services (feedback, login, etc.) by proxying them to a running
104
# Astakos.
105
# Set to False if snf astakos-app is running on the same machine, so it handles
106
# the requests on its own.
107
PROXY_USER_SERVICES = getattr(settings, 'PITHOS_PROXY_USER_SERVICES', True)
108

  
109 133
# Set how many random bytes to use for constructing the URL
110 134
# of Pithos public files
111 135
PUBLIC_URL_SECURITY = getattr(settings, 'PITHOS_PUBLIC_URL_SECURITY', 16)
......
125 149
# The backend block hash algorithm
126 150
BACKEND_HASH_ALGORITHM = getattr(
127 151
    settings, 'PITHOS_BACKEND_HASH_ALGORITHM', 'sha256')
128

  
129
ASTAKOS_UI_URL = get_public_endpoint(astakos_services, 'astakos_ui', '').rstrip('/')
130

  
131
# Astakos login URL to redirect if the user information is missing
132
LOGIN_URL = join_urls(ASTAKOS_UI_URL, 'login')
b/snf-pithos-app/pithos/api/urls.py
40 40
from snf_django.lib.api import api_endpoint_not_found
41 41
from snf_django.utils.urls import extend_endpoint_with_slash
42 42
from pithos.api.settings import (
43
    pithos_services,
44
    BASE_PATH, ASTAKOS_BASE_URL, BASE_ASTAKOS_PROXY_PATH,
45
    ASTAKOS_ACCOUNTS_PREFIX, PROXY_USER_SERVICES,
46
    PITHOS_PREFIX, PUBLIC_PREFIX, UI_PREFIX)
43
    BASE_PATH, PITHOS_PREFIX, PUBLIC_PREFIX, UI_PREFIX,
44
    ASTAKOS_AUTH_PROXY_PATH, ASTAKOS_AUTH_URL,
45
    ASTAKOS_ACCOUNT_PROXY_PATH, ASTAKOS_ACCOUNT_URL,
46
    ASTAKOS_UI_PROXY_PATH, ASTAKOS_UI_URL,
47
    pithos_services)
47 48

  
48 49

  
49 50
urlpatterns = []
......
83 84
    (prefix_pattern(BASE_PATH), include(pithos_patterns)),
84 85
)
85 86

  
86
if PROXY_USER_SERVICES:
87
    astakos_proxy = partial(proxy, proxy_base=BASE_ASTAKOS_PROXY_PATH,
88
                            target_base=ASTAKOS_BASE_URL)
89 87

  
90
    proxy_patterns = api_patterns(
91
        '',
92
        (r'^login/?$', astakos_proxy),
93
        (r'^feedback/?$', astakos_proxy),
94
        (r'^user_catalogs/?$', astakos_proxy),
95
        (prefix_pattern(ASTAKOS_ACCOUNTS_PREFIX), astakos_proxy),
96
    )
88
# --------------------------------------
89
# PROXY settings
90
astakos_auth_proxy = \
91
    partial(proxy, proxy_base=ASTAKOS_AUTH_PROXY_PATH,
92
            target_base=ASTAKOS_AUTH_URL)
93
astakos_account_proxy = \
94
    partial(proxy, proxy_base=ASTAKOS_ACCOUNT_PROXY_PATH,
95
            target_base=ASTAKOS_ACCOUNT_URL)
96
astakos_ui_proxy = \
97
    partial(proxy, proxy_base=ASTAKOS_UI_PROXY_PATH,
98
            target_base=ASTAKOS_UI_URL)
97 99

  
98
    urlpatterns += patterns(
99
        '',
100
        (prefix_pattern(BASE_ASTAKOS_PROXY_PATH), include(proxy_patterns)),
101
    )
100
urlpatterns += api_patterns(
101
    '',
102
    (prefix_pattern(ASTAKOS_AUTH_PROXY_PATH), astakos_auth_proxy),
103
    (prefix_pattern(ASTAKOS_ACCOUNT_PROXY_PATH), astakos_account_proxy),
104
)
105
urlpatterns += patterns(
106
    '',
107
    (prefix_pattern(ASTAKOS_UI_PROXY_PATH), astakos_ui_proxy),
108
)
b/snf-pithos-app/pithos/api/util.py
56 56
                                 BACKEND_QUEUE_EXCHANGE,
57 57
                                 ASTAKOSCLIENT_POOLSIZE,
58 58
                                 SERVICE_TOKEN,
59
                                 ASTAKOS_BASE_URL,
59
                                 ASTAKOS_AUTH_URL,
60 60
                                 BACKEND_ACCOUNT_QUOTA,
61 61
                                 BACKEND_CONTAINER_QUOTA,
62 62
                                 BACKEND_VERSIONING, BACKEND_FREE_VERSIONING,
......
111 111
    for timestamp in timestamps:
112 112
        if timestamp in d and d[timestamp]:
113 113
            d[timestamp] = utils.isoformat(
114
                    datetime.fromtimestamp(d[timestamp]))
114
                datetime.fromtimestamp(d[timestamp]))
115 115
    return dict([(k.lower().replace('-', '_'), v) for k, v in d.iteritems()])
116 116

  
117 117

  
......
298 298
##########################
299 299

  
300 300
def retrieve_displayname(token, uuid, fail_silently=True):
301
    astakos = AstakosClient(ASTAKOS_BASE_URL, retry=2, use_pool=True,
301
    astakos = AstakosClient(token, ASTAKOS_AUTH_URL,
302
                            retry=2, use_pool=True,
302 303
                            logger=logger)
303 304
    try:
304
        displayname = astakos.get_username(token, uuid)
305
        displayname = astakos.get_username(uuid)
305 306
    except NoUserName:
306 307
        if not fail_silently:
307 308
            raise ItemNotExists(uuid)
......
312 313

  
313 314

  
314 315
def retrieve_displaynames(token, uuids, return_dict=False, fail_silently=True):
315
    astakos = AstakosClient(ASTAKOS_BASE_URL, retry=2, use_pool=True,
316
    astakos = AstakosClient(token, ASTAKOS_AUTH_URL,
317
                            retry=2, use_pool=True,
316 318
                            logger=logger)
317
    catalog = astakos.get_usernames(token, uuids) or {}
319
    catalog = astakos.get_usernames(uuids) or {}
318 320
    missing = list(set(uuids) - set(catalog))
319 321
    if missing and not fail_silently:
320 322
        raise ItemNotExists('Unknown displaynames: %s' % ', '.join(missing))
......
325 327
    if is_uuid(displayname):
326 328
        return displayname
327 329

  
328
    astakos = AstakosClient(ASTAKOS_BASE_URL, retry=2, use_pool=True,
330
    astakos = AstakosClient(token, ASTAKOS_AUTH_URL,
331
                            retry=2, use_pool=True,
329 332
                            logger=logger)
330 333
    try:
331
        uuid = astakos.get_uuid(token, displayname)
334
        uuid = astakos.get_uuid(displayname)
332 335
    except NoUUID:
333 336
        raise ItemNotExists(displayname)
334 337
    return uuid
335 338

  
336 339

  
337 340
def retrieve_uuids(token, displaynames, return_dict=False, fail_silently=True):
338
    astakos = AstakosClient(ASTAKOS_BASE_URL, retry=2, use_pool=True,
341
    astakos = AstakosClient(token, ASTAKOS_AUTH_URL,
342
                            retry=2, use_pool=True,
339 343
                            logger=logger)
340
    catalog = astakos.get_uuids(token, displaynames) or {}
344
    catalog = astakos.get_uuids(displaynames) or {}
341 345
    missing = list(set(displaynames) - set(catalog))
342 346
    if missing and not fail_silently:
343 347
        raise ItemNotExists('Unknown uuids: %s' % ', '.join(missing))
......
1010 1014
    queue_module=BACKEND_QUEUE_MODULE,
1011 1015
    queue_hosts=BACKEND_QUEUE_HOSTS,
1012 1016
    queue_exchange=BACKEND_QUEUE_EXCHANGE,
1013
    astakos_url=ASTAKOS_BASE_URL,
1017
    astakos_auth_url=ASTAKOS_AUTH_URL,
1014 1018
    service_token=SERVICE_TOKEN,
1015 1019
    astakosclient_poolsize=ASTAKOSCLIENT_POOLSIZE,
1016 1020
    free_versioning=BACKEND_FREE_VERSIONING,
......
1063 1067

  
1064 1068
def get_pithos_usage(token):
1065 1069
    """Get Pithos Usage from astakos."""
1066
    astakos = AstakosClient(ASTAKOS_BASE_URL, retry=2, use_pool=True,
1070
    astakos = AstakosClient(token, ASTAKOS_AUTH_URL,
1071
                            retry=2, use_pool=True,
1067 1072
                            logger=logger)
1068
    quotas = astakos.get_quotas(token)['system']
1073
    quotas = astakos.get_quotas()['system']
1069 1074
    pithos_resources = [r['name'] for r in resources]
1070 1075
    map(quotas.pop, filter(lambda k: k not in pithos_resources, quotas.keys()))
1071 1076
    return quotas.popitem()[-1]  # assume only one resource
......
1080 1085
        @api.api_method(http_method=http_method, token_required=token_required,
1081 1086
                        user_required=user_required,
1082 1087
                        logger=logger, format_allowed=format_allowed,
1083
                        astakos_url=ASTAKOS_BASE_URL,
1088
                        astakos_auth_url=ASTAKOS_AUTH_URL,
1084 1089
                        serializations=serializations,
1085 1090
                        strict_serlization=strict_serlization)
1086 1091
        @wraps(func)
b/snf-pithos-backend/pithos/backends/lib/sqlalchemy/alembic/versions/165ba3fbfe53_update_path_account.py
36 36
catalog = {}
37 37

  
38 38

  
39
def _get_uuid(account, service_token, astakos_client):
39
def _get_uuid(account, astakos_client):
40 40
    global catalog
41 41
    if account in catalog:
42 42
        return catalog[account]
43 43
    try:
44
        catalog[account] = astakos_client.service_get_uuid(service_token,
45
                                                           account)
44
        catalog[account] = astakos_client.service_get_uuid(account)
46 45
        print '\n', account, '-->', catalog[account]
47 46
    except NoUUID:
48 47
        return None
......
54 53
inverse_catalog = {}
55 54

  
56 55

  
57
def _get_displayname(account, service_token, astakos_client):
56
def _get_displayname(account, astakos_client):
58 57
    global inverse_catalog
59 58
    if account in inverse_catalog:
60 59
        return inverse_catalog[account]
61 60
    try:
62
        inverse_catalog[account] = astakos_client.service_get_username(
63
            service_token, account)
61
        inverse_catalog[account] = astakos_client.service_get_username(account)
64 62
        print '\n', account, '-->', inverse_catalog[account]
65 63
    except NoUserName:
66 64
        return None
......
221 219
    except ImportError:
222 220
        return
223 221
    else:
224
        astakos_client = AstakosClient(settings.ASTAKOS_BASE_URL,
225
                                       retry=3,
226
                                       use_pool=True)
222
        astakos_client = AstakosClient(
223
            settings.SERVICE_TOKEN, settings.ASTAKOS_AUTH_URL,
224
            retry=3, use_pool=True)
227 225
        get_uuid = functools.partial(_get_uuid,
228 226
                                     service_token=settings.SERVICE_TOKEN,
229 227
                                     astakos_client=astakos_client)
......
236 234
    except ImportError:
237 235
        return
238 236
    else:
239
        astakos_client = AstakosClient(settings.ASTAKOS_BASE_URL,
240
                                       retry=3,
241
                                       use_pool=True)
237
        astakos_client = AstakosClient(
238
            settings.SERVICE_TOKEN, settings.ASTAKOS_AUTH_URL,
239
            retry=3, use_pool=True)
242 240
        get_displayname = functools.partial(
243 241
            _get_displayname,
244
            service_token=settings.SERVICE_TOKEN,
245 242
            astakos_client=astakos_client)
246 243
        migrate(get_displayname)
b/snf-pithos-backend/pithos/backends/modular.py
151 151
                 block_module=None, block_path=None, block_umask=None,
152 152
                 block_size=None, hash_algorithm=None,
153 153
                 queue_module=None, queue_hosts=None, queue_exchange=None,
154
                 astakos_url=None, service_token=None,
154
                 astakos_auth_url=None, service_token=None,
155 155
                 astakosclient_poolsize=None,
156 156
                 free_versioning=True, block_params=None,
157 157
                 public_url_security=None,
......
236 236

  
237 237
            self.queue = NoQueue()
238 238

  
239
        self.astakos_url = astakos_url
239
        self.astakos_auth_url = astakos_auth_url
240 240
        self.service_token = service_token
241 241

  
242
        if not astakos_url or not AstakosClient:
242
        if not astakos_auth_url or not AstakosClient:
243 243
            self.astakosclient = DisabledAstakosClient(
244
                astakos_url,
244
                service_token, astakos_auth_url,
245 245
                use_pool=True,
246 246
                pool_size=astakosclient_poolsize)
247 247
        else:
248 248
            self.astakosclient = AstakosClient(
249
                astakos_url,
249
                service_token, astakos_auth_url,
250 250
                use_pool=True,
251 251
                pool_size=astakosclient_poolsize)
252 252

  
......
280 280
                self.wrapper.execute()
281 281

  
282 282
                r = self.astakosclient.resolve_commissions(
283
                    token=self.service_token,
284 283
                    accept_serials=self.serials,
285 284
                    reject_serials=[])
286 285
                self.commission_serials.delete_many(
......
290 289
        else:
291 290
            if self.serials:
292 291
                self.astakosclient.resolve_commissions(
293
                    token=self.service_token,
294 292
                    accept_serials=[],
295 293
                    reject_serials=self.serials)
296 294
                self.commission_serials.delete_many(
......
1577 1575
        try:
1578 1576
            name = details['path'] if 'path' in details else ''
1579 1577
            serial = self.astakosclient.issue_one_commission(
1580
                token=self.service_token,
1581 1578
                holder=account,
1582 1579
                source=DEFAULT_SOURCE,
1583 1580
                provisions={'pithos.diskspace': size},
b/snf-pithos-backend/pithos/backends/util.py
46 46
                 block_size=None, hash_algorithm=None,
47 47
                 queue_module=None, queue_hosts=None,
48 48
                 queue_exchange=None, free_versioning=True,
49
                 astakos_url=None, service_token=None,
49
                 astakos_auth_url=None, service_token=None,
50 50
                 astakosclient_poolsize=None,
51 51
                 block_params=None,
52 52
                 public_url_security=None,
......
66 66
        self.block_params = block_params
67 67
        self.queue_hosts = queue_hosts
68 68
        self.queue_exchange = queue_exchange
69
        self.astakos_url = astakos_url
69
        self.astakos_auth_url = astakos_auth_url
70 70
        self.service_token = service_token
71 71
        self.astakosclient_poolsize = astakosclient_poolsize
72 72
        self.free_versioning = free_versioning
......
89 89
            block_params=self.block_params,
90 90
            queue_hosts=self.queue_hosts,
91 91
            queue_exchange=self.queue_exchange,
92
            astakos_url=self.astakos_url,
92
            astakos_auth_url=self.astakos_auth_url,
93 93
            service_token=self.service_token,
94 94
            astakosclient_poolsize=self.astakosclient_poolsize,
95 95
            free_versioning=self.free_versioning,

Also available in: Unified diff