PUT /users/ADMIN/OS-KSADM/password - AttributeError
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Identity (keystone) |
In Progress
|
Low
|
Dolph Mathews |
Bug Description
Using Essex from source last updated March 13th:
2012-03-13 14:37:38 DEBUG [root] *******
2012-03-13 14:37:38 DEBUG [root] SCRIPT_NAME = /v2.0
2012-03-13 14:37:38 DEBUG [root] webob.adhoc_attrs = {'response': <Response at 0x3784bd0 200 OK>}
2012-03-13 14:37:38 DEBUG [root] REQUEST_METHOD = PUT
2012-03-13 14:37:38 DEBUG [root] PATH_INFO = /users/
2012-03-13 14:37:38 DEBUG [root] SERVER_PROTOCOL = HTTP/1.0
2012-03-13 14:37:38 DEBUG [root] CONTENT_LENGTH = 41
2012-03-13 14:37:38 DEBUG [root] HTTP_X_AUTH_TOKEN = ADMIN
2012-03-13 14:37:38 DEBUG [root] HTTP_USER_AGENT = python-
2012-03-13 14:37:38 DEBUG [root] eventlet.posthooks = []
2012-03-13 14:37:38 DEBUG [root] SERVER_NAME = 192.168.240.19
2012-03-13 14:37:38 DEBUG [root] REMOTE_ADDR = 192.168.240.19
2012-03-13 14:37:38 DEBUG [root] eventlet.input = <eventlet.
2012-03-13 14:37:38 DEBUG [root] wsgi.url_scheme = http
2012-03-13 14:37:38 DEBUG [root] SERVER_PORT = 35357
2012-03-13 14:37:38 DEBUG [root] wsgi.input = <_io.BytesIO object at 0x3755a70>
2012-03-13 14:37:38 DEBUG [root] HTTP_HOST = 192.168.
2012-03-13 14:37:38 DEBUG [root] wsgi.multithread = True
2012-03-13 14:37:38 DEBUG [root] openstack.params = {u'user': {u'password': u'', u'id': u'ADMIN'}}
2012-03-13 14:37:38 DEBUG [root] wsgi.version = (1, 0)
2012-03-13 14:37:38 DEBUG [root] openstack.context = {'token_id': 'ADMIN', 'is_admin': True}
2012-03-13 14:37:38 DEBUG [root] GATEWAY_INTERFACE = CGI/1.1
2012-03-13 14:37:38 DEBUG [root] wsgi.run_once = False
2012-03-13 14:37:38 DEBUG [root] wsgi.errors = <open file '<stderr>', mode 'w' at 0x7f0bb39e5270>
2012-03-13 14:37:38 DEBUG [root] wsgi.multiprocess = False
2012-03-13 14:37:38 DEBUG [root] webob.is_
2012-03-13 14:37:38 DEBUG [root] CONTENT_TYPE = application/json
2012-03-13 14:37:38 DEBUG [root] HTTP_ACCEPT_
2012-03-13 14:37:38 DEBUG [root]
2012-03-13 14:37:38 DEBUG [root] *******
2012-03-13 14:37:38 DEBUG [root] {"user": {"password": "", "id": "ADMIN"}}
2012-03-13 14:37:38 DEBUG [root]
2012-03-13 14:37:38 DEBUG [routes.middleware] Matched PUT /users/
2012-03-13 14:37:38 DEBUG [routes.middleware] Route path: '{path_info:.*}', defaults: {'controller': <keystone.
2012-03-13 14:37:38 DEBUG [routes.middleware] Match dict: {'controller': <keystone.
2012-03-13 14:37:38 DEBUG [routes.middleware] Matched PUT /users/
2012-03-13 14:37:38 DEBUG [routes.middleware] Route path: '/users/
2012-03-13 14:37:38 DEBUG [routes.middleware] Match dict: {'action': u'set_user_
2012-03-13 14:37:38 DEBUG [root] arg_dict: {'user_id': u'ADMIN'}
2012-03-13 14:37:38 DEBUG [eventlet.
File "/usr/local/
result = self.applicatio
File "/usr/local/
return app(environ, start_response)
File "/usr/local/
resp = self.call_func(req, *args, **self.kwargs)
File "/usr/local/
return self.func(req, *args, **kwargs)
File "/usr/local/
response = request.
File "/usr/local/
application, catch_exc_
File "/usr/local/
app_iter = application(
File "/usr/local/
resp = self.call_func(req, *args, **self.kwargs)
File "/usr/local/
return self.func(req, *args, **kwargs)
File "/usr/local/
response = request.
File "/usr/local/
application, catch_exc_
File "/usr/local/
app_iter = application(
File "/usr/local/
resp = self.call_func(req, *args, **self.kwargs)
File "/usr/local/
return self.func(req, *args, **kwargs)
File "/usr/local/
response = request.
File "/usr/local/
application, catch_exc_
File "/usr/local/
app_iter = application(
File "/usr/local/
resp = self.call_func(req, *args, **self.kwargs)
File "/usr/local/
return self.func(req, *args, **kwargs)
File "/usr/local/
response = request.
File "/usr/local/
application, catch_exc_
File "/usr/local/
app_iter = application(
File "/usr/local/
resp = self.call_func(req, *args, **self.kwargs)
File "/usr/local/
return self.func(req, *args, **kwargs)
File "/usr/local/
resp = req.get_
File "/usr/local/
application, catch_exc_
File "/usr/local/
app_iter = application(
File "/usr/local/
return resp(environ, start_response)
File "/usr/local/
response = self.app(environ, start_response)
File "/usr/local/
return resp(environ, start_response)
File "/usr/local/
return resp(environ, start_response)
File "/usr/local/
response = self.app(environ, start_response)
File "/usr/local/
return resp(environ, start_response)
File "/usr/local/
resp = self.call_func(req, *args, **self.kwargs)
File "/usr/local/
return self.func(req, *args, **kwargs)
File "/usr/local/
result = method(context, **params)
File "/usr/local/
return self.update_
File "/usr/local/
user_ref = self.identity_
File "/usr/local/
return f(*args, **kw)
File "/usr/local/
old_user_dict = user_ref.to_dict()
AttributeError: 'NoneType' object has no attribute 'to_dict'
Joe - could you add a touch more info:
did the admin user already exist when you attempted to set it's password to ""?
for completeness sake, could you also include the keystone client commands you used to generate this.