)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"99cf00035f79d5eadfb5863eccf4975f2d4c6bd8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"c607bde1_7f7d9f8e","updated":"2024-08-28 13:44:14.000000000","message":"Just curious whether we need to consider upgrade scenario here, there are two ways to consider it.\n\nOption 1: Instead of renaming existing value in db I think we should insert new property with existing value and then in following cycle delete the existing properties.\n\nOption 2: In code wherever old properties are used, we should also check new property name with OR condition and then remove old property key from the code in following cycle.","commit_id":"76dfa5a37bfc4aa3f357152846c56152f0e960a7"},{"author":{"_account_id":28271,"name":"Josephine Seifert","email":"josephine.seifert@cloudandheat.com","username":"josei"},"change_message_id":"c77d77c95dffa5771f5cb405ea30fe61d222ba97","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"59f20b19_a04b5ba0","updated":"2024-08-28 07:24:40.000000000","message":"Thank you Abhishek, that really solved my problems. Now I can run the migration.","commit_id":"76dfa5a37bfc4aa3f357152846c56152f0e960a7"},{"author":{"_account_id":28271,"name":"Josephine Seifert","email":"josephine.seifert@cloudandheat.com","username":"josei"},"change_message_id":"d95b1e5e52bd49acdd4f9878898c7dbf519eab6f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"c7f7d960_2f6a7e73","updated":"2024-08-28 15:00:14.000000000","message":"recheck - 3 unrelated tests failed with a time-out","commit_id":"76dfa5a37bfc4aa3f357152846c56152f0e960a7"},{"author":{"_account_id":28271,"name":"Josephine Seifert","email":"josephine.seifert@cloudandheat.com","username":"josei"},"change_message_id":"bfe0462369838a4845cf2b8796d470f73d2e4f0c","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"bff94f85_37a07816","in_reply_to":"311912da_03de4e70","updated":"2024-08-28 14:21:26.000000000","message":"yeah this patch depends on the glance patch - I have this in the commit message:\n\"Depends-On: I3a030b1e044653a6470377f58eeed5baf779b7c3\".\nSo this patch will only be merged, when the other Glance patch for the Image Encryption is merged, right?","commit_id":"76dfa5a37bfc4aa3f357152846c56152f0e960a7"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"0bd3d84cd6990d017855e044bb71d6a562e98822","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"311912da_03de4e70","in_reply_to":"9bc94803_891d367a","updated":"2024-08-28 14:17:44.000000000","message":"yeah, this is sufficient but I think this should get merged prior to migration chnage.","commit_id":"76dfa5a37bfc4aa3f357152846c56152f0e960a7"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"5d1f47188e37e2a17bcd81e6b8bc30cf90a77c43","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"1a481dd7_77a5d89b","in_reply_to":"bff94f85_37a07816","updated":"2024-08-28 14:34:18.000000000","message":"Yep, sorry I missed that","commit_id":"76dfa5a37bfc4aa3f357152846c56152f0e960a7"},{"author":{"_account_id":28271,"name":"Josephine Seifert","email":"josephine.seifert@cloudandheat.com","username":"josei"},"change_message_id":"28580f9d9292dd8b6f29b012871754823dd26ffa","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"9bc94803_891d367a","in_reply_to":"c607bde1_7f7d9f8e","updated":"2024-08-28 14:14:53.000000000","message":"regarding Option 2: We have this in the Cinder and Glance patches for the Image Encryption. E.g.: https://review.opendev.org/c/openstack/cinder/+/926298/3/cinder/image/glance.py\n\nSo would this be sufficient?","commit_id":"76dfa5a37bfc4aa3f357152846c56152f0e960a7"},{"author":{"_account_id":28271,"name":"Josephine Seifert","email":"josephine.seifert@cloudandheat.com","username":"josei"},"change_message_id":"8daa1e2ec1ab09c4b9bd5969c3216072b02513d5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"76f51923_bf110d20","updated":"2025-08-27 13:14:50.000000000","message":"Hi, to follow up on this patch (and image encryption at all): was everything answered sufficiently? Is there still anything blocking?","commit_id":"249ca7dc00c9903bfd977455e246b6ce41a4925b"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"9f89f8f748987e778d9a2315424349dd5ac735f6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"221142be_0d00e62c","updated":"2025-07-08 15:16:15.000000000","message":"Just a couple of questions, but I\u0027m not super familiar with alembic migrations so I might just be confused.\n\n@akekane@redhat.com We always have db migration patches as separate patches, right? No chance this can be squashed with https://review.opendev.org/c/openstack/glance/+/926295 ?","commit_id":"249ca7dc00c9903bfd977455e246b6ce41a4925b"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"eacf58f796d22afa508ddbe26d301afe1d9bf3fe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"429da8ef_03d717d9","in_reply_to":"221142be_0d00e62c","updated":"2025-07-08 15:50:20.000000000","message":"why do you want to be a part of #926295 any specific reason?\nI think it should be better to be a separate one.","commit_id":"249ca7dc00c9903bfd977455e246b6ce41a4925b"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"bbc2c231b595059981696cfd91bafd81da32c0cc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"3ca5e3f3_cdd4020c","updated":"2025-12-11 16:40:01.000000000","message":"Also you need to add functional tests for this change.","commit_id":"e45826d3a1114eeea29b4f4f6e9e1a88149305e0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"0ba9bf885b94e9c3403189f32e63b6d964339f0a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"13e33ccc_49efba80","updated":"2025-12-11 15:40:23.000000000","message":"Hi Luzi,\nCould you please try suggested changes? Let me know whether it works or not!","commit_id":"e45826d3a1114eeea29b4f4f6e9e1a88149305e0"},{"author":{"_account_id":28271,"name":"Josephine Seifert","email":"josephine.seifert@cloudandheat.com","username":"josei"},"change_message_id":"e06e0c91212641be3ee5556f562d96208e590a53","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"9fb5a099_2447a8f5","updated":"2025-12-12 09:37:56.000000000","message":"Thank you Abhishek, it works now. I will add unit tests soon.","commit_id":"bfec46cbeb6d26eed5a605955c98306551f8bd31"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"681e509251b54e01ada156c27badf35e34ec6126","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"cecd8cdc_a1abc081","updated":"2025-12-12 09:44:14.000000000","message":"luzi glad it worked, let me know if you need help in adding functional tests","commit_id":"bfec46cbeb6d26eed5a605955c98306551f8bd31"}],"glance/db/sqlalchemy/alembic_migrations/data_migrations/2024_2_migrate01_rename_encryption_metadata.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"23750163609d34784086ae2b094c21ff39c1c3de","unresolved":true,"context_lines":[{"line_number":25,"context_line":"    meta \u003d MetaData()"},{"line_number":26,"context_line":"    image_properties \u003d Table(\u0027image_properties\u0027, meta, autoload_with\u003dengine)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    cinder_key \u003d \u0027cinder_encryption_key_id\u0027"},{"line_number":29,"context_line":"    cinder_deletion \u003d \u0027cinder_encryption_key_deletion_policy\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    with engine.connect() as conn:"},{"line_number":32,"context_line":"        rows_with_cinder_metadata \u003d conn.execute("}],"source_content_type":"text/x-python","patch_set":3,"id":"fe106e82_e608c723","line":29,"range":{"start_line":28,"start_character":4,"end_line":29,"end_character":61},"updated":"2024-08-28 04:52:05.000000000","message":"Also you can move this outside function to make this module level variable so that it can be used in both functions,\n\ndeclare it before line 18 like;\nCINDER_KEY \u003d \u0027cinder_encryption_key_id\u0027\nCINDER_DELETION \u003d \u0027cinder_encryption_key_deletion_policy\u0027","commit_id":"8daa4672b0e88a27e1445aa7e6c4657af1c9064a"},{"author":{"_account_id":28271,"name":"Josephine Seifert","email":"josephine.seifert@cloudandheat.com","username":"josei"},"change_message_id":"c77d77c95dffa5771f5cb405ea30fe61d222ba97","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    meta \u003d MetaData()"},{"line_number":26,"context_line":"    image_properties \u003d Table(\u0027image_properties\u0027, meta, autoload_with\u003dengine)"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    cinder_key \u003d \u0027cinder_encryption_key_id\u0027"},{"line_number":29,"context_line":"    cinder_deletion \u003d \u0027cinder_encryption_key_deletion_policy\u0027"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    with engine.connect() as conn:"},{"line_number":32,"context_line":"        rows_with_cinder_metadata \u003d conn.execute("}],"source_content_type":"text/x-python","patch_set":3,"id":"afec6ffa_048849d3","line":29,"range":{"start_line":28,"start_character":4,"end_line":29,"end_character":61},"in_reply_to":"fe106e82_e608c723","updated":"2024-08-28 07:24:40.000000000","message":"Done","commit_id":"8daa4672b0e88a27e1445aa7e6c4657af1c9064a"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"d9cbb217a965158c1db27e5cabc04c586701dc95","unresolved":true,"context_lines":[{"line_number":31,"context_line":"    with engine.connect() as conn:"},{"line_number":32,"context_line":"        rows_with_cinder_metadata \u003d conn.execute("},{"line_number":33,"context_line":"            select(image_properties.c.name).where("},{"line_number":34,"context_line":"                and_("},{"line_number":35,"context_line":"                    image_properties.c.name \u003d\u003d cinder_key,"},{"line_number":36,"context_line":"                    image_properties.c.name \u003d\u003d cinder_deletion"},{"line_number":37,"context_line":"                )"}],"source_content_type":"text/x-python","patch_set":3,"id":"f3f93557_fea14182","line":34,"range":{"start_line":34,"start_character":16,"end_line":34,"end_character":20},"updated":"2024-08-27 14:10:35.000000000","message":"I think you need to separate this with or\n\nhttps://paste.openstack.org/show/bkJzD1JH0FD0pVLCMv1q/","commit_id":"8daa4672b0e88a27e1445aa7e6c4657af1c9064a"},{"author":{"_account_id":28271,"name":"Josephine Seifert","email":"josephine.seifert@cloudandheat.com","username":"josei"},"change_message_id":"c77d77c95dffa5771f5cb405ea30fe61d222ba97","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    with engine.connect() as conn:"},{"line_number":32,"context_line":"        rows_with_cinder_metadata \u003d conn.execute("},{"line_number":33,"context_line":"            select(image_properties.c.name).where("},{"line_number":34,"context_line":"                and_("},{"line_number":35,"context_line":"                    image_properties.c.name \u003d\u003d cinder_key,"},{"line_number":36,"context_line":"                    image_properties.c.name \u003d\u003d cinder_deletion"},{"line_number":37,"context_line":"                )"}],"source_content_type":"text/x-python","patch_set":3,"id":"e6142e65_299884cb","line":34,"range":{"start_line":34,"start_character":16,"end_line":34,"end_character":20},"in_reply_to":"f3f93557_fea14182","updated":"2024-08-28 07:24:40.000000000","message":"Done","commit_id":"8daa4672b0e88a27e1445aa7e6c4657af1c9064a"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"23750163609d34784086ae2b094c21ff39c1c3de","unresolved":true,"context_lines":[{"line_number":78,"context_line":"    image_properties \u003d Table(\u0027image_properties\u0027, metadata,"},{"line_number":79,"context_line":"                             autoload_with\u003dengine)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    return _rename_cinder_encryption_parameters(image_properties)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bc9216b3_0593ee6b","line":81,"range":{"start_line":81,"start_character":48,"end_line":81,"end_character":64},"updated":"2024-08-28 04:52:05.000000000","message":"I think you also need to pass engine here as a parameter","commit_id":"8daa4672b0e88a27e1445aa7e6c4657af1c9064a"},{"author":{"_account_id":28271,"name":"Josephine Seifert","email":"josephine.seifert@cloudandheat.com","username":"josei"},"change_message_id":"c77d77c95dffa5771f5cb405ea30fe61d222ba97","unresolved":false,"context_lines":[{"line_number":78,"context_line":"    image_properties \u003d Table(\u0027image_properties\u0027, metadata,"},{"line_number":79,"context_line":"                             autoload_with\u003dengine)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    return _rename_cinder_encryption_parameters(image_properties)"}],"source_content_type":"text/x-python","patch_set":3,"id":"78e4c86b_9370606a","line":81,"range":{"start_line":81,"start_character":48,"end_line":81,"end_character":64},"in_reply_to":"bc9216b3_0593ee6b","updated":"2024-08-28 07:24:40.000000000","message":"Done","commit_id":"8daa4672b0e88a27e1445aa7e6c4657af1c9064a"}],"glance/db/sqlalchemy/alembic_migrations/data_migrations/2026_1_migrate01_rename_encryption_metadata.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"0ba9bf885b94e9c3403189f32e63b6d964339f0a","unresolved":true,"context_lines":[{"line_number":25,"context_line":"    there are rows with the name \u0027cinder_encryption_key_id\u0027 or"},{"line_number":26,"context_line":"    \u0027cinder_encryption_key_deletion_policy\u0027."},{"line_number":27,"context_line":"    \"\"\""},{"line_number":28,"context_line":"    meta \u003d MetaData()"},{"line_number":29,"context_line":"    image_properties \u003d Table(\u0027image_properties\u0027, meta, autoload_with\u003dengine)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    with engine.connect() as conn:"}],"source_content_type":"text/x-python","patch_set":10,"id":"e8c43da9_8db564d6","line":28,"updated":"2025-12-11 15:40:23.000000000","message":"```suggestion\n    meta \u003d MetaData()\n    image_properties \u003d Table(\u0027image_properties\u0027, meta, autoload_with\u003dengine)\n\n    with engine.connect() as conn:\n        result \u003d conn.execute(\n            select(image_properties.c.name).where(\n                or_(\n                    image_properties.c.name \u003d\u003d CINDER_KEY,\n                    image_properties.c.name \u003d\u003d CINDER_DELETION\n                )\n            ).limit(1)\n        )\n        # Fetch the first row to check if any exist\n        row \u003d result.fetchone()\n\n    return row is not None\n```","commit_id":"e45826d3a1114eeea29b4f4f6e9e1a88149305e0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"4274b877c01eb5b52a6fb80801db08ad2fc4951b","unresolved":true,"context_lines":[{"line_number":25,"context_line":"    there are rows with the name \u0027cinder_encryption_key_id\u0027 or"},{"line_number":26,"context_line":"    \u0027cinder_encryption_key_deletion_policy\u0027."},{"line_number":27,"context_line":"    \"\"\""},{"line_number":28,"context_line":"    meta \u003d MetaData()"},{"line_number":29,"context_line":"    image_properties \u003d Table(\u0027image_properties\u0027, meta, autoload_with\u003dengine)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    with engine.connect() as conn:"}],"source_content_type":"text/x-python","patch_set":10,"id":"8cdaac65_1dbc93d7","line":28,"in_reply_to":"678e1a7f_7ccf10bf","updated":"2025-12-11 16:50:39.000000000","message":"The issue is that has_migrations() uses rowcount, which returns -1 for SELECT in SQLAlchemy 2.0, so it always returns False. So better to make suggested changes","commit_id":"e45826d3a1114eeea29b4f4f6e9e1a88149305e0"},{"author":{"_account_id":28271,"name":"Josephine Seifert","email":"josephine.seifert@cloudandheat.com","username":"josei"},"change_message_id":"e06e0c91212641be3ee5556f562d96208e590a53","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    there are rows with the name \u0027cinder_encryption_key_id\u0027 or"},{"line_number":26,"context_line":"    \u0027cinder_encryption_key_deletion_policy\u0027."},{"line_number":27,"context_line":"    \"\"\""},{"line_number":28,"context_line":"    meta \u003d MetaData()"},{"line_number":29,"context_line":"    image_properties \u003d Table(\u0027image_properties\u0027, meta, autoload_with\u003dengine)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    with engine.connect() as conn:"}],"source_content_type":"text/x-python","patch_set":10,"id":"17ef26ce_a8daebc8","line":28,"in_reply_to":"8cdaac65_1dbc93d7","updated":"2025-12-12 09:37:56.000000000","message":"I integrated it.","commit_id":"e45826d3a1114eeea29b4f4f6e9e1a88149305e0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"cd9e82213f320a9ecc363e0433ff8c2476586429","unresolved":true,"context_lines":[{"line_number":25,"context_line":"    there are rows with the name \u0027cinder_encryption_key_id\u0027 or"},{"line_number":26,"context_line":"    \u0027cinder_encryption_key_deletion_policy\u0027."},{"line_number":27,"context_line":"    \"\"\""},{"line_number":28,"context_line":"    meta \u003d MetaData()"},{"line_number":29,"context_line":"    image_properties \u003d Table(\u0027image_properties\u0027, meta, autoload_with\u003dengine)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    with engine.connect() as conn:"}],"source_content_type":"text/x-python","patch_set":10,"id":"678e1a7f_7ccf10bf","line":28,"in_reply_to":"e8c43da9_8db564d6","updated":"2025-12-11 16:36:07.000000000","message":"this is just improvement, the other change at line #61 should be enough for this to work","commit_id":"e45826d3a1114eeea29b4f4f6e9e1a88149305e0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"0ba9bf885b94e9c3403189f32e63b6d964339f0a","unresolved":true,"context_lines":[{"line_number":58,"context_line":"    \u0027os_encrypt_key_deletion_policy\u0027"},{"line_number":59,"context_line":"    \"\"\""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    with engine.connect() as conn:"},{"line_number":62,"context_line":"        migrated_rows1 \u003d conn.execute("},{"line_number":63,"context_line":"            images.update().values("},{"line_number":64,"context_line":"                container_format\u003d\u0027luks\u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"d87d2ea6_f376b100","line":61,"range":{"start_line":61,"start_character":3,"end_line":61,"end_character":34},"updated":"2025-12-11 15:40:23.000000000","message":"```suggestion\n    with engine.connect() as conn, conn.begin():\n```","commit_id":"e45826d3a1114eeea29b4f4f6e9e1a88149305e0"},{"author":{"_account_id":28271,"name":"Josephine Seifert","email":"josephine.seifert@cloudandheat.com","username":"josei"},"change_message_id":"e06e0c91212641be3ee5556f562d96208e590a53","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    \u0027os_encrypt_key_deletion_policy\u0027"},{"line_number":59,"context_line":"    \"\"\""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    with engine.connect() as conn:"},{"line_number":62,"context_line":"        migrated_rows1 \u003d conn.execute("},{"line_number":63,"context_line":"            images.update().values("},{"line_number":64,"context_line":"                container_format\u003d\u0027luks\u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"96c06d56_3ff78afc","line":61,"range":{"start_line":61,"start_character":3,"end_line":61,"end_character":34},"in_reply_to":"d87d2ea6_f376b100","updated":"2025-12-12 09:37:56.000000000","message":"Thank you, that solved the problem.","commit_id":"e45826d3a1114eeea29b4f4f6e9e1a88149305e0"}],"glance/db/sqlalchemy/alembic_migrations/versions/2025_2_contract01_empty.py":[{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"9f89f8f748987e778d9a2315424349dd5ac735f6","unresolved":true,"context_lines":[{"line_number":17,"context_line":"revision \u003d \u00272024_2_contract01\u0027"},{"line_number":18,"context_line":"down_revision \u003d \u00272024_1_contract01\u0027"},{"line_number":19,"context_line":"branch_labels \u003d None"},{"line_number":20,"context_line":"depends_on \u003d \u00272024_2_expand01\u0027"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"def upgrade():"}],"source_content_type":"text/x-python","patch_set":7,"id":"1866c714_571daa87","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":10},"updated":"2025-07-08 15:16:15.000000000","message":"Shouldn\u0027t these read 2025?","commit_id":"249ca7dc00c9903bfd977455e246b6ce41a4925b"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"eacf58f796d22afa508ddbe26d301afe1d9bf3fe","unresolved":true,"context_lines":[{"line_number":17,"context_line":"revision \u003d \u00272024_2_contract01\u0027"},{"line_number":18,"context_line":"down_revision \u003d \u00272024_1_contract01\u0027"},{"line_number":19,"context_line":"branch_labels \u003d None"},{"line_number":20,"context_line":"depends_on \u003d \u00272024_2_expand01\u0027"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"def upgrade():"}],"source_content_type":"text/x-python","patch_set":7,"id":"b083a131_1b477a18","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":10},"in_reply_to":"1866c714_571daa87","updated":"2025-07-08 15:50:20.000000000","message":"There were no alembic expand script present for 2025. I should be depend on the last expand operation which was performed.","commit_id":"249ca7dc00c9903bfd977455e246b6ce41a4925b"}],"glance/db/sqlalchemy/alembic_migrations/versions/2025_2_expand01_empty.py":[{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"9f89f8f748987e778d9a2315424349dd5ac735f6","unresolved":true,"context_lines":[{"line_number":22,"context_line":"revision \u003d \u00272024_2_expand01\u0027"},{"line_number":23,"context_line":"down_revision \u003d \u00272024_1_expand01\u0027"},{"line_number":24,"context_line":"branch_labels \u003d None"},{"line_number":25,"context_line":"depends_on \u003d None"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"def upgrade():"}],"source_content_type":"text/x-python","patch_set":7,"id":"5fce57be_313a134a","line":25,"range":{"start_line":25,"start_character":0,"end_line":25,"end_character":10},"updated":"2025-07-08 15:16:15.000000000","message":"Ditto","commit_id":"249ca7dc00c9903bfd977455e246b6ce41a4925b"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"eacf58f796d22afa508ddbe26d301afe1d9bf3fe","unresolved":true,"context_lines":[{"line_number":22,"context_line":"revision \u003d \u00272024_2_expand01\u0027"},{"line_number":23,"context_line":"down_revision \u003d \u00272024_1_expand01\u0027"},{"line_number":24,"context_line":"branch_labels \u003d None"},{"line_number":25,"context_line":"depends_on \u003d None"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"def upgrade():"}],"source_content_type":"text/x-python","patch_set":7,"id":"b3b01c5d_271aab8e","line":25,"range":{"start_line":25,"start_character":0,"end_line":25,"end_character":10},"in_reply_to":"5fce57be_313a134a","updated":"2025-07-08 15:50:20.000000000","message":"Same, this is the beginning of the alembic migration for current cycle so depends_on None is correct here.","commit_id":"249ca7dc00c9903bfd977455e246b6ce41a4925b"}]}
