Ceph Rados GW does not support bulk operations
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Fuel for OpenStack |
Won't Fix
|
High
|
Dmitry Borodaenko |
Bug Description
Environment:
This issue reproduced on Fuel 4.1.1 and Fuel 5.x versions, in HA and nonHA mode.
When we use Swift without Rados GW, we can perform Bulk Delete operation, but with enabled Ceph Rados GW we can't use this operation. Looks like this is an issue in Rados GW implementation/
Steps To Reproduce:
1. Create environment with Ceph Rados GW (for Swift API via Ceph).
2. Deploy this environment.
3. Login to controller node
4. Send API requests to authorize, create 1 swift container, upload two files in this container and delete this container.
*Observed Result:*
Swift API returns response with 409 status code and error 'BucketNotEmpty':
$ curl -X DELETE -d "bulk-delete=true" -i -H "X-Auth-Token: 3a1f73301ba745d
HTTP/1.1 409 Conflict
Date: Thu, 21 Aug 2014 17:56:19 GMT
Server: Apache/2.2.15 (CentOS)
Accept-Ranges: bytes
Content-Length: 14
Connection: close
Content-Type: text/plain; charset=utf-8
BucketNotEmpty
_______
Example:
# ls
credentials.json
file1.txt
file2.txt
# cat credentials.json
{"auth"
"password": "admin"
####### Start Example Script
# Get Auth Token ID from keystone (you need to have valid credentials in file credentials.json)
# and also edit Keystone endpoint accordingly to your environment:
export AUTH_TOKEN=`curl -d @credentials.json -H "Content-Type: application/json" http://
# Create new container
curl -X PUT -i -H "X-Auth-Token: $AUTH_TOKEN" http://
# Upload two files to created container
curl -X PUT -d @file1.txt -i -H "X-Auth-Token: $AUTH_TOKEN" http://
curl -X PUT -d @file2.txt -i -H "X-Auth-Token: $AUTH_TOKEN" http://
# Delete this container with two files in one request.
# we need to use key -d "bulk-delete=true" to allow Bulk Delete operation:
curl -X DELETE -d "bulk-delete=true" -i -H "X-Auth-Token: $AUTH_TOKEN" -L "http://
# or we can use POST method with the same arguments:
curl -X POST -d "bulk-delete=true" -i -H "X-Auth-Token: $AUTH_TOKEN" -L "http://
Dmitry, could you please investigate this issue?