)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"1479ed1584444f0205aabf2858ecd69f936ca8f0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"470b3585_3ab6b45a","updated":"2026-06-01 14:02:38.000000000","message":"It is stuck in zuul","commit_id":"9470a85b39eeab447b94e1df66b62f34a20f2ccd"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"4226985119f7a287902a99f60b09c4f9b9d14300","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"e9f9dd7c_657b07ed","updated":"2026-06-01 14:00:51.000000000","message":"recheck parent merged","commit_id":"9470a85b39eeab447b94e1df66b62f34a20f2ccd"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"60d9e760d0b72bf361b92d8edaf00378cadcb67d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"42d1fda4_4ce603d3","in_reply_to":"470b3585_3ab6b45a","updated":"2026-06-01 14:03:18.000000000","message":"Ok, now finally is running...","commit_id":"9470a85b39eeab447b94e1df66b62f34a20f2ccd"}],"neutron_fwaas/db/firewall/v2/firewall_db_v2.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"544c630858a9311056c3d186a0e1b6ea2ea3526b","unresolved":true,"context_lines":[{"line_number":445,"context_line":"        return self._make_firewall_rule_dict(fwr_db)"},{"line_number":446,"context_line":""},{"line_number":447,"context_line":"    def delete_firewall_rule(self, context, id):"},{"line_number":448,"context_line":"        fwr \u003d self._get_firewall_rule(context, id)"},{"line_number":449,"context_line":"        # make sure rule is not associated with any policy"},{"line_number":450,"context_line":"        if self.get_policies_with_rule(context, id):"},{"line_number":451,"context_line":"            raise f_exc.FirewallRuleInUse(firewall_rule_id\u003did)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9afe5cde_84dc011e","line":448,"range":{"start_line":448,"start_character":8,"end_line":448,"end_character":50},"updated":"2026-05-27 09:20:16.000000000","message":"Why do you take these commands out of the writer context? It doesn\u0027t make sense.\n\nIMO, these private methods that are going to be called inside another method from this class and inside a db context, should not be wrapped. For example, `_get_firewall_rule` should not have the READER decorator.\n\nBut is ok if we raise an exception from inside a DB context. It should exit at this point. The key point here is that we should NOT catch and dismiss this exception, continuing inside the DB context.","commit_id":"0b6ae689eb86c0d0a6af2868e2941971a7949505"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"23f8275626c7e42b0ab94863150962ee10adedca","unresolved":false,"context_lines":[{"line_number":445,"context_line":"        return self._make_firewall_rule_dict(fwr_db)"},{"line_number":446,"context_line":""},{"line_number":447,"context_line":"    def delete_firewall_rule(self, context, id):"},{"line_number":448,"context_line":"        fwr \u003d self._get_firewall_rule(context, id)"},{"line_number":449,"context_line":"        # make sure rule is not associated with any policy"},{"line_number":450,"context_line":"        if self.get_policies_with_rule(context, id):"},{"line_number":451,"context_line":"            raise f_exc.FirewallRuleInUse(firewall_rule_id\u003did)"}],"source_content_type":"text/x-python","patch_set":1,"id":"6183afa9_f7ea6adf","line":448,"range":{"start_line":448,"start_character":8,"end_line":448,"end_character":50},"in_reply_to":"9afe5cde_84dc011e","updated":"2026-05-27 13:13:02.000000000","message":"changed","commit_id":"0b6ae689eb86c0d0a6af2868e2941971a7949505"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a030c8dc42788d08f3ec1fc83226fedf4743f82f","unresolved":true,"context_lines":[{"line_number":494,"context_line":"            return self._process_rule_for_policy(context, id, firewall_rule_id,"},{"line_number":495,"context_line":"                                                 None, fwpra_db)"},{"line_number":496,"context_line":""},{"line_number":497,"context_line":"    def get_firewall_rule(self, context, id, fields\u003dNone):"},{"line_number":498,"context_line":"        fwr \u003d self._get_firewall_rule(context, id)"},{"line_number":499,"context_line":"        policies \u003d self.get_policies_with_rule(context, id) or None"},{"line_number":500,"context_line":"        return self._make_firewall_rule_dict(fwr, fields, policies\u003dpolicies)"},{"line_number":501,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"f07e9456_145993c1","line":498,"range":{"start_line":497,"start_character":4,"end_line":498,"end_character":50},"updated":"2026-05-27 12:52:59.000000000","message":"ditto","commit_id":"a45703d9151f7395513a272fca0e233bccbbb4d8"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"23f8275626c7e42b0ab94863150962ee10adedca","unresolved":false,"context_lines":[{"line_number":494,"context_line":"            return self._process_rule_for_policy(context, id, firewall_rule_id,"},{"line_number":495,"context_line":"                                                 None, fwpra_db)"},{"line_number":496,"context_line":""},{"line_number":497,"context_line":"    def get_firewall_rule(self, context, id, fields\u003dNone):"},{"line_number":498,"context_line":"        fwr \u003d self._get_firewall_rule(context, id)"},{"line_number":499,"context_line":"        policies \u003d self.get_policies_with_rule(context, id) or None"},{"line_number":500,"context_line":"        return self._make_firewall_rule_dict(fwr, fields, policies\u003dpolicies)"},{"line_number":501,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"705d5bed_18e47d37","line":498,"range":{"start_line":497,"start_character":4,"end_line":498,"end_character":50},"in_reply_to":"f07e9456_145993c1","updated":"2026-05-27 13:13:02.000000000","message":"Done","commit_id":"a45703d9151f7395513a272fca0e233bccbbb4d8"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a030c8dc42788d08f3ec1fc83226fedf4743f82f","unresolved":true,"context_lines":[{"line_number":723,"context_line":"                fwp_db \u003d self._delete_all_rules_from_policy(context, fwp_db)"},{"line_number":724,"context_line":"                context.session.delete(fwp_db)"},{"line_number":725,"context_line":""},{"line_number":726,"context_line":"    def get_firewall_policy(self, context, id, fields\u003dNone):"},{"line_number":727,"context_line":"        fwp \u003d self._get_firewall_policy(context, id)"},{"line_number":728,"context_line":"        return self._make_firewall_policy_dict(fwp, fields)"},{"line_number":729,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa984401_7faae945","line":726,"range":{"start_line":726,"start_character":8,"end_line":726,"end_character":27},"updated":"2026-05-27 12:52:59.000000000","message":"ditto: we need a reader decorator here now","commit_id":"a45703d9151f7395513a272fca0e233bccbbb4d8"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"23f8275626c7e42b0ab94863150962ee10adedca","unresolved":false,"context_lines":[{"line_number":723,"context_line":"                fwp_db \u003d self._delete_all_rules_from_policy(context, fwp_db)"},{"line_number":724,"context_line":"                context.session.delete(fwp_db)"},{"line_number":725,"context_line":""},{"line_number":726,"context_line":"    def get_firewall_policy(self, context, id, fields\u003dNone):"},{"line_number":727,"context_line":"        fwp \u003d self._get_firewall_policy(context, id)"},{"line_number":728,"context_line":"        return self._make_firewall_policy_dict(fwp, fields)"},{"line_number":729,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7cb1c6e4_36406395","line":726,"range":{"start_line":726,"start_character":8,"end_line":726,"end_character":27},"in_reply_to":"fa984401_7faae945","updated":"2026-05-27 13:13:02.000000000","message":"Done","commit_id":"a45703d9151f7395513a272fca0e233bccbbb4d8"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"0bdf743e85b0adf1d1d0521a878a7c6564f13b95","unresolved":true,"context_lines":[{"line_number":1006,"context_line":"                raise FirewallDefaultParameterExists("},{"line_number":1007,"context_line":"                    resource_type\u003d\u0027Firewall Policy\u0027, name\u003dresource[\u0027name\u0027])"},{"line_number":1008,"context_line":""},{"line_number":1009,"context_line":"    def get_firewall_group(self, context, id, fields\u003dNone):"},{"line_number":1010,"context_line":"        fw \u003d self._get_firewall_group(context, id)"},{"line_number":1011,"context_line":"        return self._make_firewall_group_dict(fw, fields)"},{"line_number":1012,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1e8b8c3e_35a167ac","line":1009,"range":{"start_line":1009,"start_character":4,"end_line":1009,"end_character":59},"updated":"2026-05-27 12:50:53.000000000","message":"This method now should have a reader decorator","commit_id":"a45703d9151f7395513a272fca0e233bccbbb4d8"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"044ecb623ae59471d66a1f31c3a9f3b3a5a7cf39","unresolved":false,"context_lines":[{"line_number":1006,"context_line":"                raise FirewallDefaultParameterExists("},{"line_number":1007,"context_line":"                    resource_type\u003d\u0027Firewall Policy\u0027, name\u003dresource[\u0027name\u0027])"},{"line_number":1008,"context_line":""},{"line_number":1009,"context_line":"    def get_firewall_group(self, context, id, fields\u003dNone):"},{"line_number":1010,"context_line":"        fw \u003d self._get_firewall_group(context, id)"},{"line_number":1011,"context_line":"        return self._make_firewall_group_dict(fw, fields)"},{"line_number":1012,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"8fe505b3_689c915c","line":1009,"range":{"start_line":1009,"start_character":4,"end_line":1009,"end_character":59},"in_reply_to":"1e8b8c3e_35a167ac","updated":"2026-05-27 13:13:24.000000000","message":"Done","commit_id":"a45703d9151f7395513a272fca0e233bccbbb4d8"}]}
