Revision b82d3277
b/snf-pithos-backend/pithos/backends/modular.py | ||
---|---|---|
456 | 456 |
for h in hashes: |
457 | 457 |
self.store.map_delete(h) |
458 | 458 |
self.node.node_purge_children(node, until, CLUSTER_DELETED) |
459 |
self._report_size_change(user, account, -size, {'action': 'container purge'}) |
|
459 |
self._report_size_change(user, account, -size, {'action': 'container purge', 'path':path})
|
|
460 | 460 |
return |
461 | 461 |
|
462 | 462 |
if not delimiter: |
... | ... | |
467 | 467 |
self.store.map_delete(h) |
468 | 468 |
self.node.node_purge_children(node, inf, CLUSTER_DELETED) |
469 | 469 |
self.node.node_remove(node) |
470 |
self._report_size_change(user, account, -size, {'action': 'container delete'}) |
|
470 |
self._report_size_change(user, account, -size, {'action': 'container delete', 'path':path})
|
|
471 | 471 |
else: |
472 | 472 |
# remove only contents |
473 | 473 |
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) |
... | ... | |
478 | 478 |
src_version_id, dest_version_id = self._put_version_duplicate(user, node, size=0, type='', hash=None, checksum='', cluster=CLUSTER_DELETED) |
479 | 479 |
del_size = self._apply_versioning(account, container, src_version_id) |
480 | 480 |
if del_size: |
481 |
self._report_size_change(user, account, -del_size, {'action': 'object delete'}) |
|
481 |
self._report_size_change(user, account, -del_size, {'action': 'object delete', 'path':path})
|
|
482 | 482 |
self._report_object_change(user, account, path, details={'action': 'object delete'}) |
483 | 483 |
paths.append(path) |
484 | 484 |
self.permissions.access_clear_bulk(paths) |
... | ... | |
741 | 741 |
(container_quota > 0 and self._get_statistics(container_node)[1] + size_delta > container_quota): |
742 | 742 |
# This must be executed in a transaction, so the version is never created if it fails. |
743 | 743 |
raise QuotaError |
744 |
self._report_size_change(user, account, size_delta, {'action': 'object update'}) |
|
744 |
self._report_size_change(user, account, size_delta, {'action': 'object update', 'path':path})
|
|
745 | 745 |
|
746 | 746 |
if permissions is not None: |
747 | 747 |
self.permissions.access_set(path, permissions) |
... | ... | |
861 | 861 |
props = self._get_version(node) |
862 | 862 |
except NameError: |
863 | 863 |
self.permissions.access_clear(path) |
864 |
self._report_size_change(user, account, -size, {'action': 'object purge'}) |
|
864 |
self._report_size_change(user, account, -size, {'action': 'object purge', 'path':path})
|
|
865 | 865 |
return |
866 | 866 |
|
867 | 867 |
path, node = self._lookup_object(account, container, name) |
868 | 868 |
src_version_id, dest_version_id = self._put_version_duplicate(user, node, size=0, type='', hash=None, checksum='', cluster=CLUSTER_DELETED) |
869 | 869 |
del_size = self._apply_versioning(account, container, src_version_id) |
870 | 870 |
if del_size: |
871 |
self._report_size_change(user, account, -del_size, {'action': 'object delete'}) |
|
871 |
self._report_size_change(user, account, -del_size, {'action': 'object delete', 'path':path})
|
|
872 | 872 |
self._report_object_change(user, account, path, details={'action': 'object delete'}) |
873 | 873 |
self.permissions.access_clear(path) |
874 | 874 |
|
... | ... | |
882 | 882 |
src_version_id, dest_version_id = self._put_version_duplicate(user, node, size=0, type='', hash=None, checksum='', cluster=CLUSTER_DELETED) |
883 | 883 |
del_size = self._apply_versioning(account, container, src_version_id) |
884 | 884 |
if del_size: |
885 |
self._report_size_change(user, account, -del_size, {'action': 'object delete'}) |
|
885 |
self._report_size_change(user, account, -del_size, {'action': 'object delete', 'path':path})
|
|
886 | 886 |
self._report_object_change(user, account, path, details={'action': 'object delete'}) |
887 | 887 |
paths.append(path) |
888 | 888 |
self.permissions.access_clear_bulk(paths) |
... | ... | |
1122 | 1122 |
# Reporting functions. |
1123 | 1123 |
|
1124 | 1124 |
def _report_size_change(self, user, account, size, details={}): |
1125 |
logger.debug("_report_size_change: %s %s %s %s", user, account, size, details) |
|
1126 | 1125 |
account_node = self._lookup_account(account, True)[1] |
1127 | 1126 |
total = self._get_statistics(account_node)[1] |
1128 | 1127 |
details.update({'user': user, 'total': total}) |
1128 |
logger.debug("_report_size_change: %s %s %s %s", user, account, size, details) |
|
1129 | 1129 |
self.messages.append((QUEUE_MESSAGE_KEY_PREFIX % ('resource.diskspace',), account, QUEUE_INSTANCE_ID, 'diskspace', float(size), details)) |
1130 | 1130 |
|
1131 | 1131 |
def _report_object_change(self, user, account, path, details={}): |
1132 |
details.update({'user': user}) |
|
1132 | 1133 |
logger.debug("_report_object_change: %s %s %s %s", user, account, path, details) |
1133 |
details.update({'user': user, 'filename':path}) |
|
1134 | 1134 |
self.messages.append((QUEUE_MESSAGE_KEY_PREFIX % ('object',), account, QUEUE_INSTANCE_ID, 'object', path, details)) |
1135 | 1135 |
|
1136 | 1136 |
def _report_sharing_change(self, user, account, path, details={}): |
Also available in: Unified diff