)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"eb8182acaf879f8d535234c249bcf0c59ed987b5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"e34b2d75_1d10d6d8","updated":"2024-12-20 14:48:13.000000000","message":"recheck neutron-tempest-plugin-ovn","commit_id":"558e52416143b56894523c245b924d7829da7134"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"3fc9f40b68e9aad0b9096be22b59d539981c0108","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"86bdaf61_c6ed34ae","updated":"2025-01-14 16:04:13.000000000","message":"Just a relnote comment","commit_id":"3a46fd2643b017041b3f8deb8a1fa5469e5fc8ad"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"84c12e98b78f1976667b4a07b7472a4c029195b4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"c97818b4_11de12f4","updated":"2025-01-20 10:36:46.000000000","message":"recheck\nfunctional and tempest failures are not related","commit_id":"d83fd4223c37b0152fb1efce9aa4242e3477e93f"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"c429ba2bc1b88430a0cbbeebe4b456c502cc2cd3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"642b5b79_1ba6f15b","updated":"2025-01-20 09:07:32.000000000","message":"recheck - unrelated missing port error in the functional job and ssh failure in the scenario job","commit_id":"d83fd4223c37b0152fb1efce9aa4242e3477e93f"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"dfa26076c3a5be9b018588a2bfd8de553c4a8d30","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"d5d2a554_ff2a7444","updated":"2025-01-28 18:31:15.000000000","message":"recheck - unrelated fullstack failures","commit_id":"810b224b9139b2696221a0420ece4b9123aaec29"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"a70ff73b16b192e79fd2387ce2bc710bbff436b3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"9bc63cfd_12b7d56d","updated":"2025-01-28 16:16:28.000000000","message":"recheck neutron-fullstack","commit_id":"810b224b9139b2696221a0420ece4b9123aaec29"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"4549ef5def2184367591a2da6fd0f56e84539da3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"2595f2d0_3a21a290","updated":"2025-01-27 17:31:28.000000000","message":"recheck tempest-integrated-networking","commit_id":"810b224b9139b2696221a0420ece4b9123aaec29"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"572243e2add0acb4837a00e1dcb39bb2d5286be0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"4724db97_e5caf096","updated":"2025-01-27 14:33:32.000000000","message":"recheck unrelated neutron-tempest-plugin-ovn","commit_id":"810b224b9139b2696221a0420ece4b9123aaec29"}],"neutron/cmd/upgrade_checks/checks.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"44692c501e7d261a273f7554a22551b85e75c3db","unresolved":true,"context_lines":[{"line_number":648,"context_line":"                return upgradecheck.Result("},{"line_number":649,"context_line":"                    upgradecheck.Code.WARNING,"},{"line_number":650,"context_line":"                    _(\u0027Some resources have already more than %(limit)d tags \u0027"},{"line_number":651,"context_line":"                      \u0027created. There is limit of %(limit)d tags per resource \u0027"},{"line_number":652,"context_line":"                      \u0027and because of that limit creation of new tags for the \u0027"},{"line_number":653,"context_line":"                      \u0027resources with exceeded limit will not be poissible \u0027"},{"line_number":654,"context_line":"                      \u0027until some of the tags will be removed.\u0027 %"}],"source_content_type":"text/x-python","patch_set":1,"id":"8a9d5c76_dec78587","line":651,"range":{"start_line":651,"start_character":38,"end_line":651,"end_character":46},"updated":"2024-12-17 16:39:18.000000000","message":"s/is a limit","commit_id":"4c0d1c2f797a99fba9e052537bc086c9f305bf64"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"01ec782f89d515d704b64159bac8adee06d9fb03","unresolved":false,"context_lines":[{"line_number":648,"context_line":"                return upgradecheck.Result("},{"line_number":649,"context_line":"                    upgradecheck.Code.WARNING,"},{"line_number":650,"context_line":"                    _(\u0027Some resources have already more than %(limit)d tags \u0027"},{"line_number":651,"context_line":"                      \u0027created. There is limit of %(limit)d tags per resource \u0027"},{"line_number":652,"context_line":"                      \u0027and because of that limit creation of new tags for the \u0027"},{"line_number":653,"context_line":"                      \u0027resources with exceeded limit will not be poissible \u0027"},{"line_number":654,"context_line":"                      \u0027until some of the tags will be removed.\u0027 %"}],"source_content_type":"text/x-python","patch_set":1,"id":"6be33172_502e658b","line":651,"range":{"start_line":651,"start_character":38,"end_line":651,"end_character":46},"in_reply_to":"8a9d5c76_dec78587","updated":"2024-12-19 12:02:52.000000000","message":"Done","commit_id":"4c0d1c2f797a99fba9e052537bc086c9f305bf64"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"44692c501e7d261a273f7554a22551b85e75c3db","unresolved":true,"context_lines":[{"line_number":650,"context_line":"                    _(\u0027Some resources have already more than %(limit)d tags \u0027"},{"line_number":651,"context_line":"                      \u0027created. There is limit of %(limit)d tags per resource \u0027"},{"line_number":652,"context_line":"                      \u0027and because of that limit creation of new tags for the \u0027"},{"line_number":653,"context_line":"                      \u0027resources with exceeded limit will not be poissible \u0027"},{"line_number":654,"context_line":"                      \u0027until some of the tags will be removed.\u0027 %"},{"line_number":655,"context_line":"                        {\u0027limit\u0027: tagging.MAX_TAGS_COUNT}))"},{"line_number":656,"context_line":"        return upgradecheck.Result("}],"source_content_type":"text/x-python","patch_set":1,"id":"1d756da9_e7a9025e","line":653,"range":{"start_line":653,"start_character":65,"end_line":653,"end_character":74},"updated":"2024-12-17 16:39:18.000000000","message":"s/possible","commit_id":"4c0d1c2f797a99fba9e052537bc086c9f305bf64"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"44692c501e7d261a273f7554a22551b85e75c3db","unresolved":true,"context_lines":[{"line_number":650,"context_line":"                    _(\u0027Some resources have already more than %(limit)d tags \u0027"},{"line_number":651,"context_line":"                      \u0027created. There is limit of %(limit)d tags per resource \u0027"},{"line_number":652,"context_line":"                      \u0027and because of that limit creation of new tags for the \u0027"},{"line_number":653,"context_line":"                      \u0027resources with exceeded limit will not be poissible \u0027"},{"line_number":654,"context_line":"                      \u0027until some of the tags will be removed.\u0027 %"},{"line_number":655,"context_line":"                        {\u0027limit\u0027: tagging.MAX_TAGS_COUNT}))"},{"line_number":656,"context_line":"        return upgradecheck.Result("}],"source_content_type":"text/x-python","patch_set":1,"id":"b8045588_6251bfa4","line":653,"range":{"start_line":653,"start_character":33,"end_line":653,"end_character":52},"updated":"2024-12-17 16:39:18.000000000","message":"s/that exceed the limit","commit_id":"4c0d1c2f797a99fba9e052537bc086c9f305bf64"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"01ec782f89d515d704b64159bac8adee06d9fb03","unresolved":false,"context_lines":[{"line_number":650,"context_line":"                    _(\u0027Some resources have already more than %(limit)d tags \u0027"},{"line_number":651,"context_line":"                      \u0027created. There is limit of %(limit)d tags per resource \u0027"},{"line_number":652,"context_line":"                      \u0027and because of that limit creation of new tags for the \u0027"},{"line_number":653,"context_line":"                      \u0027resources with exceeded limit will not be poissible \u0027"},{"line_number":654,"context_line":"                      \u0027until some of the tags will be removed.\u0027 %"},{"line_number":655,"context_line":"                        {\u0027limit\u0027: tagging.MAX_TAGS_COUNT}))"},{"line_number":656,"context_line":"        return upgradecheck.Result("}],"source_content_type":"text/x-python","patch_set":1,"id":"e644b17a_398e9e8b","line":653,"range":{"start_line":653,"start_character":65,"end_line":653,"end_character":74},"in_reply_to":"1d756da9_e7a9025e","updated":"2024-12-19 12:02:52.000000000","message":"Done","commit_id":"4c0d1c2f797a99fba9e052537bc086c9f305bf64"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"01ec782f89d515d704b64159bac8adee06d9fb03","unresolved":false,"context_lines":[{"line_number":650,"context_line":"                    _(\u0027Some resources have already more than %(limit)d tags \u0027"},{"line_number":651,"context_line":"                      \u0027created. There is limit of %(limit)d tags per resource \u0027"},{"line_number":652,"context_line":"                      \u0027and because of that limit creation of new tags for the \u0027"},{"line_number":653,"context_line":"                      \u0027resources with exceeded limit will not be poissible \u0027"},{"line_number":654,"context_line":"                      \u0027until some of the tags will be removed.\u0027 %"},{"line_number":655,"context_line":"                        {\u0027limit\u0027: tagging.MAX_TAGS_COUNT}))"},{"line_number":656,"context_line":"        return upgradecheck.Result("}],"source_content_type":"text/x-python","patch_set":1,"id":"b1755d76_f9ed1715","line":653,"range":{"start_line":653,"start_character":33,"end_line":653,"end_character":52},"in_reply_to":"b8045588_6251bfa4","updated":"2024-12-19 12:02:52.000000000","message":"Done","commit_id":"4c0d1c2f797a99fba9e052537bc086c9f305bf64"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"44692c501e7d261a273f7554a22551b85e75c3db","unresolved":true,"context_lines":[{"line_number":651,"context_line":"                      \u0027created. There is limit of %(limit)d tags per resource \u0027"},{"line_number":652,"context_line":"                      \u0027and because of that limit creation of new tags for the \u0027"},{"line_number":653,"context_line":"                      \u0027resources with exceeded limit will not be poissible \u0027"},{"line_number":654,"context_line":"                      \u0027until some of the tags will be removed.\u0027 %"},{"line_number":655,"context_line":"                        {\u0027limit\u0027: tagging.MAX_TAGS_COUNT}))"},{"line_number":656,"context_line":"        return upgradecheck.Result("},{"line_number":657,"context_line":"            upgradecheck.Code.SUCCESS,"}],"source_content_type":"text/x-python","patch_set":1,"id":"d18456aa_37660375","line":654,"range":{"start_line":654,"start_character":41,"end_line":654,"end_character":61},"updated":"2024-12-17 16:39:18.000000000","message":"s/tags are removed","commit_id":"4c0d1c2f797a99fba9e052537bc086c9f305bf64"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"01ec782f89d515d704b64159bac8adee06d9fb03","unresolved":false,"context_lines":[{"line_number":651,"context_line":"                      \u0027created. There is limit of %(limit)d tags per resource \u0027"},{"line_number":652,"context_line":"                      \u0027and because of that limit creation of new tags for the \u0027"},{"line_number":653,"context_line":"                      \u0027resources with exceeded limit will not be poissible \u0027"},{"line_number":654,"context_line":"                      \u0027until some of the tags will be removed.\u0027 %"},{"line_number":655,"context_line":"                        {\u0027limit\u0027: tagging.MAX_TAGS_COUNT}))"},{"line_number":656,"context_line":"        return upgradecheck.Result("},{"line_number":657,"context_line":"            upgradecheck.Code.SUCCESS,"}],"source_content_type":"text/x-python","patch_set":1,"id":"4cb2976e_ceb31d61","line":654,"range":{"start_line":654,"start_character":41,"end_line":654,"end_character":61},"in_reply_to":"d18456aa_37660375","updated":"2024-12-19 12:02:52.000000000","message":"Done","commit_id":"4c0d1c2f797a99fba9e052537bc086c9f305bf64"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a754f2778048bf69b076e3aa31b731e9e133a88d","unresolved":true,"context_lines":[{"line_number":189,"context_line":"            tag_model.Tag,"},{"line_number":190,"context_line":"            func.count(tag_model.Tag.tag))"},{"line_number":191,"context_line":"        query \u003d query.group_by(tag_model.Tag.standard_attr_id)"},{"line_number":192,"context_line":"        return query.all()"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"def get_ovn_client():"}],"source_content_type":"text/x-python","patch_set":4,"id":"a3667009_1bcb1485","line":192,"range":{"start_line":192,"start_character":8,"end_line":192,"end_character":26},"updated":"2025-01-07 15:10:21.000000000","message":"If we have many resources and each resource has several tags, this query can take some time. I would:\n* Add a filter for func.count() \u003e 50\n* Limit the result to 1 (query.one), because actually we really want to know if there is at least one resource with more than 50 tags.\n\nThis query would require a unit test.","commit_id":"43237115c46d173736cb5335b69f91319a50be06"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"6c262a1dc3cbf7808dbc838ce58bfce8a34d8886","unresolved":true,"context_lines":[{"line_number":189,"context_line":"            tag_model.Tag,"},{"line_number":190,"context_line":"            func.count(tag_model.Tag.tag))"},{"line_number":191,"context_line":"        query \u003d query.group_by(tag_model.Tag.standard_attr_id)"},{"line_number":192,"context_line":"        return query.all()"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"def get_ovn_client():"}],"source_content_type":"text/x-python","patch_set":4,"id":"be5c73aa_989443ca","line":192,"range":{"start_line":192,"start_character":8,"end_line":192,"end_character":26},"in_reply_to":"a3667009_1bcb1485","updated":"2025-01-14 15:23:18.000000000","message":"I changed it but I don\u0027t know what unit test You are thinking of really","commit_id":"43237115c46d173736cb5335b69f91319a50be06"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"9632e301e43eb949702e27599d2517f36f2164d7","unresolved":false,"context_lines":[{"line_number":189,"context_line":"            tag_model.Tag,"},{"line_number":190,"context_line":"            func.count(tag_model.Tag.tag))"},{"line_number":191,"context_line":"        query \u003d query.group_by(tag_model.Tag.standard_attr_id)"},{"line_number":192,"context_line":"        return query.all()"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"def get_ovn_client():"}],"source_content_type":"text/x-python","patch_set":4,"id":"bf617c22_191dc0aa","line":192,"range":{"start_line":192,"start_character":8,"end_line":192,"end_character":26},"in_reply_to":"be5c73aa_989443ca","updated":"2025-01-24 08:28:47.000000000","message":"Done","commit_id":"43237115c46d173736cb5335b69f91319a50be06"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"1975fc9ee3efed66db7ffd6a5adc6fec315bc091","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        query \u003d query.group_by(tag_model.Tag.standard_attr_id)"},{"line_number":193,"context_line":"        query \u003d query.having(func.count() \u003e tagging.MAX_TAGS_COUNT)"},{"line_number":194,"context_line":"        try:"},{"line_number":195,"context_line":"            return bool(query.one())"},{"line_number":196,"context_line":"        except sqlalchemy_exc.NoResultFound:"},{"line_number":197,"context_line":"            return False"},{"line_number":198,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"eefb15d0_9b0ba209","line":195,"range":{"start_line":195,"start_character":30,"end_line":195,"end_character":33},"updated":"2025-01-14 15:13:49.000000000","message":"There is a method called one_or_none(), more suitable for this method.","commit_id":"a026aa951e680fd1978087c53f9650d3717a13ac"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"596b58bd31847714e0e782572fe848bd2d0ffa4c","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        query \u003d query.group_by(tag_model.Tag.standard_attr_id)"},{"line_number":193,"context_line":"        query \u003d query.having(func.count() \u003e tagging.MAX_TAGS_COUNT)"},{"line_number":194,"context_line":"        try:"},{"line_number":195,"context_line":"            return bool(query.one())"},{"line_number":196,"context_line":"        except sqlalchemy_exc.NoResultFound:"},{"line_number":197,"context_line":"            return False"},{"line_number":198,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"c1207844_f635d839","line":195,"range":{"start_line":195,"start_character":30,"end_line":195,"end_character":33},"in_reply_to":"eefb15d0_9b0ba209","updated":"2025-01-14 15:30:30.000000000","message":"thx, I didn\u0027t know it 😊","commit_id":"a026aa951e680fd1978087c53f9650d3717a13ac"}],"neutron/extensions/tagging.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"44692c501e7d261a273f7554a22551b85e75c3db","unresolved":true,"context_lines":[{"line_number":52,"context_line":"MAX_TAGS_COUNT \u003d 50"},{"line_number":53,"context_line":"TAG_PLUGIN_TYPE \u003d \u0027TAG\u0027"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"TAG_SUPPORTED_RESOURCES \u003d standard_attr.get_tag_resource_parent_map()"},{"line_number":57,"context_line":"TAG_ATTRIBUTE_MAP \u003d {"},{"line_number":58,"context_line":"    TAGS: {\u0027allow_post\u0027: False, \u0027allow_put\u0027: False,"}],"source_content_type":"text/x-python","patch_set":1,"id":"e706ed1a_880b4f22","line":55,"updated":"2024-12-17 16:39:18.000000000","message":"nit: extra blank line","commit_id":"4c0d1c2f797a99fba9e052537bc086c9f305bf64"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"01ec782f89d515d704b64159bac8adee06d9fb03","unresolved":false,"context_lines":[{"line_number":52,"context_line":"MAX_TAGS_COUNT \u003d 50"},{"line_number":53,"context_line":"TAG_PLUGIN_TYPE \u003d \u0027TAG\u0027"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"TAG_SUPPORTED_RESOURCES \u003d standard_attr.get_tag_resource_parent_map()"},{"line_number":57,"context_line":"TAG_ATTRIBUTE_MAP \u003d {"},{"line_number":58,"context_line":"    TAGS: {\u0027allow_post\u0027: False, \u0027allow_put\u0027: False,"}],"source_content_type":"text/x-python","patch_set":1,"id":"f0213141_ff2a4358","line":55,"in_reply_to":"e706ed1a_880b4f22","updated":"2024-12-19 12:02:52.000000000","message":"Done","commit_id":"4c0d1c2f797a99fba9e052537bc086c9f305bf64"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"44692c501e7d261a273f7554a22551b85e75c3db","unresolved":true,"context_lines":[{"line_number":119,"context_line":"def validate_tags_limit(resource, body):"},{"line_number":120,"context_line":"    tags \u003d set(body[\u0027tags\u0027])"},{"line_number":121,"context_line":"    if len(tags) \u003e MAX_TAGS_COUNT:"},{"line_number":122,"context_line":"        msg \u003d (_(\"The number of tags exceeded the per-resource limit %d\")"},{"line_number":123,"context_line":"               % MAX_TAGS_COUNT)"},{"line_number":124,"context_line":"        raise exceptions.BadRequest(resource\u003dresource, msg\u003dmsg)"},{"line_number":125,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"dd9f6be3_d8d0be0c","line":122,"range":{"start_line":122,"start_character":37,"end_line":122,"end_character":45},"updated":"2024-12-17 16:39:18.000000000","message":"s/exceed ?","commit_id":"4c0d1c2f797a99fba9e052537bc086c9f305bf64"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"44692c501e7d261a273f7554a22551b85e75c3db","unresolved":true,"context_lines":[{"line_number":119,"context_line":"def validate_tags_limit(resource, body):"},{"line_number":120,"context_line":"    tags \u003d set(body[\u0027tags\u0027])"},{"line_number":121,"context_line":"    if len(tags) \u003e MAX_TAGS_COUNT:"},{"line_number":122,"context_line":"        msg \u003d (_(\"The number of tags exceeded the per-resource limit %d\")"},{"line_number":123,"context_line":"               % MAX_TAGS_COUNT)"},{"line_number":124,"context_line":"        raise exceptions.BadRequest(resource\u003dresource, msg\u003dmsg)"},{"line_number":125,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"05671c89_df7f3f7a","line":122,"range":{"start_line":122,"start_character":63,"end_line":122,"end_character":68},"updated":"2024-12-17 16:39:18.000000000","message":"s/limit of","commit_id":"4c0d1c2f797a99fba9e052537bc086c9f305bf64"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"01ec782f89d515d704b64159bac8adee06d9fb03","unresolved":false,"context_lines":[{"line_number":119,"context_line":"def validate_tags_limit(resource, body):"},{"line_number":120,"context_line":"    tags \u003d set(body[\u0027tags\u0027])"},{"line_number":121,"context_line":"    if len(tags) \u003e MAX_TAGS_COUNT:"},{"line_number":122,"context_line":"        msg \u003d (_(\"The number of tags exceeded the per-resource limit %d\")"},{"line_number":123,"context_line":"               % MAX_TAGS_COUNT)"},{"line_number":124,"context_line":"        raise exceptions.BadRequest(resource\u003dresource, msg\u003dmsg)"},{"line_number":125,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"a25023e8_8a32d5ef","line":122,"range":{"start_line":122,"start_character":63,"end_line":122,"end_character":68},"in_reply_to":"05671c89_df7f3f7a","updated":"2024-12-19 12:02:52.000000000","message":"Done","commit_id":"4c0d1c2f797a99fba9e052537bc086c9f305bf64"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"01ec782f89d515d704b64159bac8adee06d9fb03","unresolved":false,"context_lines":[{"line_number":119,"context_line":"def validate_tags_limit(resource, body):"},{"line_number":120,"context_line":"    tags \u003d set(body[\u0027tags\u0027])"},{"line_number":121,"context_line":"    if len(tags) \u003e MAX_TAGS_COUNT:"},{"line_number":122,"context_line":"        msg \u003d (_(\"The number of tags exceeded the per-resource limit %d\")"},{"line_number":123,"context_line":"               % MAX_TAGS_COUNT)"},{"line_number":124,"context_line":"        raise exceptions.BadRequest(resource\u003dresource, msg\u003dmsg)"},{"line_number":125,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"cca0ea52_ffe5b7ff","line":122,"range":{"start_line":122,"start_character":37,"end_line":122,"end_character":45},"in_reply_to":"dd9f6be3_d8d0be0c","updated":"2024-12-19 12:02:52.000000000","message":"Done","commit_id":"4c0d1c2f797a99fba9e052537bc086c9f305bf64"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6db02c39c1778168ad112cd8595e92ae5ded17e1","unresolved":true,"context_lines":[{"line_number":243,"context_line":"        return result"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    @_policy_init"},{"line_number":246,"context_line":"    def update(self, request, id, **kwargs):"},{"line_number":247,"context_line":"        # PUT /v2.0/{parent_resource}/{parent_resource_id}/tags/{tag}"},{"line_number":248,"context_line":"        # id \u003d\u003d tag"},{"line_number":249,"context_line":"        validate_tag(id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"b466acc5_3cdcbd81","line":246,"range":{"start_line":246,"start_character":4,"end_line":246,"end_character":28},"updated":"2024-12-17 15:32:09.000000000","message":"udpate is also used to add tags (one by one)","commit_id":"4c0d1c2f797a99fba9e052537bc086c9f305bf64"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"01ec782f89d515d704b64159bac8adee06d9fb03","unresolved":false,"context_lines":[{"line_number":243,"context_line":"        return result"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    @_policy_init"},{"line_number":246,"context_line":"    def update(self, request, id, **kwargs):"},{"line_number":247,"context_line":"        # PUT /v2.0/{parent_resource}/{parent_resource_id}/tags/{tag}"},{"line_number":248,"context_line":"        # id \u003d\u003d tag"},{"line_number":249,"context_line":"        validate_tag(id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"d13344a7_bbb7ebdf","line":246,"range":{"start_line":246,"start_character":4,"end_line":246,"end_character":28},"in_reply_to":"b466acc5_3cdcbd81","updated":"2024-12-19 12:02:52.000000000","message":"Done","commit_id":"4c0d1c2f797a99fba9e052537bc086c9f305bf64"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"aee1d5dc5ce89607d2040f533217ad75fbf7248a","unresolved":true,"context_lines":[{"line_number":253,"context_line":"                       target)"},{"line_number":254,"context_line":"        current_tags \u003d self.plugin.get_tags("},{"line_number":255,"context_line":"            ctx, rinfo.parent_type, rinfo.parent_id)[\u0027tags\u0027]"},{"line_number":256,"context_line":"        new_tags \u003d current_tags + [id]"},{"line_number":257,"context_line":"        validate_tags_limit(rinfo.parent_type, new_tags)"},{"line_number":258,"context_line":"        notify_tag_action(ctx, \u0027create.start\u0027, rinfo.parent_type,"},{"line_number":259,"context_line":"                          rinfo.parent_id, [id])"}],"source_content_type":"text/x-python","patch_set":2,"id":"b2af331d_37190895","line":256,"range":{"start_line":256,"start_character":8,"end_line":256,"end_character":38},"updated":"2024-12-20 10:53:29.000000000","message":"There is a problem with this implementation: this call should be idempotent. If we call this method with the name of a tag that already exists, it should not raise an exception.\n\n``current_tags`` will contain all the resource tags. If you add to this list the ``id`` tag (that is already present), the list will contain a duplicated register and ``validate_tags_limit`` will fail. I think you should convert ``current_tags`` to a set and then add ``id``","commit_id":"fb3f64537c38a145e19c0879bd6f8b78715ecc96"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"7534a79434ce7952d3488413e8eebed369bcc247","unresolved":false,"context_lines":[{"line_number":253,"context_line":"                       target)"},{"line_number":254,"context_line":"        current_tags \u003d self.plugin.get_tags("},{"line_number":255,"context_line":"            ctx, rinfo.parent_type, rinfo.parent_id)[\u0027tags\u0027]"},{"line_number":256,"context_line":"        new_tags \u003d current_tags + [id]"},{"line_number":257,"context_line":"        validate_tags_limit(rinfo.parent_type, new_tags)"},{"line_number":258,"context_line":"        notify_tag_action(ctx, \u0027create.start\u0027, rinfo.parent_type,"},{"line_number":259,"context_line":"                          rinfo.parent_id, [id])"}],"source_content_type":"text/x-python","patch_set":2,"id":"ac6faaa7_f4d309fb","line":256,"range":{"start_line":256,"start_character":8,"end_line":256,"end_character":38},"in_reply_to":"821fac51_69adbb62","updated":"2024-12-20 11:20:24.000000000","message":"sure, I added unit test to make sure that behaviour is like you said","commit_id":"fb3f64537c38a145e19c0879bd6f8b78715ecc96"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"1b8616ef60f27d07384467219bb821700fe693fd","unresolved":true,"context_lines":[{"line_number":253,"context_line":"                       target)"},{"line_number":254,"context_line":"        current_tags \u003d self.plugin.get_tags("},{"line_number":255,"context_line":"            ctx, rinfo.parent_type, rinfo.parent_id)[\u0027tags\u0027]"},{"line_number":256,"context_line":"        new_tags \u003d current_tags + [id]"},{"line_number":257,"context_line":"        validate_tags_limit(rinfo.parent_type, new_tags)"},{"line_number":258,"context_line":"        notify_tag_action(ctx, \u0027create.start\u0027, rinfo.parent_type,"},{"line_number":259,"context_line":"                          rinfo.parent_id, [id])"}],"source_content_type":"text/x-python","patch_set":2,"id":"b7f56cc6_e853020e","line":256,"range":{"start_line":256,"start_character":8,"end_line":256,"end_character":38},"in_reply_to":"b2af331d_37190895","updated":"2024-12-20 11:05:04.000000000","message":"please check L119 - it is removing duplicates by making set from that list. So it shouldn\u0027t raise error in case when already existing tag will be created again","commit_id":"fb3f64537c38a145e19c0879bd6f8b78715ecc96"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f00c8c177ea279998a9844c9ffbb399c669a4d7f","unresolved":false,"context_lines":[{"line_number":253,"context_line":"                       target)"},{"line_number":254,"context_line":"        current_tags \u003d self.plugin.get_tags("},{"line_number":255,"context_line":"            ctx, rinfo.parent_type, rinfo.parent_id)[\u0027tags\u0027]"},{"line_number":256,"context_line":"        new_tags \u003d current_tags + [id]"},{"line_number":257,"context_line":"        validate_tags_limit(rinfo.parent_type, new_tags)"},{"line_number":258,"context_line":"        notify_tag_action(ctx, \u0027create.start\u0027, rinfo.parent_type,"},{"line_number":259,"context_line":"                          rinfo.parent_id, [id])"}],"source_content_type":"text/x-python","patch_set":2,"id":"821fac51_69adbb62","line":256,"range":{"start_line":256,"start_character":8,"end_line":256,"end_character":38},"in_reply_to":"b7f56cc6_e853020e","updated":"2024-12-20 11:10:44.000000000","message":"Right, I didn\u0027t see this part and actually I never add up to 50 tags, so I was reading this code without L119","commit_id":"fb3f64537c38a145e19c0879bd6f8b78715ecc96"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"3fd81424e4c708e861694ecbf50dc978d00c73ed","unresolved":true,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"def validate_tags_limit(resource, tags):"},{"line_number":110,"context_line":"    tags \u003d set(tags)"},{"line_number":111,"context_line":"    if len(tags) \u003e MAX_TAGS_COUNT:"},{"line_number":112,"context_line":"        msg \u003d (_(\"The number of tags exceed the per-resource limit of %d\")"},{"line_number":113,"context_line":"               % MAX_TAGS_COUNT)"}],"source_content_type":"text/x-python","patch_set":9,"id":"1e3b72f5_68214358","line":110,"range":{"start_line":110,"start_character":11,"end_line":110,"end_character":20},"updated":"2025-01-27 19:53:55.000000000","message":"this conversion to set seems to be not needed.","commit_id":"810b224b9139b2696221a0420ece4b9123aaec29"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"2dd28a5ff4e3cf478f246dbae70d67e66bb5e76e","unresolved":true,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"def validate_tags_limit(resource, tags):"},{"line_number":110,"context_line":"    tags \u003d set(tags)"},{"line_number":111,"context_line":"    if len(tags) \u003e MAX_TAGS_COUNT:"},{"line_number":112,"context_line":"        msg \u003d (_(\"The number of tags exceed the per-resource limit of %d\")"},{"line_number":113,"context_line":"               % MAX_TAGS_COUNT)"}],"source_content_type":"text/x-python","patch_set":9,"id":"fc96c750_a280995e","line":110,"range":{"start_line":110,"start_character":11,"end_line":110,"end_character":20},"in_reply_to":"1e3b72f5_68214358","updated":"2025-01-28 08:10:18.000000000","message":"it is needed to remove potential duplicated tags and not count them twice","commit_id":"810b224b9139b2696221a0420ece4b9123aaec29"}],"releasenotes/notes/Add-limit-of-the-tags-for-resources-23f825398d301d20.yaml":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6db02c39c1778168ad112cd8595e92ae5ded17e1","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Limit of the tags for each resources was added. In case when there are any"},{"line_number":5,"context_line":"    resources with more than ``50`` tags created, it will not be possible to"},{"line_number":6,"context_line":"    create or modify existing tags for such resource until some of them will not"},{"line_number":7,"context_line":"    be deleted."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9f333605_32813052","line":4,"range":{"start_line":4,"start_character":10,"end_line":4,"end_character":12},"updated":"2024-12-17 15:32:09.000000000","message":"I think we can remove \"of\" here","commit_id":"4c0d1c2f797a99fba9e052537bc086c9f305bf64"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"44692c501e7d261a273f7554a22551b85e75c3db","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Limit of the tags for each resources was added. In case when there are any"},{"line_number":5,"context_line":"    resources with more than ``50`` tags created, it will not be possible to"},{"line_number":6,"context_line":"    create or modify existing tags for such resource until some of them will not"},{"line_number":7,"context_line":"    be deleted."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"de3aa02b_a8366f04","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":50},"updated":"2024-12-17 16:39:18.000000000","message":"maybe \"A limit on the number of tags per resource has been added\" ?","commit_id":"4c0d1c2f797a99fba9e052537bc086c9f305bf64"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"01ec782f89d515d704b64159bac8adee06d9fb03","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Limit of the tags for each resources was added. In case when there are any"},{"line_number":5,"context_line":"    resources with more than ``50`` tags created, it will not be possible to"},{"line_number":6,"context_line":"    create or modify existing tags for such resource until some of them will not"},{"line_number":7,"context_line":"    be deleted."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"0b697ba0_87e74d0d","line":4,"range":{"start_line":4,"start_character":10,"end_line":4,"end_character":12},"in_reply_to":"9f333605_32813052","updated":"2024-12-19 12:02:52.000000000","message":"Done","commit_id":"4c0d1c2f797a99fba9e052537bc086c9f305bf64"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"01ec782f89d515d704b64159bac8adee06d9fb03","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Limit of the tags for each resources was added. In case when there are any"},{"line_number":5,"context_line":"    resources with more than ``50`` tags created, it will not be possible to"},{"line_number":6,"context_line":"    create or modify existing tags for such resource until some of them will not"},{"line_number":7,"context_line":"    be deleted."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"47dbe0bb_ffb9d59f","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":50},"in_reply_to":"de3aa02b_a8366f04","updated":"2024-12-19 12:02:52.000000000","message":"Done","commit_id":"4c0d1c2f797a99fba9e052537bc086c9f305bf64"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"44692c501e7d261a273f7554a22551b85e75c3db","unresolved":true,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Limit of the tags for each resources was added. In case when there are any"},{"line_number":5,"context_line":"    resources with more than ``50`` tags created, it will not be possible to"},{"line_number":6,"context_line":"    create or modify existing tags for such resource until some of them will not"},{"line_number":7,"context_line":"    be deleted."},{"line_number":8,"context_line":"fixes:"},{"line_number":9,"context_line":"  - |"},{"line_number":10,"context_line":"    Fix bug `2091410 \u003chttps://bugs.launchpad.net/neutron/+bug/2091410\u003e` which"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"dd641286_b7e2164d","line":7,"range":{"start_line":6,"start_character":72,"end_line":7,"end_character":14},"updated":"2024-12-17 16:39:18.000000000","message":"s/are deleted","commit_id":"4c0d1c2f797a99fba9e052537bc086c9f305bf64"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"01ec782f89d515d704b64159bac8adee06d9fb03","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Limit of the tags for each resources was added. In case when there are any"},{"line_number":5,"context_line":"    resources with more than ``50`` tags created, it will not be possible to"},{"line_number":6,"context_line":"    create or modify existing tags for such resource until some of them will not"},{"line_number":7,"context_line":"    be deleted."},{"line_number":8,"context_line":"fixes:"},{"line_number":9,"context_line":"  - |"},{"line_number":10,"context_line":"    Fix bug `2091410 \u003chttps://bugs.launchpad.net/neutron/+bug/2091410\u003e` which"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"f5e09f6e_d7c4d03d","line":7,"range":{"start_line":6,"start_character":72,"end_line":7,"end_character":14},"in_reply_to":"dd641286_b7e2164d","updated":"2024-12-19 12:02:52.000000000","message":"Done","commit_id":"4c0d1c2f797a99fba9e052537bc086c9f305bf64"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"44692c501e7d261a273f7554a22551b85e75c3db","unresolved":true,"context_lines":[{"line_number":8,"context_line":"fixes:"},{"line_number":9,"context_line":"  - |"},{"line_number":10,"context_line":"    Fix bug `2091410 \u003chttps://bugs.launchpad.net/neutron/+bug/2091410\u003e` which"},{"line_number":11,"context_line":"    could cause potential Denial of Service which could be done by adding a lot"},{"line_number":12,"context_line":"    of the tags to single resource, like e.g. ``network``. Now there is limit of"},{"line_number":13,"context_line":"    ``50`` tags for every resource."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"6ffac709_455e9532","line":11,"range":{"start_line":11,"start_character":44,"end_line":11,"end_character":63},"updated":"2024-12-17 16:39:18.000000000","message":"I would delete these few words","commit_id":"4c0d1c2f797a99fba9e052537bc086c9f305bf64"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"01ec782f89d515d704b64159bac8adee06d9fb03","unresolved":false,"context_lines":[{"line_number":8,"context_line":"fixes:"},{"line_number":9,"context_line":"  - |"},{"line_number":10,"context_line":"    Fix bug `2091410 \u003chttps://bugs.launchpad.net/neutron/+bug/2091410\u003e` which"},{"line_number":11,"context_line":"    could cause potential Denial of Service which could be done by adding a lot"},{"line_number":12,"context_line":"    of the tags to single resource, like e.g. ``network``. Now there is limit of"},{"line_number":13,"context_line":"    ``50`` tags for every resource."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"7754fff9_c27f2b51","line":11,"range":{"start_line":11,"start_character":44,"end_line":11,"end_character":63},"in_reply_to":"6ffac709_455e9532","updated":"2024-12-19 12:02:52.000000000","message":"Done","commit_id":"4c0d1c2f797a99fba9e052537bc086c9f305bf64"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6db02c39c1778168ad112cd8595e92ae5ded17e1","unresolved":true,"context_lines":[{"line_number":8,"context_line":"fixes:"},{"line_number":9,"context_line":"  - |"},{"line_number":10,"context_line":"    Fix bug `2091410 \u003chttps://bugs.launchpad.net/neutron/+bug/2091410\u003e` which"},{"line_number":11,"context_line":"    could cause potential Denial of Service which could be done by adding a lot"},{"line_number":12,"context_line":"    of the tags to single resource, like e.g. ``network``. Now there is limit of"},{"line_number":13,"context_line":"    ``50`` tags for every resource."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"ed83cf3b_e76d9bf8","line":12,"range":{"start_line":11,"start_character":74,"end_line":12,"end_character":34},"updated":"2024-12-17 15:32:09.000000000","message":"a lot of tags to a single resource","commit_id":"4c0d1c2f797a99fba9e052537bc086c9f305bf64"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"44692c501e7d261a273f7554a22551b85e75c3db","unresolved":true,"context_lines":[{"line_number":9,"context_line":"  - |"},{"line_number":10,"context_line":"    Fix bug `2091410 \u003chttps://bugs.launchpad.net/neutron/+bug/2091410\u003e` which"},{"line_number":11,"context_line":"    could cause potential Denial of Service which could be done by adding a lot"},{"line_number":12,"context_line":"    of the tags to single resource, like e.g. ``network``. Now there is limit of"},{"line_number":13,"context_line":"    ``50`` tags for every resource."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"f8411425_1bd42bf5","line":12,"range":{"start_line":12,"start_character":69,"end_line":12,"end_character":77},"updated":"2024-12-17 16:39:18.000000000","message":"s/is a limit","commit_id":"4c0d1c2f797a99fba9e052537bc086c9f305bf64"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"44692c501e7d261a273f7554a22551b85e75c3db","unresolved":true,"context_lines":[{"line_number":9,"context_line":"  - |"},{"line_number":10,"context_line":"    Fix bug `2091410 \u003chttps://bugs.launchpad.net/neutron/+bug/2091410\u003e` which"},{"line_number":11,"context_line":"    could cause potential Denial of Service which could be done by adding a lot"},{"line_number":12,"context_line":"    of the tags to single resource, like e.g. ``network``. Now there is limit of"},{"line_number":13,"context_line":"    ``50`` tags for every resource."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"ed35614d_c8ffdd7d","line":12,"range":{"start_line":12,"start_character":36,"end_line":12,"end_character":45},"updated":"2024-12-17 16:39:18.000000000","message":"s/like, for example","commit_id":"4c0d1c2f797a99fba9e052537bc086c9f305bf64"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"01ec782f89d515d704b64159bac8adee06d9fb03","unresolved":false,"context_lines":[{"line_number":9,"context_line":"  - |"},{"line_number":10,"context_line":"    Fix bug `2091410 \u003chttps://bugs.launchpad.net/neutron/+bug/2091410\u003e` which"},{"line_number":11,"context_line":"    could cause potential Denial of Service which could be done by adding a lot"},{"line_number":12,"context_line":"    of the tags to single resource, like e.g. ``network``. Now there is limit of"},{"line_number":13,"context_line":"    ``50`` tags for every resource."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9cc4d825_92a6df84","line":12,"range":{"start_line":12,"start_character":36,"end_line":12,"end_character":45},"in_reply_to":"ed35614d_c8ffdd7d","updated":"2024-12-19 12:02:52.000000000","message":"Done","commit_id":"4c0d1c2f797a99fba9e052537bc086c9f305bf64"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"01ec782f89d515d704b64159bac8adee06d9fb03","unresolved":false,"context_lines":[{"line_number":8,"context_line":"fixes:"},{"line_number":9,"context_line":"  - |"},{"line_number":10,"context_line":"    Fix bug `2091410 \u003chttps://bugs.launchpad.net/neutron/+bug/2091410\u003e` which"},{"line_number":11,"context_line":"    could cause potential Denial of Service which could be done by adding a lot"},{"line_number":12,"context_line":"    of the tags to single resource, like e.g. ``network``. Now there is limit of"},{"line_number":13,"context_line":"    ``50`` tags for every resource."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"915fa824_0196ae02","line":12,"range":{"start_line":11,"start_character":74,"end_line":12,"end_character":34},"in_reply_to":"ed83cf3b_e76d9bf8","updated":"2024-12-19 12:02:52.000000000","message":"Done","commit_id":"4c0d1c2f797a99fba9e052537bc086c9f305bf64"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"01ec782f89d515d704b64159bac8adee06d9fb03","unresolved":false,"context_lines":[{"line_number":9,"context_line":"  - |"},{"line_number":10,"context_line":"    Fix bug `2091410 \u003chttps://bugs.launchpad.net/neutron/+bug/2091410\u003e` which"},{"line_number":11,"context_line":"    could cause potential Denial of Service which could be done by adding a lot"},{"line_number":12,"context_line":"    of the tags to single resource, like e.g. ``network``. Now there is limit of"},{"line_number":13,"context_line":"    ``50`` tags for every resource."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"269b76c4_18224901","line":12,"range":{"start_line":12,"start_character":69,"end_line":12,"end_character":77},"in_reply_to":"f8411425_1bd42bf5","updated":"2024-12-19 12:02:52.000000000","message":"Done","commit_id":"4c0d1c2f797a99fba9e052537bc086c9f305bf64"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"3fc9f40b68e9aad0b9096be22b59d539981c0108","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A Limit on the number of tags per resource has been added. In case when"},{"line_number":5,"context_line":"    there are any resources with more than ``50`` tags created, it will not be"},{"line_number":6,"context_line":"    possible to create or modify existing tags for such resource until some of"},{"line_number":7,"context_line":"    them are deleted."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5a5bf796_9393ca1d","line":4,"range":{"start_line":4,"start_character":6,"end_line":4,"end_character":11},"updated":"2025-01-14 16:04:13.000000000","message":"s/limit","commit_id":"3a46fd2643b017041b3f8deb8a1fa5469e5fc8ad"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"755966fc8f2ec0518c5cee2b169113ef701c9c5f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A Limit on the number of tags per resource has been added. In case when"},{"line_number":5,"context_line":"    there are any resources with more than ``50`` tags created, it will not be"},{"line_number":6,"context_line":"    possible to create or modify existing tags for such resource until some of"},{"line_number":7,"context_line":"    them are deleted."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"720209f9_03a84098","line":4,"range":{"start_line":4,"start_character":6,"end_line":4,"end_character":11},"in_reply_to":"5a5bf796_9393ca1d","updated":"2025-01-15 11:26:55.000000000","message":"Done","commit_id":"3a46fd2643b017041b3f8deb8a1fa5469e5fc8ad"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"3fc9f40b68e9aad0b9096be22b59d539981c0108","unresolved":true,"context_lines":[{"line_number":7,"context_line":"    them are deleted."},{"line_number":8,"context_line":"fixes:"},{"line_number":9,"context_line":"  - |"},{"line_number":10,"context_line":"    Fix bug `2091410 \u003chttps://bugs.launchpad.net/neutron/+bug/2091410\u003e` which"},{"line_number":11,"context_line":"    could cause potential Denial of Service by adding a lot of tags to a single"},{"line_number":12,"context_line":"    resource, like, for example ``network``. Now there is a limit of ``50`` tags"},{"line_number":13,"context_line":"    for every resource."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"f23cf65e_a3a1a800","line":10,"range":{"start_line":10,"start_character":69,"end_line":10,"end_character":71},"updated":"2025-01-14 16:04:13.000000000","message":"Seems you are missing an underscore here, \u003e_` , which is causing the relnote to not render this as a url.","commit_id":"3a46fd2643b017041b3f8deb8a1fa5469e5fc8ad"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"755966fc8f2ec0518c5cee2b169113ef701c9c5f","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    them are deleted."},{"line_number":8,"context_line":"fixes:"},{"line_number":9,"context_line":"  - |"},{"line_number":10,"context_line":"    Fix bug `2091410 \u003chttps://bugs.launchpad.net/neutron/+bug/2091410\u003e` which"},{"line_number":11,"context_line":"    could cause potential Denial of Service by adding a lot of tags to a single"},{"line_number":12,"context_line":"    resource, like, for example ``network``. Now there is a limit of ``50`` tags"},{"line_number":13,"context_line":"    for every resource."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"65f4b040_1791378b","line":10,"range":{"start_line":10,"start_character":69,"end_line":10,"end_character":71},"in_reply_to":"f23cf65e_a3a1a800","updated":"2025-01-15 11:26:55.000000000","message":"Done","commit_id":"3a46fd2643b017041b3f8deb8a1fa5469e5fc8ad"}]}
