Revision 371d907a pithos/api/functions.py
b/pithos/api/functions.py | ||
---|---|---|
326 | 326 |
try: |
327 | 327 |
meta = request.backend.get_container_meta(request.user_uniq, v_account, |
328 | 328 |
v_container, 'pithos', until) |
329 |
meta['object_meta'] = request.backend.list_object_meta(request.user_uniq,
|
|
329 |
meta['object_meta'] = request.backend.list_container_meta(request.user_uniq,
|
|
330 | 330 |
v_account, v_container, 'pithos', until) |
331 | 331 |
policy = request.backend.get_container_policy(request.user_uniq, v_account, |
332 | 332 |
v_container) |
... | ... | |
463 | 463 |
try: |
464 | 464 |
meta = request.backend.get_container_meta(request.user_uniq, v_account, |
465 | 465 |
v_container, 'pithos', until) |
466 |
meta['object_meta'] = request.backend.list_object_meta(request.user_uniq,
|
|
466 |
meta['object_meta'] = request.backend.list_container_meta(request.user_uniq,
|
|
467 | 467 |
v_account, v_container, 'pithos', until) |
468 | 468 |
policy = request.backend.get_container_policy(request.user_uniq, v_account, |
469 | 469 |
v_container) |
... | ... | |
515 | 515 |
if 'shared' in request.GET: |
516 | 516 |
shared = True |
517 | 517 |
|
518 |
try: |
|
519 |
objects = request.backend.list_objects(request.user_uniq, v_account, |
|
520 |
v_container, prefix, delimiter, marker, |
|
521 |
limit, virtual, 'pithos', keys, shared, until) |
|
522 |
except NotAllowedError: |
|
523 |
raise Forbidden('Not allowed') |
|
524 |
except NameError: |
|
525 |
raise ItemNotFound('Container does not exist') |
|
526 |
|
|
527 | 518 |
if request.serialization == 'text': |
519 |
try: |
|
520 |
objects = request.backend.list_objects(request.user_uniq, v_account, |
|
521 |
v_container, prefix, delimiter, marker, |
|
522 |
limit, virtual, 'pithos', keys, shared, until) |
|
523 |
except NotAllowedError: |
|
524 |
raise Forbidden('Not allowed') |
|
525 |
except NameError: |
|
526 |
raise ItemNotFound('Container does not exist') |
|
527 |
|
|
528 | 528 |
if len(objects) == 0: |
529 | 529 |
# The cloudfiles python bindings expect 200 if json/xml. |
530 | 530 |
response.status_code = 204 |
... | ... | |
533 | 533 |
response.content = '\n'.join([x[0] for x in objects]) + '\n' |
534 | 534 |
return response |
535 | 535 |
|
536 |
try: |
|
537 |
objects = request.backend.list_object_meta(request.user_uniq, v_account, |
|
538 |
v_container, prefix, delimiter, marker, |
|
539 |
limit, virtual, 'pithos', keys, shared, until) |
|
540 |
except NotAllowedError: |
|
541 |
raise Forbidden('Not allowed') |
|
542 |
except NameError: |
|
543 |
raise ItemNotFound('Container does not exist') |
|
544 |
|
|
545 |
# object_meta = [] |
|
546 |
# for x in objects: |
|
547 |
# if x[1] is None: |
|
548 |
# # Virtual objects/directories. |
|
549 |
# object_meta.append({'subdir': x[0]}) |
|
550 |
# else: |
|
551 |
# try: |
|
552 |
# meta = request.backend.get_object_meta(request.user_uniq, v_account, |
|
553 |
# v_container, x[0], 'pithos', x[1]) |
|
554 |
# if until is None: |
|
555 |
# permissions = request.backend.get_object_permissions( |
|
556 |
# request.user_uniq, v_account, v_container, x[0]) |
|
557 |
# public = request.backend.get_object_public(request.user_uniq, |
|
558 |
# v_account, v_container, x[0]) |
|
559 |
# else: |
|
560 |
# permissions = None |
|
561 |
# public = None |
|
562 |
# except NotAllowedError: |
|
563 |
# raise Forbidden('Not allowed') |
|
564 |
# except NameError: |
|
565 |
# pass |
|
566 |
# else: |
|
567 |
# rename_meta_key(meta, 'hash', 'x_object_hash') # Will be replaced by checksum. |
|
568 |
# rename_meta_key(meta, 'checksum', 'hash') |
|
569 |
# rename_meta_key(meta, 'type', 'content_type') |
|
570 |
# rename_meta_key(meta, 'uuid', 'x_object_uuid') |
|
571 |
# rename_meta_key(meta, 'modified', 'last_modified') |
|
572 |
# rename_meta_key(meta, 'modified_by', 'x_object_modified_by') |
|
573 |
# rename_meta_key(meta, 'version', 'x_object_version') |
|
574 |
# rename_meta_key(meta, 'version_timestamp', 'x_object_version_timestamp') |
|
575 |
# m = dict([(k[14:], v) for k, v in meta.iteritems() if k.startswith('X-Object-Meta-')]) |
|
576 |
# for k in m: |
|
577 |
# del(meta['X-Object-Meta-' + k]) |
|
578 |
# if m: |
|
579 |
# meta['X-Object-Meta'] = printable_header_dict(m) |
|
580 |
# update_sharing_meta(request, permissions, v_account, v_container, x[0], meta) |
|
581 |
# update_public_meta(public, meta) |
|
582 |
# object_meta.append(printable_header_dict(meta)) |
|
583 |
# if request.serialization == 'xml': |
|
584 |
# data = render_to_string('objects.xml', {'container': v_container, 'objects': object_meta}) |
|
585 |
# elif request.serialization == 'json': |
|
586 |
# data = json.dumps(object_meta, default=json_encode_decimal) |
|
587 |
# response.status_code = 200 |
|
588 |
# response.content = data |
|
589 |
# return response |
|
590 |
|
|
536 | 591 |
object_meta = [] |
537 |
for x in objects:
|
|
538 |
if x[1] is None:
|
|
592 |
for meta in objects:
|
|
593 |
if len(meta) == 1:
|
|
539 | 594 |
# Virtual objects/directories. |
540 |
object_meta.append({'subdir': x[0]})
|
|
595 |
object_meta.append(meta)
|
|
541 | 596 |
else: |
542 |
try: |
|
543 |
meta = request.backend.get_object_meta(request.user_uniq, v_account, |
|
544 |
v_container, x[0], 'pithos', x[1]) |
|
545 |
if until is None: |
|
546 |
permissions = request.backend.get_object_permissions( |
|
547 |
request.user_uniq, v_account, v_container, x[0]) |
|
548 |
public = request.backend.get_object_public(request.user_uniq, |
|
549 |
v_account, v_container, x[0]) |
|
550 |
else: |
|
551 |
permissions = None |
|
552 |
public = None |
|
553 |
except NotAllowedError: |
|
554 |
raise Forbidden('Not allowed') |
|
555 |
except NameError: |
|
556 |
pass |
|
597 |
rename_meta_key(meta, 'hash', 'x_object_hash') # Will be replaced by checksum. |
|
598 |
rename_meta_key(meta, 'checksum', 'hash') |
|
599 |
rename_meta_key(meta, 'type', 'content_type') |
|
600 |
rename_meta_key(meta, 'uuid', 'x_object_uuid') |
|
601 |
if until is not None and 'modified' in meta: |
|
602 |
del(meta['modified']) |
|
557 | 603 |
else: |
558 |
rename_meta_key(meta, 'hash', 'x_object_hash') # Will be replaced by checksum. |
|
559 |
rename_meta_key(meta, 'checksum', 'hash') |
|
560 |
rename_meta_key(meta, 'type', 'content_type') |
|
561 |
rename_meta_key(meta, 'uuid', 'x_object_uuid') |
|
562 | 604 |
rename_meta_key(meta, 'modified', 'last_modified') |
563 |
rename_meta_key(meta, 'modified_by', 'x_object_modified_by') |
|
564 |
rename_meta_key(meta, 'version', 'x_object_version') |
|
565 |
rename_meta_key(meta, 'version_timestamp', 'x_object_version_timestamp') |
|
566 |
m = dict([(k[14:], v) for k, v in meta.iteritems() if k.startswith('X-Object-Meta-')]) |
|
567 |
for k in m: |
|
568 |
del(meta['X-Object-Meta-' + k]) |
|
569 |
if m: |
|
570 |
meta['X-Object-Meta'] = printable_header_dict(m) |
|
571 |
update_sharing_meta(request, permissions, v_account, v_container, x[0], meta) |
|
572 |
update_public_meta(public, meta) |
|
573 |
object_meta.append(printable_header_dict(meta)) |
|
605 |
rename_meta_key(meta, 'modified_by', 'x_object_modified_by') |
|
606 |
rename_meta_key(meta, 'version', 'x_object_version') |
|
607 |
rename_meta_key(meta, 'version_timestamp', 'x_object_version_timestamp') |
|
608 |
object_meta.append(printable_header_dict(meta)) |
|
574 | 609 |
if request.serialization == 'xml': |
575 | 610 |
data = render_to_string('objects.xml', {'container': v_container, 'objects': object_meta}) |
576 | 611 |
elif request.serialization == 'json': |
Also available in: Unified diff