)]}'
{"keystoneclient/generic/client.py":[{"author":{"_account_id":112,"name":"Jesse Andrews","email":"anotherjesse@gmail.com","username":"anotherjesse"},"change_message_id":"d2e5eb634771968cb62057437a3181499f5c25e2","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    Example::"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        \u003e\u003e\u003e from keystoneclient.generic import client"},{"line_number":38,"context_line":"        \u003e\u003e\u003e root \u003d client.Client(auth_url\u003dKEYSTONE_URL)"},{"line_number":39,"context_line":"        \u003e\u003e\u003e versions \u003d root.discover()"},{"line_number":40,"context_line":"        ..."},{"line_number":41,"context_line":"        \u003e\u003e\u003e from keystoneclient.v2_0 import client as v2client"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAADH%2F%2F%2FRU%3D","line":38,"updated":"2011-12-30 22:52:13.000000000","message":"Whenever we have been instructing folks to interact with keystone we have had them put the version number in the URL. \n\nThis seems to imply that KEYSTONE_URL doesn\u0027t include the version.","commit_id":"7b0c1e9b4723c0aa3cf2956014d7b9274021526e"},{"author":{"_account_id":5,"name":"Ziad Sawalha","email":"ziad.sawalha@rackspace.com","username":"ziad-sawalha"},"change_message_id":"0f72a6723a175d1f37f272b23242a3f6d8b4a580","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    Example::"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        \u003e\u003e\u003e from keystoneclient.generic import client"},{"line_number":38,"context_line":"        \u003e\u003e\u003e root \u003d client.Client(auth_url\u003dKEYSTONE_URL)"},{"line_number":39,"context_line":"        \u003e\u003e\u003e versions \u003d root.discover()"},{"line_number":40,"context_line":"        ..."},{"line_number":41,"context_line":"        \u003e\u003e\u003e from keystoneclient.v2_0 import client as v2client"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAD3%2F%2F9iQ%3D","line":38,"in_reply_to":"AAAADH%2F%2F%2FRU%3D","updated":"2012-01-17 00:46:02.000000000","message":"Both are supported. Code that did not hard-code the version would be preferable. There\u0027s no good reason why someone coding with keystone client should not just have their code start working when version 2.1 or 3.0 comes out if they hit a server that does not support 2.0.\n\nExample of both working:\n$ keystone --url http://localhost:35357/v2.0/ discover\nKeystone found at http://localhost:35357/v2.0/\n    - supports version v2.0 (beta) here http://127.0.0.1:35357/v2.0/\n$ keystone --url http://localhost:35357/ discover\nKeystone found at http://localhost:35357/\n    - supports version v2.0 (beta) here http://127.0.0.1:35357/v2.0/","commit_id":"7b0c1e9b4723c0aa3cf2956014d7b9274021526e"},{"author":{"_account_id":112,"name":"Jesse Andrews","email":"anotherjesse@gmail.com","username":"anotherjesse"},"change_message_id":"d2e5eb634771968cb62057437a3181499f5c25e2","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        Returns::"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"            {"},{"line_number":62,"context_line":"                \u0027message\u0027: \u0027Keystone found at http://127.0.0.1:5000/\u0027,"},{"line_number":63,"context_line":"                \u0027v2.0\u0027: {"},{"line_number":64,"context_line":"                    \u0027status\u0027: \u0027beta\u0027,"},{"line_number":65,"context_line":"                    \u0027url\u0027: \u0027http://127.0.0.1:5000/v2.0/\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAADH%2F%2F%2FRI%3D","line":62,"updated":"2011-12-30 22:52:13.000000000","message":"why are you using 5000 in the example here (non-admin) and 35357 for local?","commit_id":"7b0c1e9b4723c0aa3cf2956014d7b9274021526e"},{"author":{"_account_id":5,"name":"Ziad Sawalha","email":"ziad.sawalha@rackspace.com","username":"ziad-sawalha"},"change_message_id":"0f72a6723a175d1f37f272b23242a3f6d8b4a580","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        Returns::"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"            {"},{"line_number":62,"context_line":"                \u0027message\u0027: \u0027Keystone found at http://127.0.0.1:5000/\u0027,"},{"line_number":63,"context_line":"                \u0027v2.0\u0027: {"},{"line_number":64,"context_line":"                    \u0027status\u0027: \u0027beta\u0027,"},{"line_number":65,"context_line":"                    \u0027url\u0027: \u0027http://127.0.0.1:5000/v2.0/\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAD3%2F%2F9iI%3D","line":62,"in_reply_to":"AAAADH%2F%2F%2FRI%3D","updated":"2012-01-17 00:46:02.000000000","message":"Old example. Fixed to 35357.","commit_id":"7b0c1e9b4723c0aa3cf2956014d7b9274021526e"},{"author":{"_account_id":112,"name":"Jesse Andrews","email":"anotherjesse@gmail.com","username":"anotherjesse"},"change_message_id":"d2e5eb634771968cb62057437a3181499f5c25e2","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        if url:"},{"line_number":72,"context_line":"            return self._check_keystone_versions(url)"},{"line_number":73,"context_line":"        else:"},{"line_number":74,"context_line":"            return self._local_keystone_exists()"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def _local_keystone_exists(self):"},{"line_number":77,"context_line":"        \"\"\" Checks if Keystone is available on default local port 35357 \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAADH%2F%2F%2FRM%3D","line":74,"updated":"2011-12-30 22:52:13.000000000","message":"this doesn\u0027t feel like it should be in the client - if this is to aid debugging perhaps it should be in the shell.\n\nIf anything I would remove the _local_keystone_exists function and make url have a default localhost:35357","commit_id":"7b0c1e9b4723c0aa3cf2956014d7b9274021526e"},{"author":{"_account_id":5,"name":"Ziad Sawalha","email":"ziad.sawalha@rackspace.com","username":"ziad-sawalha"},"change_message_id":"0f72a6723a175d1f37f272b23242a3f6d8b4a580","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        if url:"},{"line_number":72,"context_line":"            return self._check_keystone_versions(url)"},{"line_number":73,"context_line":"        else:"},{"line_number":74,"context_line":"            return self._local_keystone_exists()"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def _local_keystone_exists(self):"},{"line_number":77,"context_line":"        \"\"\" Checks if Keystone is available on default local port 35357 \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAD3%2F%2F9io%3D","line":74,"in_reply_to":"AAAADH%2F%2F%2FRM%3D","updated":"2012-01-17 00:46:02.000000000","message":"Done","commit_id":"7b0c1e9b4723c0aa3cf2956014d7b9274021526e"},{"author":{"_account_id":112,"name":"Jesse Andrews","email":"anotherjesse@gmail.com","username":"anotherjesse"},"change_message_id":"d2e5eb634771968cb62057437a3181499f5c25e2","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                    if \u0027version\u0027 in body:"},{"line_number":90,"context_line":"                        results[\u0027message\u0027] \u003d \"Keystone found at %s\" % url"},{"line_number":91,"context_line":"                        version \u003d body[\u0027version\u0027]"},{"line_number":92,"context_line":"                        # Stable/diablo incorrect format"},{"line_number":93,"context_line":"                        id, status, version_url \u003d self._get_version_info("},{"line_number":94,"context_line":"                                                                version, url)"},{"line_number":95,"context_line":"                        results[str(id)] \u003d {\"id\": id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAADH%2F%2F%2FRA%3D","line":92,"updated":"2011-12-30 22:52:13.000000000","message":"what does this comment mean?","commit_id":"7b0c1e9b4723c0aa3cf2956014d7b9274021526e"},{"author":{"_account_id":5,"name":"Ziad Sawalha","email":"ziad.sawalha@rackspace.com","username":"ziad-sawalha"},"change_message_id":"0f72a6723a175d1f37f272b23242a3f6d8b4a580","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                    if \u0027version\u0027 in body:"},{"line_number":90,"context_line":"                        results[\u0027message\u0027] \u003d \"Keystone found at %s\" % url"},{"line_number":91,"context_line":"                        version \u003d body[\u0027version\u0027]"},{"line_number":92,"context_line":"                        # Stable/diablo incorrect format"},{"line_number":93,"context_line":"                        id, status, version_url \u003d self._get_version_info("},{"line_number":94,"context_line":"                                                                version, url)"},{"line_number":95,"context_line":"                        results[str(id)] \u003d {\"id\": id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAD3%2F%2F9i0%3D","line":92,"in_reply_to":"AAAADH%2F%2F%2FRA%3D","updated":"2012-01-17 00:46:02.000000000","message":"Stable/diablo returned {\"version\": } which is incorrect. It only supports one version. The correct format is {\"versions\": ...} and an array of versions. But this code is in here to support any deployments that use the old, incorrect format.","commit_id":"7b0c1e9b4723c0aa3cf2956014d7b9274021526e"}],"keystoneclient/utils.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"380837f9dbbb558db28e6ee2caf738d4b1ff9b1c","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    return f"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"def isunauthenticated(f):"},{"line_number":85,"context_line":"    \"\"\""},{"line_number":86,"context_line":"    Checks to see if the function is marked as not requiring authentication"},{"line_number":87,"context_line":"    with the @unauthenticated decorator. Returns True if decorator is"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAD3%2F%2F76s%3D","line":84,"updated":"2012-01-20 22:15:10.000000000","message":"is_unauthenticated?","commit_id":"8db366c448d4074c044f596a8e4271befdb797cb"}]}
