)]}'
{"os_client_config/config.py":[{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"f43f651b7934c78497046babd406d1a7c9d227e5","unresolved":false,"context_lines":[{"line_number":379,"context_line":""},{"line_number":380,"context_line":"    def _validate_auth(self, config):"},{"line_number":381,"context_line":"        # May throw a keystoneclient.exceptions.NoMatchingPlugin"},{"line_number":382,"context_line":"        if config[\u0027auth_type\u0027] \u003d\u003d \u0027token_endpoint\u0027:"},{"line_number":383,"context_line":"            auth_plugin \u003d ksc_auth.token_endpoint.Token"},{"line_number":384,"context_line":"        else:"},{"line_number":385,"context_line":"            auth_plugin \u003d ksc_auth.get_plugin_class(config[\u0027auth_type\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_95845d0b","line":382,"updated":"2015-08-11 23:12:51.000000000","message":"I don\u0027t see where \u0027token_endpoint\u0027 comes from.  The valid auth_types should be:\n\nhttps://github.com/openstack/python-keystoneclient/blob/master/setup.cfg#L30\n\nWhy isn\u0027t this handled in KSC?","commit_id":"dfef01a7cbb9d68ad443d182e548ec58143a3a1f"},{"author":{"_account_id":6550,"name":"Davide Guerri","email":"davide.guerri@gmail.com","username":"davide-guerri"},"change_message_id":"6f8f69d76dc8f7249368a2a0995d40fe8d45d14a","unresolved":false,"context_lines":[{"line_number":379,"context_line":""},{"line_number":380,"context_line":"    def _validate_auth(self, config):"},{"line_number":381,"context_line":"        # May throw a keystoneclient.exceptions.NoMatchingPlugin"},{"line_number":382,"context_line":"        if config[\u0027auth_type\u0027] \u003d\u003d \u0027token_endpoint\u0027:"},{"line_number":383,"context_line":"            auth_plugin \u003d ksc_auth.token_endpoint.Token"},{"line_number":384,"context_line":"        else:"},{"line_number":385,"context_line":"            auth_plugin \u003d ksc_auth.get_plugin_class(config[\u0027auth_type\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_2005ed78","line":382,"in_reply_to":"1a4dcd0f_00431114","updated":"2015-08-12 13:13:06.000000000","message":"I might be missing something, but I think \"keystoneclient.auth.identity.generic:Token\" cannot work as it is now! :)\nSo rather than adding a new entry point, the existing one should be fixed!\n\nBut again, I could be wrong, maybe  \"keystoneclient.auth.identity.generic:Token\" is meant for a different purpose...","commit_id":"dfef01a7cbb9d68ad443d182e548ec58143a3a1f"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"de58ae224d10a1f924d41bc2fdfd9d1d058db0b4","unresolved":false,"context_lines":[{"line_number":379,"context_line":""},{"line_number":380,"context_line":"    def _validate_auth(self, config):"},{"line_number":381,"context_line":"        # May throw a keystoneclient.exceptions.NoMatchingPlugin"},{"line_number":382,"context_line":"        if config[\u0027auth_type\u0027] \u003d\u003d \u0027token_endpoint\u0027:"},{"line_number":383,"context_line":"            auth_plugin \u003d ksc_auth.token_endpoint.Token"},{"line_number":384,"context_line":"        else:"},{"line_number":385,"context_line":"            auth_plugin \u003d ksc_auth.get_plugin_class(config[\u0027auth_type\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_20ef2d88","line":382,"in_reply_to":"1a4dcd0f_2005ed78","updated":"2015-08-12 13:17:08.000000000","message":"Looks like token_endpoint is gone for ksa","commit_id":"dfef01a7cbb9d68ad443d182e548ec58143a3a1f"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"66a30607ec1d65978f5f52ab175ebb5e21da00f4","unresolved":false,"context_lines":[{"line_number":379,"context_line":""},{"line_number":380,"context_line":"    def _validate_auth(self, config):"},{"line_number":381,"context_line":"        # May throw a keystoneclient.exceptions.NoMatchingPlugin"},{"line_number":382,"context_line":"        if config[\u0027auth_type\u0027] \u003d\u003d \u0027token_endpoint\u0027:"},{"line_number":383,"context_line":"            auth_plugin \u003d ksc_auth.token_endpoint.Token"},{"line_number":384,"context_line":"        else:"},{"line_number":385,"context_line":"            auth_plugin \u003d ksc_auth.get_plugin_class(config[\u0027auth_type\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_1ead92e8","line":382,"in_reply_to":"1a4dcd0f_20ef2d88","updated":"2015-08-13 00:28:00.000000000","message":"In Keystoneauth we do things in better ways than in keystoneclient...","commit_id":"dfef01a7cbb9d68ad443d182e548ec58143a3a1f"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"1554131fb6f94138699a280620c71e29643bb124","unresolved":false,"context_lines":[{"line_number":379,"context_line":""},{"line_number":380,"context_line":"    def _validate_auth(self, config):"},{"line_number":381,"context_line":"        # May throw a keystoneclient.exceptions.NoMatchingPlugin"},{"line_number":382,"context_line":"        if config[\u0027auth_type\u0027] \u003d\u003d \u0027token_endpoint\u0027:"},{"line_number":383,"context_line":"            auth_plugin \u003d ksc_auth.token_endpoint.Token"},{"line_number":384,"context_line":"        else:"},{"line_number":385,"context_line":"            auth_plugin \u003d ksc_auth.get_plugin_class(config[\u0027auth_type\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_ea090532","line":382,"in_reply_to":"1a4dcd0f_20ef2d88","updated":"2015-08-13 00:32:36.000000000","message":"It\u0027s renamed in ksa I believe. There was a naming collision between ksc and osc around token_endpoint. The workaround should only be needed until ksa is released.","commit_id":"dfef01a7cbb9d68ad443d182e548ec58143a3a1f"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"3dd730a782c6b3b1734e4e41618a5542427298a9","unresolved":false,"context_lines":[{"line_number":379,"context_line":""},{"line_number":380,"context_line":"    def _validate_auth(self, config):"},{"line_number":381,"context_line":"        # May throw a keystoneclient.exceptions.NoMatchingPlugin"},{"line_number":382,"context_line":"        if config[\u0027auth_type\u0027] \u003d\u003d \u0027token_endpoint\u0027:"},{"line_number":383,"context_line":"            auth_plugin \u003d ksc_auth.token_endpoint.Token"},{"line_number":384,"context_line":"        else:"},{"line_number":385,"context_line":"            auth_plugin \u003d ksc_auth.get_plugin_class(config[\u0027auth_type\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_1e491231","line":382,"in_reply_to":"1a4dcd0f_20ef2d88","updated":"2015-08-13 00:32:50.000000000","message":"so generic.Token and token_endpoint are different things. \n\ngeneric.Token assumes you have a token and want to exchange it, useful for things like rescoping a token, and does all the correct keystone auth magic.\n\ntoken_endpoint assumes you have a token, you know exactly the endpoint you want to go to and don\u0027t fetch a new token or get a service catalog or anything like that. Particularly useful for the ADMIN_TOKEN in keystone or some dev tasks.\n\nUnfortunately OSC created a plugin with token_endpoint as the setup tools entry point before keystoneclient did so if you load it the normal way you will either get nothing or the OSC plugin (if it\u0027s installed).\n\nWith keystoneauth this plugin will still exist, and it will take back the setuptools entry point (because we\u0027re changing the setuptools namespace so no collision issues) but this is a reasonable way to handle the bug until then.","commit_id":"dfef01a7cbb9d68ad443d182e548ec58143a3a1f"},{"author":{"_account_id":6550,"name":"Davide Guerri","email":"davide.guerri@gmail.com","username":"davide-guerri"},"change_message_id":"66cab00877221e5a85e77a0256aa5c35df5ff0d0","unresolved":false,"context_lines":[{"line_number":379,"context_line":""},{"line_number":380,"context_line":"    def _validate_auth(self, config):"},{"line_number":381,"context_line":"        # May throw a keystoneclient.exceptions.NoMatchingPlugin"},{"line_number":382,"context_line":"        if config[\u0027auth_type\u0027] \u003d\u003d \u0027token_endpoint\u0027:"},{"line_number":383,"context_line":"            auth_plugin \u003d ksc_auth.token_endpoint.Token"},{"line_number":384,"context_line":"        else:"},{"line_number":385,"context_line":"            auth_plugin \u003d ksc_auth.get_plugin_class(config[\u0027auth_type\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_a7cda131","line":382,"in_reply_to":"1a4dcd0f_95845d0b","updated":"2015-08-12 09:14:01.000000000","message":"Hi Terry, thanks for your review.\n\nWhen it comes to token auth the \"token\" ksc auth type cannot be used as it requires \u0027auth_url\u0027 as input instead of just \u0027endpoint\u0027. In fact, token auth works iff just OS_TOKEN and OS_ENDPOINT are used.\n\nHonestly, I don\u0027t know if this can be considered a keystone-client bug, If so, it would be quite hard to fix, as auth_url is required in the base class: https://github.com/openstack/python-keystoneclient/blob/master/keystoneclient/auth/identity/generic/base.py#L53\n\nOn the other hand,  ksc_auth.token_endpoint.Token does exactly what we need.\nExactly the same thing is performed in Shade, which depends on os-c-c: \nhttps://github.com/openstack-infra/shade/blob/master/shade/__init__.py#L338","commit_id":"dfef01a7cbb9d68ad443d182e548ec58143a3a1f"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"d73a055b6d56630d8d6adfb5bf1ecf7473f8a9db","unresolved":false,"context_lines":[{"line_number":379,"context_line":""},{"line_number":380,"context_line":"    def _validate_auth(self, config):"},{"line_number":381,"context_line":"        # May throw a keystoneclient.exceptions.NoMatchingPlugin"},{"line_number":382,"context_line":"        if config[\u0027auth_type\u0027] \u003d\u003d \u0027token_endpoint\u0027:"},{"line_number":383,"context_line":"            auth_plugin \u003d ksc_auth.token_endpoint.Token"},{"line_number":384,"context_line":"        else:"},{"line_number":385,"context_line":"            auth_plugin \u003d ksc_auth.get_plugin_class(config[\u0027auth_type\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_00431114","line":382,"in_reply_to":"1a4dcd0f_a7cda131","updated":"2015-08-12 13:07:01.000000000","message":"I could see going with this fix to keep things rolling, but seems like KSC could just have the entry point added.","commit_id":"dfef01a7cbb9d68ad443d182e548ec58143a3a1f"}]}
