)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"ce82b1cf9e646b85ad556bc98d61ae18e0dd472e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"fc2d5587_2b7334bc","updated":"2026-02-19 21:50:43.000000000","message":"recheck gate fixed","commit_id":"71bdb254cfe610a141b83cd49119de093bc299e1"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"733932c444a4fc5d1b23968070fc971e74ebc97b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"516e5abe_0357ca9a","updated":"2026-02-19 11:42:24.000000000","message":"recheck zuul","commit_id":"71bdb254cfe610a141b83cd49119de093bc299e1"}],"neutron/common/ovn/acl.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"c209e26e30f5a3b02e11dcd95852bb68f06e60d6","unresolved":true,"context_lines":[{"line_number":311,"context_line":""},{"line_number":312,"context_line":"    sg_stateful \u003d sg_obj.SecurityGroup.get_sgs_stateful_flag("},{"line_number":313,"context_line":"        admin_context, [security_group_id])"},{"line_number":314,"context_line":"    stateful \u003d bool(sg_stateful[security_group_id])"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"    acl \u003d _add_sg_rule_acl_for_port_group("},{"line_number":317,"context_line":"        pg_name, stateful, security_group_rule)"}],"source_content_type":"text/x-python","patch_set":1,"id":"cb0d8ebb_88bb9d35","line":314,"updated":"2026-02-17 19:59:19.000000000","message":"Just asking so I learn about this call - if we call get_sgs_stateful_flag() but the SG is stateless, does it return a list with the SG in it? It looks from the code, and a test in the SG code that it doesn\u0027t, which could trigger an exception here.\n\nFor example:\n\n        sgs_stateful \u003d securitygroup.SecurityGroup.get_sgs_stateful_flag(\n            self.context, sg_ids)\n        self.assertEqual(len(self.objs), len(sgs_stateful))\n\nI trust it works just not clear to me.","commit_id":"71bdb254cfe610a141b83cd49119de093bc299e1"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"cb1b9f775948fd9cde95a91b9cfdae79d08a4da5","unresolved":false,"context_lines":[{"line_number":311,"context_line":""},{"line_number":312,"context_line":"    sg_stateful \u003d sg_obj.SecurityGroup.get_sgs_stateful_flag("},{"line_number":313,"context_line":"        admin_context, [security_group_id])"},{"line_number":314,"context_line":"    stateful \u003d bool(sg_stateful[security_group_id])"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"    acl \u003d _add_sg_rule_acl_for_port_group("},{"line_number":317,"context_line":"        pg_name, stateful, security_group_rule)"}],"source_content_type":"text/x-python","patch_set":1,"id":"c4789190_5ffef240","line":314,"in_reply_to":"16de7e2b_70bab26d","updated":"2026-02-18 14:59:44.000000000","message":"Thanks for the info, and since in this case it will return an SG we\u0027re good.","commit_id":"71bdb254cfe610a141b83cd49119de093bc299e1"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"084fa64bd0d770982a3edce18b5cc7d2a3f033c9","unresolved":false,"context_lines":[{"line_number":311,"context_line":""},{"line_number":312,"context_line":"    sg_stateful \u003d sg_obj.SecurityGroup.get_sgs_stateful_flag("},{"line_number":313,"context_line":"        admin_context, [security_group_id])"},{"line_number":314,"context_line":"    stateful \u003d bool(sg_stateful[security_group_id])"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"    acl \u003d _add_sg_rule_acl_for_port_group("},{"line_number":317,"context_line":"        pg_name, stateful, security_group_rule)"}],"source_content_type":"text/x-python","patch_set":1,"id":"16de7e2b_70bab26d","line":314,"in_reply_to":"cb0d8ebb_88bb9d35","updated":"2026-02-18 08:45:54.000000000","message":"This is a fair question.\n\nThe method `get_sgs_stateful_flag` is retrieving the DB model directly. This field was added to the `SecurityGroup` model in Ussuri [1].\n\nThe method is directly retrieving the SG ID and the `stateful` fields [2]. All SGs will have both fields, regarding of the type (stateful, stateless).\n\n[1]https://review.opendev.org/c/openstack/neutron/+/572767\n[2]https://github.com/openstack/neutron/blob/7a666213cc06df5735d11b2c534ff1068072f7b4/neutron/objects/securitygroup.py#L136","commit_id":"71bdb254cfe610a141b83cd49119de093bc299e1"}]}
