)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":34538,"name":"Ramil Minishev","display_name":"Ramil Minishev","email":"rminishev@itkey.com","username":"rminishev"},"change_message_id":"dbbf4ddbb9bc9f49d050adb4b2c20f8e7f569d50","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":8,"id":"55f31cad_2240bcea","updated":"2022-05-11 10:13:29.000000000","message":"\u003e Abandoned\n\u003e As we are going to deprecate master branch in this project this patch is not needed anymore.\n\nJust reminder: the project revived and master branch restored.\nMerging patch to master (and Train) will make it available for possible future release migrations.\nDiscovered it during switching from Ubuntu Binary Train to Debian Source Train.","commit_id":"0d06c665fed7d9af2b2ec0807ed460cce33ed3e7"}],"neutron_fwaas/db/migration/alembic_migrations/versions/newton/expand/d6a12e637e28_neutron_fwaas_v2_0.py":[{"author":{"_account_id":935,"name":"James Page","email":"ringo.page@gmail.com","username":"james-page"},"change_message_id":"fc02c42459d127b9a827360d17b6c46f39dca0f7","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        \u0027firewall_group_port_associations_v2\u0027,"},{"line_number":99,"context_line":"        sa.Column(\u0027firewall_group_id\u0027, sa.String(length\u003d36),"},{"line_number":100,"context_line":"                  sa.ForeignKey(\u0027firewall_groups_v2.id\u0027, ondelete\u003d\u0027CASCADE\u0027),"},{"line_number":101,"context_line":"                  primary_key\u003dTrue),"},{"line_number":102,"context_line":"        sa.Column(\u0027port_id\u0027, sa.String(length\u003d36),"},{"line_number":103,"context_line":"                  sa.ForeignKey(\u0027ports.id\u0027, ondelete\u003d\u0027CASCADE\u0027))"},{"line_number":104,"context_line":"    )"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_901eb96e","line":101,"updated":"2019-07-04 05:54:15.000000000","message":"The primary? key for this table needs to be (firewall_group_id + port_id) - firewall_group_id won\u0027t be unique which is the result of the tempest test failure in the check testing.","commit_id":"8da33d631ef7f05eae10f422d124623e83c5dfa8"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"daa2558e087a860028f62ab12f501082066be8be","unresolved":false,"context_lines":[{"line_number":104,"context_line":"    op.create_primary_key("},{"line_number":105,"context_line":"        \u0027pk_firewall_group_port_associations_v2\u0027,"},{"line_number":106,"context_line":"        \u0027firewall_group_port_associations_v2\u0027,"},{"line_number":107,"context_line":"        [\u0027firewall_group_id\u0027, \u0027port_id\u0027])"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    op.create_table("},{"line_number":110,"context_line":"        \u0027firewall_policy_rule_associations_v2\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3fa7e38b_6d512236","line":107,"updated":"2019-10-14 20:21:18.000000000","message":"I don\u0027t think that we should allow such change. This will not work for any existing deploylent as it already has db in newer version, right?","commit_id":"0d06c665fed7d9af2b2ec0807ed460cce33ed3e7"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"f53fa41bdde6d92ab8f3dffcd1304bd858c24726","unresolved":false,"context_lines":[{"line_number":104,"context_line":"    op.create_primary_key("},{"line_number":105,"context_line":"        \u0027pk_firewall_group_port_associations_v2\u0027,"},{"line_number":106,"context_line":"        \u0027firewall_group_port_associations_v2\u0027,"},{"line_number":107,"context_line":"        [\u0027firewall_group_id\u0027, \u0027port_id\u0027])"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    op.create_table("},{"line_number":110,"context_line":"        \u0027firewall_policy_rule_associations_v2\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3fa7e38b_c39fbeaf","line":107,"in_reply_to":"3fa7e38b_1dc77566","updated":"2020-02-13 10:53:07.000000000","message":"Agree with Ann. In case where some migration itself fails, such migration needs to be fixed directly. This helps new deployments which hit such migration error. We also need a migration to ensure the change in existing deployments.","commit_id":"0d06c665fed7d9af2b2ec0807ed460cce33ed3e7"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"27d4ae60ad84751bddd2435ed11dcb63b0baa3c7","unresolved":false,"context_lines":[{"line_number":104,"context_line":"    op.create_primary_key("},{"line_number":105,"context_line":"        \u0027pk_firewall_group_port_associations_v2\u0027,"},{"line_number":106,"context_line":"        \u0027firewall_group_port_associations_v2\u0027,"},{"line_number":107,"context_line":"        [\u0027firewall_group_id\u0027, \u0027port_id\u0027])"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    op.create_table("},{"line_number":110,"context_line":"        \u0027firewall_policy_rule_associations_v2\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3fa7e38b_1dc77566","line":107,"in_reply_to":"3fa7e38b_6d512236","updated":"2019-10-15 07:30:18.000000000","message":"As without this key - migration fails with error - such change should be allowed. For old environments this will be fixed with new migration.","commit_id":"0d06c665fed7d9af2b2ec0807ed460cce33ed3e7"}],"neutron_fwaas/db/migration/alembic_migrations/versions/stein/expand/2a0d33e9ef63_add_pk_firewall_group_associations_v2.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"345572be3b405cbaec5587e2caaf62ee9fb4319a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"5faad753_88992ac5","updated":"2019-09-12 18:23:20.000000000","message":"The file is located in stein directory.\nCould you move it to train directory as it is a part of train development?","commit_id":"7d7cd55f12bc302540bab6657991f341d70ab276"}],"neutron_fwaas/db/migration/alembic_migrations/versions/train/expand/2a0d33e9ef63_add_pk_firewall_group_associations_v2.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"f53fa41bdde6d92ab8f3dffcd1304bd858c24726","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"3fa7e38b_680ee933","updated":"2020-02-13 10:53:07.000000000","message":"This file is located under train directory but we are now in the ussuri dev cycle, so it should be located in the \"ussuri\" directory.","commit_id":"0d06c665fed7d9af2b2ec0807ed460cce33ed3e7"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"f53fa41bdde6d92ab8f3dffcd1304bd858c24726","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from alembic import op"},{"line_number":25,"context_line":"from sqlalchemy.engine import reflection"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from oslo_log import log as logging"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3fa7e38b_a80b812a","line":26,"updated":"2020-02-13 10:53:07.000000000","message":"This blank line is unnecessary. All are third-party libs.","commit_id":"0d06c665fed7d9af2b2ec0807ed460cce33ed3e7"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"daa2558e087a860028f62ab12f501082066be8be","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"# revision identifiers, used by Alembic."},{"line_number":31,"context_line":"revision \u003d \u00272a0d33e9ef63\u0027"},{"line_number":32,"context_line":"down_revision \u003d \u0027f24e0d5e5bff\u0027"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3fa7e38b_cd613607","line":32,"updated":"2019-10-14 20:21:18.000000000","message":"do we need down_revision to be defined?","commit_id":"0d06c665fed7d9af2b2ec0807ed460cce33ed3e7"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"bc368f003dba9f5a7a65a588770129beb97490e0","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"# revision identifiers, used by Alembic."},{"line_number":31,"context_line":"revision \u003d \u00272a0d33e9ef63\u0027"},{"line_number":32,"context_line":"down_revision \u003d \u0027f24e0d5e5bff\u0027"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3fa7e38b_45de3610","line":32,"in_reply_to":"3fa7e38b_0375d696","updated":"2020-02-18 10:23:21.000000000","message":"ok, thx :)","commit_id":"0d06c665fed7d9af2b2ec0807ed460cce33ed3e7"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"27d4ae60ad84751bddd2435ed11dcb63b0baa3c7","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"# revision identifiers, used by Alembic."},{"line_number":31,"context_line":"revision \u003d \u00272a0d33e9ef63\u0027"},{"line_number":32,"context_line":"down_revision \u003d \u0027f24e0d5e5bff\u0027"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3fa7e38b_ddd47d22","line":32,"in_reply_to":"3fa7e38b_cd613607","updated":"2019-10-15 07:30:18.000000000","message":"yes, it defines the order of migrations.","commit_id":"0d06c665fed7d9af2b2ec0807ed460cce33ed3e7"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"f53fa41bdde6d92ab8f3dffcd1304bd858c24726","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"# revision identifiers, used by Alembic."},{"line_number":31,"context_line":"revision \u003d \u00272a0d33e9ef63\u0027"},{"line_number":32,"context_line":"down_revision \u003d \u0027f24e0d5e5bff\u0027"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"3fa7e38b_0375d696","line":32,"in_reply_to":"3fa7e38b_ddd47d22","updated":"2020-02-13 10:53:07.000000000","message":"yes, it is required. It defines the order of migration as Ann mentioned.","commit_id":"0d06c665fed7d9af2b2ec0807ed460cce33ed3e7"}]}
