Revision 7ed99da8 snf-pithos-backend/pithos/backends/modular.py
b/snf-pithos-backend/pithos/backends/modular.py | ||
---|---|---|
186 | 186 |
|
187 | 187 |
self.queue = NoQueue() |
188 | 188 |
|
189 |
self.quotaholder = QuotaholderHTTP('http://127.0.0.1/api/quotaholder/v') |
|
189 |
self.quotaholder_url = quotaholder_url |
|
190 |
self.quotaholder = QuotaholderHTTP(quotaholder_url) |
|
191 |
self.serials = [] |
|
190 | 192 |
|
191 | 193 |
def close(self): |
192 | 194 |
self.wrapper.close() |
... | ... | |
493 | 495 |
self.store.map_delete(h) |
494 | 496 |
self.node.node_purge_children(node, until, CLUSTER_DELETED) |
495 | 497 |
self._report_size_change(user, account, -size, |
496 |
{'action':'container purge', 'path': path,
|
|
497 |
'versions': ','.join(str(i) for i in serials)})
|
|
498 |
{'action':'container purge', 'path': path,
|
|
499 |
'versions': serials})
|
|
498 | 500 |
return |
499 | 501 |
|
500 | 502 |
if not delimiter: |
... | ... | |
507 | 509 |
self.node.node_purge_children(node, inf, CLUSTER_DELETED) |
508 | 510 |
self.node.node_remove(node) |
509 | 511 |
self._report_size_change(user, account, -size, |
510 |
{'action': 'container delete',
|
|
511 |
'path': path,
|
|
512 |
'versions': ','.join(str(i) for i in serials)})
|
|
512 |
{'action': 'container delete',
|
|
513 |
'path': path,
|
|
514 |
'versions': serials})
|
|
513 | 515 |
else: |
514 | 516 |
# remove only contents |
515 | 517 |
src_names = self._list_objects_no_limit(user, account, container, prefix='', delimiter=None, virtual=False, domain=None, keys=[], shared=False, until=None, size_range=None, all_props=True, public=False) |
... | ... | |
522 | 524 |
account, container, src_version_id) |
523 | 525 |
if del_size: |
524 | 526 |
self._report_size_change(user, account, -del_size, |
525 |
{'action': 'object delete', |
|
526 |
'path': path, |
|
527 |
'versions': ','.join([str(dest_version_id)])}) |
|
527 |
{'action': 'object delete', |
|
528 |
'path': path, 'versions': [dest_version_id]}) |
|
528 | 529 |
self._report_object_change( |
529 | 530 |
user, account, path, details={'action': 'object delete'}) |
530 | 531 |
paths.append(path) |
... | ... | |
815 | 816 |
# This must be executed in a transaction, so the version is never created if it fails. |
816 | 817 |
raise QuotaError |
817 | 818 |
self._report_size_change(user, account, size_delta, |
818 |
{'action': 'object update', 'path': path,
|
|
819 |
'versions': ','.join([str(dest_version_id)])})
|
|
819 |
{'action': 'object update', 'path': path,
|
|
820 |
'versions': [dest_version_id]})
|
|
820 | 821 |
|
821 | 822 |
if permissions is not None: |
822 | 823 |
self.permissions.access_set(path, permissions) |
... | ... | |
947 | 948 |
except NameError: |
948 | 949 |
self.permissions.access_clear(path) |
949 | 950 |
self._report_size_change(user, account, -size, |
950 |
{'action': 'object purge', 'path': path,
|
|
951 |
'versions': ','.join(str(i) for i in serials)})
|
|
951 |
{'action': 'object purge', 'path': path,
|
|
952 |
'versions': serials})
|
|
952 | 953 |
return |
953 | 954 |
|
954 | 955 |
path, node = self._lookup_object(account, container, name) |
... | ... | |
956 | 957 |
del_size = self._apply_versioning(account, container, src_version_id) |
957 | 958 |
if del_size: |
958 | 959 |
self._report_size_change(user, account, -del_size, |
959 |
{'action': 'object delete', 'path': path,
|
|
960 |
'versions': ','.join([str(dest_version_id)])})
|
|
960 |
{'action': 'object delete', 'path': path,
|
|
961 |
'versions': [dest_version_id]})
|
|
961 | 962 |
self._report_object_change( |
962 | 963 |
user, account, path, details={'action': 'object delete'}) |
963 | 964 |
self.permissions.access_clear(path) |
... | ... | |
974 | 975 |
account, container, src_version_id) |
975 | 976 |
if del_size: |
976 | 977 |
self._report_size_change(user, account, -del_size, |
977 |
{'action': 'object delete',
|
|
978 |
'path': path,
|
|
979 |
'versions': ','.join([str(dest_version_id)])})
|
|
978 |
{'action': 'object delete',
|
|
979 |
'path': path,
|
|
980 |
'versions': [dest_version_id]})
|
|
980 | 981 |
self._report_object_change( |
981 | 982 |
user, account, path, details={'action': 'object delete'}) |
982 | 983 |
paths.append(path) |
... | ... | |
1234 | 1235 |
logger.debug( |
1235 | 1236 |
"_report_size_change: %s %s %s %s", user, account, size, details) |
1236 | 1237 |
self.messages.append((QUEUE_MESSAGE_KEY_PREFIX % ('resource.diskspace',), |
1237 |
account, QUEUE_INSTANCE_ID, 'diskspace', |
|
1238 |
float(size), details)) |
|
1239 |
|
|
1240 |
serial = self.quotaholder.issue_provision() |
|
1241 |
self.serial.append(serial) |
|
1238 |
account, QUEUE_INSTANCE_ID, 'diskspace', |
|
1239 |
float(size), details)) |
|
1240 |
|
|
1241 |
serial = self.quotaholder.issue_commission( |
|
1242 |
context = {}, |
|
1243 |
target = account, |
|
1244 |
key = '1', |
|
1245 |
clientkey = 'pithos', |
|
1246 |
ownerkey = '', |
|
1247 |
provisions = () |
|
1248 |
) |
|
1249 |
self.serials.append(serial) |
|
1242 | 1250 |
|
1243 | 1251 |
def _report_object_change(self, user, account, path, details={}): |
1244 | 1252 |
details.update({'user': user}) |
Also available in: Unified diff