Revision 5635f9ef pithos/api/functions.py

b/pithos/api/functions.py
1
# Copyright 2011 GRNET S.A. All rights reserved.
2
# 
3
# Redistribution and use in source and binary forms, with or
4
# without modification, are permitted provided that the following
5
# conditions are met:
6
# 
7
#   1. Redistributions of source code must retain the above
8
#      copyright notice, this list of conditions and the following
9
#      disclaimer.
10
# 
11
#   2. Redistributions in binary form must reproduce the above
12
#      copyright notice, this list of conditions and the following
13
#      disclaimer in the documentation and/or other materials
14
#      provided with the distribution.
15
# 
16
# THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
17
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
20
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
23
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
24
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
26
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27
# POSSIBILITY OF SUCH DAMAGE.
28
# 
29
# The views and conclusions contained in the software and
30
# documentation are those of the authors and should not be
31
# interpreted as representing official policies, either expressed
32
# or implied, of GRNET S.A.
33

  
1 34
import os
2 35
import logging
3 36
import hashlib
......
540 573
    if not ranges:
541 574
        return HttpResponse(status=202)
542 575
    
576
#     # Need Content-Type and optional Transfer-Encoding.
577
#     content_length = -1
578
#     if request.META.get('HTTP_TRANSFER_ENCODING') != 'chunked':
579
#         content_length = get_content_length(request)
580
#     # Use BadRequest here, even if the API says otherwise for PUT.
581
#     if not content_type:
582
#         raise BadRequest('Missing Content-Type header')
583
#     
584
#     if not prev_meta:
585
#         try:
586
#             prev_meta = backend.get_object_meta(request.user, v_container, v_object)
587
#         except NameError:
588
#             raise ItemNotFound('Object does not exist')
589
#     size = prev_meta['bytes']
590
#     offset, length, total = ranges
591
#     if offset is None:
592
#         offset = size
593
#     if length is None:
594
#         length = content_length # Nevermind the error.
595
#     if total is not None and (total != size or offset >= size or (length > 0 and offset + length >= size)):
596
#         raise RangeNotSatisfiable('Supplied range will change provided object limits')
597
#     
598
#     sock = raw_input_socket(request)
599
#     for data in socket_read_iterator(sock, length):
600
#         # TODO: Raise 408 (Request Timeout) if this takes too long.
601
#         # TODO: Raise 499 (Client Disconnect) if a length is defined and we stop before getting this much data.
602
#         try:
603
#             backend.update_object(request.user, v_container, v_object, data, offset)
604
#         except NameError:
605
#             raise ItemNotFound('Container does not exist')
606
#         offset += len(data)
607
    
543 608
    return HttpResponse(status=202)
544 609

  
545 610
@api_method('DELETE')

Also available in: Unified diff