I installed Mirantis OpenStack 7.0 with
1 Controller/Ceph Node
1 Compute/Ceph Node
1 Ceph Node
x3 replication factor
I sourced a file and executed
swift --debug list
and got the following output
DEBUG:keystoneclient.auth.identity.v2:Making authentication request to http://192.168.2.8:5000/v2.0/tokens
INFO:requests.packages.urllib3.connectionpool:Starting new HTTP connection (1): 192.168.2.8
DEBUG:requests.packages.urllib3.connectionpool:"POST /v2.0/tokens HTTP/1.1" 200 4665
DEBUG:iso8601.iso8601:Parsed 2015-11-29T18:59:57Z into {'tz_sign': None, 'second_fraction': None, 'hour': u'18', 'daydash': u'29', 'tz_hour': None, 'month': None, 'timezone': u'Z', 'second': u'57', 'tz_minute': None, 'year': u'2015', 'separator': u'T', 'monthdash': u'11', 'day': None, 'minute': u'59'} with default timezone <iso8601.iso8601.Utc object at 0x02F86F70>
DEBUG:iso8601.iso8601:Got u'2015' for 'year' with default None
DEBUG:iso8601.iso8601:Got u'11' for 'monthdash' with default 1
DEBUG:iso8601.iso8601:Got 11 for 'month' with default 11
DEBUG:iso8601.iso8601:Got u'29' for 'daydash' with default 1
DEBUG:iso8601.iso8601:Got 29 for 'day' with default 29
DEBUG:iso8601.iso8601:Got u'18' for 'hour' with default None
DEBUG:iso8601.iso8601:Got u'59' for 'minute' with default None
DEBUG:iso8601.iso8601:Got u'57' for 'second' with default None
INFO:requests.packages.urllib3.connectionpool:Starting new HTTP connection (1): 192.168.2.8
DEBUG:requests.packages.urllib3.connectionpool:"GET /v1/AUTH_42a6c9d5a69a4bf7a0279c329a50dbde?format=json HTTP/1.1" 400 83
INFO:swiftclient:REQ: curl -i http://192.168.2.8:8080/v1/AUTH_42a6c9d5a69a4bf7a0279c329a50dbde?format=json -X GET -H "X-Auth-Token: 37bc580e8d4044438e93cbbd9f98e9e5"
INFO:swiftclient:RESP STATUS: 400 Bad Request
INFO:swiftclient:RESP HEADERS: [('date', 'Sun, 29 Nov 2015 17:59:57 GMT'), ('accept-ranges', 'bytes'), ('content-type', 'application/xml'), ('content-length', '83'), ('server', 'Apache')]
INFO:swiftclient:RESP BODY: <?xml version="1.0" encoding="UTF-8"?><Error><Code>InvalidBucketName</Code></Error>
ERROR:swiftclient:Account GET failed: http://192.168.2.8:8080/v1/AUTH_42a6c9d5a69a4bf7a0279c329a50dbde?format=json 400 Bad Request [first 60 chars of response] <?xml version="1.0" encoding="UTF-8"?><Error><Code>InvalidBu
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\swiftclient\client.py", line 1302, in _retry
rv = func(self.url, self.token, *args, **kwargs)
File "C:\Python27\lib\site-packages\swiftclient\client.py", line 549, in get_account
http_response_content=body)
ClientException: Account GET failed: http://192.168.2.8:8080/v1/AUTH_42a6c9d5a69a4bf7a0279c329a50dbde?format=json 400 Bad Request [first 60 chars of response] <?xml version="1.0" encoding="UTF-8"?><Error><Code>InvalidBu
Account GET failed: http://192.168.2.8:8080/v1/AUTH_42a6c9d5a69a4bf7a0279c329a50dbde?format=json 400 Bad Request [first 60 chars of response] <?xml version="1.0" encoding="UTF-8"?><Error><Code>InvalidBu
Thus, it seems like I have an issue with an invalid bucket name. Given that I am simply trying to list the objects in the account I don't see how I could have an issue with a bucket name. Am I missing something here? Any help is appreciated. Thanks!
It looks that StorageURL is wrongly configured:
INFO:swiftclien t:REQ: curl -i http:// 192.168. 2.8:8080/ v1/AUTH_ 42a6c9d5a69a4bf 7a0279c329a50db de?format= json -X GET -H "X-Auth-Token: 37bc580e8d40444 38e93cbbd9f98e9 e5"
radosgw doesn't support the full URL schema from Swift.
In order to list an account the supplied URL should look like
the following one:
http:// 192.168. 2.8:8080/ swift/v1
Account ID will be extracted by radosgw basing only on token
provided in X-Auth-Token HTTP header, not from the URL itself.