)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"0c11b897d51839abe1f9ee9a1382ce98c973b22d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"6ad28932_89f0e582","updated":"2024-02-14 21:59:49.000000000","message":"recheck\nKnown issue in oslo.messaging:\ngreenlet.error: cannot switch to a different thread","commit_id":"89096a818139c6a129223486611d814d3b598393"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"2256c7ec0f03b7f5e8687aac5f5a56bc80036c7e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"7bbdea51_3be78fac","updated":"2024-02-12 17:17:46.000000000","message":"recheck\npotential haproxy race condition impacting this","commit_id":"89096a818139c6a129223486611d814d3b598393"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"14fe09129195cb3ec2fec84dbdccc586325ce58b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"28ff3545_eafacdd4","updated":"2024-02-21 17:49:38.000000000","message":"I found only minor issues.","commit_id":"1984252e27fa963c3734abda161c55c0d9c3b0ae"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"167ae4b97a5bac3be8b952908ef58b03aa176b04","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"cfd54cf2_b8d1c558","updated":"2024-02-28 06:30:33.000000000","message":"recheck\ngreenlet.error: cannot switch to a different thread","commit_id":"94d0169d5b20e4acb5e74d61a1423f2b507cd5dc"}],"diskimage-create/README.rst":[{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"6e1a255ddf115a5f06754aaa33a3cf12997b2135","unresolved":true,"context_lines":[{"line_number":277,"context_line":"DIB_OCTAVIA_AMP_USE_NFTABLES"},{"line_number":278,"context_line":"    - Boolean that configures nftables inside the amphora image"},{"line_number":279,"context_line":"    - Required for SR-IOV enabled amphora"},{"line_number":280,"context_line":"    - Default: False"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"Using distribution packages for amphora agent"},{"line_number":283,"context_line":"---------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"2bd0aab6_c78ff152","line":280,"range":{"start_line":280,"start_character":15,"end_line":280,"end_character":20},"updated":"2024-02-16 10:56:41.000000000","message":"you set the default to True in the previous file","commit_id":"89096a818139c6a129223486611d814d3b598393"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"1609d94e16994c5ad68ecab7a3f2861f93bf95f0","unresolved":false,"context_lines":[{"line_number":277,"context_line":"DIB_OCTAVIA_AMP_USE_NFTABLES"},{"line_number":278,"context_line":"    - Boolean that configures nftables inside the amphora image"},{"line_number":279,"context_line":"    - Required for SR-IOV enabled amphora"},{"line_number":280,"context_line":"    - Default: False"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"Using distribution packages for amphora agent"},{"line_number":283,"context_line":"---------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"e0a746b7_fa956e84","line":280,"range":{"start_line":280,"start_character":15,"end_line":280,"end_character":20},"in_reply_to":"2bd0aab6_c78ff152","updated":"2024-02-16 23:25:41.000000000","message":"Done","commit_id":"89096a818139c6a129223486611d814d3b598393"}],"diskimage-create/diskimage-create.sh":[{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"6e1a255ddf115a5f06754aaa33a3cf12997b2135","unresolved":true,"context_lines":[{"line_number":310,"context_line":"fi"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"# Make sure we have a value set for DIB_OCTAVIA_AMP_USE_NFTABLES"},{"line_number":313,"context_line":"export DIB_OCTAVIA_AMP_USE_NFTABLES\u003d${DIB_OCTAVIA_AMP_USE_NFTABLES:-True}"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"export CLOUD_INIT_DATASOURCES\u003d${CLOUD_INIT_DATASOURCES:-\"ConfigDrive\"}"},{"line_number":316,"context_line":""}],"source_content_type":"text/x-sh","patch_set":2,"id":"a87944e6_ae1fd31d","line":313,"range":{"start_line":313,"start_character":68,"end_line":313,"end_character":72},"updated":"2024-02-16 10:56:41.000000000","message":"+1 for that (and not only for SR-IOV)","commit_id":"89096a818139c6a129223486611d814d3b598393"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"1609d94e16994c5ad68ecab7a3f2861f93bf95f0","unresolved":false,"context_lines":[{"line_number":310,"context_line":"fi"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"# Make sure we have a value set for DIB_OCTAVIA_AMP_USE_NFTABLES"},{"line_number":313,"context_line":"export DIB_OCTAVIA_AMP_USE_NFTABLES\u003d${DIB_OCTAVIA_AMP_USE_NFTABLES:-True}"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"export CLOUD_INIT_DATASOURCES\u003d${CLOUD_INIT_DATASOURCES:-\"ConfigDrive\"}"},{"line_number":316,"context_line":""}],"source_content_type":"text/x-sh","patch_set":2,"id":"e50a18c7_769ba387","line":313,"range":{"start_line":313,"start_character":68,"end_line":313,"end_character":72},"in_reply_to":"a87944e6_ae1fd31d","updated":"2024-02-16 23:25:41.000000000","message":"Acknowledged","commit_id":"89096a818139c6a129223486611d814d3b598393"}],"octavia/amphorae/backends/utils/interface.py":[{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"97e49a5ca8f1d19bc0965bbf5068eed7c65242cb","unresolved":true,"context_lines":[{"line_number":186,"context_line":"        try:"},{"line_number":187,"context_line":"            subprocess.check_output(cmd, stderr\u003dsubprocess.STDOUT)"},{"line_number":188,"context_line":"        except Exception as e:"},{"line_number":189,"context_line":"            LOG.error(e.output)"},{"line_number":190,"context_line":"            raise"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"        # Create the chain with -310 priority to put it in front of the"}],"source_content_type":"text/x-python","patch_set":8,"id":"6c1a4e22_0c4570b6","line":189,"range":{"start_line":189,"start_character":22,"end_line":189,"end_character":30},"updated":"2024-02-28 10:19:49.000000000","message":"as `e` is an instance of `Exception`, it may have no output attribute\n\nI suggest that we catch only subprocess.CalledProcessError, other exceptions will be raised anyway","commit_id":"94d0169d5b20e4acb5e74d61a1423f2b507cd5dc"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"dc39568073772d3ccd121b4574ab3f852170e97e","unresolved":false,"context_lines":[{"line_number":186,"context_line":"        try:"},{"line_number":187,"context_line":"            subprocess.check_output(cmd, stderr\u003dsubprocess.STDOUT)"},{"line_number":188,"context_line":"        except Exception as e:"},{"line_number":189,"context_line":"            LOG.error(e.output)"},{"line_number":190,"context_line":"            raise"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"        # Create the chain with -310 priority to put it in front of the"}],"source_content_type":"text/x-python","patch_set":8,"id":"c1e41a9c_9e408525","line":189,"range":{"start_line":189,"start_character":22,"end_line":189,"end_character":30},"in_reply_to":"6c1a4e22_0c4570b6","updated":"2024-02-28 16:00:01.000000000","message":"Done","commit_id":"94d0169d5b20e4acb5e74d61a1423f2b507cd5dc"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"97e49a5ca8f1d19bc0965bbf5068eed7c65242cb","unresolved":true,"context_lines":[{"line_number":199,"context_line":"        try:"},{"line_number":200,"context_line":"            subprocess.check_output(cmd, stderr\u003dsubprocess.STDOUT)"},{"line_number":201,"context_line":"        except Exception as e:"},{"line_number":202,"context_line":"            LOG.error(e.output)"},{"line_number":203,"context_line":"            raise"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        nftable_utils.write_nftable_vip_rules_file(interface.name, [])"}],"source_content_type":"text/x-python","patch_set":8,"id":"15e0d0cd_f044adbb","line":202,"range":{"start_line":202,"start_character":24,"end_line":202,"end_character":30},"updated":"2024-02-28 10:19:49.000000000","message":"same here","commit_id":"94d0169d5b20e4acb5e74d61a1423f2b507cd5dc"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"dc39568073772d3ccd121b4574ab3f852170e97e","unresolved":false,"context_lines":[{"line_number":199,"context_line":"        try:"},{"line_number":200,"context_line":"            subprocess.check_output(cmd, stderr\u003dsubprocess.STDOUT)"},{"line_number":201,"context_line":"        except Exception as e:"},{"line_number":202,"context_line":"            LOG.error(e.output)"},{"line_number":203,"context_line":"            raise"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        nftable_utils.write_nftable_vip_rules_file(interface.name, [])"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f67f799_82f91890","line":202,"range":{"start_line":202,"start_character":24,"end_line":202,"end_character":30},"in_reply_to":"15e0d0cd_f044adbb","updated":"2024-02-28 16:00:01.000000000","message":"Done","commit_id":"94d0169d5b20e4acb5e74d61a1423f2b507cd5dc"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"97e49a5ca8f1d19bc0965bbf5068eed7c65242cb","unresolved":true,"context_lines":[{"line_number":208,"context_line":"        try:"},{"line_number":209,"context_line":"            subprocess.check_output(cmd, stderr\u003dsubprocess.STDOUT)"},{"line_number":210,"context_line":"        except Exception as e:"},{"line_number":211,"context_line":"            LOG.error(e.output)"},{"line_number":212,"context_line":"            raise"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    def up(self, interface):"}],"source_content_type":"text/x-python","patch_set":8,"id":"162c0bc6_d2757c56","line":211,"range":{"start_line":211,"start_character":24,"end_line":211,"end_character":30},"updated":"2024-02-28 10:19:49.000000000","message":"same here","commit_id":"94d0169d5b20e4acb5e74d61a1423f2b507cd5dc"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"dc39568073772d3ccd121b4574ab3f852170e97e","unresolved":false,"context_lines":[{"line_number":208,"context_line":"        try:"},{"line_number":209,"context_line":"            subprocess.check_output(cmd, stderr\u003dsubprocess.STDOUT)"},{"line_number":210,"context_line":"        except Exception as e:"},{"line_number":211,"context_line":"            LOG.error(e.output)"},{"line_number":212,"context_line":"            raise"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    def up(self, interface):"}],"source_content_type":"text/x-python","patch_set":8,"id":"342b26f3_edc7e3c2","line":211,"range":{"start_line":211,"start_character":24,"end_line":211,"end_character":30},"in_reply_to":"162c0bc6_d2757c56","updated":"2024-02-28 16:00:01.000000000","message":"Done","commit_id":"94d0169d5b20e4acb5e74d61a1423f2b507cd5dc"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"75690c2ea1813edf75383210bcf9d04b9e137a4d","unresolved":false,"context_lines":[{"line_number":210,"context_line":""},{"line_number":211,"context_line":"        nftable_utils.write_nftable_vip_rules_file(interface.name, [])"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"        cmd \u003d [consts.NFT_CMD, \u0027-o\u0027, \u0027-f\u0027, consts.NFT_VIP_RULES_FILE]"},{"line_number":214,"context_line":"        try:"},{"line_number":215,"context_line":"            subprocess.check_output(cmd, stderr\u003dsubprocess.STDOUT)"},{"line_number":216,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":10,"id":"9d2a9a16_2afaf65a","line":213,"updated":"2024-02-29 03:00:27.000000000","message":"This could be optimized in a later patch to use the nftable_utils.load_nftables_file() introduced in the rules patch in this chain.","commit_id":"d83999f4edd1ec17af68744a8456b479c5fed45b"}],"octavia/amphorae/backends/utils/nftable_utils.py":[{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"14fe09129195cb3ec2fec84dbdccc586325ce58b","unresolved":true,"context_lines":[{"line_number":26,"context_line":"    table_string \u003d f\u0027table {consts.NFT_FAMILY} {consts.NFT_VIP_TABLE} {{\\n\u0027"},{"line_number":27,"context_line":"    chain_string \u003d f\u0027  chain {consts.NFT_VIP_CHAIN} {{\\n\u0027"},{"line_number":28,"context_line":"    hook_string \u003d (f\u0027    type filter hook ingress device {interface_name} \u0027"},{"line_number":29,"context_line":"                   f\u0027priority -310; policy drop;\\n\u0027)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    # Check if an existing rules file exists or we be need to create an"},{"line_number":32,"context_line":"    # \"drop all\" file with no rules except for VRRP. If it exists, we should"}],"source_content_type":"text/x-python","patch_set":4,"id":"54085dfe_8ffb3a55","line":29,"range":{"start_line":29,"start_character":30,"end_line":29,"end_character":34},"updated":"2024-02-21 17:49:38.000000000","message":"You use this value in another file as well. Maybe we should make it a constant?","commit_id":"1984252e27fa963c3734abda161c55c0d9c3b0ae"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"5da0895d9aae868ebceb32deea390c1648793bf4","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    table_string \u003d f\u0027table {consts.NFT_FAMILY} {consts.NFT_VIP_TABLE} {{\\n\u0027"},{"line_number":27,"context_line":"    chain_string \u003d f\u0027  chain {consts.NFT_VIP_CHAIN} {{\\n\u0027"},{"line_number":28,"context_line":"    hook_string \u003d (f\u0027    type filter hook ingress device {interface_name} \u0027"},{"line_number":29,"context_line":"                   f\u0027priority -310; policy drop;\\n\u0027)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    # Check if an existing rules file exists or we be need to create an"},{"line_number":32,"context_line":"    # \"drop all\" file with no rules except for VRRP. If it exists, we should"}],"source_content_type":"text/x-python","patch_set":4,"id":"201e91bd_0734e11e","line":29,"range":{"start_line":29,"start_character":30,"end_line":29,"end_character":34},"in_reply_to":"54085dfe_8ffb3a55","updated":"2024-02-24 22:55:41.000000000","message":"Done","commit_id":"1984252e27fa963c3734abda161c55c0d9c3b0ae"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"14fe09129195cb3ec2fec84dbdccc586325ce58b","unresolved":true,"context_lines":[{"line_number":28,"context_line":"    hook_string \u003d (f\u0027    type filter hook ingress device {interface_name} \u0027"},{"line_number":29,"context_line":"                   f\u0027priority -310; policy drop;\\n\u0027)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    # Check if an existing rules file exists or we be need to create an"},{"line_number":32,"context_line":"    # \"drop all\" file with no rules except for VRRP. If it exists, we should"},{"line_number":33,"context_line":"    # not overwrite it here as it could be a reboot unless we were passed new"},{"line_number":34,"context_line":"    # rules."}],"source_content_type":"text/x-python","patch_set":4,"id":"0147cc8a_98e544c5","line":31,"range":{"start_line":31,"start_character":51,"end_line":31,"end_character":53},"updated":"2024-02-21 17:49:38.000000000","message":"typo","commit_id":"1984252e27fa963c3734abda161c55c0d9c3b0ae"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"5da0895d9aae868ebceb32deea390c1648793bf4","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    hook_string \u003d (f\u0027    type filter hook ingress device {interface_name} \u0027"},{"line_number":29,"context_line":"                   f\u0027priority -310; policy drop;\\n\u0027)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    # Check if an existing rules file exists or we be need to create an"},{"line_number":32,"context_line":"    # \"drop all\" file with no rules except for VRRP. If it exists, we should"},{"line_number":33,"context_line":"    # not overwrite it here as it could be a reboot unless we were passed new"},{"line_number":34,"context_line":"    # rules."}],"source_content_type":"text/x-python","patch_set":4,"id":"3a307734_ba7180a0","line":31,"range":{"start_line":31,"start_character":51,"end_line":31,"end_character":53},"in_reply_to":"0147cc8a_98e544c5","updated":"2024-02-24 22:55:41.000000000","message":"Done","commit_id":"1984252e27fa963c3734abda161c55c0d9c3b0ae"}]}
