)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"649ee2bad6af130c791293e05d4450de4325dad8","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Slawek Kaplonski \u003cskaplons@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2024-05-14 16:38:34 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Always expect project_id and tenant_id to be in the attributes list"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Even in case when resource definition don\u0027t have project_id nor"},{"line_number":10,"context_line":"tenant_id in its API definition it is always there because it is added"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"bf28ef7f_a6e805dc","line":7,"updated":"2024-05-29 20:39:23.000000000","message":"it would help a reviewer to understand the intent of the patch if the commit message would describe an actual problem (user visible or otherwise). I for one don\u0027t understand which problem it solves (and the description of the linked bug is not clear to me either.)","commit_id":"b82a34c09b9a69084cc5d52bd40329c4c1ced924"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"649ee2bad6af130c791293e05d4450de4325dad8","unresolved":true,"context_lines":[{"line_number":11,"context_line":"from the neutron_context."},{"line_number":12,"context_line":"Because of that reason, it was necessary to add those attributes to the"},{"line_number":13,"context_line":"list of attributes of all resources, even those which don\u0027t really"},{"line_number":14,"context_line":"belong to any specific project (like e.g. flavors or QoS rules)."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"This patch adds project_id and tenant_id to the list of the expected"},{"line_number":17,"context_line":"attributes always so it won\u0027t fail validation of the attributes during"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"a1ac31cb_baf5186d","line":14,"updated":"2024-05-29 20:39:23.000000000","message":"qos rules belong to a project, through qos policies. their REST URIs contain project_id. Not sure what this is supposed to mean, maybe I misunderstood.","commit_id":"b82a34c09b9a69084cc5d52bd40329c4c1ced924"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"4d9e141c2cddce32bfce96340c39dec114e2636a","unresolved":false,"context_lines":[{"line_number":11,"context_line":"from the neutron_context."},{"line_number":12,"context_line":"Because of that reason, it was necessary to add those attributes to the"},{"line_number":13,"context_line":"list of attributes of all resources, even those which don\u0027t really"},{"line_number":14,"context_line":"belong to any specific project (like e.g. flavors or QoS rules)."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"This patch adds project_id and tenant_id to the list of the expected"},{"line_number":17,"context_line":"attributes always so it won\u0027t fail validation of the attributes during"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1d611abf_a07af9f1","line":14,"in_reply_to":"2186f7fd_3e4a81fb","updated":"2024-05-31 17:08:21.000000000","message":"To address here too - we discussed on drivers meeting and decided to try to instead make populate_project_id not populate for resources that don\u0027t have the attribute. This may affect some subprojects but then it\u0027s a bug to resolve.","commit_id":"b82a34c09b9a69084cc5d52bd40329c4c1ced924"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"ec2f919cb7ea02e4c43c9d7e084ff57b934cf571","unresolved":false,"context_lines":[{"line_number":11,"context_line":"from the neutron_context."},{"line_number":12,"context_line":"Because of that reason, it was necessary to add those attributes to the"},{"line_number":13,"context_line":"list of attributes of all resources, even those which don\u0027t really"},{"line_number":14,"context_line":"belong to any specific project (like e.g. flavors or QoS rules)."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"This patch adds project_id and tenant_id to the list of the expected"},{"line_number":17,"context_line":"attributes always so it won\u0027t fail validation of the attributes during"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"2186f7fd_3e4a81fb","line":14,"in_reply_to":"a1ac31cb_baf5186d","updated":"2024-05-31 07:48:21.000000000","message":"intention of this patch was to fix minor issue which we have in our api definition. Let me try to explain it: as you know, in Neutron we have some API resources which don\u0027t really belong to any project and shouldn\u0027t require project to be specified as its attribute (e.g. flavors or service profiles). Unfortunately, due to the \"populate_project_id\" method in https://github.com/openstack/neutron-lib/blob/master/neutron_lib/api/attributes.py#L259 project_id is always added to every resource, even if it don\u0027t needs it at all for every \u0027create\u0027 api request. Because of that we need to keep project_id in the api definition of e.g. flavors resource which may be IMO a bit missleading for future readers of the code as this suggestes IMO that flavor belongs to some  project which is actually not true.\n\nIf that patch broke something which I wasn\u0027t aware of I am fine with backport. I also don\u0027t think this is any critical to fix. It was IMO just small improvement of our API definitions to be able to specify project_id only to the resources which really belongs to some project and require it.\n\nRegarding qos rules - yes, they belongs to the project through the qos policy which they belong too. But again, qos rule, similarly to the e.g. flavors don\u0027t have project_id attribute at all. You can\u0027t for example use it in the api policies and check \u0027owner of the qos rule\u0027 - for that we are checking \u0027parent_owner\u0027 in this case.","commit_id":"b82a34c09b9a69084cc5d52bd40329c4c1ced924"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"7767faa7e1a17bc0db1018f44bd99350455e5079","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ece892b0_c3e80627","updated":"2024-05-29 08:56:58.000000000","message":"looks ok, api-ref seem ok, no pr-id tenant-id at least for these flavors and qos-rules","commit_id":"b82a34c09b9a69084cc5d52bd40329c4c1ced924"}],"neutron_lib/api/definitions/qos.py":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"e15f83f88d3ca32727ec773f8cccfde29cf6325e","unresolved":true,"context_lines":[{"line_number":69,"context_line":"            \u0027is_filter\u0027: True,"},{"line_number":70,"context_line":"            \u0027convert_to\u0027: converters.convert_to_boolean"},{"line_number":71,"context_line":"        },"},{"line_number":72,"context_line":"        \u0027tenant_id\u0027: {"},{"line_number":73,"context_line":"            \u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":74,"context_line":"            \u0027required_by_policy\u0027: True,"},{"line_number":75,"context_line":"            \u0027validate\u0027: {\u0027type:string\u0027: db_const.PROJECT_ID_FIELD_SIZE},"},{"line_number":76,"context_line":"            \u0027is_filter\u0027: True, \u0027is_sort_key\u0027: True,"},{"line_number":77,"context_line":"            \u0027is_visible\u0027: True"},{"line_number":78,"context_line":"        },"},{"line_number":79,"context_line":"        \u0027rules\u0027: {"},{"line_number":80,"context_line":"            \u0027allow_post\u0027: False,"},{"line_number":81,"context_line":"            \u0027allow_put\u0027: False,"}],"source_content_type":"text/x-python","patch_set":1,"id":"b7ae02a6_0d1edf25","side":"PARENT","line":78,"range":{"start_line":72,"start_character":0,"end_line":78,"end_character":10},"updated":"2024-05-21 12:50:27.000000000","message":"for the policies we still need tenant/project ID?","commit_id":"8b6c76978995fe3b669ddf0689ac358d12174de7"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"7767faa7e1a17bc0db1018f44bd99350455e5079","unresolved":true,"context_lines":[{"line_number":69,"context_line":"            \u0027is_filter\u0027: True,"},{"line_number":70,"context_line":"            \u0027convert_to\u0027: converters.convert_to_boolean"},{"line_number":71,"context_line":"        },"},{"line_number":72,"context_line":"        \u0027tenant_id\u0027: {"},{"line_number":73,"context_line":"            \u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":74,"context_line":"            \u0027required_by_policy\u0027: True,"},{"line_number":75,"context_line":"            \u0027validate\u0027: {\u0027type:string\u0027: db_const.PROJECT_ID_FIELD_SIZE},"},{"line_number":76,"context_line":"            \u0027is_filter\u0027: True, \u0027is_sort_key\u0027: True,"},{"line_number":77,"context_line":"            \u0027is_visible\u0027: True"},{"line_number":78,"context_line":"        },"},{"line_number":79,"context_line":"        \u0027rules\u0027: {"},{"line_number":80,"context_line":"            \u0027allow_post\u0027: False,"},{"line_number":81,"context_line":"            \u0027allow_put\u0027: False,"}],"source_content_type":"text/x-python","patch_set":1,"id":"2264b421_4137daf1","side":"PARENT","line":78,"range":{"start_line":72,"start_character":0,"end_line":78,"end_character":10},"in_reply_to":"b1db174e_3b216de5","updated":"2024-05-29 08:56:58.000000000","message":"ack","commit_id":"8b6c76978995fe3b669ddf0689ac358d12174de7"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"e286f4ee0351572badc6bc1e8b242bb9def15ea8","unresolved":true,"context_lines":[{"line_number":69,"context_line":"            \u0027is_filter\u0027: True,"},{"line_number":70,"context_line":"            \u0027convert_to\u0027: converters.convert_to_boolean"},{"line_number":71,"context_line":"        },"},{"line_number":72,"context_line":"        \u0027tenant_id\u0027: {"},{"line_number":73,"context_line":"            \u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":74,"context_line":"            \u0027required_by_policy\u0027: True,"},{"line_number":75,"context_line":"            \u0027validate\u0027: {\u0027type:string\u0027: db_const.PROJECT_ID_FIELD_SIZE},"},{"line_number":76,"context_line":"            \u0027is_filter\u0027: True, \u0027is_sort_key\u0027: True,"},{"line_number":77,"context_line":"            \u0027is_visible\u0027: True"},{"line_number":78,"context_line":"        },"},{"line_number":79,"context_line":"        \u0027rules\u0027: {"},{"line_number":80,"context_line":"            \u0027allow_post\u0027: False,"},{"line_number":81,"context_line":"            \u0027allow_put\u0027: False,"}],"source_content_type":"text/x-python","patch_set":1,"id":"b1db174e_3b216de5","side":"PARENT","line":78,"range":{"start_line":72,"start_character":0,"end_line":78,"end_character":10},"in_reply_to":"b7ae02a6_0d1edf25","updated":"2024-05-29 07:19:33.000000000","message":"yes because QoS policy have project ID attribute and belongs to some project.","commit_id":"8b6c76978995fe3b669ddf0689ac358d12174de7"}]}
