)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"725d8f1837f05378823e2654c880038e5ec3801a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"7e905a17_e5584315","updated":"2024-05-28 09:02:44.000000000","message":"looks good","commit_id":"134ce4aea5c338ed291f837ecdbc01c526b0fa36"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"44ead2395f98b750caf97c8c5e5c4ff893b87dbf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"f9b2f420_ea1e116f","updated":"2024-06-07 09:16:20.000000000","message":"Changing my vote accordingly to +1.","commit_id":"b6f5917108948200995489ec28a9931738150a64"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"75b31a7510f3428580fa3e6424c424f3776c4707","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"f712eb51_9655a4ce","updated":"2024-11-05 12:52:30.000000000","message":"A new unique constraint since the last review to prevent having two mapping with the same tag to the same instance as libvirt does not support that.\nImpl looks good and manual testing works for me.","commit_id":"1a9f389f555542d801f3bcec2406053810df53b9"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a4156a763c06380742359bed73780c241f938318","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"6cc2869f_28da35e1","updated":"2024-11-13 13:16:26.000000000","message":"I tested the new version and I found a related issue, but the fix should be done by the API change. +1 for the moment, will +2 once I\u0027m done with reviewing all the changes.","commit_id":"1a9f389f555542d801f3bcec2406053810df53b9"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"3f199c8ed0eab418dea8a5fd3899ac5df2158af7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"65a421e6_477f6c2b","updated":"2024-11-14 10:40:54.000000000","message":"Moving my approval to +2 as I said in the patch below.","commit_id":"c0bd6937c4dfe27f495c4681ca49ebad563aa9a9"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d71c2173ea9e647bb9f6eb1c43d5d1a07d5c1eb2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"858c5099_683ffca9","updated":"2024-11-15 09:52:50.000000000","message":"no code change since my last review.Still looks good.","commit_id":"c0bd6937c4dfe27f495c4681ca49ebad563aa9a9"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"394e3fc57b8ff5c5fd905479c5966ce72cdfa1ab","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"2d499a3b_81e5a3c3","updated":"2024-11-20 14:57:09.000000000","message":"still good just a rebase","commit_id":"84f0e8cc8862cbbb8441fbcae0363664d2b48543"}],"nova/db/main/migrations/versions/d60bddf7a903_add_constraint_instance_share_avoid_.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d64eb81725aad04fbac3e5eb4a5cb10532927fef","unresolved":true,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"def upgrade():"},{"line_number":32,"context_line":"    conn \u003d op.get_bind()"},{"line_number":33,"context_line":"    if conn.dialect.name \u003d\u003d \u0027sqlite\u0027:"},{"line_number":34,"context_line":"        op.drop_table(\"share_mapping\")"},{"line_number":35,"context_line":"        op.create_table("},{"line_number":36,"context_line":"            \"share_mapping\","}],"source_content_type":"text/x-python","patch_set":1,"id":"0e78a5a5_55c0fc20","line":33,"updated":"2024-04-30 12:57:46.000000000","message":"we need this as our migration testing uses sqlite and sqlite does not support constraint altering.","commit_id":"fad5c0d275bd7a3bfdfecb43e2d8a94ad83a74f3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f0f077c15c2badb81b3fdba26e53090e711d8f18","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"def upgrade():"},{"line_number":32,"context_line":"    conn \u003d op.get_bind()"},{"line_number":33,"context_line":"    if conn.dialect.name \u003d\u003d \u0027sqlite\u0027:"},{"line_number":34,"context_line":"        op.drop_table(\"share_mapping\")"},{"line_number":35,"context_line":"        op.create_table("},{"line_number":36,"context_line":"            \"share_mapping\","}],"source_content_type":"text/x-python","patch_set":1,"id":"1f993718_6ebad44d","line":33,"in_reply_to":"040c7e7c_0f6bbef3","updated":"2024-05-13 09:35:51.000000000","message":"Done","commit_id":"fad5c0d275bd7a3bfdfecb43e2d8a94ad83a74f3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"3607c441cc33f1c55f547d1e98d616216c750b91","unresolved":true,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"def upgrade():"},{"line_number":32,"context_line":"    conn \u003d op.get_bind()"},{"line_number":33,"context_line":"    if conn.dialect.name \u003d\u003d \u0027sqlite\u0027:"},{"line_number":34,"context_line":"        op.drop_table(\"share_mapping\")"},{"line_number":35,"context_line":"        op.create_table("},{"line_number":36,"context_line":"            \"share_mapping\","}],"source_content_type":"text/x-python","patch_set":1,"id":"040c7e7c_0f6bbef3","line":33,"in_reply_to":"0e78a5a5_55c0fc20","updated":"2024-05-02 08:49:48.000000000","message":"After discussing this on IRC we ended up with a suggestion that drop and recreate the table in all backends as the table is empty as the API is not landed for this feature.\n\nhttps://meetings.opendev.org/irclogs/%23openstack-nova/%23openstack-nova.2024-04-30.log.html#t2024-04-30T16:45:13","commit_id":"fad5c0d275bd7a3bfdfecb43e2d8a94ad83a74f3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"20ccb7ca201390fedc81cedf3980394ae6c2d114","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            \"instance_uuid\","},{"line_number":64,"context_line":"            \"tag\","},{"line_number":65,"context_line":"            name\u003d\"uniq_key_pairs0instance_uuid0tag\","},{"line_number":66,"context_line":"        ),"},{"line_number":67,"context_line":"        sa.Index(\"share_idx\", \"share_id\"),"},{"line_number":68,"context_line":"        sa.Index("},{"line_number":69,"context_line":"            \"share_mapping_instance_uuid_share_id_idx\","}],"source_content_type":"text/x-python","patch_set":11,"id":"97b999a7_2d776dd9","line":66,"updated":"2024-11-04 13:14:14.000000000","message":"OK, looks good to prevent duplicated tags that is not accepted by libvirt.","commit_id":"1a9f389f555542d801f3bcec2406053810df53b9"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"3f199c8ed0eab418dea8a5fd3899ac5df2158af7","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            \"instance_uuid\","},{"line_number":64,"context_line":"            \"tag\","},{"line_number":65,"context_line":"            name\u003d\"uniq_key_pairs0instance_uuid0tag\","},{"line_number":66,"context_line":"        ),"},{"line_number":67,"context_line":"        sa.Index(\"share_idx\", \"share_id\"),"},{"line_number":68,"context_line":"        sa.Index("},{"line_number":69,"context_line":"            \"share_mapping_instance_uuid_share_id_idx\","}],"source_content_type":"text/x-python","patch_set":11,"id":"3b65c1e6_e410acc3","line":66,"in_reply_to":"632172b2_9cf0ec6b","updated":"2024-11-14 10:40:54.000000000","message":"This is now fixed later in the series by a new PS : \n\n```\nstack@sbauza-manila:~/devstack$ openstack server share list vm3\n\nstack@sbauza-manila:~/devstack$ openstack server stop vm3\nstack@sbauza-manila:~/devstack$ openstack server add share --tag share3 vm3 73201aa3-3534-4b0f-925f-859ccca4dd8a\n+-----------------+--------------------------------------------------------------------------------------------------------------+\n| Field           | Value                                                                                                        |\n+-----------------+--------------------------------------------------------------------------------------------------------------+\n| Export Location | 10.0.79.108:6789:/volumes/_nogroup/188d20a1-3bad-4313-9c0c-d7170ce8c52d/50996c88-f1a4-41ed-9845-3764b8616bf0 |\n| Share ID        | 73201aa3-3534-4b0f-925f-859ccca4dd8a                                                                         |\n| Status          | attaching                                                                                                    |\n| Tag             | share3                                                                                                       |\n| UUID            | 91a52011-8859-460b-97f9-e5b2ca3fb466                                                                         |\n+-----------------+--------------------------------------------------------------------------------------------------------------+\nstack@sbauza-manila:~/devstack$ openstack server share list vm3\n+--------------------------------------+----------+--------+\n| Share ID                             | Status   | Tag    |\n+--------------------------------------+----------+--------+\n| 73201aa3-3534-4b0f-925f-859ccca4dd8a | inactive | share3 |\n+--------------------------------------+----------+--------+\nstack@sbauza-manila:~/devstack$ openstack server add share --tag share3dup vm3 73201aa3-3534-4b0f-925f-859ccca4dd8a\nConflictException: 409: Client Error for url: http://10.0.79.108/compute/v2.1/servers/52356520-7e42-4bc6-a604-d3efb20f7224/shares, Share \u002773201aa3-3534-4b0f-925f-859ccca4dd8a\u0027 or tag \u0027share3dup\u0027 already associated to this server.\n```","commit_id":"1a9f389f555542d801f3bcec2406053810df53b9"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a4156a763c06380742359bed73780c241f938318","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            \"instance_uuid\","},{"line_number":64,"context_line":"            \"tag\","},{"line_number":65,"context_line":"            name\u003d\"uniq_key_pairs0instance_uuid0tag\","},{"line_number":66,"context_line":"        ),"},{"line_number":67,"context_line":"        sa.Index(\"share_idx\", \"share_id\"),"},{"line_number":68,"context_line":"        sa.Index("},{"line_number":69,"context_line":"            \"share_mapping_instance_uuid_share_id_idx\","}],"source_content_type":"text/x-python","patch_set":11,"id":"632172b2_9cf0ec6b","line":66,"in_reply_to":"97b999a7_2d776dd9","updated":"2024-11-13 13:16:26.000000000","message":"This is now possible to modify the tag by recreating a new record :  \n\n```\nstack@sbauza-manila:~$ openstack server add share --tag duplicateshare3 2a65a76d-c281-4f5f-956d-19bbdf71c102 18b6f2c9-13c9-4341-8b9a-07277ada0f90\n+----------+--------------------------------------+\n| Field    | Value                                |\n+----------+--------------------------------------+\n| Share ID | 18b6f2c9-13c9-4341-8b9a-07277ada0f90 |\n| Status   | attaching                            |\n| Tag      | duplicateshare3                      |\n+----------+--------------------------------------+\nstack@sbauza-manila:~$ openstack server share list vm2\n+--------------------------------------+----------+-----------------+\n| Share ID                             | Status   | Tag             |\n+--------------------------------------+----------+-----------------+\n| 18b6f2c9-13c9-4341-8b9a-07277ada0f90 | inactive | duplicateshare3 |\n+--------------------------------------+----------+-----------------+\nstack@sbauza-manila:~$ openstack server add share --tag duplicateshare4 2a65a76d-c281-4f5f-956d-19bbdf71c102 18b6f2c9-13c9-4341-8b9a-07277ada0f90\n+----------+--------------------------------------+\n| Field    | Value                                |\n+----------+--------------------------------------+\n| Share ID | 18b6f2c9-13c9-4341-8b9a-07277ada0f90 |\n| Status   | attaching                            |\n| Tag      | duplicateshare4                      |\n+----------+--------------------------------------+\nstack@sbauza-manila:~$ openstack server share list vm2\n+--------------------------------------+----------+-----------------+\n| Share ID                             | Status   | Tag             |\n+--------------------------------------+----------+-----------------+\n| 18b6f2c9-13c9-4341-8b9a-07277ada0f90 | inactive | duplicateshare4 |\n+--------------------------------------+----------+-----------------+\n```\n\nThat said, this issue should be fixed by the API change, not by this DB change.","commit_id":"1a9f389f555542d801f3bcec2406053810df53b9"}],"nova/db/main/models.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f0f077c15c2badb81b3fdba26e53090e711d8f18","unresolved":true,"context_lines":[{"line_number":764,"context_line":"        sa.UniqueConstraint("},{"line_number":765,"context_line":"            \"instance_uuid\","},{"line_number":766,"context_line":"            \"share_id\","},{"line_number":767,"context_line":"            name\u003d\"instance_share_avoid_duplicates\","},{"line_number":768,"context_line":"        ),"},{"line_number":769,"context_line":"    )"},{"line_number":770,"context_line":"    # sqlite\u003e create table my_table(id bigint primary key AUTOINCREMENT,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7019df3f_70764940","line":767,"updated":"2024-05-13 09:35:51.000000000","message":"I\u0027m not sure about the naming as all the other constraints seems to have a structured name. E.g. https://github.com/openstack/nova/blob/7096423b343ffce9622fd078fc2b3a87fd3386f7/nova/db/api/models.py#L308-L310","commit_id":"9cf489d1a705b3430c9b575d4867f3483a7c950f"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"a2a4f20ca62dab9bdee5e084ffa6d377239ee79d","unresolved":false,"context_lines":[{"line_number":764,"context_line":"        sa.UniqueConstraint("},{"line_number":765,"context_line":"            \"instance_uuid\","},{"line_number":766,"context_line":"            \"share_id\","},{"line_number":767,"context_line":"            name\u003d\"instance_share_avoid_duplicates\","},{"line_number":768,"context_line":"        ),"},{"line_number":769,"context_line":"    )"},{"line_number":770,"context_line":"    # sqlite\u003e create table my_table(id bigint primary key AUTOINCREMENT,"}],"source_content_type":"text/x-python","patch_set":2,"id":"977f0c5e_65b9990d","line":767,"in_reply_to":"3c324137_f51b5377","updated":"2024-05-15 16:27:38.000000000","message":"Done","commit_id":"9cf489d1a705b3430c9b575d4867f3483a7c950f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1a3bf3a36c7609d80a717d55d3b9d76a1f3a511a","unresolved":true,"context_lines":[{"line_number":764,"context_line":"        sa.UniqueConstraint("},{"line_number":765,"context_line":"            \"instance_uuid\","},{"line_number":766,"context_line":"            \"share_id\","},{"line_number":767,"context_line":"            name\u003d\"instance_share_avoid_duplicates\","},{"line_number":768,"context_line":"        ),"},{"line_number":769,"context_line":"    )"},{"line_number":770,"context_line":"    # sqlite\u003e create table my_table(id bigint primary key AUTOINCREMENT,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3c324137_f51b5377","line":767,"in_reply_to":"7019df3f_70764940","updated":"2024-05-14 15:04:28.000000000","message":"After a sort IRC discussion we agreed to follow the pattern for consistency","commit_id":"9cf489d1a705b3430c9b575d4867f3483a7c950f"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c542ff466a0197cecb47d424b9847aa2aa928627","unresolved":false,"context_lines":[{"line_number":764,"context_line":"        sa.UniqueConstraint("},{"line_number":765,"context_line":"            \"instance_uuid\","},{"line_number":766,"context_line":"            \"share_id\","},{"line_number":767,"context_line":"            name\u003d\"uniq_key_pairs0instance_uuid0share_id\","},{"line_number":768,"context_line":"        ),"},{"line_number":769,"context_line":"    )"},{"line_number":770,"context_line":"    # sqlite\u003e create table my_table(id bigint primary key AUTOINCREMENT,"}],"source_content_type":"text/x-python","patch_set":3,"id":"67e8d40e_1141a23d","line":767,"updated":"2024-05-31 09:33:20.000000000","message":"okay, the name looks good to me.","commit_id":"134ce4aea5c338ed291f837ecdbc01c526b0fa36"}],"nova/tests/unit/db/main/test_migrations.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f0f077c15c2badb81b3fdba26e53090e711d8f18","unresolved":true,"context_lines":[{"line_number":365,"context_line":"            connection, \u0027share_mapping\u0027, \u0027instance_uuid\u0027)"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"    def _pre_upgrade_d60bddf7a903(self, connection):"},{"line_number":368,"context_line":"        pass"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"    def _check_d60bddf7a903(self, connection):"},{"line_number":371,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":2,"id":"3c4c1388_53d5b30c","line":368,"updated":"2024-05-13 09:35:51.000000000","message":"Can we asset that the constraint not yet exists?","commit_id":"9cf489d1a705b3430c9b575d4867f3483a7c950f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"81ba75c62b2e95acd22cddab44cbc532b363f695","unresolved":true,"context_lines":[{"line_number":365,"context_line":"            connection, \u0027share_mapping\u0027, \u0027instance_uuid\u0027)"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"    def _pre_upgrade_d60bddf7a903(self, connection):"},{"line_number":368,"context_line":"        pass"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"    def _check_d60bddf7a903(self, connection):"},{"line_number":371,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":2,"id":"3d6493b9_a7ee6573","line":368,"in_reply_to":"3c4c1388_53d5b30c","updated":"2024-05-14 13:04:26.000000000","message":"Or add a comment here that it is not easy / possible to get the constraints form the table if it is backed by sqlite.","commit_id":"9cf489d1a705b3430c9b575d4867f3483a7c950f"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"a2a4f20ca62dab9bdee5e084ffa6d377239ee79d","unresolved":false,"context_lines":[{"line_number":365,"context_line":"            connection, \u0027share_mapping\u0027, \u0027instance_uuid\u0027)"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"    def _pre_upgrade_d60bddf7a903(self, connection):"},{"line_number":368,"context_line":"        pass"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"    def _check_d60bddf7a903(self, connection):"},{"line_number":371,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":2,"id":"0f077776_3d9b43c2","line":368,"in_reply_to":"3d6493b9_a7ee6573","updated":"2024-05-15 16:27:38.000000000","message":"Acknowledged","commit_id":"9cf489d1a705b3430c9b575d4867f3483a7c950f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f0f077c15c2badb81b3fdba26e53090e711d8f18","unresolved":true,"context_lines":[{"line_number":368,"context_line":"        pass"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"    def _check_d60bddf7a903(self, connection):"},{"line_number":371,"context_line":"        pass"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"    def test_single_base_revision(self):"},{"line_number":374,"context_line":"        \"\"\"Ensure we only have a single base revision."}],"source_content_type":"text/x-python","patch_set":2,"id":"9c64f207_bd5c7ea8","line":371,"updated":"2024-05-13 09:35:51.000000000","message":"Can we assert that the constraint exists?","commit_id":"9cf489d1a705b3430c9b575d4867f3483a7c950f"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"a2a4f20ca62dab9bdee5e084ffa6d377239ee79d","unresolved":false,"context_lines":[{"line_number":368,"context_line":"        pass"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"    def _check_d60bddf7a903(self, connection):"},{"line_number":371,"context_line":"        pass"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"    def test_single_base_revision(self):"},{"line_number":374,"context_line":"        \"\"\"Ensure we only have a single base revision."}],"source_content_type":"text/x-python","patch_set":2,"id":"451240e1_2a615e8f","line":371,"in_reply_to":"9c64f207_bd5c7ea8","updated":"2024-05-15 16:27:38.000000000","message":"Done","commit_id":"9cf489d1a705b3430c9b575d4867f3483a7c950f"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c542ff466a0197cecb47d424b9847aa2aa928627","unresolved":true,"context_lines":[{"line_number":368,"context_line":"        # Verifying the presence or absence of the uniqueness constraint"},{"line_number":369,"context_line":"        # does not seem trivial, especially for SQLite. Instead of checking"},{"line_number":370,"context_line":"        # here, the test \"test_share_mapping_duplicate\" ensures that we cannot"},{"line_number":371,"context_line":"        # introduce two identical keys into the share_mapping table."},{"line_number":372,"context_line":"        pass"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"    def _check_d60bddf7a903(self, connection):"}],"source_content_type":"text/x-python","patch_set":3,"id":"f12d6a6b_7239dfa6","line":371,"updated":"2024-05-31 09:33:20.000000000","message":"well, you could provide : \n\n```\n  self.assertIndexNotExists(\n            connection, \u0027share_mappings\u0027,\n            \u0027uniq_key_pairs0instance_uuid0share_id\u0027,\n  )\n  \n```","commit_id":"134ce4aea5c338ed291f837ecdbc01c526b0fa36"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"44ead2395f98b750caf97c8c5e5c4ff893b87dbf","unresolved":false,"context_lines":[{"line_number":368,"context_line":"        # Verifying the presence or absence of the uniqueness constraint"},{"line_number":369,"context_line":"        # does not seem trivial, especially for SQLite. Instead of checking"},{"line_number":370,"context_line":"        # here, the test \"test_share_mapping_duplicate\" ensures that we cannot"},{"line_number":371,"context_line":"        # introduce two identical keys into the share_mapping table."},{"line_number":372,"context_line":"        pass"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"    def _check_d60bddf7a903(self, connection):"}],"source_content_type":"text/x-python","patch_set":3,"id":"8ebf2282_8b3b634e","line":371,"in_reply_to":"6884db1e_4a7b72f6","updated":"2024-06-07 09:16:20.000000000","message":"OK, sorry I missed the SQLite point, if we could have some SQLA method for checking UC, it would be nice but apparently we don\u0027t have those.\n\nOK, so let\u0027s agree with the above now, and in case someone from SQLA can tell us how to check UCs, then we could add a follow-up (I guess)","commit_id":"134ce4aea5c338ed291f837ecdbc01c526b0fa36"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"d4dd481faf0d42da1ea6dd024bbcaa93a4cca714","unresolved":true,"context_lines":[{"line_number":368,"context_line":"        # Verifying the presence or absence of the uniqueness constraint"},{"line_number":369,"context_line":"        # does not seem trivial, especially for SQLite. Instead of checking"},{"line_number":370,"context_line":"        # here, the test \"test_share_mapping_duplicate\" ensures that we cannot"},{"line_number":371,"context_line":"        # introduce two identical keys into the share_mapping table."},{"line_number":372,"context_line":"        pass"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"    def _check_d60bddf7a903(self, connection):"}],"source_content_type":"text/x-python","patch_set":3,"id":"6884db1e_4a7b72f6","line":371,"in_reply_to":"f12d6a6b_7239dfa6","updated":"2024-06-03 14:33:25.000000000","message":"Unless if I did somethin wrong in my previous tests, what you are proposing works with mysql/mariadb but not with sqlite.","commit_id":"134ce4aea5c338ed291f837ecdbc01c526b0fa36"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c542ff466a0197cecb47d424b9847aa2aa928627","unresolved":true,"context_lines":[{"line_number":372,"context_line":"        pass"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"    def _check_d60bddf7a903(self, connection):"},{"line_number":375,"context_line":"        pass"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"    def test_single_base_revision(self):"},{"line_number":378,"context_line":"        \"\"\"Ensure we only have a single base revision."}],"source_content_type":"text/x-python","patch_set":3,"id":"2b09fe21_e27bd6d7","line":375,"updated":"2024-05-31 09:33:20.000000000","message":"here, you could say : \n```\n  self.assertIndexExists(\n            connection, \u0027share_mappings\u0027,\n            \u0027uniq_key_pairs0instance_uuid0share_id\u0027,\n  )\n  \n```","commit_id":"134ce4aea5c338ed291f837ecdbc01c526b0fa36"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"d4dd481faf0d42da1ea6dd024bbcaa93a4cca714","unresolved":true,"context_lines":[{"line_number":372,"context_line":"        pass"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"    def _check_d60bddf7a903(self, connection):"},{"line_number":375,"context_line":"        pass"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"    def test_single_base_revision(self):"},{"line_number":378,"context_line":"        \"\"\"Ensure we only have a single base revision."}],"source_content_type":"text/x-python","patch_set":3,"id":"95056f5c_295ab292","line":375,"in_reply_to":"2b09fe21_e27bd6d7","updated":"2024-06-03 14:33:25.000000000","message":"See #371","commit_id":"134ce4aea5c338ed291f837ecdbc01c526b0fa36"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"44ead2395f98b750caf97c8c5e5c4ff893b87dbf","unresolved":false,"context_lines":[{"line_number":372,"context_line":"        pass"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"    def _check_d60bddf7a903(self, connection):"},{"line_number":375,"context_line":"        pass"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"    def test_single_base_revision(self):"},{"line_number":378,"context_line":"        \"\"\"Ensure we only have a single base revision."}],"source_content_type":"text/x-python","patch_set":3,"id":"4d089367_b21566a7","line":375,"in_reply_to":"95056f5c_295ab292","updated":"2024-06-07 09:16:20.000000000","message":"Resolved accordingly.","commit_id":"134ce4aea5c338ed291f837ecdbc01c526b0fa36"}]}
