)]}'
{"neutron/conf/policies/floatingip.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"c0b9f04033b5f9379160b636707b7cfe6d74ddcd","unresolved":true,"context_lines":[{"line_number":147,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":148,"context_line":"        name\u003d\u0027delete_floatingips_tags\u0027,"},{"line_number":149,"context_line":"        check_str\u003dbase.ADMIN_OR_PROJECT_MEMBER,"},{"line_number":150,"context_line":"        description\u003d\u0027Delete a floating IP\u0027,"},{"line_number":151,"context_line":"        operations\u003dACTION_DELETE_TAGS,"},{"line_number":152,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":153,"context_line":"    ),"}],"source_content_type":"text/x-python","patch_set":10,"id":"2d3b8eee_b8514707","line":150,"range":{"start_line":150,"start_character":21,"end_line":150,"end_character":41},"updated":"2023-10-11 00:24:15.000000000","message":"s/Delete the floating IP tags","commit_id":"367b9f277db2750b5772e0589285984fb640f07e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"d1f4bc1d8495d35e6c8eb82a8f5f30bd7e1c1cf7","unresolved":false,"context_lines":[{"line_number":147,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":148,"context_line":"        name\u003d\u0027delete_floatingips_tags\u0027,"},{"line_number":149,"context_line":"        check_str\u003dbase.ADMIN_OR_PROJECT_MEMBER,"},{"line_number":150,"context_line":"        description\u003d\u0027Delete a floating IP\u0027,"},{"line_number":151,"context_line":"        operations\u003dACTION_DELETE_TAGS,"},{"line_number":152,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":153,"context_line":"    ),"}],"source_content_type":"text/x-python","patch_set":10,"id":"cb21cec8_b0dfd714","line":150,"range":{"start_line":150,"start_character":21,"end_line":150,"end_character":41},"in_reply_to":"2d3b8eee_b8514707","updated":"2023-10-11 09:49:14.000000000","message":"Done","commit_id":"367b9f277db2750b5772e0589285984fb640f07e"}],"neutron/conf/policies/port.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f5d76175dab2b2dd588c59151544352adb649782","unresolved":true,"context_lines":[{"line_number":619,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":620,"context_line":"        name\u003d\u0027update_ports_tags\u0027,"},{"line_number":621,"context_line":"        check_str\u003dneutron_policy.policy_or("},{"line_number":622,"context_line":"            base.ADMIN,"},{"line_number":623,"context_line":"            base.PROJECT_MEMBER,"},{"line_number":624,"context_line":"            neutron_policy.RULE_ADVSVC"},{"line_number":625,"context_line":"        ),"},{"line_number":626,"context_line":"        scope_types\u003d[\u0027project\u0027],"}],"source_content_type":"text/x-python","patch_set":7,"id":"843d98ef_34643cce","line":623,"range":{"start_line":622,"start_character":12,"end_line":623,"end_character":32},"updated":"2023-10-06 08:11:21.000000000","message":"nit: ADMIN_OR_PROJECT_MEMBER","commit_id":"9e3d584c122c92fe043b37d7af334f8d860d8868"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"9360ee9f5de431ea7fb80af9ea3195c7b06fe049","unresolved":false,"context_lines":[{"line_number":619,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":620,"context_line":"        name\u003d\u0027update_ports_tags\u0027,"},{"line_number":621,"context_line":"        check_str\u003dneutron_policy.policy_or("},{"line_number":622,"context_line":"            base.ADMIN,"},{"line_number":623,"context_line":"            base.PROJECT_MEMBER,"},{"line_number":624,"context_line":"            neutron_policy.RULE_ADVSVC"},{"line_number":625,"context_line":"        ),"},{"line_number":626,"context_line":"        scope_types\u003d[\u0027project\u0027],"}],"source_content_type":"text/x-python","patch_set":7,"id":"e55c1dcb_4336d38c","line":623,"range":{"start_line":622,"start_character":12,"end_line":623,"end_character":32},"in_reply_to":"843d98ef_34643cce","updated":"2023-10-06 09:11:10.000000000","message":"Done\n\nI just copy-pasted \"update_port\" rule. I\u0027ll update it.","commit_id":"9e3d584c122c92fe043b37d7af334f8d860d8868"}],"neutron/conf/policies/security_group.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f5d76175dab2b2dd588c59151544352adb649782","unresolved":true,"context_lines":[{"line_number":93,"context_line":"            deprecated_reason\u003dDEPRECATED_REASON,"},{"line_number":94,"context_line":"            deprecated_since\u003dversionutils.deprecated.WALLABY)"},{"line_number":95,"context_line":"    ),"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":98,"context_line":"        name\u003d\u0027get_security_group\u0027,"},{"line_number":99,"context_line":"        check_str\u003dneutron_policy.policy_or("}],"source_content_type":"text/x-python","patch_set":7,"id":"1dba3a51_f580936c","line":96,"updated":"2023-10-06 08:11:21.000000000","message":"nit: why this empty line?","commit_id":"9e3d584c122c92fe043b37d7af334f8d860d8868"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"9360ee9f5de431ea7fb80af9ea3195c7b06fe049","unresolved":false,"context_lines":[{"line_number":93,"context_line":"            deprecated_reason\u003dDEPRECATED_REASON,"},{"line_number":94,"context_line":"            deprecated_since\u003dversionutils.deprecated.WALLABY)"},{"line_number":95,"context_line":"    ),"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":98,"context_line":"        name\u003d\u0027get_security_group\u0027,"},{"line_number":99,"context_line":"        check_str\u003dneutron_policy.policy_or("}],"source_content_type":"text/x-python","patch_set":7,"id":"8816e232_5f52cddc","line":96,"in_reply_to":"1dba3a51_f580936c","updated":"2023-10-06 09:11:10.000000000","message":"Between create and get rules, like in other files. I\u0027ll remove it.","commit_id":"9e3d584c122c92fe043b37d7af334f8d860d8868"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"9360ee9f5de431ea7fb80af9ea3195c7b06fe049","unresolved":false,"context_lines":[{"line_number":93,"context_line":"            deprecated_reason\u003dDEPRECATED_REASON,"},{"line_number":94,"context_line":"            deprecated_since\u003dversionutils.deprecated.WALLABY)"},{"line_number":95,"context_line":"    ),"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":98,"context_line":"        name\u003d\u0027get_security_group\u0027,"},{"line_number":99,"context_line":"        check_str\u003dneutron_policy.policy_or("}],"source_content_type":"text/x-python","patch_set":7,"id":"b1cbd0dc_0ee15815","line":96,"in_reply_to":"1dba3a51_f580936c","updated":"2023-10-06 09:11:10.000000000","message":"Done","commit_id":"9e3d584c122c92fe043b37d7af334f8d860d8868"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f5d76175dab2b2dd588c59151544352adb649782","unresolved":true,"context_lines":[{"line_number":128,"context_line":"        description\u003d\u0027Get the security group tags\u0027,"},{"line_number":129,"context_line":"        operations\u003dSG_ACTION_GET_TAGS,"},{"line_number":130,"context_line":"    ),"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":133,"context_line":"        name\u003d\u0027update_security_group\u0027,"},{"line_number":134,"context_line":"        check_str\u003dbase.ADMIN_OR_PROJECT_MEMBER,"}],"source_content_type":"text/x-python","patch_set":7,"id":"4291ffe3_bfce669e","line":131,"updated":"2023-10-06 08:11:21.000000000","message":"nit: do we need empty line here?","commit_id":"9e3d584c122c92fe043b37d7af334f8d860d8868"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"9360ee9f5de431ea7fb80af9ea3195c7b06fe049","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        description\u003d\u0027Get the security group tags\u0027,"},{"line_number":129,"context_line":"        operations\u003dSG_ACTION_GET_TAGS,"},{"line_number":130,"context_line":"    ),"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":133,"context_line":"        name\u003d\u0027update_security_group\u0027,"},{"line_number":134,"context_line":"        check_str\u003dbase.ADMIN_OR_PROJECT_MEMBER,"}],"source_content_type":"text/x-python","patch_set":7,"id":"df92126b_6496d177","line":131,"in_reply_to":"4291ffe3_bfce669e","updated":"2023-10-06 09:11:10.000000000","message":"Done","commit_id":"9e3d584c122c92fe043b37d7af334f8d860d8868"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"9360ee9f5de431ea7fb80af9ea3195c7b06fe049","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        description\u003d\u0027Get the security group tags\u0027,"},{"line_number":129,"context_line":"        operations\u003dSG_ACTION_GET_TAGS,"},{"line_number":130,"context_line":"    ),"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":133,"context_line":"        name\u003d\u0027update_security_group\u0027,"},{"line_number":134,"context_line":"        check_str\u003dbase.ADMIN_OR_PROJECT_MEMBER,"}],"source_content_type":"text/x-python","patch_set":7,"id":"e7449078_245b698b","line":131,"in_reply_to":"4291ffe3_bfce669e","updated":"2023-10-06 09:11:10.000000000","message":"Done","commit_id":"9e3d584c122c92fe043b37d7af334f8d860d8868"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f5d76175dab2b2dd588c59151544352adb649782","unresolved":true,"context_lines":[{"line_number":153,"context_line":"        description\u003d\u0027Update the security group tags\u0027,"},{"line_number":154,"context_line":"        operations\u003dSG_ACTION_PUT_TAGS,"},{"line_number":155,"context_line":"    ),"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":158,"context_line":"        name\u003d\u0027delete_security_group\u0027,"},{"line_number":159,"context_line":"        check_str\u003dbase.ADMIN_OR_PROJECT_MEMBER,"}],"source_content_type":"text/x-python","patch_set":7,"id":"4495564b_78daf3ff","line":156,"updated":"2023-10-06 08:11:21.000000000","message":"nit: ditto","commit_id":"9e3d584c122c92fe043b37d7af334f8d860d8868"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"9360ee9f5de431ea7fb80af9ea3195c7b06fe049","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        description\u003d\u0027Update the security group tags\u0027,"},{"line_number":154,"context_line":"        operations\u003dSG_ACTION_PUT_TAGS,"},{"line_number":155,"context_line":"    ),"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":158,"context_line":"        name\u003d\u0027delete_security_group\u0027,"},{"line_number":159,"context_line":"        check_str\u003dbase.ADMIN_OR_PROJECT_MEMBER,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3c0b7896_968e83fa","line":156,"in_reply_to":"4495564b_78daf3ff","updated":"2023-10-06 09:11:10.000000000","message":"Done","commit_id":"9e3d584c122c92fe043b37d7af334f8d860d8868"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"9360ee9f5de431ea7fb80af9ea3195c7b06fe049","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        description\u003d\u0027Update the security group tags\u0027,"},{"line_number":154,"context_line":"        operations\u003dSG_ACTION_PUT_TAGS,"},{"line_number":155,"context_line":"    ),"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":158,"context_line":"        name\u003d\u0027delete_security_group\u0027,"},{"line_number":159,"context_line":"        check_str\u003dbase.ADMIN_OR_PROJECT_MEMBER,"}],"source_content_type":"text/x-python","patch_set":7,"id":"502d7463_f710aa05","line":156,"in_reply_to":"4495564b_78daf3ff","updated":"2023-10-06 09:11:10.000000000","message":"Done","commit_id":"9e3d584c122c92fe043b37d7af334f8d860d8868"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f5d76175dab2b2dd588c59151544352adb649782","unresolved":true,"context_lines":[{"line_number":198,"context_line":"            deprecated_reason\u003dDEPRECATED_REASON,"},{"line_number":199,"context_line":"            deprecated_since\u003dversionutils.deprecated.WALLABY)"},{"line_number":200,"context_line":"    ),"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":203,"context_line":"        name\u003d\u0027get_security_group_rule\u0027,"},{"line_number":204,"context_line":"        check_str\u003dneutron_policy.policy_or("}],"source_content_type":"text/x-python","patch_set":7,"id":"6708f54c_d67d1af2","line":201,"updated":"2023-10-06 08:11:21.000000000","message":"ditto","commit_id":"9e3d584c122c92fe043b37d7af334f8d860d8868"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"9360ee9f5de431ea7fb80af9ea3195c7b06fe049","unresolved":false,"context_lines":[{"line_number":198,"context_line":"            deprecated_reason\u003dDEPRECATED_REASON,"},{"line_number":199,"context_line":"            deprecated_since\u003dversionutils.deprecated.WALLABY)"},{"line_number":200,"context_line":"    ),"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":203,"context_line":"        name\u003d\u0027get_security_group_rule\u0027,"},{"line_number":204,"context_line":"        check_str\u003dneutron_policy.policy_or("}],"source_content_type":"text/x-python","patch_set":7,"id":"0357a3f8_3fd9f13a","line":201,"in_reply_to":"6708f54c_d67d1af2","updated":"2023-10-06 09:11:10.000000000","message":"Done","commit_id":"9e3d584c122c92fe043b37d7af334f8d860d8868"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"9360ee9f5de431ea7fb80af9ea3195c7b06fe049","unresolved":false,"context_lines":[{"line_number":198,"context_line":"            deprecated_reason\u003dDEPRECATED_REASON,"},{"line_number":199,"context_line":"            deprecated_since\u003dversionutils.deprecated.WALLABY)"},{"line_number":200,"context_line":"    ),"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":203,"context_line":"        name\u003d\u0027get_security_group_rule\u0027,"},{"line_number":204,"context_line":"        check_str\u003dneutron_policy.policy_or("}],"source_content_type":"text/x-python","patch_set":7,"id":"a176ba34_f9ab2c87","line":201,"in_reply_to":"6708f54c_d67d1af2","updated":"2023-10-06 09:11:10.000000000","message":"Done","commit_id":"9e3d584c122c92fe043b37d7af334f8d860d8868"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"9360ee9f5de431ea7fb80af9ea3195c7b06fe049","unresolved":false,"context_lines":[{"line_number":231,"context_line":"        description\u003d\u0027Get the security group rule tags\u0027,"},{"line_number":232,"context_line":"        operations\u003dRULE_ACTION_GET_TAGS,"},{"line_number":233,"context_line":"    ),"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":236,"context_line":"        name\u003d\u0027delete_security_group_rule\u0027,"},{"line_number":237,"context_line":"        check_str\u003dbase.ADMIN_OR_PROJECT_MEMBER,"}],"source_content_type":"text/x-python","patch_set":7,"id":"aebee295_a3fb1fb9","line":234,"updated":"2023-10-06 09:11:10.000000000","message":"deleted","commit_id":"9e3d584c122c92fe043b37d7af334f8d860d8868"}],"neutron/conf/policies/segment.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f5d76175dab2b2dd588c59151544352adb649782","unresolved":true,"context_lines":[{"line_number":56,"context_line":"            deprecated_reason\u003dDEPRECATED_REASON,"},{"line_number":57,"context_line":"            deprecated_since\u003dversionutils.deprecated.WALLABY)"},{"line_number":58,"context_line":"    ),"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":61,"context_line":"        name\u003d\u0027get_segment\u0027,"},{"line_number":62,"context_line":"        check_str\u003dbase.ADMIN,"}],"source_content_type":"text/x-python","patch_set":7,"id":"a8ef4610_015f1240","line":59,"updated":"2023-10-06 08:11:21.000000000","message":"ditto (and in all other similar places :))","commit_id":"9e3d584c122c92fe043b37d7af334f8d860d8868"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"9360ee9f5de431ea7fb80af9ea3195c7b06fe049","unresolved":false,"context_lines":[{"line_number":56,"context_line":"            deprecated_reason\u003dDEPRECATED_REASON,"},{"line_number":57,"context_line":"            deprecated_since\u003dversionutils.deprecated.WALLABY)"},{"line_number":58,"context_line":"    ),"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":61,"context_line":"        name\u003d\u0027get_segment\u0027,"},{"line_number":62,"context_line":"        check_str\u003dbase.ADMIN,"}],"source_content_type":"text/x-python","patch_set":7,"id":"18bf8c66_874475bb","line":59,"in_reply_to":"a8ef4610_015f1240","updated":"2023-10-06 09:11:10.000000000","message":"yes, like in other files, between create, get, modify and delete rules; to create a division between these type of rules.","commit_id":"9e3d584c122c92fe043b37d7af334f8d860d8868"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"9360ee9f5de431ea7fb80af9ea3195c7b06fe049","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        description\u003d\u0027Get the segment tags\u0027,"},{"line_number":86,"context_line":"        operations\u003dACTION_GET_TAGS,"},{"line_number":87,"context_line":"    ),"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":90,"context_line":"        name\u003d\u0027update_segment\u0027,"},{"line_number":91,"context_line":"        check_str\u003dbase.ADMIN,"}],"source_content_type":"text/x-python","patch_set":7,"id":"0b5152f7_86042ea4","line":88,"updated":"2023-10-06 09:11:10.000000000","message":"deleted","commit_id":"9e3d584c122c92fe043b37d7af334f8d860d8868"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"9360ee9f5de431ea7fb80af9ea3195c7b06fe049","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        description\u003d\u0027Update the segment tags\u0027,"},{"line_number":111,"context_line":"        operations\u003dACTION_PUT_TAGS,"},{"line_number":112,"context_line":"    ),"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":115,"context_line":"        name\u003d\u0027delete_segment\u0027,"},{"line_number":116,"context_line":"        check_str\u003dbase.ADMIN,"}],"source_content_type":"text/x-python","patch_set":7,"id":"51ede77f_a2fb2b1c","line":113,"updated":"2023-10-06 09:11:10.000000000","message":"deleted","commit_id":"9e3d584c122c92fe043b37d7af334f8d860d8868"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"c0b9f04033b5f9379160b636707b7cfe6d74ddcd","unresolved":true,"context_lines":[{"line_number":129,"context_line":"        name\u003d\u0027delete_segments_tags\u0027,"},{"line_number":130,"context_line":"        check_str\u003dbase.ADMIN,"},{"line_number":131,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":132,"context_line":"        description\u003d\u0027Delete a segment\u0027,"},{"line_number":133,"context_line":"        operations\u003dACTION_DELETE_TAGS,"},{"line_number":134,"context_line":"    ),"},{"line_number":135,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":10,"id":"fd8ff07c_7dac95b1","line":132,"range":{"start_line":132,"start_character":21,"end_line":132,"end_character":37},"updated":"2023-10-11 00:24:15.000000000","message":"s/Delete the segment tags","commit_id":"367b9f277db2750b5772e0589285984fb640f07e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"d1f4bc1d8495d35e6c8eb82a8f5f30bd7e1c1cf7","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        name\u003d\u0027delete_segments_tags\u0027,"},{"line_number":130,"context_line":"        check_str\u003dbase.ADMIN,"},{"line_number":131,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":132,"context_line":"        description\u003d\u0027Delete a segment\u0027,"},{"line_number":133,"context_line":"        operations\u003dACTION_DELETE_TAGS,"},{"line_number":134,"context_line":"    ),"},{"line_number":135,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":10,"id":"825edc39_58808968","line":132,"range":{"start_line":132,"start_character":21,"end_line":132,"end_character":37},"in_reply_to":"fd8ff07c_7dac95b1","updated":"2023-10-11 09:49:14.000000000","message":"Done","commit_id":"367b9f277db2750b5772e0589285984fb640f07e"}],"neutron/conf/policies/subnet.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f5d76175dab2b2dd588c59151544352adb649782","unresolved":true,"context_lines":[{"line_number":121,"context_line":"            deprecated_since\u003dversionutils.deprecated.WALLABY)"},{"line_number":122,"context_line":"    ),"},{"line_number":123,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":124,"context_line":"        name\u003d\u0027get_subnets_tags\u0027,"},{"line_number":125,"context_line":"        check_str\u003dneutron_policy.policy_or("},{"line_number":126,"context_line":"            base.ADMIN_OR_PROJECT_READER,"},{"line_number":127,"context_line":"            \u0027rule:shared\u0027),"}],"source_content_type":"text/x-python","patch_set":7,"id":"af536aec_1a6b8512","line":124,"updated":"2023-10-06 08:11:21.000000000","message":"shouldn\u0027t be \"get_subnet_tags\"?","commit_id":"9e3d584c122c92fe043b37d7af334f8d860d8868"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"9360ee9f5de431ea7fb80af9ea3195c7b06fe049","unresolved":false,"context_lines":[{"line_number":121,"context_line":"            deprecated_since\u003dversionutils.deprecated.WALLABY)"},{"line_number":122,"context_line":"    ),"},{"line_number":123,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":124,"context_line":"        name\u003d\u0027get_subnets_tags\u0027,"},{"line_number":125,"context_line":"        check_str\u003dneutron_policy.policy_or("},{"line_number":126,"context_line":"            base.ADMIN_OR_PROJECT_READER,"},{"line_number":127,"context_line":"            \u0027rule:shared\u0027),"}],"source_content_type":"text/x-python","patch_set":7,"id":"8b5db5d7_1796eac0","line":124,"in_reply_to":"af536aec_1a6b8512","updated":"2023-10-06 09:11:10.000000000","message":"The problem is how the \"tag\" plugin returns the parent resource in plural (method \"_get_parent_resource_and_id\"). This is why all tags policies have the resource in plural [1]\n\n[1]https://review.opendev.org/c/openstack/neutron/+/896509/7/neutron/extensions/tagging.py#b102","commit_id":"9e3d584c122c92fe043b37d7af334f8d860d8868"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f5d76175dab2b2dd588c59151544352adb649782","unresolved":true,"context_lines":[{"line_number":124,"context_line":"        name\u003d\u0027get_subnets_tags\u0027,"},{"line_number":125,"context_line":"        check_str\u003dneutron_policy.policy_or("},{"line_number":126,"context_line":"            base.ADMIN_OR_PROJECT_READER,"},{"line_number":127,"context_line":"            \u0027rule:shared\u0027),"},{"line_number":128,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":129,"context_line":"        description\u003d\u0027Get the subnet tags\u0027,"},{"line_number":130,"context_line":"        operations\u003dACTION_GET_TAGS,"}],"source_content_type":"text/x-python","patch_set":7,"id":"6f54f2fd_d8f4a70c","line":127,"updated":"2023-10-06 08:11:21.000000000","message":"what about NET_OWNER_READER?","commit_id":"9e3d584c122c92fe043b37d7af334f8d860d8868"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"9360ee9f5de431ea7fb80af9ea3195c7b06fe049","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        name\u003d\u0027get_subnets_tags\u0027,"},{"line_number":125,"context_line":"        check_str\u003dneutron_policy.policy_or("},{"line_number":126,"context_line":"            base.ADMIN_OR_PROJECT_READER,"},{"line_number":127,"context_line":"            \u0027rule:shared\u0027),"},{"line_number":128,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":129,"context_line":"        description\u003d\u0027Get the subnet tags\u0027,"},{"line_number":130,"context_line":"        operations\u003dACTION_GET_TAGS,"}],"source_content_type":"text/x-python","patch_set":7,"id":"dde3b3a0_31edc828","line":127,"in_reply_to":"6f54f2fd_d8f4a70c","updated":"2023-10-06 09:11:10.000000000","message":"This rule is mimicking \"get_subnet\". If this first one is wrong, I\u0027ll push first a patch to fix it and then I\u0027ll change this one.","commit_id":"9e3d584c122c92fe043b37d7af334f8d860d8868"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"3b30d856ae4c7f1826eb64160f4e43dc960ce287","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        name\u003d\u0027get_subnets_tags\u0027,"},{"line_number":125,"context_line":"        check_str\u003dneutron_policy.policy_or("},{"line_number":126,"context_line":"            base.ADMIN_OR_PROJECT_READER,"},{"line_number":127,"context_line":"            \u0027rule:shared\u0027),"},{"line_number":128,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":129,"context_line":"        description\u003d\u0027Get the subnet tags\u0027,"},{"line_number":130,"context_line":"        operations\u003dACTION_GET_TAGS,"}],"source_content_type":"text/x-python","patch_set":7,"id":"05fdca37_180ec8e0","line":127,"in_reply_to":"dde3b3a0_31edc828","updated":"2023-10-06 09:57:54.000000000","message":"ok, lets do it like that for now but I think we should change it. It don\u0027t makes sense for me that network owner can create subnet in network but can\u0027t see subnets already created. Or maybe that\u0027s ok, IDK. Probably this should be reported as bug and discussed separately then","commit_id":"9e3d584c122c92fe043b37d7af334f8d860d8868"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f5d76175dab2b2dd588c59151544352adb649782","unresolved":true,"context_lines":[{"line_number":166,"context_line":"            deprecated_since\u003dversionutils.deprecated.WALLABY)"},{"line_number":167,"context_line":"    ),"},{"line_number":168,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":169,"context_line":"        name\u003d\u0027update_subnets_tags\u0027,"},{"line_number":170,"context_line":"        check_str\u003dbase.ADMIN_OR_NET_OWNER_MEMBER,"},{"line_number":171,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":172,"context_line":"        description\u003d\u0027Update the subnet tags\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"eef19963_c36e16d2","line":169,"updated":"2023-10-06 08:11:21.000000000","message":"same here","commit_id":"9e3d584c122c92fe043b37d7af334f8d860d8868"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"9360ee9f5de431ea7fb80af9ea3195c7b06fe049","unresolved":false,"context_lines":[{"line_number":166,"context_line":"            deprecated_since\u003dversionutils.deprecated.WALLABY)"},{"line_number":167,"context_line":"    ),"},{"line_number":168,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":169,"context_line":"        name\u003d\u0027update_subnets_tags\u0027,"},{"line_number":170,"context_line":"        check_str\u003dbase.ADMIN_OR_NET_OWNER_MEMBER,"},{"line_number":171,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":172,"context_line":"        description\u003d\u0027Update the subnet tags\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"f3404cc6_7e26d3a8","line":169,"in_reply_to":"eef19963_c36e16d2","updated":"2023-10-06 09:11:10.000000000","message":"ditto","commit_id":"9e3d584c122c92fe043b37d7af334f8d860d8868"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f5d76175dab2b2dd588c59151544352adb649782","unresolved":true,"context_lines":[{"line_number":167,"context_line":"    ),"},{"line_number":168,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":169,"context_line":"        name\u003d\u0027update_subnets_tags\u0027,"},{"line_number":170,"context_line":"        check_str\u003dbase.ADMIN_OR_NET_OWNER_MEMBER,"},{"line_number":171,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":172,"context_line":"        description\u003d\u0027Update the subnet tags\u0027,"},{"line_number":173,"context_line":"        operations\u003dACTION_PUT_TAGS,"}],"source_content_type":"text/x-python","patch_set":7,"id":"6b7cba67_d74e348c","line":170,"updated":"2023-10-06 08:11:21.000000000","message":"what about MEMBER (owner of the subnet)? shouldn\u0027t You include such role here too?","commit_id":"9e3d584c122c92fe043b37d7af334f8d860d8868"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"9360ee9f5de431ea7fb80af9ea3195c7b06fe049","unresolved":false,"context_lines":[{"line_number":167,"context_line":"    ),"},{"line_number":168,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":169,"context_line":"        name\u003d\u0027update_subnets_tags\u0027,"},{"line_number":170,"context_line":"        check_str\u003dbase.ADMIN_OR_NET_OWNER_MEMBER,"},{"line_number":171,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":172,"context_line":"        description\u003d\u0027Update the subnet tags\u0027,"},{"line_number":173,"context_line":"        operations\u003dACTION_PUT_TAGS,"}],"source_content_type":"text/x-python","patch_set":7,"id":"bb2fac6a_d0260f24","line":170,"in_reply_to":"6b7cba67_d74e348c","updated":"2023-10-06 09:11:10.000000000","message":"ditto","commit_id":"9e3d584c122c92fe043b37d7af334f8d860d8868"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f5d76175dab2b2dd588c59151544352adb649782","unresolved":true,"context_lines":[{"line_number":185,"context_line":"            deprecated_since\u003dversionutils.deprecated.WALLABY)"},{"line_number":186,"context_line":"    ),"},{"line_number":187,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":188,"context_line":"        name\u003d\u0027delete_subnets_tags\u0027,"},{"line_number":189,"context_line":"        check_str\u003dbase.ADMIN_OR_NET_OWNER_MEMBER,"},{"line_number":190,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":191,"context_line":"        description\u003d\u0027Delete the subnet tags\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"0f16617a_8c7de09f","line":188,"updated":"2023-10-06 08:11:21.000000000","message":"and here","commit_id":"9e3d584c122c92fe043b37d7af334f8d860d8868"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"9360ee9f5de431ea7fb80af9ea3195c7b06fe049","unresolved":false,"context_lines":[{"line_number":185,"context_line":"            deprecated_since\u003dversionutils.deprecated.WALLABY)"},{"line_number":186,"context_line":"    ),"},{"line_number":187,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":188,"context_line":"        name\u003d\u0027delete_subnets_tags\u0027,"},{"line_number":189,"context_line":"        check_str\u003dbase.ADMIN_OR_NET_OWNER_MEMBER,"},{"line_number":190,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":191,"context_line":"        description\u003d\u0027Delete the subnet tags\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"0ecbbc9c_7a227149","line":188,"in_reply_to":"0f16617a_8c7de09f","updated":"2023-10-06 09:11:10.000000000","message":"ditto","commit_id":"9e3d584c122c92fe043b37d7af334f8d860d8868"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f5d76175dab2b2dd588c59151544352adb649782","unresolved":true,"context_lines":[{"line_number":186,"context_line":"    ),"},{"line_number":187,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":188,"context_line":"        name\u003d\u0027delete_subnets_tags\u0027,"},{"line_number":189,"context_line":"        check_str\u003dbase.ADMIN_OR_NET_OWNER_MEMBER,"},{"line_number":190,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":191,"context_line":"        description\u003d\u0027Delete the subnet tags\u0027,"},{"line_number":192,"context_line":"        operations\u003dACTION_DELETE_TAGS,"}],"source_content_type":"text/x-python","patch_set":7,"id":"2d3449cd_677284e0","line":189,"updated":"2023-10-06 08:11:21.000000000","message":"what about MEMBER (owner of the subnet)? shouldn\u0027t You include such role here too?","commit_id":"9e3d584c122c92fe043b37d7af334f8d860d8868"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"9360ee9f5de431ea7fb80af9ea3195c7b06fe049","unresolved":false,"context_lines":[{"line_number":186,"context_line":"    ),"},{"line_number":187,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":188,"context_line":"        name\u003d\u0027delete_subnets_tags\u0027,"},{"line_number":189,"context_line":"        check_str\u003dbase.ADMIN_OR_NET_OWNER_MEMBER,"},{"line_number":190,"context_line":"        scope_types\u003d[\u0027project\u0027],"},{"line_number":191,"context_line":"        description\u003d\u0027Delete the subnet tags\u0027,"},{"line_number":192,"context_line":"        operations\u003dACTION_DELETE_TAGS,"}],"source_content_type":"text/x-python","patch_set":7,"id":"b91c79bd_5b31ebba","line":189,"in_reply_to":"2d3449cd_677284e0","updated":"2023-10-06 09:11:10.000000000","message":"ditto","commit_id":"9e3d584c122c92fe043b37d7af334f8d860d8868"}],"neutron/extensions/tagging.py":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"b3405bee264ca3d795e11a1203c42139c51766a1","unresolved":true,"context_lines":[{"line_number":57,"context_line":"        \u0027validate\u0027: {\u0027type:list_of_unique_strings\u0027: MAX_TAG_LEN},"},{"line_number":58,"context_line":"        \u0027default\u0027: [], \u0027is_visible\u0027: True, \u0027is_filter\u0027: True"},{"line_number":59,"context_line":"}"},{"line_number":60,"context_line":"RESOURCES_AND_PARENTS \u003d {\u0027subnets\u0027: (\u0027network\u0027, subnet.Subnet.get_network_id)}"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"class TagResourceNotFound(exceptions.NotFound):"}],"source_content_type":"text/x-python","patch_set":12,"id":"86d497c3_b606fd7d","line":60,"range":{"start_line":60,"start_character":0,"end_line":60,"end_character":21},"updated":"2023-10-16 07:15:50.000000000","message":"we have now only subnet-net relationship as parent/chiled relationship and has tags?\nGood idea that it is extensible.\nSecurity-group / security-group-rule is not similar?","commit_id":"c7585a68f558f629a64af9445032c1f386c6bb90"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"01cfeb01a2f70b29aeffada0a692ad7534427d77","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        \u0027validate\u0027: {\u0027type:list_of_unique_strings\u0027: MAX_TAG_LEN},"},{"line_number":58,"context_line":"        \u0027default\u0027: [], \u0027is_visible\u0027: True, \u0027is_filter\u0027: True"},{"line_number":59,"context_line":"}"},{"line_number":60,"context_line":"RESOURCES_AND_PARENTS \u003d {\u0027subnets\u0027: (\u0027network\u0027, subnet.Subnet.get_network_id)}"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"class TagResourceNotFound(exceptions.NotFound):"}],"source_content_type":"text/x-python","patch_set":12,"id":"820b3375_e250ef76","line":60,"range":{"start_line":60,"start_character":0,"end_line":60,"end_character":21},"in_reply_to":"86d497c3_b606fd7d","updated":"2023-10-16 14:40:05.000000000","message":"Actually that was an error in this PS: SG rules are not in the \"TAG_SUPPORTED_RESOURCES\", and \"trunk\" and \"subnetpools\" are missing here. I\u0027ll push a new PS.","commit_id":"c7585a68f558f629a64af9445032c1f386c6bb90"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"b3405bee264ca3d795e11a1203c42139c51766a1","unresolved":true,"context_lines":[{"line_number":112,"context_line":"    @staticmethod"},{"line_number":113,"context_line":"    def _get_pparent_resource_and_id(context, resource, resource_id):"},{"line_number":114,"context_line":"        \"\"\"Retrieve the parent of the resource and ID (e.g.: subnet-\u003enet)\"\"\""},{"line_number":115,"context_line":"        parent, getter_id \u003d RESOURCES_AND_PARENTS[resource]"},{"line_number":116,"context_line":"        parent_id \u003d getter_id(context.elevated(), resource_id)"},{"line_number":117,"context_line":"        return parent, parent_id"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"d1e39b7a_e83141f9","line":115,"range":{"start_line":115,"start_character":28,"end_line":115,"end_character":59},"updated":"2023-10-16 07:15:50.000000000","message":"to be on the safe side perhaps .get(resource)?\nI am not sure if it can happen that not subnet is the resource","commit_id":"c7585a68f558f629a64af9445032c1f386c6bb90"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"01cfeb01a2f70b29aeffada0a692ad7534427d77","unresolved":false,"context_lines":[{"line_number":112,"context_line":"    @staticmethod"},{"line_number":113,"context_line":"    def _get_pparent_resource_and_id(context, resource, resource_id):"},{"line_number":114,"context_line":"        \"\"\"Retrieve the parent of the resource and ID (e.g.: subnet-\u003enet)\"\"\""},{"line_number":115,"context_line":"        parent, getter_id \u003d RESOURCES_AND_PARENTS[resource]"},{"line_number":116,"context_line":"        parent_id \u003d getter_id(context.elevated(), resource_id)"},{"line_number":117,"context_line":"        return parent, parent_id"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"e338faa5_59557095","line":115,"range":{"start_line":115,"start_character":28,"end_line":115,"end_character":59},"in_reply_to":"d1e39b7a_e83141f9","updated":"2023-10-16 14:40:05.000000000","message":"We have checked before (L125) that \"resource\" is in \"RESOURCES_AND_PARENTS\". Actually I\u0027ll add this check to this method.","commit_id":"c7585a68f558f629a64af9445032c1f386c6bb90"}]}
