Revision 7784ab88 snf-cyclades-app/synnefo/plankton/backend.py

b/snf-cyclades-app/synnefo/plankton/backend.py
58 58

  
59 59
from django.conf import settings
60 60

  
61
from pithos.backends import connect_backend
62 61
from pithos.backends.base import NotAllowedError
63 62

  
64 63

  
......
75 74
    assert '/' not in container, "Invalid container"
76 75
    return 'pithos://%s/%s/%s' % (account, container, object)
77 76

  
77

  
78 78
def split_location(location):
79 79
    """Returns (accout, container, object) from a location string"""
80 80
    t = location.split('/', 4)
......
86 86
    pass
87 87

  
88 88

  
89
from pithos.backends.util import PithosBackendPool
90
POOL_SIZE = 8
91
_pithos_backend_pool = \
92
        PithosBackendPool(POOL_SIZE,
93
                         db_connection=settings.BACKEND_DB_CONNECTION,
94
                         block_path=settings.BACKEND_BLOCK_PATH)
95

  
96

  
97
def get_pithos_backend():
98
    return _pithos_backend_pool.pool_get()
99

  
100

  
89 101
class ImageBackend(object):
90 102
    """A wrapper arround the pithos backend to simplify image handling."""
91 103
    
92 104
    def __init__(self, user):
93 105
        self.user = user
94
        
106

  
95 107
        original_filters = warnings.filters
96 108
        warnings.simplefilter('ignore')         # Suppress SQLAlchemy warnings
97
        db_connection = settings.BACKEND_DB_CONNECTION
98
        block_path = settings.BACKEND_BLOCK_PATH
99
        self.backend = connect_backend(db_connection=db_connection,
100
                                       block_path=block_path)
109
        self.backend = get_pithos_backend()
101 110
        warnings.filters = original_filters     # Restore warnings
102
    
111

  
103 112
    def _get_image(self, location):
104 113
        def format_timestamp(t):
105 114
            return strftime('%Y-%m-%d %H:%M:%S', gmtime(t))

Also available in: Unified diff