)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"b0e54804d81d20a5462fda2d2c5dc3fc6058213e","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Python 3: Fix Python 3 unicode issue."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Replace unicode with six.text_type"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"For more information on Python 3, see:"},{"line_number":12,"context_line":"https://wiki.openstack.org/wiki/Python3"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa32b979_ebf96cc9","line":9,"updated":"2015-06-23 09:56:35.000000000","message":"It would be nice to also extract some points from the link you give below, so it will be more straightforward here.","commit_id":"3107c09ee75825b9388288eff2a151d1259130c4"},{"author":{"_account_id":14867,"name":"Jaivish Kothari(janonymous)","email":"janonymous.codevulture@gmail.com","username":"Janonymous"},"change_message_id":"b9e7a025e7d725f6969510a8134124c8e87dd670","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Python 3: Fix Python 3 unicode issue."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Replace unicode with six.text_type"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"For more information on Python 3, see:"},{"line_number":12,"context_line":"https://wiki.openstack.org/wiki/Python3"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa32b979_180c1deb","line":9,"in_reply_to":"fa32b979_ebf96cc9","updated":"2015-06-23 13:10:46.000000000","message":"Done","commit_id":"3107c09ee75825b9388288eff2a151d1259130c4"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"b0e54804d81d20a5462fda2d2c5dc3fc6058213e","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Replace unicode with six.text_type"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"For more information on Python 3, see:"},{"line_number":12,"context_line":"https://wiki.openstack.org/wiki/Python3"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I5714b87c94415681c416e8a4394eeae054a2dfbf"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa32b979_6bd0fc53","line":11,"updated":"2015-06-23 09:56:35.000000000","message":"maybe change to \u0027... why this change is needed for Python3\u0027? seems like we don\u0027t need the info on py3 but need this change to make it work in py3.","commit_id":"3107c09ee75825b9388288eff2a151d1259130c4"},{"author":{"_account_id":14867,"name":"Jaivish Kothari(janonymous)","email":"janonymous.codevulture@gmail.com","username":"Janonymous"},"change_message_id":"b9e7a025e7d725f6969510a8134124c8e87dd670","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Replace unicode with six.text_type"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"For more information on Python 3, see:"},{"line_number":12,"context_line":"https://wiki.openstack.org/wiki/Python3"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I5714b87c94415681c416e8a4394eeae054a2dfbf"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa32b979_3811e104","line":11,"in_reply_to":"fa32b979_6bd0fc53","updated":"2015-06-23 13:10:46.000000000","message":"Done","commit_id":"3107c09ee75825b9388288eff2a151d1259130c4"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"b35ccbb333451beb7535fd1e609b1dbce702a85e","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     janonymous \u003cjanonymous.codevulture@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-06-23 18:31:39 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Python 3: Replace unicode with six.text_type."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The \"unicode\" type was renamed to \"str\" in Python 3."},{"line_number":10,"context_line":"Use six.text_type to make Keystone compatible with Python 3."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ba3cc151_62f62491","line":7,"updated":"2015-06-30 23:26:11.000000000","message":"For future reference: https://wiki.openstack.org/wiki/GitCommitMessages#Summary_of_Git_commit_message_structure\n\nthe summary line shouldn\u0027t end in a period","commit_id":"be3460ee99892942d6a2c3332512d85b5739f85b"},{"author":{"_account_id":14867,"name":"Jaivish Kothari(janonymous)","email":"janonymous.codevulture@gmail.com","username":"Janonymous"},"change_message_id":"e6af0026cd863e1a29a26178c90794790b0c4687","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     janonymous \u003cjanonymous.codevulture@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-06-23 18:31:39 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Python 3: Replace unicode with six.text_type."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The \"unicode\" type was renamed to \"str\" in Python 3."},{"line_number":10,"context_line":"Use six.text_type to make Keystone compatible with Python 3."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ba3cc151_bfb85ec9","line":7,"in_reply_to":"ba3cc151_62f62491","updated":"2015-07-01 18:25:13.000000000","message":"Done","commit_id":"be3460ee99892942d6a2c3332512d85b5739f85b"},{"author":{"_account_id":16277,"name":"Pradeep Kumar Singh","email":"ps4openstack@gmail.com","username":"pradeep_singh"},"change_message_id":"73153856ca1ad4b31511ed331a6ca73b43e32109","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     janonymous \u003cjanonymous.codevulture@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-07-07 23:09:01 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Python 3: Replace assertRaisesRegexp to six implementation for py3 compatibility"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Rename the method to assertRaisesRegex (like Python 3)"},{"line_number":10,"context_line":"and use six\u0027s implementation"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"ba3cc151_d003ec40","line":7,"updated":"2015-07-07 23:54:20.000000000","message":"commit message title should not be longer than 50 chars","commit_id":"99b1fefcc42e451f9adee90080bd54fe9c2ef3d7"},{"author":{"_account_id":14867,"name":"Jaivish Kothari(janonymous)","email":"janonymous.codevulture@gmail.com","username":"Janonymous"},"change_message_id":"95ddb51fe032970810601ad6360ae4cdb6c9e415","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     janonymous \u003cjanonymous.codevulture@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-07-07 23:09:01 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Python 3: Replace assertRaisesRegexp to six implementation for py3 compatibility"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Rename the method to assertRaisesRegex (like Python 3)"},{"line_number":10,"context_line":"and use six\u0027s implementation"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"ba3cc151_7931ab59","line":7,"in_reply_to":"ba3cc151_d003ec40","updated":"2015-07-08 01:36:09.000000000","message":"Done","commit_id":"99b1fefcc42e451f9adee90080bd54fe9c2ef3d7"}],"keystone/clean.py":[{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"19172c74127a33ddfc181407068b1b26777be53d","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"def check_name(property_name, name, min_length\u003d1, max_length\u003d64):"},{"line_number":54,"context_line":"    check_type(\u0027%s name\u0027 % property_name, name, six.string_types,"},{"line_number":55,"context_line":"               \u0027str or six.text_type\u0027)"},{"line_number":56,"context_line":"    name \u003d name.strip()"},{"line_number":57,"context_line":"    check_length(\u0027%s name\u0027 % property_name, name,"},{"line_number":58,"context_line":"                 min_length\u003dmin_length, max_length\u003dmax_length)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_51715043","line":55,"updated":"2015-06-22 15:51:53.000000000","message":"the message printed here will look weird on py3. The change doesn\u0027t really fix anything, so I suggest to revert","commit_id":"e8fef3f05efbd17def92d60f361ca550f2288681"},{"author":{"_account_id":14867,"name":"Jaivish Kothari(janonymous)","email":"janonymous.codevulture@gmail.com","username":"Janonymous"},"change_message_id":"41a65a5bab23af3889fd388f2ccfe9339aec4666","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"def check_name(property_name, name, min_length\u003d1, max_length\u003d64):"},{"line_number":54,"context_line":"    check_type(\u0027%s name\u0027 % property_name, name, six.string_types,"},{"line_number":55,"context_line":"               \u0027str or six.text_type\u0027)"},{"line_number":56,"context_line":"    name \u003d name.strip()"},{"line_number":57,"context_line":"    check_length(\u0027%s name\u0027 % property_name, name,"},{"line_number":58,"context_line":"                 min_length\u003dmin_length, max_length\u003dmax_length)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_d3346fdf","line":55,"in_reply_to":"fa32b979_51715043","updated":"2015-06-23 01:59:54.000000000","message":"Done","commit_id":"e8fef3f05efbd17def92d60f361ca550f2288681"}],"keystone/tests/unit/core.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"b35ccbb333451beb7535fd1e609b1dbce702a85e","unresolved":false,"context_lines":[{"line_number":523,"context_line":"    def assertNotEmpty(self, l):"},{"line_number":524,"context_line":"        self.assertTrue(len(l))"},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"    def assertRaisesRegexp(self, expected_exception, expected_regexp,"},{"line_number":527,"context_line":"                           callable_obj, *args, **kwargs):"},{"line_number":528,"context_line":"        \"\"\"Asserts that the message in a raised exception matches a regexp."},{"line_number":529,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_d1dc6714","line":526,"updated":"2015-06-30 23:26:11.000000000","message":"Is it possible to just delete this method since we don\u0027t have to support Python2.6 anymore?","commit_id":"be3460ee99892942d6a2c3332512d85b5739f85b"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"5779e5c968a4263f4824aeffa9307342115bb1a1","unresolved":false,"context_lines":[{"line_number":523,"context_line":"    def assertNotEmpty(self, l):"},{"line_number":524,"context_line":"        self.assertTrue(len(l))"},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"    def assertRaisesRegexp(self, expected_exception, expected_regexp,"},{"line_number":527,"context_line":"                           callable_obj, *args, **kwargs):"},{"line_number":528,"context_line":"        \"\"\"Asserts that the message in a raised exception matches a regexp."},{"line_number":529,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_35b574ed","line":526,"in_reply_to":"ba3cc151_d1dc6714","updated":"2015-07-01 06:40:22.000000000","message":"David, seems we can\u0027t. Please see https://review.openstack.org/#/c/188796/, logs from patchsets 1 and 2.","commit_id":"be3460ee99892942d6a2c3332512d85b5739f85b"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"b7c451616a94d7bc2eb2833894dab02477325c8f","unresolved":false,"context_lines":[{"line_number":523,"context_line":"    def assertNotEmpty(self, l):"},{"line_number":524,"context_line":"        self.assertTrue(len(l))"},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"    def assertRaisesRegexp(self, expected_exception, expected_regexp,"},{"line_number":527,"context_line":"                           callable_obj, *args, **kwargs):"},{"line_number":528,"context_line":"        \"\"\"Asserts that the message in a raised exception matches a regexp."},{"line_number":529,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_6e0d46e7","line":526,"updated":"2015-07-01 20:13:30.000000000","message":"Here\u0027s a dumb question...do we actually need to define this? It looks like six already does this: http://pythonhosted.org/six/#six.assertRaisesRegex\n\nIs there any reason not to use it? I think we can rename the method to assertRaisesRegex (like Python 3) and use six\u0027s implementation.","commit_id":"719aa9c1beb427480b2f31c14380ca1376348aa6"},{"author":{"_account_id":14867,"name":"Jaivish Kothari(janonymous)","email":"janonymous.codevulture@gmail.com","username":"Janonymous"},"change_message_id":"6032e35530ad179b661298e77ac32078b4e4c9d1","unresolved":false,"context_lines":[{"line_number":523,"context_line":"    def assertNotEmpty(self, l):"},{"line_number":524,"context_line":"        self.assertTrue(len(l))"},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"    def assertRaisesRegexp(self, expected_exception, expected_regexp,"},{"line_number":527,"context_line":"                           callable_obj, *args, **kwargs):"},{"line_number":528,"context_line":"        \"\"\"Asserts that the message in a raised exception matches a regexp."},{"line_number":529,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_7bf69cfa","line":526,"in_reply_to":"ba3cc151_6e0d46e7","updated":"2015-07-07 14:49:19.000000000","message":"Done","commit_id":"719aa9c1beb427480b2f31c14380ca1376348aa6"},{"author":{"_account_id":14867,"name":"Jaivish Kothari(janonymous)","email":"janonymous.codevulture@gmail.com","username":"Janonymous"},"change_message_id":"db2278d33ec68fca71a6f91df44270d5ed886642","unresolved":false,"context_lines":[{"line_number":523,"context_line":"    def assertNotEmpty(self, l):"},{"line_number":524,"context_line":"        self.assertTrue(len(l))"},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"    def assertRaisesRegexp(self, expected_exception, expected_regexp,"},{"line_number":527,"context_line":"                           callable_obj, *args, **kwargs):"},{"line_number":528,"context_line":"        \"\"\"Asserts that the message in a raised exception matches a regexp."},{"line_number":529,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_ba2ef789","line":526,"in_reply_to":"ba3cc151_6e0d46e7","updated":"2015-07-02 17:12:50.000000000","message":"Yes , you are right we could you that. Kindly confirm the change :\n\n{code}\n\ndef assertRaisesRegex(self, expected_exception, expected_regexp,callable_obj, *args, **kwargs):\n\n   six.assertRaisesRegex(self, expected_exception,\nexpected_regexp, callable_obj, *args, **kwargs)\n\n{code}\n\nRight ?","commit_id":"719aa9c1beb427480b2f31c14380ca1376348aa6"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"1ed5b1c01daa127c41f2a529e4c05a0b8e8c215c","unresolved":false,"context_lines":[{"line_number":522,"context_line":"    def assertNotEmpty(self, l):"},{"line_number":523,"context_line":"        self.assertTrue(len(l))"},{"line_number":524,"context_line":""},{"line_number":525,"context_line":"    def assertRaisesRegex(self, expected_exception, expected_regexp,"},{"line_number":526,"context_line":"                          callable_obj, *args, **kwargs):"},{"line_number":527,"context_line":"        \"\"\"Asserts that the message in a raised exception matches a regexp."},{"line_number":528,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_857f60df","line":525,"updated":"2015-07-08 04:15:59.000000000","message":"It looks like you changed the other test file to not use this at all. If that\u0027s the case then just delete this. We should pick one way to do it and commit to it.","commit_id":"a9bb24214b790696894221d5cbe742eb8102a797"}],"keystone/tests/unit/test_backend_ldap.py":[{"author":{"_account_id":16277,"name":"Pradeep Kumar Singh","email":"ps4openstack@gmail.com","username":"pradeep_singh"},"change_message_id":"804ed9e1efd8349abff2df5d056e253be61b4fe2","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import copy"},{"line_number":18,"context_line":"import uuid"},{"line_number":19,"context_line":"import six"},{"line_number":20,"context_line":"import ldap"},{"line_number":21,"context_line":"import mock"},{"line_number":22,"context_line":"from oslo_config import cfg"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_ba463ebe","line":19,"updated":"2015-07-08 05:42:03.000000000","message":"+1 david","commit_id":"a9bb24214b790696894221d5cbe742eb8102a797"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"1ed5b1c01daa127c41f2a529e4c05a0b8e8c215c","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import copy"},{"line_number":18,"context_line":"import uuid"},{"line_number":19,"context_line":"import six"},{"line_number":20,"context_line":"import ldap"},{"line_number":21,"context_line":"import mock"},{"line_number":22,"context_line":"from oslo_config import cfg"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_c54328ae","line":19,"updated":"2015-07-08 04:15:59.000000000","message":"This should be in the third-party section: http://docs.openstack.org/developer/hacking/#import-order-template","commit_id":"a9bb24214b790696894221d5cbe742eb8102a797"},{"author":{"_account_id":16277,"name":"Pradeep Kumar Singh","email":"ps4openstack@gmail.com","username":"pradeep_singh"},"change_message_id":"804ed9e1efd8349abff2df5d056e253be61b4fe2","unresolved":false,"context_lines":[{"line_number":1348,"context_line":""},{"line_number":1349,"context_line":"    def test_wrong_ldap_scope(self):"},{"line_number":1350,"context_line":"        self.config_fixture.config(group\u003d\u0027ldap\u0027, query_scope\u003duuid.uuid4().hex)"},{"line_number":1351,"context_line":"        six.assertRaisesRegex("},{"line_number":1352,"context_line":"            ValueError,"},{"line_number":1353,"context_line":"            \u0027Invalid LDAP scope: %s. *\u0027 % CONF.ldap.query_scope,"},{"line_number":1354,"context_line":"            identity.backends.ldap.Identity)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_3a322e5f","line":1351,"updated":"2015-07-08 05:42:03.000000000","message":"looks like you forgot to add \u0027self\u0027 here before \u0027ValueError\u0027","commit_id":"a9bb24214b790696894221d5cbe742eb8102a797"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"e3b771a5a338567c83727d87472d609de6b4c3a1","unresolved":false,"context_lines":[{"line_number":1348,"context_line":""},{"line_number":1349,"context_line":"    def test_wrong_ldap_scope(self):"},{"line_number":1350,"context_line":"        self.config_fixture.config(group\u003d\u0027ldap\u0027, query_scope\u003duuid.uuid4().hex)"},{"line_number":1351,"context_line":"        six.assertRaisesRegex("},{"line_number":1352,"context_line":"            ValueError,"},{"line_number":1353,"context_line":"            \u0027Invalid LDAP scope: %s. *\u0027 % CONF.ldap.query_scope,"},{"line_number":1354,"context_line":"            identity.backends.ldap.Identity)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_49e872e2","line":1351,"in_reply_to":"ba3cc151_3a322e5f","updated":"2015-07-08 16:37:23.000000000","message":"That was what my comment was about on the other module. If we just use the six module directly we can remove our method completely.","commit_id":"a9bb24214b790696894221d5cbe742eb8102a797"},{"author":{"_account_id":16277,"name":"Pradeep Kumar Singh","email":"ps4openstack@gmail.com","username":"pradeep_singh"},"change_message_id":"804ed9e1efd8349abff2df5d056e253be61b4fe2","unresolved":false,"context_lines":[{"line_number":1356,"context_line":"    def test_wrong_alias_dereferencing(self):"},{"line_number":1357,"context_line":"        self.config_fixture.config(group\u003d\u0027ldap\u0027,"},{"line_number":1358,"context_line":"                                   alias_dereferencing\u003duuid.uuid4().hex)"},{"line_number":1359,"context_line":"        six.assertRaisesRegex("},{"line_number":1360,"context_line":"            ValueError,"},{"line_number":1361,"context_line":"            \u0027Invalid LDAP deref option: %s\\.\u0027 % CONF.ldap.alias_dereferencing,"},{"line_number":1362,"context_line":"            identity.backends.ldap.Identity)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_fa4046a7","line":1359,"updated":"2015-07-08 05:42:03.000000000","message":"ditto","commit_id":"a9bb24214b790696894221d5cbe742eb8102a797"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"360b4675f9d3620879328a53e588fd9eb2d7f4f0","unresolved":false,"context_lines":[{"line_number":15,"context_line":"# under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import copy"},{"line_number":18,"context_line":"import uuid"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import ldap"},{"line_number":21,"context_line":"import mock"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a41bdd9_a14d7a9b","side":"PARENT","line":18,"updated":"2015-07-15 15:24:05.000000000","message":"Why did you move this? it\u0027s stdlib","commit_id":"e0eeb1813cc878402edbf7554562096d42e811f2"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"4a1edfffa6e46cd2480e6f064ae9033aacd2138b","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":15,"context_line":"# under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import copy"},{"line_number":18,"context_line":"import ldap"},{"line_number":19,"context_line":"import mock"},{"line_number":20,"context_line":"from oslo_config import cfg"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a41bdd9_61f21208","line":17,"updated":"2015-07-15 15:13:03.000000000","message":"why move uuid? it\u0027s standard lib.","commit_id":"90d3acb97e046ea7c455e6af36655bb878c3e7ee"},{"author":{"_account_id":14867,"name":"Jaivish Kothari(janonymous)","email":"janonymous.codevulture@gmail.com","username":"Janonymous"},"change_message_id":"8d053fdd03c10a0989271e0e897a85d91d0091be","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":15,"context_line":"# under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import copy"},{"line_number":18,"context_line":"import ldap"},{"line_number":19,"context_line":"import mock"},{"line_number":20,"context_line":"from oslo_config import cfg"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a41bdd9_1c060952","line":17,"in_reply_to":"9a41bdd9_61f21208","updated":"2015-07-15 15:45:59.000000000","message":"The reason i moved it was ,flake complained about alphabetical order","commit_id":"90d3acb97e046ea7c455e6af36655bb878c3e7ee"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"4a1edfffa6e46cd2480e6f064ae9033aacd2138b","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from oslo_config import cfg"},{"line_number":21,"context_line":"from testtools import matchers"},{"line_number":22,"context_line":"import uuid"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"import six"},{"line_number":25,"context_line":"from six.moves import range"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9a41bdd9_e1bdc202","line":23,"updated":"2015-07-15 15:13:03.000000000","message":"six and six.moves should be bundled with testtools and oslo_config","commit_id":"90d3acb97e046ea7c455e6af36655bb878c3e7ee"},{"author":{"_account_id":14867,"name":"Jaivish Kothari(janonymous)","email":"janonymous.codevulture@gmail.com","username":"Janonymous"},"change_message_id":"8d053fdd03c10a0989271e0e897a85d91d0091be","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from oslo_config import cfg"},{"line_number":21,"context_line":"from testtools import matchers"},{"line_number":22,"context_line":"import uuid"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"import six"},{"line_number":25,"context_line":"from six.moves import range"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9a41bdd9_30fd31b4","line":23,"in_reply_to":"9a41bdd9_e1bdc202","updated":"2015-07-15 15:45:59.000000000","message":"Done","commit_id":"90d3acb97e046ea7c455e6af36655bb878c3e7ee"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"360b4675f9d3620879328a53e588fd9eb2d7f4f0","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from testtools import matchers"},{"line_number":22,"context_line":"import uuid"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"import six"},{"line_number":25,"context_line":"from six.moves import range"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from keystone.common import cache"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a41bdd9_613a12e9","line":24,"updated":"2015-07-15 15:24:05.000000000","message":"This should go before testtools above","commit_id":"90d3acb97e046ea7c455e6af36655bb878c3e7ee"},{"author":{"_account_id":14867,"name":"Jaivish Kothari(janonymous)","email":"janonymous.codevulture@gmail.com","username":"Janonymous"},"change_message_id":"8d053fdd03c10a0989271e0e897a85d91d0091be","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from testtools import matchers"},{"line_number":22,"context_line":"import uuid"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"import six"},{"line_number":25,"context_line":"from six.moves import range"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from keystone.common import cache"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a41bdd9_10feedad","line":24,"in_reply_to":"9a41bdd9_613a12e9","updated":"2015-07-15 15:45:59.000000000","message":"Done","commit_id":"90d3acb97e046ea7c455e6af36655bb878c3e7ee"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"0c00b920cb99f4cbc608130026618b1796a822ad","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import copy"},{"line_number":18,"context_line":"import uuid"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import ldap"},{"line_number":21,"context_line":"import mock"},{"line_number":22,"context_line":"from oslo_config import cfg"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a41bdd9_f34833ce","side":"PARENT","line":19,"updated":"2015-07-15 16:08:18.000000000","message":"line removal looks unrelated","commit_id":"e0eeb1813cc878402edbf7554562096d42e811f2"}]}
