Revision 263d27d9 snf-pithos-app/pithos/api/functions.py

b/snf-pithos-app/pithos/api/functions.py
983 983
    #                       badRequest (400)
984 984
    #                       requestentitytoolarge (413)
985 985

  
986
    # lock container path for concurrent updates
987
    request.backend.lock_path('/'.join([v_account, v_container]))
988

  
986 989
    # Evaluate conditions.
987 990
    if (request.META.get('HTTP_IF_MATCH')
988 991
            or request.META.get('HTTP_IF_NONE_MATCH')):
......
1157 1160
        raise faults.BadRequest('Missing X-Object-Data field')
1158 1161
    file = request.FILES['X-Object-Data']
1159 1162

  
1163
    # lock container path for concurrent updates
1164
    request.backend.lock_path('/'.join([v_account, v_container]))
1165

  
1160 1166
    checksum = file.etag
1161 1167
    try:
1162 1168
        version_id = \
......
1200 1206
    except ValueError:
1201 1207
        raise faults.BadRequest('Invalid Destination header')
1202 1208

  
1209
    # lock container path for concurrent updates
1210
    request.backend.lock_path('/'.join([v_account, v_container]))
1211

  
1203 1212
    # Evaluate conditions.
1204 1213
    if (request.META.get('HTTP_IF_MATCH')
1205 1214
            or request.META.get('HTTP_IF_NONE_MATCH')):
......
1244 1253
    except ValueError:
1245 1254
        raise faults.BadRequest('Invalid Destination header')
1246 1255

  
1256
    # lock container path for concurrent updates
1257
    request.backend.lock_path('/'.join([v_account, v_container]))
1258

  
1247 1259
    # Evaluate conditions.
1248 1260
    if (request.META.get('HTTP_IF_MATCH')
1249 1261
            or request.META.get('HTTP_IF_NONE_MATCH')):
......
1278 1290

  
1279 1291
    content_type, meta, permissions, public = get_object_headers(request)
1280 1292

  
1293
    # lock container path for concurrent updates
1294
    request.backend.lock_path('/'.join([v_account, v_container]))
1295

  
1281 1296
    try:
1282 1297
        prev_meta = request.backend.get_object_meta(
1283 1298
            request.user_uniq, v_account,
......
1504 1519
    until = get_int_parameter(request.GET.get('until'))
1505 1520
    delimiter = request.GET.get('delimiter')
1506 1521

  
1522
    # lock container path for concurrent updates
1523
    request.backend.lock_path('/'.join([v_account, v_container]))
1524

  
1507 1525
    try:
1508 1526
        request.backend.delete_object(
1509 1527
            request.user_uniq, v_account, v_container,

Also available in: Unified diff