)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"4e59898841708c067818cafe39024cc690ac9732","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"1256b402_dca0473e","updated":"2026-10-13 20:07:33.000000000","message":"LGTM","commit_id":"0661144d37097010ddb603cb339c76a39461e08d"}],"neutron_taas/objects/taas.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"b20b9f954606ef3551df865017a30a89fe507998","unresolved":true,"context_lines":[{"line_number":53,"context_line":"        \u0027description\u0027: obj_fields.StringField(nullable\u003dTrue),"},{"line_number":54,"context_line":"        \u0027tap_service_id\u0027: common_types.UUIDField(),"},{"line_number":55,"context_line":"        \u0027source_port\u0027: common_types.UUIDField(),"},{"line_number":56,"context_line":"        \u0027direction\u0027: obj_fields.StringField(),"},{"line_number":57,"context_line":"        \u0027status\u0027: obj_fields.StringField(),"},{"line_number":58,"context_line":"        \u0027vlan_filter\u0027: obj_fields.StringField(nullable\u003dTrue),"},{"line_number":59,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":4,"id":"50d238c1_c2677309","line":56,"updated":"2026-08-13 09:08:14.000000000","message":"I though initially why not use FlowDirectionEnumField which is defined in neutron-lib. But it actually uses \"ingress\", \"egress\" values and here we need \"IN\", \"OUT\" and \"BOTH\". Maybe instead of using simple StringField you could propose new Enum type field but this can also be done in follow-up patch if you think it may be good idea","commit_id":"fc66b2fa0ebb2481a9d10ece6972a0a47b61a97c"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"2b826b3722f6d0739b4575981cd6ce557bd136d0","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        \u0027description\u0027: obj_fields.StringField(nullable\u003dTrue),"},{"line_number":54,"context_line":"        \u0027tap_service_id\u0027: common_types.UUIDField(),"},{"line_number":55,"context_line":"        \u0027source_port\u0027: common_types.UUIDField(),"},{"line_number":56,"context_line":"        \u0027direction\u0027: obj_fields.StringField(),"},{"line_number":57,"context_line":"        \u0027status\u0027: obj_fields.StringField(),"},{"line_number":58,"context_line":"        \u0027vlan_filter\u0027: obj_fields.StringField(nullable\u003dTrue),"},{"line_number":59,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":4,"id":"ea55e954_f394dd10","line":56,"in_reply_to":"50d238c1_c2677309","updated":"2026-08-14 08:54:18.000000000","message":"no, I really like the idea, thanks","commit_id":"fc66b2fa0ebb2481a9d10ece6972a0a47b61a97c"}],"neutron_taas/objects/tap_mirror.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"b20b9f954606ef3551df865017a30a89fe507998","unresolved":true,"context_lines":[{"line_number":33,"context_line":"        \u0027name\u0027: obj_fields.StringField(nullable\u003dTrue),"},{"line_number":34,"context_line":"        \u0027description\u0027: obj_fields.StringField(nullable\u003dTrue),"},{"line_number":35,"context_line":"        \u0027port_id\u0027: common_types.UUIDField(),"},{"line_number":36,"context_line":"        \u0027directions\u0027: obj_fields.StringField(),"},{"line_number":37,"context_line":"        \u0027remote_ip\u0027: obj_fields.StringField(),"},{"line_number":38,"context_line":"        \u0027mirror_type\u0027: obj_fields.StringField(),"},{"line_number":39,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f4a6a9b_0c93f19c","line":36,"updated":"2026-08-13 09:08:14.000000000","message":"This in DB is stored as JSON-serialized dict, shouldn\u0027t it be here defined as obj_fields.DictOfStringsField maybe?","commit_id":"fc66b2fa0ebb2481a9d10ece6972a0a47b61a97c"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"2b826b3722f6d0739b4575981cd6ce557bd136d0","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        \u0027name\u0027: obj_fields.StringField(nullable\u003dTrue),"},{"line_number":34,"context_line":"        \u0027description\u0027: obj_fields.StringField(nullable\u003dTrue),"},{"line_number":35,"context_line":"        \u0027port_id\u0027: common_types.UUIDField(),"},{"line_number":36,"context_line":"        \u0027directions\u0027: obj_fields.StringField(),"},{"line_number":37,"context_line":"        \u0027remote_ip\u0027: obj_fields.StringField(),"},{"line_number":38,"context_line":"        \u0027mirror_type\u0027: obj_fields.StringField(),"},{"line_number":39,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":4,"id":"d06bbbee_78bfec3d","line":36,"in_reply_to":"3f4a6a9b_0c93f19c","updated":"2026-08-14 08:54:18.000000000","message":"Done","commit_id":"fc66b2fa0ebb2481a9d10ece6972a0a47b61a97c"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"b20b9f954606ef3551df865017a30a89fe507998","unresolved":true,"context_lines":[{"line_number":34,"context_line":"        \u0027description\u0027: obj_fields.StringField(nullable\u003dTrue),"},{"line_number":35,"context_line":"        \u0027port_id\u0027: common_types.UUIDField(),"},{"line_number":36,"context_line":"        \u0027directions\u0027: obj_fields.StringField(),"},{"line_number":37,"context_line":"        \u0027remote_ip\u0027: obj_fields.StringField(),"},{"line_number":38,"context_line":"        \u0027mirror_type\u0027: obj_fields.StringField(),"},{"line_number":39,"context_line":"    }"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"c0f56207_52349ed7","line":37,"updated":"2026-08-13 09:08:14.000000000","message":"shouldn\u0027t it be obj_fields.IPAddressField() ?","commit_id":"fc66b2fa0ebb2481a9d10ece6972a0a47b61a97c"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"2b826b3722f6d0739b4575981cd6ce557bd136d0","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        \u0027description\u0027: obj_fields.StringField(nullable\u003dTrue),"},{"line_number":35,"context_line":"        \u0027port_id\u0027: common_types.UUIDField(),"},{"line_number":36,"context_line":"        \u0027directions\u0027: obj_fields.StringField(),"},{"line_number":37,"context_line":"        \u0027remote_ip\u0027: obj_fields.StringField(),"},{"line_number":38,"context_line":"        \u0027mirror_type\u0027: obj_fields.StringField(),"},{"line_number":39,"context_line":"    }"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"e60d825d_068a345c","line":37,"in_reply_to":"c0f56207_52349ed7","updated":"2026-08-14 08:54:18.000000000","message":"Done\nMy local testing was ok with tempest, I hope I didn\u0027t messed up things.","commit_id":"fc66b2fa0ebb2481a9d10ece6972a0a47b61a97c"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"2b826b3722f6d0739b4575981cd6ce557bd136d0","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    def modify_fields_to_db(cls, fields):"},{"line_number":58,"context_line":"        result \u003d super().modify_fields_to_db(fields)"},{"line_number":59,"context_line":"        if \u0027directions\u0027 in result:"},{"line_number":60,"context_line":"            if isinstance(result[\u0027directions\u0027], list):"},{"line_number":61,"context_line":"                result[\u0027directions\u0027] \u003d ["},{"line_number":62,"context_line":"                    jsonutils.dumps(d) for d in result[\u0027directions\u0027]]"},{"line_number":63,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3aaa485f_84a4ab0d","line":60,"updated":"2026-08-14 08:54:18.000000000","message":"the extra logic here is to make some common ovo unit tests happy mostly (i.e.: test_filtering_by_fields)","commit_id":"ca6c0dca3c58d23f893654bca8c024b80d261f2a"}]}
