<div dir="ltr">Looks like a valid bug to me -- this code just merged a week ago.<div><br></div><div style>How did you create the token? I'm guessing it was generated by v2 and utilized here on v3?</div></div><div class="gmail_extra">
<br clear="all"><div><div><br></div>-Dolph</div>
<br><br><div class="gmail_quote">On Fri, Mar 1, 2013 at 5:03 PM, Miller, Mark M (EB SW Cloud - R&D - Corvallis) <span dir="ltr"><<a href="mailto:mark.m.miller@hp.com" target="_blank">mark.m.miller@hp.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang="EN-US" link="blue" vlink="purple">
<div>
<p class="MsoNormal">Hello,<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">In trying to understand the Keystone Grizzly-3 release, I decided to add a service via a REST API call using an admin user’s token instead of the admin token found in keystone.conf. When I do I get error:<u></u><u></u></p>

<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal" style="margin-left:.5in">Traceback (most recent call last):<u></u><u></u></p>
<p class="MsoNormal" style="margin-left:.5in">  File "/usr/local/lib/python2.7/dist-packages/keystone-2013.1.g3-py2.7.egg/keystone/common/wsgi.py", line 231, in __call__<u></u><u></u></p>
<p class="MsoNormal" style="margin-left:.5in">    result = method(context, **params)<u></u><u></u></p>
<p class="MsoNormal" style="margin-left:.5in">  File "/usr/local/lib/python2.7/dist-packages/keystone-2013.1.g3-py2.7.egg/keystone/common/controller.py", line 66, in wrapper<u></u><u></u></p>
<p class="MsoNormal" style="margin-left:.5in">    context, kwargs)<u></u><u></u></p>
<p class="MsoNormal" style="margin-left:.5in">  File "/usr/local/lib/python2.7/dist-packages/keystone-2013.1.g3-py2.7.egg/keystone/common/controller.py", line 32, in _build_policy_check_credentials<u></u><u></u></p>

<p class="MsoNormal" style="margin-left:.5in">    token_data = token_ref['token_data']<u></u><u></u></p>
<p class="MsoNormal" style="margin-left:.5in">KeyError: 'token_data'<u></u><u></u></p>
<p class="MsoNormal" style="margin-left:.5in">(access): 2013-03-01 13:53:26,754 INFO 15.253.58.148 - - [01/Mar/2013:21:53:26 +0000] "POST <a href="http://15.253.58.165:35357/v3/services" target="_blank">http://15.253.58.165:35357/v3/services</a> HTTP/1.0" 500 156<u></u><u></u></p>

<p class="MsoNormal" style="margin-left:.5in">(eventlet.wsgi.server): 2013-03-01 13:53:26,755 DEBUG 15.253.58.148 - - [01/Mar/2013 13:53:26] "POST /v3/services HTTP/1.1" 500 328 0.020434<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">When I change line 32 in the file from “token_data = token_ref['token_data']” to “token_data = token_ref”, the code appears to work.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal" style="margin-left:.5in">def _build_policy_check_credentials(self, action, context, kwargs):<u></u><u></u></p>
<p class="MsoNormal" style="margin-left:.5in"><u></u> <u></u></p>
<p class="MsoNormal" style="margin-left:.5in">    LOG.debug(_('RBAC: Authorizing %s(%s)') % (<u></u><u></u></p>
<p class="MsoNormal" style="margin-left:.5in">        action,<u></u><u></u></p>
<p class="MsoNormal" style="margin-left:.5in">        ', '.join(['%s=%s' % (k, kwargs[k]) for k in kwargs])))<u></u><u></u></p>
<p class="MsoNormal" style="margin-left:.5in"><u></u> <u></u></p>
<p class="MsoNormal" style="margin-left:.5in">    try:<u></u><u></u></p>
<p class="MsoNormal" style="margin-left:.5in">        token_ref = self.token_api.get_token(<u></u><u></u></p>
<p class="MsoNormal" style="margin-left:.5in">            context=context, token_id=context['token_id'])<u></u><u></u></p>
<p class="MsoNormal" style="margin-left:.5in">    except exception.TokenNotFound:<u></u><u></u></p>
<p class="MsoNormal" style="margin-left:.5in">        LOG.warning(_('RBAC: Invalid token'))<u></u><u></u></p>
<p class="MsoNormal" style="margin-left:.5in">        raise exception.Unauthorized()<u></u><u></u></p>
<p class="MsoNormal" style="margin-left:.5in"><u></u> <u></u></p>
<p class="MsoNormal" style="margin-left:.5in">    creds = {}<u></u><u></u></p>
<p class="MsoNormal" style="margin-left:.5in"><u></u> <u></u></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="background:yellow">#   token_data = token_ref['token_data']<u></u><u></u></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span style="background:yellow">    token_data = token_ref</span><u></u><u></u></p>
<p class="MsoNormal" style="margin-left:.5in"><u></u> <u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">So my question is do I need to have “token_data” in the token table somehow or is this a code bug?<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Regards,<u></u><u></u></p>
<p class="MsoNormal"><br>
Mark Miller<u></u><u></u></p>
</div>
</div>

<br>_______________________________________________<br>
Mailing list: <a href="https://launchpad.net/~openstack" target="_blank">https://launchpad.net/~openstack</a><br>
Post to     : <a href="mailto:openstack@lists.launchpad.net">openstack@lists.launchpad.net</a><br>
Unsubscribe : <a href="https://launchpad.net/~openstack" target="_blank">https://launchpad.net/~openstack</a><br>
More help   : <a href="https://help.launchpad.net/ListHelp" target="_blank">https://help.launchpad.net/ListHelp</a><br>
<br></blockquote></div><br></div>