# interpreted as representing official policies, either expressed
# or implied, of GRNET S.A.
-import logging
-import hashlib
+from xml.dom import minidom
from django.conf import settings
from django.http import HttpResponse
from django.utils import simplejson as json
from django.utils.http import parse_etags
from django.utils.encoding import smart_str
-from xml.dom import minidom
+from django.views.decorators.csrf import csrf_exempt
from pithos.lib.filter import parse_filters
SaveToBackendHandler, object_data_response, put_object_block, hashmap_md5, simple_list_response, api_method)
from pithos.backends.base import NotAllowedError, QuotaError
+import logging
+import hashlib
+
logger = logging.getLogger(__name__)
+@csrf_exempt
def top_demux(request):
if request.method == 'GET':
if getattr(request, 'user', None) is not None:
else:
return method_not_allowed(request)
+@csrf_exempt
def account_demux(request, v_account):
if request.method == 'HEAD':
return account_meta(request, v_account)
else:
return method_not_allowed(request)
+@csrf_exempt
def container_demux(request, v_account, v_container):
if request.method == 'HEAD':
return container_meta(request, v_account, v_container)
else:
return method_not_allowed(request)
+@csrf_exempt
def object_demux(request, v_account, v_container, v_object):
if request.method == 'HEAD':
return object_meta(request, v_account, v_container, v_object)
raise ItemNotFound('Container does not exist')
except ValueError:
raise BadRequest('Invalid sharing header')
- except AttributeError, e:
- raise Conflict(simple_list_response(request, e.data))
except QuotaError:
raise RequestEntityTooLarge('Quota exceeded')
if 'ETag' not in meta:
response = HttpResponse(status=201)
response['ETag'] = meta['ETag']
response['X-Object-Version'] = version_id
+ response.content = meta['ETag']
return response
@api_method('COPY', format_allowed=True)
raise ItemNotFound('Object does not exist')
except ValueError:
raise BadRequest('Invalid sharing header')
- except AttributeError, e:
- raise Conflict(simple_list_response(request, e.data))
if public is not None:
try:
request.backend.update_object_public(request.user_uniq, v_account,
raise ItemNotFound('Container does not exist')
except ValueError:
raise BadRequest('Invalid sharing header')
- except AttributeError, e:
- raise Conflict(simple_list_response(request, e.data))
except QuotaError:
raise RequestEntityTooLarge('Quota exceeded')
if public is not None: