)]}'
{"glance/api/v2/tasks.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"b034d26060b270f0f34e13cc6b03cb0b622d4496","unresolved":true,"context_lines":[{"line_number":292,"context_line":"        if task.request_id:"},{"line_number":293,"context_line":"            task_view[\u0027request_id\u0027] \u003d task.request_id"},{"line_number":294,"context_line":"        if task.user:"},{"line_number":295,"context_line":"            task_view[\u0027user\u0027] \u003d task.user"},{"line_number":296,"context_line":"        if task.expires_at:"},{"line_number":297,"context_line":"            task_view[\u0027expires_at\u0027] \u003d timeutils.isotime(task.expires_at)"},{"line_number":298,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"d38a40c0_7ff5da63","line":295,"updated":"2021-02-04 14:38:31.000000000","message":"If it were me, I would want to see the data store changes come first. Expand the database, and start recording the values into the store. Call that one change that we can review, test, and be sure it hasn\u0027t broken anything.  Then add things like this on top which actually expose the task details, where we can focus on validating the API part.","commit_id":"ed25106392df4143433ff7d2c4ffade163502392"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"b034d26060b270f0f34e13cc6b03cb0b622d4496","unresolved":true,"context_lines":[{"line_number":295,"context_line":"            task_view[\u0027user\u0027] \u003d task.user"},{"line_number":296,"context_line":"        if task.expires_at:"},{"line_number":297,"context_line":"            task_view[\u0027expires_at\u0027] \u003d timeutils.isotime(task.expires_at)"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"        task_view \u003d schema.filter(task_view)  # domain"},{"line_number":300,"context_line":"        return task_view"},{"line_number":301,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"b2277836_1f95abc3","line":298,"updated":"2021-02-04 14:38:31.000000000","message":"Whitespace damage","commit_id":"ed25106392df4143433ff7d2c4ffade163502392"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"b034d26060b270f0f34e13cc6b03cb0b622d4496","unresolved":true,"context_lines":[{"line_number":312,"context_line":"        }"},{"line_number":313,"context_line":"        if task.expires_at:"},{"line_number":314,"context_line":"            task_view[\u0027expires_at\u0027] \u003d timeutils.isotime(task.expires_at)"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"        task_view \u003d schema.filter(task_view)  # domain"},{"line_number":317,"context_line":"        return task_view"},{"line_number":318,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"61475236_d73a6261","line":315,"updated":"2021-02-04 14:38:31.000000000","message":"Whitespace damage","commit_id":"ed25106392df4143433ff7d2c4ffade163502392"}],"glance/db/sqlalchemy/alembic_migrations/versions/wallaby_expand01_add_user_imageid_requestid_to_tasks.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"b034d26060b270f0f34e13cc6b03cb0b622d4496","unresolved":true,"context_lines":[{"line_number":36,"context_line":"    op.add_column(\u0027tasks\u0027, image_id_col)"},{"line_number":37,"context_line":"    op.add_column(\u0027tasks\u0027, request_id_col)"},{"line_number":38,"context_line":"    op.add_column(\u0027tasks\u0027, user_col)"},{"line_number":39,"context_line":"    op.create_index(\u0027ix_tasks_image_id\u0027, \u0027tasks\u0027, [\u0027image_id\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"dcf46808_fcc22577","line":39,"updated":"2021-02-04 14:38:31.000000000","message":"This will index the database synchronously with the db sync during an upgrade. I assume we\u0027re thinking that (a) there\u0027s not a lot of data in this table at any given point such that this will try to index a very large amount of data, pinning the operator in this state for a long time, is that right?\n\nIn nova we try to avoid such things, although adding indexes usually has to be this way for other reasons so I\u0027m not sure there\u0027s a better option. However, I\u0027m just calling out the potential issue that an operator might experience.","commit_id":"ed25106392df4143433ff7d2c4ffade163502392"}],"glance/tests/functional/db/migrations/test_wallaby_expand01.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"0603bd73bed64b0a67d9451a3eab019231f20d60","unresolved":true,"context_lines":[{"line_number":38,"context_line":"        self.assertIn(\u0027user\u0027, tasks.c)"},{"line_number":39,"context_line":"        self.assertTrue(tasks.c.image_id.nullable)"},{"line_number":40,"context_line":"        self.assertTrue(tasks.c.request_id.nullable)"},{"line_number":41,"context_line":"        self.assertTrue(tasks.c.user.nullable)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"class TestWallabyExpand01MySQL(TestWallabyExpand01Mixin,"}],"source_content_type":"text/x-python","patch_set":7,"id":"548d3d41_12f757b2","line":41,"updated":"2021-02-09 14:54:33.000000000","message":"Missing a check for the index here. Looks like there is one prior art example in glance (that I could find):\n\nhttps://github.com/openstack/glance/blob/f2452863e74b563fdb4b1001af76ea492c63c484/glance/tests/functional/db/migrations/test_mitaka01.py#L31-L34\n\nAlso, nova has this helper which works well:\n\nhttps://github.com/openstack/nova/blob/7b5ac717bd338be32414ae25f60a4bfe4c94c0f4/nova/tests/functional/db/api/test_migrations.py#L215-L218","commit_id":"5a17f9dbbc15f95389b91d7c78f3b1f88463ecdc"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"041a8bc21185c92c2ce94360dd57df1fdd1b614f","unresolved":true,"context_lines":[{"line_number":38,"context_line":"        self.assertIn(\u0027user\u0027, tasks.c)"},{"line_number":39,"context_line":"        self.assertTrue(tasks.c.image_id.nullable)"},{"line_number":40,"context_line":"        self.assertTrue(tasks.c.request_id.nullable)"},{"line_number":41,"context_line":"        self.assertTrue(tasks.c.user.nullable)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"class TestWallabyExpand01MySQL(TestWallabyExpand01Mixin,"}],"source_content_type":"text/x-python","patch_set":7,"id":"70ec2ee9_ecae16b0","line":41,"in_reply_to":"548d3d41_12f757b2","updated":"2021-02-10 07:00:49.000000000","message":"Thank you for the inputs,\n\nI will add helper in different patch so that we can replace all other index asserts in one patch.","commit_id":"5a17f9dbbc15f95389b91d7c78f3b1f88463ecdc"}]}
