)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"ab02c61babfe8d4893b6312f4c22e35c5aa3bfe5","unresolved":false,"context_lines":[{"line_number":9,"context_line":"As `extra` column is not a good place to store firmly structured data"},{"line_number":10,"context_line":"we need to move `redelegated_trust_id` and `redelegation_count`"},{"line_number":11,"context_line":"to corresponding columns in the Trust model."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Ic6357b5430529478efc0fb404f447c128e4b4711"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9aa53dc9_54fc73b7","line":12,"updated":"2015-04-09 16:31:12.000000000","message":"this should be tied to a bug","commit_id":"f4515b746ab269a3b64e76600435d0db4594d17e"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"84938368f8bc5f1c9e1d47f2f411c3b911062896","unresolved":false,"context_lines":[{"line_number":9,"context_line":"As `extra` column is not a good place to store firmly structured data"},{"line_number":10,"context_line":"we need to move `redelegated_trust_id` and `redelegation_count`"},{"line_number":11,"context_line":"to corresponding columns in the Trust model."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Ic6357b5430529478efc0fb404f447c128e4b4711"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9aa53dc9_149eeb62","line":12,"in_reply_to":"9aa53dc9_54fc73b7","updated":"2015-04-09 16:39:38.000000000","message":"or a blueprint - not sure yet","commit_id":"f4515b746ab269a3b64e76600435d0db4594d17e"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"a61ebb7eabe4bc8864e7700c41f37d5b5abee404","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add redelegation columns to Trust SQL model"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"As `extra` column is not a good place to store firmly structured data"},{"line_number":10,"context_line":"we need to move `redelegated_trust_id` and `redelegation_count`"},{"line_number":11,"context_line":"to corresponding columns in the Trust model."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"dab17558_2b538c6c","line":9,"updated":"2016-05-10 18:39:53.000000000","message":"YES! Do not store things in \"extra\" if we can avoid it.","commit_id":"368e6bd770df39e104615522402d8a2ae1c44feb"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"a61ebb7eabe4bc8864e7700c41f37d5b5abee404","unresolved":false,"context_lines":[{"line_number":10,"context_line":"we need to move `redelegated_trust_id` and `redelegation_count`"},{"line_number":11,"context_line":"to corresponding columns in the Trust model."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Ic6357b5430529478efc0fb404f447c128e4b4711"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"dab17558_8b4c38c9","line":13,"updated":"2016-05-10 18:39:53.000000000","message":"Please open a bug for this. I\u0027d like to see this tracked.","commit_id":"368e6bd770df39e104615522402d8a2ae1c44feb"}],"keystone/common/sql/migrate_repo/versions/068_add_trust_redelegation.py":[{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"ab02c61babfe8d4893b6312f4c22e35c5aa3bfe5","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    trust_table.create_column(trust_id_column)"},{"line_number":28,"context_line":"    trust_table.create_column(count_column)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    trusts \u003d list(trust_table.select().execute())"},{"line_number":31,"context_line":"    for trust in trusts:"},{"line_number":32,"context_line":"        extra \u003d jsonutils.loads(trust.extra)"},{"line_number":33,"context_line":"        values \u003d {"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa53dc9_b93858f0","line":30,"updated":"2015-04-09 16:31:12.000000000","message":"I wonder what\u0027s the memory footprint of this. How many tokens do we have in large deployments? Won\u0027t they run out of memory if there are 2M tokens (Rally creates this many tokens in one of the tests)","commit_id":"f4515b746ab269a3b64e76600435d0db4594d17e"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"e6da9db4012e8ec2e0ddea85c570cb6de376d8c1","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    trust_table.create_column(trust_id_column)"},{"line_number":28,"context_line":"    trust_table.create_column(count_column)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    trusts \u003d list(trust_table.select().execute())"},{"line_number":31,"context_line":"    for trust in trusts:"},{"line_number":32,"context_line":"        extra \u003d jsonutils.loads(trust.extra)"},{"line_number":33,"context_line":"        values \u003d {"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa53dc9_6ff682fa","line":30,"in_reply_to":"9aa53dc9_14c70b65","updated":"2015-04-09 16:54:28.000000000","message":"oh, right, thank you","commit_id":"f4515b746ab269a3b64e76600435d0db4594d17e"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"84938368f8bc5f1c9e1d47f2f411c3b911062896","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    trust_table.create_column(trust_id_column)"},{"line_number":28,"context_line":"    trust_table.create_column(count_column)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    trusts \u003d list(trust_table.select().execute())"},{"line_number":31,"context_line":"    for trust in trusts:"},{"line_number":32,"context_line":"        extra \u003d jsonutils.loads(trust.extra)"},{"line_number":33,"context_line":"        values \u003d {"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa53dc9_14c70b65","line":30,"in_reply_to":"9aa53dc9_b93858f0","updated":"2015-04-09 16:39:38.000000000","message":"Trusts are not concidered to be as numerous as tokens so it is hardly an issue.","commit_id":"f4515b746ab269a3b64e76600435d0db4594d17e"}],"keystone/common/sql/migrate_repo/versions/073_add_trust_redelegation.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"391891e8d67e91f9e2a284793eced75d8e95d323","unresolved":false,"context_lines":[{"line_number":13,"context_line":"from oslo_serialization import jsonutils"},{"line_number":14,"context_line":"import sqlalchemy as sql"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"TRUST_TABLE \u003d \u0027trust\u0027"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"def upgrade(migrate_engine):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3acd31a7_68a240b0","line":16,"updated":"2015-05-01 15:41:05.000000000","message":"this is only used in one place, do we need a variable for it?","commit_id":"c269dd97e66753023d237b1ab31b25f87ce3d426"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"c9b689627f80cd8e9199c753b04036981d446c83","unresolved":false,"context_lines":[{"line_number":13,"context_line":"from oslo_serialization import jsonutils"},{"line_number":14,"context_line":"import sqlalchemy as sql"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"TRUST_TABLE \u003d \u0027trust\u0027"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"def upgrade(migrate_engine):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3acd31a7_ac0b7e8d","line":16,"in_reply_to":"3acd31a7_68a240b0","updated":"2015-05-05 15:27:16.000000000","message":"Done","commit_id":"c269dd97e66753023d237b1ab31b25f87ce3d426"}],"keystone/tests/unit/test_sql_upgrade.py":[{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"ab02c61babfe8d4893b6312f4c22e35c5aa3bfe5","unresolved":false,"context_lines":[{"line_number":568,"context_line":"            \u0027redelegated_trust_id\u0027: old_trust.pop(\u0027redelegated_trust_id\u0027),"},{"line_number":569,"context_line":"            \u0027redelegation_count\u0027: old_trust.pop(\u0027redelegation_count\u0027)"},{"line_number":570,"context_line":"        }"},{"line_number":571,"context_line":"        old_trust[\u0027extra\u0027] \u003d jsonutils.dumps(old_extra)"},{"line_number":572,"context_line":""},{"line_number":573,"context_line":"        # We test upgrade from 67"},{"line_number":574,"context_line":"        self.upgrade(67)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa53dc9_745bf7f6","line":571,"updated":"2015-04-09 16:31:12.000000000","message":"Is it possible that anything except redelegated_trust_id and redelegation_count will be in extra? If yes, it should be added here.","commit_id":"f4515b746ab269a3b64e76600435d0db4594d17e"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"ab02c61babfe8d4893b6312f4c22e35c5aa3bfe5","unresolved":false,"context_lines":[{"line_number":612,"context_line":""},{"line_number":613,"context_line":"        # Test target data layout"},{"line_number":614,"context_line":"        upgraded_trust \u003d list(self.select_table(\u0027trust\u0027).execute())[0]"},{"line_number":615,"context_line":"        self.assertDictEqual(jsonutils.loads(upgraded_trust.extra), {})"},{"line_number":616,"context_line":"        self.assertEqual(upgraded_trust.redelegated_trust_id,"},{"line_number":617,"context_line":"                         trust[\u0027redelegated_trust_id\u0027])"},{"line_number":618,"context_line":"        self.assertEqual(upgraded_trust.redelegation_count,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9aa53dc9_b4897f77","line":615,"updated":"2015-04-09 16:31:12.000000000","message":"Please change order here and below to (expected, actual).","commit_id":"f4515b746ab269a3b64e76600435d0db4594d17e"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"f943421f6ddad97cd7512312aa171d4216325862","unresolved":false,"context_lines":[{"line_number":622,"context_line":"        upgraded_trust \u003d list(self.select_table(\u0027trust\u0027).execute())[0]"},{"line_number":623,"context_line":"        self.assertDictEqual({\u0027other\u0027: trust[\u0027other\u0027]},"},{"line_number":624,"context_line":"                             jsonutils.loads(upgraded_trust.extra))"},{"line_number":625,"context_line":"        self.assertEqual(upgraded_trust.redelegated_trust_id,"},{"line_number":626,"context_line":"                         trust[\u0027redelegated_trust_id\u0027])"},{"line_number":627,"context_line":"        self.assertEqual(upgraded_trust.redelegation_count,"},{"line_number":628,"context_line":"                         trust[\u0027redelegation_count\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa53dc9_efb97216","line":625,"updated":"2015-04-09 16:55:50.000000000","message":"it should be changed here too","commit_id":"e5464c1b946a062097de5962ac6d0de88712484a"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"86549cffe30f71849de40e213fa7b84d65427895","unresolved":false,"context_lines":[{"line_number":622,"context_line":"        upgraded_trust \u003d list(self.select_table(\u0027trust\u0027).execute())[0]"},{"line_number":623,"context_line":"        self.assertDictEqual({\u0027other\u0027: trust[\u0027other\u0027]},"},{"line_number":624,"context_line":"                             jsonutils.loads(upgraded_trust.extra))"},{"line_number":625,"context_line":"        self.assertEqual(upgraded_trust.redelegated_trust_id,"},{"line_number":626,"context_line":"                         trust[\u0027redelegated_trust_id\u0027])"},{"line_number":627,"context_line":"        self.assertEqual(upgraded_trust.redelegation_count,"},{"line_number":628,"context_line":"                         trust[\u0027redelegation_count\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa53dc9_af800ac1","line":625,"in_reply_to":"9aa53dc9_efb97216","updated":"2015-04-09 17:07:39.000000000","message":"Done","commit_id":"e5464c1b946a062097de5962ac6d0de88712484a"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"f943421f6ddad97cd7512312aa171d4216325862","unresolved":false,"context_lines":[{"line_number":624,"context_line":"                             jsonutils.loads(upgraded_trust.extra))"},{"line_number":625,"context_line":"        self.assertEqual(upgraded_trust.redelegated_trust_id,"},{"line_number":626,"context_line":"                         trust[\u0027redelegated_trust_id\u0027])"},{"line_number":627,"context_line":"        self.assertEqual(upgraded_trust.redelegation_count,"},{"line_number":628,"context_line":"                         trust[\u0027redelegation_count\u0027])"},{"line_number":629,"context_line":""},{"line_number":630,"context_line":"    def populate_user_table(self, with_pass_enab\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa53dc9_cf390ea6","line":627,"updated":"2015-04-09 16:55:50.000000000","message":"and here","commit_id":"e5464c1b946a062097de5962ac6d0de88712484a"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"86549cffe30f71849de40e213fa7b84d65427895","unresolved":false,"context_lines":[{"line_number":624,"context_line":"                             jsonutils.loads(upgraded_trust.extra))"},{"line_number":625,"context_line":"        self.assertEqual(upgraded_trust.redelegated_trust_id,"},{"line_number":626,"context_line":"                         trust[\u0027redelegated_trust_id\u0027])"},{"line_number":627,"context_line":"        self.assertEqual(upgraded_trust.redelegation_count,"},{"line_number":628,"context_line":"                         trust[\u0027redelegation_count\u0027])"},{"line_number":629,"context_line":""},{"line_number":630,"context_line":"    def populate_user_table(self, with_pass_enab\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aa53dc9_8f81c6c5","line":627,"in_reply_to":"9aa53dc9_cf390ea6","updated":"2015-04-09 17:07:39.000000000","message":"Done","commit_id":"e5464c1b946a062097de5962ac6d0de88712484a"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"391891e8d67e91f9e2a284793eced75d8e95d323","unresolved":false,"context_lines":[{"line_number":568,"context_line":"            \u0027redelegation_count\u0027: 3,"},{"line_number":569,"context_line":"            \u0027other\u0027: uuid.uuid4().hex"},{"line_number":570,"context_line":"        }"},{"line_number":571,"context_line":"        old_trust \u003d dict(trust)"},{"line_number":572,"context_line":"        old_extra \u003d {"},{"line_number":573,"context_line":"            \u0027redelegated_trust_id\u0027: old_trust.pop(\u0027redelegated_trust_id\u0027),"},{"line_number":574,"context_line":"            \u0027redelegation_count\u0027: old_trust.pop(\u0027redelegation_count\u0027),"}],"source_content_type":"text/x-python","patch_set":5,"id":"3acd31a7_e87d301d","line":571,"updated":"2015-05-01 15:41:05.000000000","message":"can\u0027t we just make a copy here?","commit_id":"c269dd97e66753023d237b1ab31b25f87ce3d426"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"c9b689627f80cd8e9199c753b04036981d446c83","unresolved":false,"context_lines":[{"line_number":568,"context_line":"            \u0027redelegation_count\u0027: 3,"},{"line_number":569,"context_line":"            \u0027other\u0027: uuid.uuid4().hex"},{"line_number":570,"context_line":"        }"},{"line_number":571,"context_line":"        old_trust \u003d dict(trust)"},{"line_number":572,"context_line":"        old_extra \u003d {"},{"line_number":573,"context_line":"            \u0027redelegated_trust_id\u0027: old_trust.pop(\u0027redelegated_trust_id\u0027),"},{"line_number":574,"context_line":"            \u0027redelegation_count\u0027: old_trust.pop(\u0027redelegation_count\u0027),"}],"source_content_type":"text/x-python","patch_set":5,"id":"3acd31a7_675d7f78","line":571,"in_reply_to":"3acd31a7_e87d301d","updated":"2015-05-05 15:27:16.000000000","message":"Done","commit_id":"c269dd97e66753023d237b1ab31b25f87ce3d426"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"ebe61b4e73b280cbdb1096a513c61215001a647e","unresolved":false,"context_lines":[{"line_number":616,"context_line":"                                          \u0027deleted_at\u0027,"},{"line_number":617,"context_line":"                                          \u0027redelegated_trust_id\u0027,"},{"line_number":618,"context_line":"                                          \u0027redelegation_count\u0027,"},{"line_number":619,"context_line":"                                          \u0027extra\u0027])"},{"line_number":620,"context_line":""},{"line_number":621,"context_line":"        # Test target data layout"},{"line_number":622,"context_line":"        upgraded_trust \u003d list(self.select_table(\u0027trust\u0027).execute())[0]"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aca2d91_8030ae9f","line":619,"updated":"2015-05-08 13:50:13.000000000","message":"I think this could benefit in readability by being broken out into two separate tests: \n\nhttp://cdn.pasteraw.com/8m7sgookyqtvbxsscelizlpkpsm9o59","commit_id":"8f4e8963d96802a62ec420e59181a6066b85fc0a"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"648134a96df9768215973629a4035b3a62744e3c","unresolved":false,"context_lines":[{"line_number":616,"context_line":"                                          \u0027deleted_at\u0027,"},{"line_number":617,"context_line":"                                          \u0027redelegated_trust_id\u0027,"},{"line_number":618,"context_line":"                                          \u0027redelegation_count\u0027,"},{"line_number":619,"context_line":"                                          \u0027extra\u0027])"},{"line_number":620,"context_line":""},{"line_number":621,"context_line":"        # Test target data layout"},{"line_number":622,"context_line":"        upgraded_trust \u003d list(self.select_table(\u0027trust\u0027).execute())[0]"}],"source_content_type":"text/x-python","patch_set":6,"id":"1af94dfe_6121859f","line":619,"in_reply_to":"1aca2d91_8030ae9f","updated":"2016-03-16 15:10:12.000000000","message":"Done","commit_id":"8f4e8963d96802a62ec420e59181a6066b85fc0a"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"a61ebb7eabe4bc8864e7700c41f37d5b5abee404","unresolved":false,"context_lines":[{"line_number":790,"context_line":"                                          \u0027deleted_at\u0027,"},{"line_number":791,"context_line":"                                          \u0027redelegated_trust_id\u0027,"},{"line_number":792,"context_line":"                                          \u0027redelegation_count\u0027,"},{"line_number":793,"context_line":"                                          \u0027extra\u0027])"},{"line_number":794,"context_line":""},{"line_number":795,"context_line":"    def test_add_trust_redelegation_data_layout(self):"},{"line_number":796,"context_line":"        # Fixture"}],"source_content_type":"text/x-python","patch_set":8,"id":"dab17558_eb5ce47e","line":793,"updated":"2016-05-10 18:39:53.000000000","message":"Please add an assert that the new columns are null/empty here.","commit_id":"368e6bd770df39e104615522402d8a2ae1c44feb"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"a61ebb7eabe4bc8864e7700c41f37d5b5abee404","unresolved":false,"context_lines":[{"line_number":833,"context_line":"        self.upgrade(96)"},{"line_number":834,"context_line":""},{"line_number":835,"context_line":"        # Test target data layout"},{"line_number":836,"context_line":"        self.initialize_sql()"},{"line_number":837,"context_line":"        upgraded_trust \u003d list(self.select_table(\u0027trust\u0027).execute())[0]"},{"line_number":838,"context_line":"        self.assertDictEqual({\u0027other\u0027: trust[\u0027other\u0027]},"},{"line_number":839,"context_line":"                             jsonutils.loads(upgraded_trust.extra))"}],"source_content_type":"text/x-python","patch_set":8,"id":"dab17558_4b56d05c","line":836,"updated":"2016-05-10 18:39:53.000000000","message":"Is this the right approach (reinitializing sql?) I think you need just a new metadata object.\nMore of a nit / question, but not worth blocking this review over.","commit_id":"368e6bd770df39e104615522402d8a2ae1c44feb"}]}
