)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"61ceb7b5581610618f11f11960b515e5d944b52b","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Julia Kreger \u003cjuliaashleykreger@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2021-01-13 13:01:06 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Enable testing to dynamicly leverage ACL roles"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The \u0027existing\u0027 tests will need users with credentials other than admin"},{"line_number":10,"context_line":"and member, and the secure-rbac tests will need different credentials"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"79821dec_ce21aa7a","line":7,"range":{"start_line":7,"start_character":18,"end_line":7,"end_character":27},"updated":"2021-01-17 22:08:34.000000000","message":"nit: dynamically","commit_id":"04a1f17ef8a0d8d2e3462a583689daf05ecb30fb"}],"ironic/tests/unit/api/test_acl.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"c46f7aa372f0b968e070f69ec01d50ba12f3a116","unresolved":true,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"BASIC_CACHE_VALUES \u003d {"},{"line_number":38,"context_line":"    ADMIN_TOKEN: {"},{"line_number":39,"context_line":"        \u0027access\u0027: {"},{"line_number":40,"context_line":"            \u0027token\u0027: {"},{"line_number":41,"context_line":"                \u0027id\u0027: ADMIN_TOKEN,"},{"line_number":42,"context_line":"                \u0027expires\u0027: \u00272100-09-11T00:00:00\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"81051328_8698b773","line":39,"updated":"2021-01-08 22:37:01.000000000","message":"These look like token references issued from the v2.0 API? It might not matter, but I\u0027m wondering if there is a reason for using fake v2.0 values (I think we removed it officially during rocky)?\n\nI\u0027ve been trying to stay away from mocking fake token response in the event they change (e.g., v2.0 -\u003e v3 or v3 -\u003e v4 if that ever happens).\n\nAnother approach would be to provide mocked or faked context objects that represent each persona:\n\n  fake_user_id \u003d uuid.uuid4().hex\n  system_admin_context \u003d oslo_context.RequestContext(\n      user_id\u003dfake_user_id,\n      roles\u003d[\u0027admin\u0027, \u0027member\u0027, \u0027reader\u0027],\n      system_scope\u003d\u0027all\u0027\n  )\n\nAnother approach that would keep you from having to maintain details of keystone\u0027s API would be to use fake headers, ultimately simulating what keystonemiddleware does. The nice thing about that approach is that you can invoke oslo.context like you normally would and it provides the context object to the API in the same way it does in non-test environments.","commit_id":"76504b65d5b6a3c3d6c1b749729ad55fe1edbd88"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"cdad97a2a35ddcc4e3bc385ce4e14faba2d344d2","unresolved":true,"context_lines":[{"line_number":66,"context_line":"        }"},{"line_number":67,"context_line":"    }"},{"line_number":68,"context_line":"}"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"OWNER_PROJECT_ID \u003d \u0027123i2910\u0027"},{"line_number":72,"context_line":"OTHER_PROJECT_ID \u003d \u0027456i2910\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"3693e866_27bc4511","line":69,"updated":"2021-01-05 17:56:55.000000000","message":"FWIW, I\u0027d inject comments in this these code blocks to describe what the cache values represent in terms of how they would be used. Just so a human can relate to them and understand the model. I think without such comments its going to be a little hard to grok in review.","commit_id":"76504b65d5b6a3c3d6c1b749729ad55fe1edbd88"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"cbe496c19f4b60ca34a9a9332ce771225fdb1743","unresolved":false,"context_lines":[{"line_number":33,"context_line":"                    group\u003d\u0027keystone_authtoken\u0027)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"ADMIN_TOKEN \u003d uuid.uuid4().hex"},{"line_number":37,"context_line":"MEMBER_TOKEN \u003d uuid.uuid4().hex"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"admin_context \u003d oslo_context.RequestContext("}],"source_content_type":"text/x-python","patch_set":4,"id":"98d910ce_3a12c1e5","line":36,"updated":"2021-01-18 16:09:01.000000000","message":"nit: we tend to use generate_uuid from oslo.utils","commit_id":"04a1f17ef8a0d8d2e3462a583689daf05ecb30fb"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"cbe496c19f4b60ca34a9a9332ce771225fdb1743","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                auth_token \u003d self.format_data[auth_token]"},{"line_number":103,"context_line":"                headers[\u0027X-Auth-Token\u0027] \u003d auth_token"},{"line_number":104,"context_line":"                self.fake_token \u003d USERS[auth_token]"},{"line_number":105,"context_line":"                headers[\u0027X_ROLES\u0027] \u003d \u0027,\u0027.join(USERS[auth_token][\u0027roles\u0027])"},{"line_number":106,"context_line":"                self.mock_auth.side_effect \u003d self._fake_process_request"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        expect_errors \u003d bool(assert_status)"}],"source_content_type":"text/x-python","patch_set":4,"id":"38ae1d6e_1d15f016","line":105,"updated":"2021-01-18 16:09:01.000000000","message":"X-Roles?","commit_id":"04a1f17ef8a0d8d2e3462a583689daf05ecb30fb"}]}
