)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9450,"name":"Juan Manuel Ollé","email":"juan.m.olle@intel.com","username":"jmolle"},"change_message_id":"77c379984ca272841eeb18489cd752f71af7ef5a","unresolved":false,"context_lines":[{"line_number":11,"context_line":"cases to cover the use case of generic client extension discovery."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Id687f8d73cead28f594de00d3b5ff9086558947b"},{"line_number":14,"context_line":"Closes-Bug: #1266710"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"AAAAUH%2F%2B2js%3D","line":14,"updated":"2014-01-21 12:30:47.000000000","message":"the bug number is wrong: the correct one is 1266709","commit_id":"2f96899534776866d362f51e3e8cb9c439906f10"},{"author":{"_account_id":9450,"name":"Juan Manuel Ollé","email":"juan.m.olle@intel.com","username":"jmolle"},"change_message_id":"b4d8339ff47374663ce406a98fd595134300c5e7","unresolved":false,"context_lines":[{"line_number":11,"context_line":"cases to cover the use case of generic client extension discovery."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Id687f8d73cead28f594de00d3b5ff9086558947b"},{"line_number":14,"context_line":"Closes-Bug: #1266710"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"AAAAUH%2F%2B1M0%3D","line":14,"in_reply_to":"AAAAUH%2F%2B1vk%3D","updated":"2014-01-21 16:35:00.000000000","message":"Oh, yes, you are right, thanks.","commit_id":"2f96899534776866d362f51e3e8cb9c439906f10"},{"author":{"_account_id":2468,"name":"unicell","email":"unicell@gmail.com","username":"unicell"},"change_message_id":"3292a5dd4cc8abd41b7ec5171920460dbd5e5a31","unresolved":false,"context_lines":[{"line_number":11,"context_line":"cases to cover the use case of generic client extension discovery."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Id687f8d73cead28f594de00d3b5ff9086558947b"},{"line_number":14,"context_line":"Closes-Bug: #1266710"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"AAAAUH%2F%2B1vk%3D","line":14,"in_reply_to":"AAAAUH%2F%2B2js%3D","updated":"2014-01-21 15:07:31.000000000","message":"I\u0027m really sorry for all the inconvenience it takes. \n\n#1266710 is the correct number, seems the #1266709 is the exact copy of #1266710. Guess it was the network jitterring causing the duplicate submission.\n\nAlready marked #1266709 as a duplicate of #1266710.","commit_id":"2f96899534776866d362f51e3e8cb9c439906f10"}],"keystoneclient/generic/client.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"c18276bfd69578800c384038951f725fa17184e1","unresolved":false,"context_lines":[{"line_number":159,"context_line":"                                alias, name \u003d \\"},{"line_number":160,"context_line":"                                    self._get_extension_info("},{"line_number":161,"context_line":"                                        extension"},{"line_number":162,"context_line":"                                    )"},{"line_number":163,"context_line":"                                results[alias] \u003d name"},{"line_number":164,"context_line":"                            return results"},{"line_number":165,"context_line":"                        else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FlFo%3D","line":162,"updated":"2014-01-10 20:13:54.000000000","message":"158-164 is now identical to 166-171 are now identical, minus the object being iterated over... this should be refactored to reflect that\n\nadditionally, 159-162 should be collapsed to look like 168-169","commit_id":"81ea5265979dc9a1616f7e6dcdb48c671f6da33e"}],"keystoneclient/tests/generic/test_client.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"db48bae04b4f847a4309e2471d1bd1cfc0545ac1","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        self.assertEqual(extensions[EXTENSION_ALIAS_BAR], EXTENSION_NAME_BAR)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def test_discover_extensions_v3(self):"},{"line_number":71,"context_line":"        httpretty.register_uri(httpretty.GET, \"%s/extensions\" % V3_URL,"},{"line_number":72,"context_line":"                               body\u003dEXTENSION_LIST)"},{"line_number":73,"context_line":"        extensions \u003d client.Client().discover_extensions(url\u003dV3_URL)"},{"line_number":74,"context_line":"        self.assertIn(EXTENSION_ALIAS_FOO, extensions)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FPlA%3D","line":71,"updated":"2014-01-15 23:53:02.000000000","message":"there is no /v3/extensions resource -- see the spec: https://github.com/openstack/identity-api/blob/master/openstack-identity-api/v3/src/markdown/identity-api-v3.md\n\nif you request /v3/extensions you get 404 Not Found.","commit_id":"8d44d6410ddbaa265319d3d8205fc7d9951b4794"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"adfa98604b1082bb0d51875f89f34b686a474707","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        self.assertEqual(extensions[EXTENSION_ALIAS_BAR], EXTENSION_NAME_BAR)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def test_discover_extensions_v3(self):"},{"line_number":71,"context_line":"        httpretty.register_uri(httpretty.GET, \"%s/extensions\" % V3_URL,"},{"line_number":72,"context_line":"                               body\u003dEXTENSION_LIST)"},{"line_number":73,"context_line":"        extensions \u003d client.Client().discover_extensions(url\u003dV3_URL)"},{"line_number":74,"context_line":"        self.assertIn(EXTENSION_ALIAS_FOO, extensions)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FOx0%3D","line":71,"in_reply_to":"AAAAUH%2F%2FO58%3D","updated":"2014-01-16 05:34:49.000000000","message":"There has been discussion about it and for a while there there was a review against the identity api that was going to create that route. \n\nIt was decided instead that we were going to use the regular version discovery to publish \u0027links\u0027 or references to the various managers that were available and then an extension would be discovered in the same manor. I would just leave it out for v3 because the CLI doesn\u0027t support v3 anyway.","commit_id":"8d44d6410ddbaa265319d3d8205fc7d9951b4794"},{"author":{"_account_id":2468,"name":"unicell","email":"unicell@gmail.com","username":"unicell"},"change_message_id":"a7e6ee0b416ed1046a6e4b7ed84c945a1f9ae121","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        self.assertEqual(extensions[EXTENSION_ALIAS_BAR], EXTENSION_NAME_BAR)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def test_discover_extensions_v3(self):"},{"line_number":71,"context_line":"        httpretty.register_uri(httpretty.GET, \"%s/extensions\" % V3_URL,"},{"line_number":72,"context_line":"                               body\u003dEXTENSION_LIST)"},{"line_number":73,"context_line":"        extensions \u003d client.Client().discover_extensions(url\u003dV3_URL)"},{"line_number":74,"context_line":"        self.assertIn(EXTENSION_ALIAS_FOO, extensions)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FOuQ%3D","line":71,"in_reply_to":"AAAAUH%2F%2FOx0%3D","updated":"2014-01-16 05:59:54.000000000","message":"Got it. Thanks for the information!","commit_id":"8d44d6410ddbaa265319d3d8205fc7d9951b4794"},{"author":{"_account_id":2468,"name":"unicell","email":"unicell@gmail.com","username":"unicell"},"change_message_id":"3332282db80a0985097bef16b05a80e3abee5a53","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        self.assertEqual(extensions[EXTENSION_ALIAS_BAR], EXTENSION_NAME_BAR)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def test_discover_extensions_v3(self):"},{"line_number":71,"context_line":"        httpretty.register_uri(httpretty.GET, \"%s/extensions\" % V3_URL,"},{"line_number":72,"context_line":"                               body\u003dEXTENSION_LIST)"},{"line_number":73,"context_line":"        extensions \u003d client.Client().discover_extensions(url\u003dV3_URL)"},{"line_number":74,"context_line":"        self.assertIn(EXTENSION_ALIAS_FOO, extensions)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FO58%3D","line":71,"in_reply_to":"AAAAUH%2F%2FPlA%3D","updated":"2014-01-16 04:42:14.000000000","message":"Thanks for point it out. I just checked the code, seems v3 don\u0027t have router for routers.Extension().\n\nSo I\u0027ll remove this test case from my patch. And the following question is, is it possible for me to add v3/extensions and v3/extensions/{extension_alias} support? Has it been discussed somewhere that I should take care about? Thanks!","commit_id":"8d44d6410ddbaa265319d3d8205fc7d9951b4794"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f8ceecb79ad7562f9cd9f1c424d051baba4ade2e","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from keystoneclient.tests import utils"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"BASE_HOST \u003d \u0027http://keystone.example.com\u0027"},{"line_number":23,"context_line":"BASE_URL \u003d \"%s:5000/\" % BASE_HOST"},{"line_number":24,"context_line":"V2_URL \u003d \"%sv2.0\" % BASE_URL"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"EXTENSION_NAMESPACE \u003d \"http://docs.openstack.org/identity/api/ext/OS-FAKE/v1.0\""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2Bb74%3D","line":23,"updated":"2014-01-26 16:11:32.000000000","message":"use \u0027 for strings consistently.","commit_id":"2f96899534776866d362f51e3e8cb9c439906f10"}]}
