Ceph Rados GW does not support bulk operations

Bug #1361036 reported by Timur Nurlygayanov
10
This bug affects 2 people
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/configuration.

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: 3a1f73301ba745d8a7dec5b141bdcfe8" -L "http://23.246.210.146:6780/swift/v1/bdcontainer1"
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":{"passwordCredentials":{"username": "admin",
"password": "admin"},"tenantName": "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://50.23.114.52:35357/v2.0/tokens | python -m json.tool | python -c 'import json,sys;obj=json.load(sys.stdin);print obj["access"]["token"]["id"]'`

# Create new container
curl -X PUT -i -H "X-Auth-Token: $AUTH_TOKEN" http://50.23.114.52:6780/swift/v1/my_container

# Upload two files to created container
curl -X PUT -d @file1.txt -i -H "X-Auth-Token: $AUTH_TOKEN" http://50.23.114.52:6780/swift/v1/my_container/file1.txt
curl -X PUT -d @file2.txt -i -H "X-Auth-Token: $AUTH_TOKEN" http://50.23.114.52:6780/swift/v1/my_container/file2.txt

# 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://50.23.114.52:6780/swift/v1/my_container"

# 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://50.23.114.52:6780/swift/v1/my_container"

Revision history for this message
Timur Nurlygayanov (tnurlygayanov) wrote :
Changed in fuel:
assignee: nobody → Dmitry Borodaenko (dborodaenko)
Revision history for this message
Timur Nurlygayanov (tnurlygayanov) wrote :

Dmitry, could you please investigate this issue?

Revision history for this message
Dmitry Borodaenko (angdraug) wrote :

Ceph RadosGW has no support for bulk operations, and it's not even listed anywhere on the roadmap.

I've reached out to Ceph developers on IRC:
http://irclogs.ceph.widodh.nl/index.php?date=2014-08-25

They weren't even aware that S3 and Swift APIs include bulk operations.

Changed in fuel:
status: Confirmed → Won't Fix
tags: added: release-notes
tags: added: qa-agree
Revision history for this message
Swami Reddy (swamireddy) wrote :

can any one confirm that - the reported issue fixed in ceph rgw??

Revision history for this message
Timur Nurlygayanov (tnurlygayanov) wrote :

Swami, looks like Ceph Rados GW doesn't support this feature.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.