)]}'
{"neutron/tests/unit/conf/policies/test_metering.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"b222837f1ab549fa52629b8f07b3ea468ee1ba0c","unresolved":true,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    def setUp(self):"},{"line_number":25,"context_line":"        super(MeteringAPITestCase, self).setUp()"},{"line_number":26,"context_line":"        self.target \u003d {\u0027project_id\u0027: self.project_id}"},{"line_number":27,"context_line":"        self.alt_target \u003d {\u0027project_id\u0027: self.alt_project_id}"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"dc21b857_7d35da9f","line":26,"updated":"2021-04-09 13:20:29.000000000","message":"Looking at the check strings, I don\u0027t think project_ids are required are they?\n\nIt looks like this entire API is reserved for system-administrators, and the legacy RULE_ADMIN_ONLY check is only checking that the user has the \u0027admin\u0027 role in context.roles.\n\nDo metering labels always have project_ids associated to them? Are they owned by projects?","commit_id":"0da6a52294071d8c756cafb554482ecd3a5c620e"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"16f983616265acfd05f4e7527a23919dbd80c935","unresolved":true,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    def setUp(self):"},{"line_number":25,"context_line":"        super(MeteringAPITestCase, self).setUp()"},{"line_number":26,"context_line":"        self.target \u003d {\u0027project_id\u0027: self.project_id}"},{"line_number":27,"context_line":"        self.alt_target \u003d {\u0027project_id\u0027: self.alt_project_id}"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"e3b5ef29_831cc12b","line":26,"in_reply_to":"978b50a9_723d9847","updated":"2021-04-12 18:30:35.000000000","message":"Ok - so system administrators can do things with metering labels on behalf of projects if they can pass the project ID into the request somehow (using the request body?)\n\nI\u0027m curious if that\u0027s how this API was traditionally used prior to system-scope since it was an admin-only API, but the resources are ultimately project-scoped.","commit_id":"0da6a52294071d8c756cafb554482ecd3a5c620e"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"4698422066cc56cfc1dd661d8d76edc8cc8f696a","unresolved":true,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    def setUp(self):"},{"line_number":25,"context_line":"        super(MeteringAPITestCase, self).setUp()"},{"line_number":26,"context_line":"        self.target \u003d {\u0027project_id\u0027: self.project_id}"},{"line_number":27,"context_line":"        self.alt_target \u003d {\u0027project_id\u0027: self.alt_project_id}"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"978b50a9_723d9847","line":26,"in_reply_to":"dc21b857_7d35da9f","updated":"2021-04-12 13:34:51.000000000","message":"Looking at api-ref: https://docs.openstack.org/api-ref/network/v2/?expanded\u003dlist-metering-labels-detail#metering-labels-and-rules-metering-labels-metering-label-rules those resources have project_id so it should be here.","commit_id":"0da6a52294071d8c756cafb554482ecd3a5c620e"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"b222837f1ab549fa52629b8f07b3ea468ee1ba0c","unresolved":true,"context_lines":[{"line_number":98,"context_line":"            policy.enforce,"},{"line_number":99,"context_line":"            self.context, \u0027create_metering_label\u0027, self.alt_target)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def test_get_metering_label(self):"},{"line_number":102,"context_line":"        self.assertTrue("},{"line_number":103,"context_line":"            policy.enforce("},{"line_number":104,"context_line":"                self.context, \u0027get_metering_label\u0027, self.target))"}],"source_content_type":"text/x-python","patch_set":1,"id":"2756b9be_3e93dbea","line":101,"updated":"2021-04-09 13:20:29.000000000","message":"nit: We could remove this test and inherit it from SystemAdminTests.","commit_id":"0da6a52294071d8c756cafb554482ecd3a5c620e"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"4698422066cc56cfc1dd661d8d76edc8cc8f696a","unresolved":false,"context_lines":[{"line_number":98,"context_line":"            policy.enforce,"},{"line_number":99,"context_line":"            self.context, \u0027create_metering_label\u0027, self.alt_target)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def test_get_metering_label(self):"},{"line_number":102,"context_line":"        self.assertTrue("},{"line_number":103,"context_line":"            policy.enforce("},{"line_number":104,"context_line":"                self.context, \u0027get_metering_label\u0027, self.target))"}],"source_content_type":"text/x-python","patch_set":1,"id":"b7790e11_47092425","line":101,"in_reply_to":"2756b9be_3e93dbea","updated":"2021-04-12 13:34:51.000000000","message":"Done","commit_id":"0da6a52294071d8c756cafb554482ecd3a5c620e"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"b222837f1ab549fa52629b8f07b3ea468ee1ba0c","unresolved":true,"context_lines":[{"line_number":126,"context_line":"            policy.enforce,"},{"line_number":127,"context_line":"            self.context, \u0027create_metering_label_rule\u0027, self.alt_target)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    def test_get_metering_label_rule(self):"},{"line_number":130,"context_line":"        self.assertTrue("},{"line_number":131,"context_line":"            policy.enforce("},{"line_number":132,"context_line":"                self.context, \u0027get_metering_label_rule\u0027, self.target))"}],"source_content_type":"text/x-python","patch_set":1,"id":"9094a0c1_c67ad401","line":129,"updated":"2021-04-09 13:20:29.000000000","message":"nit: We could remove this test and inherit it from SystemAdminTests.","commit_id":"0da6a52294071d8c756cafb554482ecd3a5c620e"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"4698422066cc56cfc1dd661d8d76edc8cc8f696a","unresolved":false,"context_lines":[{"line_number":126,"context_line":"            policy.enforce,"},{"line_number":127,"context_line":"            self.context, \u0027create_metering_label_rule\u0027, self.alt_target)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    def test_get_metering_label_rule(self):"},{"line_number":130,"context_line":"        self.assertTrue("},{"line_number":131,"context_line":"            policy.enforce("},{"line_number":132,"context_line":"                self.context, \u0027get_metering_label_rule\u0027, self.target))"}],"source_content_type":"text/x-python","patch_set":1,"id":"7d187364_a4c61e3e","line":129,"in_reply_to":"9094a0c1_c67ad401","updated":"2021-04-12 13:34:51.000000000","message":"Done","commit_id":"0da6a52294071d8c756cafb554482ecd3a5c620e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"0e57370474e72d28da6d64c5e0fb081001987cb9","unresolved":true,"context_lines":[{"line_number":82,"context_line":"                self.context, \u0027delete_metering_label_rule\u0027, self.alt_target))"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"class SystemMemberTests(SystemAdminTests):"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    def setUp(self):"},{"line_number":88,"context_line":"        super(SystemMemberTests, self).setUp()"}],"source_content_type":"text/x-python","patch_set":2,"id":"043a1ef5_94e6681a","line":85,"range":{"start_line":85,"start_character":24,"end_line":85,"end_character":40},"updated":"2021-05-27 15:12:46.000000000","message":"+1","commit_id":"3b331b31f21ed808600cd3ee7e2e85f0c2896672"}]}
