This is what i get.<div><br></div><div><div>1 > GET <a href="http://192.168.1.41:35357/v2.0/users/ef1e63df85b641d7bf3c575bb8670cef/roles">http://192.168.1.41:35357/v2.0/users/ef1e63df85b641d7bf3c575bb8670cef/roles</a></div>
<div>1 > X-Auth-Token: secret0</div><div><br></div><div>2012-05-03 00:03:55,337 [http-bio-8080-exec-10] INFO  api.identity  - 2 * LoggingFilter - Response received on thread http-bio-8080-exec-10</div><div>2 < 500</div>
<div>2 < Connection: close</div><div>2 < Content-Length: 5500</div><div>2 < Content-Type: text/plain</div><div>2 < Date: Mon, 26 Mar 2012 06:39:34 GMT</div><div>Traceback (most recent call last):</div><div>  File "/usr/lib/python2.7/dist-packages/eventlet/wsgi.py", line 336, in handle_one_response</div>
<div>    result = self.application(self.environ, start_response)</div><div>  File "/usr/lib/python2.7/dist-packages/paste/urlmap.py", line 203, in __call__</div><div>    return app(environ, start_response)</div>
<div>  File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 147, in __call__</div><div>    resp = self.call_func(req, *args, **self.kwargs)</div><div>  File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 208, in call_func</div>
<div>    return self.func(req, *args, **kwargs)</div><div>  File "/opt/stack/keystone/keystone/common/wsgi.py", line 299, in __call__</div><div>    response = request.get_response(self.application)</div><div>  File "/usr/lib/python2.7/dist-packages/webob/request.py", line 1053, in get_response</div>
<div>    application, catch_exc_info=False)</div><div>  File "/usr/lib/python2.7/dist-packages/webob/request.py", line 1022, in call_application</div><div>    app_iter = application(self.environ, start_response)</div>
<div>  File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 147, in __call__</div><div>    resp = self.call_func(req, *args, **self.kwargs)</div><div>  File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 208, in call_func</div>
<div>    return self.func(req, *args, **kwargs)</div><div>  File "/opt/stack/keystone/keystone/common/wsgi.py", line 299, in __call__</div><div>    response = request.get_response(self.application)</div><div>  File "/usr/lib/python2.7/dist-packages/webob/request.py", line 1053, in get_response</div>
<div>    application, catch_exc_info=False)</div><div>  File "/usr/lib/python2.7/dist-packages/webob/request.py", line 1022, in call_application</div><div>    app_iter = application(self.environ, start_response)</div>
<div>  File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 147, in __call__</div><div>    resp = self.call_func(req, *args, **self.kwargs)</div><div>  File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 208, in call_func</div>
<div>    return self.func(req, *args, **kwargs)</div><div>  File "/opt/stack/keystone/keystone/common/wsgi.py", line 299, in __call__</div><div>    response = request.get_response(self.application)</div><div>  File "/usr/lib/python2.7/dist-packages/webob/request.py", line 1053, in get_response</div>
<div>    application, catch_exc_info=False)</div><div>  File "/usr/lib/python2.7/dist-packages/webob/request.py", line 1022, in call_application</div><div>    app_iter = application(self.environ, start_response)</div>
<div>  File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 147, in __call__</div><div>    resp = self.call_func(req, *args, **self.kwargs)</div><div>  File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 208, in call_func</div>
<div>    return self.func(req, *args, **kwargs)</div><div>  File "/opt/stack/keystone/keystone/common/wsgi.py", line 299, in __call__</div><div>    response = request.get_response(self.application)</div><div>  File "/usr/lib/python2.7/dist-packages/webob/request.py", line 1053, in get_response</div>
<div>    application, catch_exc_info=False)</div><div>  File "/usr/lib/python2.7/dist-packages/webob/request.py", line 1022, in call_application</div><div>    app_iter = application(self.environ, start_response)</div>
<div>  File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 147, in __call__</div><div>    resp = self.call_func(req, *args, **self.kwargs)</div><div>  File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 208, in call_func</div>
<div>    return self.func(req, *args, **kwargs)</div><div>  File "/opt/stack/keystone/keystone/common/wsgi.py", line 322, in __call__</div><div>    resp = req.get_response(self.application)</div><div>  File "/usr/lib/python2.7/dist-packages/webob/request.py", line 1053, in get_response</div>
<div>    application, catch_exc_info=False)</div><div>  File "/usr/lib/python2.7/dist-packages/webob/request.py", line 1022, in call_application</div><div>    app_iter = application(self.environ, start_response)</div>
<div>  File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 159, in __call__</div><div>    return resp(environ, start_response)</div><div>  File "/usr/lib/pymodules/python2.7/routes/middleware.py", line 131, in __call__</div>
<div>    response = self.app(environ, start_response)</div><div>  File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 159, in __call__</div><div>    return resp(environ, start_response)</div><div>  File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 159, in __call__</div>
<div>    return resp(environ, start_response)</div><div>  File "/usr/lib/pymodules/python2.7/routes/middleware.py", line 131, in __call__</div><div>    response = self.app(environ, start_response)</div><div>  File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 159, in __call__</div>
<div>    return resp(environ, start_response)</div><div>  File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 159, in __call__</div><div>    return resp(environ, start_response)</div><div>  File "/usr/lib/pymodules/python2.7/routes/middleware.py", line 131, in __call__</div>
<div>    response = self.app(environ, start_response)</div><div>  File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 159, in __call__</div><div>    return resp(environ, start_response)</div><div>  File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 159, in __call__</div>
<div>    return resp(environ, start_response)</div><div>  File "/usr/lib/pymodules/python2.7/routes/middleware.py", line 131, in __call__</div><div>    response = self.app(environ, start_response)</div><div>  File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 159, in __call__</div>
<div>    return resp(environ, start_response)</div><div>  File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 147, in __call__</div><div>    resp = self.call_func(req, *args, **self.kwargs)</div><div>  File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 208, in call_func</div>
<div>    return self.func(req, *args, **kwargs)</div><div>  File "/opt/stack/keystone/keystone/common/wsgi.py", line 178, in __call__</div><div>    method = getattr(self, action)</div><div>AttributeError: 'UserController' object has no attribute 'get_user_roles'</div>
<div><br></div><br><div class="gmail_quote">On Wed, May 2, 2012 at 10:44 PM, Luis Gervaso <span dir="ltr"><<a href="mailto:luis@woorea.es" target="_blank">luis@woorea.es</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<div><div><br></div><div>In Diablo was:</div><div><br></div><div><span style="line-height:16px;color:rgb(221,17,68);font-size:12px;white-space:pre-wrap;font-family:'Bitstream Vera Sans Mono',Courier,monospace">GET /users/{user_id}/roleRefs</span><br clear="all">

<div><br></div><div>In Essex it is maintained for compatibility reasons. I understand that this is the obsolete now.</div><div><br></div><div>I can find:</div><div><br></div><div><span style="line-height:16px;color:rgb(221,17,68);font-size:12px;white-space:pre-wrap;font-family:'Bitstream Vera Sans Mono',Courier,monospace">PUT & DELETE /users/{user_id}/roles/OS-KSADM/{role_id}</span></div>

<div><br></div><div>How can get all the roles having a user_id?</div><div><br></div><div>GET /users/{user_id}/roles (i can't find this on stable/essex)</div><div><br></div><div>Returning role list with tenant associated</div>

<div><br></div><div>Another option that would work for me is:</div><div><br></div><div>GET /users/{user_id}/tenants</div><div><br></div><div>Returning tenant list with role list associated per tenant</div><div><br></div>
<div>
<br></div><div>When i GET /user/{user_id} i obtain only this info</div><div><br></div><div><div>{"user": {"name": "admin", "enabled": true, "email": "<a href="mailto:admin@example.com" target="_blank">admin@example.com</a>", "id": "ef1e63df85b641d7bf3c575bb8670cef", "tenantId": null}}<br clear="all">

<div><br></div><div>Regards</div><span class="HOEnZb"><font color="#888888"><div><br></div>-- <br>-------------------------------------------<br>Luis Alberto Gervaso Martin<div>Woorea Solutions, S.L<br>CEO & CTO<br>mobile: <a href="tel:%28%2B34%29%20627983344" value="+34627983344" target="_blank">(+34) 627983344</a><br>
<a href="mailto:luis.gervaso@gmail.com" target="_blank">luis@</a><a href="http://woorea.es/" target="_blank">woorea.es</a></div>
<br>
</font></span></div><br>
</div></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>-------------------------------------------<br>Luis Alberto Gervaso Martin<div>Woorea Solutions, S.L<br>CEO & CTO<br>mobile: (+34) 627983344<br><a href="mailto:luis.gervaso@gmail.com" target="_blank">luis@</a><a href="http://woorea.es/" target="_blank">woorea.es</a></div>
<br>
</div>