Revision d47565d8 snf-pithos-app/pithos/api/util.py

b/snf-pithos-app/pithos/api/util.py
1088 1088
            if len(args) > 2 and len(args[2]) > 1024:
1089 1089
                raise faults.BadRequest('Object name too large.')
1090 1090

  
1091
            with get_backend() as backend:
1091
            success_status = False
1092
            try:
1092 1093
                # Add a PithosBackend as attribute of the request object
1093
                request.backend = backend
1094
                request.backend.lock_container_path = lock_container_path
1094
                request.backend = get_backend()
1095
                request.backend.pre_exec(lock_container_path)
1095 1096

  
1096 1097
                # Many API method expect thet X-Auth-Token in request,token
1097 1098
                request.token = request.x_auth_token
......
1099 1100
                response = func(request, *args, **kwargs)
1100 1101
                update_response_headers(request, response)
1101 1102

  
1103
                success_status = True
1102 1104
                return response
1105
            finally:
1106
                # Always close PithosBackend connection
1107
                if getattr(request, "backend", None) is not None:
1108
                    request.backend.post_exec(success_status)
1109
                    request.backend.close()
1103 1110
        return wrapper
1104 1111
    return decorator
1105 1112

  

Also available in: Unified diff