Revision 61efb530 pithos/api/functions.py
b/pithos/api/functions.py | ||
---|---|---|
143 | 143 |
if not limit: |
144 | 144 |
limit = 10000 |
145 | 145 |
|
146 |
accounts = request.backend.list_accounts(request.user, marker, limit) |
|
146 |
accounts = request.backend.list_accounts(request.user_uniq, marker, limit)
|
|
147 | 147 |
|
148 | 148 |
if request.serialization == 'text': |
149 | 149 |
if len(accounts) == 0: |
... | ... | |
157 | 157 |
account_meta = [] |
158 | 158 |
for x in accounts: |
159 | 159 |
try: |
160 |
meta = request.backend.get_account_meta(request.user, x) |
|
161 |
groups = request.backend.get_account_groups(request.user, x) |
|
160 |
meta = request.backend.get_account_meta(request.user_uniq, x)
|
|
161 |
groups = request.backend.get_account_groups(request.user_uniq, x)
|
|
162 | 162 |
except NotAllowedError: |
163 | 163 |
raise Forbidden('Not allowed') |
164 | 164 |
else: |
... | ... | |
184 | 184 |
|
185 | 185 |
until = get_int_parameter(request.GET.get('until')) |
186 | 186 |
try: |
187 |
meta = request.backend.get_account_meta(request.user, v_account, until) |
|
188 |
groups = request.backend.get_account_groups(request.user, v_account) |
|
189 |
policy = request.backend.get_account_policy(request.user, v_account) |
|
187 |
meta = request.backend.get_account_meta(request.user_uniq, v_account, until)
|
|
188 |
groups = request.backend.get_account_groups(request.user_uniq, v_account)
|
|
189 |
policy = request.backend.get_account_policy(request.user_uniq, v_account)
|
|
190 | 190 |
except NotAllowedError: |
191 | 191 |
raise Forbidden('Not allowed') |
192 | 192 |
|
... | ... | |
209 | 209 |
replace = False |
210 | 210 |
if groups: |
211 | 211 |
try: |
212 |
request.backend.update_account_groups(request.user, v_account, |
|
212 |
request.backend.update_account_groups(request.user_uniq, v_account,
|
|
213 | 213 |
groups, replace) |
214 | 214 |
except NotAllowedError: |
215 | 215 |
raise Forbidden('Not allowed') |
... | ... | |
217 | 217 |
raise BadRequest('Invalid groups header') |
218 | 218 |
if meta or replace: |
219 | 219 |
try: |
220 |
request.backend.update_account_meta(request.user, v_account, meta, |
|
220 |
request.backend.update_account_meta(request.user_uniq, v_account, meta,
|
|
221 | 221 |
replace) |
222 | 222 |
except NotAllowedError: |
223 | 223 |
raise Forbidden('Not allowed') |
... | ... | |
233 | 233 |
|
234 | 234 |
until = get_int_parameter(request.GET.get('until')) |
235 | 235 |
try: |
236 |
meta = request.backend.get_account_meta(request.user, v_account, until) |
|
237 |
groups = request.backend.get_account_groups(request.user, v_account) |
|
238 |
policy = request.backend.get_account_policy(request.user, v_account) |
|
236 |
meta = request.backend.get_account_meta(request.user_uniq, v_account, until)
|
|
237 |
groups = request.backend.get_account_groups(request.user_uniq, v_account)
|
|
238 |
policy = request.backend.get_account_policy(request.user_uniq, v_account)
|
|
239 | 239 |
except NotAllowedError: |
240 | 240 |
raise Forbidden('Not allowed') |
241 | 241 |
|
... | ... | |
254 | 254 |
shared = True |
255 | 255 |
|
256 | 256 |
try: |
257 |
containers = request.backend.list_containers(request.user, v_account, |
|
257 |
containers = request.backend.list_containers(request.user_uniq, v_account,
|
|
258 | 258 |
marker, limit, shared, until) |
259 | 259 |
except NotAllowedError: |
260 | 260 |
raise Forbidden('Not allowed') |
... | ... | |
273 | 273 |
container_meta = [] |
274 | 274 |
for x in containers: |
275 | 275 |
try: |
276 |
meta = request.backend.get_container_meta(request.user, v_account, |
|
276 |
meta = request.backend.get_container_meta(request.user_uniq, v_account,
|
|
277 | 277 |
x, until) |
278 |
policy = request.backend.get_container_policy(request.user, |
|
278 |
policy = request.backend.get_container_policy(request.user_uniq,
|
|
279 | 279 |
v_account, x) |
280 | 280 |
except NotAllowedError: |
281 | 281 |
raise Forbidden('Not allowed') |
... | ... | |
305 | 305 |
|
306 | 306 |
until = get_int_parameter(request.GET.get('until')) |
307 | 307 |
try: |
308 |
meta = request.backend.get_container_meta(request.user, v_account, |
|
308 |
meta = request.backend.get_container_meta(request.user_uniq, v_account,
|
|
309 | 309 |
v_container, until) |
310 |
meta['object_meta'] = request.backend.list_object_meta(request.user, |
|
310 |
meta['object_meta'] = request.backend.list_object_meta(request.user_uniq,
|
|
311 | 311 |
v_account, v_container, until) |
312 |
policy = request.backend.get_container_policy(request.user, v_account, |
|
312 |
policy = request.backend.get_container_policy(request.user_uniq, v_account,
|
|
313 | 313 |
v_container) |
314 | 314 |
except NotAllowedError: |
315 | 315 |
raise Forbidden('Not allowed') |
... | ... | |
333 | 333 |
meta, policy = get_container_headers(request) |
334 | 334 |
|
335 | 335 |
try: |
336 |
request.backend.put_container(request.user, v_account, v_container, policy) |
|
336 |
request.backend.put_container(request.user_uniq, v_account, v_container, policy)
|
|
337 | 337 |
ret = 201 |
338 | 338 |
except NotAllowedError: |
339 | 339 |
raise Forbidden('Not allowed') |
... | ... | |
344 | 344 |
|
345 | 345 |
if ret == 202 and policy: |
346 | 346 |
try: |
347 |
request.backend.update_container_policy(request.user, v_account, |
|
347 |
request.backend.update_container_policy(request.user_uniq, v_account,
|
|
348 | 348 |
v_container, policy, replace=False) |
349 | 349 |
except NotAllowedError: |
350 | 350 |
raise Forbidden('Not allowed') |
... | ... | |
354 | 354 |
raise BadRequest('Invalid policy header') |
355 | 355 |
if meta: |
356 | 356 |
try: |
357 |
request.backend.update_container_meta(request.user, v_account, |
|
357 |
request.backend.update_container_meta(request.user_uniq, v_account,
|
|
358 | 358 |
v_container, meta, replace=False) |
359 | 359 |
except NotAllowedError: |
360 | 360 |
raise Forbidden('Not allowed') |
... | ... | |
377 | 377 |
replace = False |
378 | 378 |
if policy: |
379 | 379 |
try: |
380 |
request.backend.update_container_policy(request.user, v_account, |
|
380 |
request.backend.update_container_policy(request.user_uniq, v_account,
|
|
381 | 381 |
v_container, policy, replace) |
382 | 382 |
except NotAllowedError: |
383 | 383 |
raise Forbidden('Not allowed') |
... | ... | |
387 | 387 |
raise BadRequest('Invalid policy header') |
388 | 388 |
if meta or replace: |
389 | 389 |
try: |
390 |
request.backend.update_container_meta(request.user, v_account, |
|
390 |
request.backend.update_container_meta(request.user_uniq, v_account,
|
|
391 | 391 |
v_container, meta, replace) |
392 | 392 |
except NotAllowedError: |
393 | 393 |
raise Forbidden('Not allowed') |
... | ... | |
422 | 422 |
|
423 | 423 |
until = get_int_parameter(request.GET.get('until')) |
424 | 424 |
try: |
425 |
request.backend.delete_container(request.user, v_account, v_container, |
|
425 |
request.backend.delete_container(request.user_uniq, v_account, v_container,
|
|
426 | 426 |
until) |
427 | 427 |
except NotAllowedError: |
428 | 428 |
raise Forbidden('Not allowed') |
... | ... | |
442 | 442 |
|
443 | 443 |
until = get_int_parameter(request.GET.get('until')) |
444 | 444 |
try: |
445 |
meta = request.backend.get_container_meta(request.user, v_account, |
|
445 |
meta = request.backend.get_container_meta(request.user_uniq, v_account,
|
|
446 | 446 |
v_container, until) |
447 |
meta['object_meta'] = request.backend.list_object_meta(request.user, |
|
447 |
meta['object_meta'] = request.backend.list_object_meta(request.user_uniq,
|
|
448 | 448 |
v_account, v_container, until) |
449 |
policy = request.backend.get_container_policy(request.user, v_account, |
|
449 |
policy = request.backend.get_container_policy(request.user_uniq, v_account,
|
|
450 | 450 |
v_container) |
451 | 451 |
except NotAllowedError: |
452 | 452 |
raise Forbidden('Not allowed') |
... | ... | |
494 | 494 |
shared = True |
495 | 495 |
|
496 | 496 |
try: |
497 |
objects = request.backend.list_objects(request.user, v_account, |
|
497 |
objects = request.backend.list_objects(request.user_uniq, v_account,
|
|
498 | 498 |
v_container, prefix, delimiter, marker, |
499 | 499 |
limit, virtual, keys, shared, until) |
500 | 500 |
except NotAllowedError: |
... | ... | |
518 | 518 |
object_meta.append({'subdir': x[0]}) |
519 | 519 |
else: |
520 | 520 |
try: |
521 |
meta = request.backend.get_object_meta(request.user, v_account, |
|
521 |
meta = request.backend.get_object_meta(request.user_uniq, v_account,
|
|
522 | 522 |
v_container, x[0], x[1]) |
523 | 523 |
if until is None: |
524 | 524 |
permissions = request.backend.get_object_permissions( |
525 |
request.user, v_account, v_container, x[0]) |
|
526 |
public = request.backend.get_object_public(request.user, |
|
525 |
request.user_uniq, v_account, v_container, x[0])
|
|
526 |
public = request.backend.get_object_public(request.user_uniq,
|
|
527 | 527 |
v_account, v_container, x[0]) |
528 | 528 |
else: |
529 | 529 |
permissions = None |
... | ... | |
558 | 558 |
|
559 | 559 |
version = request.GET.get('version') |
560 | 560 |
try: |
561 |
meta = request.backend.get_object_meta(request.user, v_account, |
|
561 |
meta = request.backend.get_object_meta(request.user_uniq, v_account,
|
|
562 | 562 |
v_container, v_object, version) |
563 | 563 |
if version is None: |
564 |
permissions = request.backend.get_object_permissions(request.user, |
|
564 |
permissions = request.backend.get_object_permissions(request.user_uniq,
|
|
565 | 565 |
v_account, v_container, v_object) |
566 |
public = request.backend.get_object_public(request.user, v_account, |
|
566 |
public = request.backend.get_object_public(request.user_uniq, v_account,
|
|
567 | 567 |
v_container, v_object) |
568 | 568 |
else: |
569 | 569 |
permissions = None |
... | ... | |
611 | 611 |
raise BadRequest('No format specified for version list.') |
612 | 612 |
|
613 | 613 |
try: |
614 |
v = request.backend.list_versions(request.user, v_account, |
|
614 |
v = request.backend.list_versions(request.user_uniq, v_account,
|
|
615 | 615 |
v_container, v_object) |
616 | 616 |
except NotAllowedError: |
617 | 617 |
raise Forbidden('Not allowed') |
... | ... | |
627 | 627 |
return response |
628 | 628 |
|
629 | 629 |
try: |
630 |
meta = request.backend.get_object_meta(request.user, v_account, |
|
630 |
meta = request.backend.get_object_meta(request.user_uniq, v_account,
|
|
631 | 631 |
v_container, v_object, version) |
632 | 632 |
if version is None: |
633 |
permissions = request.backend.get_object_permissions(request.user, |
|
633 |
permissions = request.backend.get_object_permissions(request.user_uniq,
|
|
634 | 634 |
v_account, v_container, v_object) |
635 |
public = request.backend.get_object_public(request.user, v_account, |
|
635 |
public = request.backend.get_object_public(request.user_uniq, v_account,
|
|
636 | 636 |
v_container, v_object) |
637 | 637 |
else: |
638 | 638 |
permissions = None |
... | ... | |
662 | 662 |
if 'X-Object-Manifest' in meta: |
663 | 663 |
try: |
664 | 664 |
src_container, src_name = split_container_object_string('/' + meta['X-Object-Manifest']) |
665 |
objects = request.backend.list_objects(request.user, v_account, |
|
665 |
objects = request.backend.list_objects(request.user_uniq, v_account,
|
|
666 | 666 |
src_container, prefix=src_name, virtual=False) |
667 | 667 |
except NotAllowedError: |
668 | 668 |
raise Forbidden('Not allowed') |
... | ... | |
673 | 673 |
|
674 | 674 |
try: |
675 | 675 |
for x in objects: |
676 |
s, h = request.backend.get_object_hashmap(request.user, |
|
676 |
s, h = request.backend.get_object_hashmap(request.user_uniq,
|
|
677 | 677 |
v_account, src_container, x[0], x[1]) |
678 | 678 |
sizes.append(s) |
679 | 679 |
hashmaps.append(h) |
... | ... | |
685 | 685 |
raise ItemNotFound('Version does not exist') |
686 | 686 |
else: |
687 | 687 |
try: |
688 |
s, h = request.backend.get_object_hashmap(request.user, v_account, |
|
688 |
s, h = request.backend.get_object_hashmap(request.user_uniq, v_account,
|
|
689 | 689 |
v_container, v_object, version) |
690 | 690 |
sizes.append(s) |
691 | 691 |
hashmaps.append(h) |
... | ... | |
733 | 733 |
# Evaluate conditions. |
734 | 734 |
if request.META.get('HTTP_IF_MATCH') or request.META.get('HTTP_IF_NONE_MATCH'): |
735 | 735 |
try: |
736 |
meta = request.backend.get_object_meta(request.user, v_account, |
|
736 |
meta = request.backend.get_object_meta(request.user_uniq, v_account,
|
|
737 | 737 |
v_container, v_object) |
738 | 738 |
except NotAllowedError: |
739 | 739 |
raise Forbidden('Not allowed') |
... | ... | |
748 | 748 |
|
749 | 749 |
src_account = smart_unicode(request.META.get('HTTP_X_SOURCE_ACCOUNT'), strings_only=True) |
750 | 750 |
if not src_account: |
751 |
src_account = request.user |
|
751 |
src_account = request.user_uniq
|
|
752 | 752 |
if move_from: |
753 | 753 |
try: |
754 | 754 |
src_container, src_name = split_container_object_string(move_from) |
... | ... | |
825 | 825 |
raise UnprocessableEntity('Object ETag does not match') |
826 | 826 |
|
827 | 827 |
try: |
828 |
version_id = request.backend.update_object_hashmap(request.user, |
|
828 |
version_id = request.backend.update_object_hashmap(request.user_uniq,
|
|
829 | 829 |
v_account, v_container, v_object, size, hashmap, meta, |
830 | 830 |
True, permissions) |
831 | 831 |
except NotAllowedError: |
... | ... | |
842 | 842 |
raise RequestEntityTooLarge('Quota exceeded') |
843 | 843 |
if public is not None: |
844 | 844 |
try: |
845 |
request.backend.update_object_public(request.user, v_account, |
|
845 |
request.backend.update_object_public(request.user_uniq, v_account,
|
|
846 | 846 |
v_container, v_object, public) |
847 | 847 |
except NotAllowedError: |
848 | 848 |
raise Forbidden('Not allowed') |
... | ... | |
880 | 880 |
meta['hash'] = md5.hexdigest().lower() |
881 | 881 |
|
882 | 882 |
try: |
883 |
version_id = request.backend.update_object_hashmap(request.user, |
|
883 |
version_id = request.backend.update_object_hashmap(request.user_uniq,
|
|
884 | 884 |
v_account, v_container, v_object, size, hashmap, meta, True) |
885 | 885 |
except NotAllowedError: |
886 | 886 |
raise Forbidden('Not allowed') |
... | ... | |
904 | 904 |
|
905 | 905 |
dest_account = smart_unicode(request.META.get('HTTP_DESTINATION_ACCOUNT'), strings_only=True) |
906 | 906 |
if not dest_account: |
907 |
dest_account = request.user |
|
907 |
dest_account = request.user_uniq
|
|
908 | 908 |
dest_path = smart_unicode(request.META.get('HTTP_DESTINATION'), strings_only=True) |
909 | 909 |
if not dest_path: |
910 | 910 |
raise BadRequest('Missing Destination header') |
... | ... | |
917 | 917 |
if request.META.get('HTTP_IF_MATCH') or request.META.get('HTTP_IF_NONE_MATCH'): |
918 | 918 |
src_version = request.META.get('HTTP_X_SOURCE_VERSION') |
919 | 919 |
try: |
920 |
meta = request.backend.get_object_meta(request.user, v_account, |
|
920 |
meta = request.backend.get_object_meta(request.user_uniq, v_account,
|
|
921 | 921 |
v_container, v_object, src_version) |
922 | 922 |
except NotAllowedError: |
923 | 923 |
raise Forbidden('Not allowed') |
... | ... | |
941 | 941 |
|
942 | 942 |
dest_account = smart_unicode(request.META.get('HTTP_DESTINATION_ACCOUNT'), strings_only=True) |
943 | 943 |
if not dest_account: |
944 |
dest_account = request.user |
|
944 |
dest_account = request.user_uniq
|
|
945 | 945 |
dest_path = smart_unicode(request.META.get('HTTP_DESTINATION'), strings_only=True) |
946 | 946 |
if not dest_path: |
947 | 947 |
raise BadRequest('Missing Destination header') |
... | ... | |
953 | 953 |
# Evaluate conditions. |
954 | 954 |
if request.META.get('HTTP_IF_MATCH') or request.META.get('HTTP_IF_NONE_MATCH'): |
955 | 955 |
try: |
956 |
meta = request.backend.get_object_meta(request.user, v_account, |
|
956 |
meta = request.backend.get_object_meta(request.user_uniq, v_account,
|
|
957 | 957 |
v_container, v_object) |
958 | 958 |
except NotAllowedError: |
959 | 959 |
raise Forbidden('Not allowed') |
... | ... | |
981 | 981 |
del(meta['Content-Type']) # Do not allow changing the Content-Type. |
982 | 982 |
|
983 | 983 |
try: |
984 |
prev_meta = request.backend.get_object_meta(request.user, v_account, |
|
984 |
prev_meta = request.backend.get_object_meta(request.user_uniq, v_account,
|
|
985 | 985 |
v_container, v_object) |
986 | 986 |
except NotAllowedError: |
987 | 987 |
raise Forbidden('Not allowed') |
... | ... | |
1009 | 1009 |
# Do permissions first, as it may fail easier. |
1010 | 1010 |
if permissions is not None: |
1011 | 1011 |
try: |
1012 |
request.backend.update_object_permissions(request.user, |
|
1012 |
request.backend.update_object_permissions(request.user_uniq,
|
|
1013 | 1013 |
v_account, v_container, v_object, permissions) |
1014 | 1014 |
except NotAllowedError: |
1015 | 1015 |
raise Forbidden('Not allowed') |
... | ... | |
1021 | 1021 |
raise Conflict('\n'.join(e.data) + '\n') |
1022 | 1022 |
if public is not None: |
1023 | 1023 |
try: |
1024 |
request.backend.update_object_public(request.user, v_account, |
|
1024 |
request.backend.update_object_public(request.user_uniq, v_account,
|
|
1025 | 1025 |
v_container, v_object, public) |
1026 | 1026 |
except NotAllowedError: |
1027 | 1027 |
raise Forbidden('Not allowed') |
... | ... | |
1029 | 1029 |
raise ItemNotFound('Object does not exist') |
1030 | 1030 |
if meta or replace: |
1031 | 1031 |
try: |
1032 |
version_id = request.backend.update_object_meta(request.user, |
|
1032 |
version_id = request.backend.update_object_meta(request.user_uniq,
|
|
1033 | 1033 |
v_account, v_container, v_object, meta, replace) |
1034 | 1034 |
except NotAllowedError: |
1035 | 1035 |
raise Forbidden('Not allowed') |
... | ... | |
1050 | 1050 |
raise RangeNotSatisfiable('Invalid Content-Range header') |
1051 | 1051 |
|
1052 | 1052 |
try: |
1053 |
size, hashmap = request.backend.get_object_hashmap(request.user, |
|
1053 |
size, hashmap = request.backend.get_object_hashmap(request.user_uniq,
|
|
1054 | 1054 |
v_account, v_container, v_object) |
1055 | 1055 |
except NotAllowedError: |
1056 | 1056 |
raise Forbidden('Not allowed') |
... | ... | |
1065 | 1065 |
if src_object: |
1066 | 1066 |
src_account = smart_unicode(request.META.get('HTTP_X_SOURCE_ACCOUNT'), strings_only=True) |
1067 | 1067 |
if not src_account: |
1068 |
src_account = request.user |
|
1068 |
src_account = request.user_uniq
|
|
1069 | 1069 |
src_container, src_name = split_container_object_string(src_object) |
1070 | 1070 |
src_container = smart_unicode(src_container, strings_only=True) |
1071 | 1071 |
src_name = smart_unicode(src_name, strings_only=True) |
1072 | 1072 |
src_version = request.META.get('HTTP_X_SOURCE_VERSION') |
1073 | 1073 |
try: |
1074 |
src_size, src_hashmap = request.backend.get_object_hashmap(request.user, |
|
1074 |
src_size, src_hashmap = request.backend.get_object_hashmap(request.user_uniq,
|
|
1075 | 1075 |
src_account, src_container, src_name, src_version) |
1076 | 1076 |
except NotAllowedError: |
1077 | 1077 |
raise Forbidden('Not allowed') |
... | ... | |
1156 | 1156 |
hashmap = hashmap[:(int((size - 1) / request.backend.block_size) + 1)] |
1157 | 1157 |
meta.update({'hash': hashmap_hash(request, hashmap)}) # Update ETag. |
1158 | 1158 |
try: |
1159 |
version_id = request.backend.update_object_hashmap(request.user, |
|
1159 |
version_id = request.backend.update_object_hashmap(request.user_uniq,
|
|
1160 | 1160 |
v_account, v_container, v_object, size, hashmap, meta, |
1161 | 1161 |
replace, permissions) |
1162 | 1162 |
except NotAllowedError: |
... | ... | |
1171 | 1171 |
raise RequestEntityTooLarge('Quota exceeded') |
1172 | 1172 |
if public is not None: |
1173 | 1173 |
try: |
1174 |
request.backend.update_object_public(request.user, v_account, |
|
1174 |
request.backend.update_object_public(request.user_uniq, v_account,
|
|
1175 | 1175 |
v_container, v_object, public) |
1176 | 1176 |
except NotAllowedError: |
1177 | 1177 |
raise Forbidden('Not allowed') |
... | ... | |
1193 | 1193 |
|
1194 | 1194 |
until = get_int_parameter(request.GET.get('until')) |
1195 | 1195 |
try: |
1196 |
request.backend.delete_object(request.user, v_account, v_container, |
|
1196 |
request.backend.delete_object(request.user_uniq, v_account, v_container,
|
|
1197 | 1197 |
v_object, until) |
1198 | 1198 |
except NotAllowedError: |
1199 | 1199 |
raise Forbidden('Not allowed') |
Also available in: Unified diff