Revision 0307b47f

b/snf-pithos-app/pithos/api/settings.py
45 45
    settings, 'PITHOS_BACKEND_QUOTA', 50 * 1024 * 1024 * 1024)
46 46
BACKEND_VERSIONING = getattr(settings, 'PITHOS_BACKEND_VERSIONING', 'auto')
47 47

  
48
PITHOS_QUOTAHOLDER_URL = getattr(settings,
49
                                'PITHOS_QUOTAHOLDER_URL',
50
                                'http://127.0.0.1/api/quotaholder/v')
51

  
48 52
# Update object checksums when using hashmaps.
49 53
UPDATE_MD5 = getattr(settings, 'PITHOS_UPDATE_MD5', True)
50 54

  
b/snf-pithos-app/pithos/api/util.py
61 61
                                 BACKEND_BLOCK_UMASK,
62 62
                                 BACKEND_QUEUE_MODULE, BACKEND_QUEUE_HOSTS,
63 63
                                 BACKEND_QUEUE_EXCHANGE,
64
				 PITHOS_QUOTAHOLDER_URL,
64 65
                                 BACKEND_QUOTA, BACKEND_VERSIONING,
65 66
                                 AUTHENTICATION_URL, AUTHENTICATION_USERS,
66 67
                                 SERVICE_TOKEN, COOKIE_NAME)
......
858 859
                              block_umask=BACKEND_BLOCK_UMASK,
859 860
                              queue_module=BACKEND_QUEUE_MODULE,
860 861
                              queue_hosts=BACKEND_QUEUE_HOSTS,
861
                              queue_exchange=BACKEND_QUEUE_EXCHANGE)
862
                              queue_exchange=BACKEND_QUEUE_EXCHANGE,
863
			      quotaholder_url=PITHOS_QUOTAHOLDER_URL)
862 864
    backend.default_policy['quota'] = BACKEND_QUOTA
863 865
    backend.default_policy['versioning'] = BACKEND_VERSIONING
864 866
    return backend
b/snf-pithos-backend/pithos/backends/modular.py
39 39
import hashlib
40 40
import binascii
41 41

  
42
from commissioning.clients.quotaholder import QuotaholderHTTP
43

  
42 44
from base import DEFAULT_QUOTA, DEFAULT_VERSIONING, NotAllowedError, QuotaError, BaseBackend, \
43 45
    AccountExists, ContainerExists, AccountNotEmpty, ContainerNotEmpty, ItemNotExists, VersionNotExists
44 46

  
......
129 131
    def __init__(self, db_module=None, db_connection=None,
130 132
                 block_module=None, block_path=None, block_umask=None,
131 133
                 queue_module=None, queue_hosts=None,
132
                 queue_exchange=None):
134
                 queue_exchange=None, quotaholder_url=None):
133 135
        db_module = db_module or DEFAULT_DB_MODULE
134 136
        db_connection = db_connection or DEFAULT_DB_CONNECTION
135 137
        block_module = block_module or DEFAULT_BLOCK_MODULE
......
138 140
        #queue_module = queue_module or DEFAULT_QUEUE_MODULE
139 141
        #queue_hosts = queue_hosts or DEFAULT_QUEUE_HOSTS
140 142
        #queue_exchange = queue_exchange or DEFAULT_QUEUE_EXCHANGE
141
		
143
                
142 144
        self.hash_algorithm = 'sha256'
143 145
        self.block_size = 4 * 1024 * 1024  # 4MB
144 146

  
......
171 173
        if queue_module and queue_hosts:
172 174
            self.queue_module = load_module(queue_module)
173 175
            params = {'hosts': queue_hosts,
174
            		  'exchange': queue_exchange,
176
                          'exchange': queue_exchange,
175 177
                      'client_id': QUEUE_CLIENT_ID}
176 178
            self.queue = self.queue_module.Queue(**params)
177 179
        else:
......
184 186

  
185 187
            self.queue = NoQueue()
186 188

  
189
        self.quotaholder = QuotaholderHTTP('http://127.0.0.1/api/quotaholder/v')
190

  
187 191
    def close(self):
188 192
        self.wrapper.close()
189 193
        self.queue.close()
......
1233 1237
        					  account, QUEUE_INSTANCE_ID, 'diskspace',
1234 1238
        					  float(size), details))
1235 1239

  
1240
        serial = self.quotaholder.issue_provision()
1241
        self.serial.append(serial)
1242

  
1236 1243
    def _report_object_change(self, user, account, path, details={}):
1237 1244
        details.update({'user': user})
1238 1245
        logger.debug("_report_object_change: %s %s %s %s", user,
1239 1246
                     account, path, details)
1240 1247
        self.messages.append((QUEUE_MESSAGE_KEY_PREFIX % ('object',),
1241
        					  account, QUEUE_INSTANCE_ID, 'object', path, details))
1248
                                                  account, QUEUE_INSTANCE_ID, 'object', path, details))
1242 1249

  
1243 1250
    def _report_sharing_change(self, user, account, path, details={}):
1244 1251
        logger.debug("_report_permissions_change: %s %s %s %s",
1245 1252
                     user, account, path, details)
1246 1253
        details.update({'user': user})
1247 1254
        self.messages.append((QUEUE_MESSAGE_KEY_PREFIX % ('sharing',),
1248
        					  account, QUEUE_INSTANCE_ID, 'sharing', path, details))
1255
                                                  account, QUEUE_INSTANCE_ID, 'sharing', path, details))
1249 1256

  
1250 1257
    # Policy functions.
1251 1258

  

Also available in: Unified diff