openstack team mailing list archive
-
openstack team
-
Mailing list archive
-
Message #02913
Swift+Keystone error
Trying to get a Swift+Keystone dev environment setup and having some issues.
I'm running Swift 1.4.2 and have it pointing at Keystone 0.9 (on the same
VM) according to the instructions at https://github.com/rackspace/keystone,
however, Swift is reporting 500s from Keystone (Auth GET failed:
http://127.0.0.1:8080/v1.0 500 Internal Server Error) and the Keystone log
says:
eventlet.wsgi.server: DEBUG Traceback (most recent call last):
File "/usr/lib/python2.6/dist-packages/eventlet/wsgi.py", line 336, in
handle_one_response
result = self.application(self.environ, start_response)
File "/home/tres/nova/keystone/keystone/frontends/legacy_token_auth.py",
line 74, in __call__
new_request.body = json.dumps(params)
File "/usr/lib/pymodules/python2.6/webob/request.py", line 1173, in
__setattr__
object.__setattr__(self, attr, value)
File "/usr/lib/pymodules/python2.6/webob/request.py", line 498, in
_body__set
raise ValueError("%s requests cannot have body" % self.method)
ValueError: GET requests cannot have body
(this was specifically when trying "swift -A http://127.0.0.1:8080/v1.0 -U
joeuser -K secrete post container"
Here's some relevant configs if it helps:
-- keystone.conf --
[DEFAULT]
# Show more verbose log output (sets INFO log level output)
verbose = True
# Show debugging output in logs (sets DEBUG log level output)
debug = True
# Which backend store should Keystone use by default.
# Default: 'sqlite'
# Available choices are 'sqlite' [future will include LDAP, PAM, etc]
default_store = sqlite
# Log to this file. Make sure you do not set the same log
# file for both the API and registry servers!
#log_file = /var/log/keystone.log
log_file = keystone.log
# SQLAlchemy connection string for the reference implementation
# registry server. Any valid SQLAlchemy connection string is fine.
# See:
http://www.sqlalchemy.org/docs/05/reference/sqlalchemy/connections.html#sqlalchemy.create_engine
sql_connection = sqlite:///../keystone/keystone.db
# Period in seconds after which SQLAlchemy should reestablish its connection
# to the database.
sql_idle_timeout = 30
#Dictionary Maps every service to a header.Missing services would get header
X_(SERVICE_NAME) Key => Service Name, Value => Header Name
service-header-mappings = {'nova' : 'X-Server-Management-Url' , 'swift' :
'X-Storage-Url', 'cdn' : 'X-CDN-Management-Url'}
# Address to bind the API server
#TODO Properties defined within app not available via pipeline.Till then
server props stay outside.
server_bind_host = 0.0.0.0
# Port the bind the API server to
server_bind_port = 8080
[app:admin]
paste.app_factory = keystone.server:admin_app_factory
# Address to bind the Admin API server
bind_host = 0.0.0.0
# Port the bind the Admin API server to
bind_port = 8081
[app:server]
paste.app_factory = keystone.server:app_factory
[pipeline:keystone-legacy-auth]
pipeline =
legacy_auth
server
[filter:legacy_auth]
paste.filter_factory = keystone.frontends.legacy_token_auth:filter_factory
-- proxy-server.conf --
[DEFAULT]
bind_port = 8888
user = root
log_facility = LOG_LOCAL1
[pipeline:main]
pipeline = catch_errors healthcheck cache keystone proxy-server
[app:proxy-server]
use = egg:swift#proxy
allow_account_management = true
[filter:keystone]
use = egg:keystone#tokenauth
auth_protocol = http
auth_host = 127.0.0.1
auth_port = 8081
admin_token = 999888777666
delay_auth_decision = 0
service_protocol = http
service_host = 127.0.0.1
service_port = 8100
service_pass = dTpw
[filter:healthcheck]
use = egg:swift#healthcheck
[filter:cache]
use = egg:swift#memcache
[filter:catch_errors]
use = egg:swift#catch_errors
Follow ups