58 |
58 |
ASTAKOS_BASE_URL,
|
59 |
59 |
BACKEND_ACCOUNT_QUOTA, BACKEND_CONTAINER_QUOTA,
|
60 |
60 |
BACKEND_VERSIONING,
|
61 |
|
BACKEND_FREE_VERSIONING, BACKEND_POOL_SIZE,
|
|
61 |
BACKEND_FREE_VERSIONING,
|
|
62 |
BACKEND_POOL_ENABLED, BACKEND_POOL_SIZE,
|
62 |
63 |
BACKEND_BLOCK_SIZE, BACKEND_HASH_ALGORITHM,
|
63 |
64 |
RADOS_STORAGE, RADOS_POOL_BLOCKS,
|
64 |
65 |
RADOS_POOL_MAPS, TRANSLATE_UUIDS,
|
65 |
66 |
PUBLIC_URL_SECURITY, PUBLIC_URL_ALPHABET,
|
66 |
67 |
COOKIE_NAME, BASE_HOST, UPDATE_MD5)
|
67 |
68 |
from pithos.api.resources import resources
|
|
69 |
from pithos.backends import connect_backend
|
68 |
70 |
from pithos.backends.base import (NotAllowedError, QuotaError, ItemNotExists,
|
69 |
71 |
VersionNotExists)
|
70 |
72 |
|
... | ... | |
991 |
993 |
BLOCK_PARAMS = {'mappool': None,
|
992 |
994 |
'blockpool': None, }
|
993 |
995 |
|
994 |
|
|
995 |
|
_pithos_backend_pool = PithosBackendPool(
|
996 |
|
size=BACKEND_POOL_SIZE,
|
997 |
|
db_module=BACKEND_DB_MODULE,
|
998 |
|
db_connection=BACKEND_DB_CONNECTION,
|
999 |
|
block_module=BACKEND_BLOCK_MODULE,
|
1000 |
|
block_path=BACKEND_BLOCK_PATH,
|
1001 |
|
block_umask=BACKEND_BLOCK_UMASK,
|
1002 |
|
block_size=BACKEND_BLOCK_SIZE,
|
1003 |
|
hash_algorithm=BACKEND_HASH_ALGORITHM,
|
1004 |
|
queue_module=BACKEND_QUEUE_MODULE,
|
1005 |
|
queue_hosts=BACKEND_QUEUE_HOSTS,
|
1006 |
|
queue_exchange=BACKEND_QUEUE_EXCHANGE,
|
1007 |
|
astakos_url=ASTAKOS_BASE_URL,
|
1008 |
|
service_token=SERVICE_TOKEN,
|
1009 |
|
astakosclient_poolsize=ASTAKOSCLIENT_POOLSIZE,
|
1010 |
|
free_versioning=BACKEND_FREE_VERSIONING,
|
1011 |
|
block_params=BLOCK_PARAMS,
|
1012 |
|
public_url_security=PUBLIC_URL_SECURITY,
|
1013 |
|
public_url_alphabet=PUBLIC_URL_ALPHABET,
|
1014 |
|
account_quota_policy=BACKEND_ACCOUNT_QUOTA,
|
1015 |
|
container_quota_policy=BACKEND_CONTAINER_QUOTA,
|
1016 |
|
container_versioning_policy=BACKEND_VERSIONING)
|
|
996 |
BACKEND_KWARGS = dict(
|
|
997 |
db_module=BACKEND_DB_MODULE,
|
|
998 |
db_connection=BACKEND_DB_CONNECTION,
|
|
999 |
block_module=BACKEND_BLOCK_MODULE,
|
|
1000 |
block_path=BACKEND_BLOCK_PATH,
|
|
1001 |
block_umask=BACKEND_BLOCK_UMASK,
|
|
1002 |
block_size=BACKEND_BLOCK_SIZE,
|
|
1003 |
hash_algorithm=BACKEND_HASH_ALGORITHM,
|
|
1004 |
queue_module=BACKEND_QUEUE_MODULE,
|
|
1005 |
queue_hosts=BACKEND_QUEUE_HOSTS,
|
|
1006 |
queue_exchange=BACKEND_QUEUE_EXCHANGE,
|
|
1007 |
astakos_url=ASTAKOS_BASE_URL,
|
|
1008 |
service_token=SERVICE_TOKEN,
|
|
1009 |
astakosclient_poolsize=ASTAKOSCLIENT_POOLSIZE,
|
|
1010 |
free_versioning=BACKEND_FREE_VERSIONING,
|
|
1011 |
block_params=BLOCK_PARAMS,
|
|
1012 |
public_url_security=PUBLIC_URL_SECURITY,
|
|
1013 |
public_url_alphabet=PUBLIC_URL_ALPHABET,
|
|
1014 |
account_quota_policy=BACKEND_ACCOUNT_QUOTA,
|
|
1015 |
container_quota_policy=BACKEND_CONTAINER_QUOTA,
|
|
1016 |
container_versioning_policy=BACKEND_VERSIONING)
|
|
1017 |
|
|
1018 |
_pithos_backend_pool = PithosBackendPool(size=BACKEND_POOL_SIZE,
|
|
1019 |
**BACKEND_KWARGS)
|
1017 |
1020 |
|
1018 |
1021 |
|
1019 |
1022 |
def get_backend():
|
1020 |
|
backend = _pithos_backend_pool.pool_get()
|
|
1023 |
if BACKEND_POOL_ENABLED:
|
|
1024 |
backend = _pithos_backend_pool.pool_get()
|
|
1025 |
else:
|
|
1026 |
backend = connect_backend(**BACKEND_KWARGS)
|
|
1027 |
backend.serials = []
|
1021 |
1028 |
backend.messages = []
|
1022 |
1029 |
return backend
|
1023 |
1030 |
|