Re: Rados Gateway and Swift create containers/buckets that cannot be opened

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 08/10/14 18:46, Mark Kirkwood wrote:
I have a recent ceph (0.85-1109-g73d7be0) configured to use keystone for
authentication:

$ cat ceph.conf
...
[client.radosgw.gateway]
host = ceph4
keyring = /etc/ceph/ceph.rados.gateway.keyring
rgw_socket_path = /var/run/ceph/$name.sock
log_file = /var/log/ceph/radosgw.log
rgw_data = /var/lib/ceph/radosgw/$cluster-$id
rgw_dns_name = ceph4
rgw print continue = false
debug rgw = 20
rgw keystone url = http://stack1:35357
rgw keystone admin token = tokentoken
rgw keystone accepted roles = admin Member _member_
rgw keystone token cache size = 500
rgw keystone revocation interval = 500
rgw s3 auth use keystone = true
nss db path = /var/ceph/nss/

So ceph4 is the rgw and stack1 is a devstack setup with keystone
endpoints for S3 and Swift pointing to the ceph4 host:

$ keystone endpoint-list
...
| b884053b2c6f4217ad643c25c001217b | RegionOne |
http://ceph4                 |                  http://ceph4
|                  http://ceph4                 |
be62ab8531d143a7bce5ae6020d13918 |
| d7a8338dd5684f5d8dfde406b0780462 | RegionOne |
http://ceph4/swift/v1/            |             http://ceph4/swift/v1/
           |             http://ceph4/swift/v1/            |
c2d4550d71e94a6a966af810c9ad0568 |

When I create some buckets and keys using the S3 api (Boto) then I can
list them and their contents (see attached)

demo-bucket0    2014-10-08T05:02:03.000Z
     hello.txt    12    2014-10-08T05:02:06.000Z

When I try a similar thing via swift:
$ swift upload container0 file
Object PUT failed: http://ceph4/swift/v1/container0/local.conf 404 Not
Found   NoSuchBucket

Hmm - using swift to list containers shows:

$ swift list
/container0
demo-bucket0

So a new bucket has been created, but note a leading '/' has been added
to the name. Now retrying my simple s3 list gets:

/container0    2014-10-08T05:02:19.000Z
Traceback (most recent call last):
   File "./s3-test-ls.py", line 24, in <module>
     for key in bucket.list():
   File
"/usr/lib/python2.7/dist-packages/boto/s3/bucketlistresultset.py", line
30, in bucket_lister
     delimiter=delimiter, headers=headers)
   File "/usr/lib/python2.7/dist-packages/boto/s3/bucket.py", line 392,
in get_all_keys
     '', headers, **params)
   File "/usr/lib/python2.7/dist-packages/boto/s3/bucket.py", line 343,
in _get_all
     response.status, response.reason, body)
boto.exception.S3ResponseError: S3ResponseError: 404 Not Found
<?xml version="1.0"
encoding="UTF-8"?><Error><Code>NoSuchBucket</Code></Error>


I'm guessing the leading '/' is the culprit.



Well it certainly is. I wondered if the issue might be the apache2 fastcgi modules, so replaced it with the ceph one from http://gitbuilder.ceph.com/libapache-mod-fastcgi-deb-trusty-x86_64-basic/ref/master/ . No difference.

The light dawned. My swift endpoint urls all have trailing '/' on them, viz:

| d7a8338dd5684f5d8dfde406b0780462 | RegionOne | http://ceph4/swift/v1/ | http://ceph4/swift/v1/ | http://ceph4/swift/v1/ | c2d4550d71e94a6a966af810c9ad0568 |

Changing  to:

| d7a8338dd5684f5d8dfde406b0780462 | RegionOne | http://ceph4/swift/v1 | http://ceph4/swift/v1 | http://ceph4/swift/v1 | c2d4550d71e94a6a966af810c9ad0568 |


...and redoing a swift upload:
$ swift upload container1 stackrc
stackrc
$ swift list
/container0
container1

Excellent, how about listing the container:

$ swift list container1
stackrc

Ok, so looking good now. Checking the current docs http://docs.ceph.com/docs/master/radosgw/keystone/ they do *not* have the trailing '/'s, so unless I was looking at some older ones that *did* have 'em ...I managed to typo the url's myself. Hmm. Unfortunate.

Regards

Mark


_______________________________________________
ceph-users mailing list
ceph-users@xxxxxxxxxxxxxx
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com




[Index of Archives]     [Information on CEPH]     [Linux Filesystem Development]     [Ceph Development]     [Ceph Large]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [xfs]


  Powered by Linux