)]}'
{"keystone/api/trusts.py":[{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"8cf40bf77009946daa0e05640edab84348fe074d","unresolved":true,"context_lines":[{"line_number":285,"context_line":""},{"line_number":286,"context_line":"        return self.wrap_collection(trusts)"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"    @validation.request_query_schema(schema.trust_index_request_query)"},{"line_number":289,"context_line":"    @validation.response_body_schema(schema.trust_index_response_body)"},{"line_number":290,"context_line":"    def get(self, trust_id\u003dNone):"},{"line_number":291,"context_line":"        \"\"\"Dispatch for GET/HEAD or LIST trusts."}],"source_content_type":"text/x-python","patch_set":5,"id":"6c180e53_fc89319d","line":288,"updated":"2024-10-04 10:03:32.000000000","message":"and here you need to split the controller","commit_id":"ada3965ec4b5ab67e1c44cbdb67fbf80f9d8798e"},{"author":{"_account_id":35548,"name":"Antonia Gaete","email":"antoniagaete@osuosl.org","username":"antoniagaete"},"change_message_id":"0f03364723bcecf1d4053602680b462595c25f75","unresolved":false,"context_lines":[{"line_number":285,"context_line":""},{"line_number":286,"context_line":"        return self.wrap_collection(trusts)"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"    @validation.request_query_schema(schema.trust_index_request_query)"},{"line_number":289,"context_line":"    @validation.response_body_schema(schema.trust_index_response_body)"},{"line_number":290,"context_line":"    def get(self, trust_id\u003dNone):"},{"line_number":291,"context_line":"        \"\"\"Dispatch for GET/HEAD or LIST trusts."}],"source_content_type":"text/x-python","patch_set":5,"id":"9069c593_d72c1511","line":288,"in_reply_to":"6c180e53_fc89319d","updated":"2024-10-23 20:09:24.000000000","message":"Done","commit_id":"ada3965ec4b5ab67e1c44cbdb67fbf80f9d8798e"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"d6c4984ba66b93f56ab12f302c7aa030ef365b10","unresolved":true,"context_lines":[{"line_number":100,"context_line":"    }"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"def _check_unrestricted(self):"},{"line_number":104,"context_line":"    if self.oslo_context.is_admin:"},{"line_number":105,"context_line":"        return"},{"line_number":106,"context_line":"    token \u003d self.auth_context[\u0027token\u0027]"}],"source_content_type":"text/x-python","patch_set":11,"id":"dd4490be_990f7bc7","line":103,"updated":"2024-10-21 15:25:35.000000000","message":"that doesn\u0027t look good (even if it work) having `self` as argument to a non-class member. What is passed is the ks_flask.ResourceBase.\nI think a bit more attractive approach would be to define class\n```\nTrustResourceBase(ks_flask.ResourceBase):\n    def _check_unrestricted(self):\n       ...\n       \nTrustsResource(TrustResourceBase):\n    ...\n```\nI that common method would be static not requiring access to `self` this would not be necessary","commit_id":"dae463f756c5818bc0167eb31b6f621ec4f443e7"},{"author":{"_account_id":35548,"name":"Antonia Gaete","email":"antoniagaete@osuosl.org","username":"antoniagaete"},"change_message_id":"0f03364723bcecf1d4053602680b462595c25f75","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    }"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"def _check_unrestricted(self):"},{"line_number":104,"context_line":"    if self.oslo_context.is_admin:"},{"line_number":105,"context_line":"        return"},{"line_number":106,"context_line":"    token \u003d self.auth_context[\u0027token\u0027]"}],"source_content_type":"text/x-python","patch_set":11,"id":"85695f09_54b87334","line":103,"in_reply_to":"dd4490be_990f7bc7","updated":"2024-10-23 20:09:24.000000000","message":"Done","commit_id":"dae463f756c5818bc0167eb31b6f621ec4f443e7"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"d6c4984ba66b93f56ab12f302c7aa030ef365b10","unresolved":true,"context_lines":[{"line_number":303,"context_line":""},{"line_number":304,"context_line":"    @validation.request_query_schema(schema.trust_index_request_query)"},{"line_number":305,"context_line":"    @validation.response_body_schema(schema.trust_index_response_body)"},{"line_number":306,"context_line":"    def get(self, trust_id\u003dNone):"},{"line_number":307,"context_line":"        \"\"\"Get trust."},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"        GET /v3/OS-TRUST/trusts/{trust_id}"}],"source_content_type":"text/x-python","patch_set":11,"id":"5fb0305c_af605e43","line":306,"updated":"2024-10-21 15:25:35.000000000","message":"since this method really requires trust_id `\u003dNone` is unnecessary and potentially harming","commit_id":"dae463f756c5818bc0167eb31b6f621ec4f443e7"},{"author":{"_account_id":35548,"name":"Antonia Gaete","email":"antoniagaete@osuosl.org","username":"antoniagaete"},"change_message_id":"0f03364723bcecf1d4053602680b462595c25f75","unresolved":false,"context_lines":[{"line_number":303,"context_line":""},{"line_number":304,"context_line":"    @validation.request_query_schema(schema.trust_index_request_query)"},{"line_number":305,"context_line":"    @validation.response_body_schema(schema.trust_index_response_body)"},{"line_number":306,"context_line":"    def get(self, trust_id\u003dNone):"},{"line_number":307,"context_line":"        \"\"\"Get trust."},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"        GET /v3/OS-TRUST/trusts/{trust_id}"}],"source_content_type":"text/x-python","patch_set":11,"id":"e25251a6_2ed5ff4b","line":306,"in_reply_to":"5fb0305c_af605e43","updated":"2024-10-23 20:09:24.000000000","message":"Done","commit_id":"dae463f756c5818bc0167eb31b6f621ec4f443e7"}],"keystone/trust/schema.py":[{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"d6c4984ba66b93f56ab12f302c7aa030ef365b10","unresolved":true,"context_lines":[{"line_number":157,"context_line":"        },"},{"line_number":158,"context_line":"        \"links\": response_types.links,"},{"line_number":159,"context_line":"    },"},{"line_number":160,"context_line":"    \"additionalProperties\": True,"},{"line_number":161,"context_line":"}"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"trust_response_body: dict[str, Any] \u003d {"}],"source_content_type":"text/x-python","patch_set":11,"id":"1e4c4709_c38ca881","line":160,"updated":"2024-10-21 15:25:35.000000000","message":"what are the other possible attributes? in the root of the list response we should be only having trusts and links with maybe only `truncated` else","commit_id":"dae463f756c5818bc0167eb31b6f621ec4f443e7"},{"author":{"_account_id":35548,"name":"Antonia Gaete","email":"antoniagaete@osuosl.org","username":"antoniagaete"},"change_message_id":"78914fce072e09bda7360048fe84b4a5b0426816","unresolved":false,"context_lines":[{"line_number":157,"context_line":"        },"},{"line_number":158,"context_line":"        \"links\": response_types.links,"},{"line_number":159,"context_line":"    },"},{"line_number":160,"context_line":"    \"additionalProperties\": True,"},{"line_number":161,"context_line":"}"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"trust_response_body: dict[str, Any] \u003d {"}],"source_content_type":"text/x-python","patch_set":11,"id":"d49c545e_e7c97c30","line":160,"in_reply_to":"0882d97a_9fdaab3b","updated":"2024-11-01 20:15:45.000000000","message":"Done","commit_id":"dae463f756c5818bc0167eb31b6f621ec4f443e7"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"e50e20b21cabb18b140940148bb1e0f8b89be373","unresolved":true,"context_lines":[{"line_number":157,"context_line":"        },"},{"line_number":158,"context_line":"        \"links\": response_types.links,"},{"line_number":159,"context_line":"    },"},{"line_number":160,"context_line":"    \"additionalProperties\": True,"},{"line_number":161,"context_line":"}"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"trust_response_body: dict[str, Any] \u003d {"}],"source_content_type":"text/x-python","patch_set":11,"id":"0882d97a_9fdaab3b","line":160,"in_reply_to":"15857ff3_0426462e","updated":"2024-11-01 15:17:34.000000000","message":"good that you mention it. It is actually wrong: response of list and response of GET are different. In first case you get back `trusts: [{},{}]` in later `trust: {}`. `trust_response_body` is what you should use for result of GET and keep `trust_index_response_body` for list","commit_id":"dae463f756c5818bc0167eb31b6f621ec4f443e7"},{"author":{"_account_id":35548,"name":"Antonia Gaete","email":"antoniagaete@osuosl.org","username":"antoniagaete"},"change_message_id":"0f03364723bcecf1d4053602680b462595c25f75","unresolved":true,"context_lines":[{"line_number":157,"context_line":"        },"},{"line_number":158,"context_line":"        \"links\": response_types.links,"},{"line_number":159,"context_line":"    },"},{"line_number":160,"context_line":"    \"additionalProperties\": True,"},{"line_number":161,"context_line":"}"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"trust_response_body: dict[str, Any] \u003d {"}],"source_content_type":"text/x-python","patch_set":11,"id":"15857ff3_0426462e","line":160,"in_reply_to":"1e4c4709_c38ca881","updated":"2024-10-23 20:09:24.000000000","message":"Because I\u0027m using this for the GET request by ID which returns a `trust` object instead of an array of trusts, I had to set this to true. Should I create a separate response body for a single trust object?\n\nI did this throughout all of my changes, so let me know and I can separate them in all.","commit_id":"dae463f756c5818bc0167eb31b6f621ec4f443e7"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"86d4b3737db6851c3094b28e8a0ba5c133c2bd27","unresolved":true,"context_lines":[{"line_number":215,"context_line":"            \"additionalProperties\": True,"},{"line_number":216,"context_line":"        },"},{"line_number":217,"context_line":"    },"},{"line_number":218,"context_line":"    \"additionalProperties\": False,"},{"line_number":219,"context_line":"}"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"trust_create_response_body: dict[str, Any] \u003d {"}],"source_content_type":"text/x-python","patch_set":15,"id":"01a0fa26_b7aa9c80","line":218,"updated":"2024-11-15 14:10:47.000000000","message":"\"trust\" as root prop is definitely required as well","commit_id":"566311a0eb091a34abc347038b7afcce0e14f498"},{"author":{"_account_id":35548,"name":"Antonia Gaete","email":"antoniagaete@osuosl.org","username":"antoniagaete"},"change_message_id":"9ec5ba344e3603273458f7157a0641c8f98986e1","unresolved":false,"context_lines":[{"line_number":215,"context_line":"            \"additionalProperties\": True,"},{"line_number":216,"context_line":"        },"},{"line_number":217,"context_line":"    },"},{"line_number":218,"context_line":"    \"additionalProperties\": False,"},{"line_number":219,"context_line":"}"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"trust_create_response_body: dict[str, Any] \u003d {"}],"source_content_type":"text/x-python","patch_set":15,"id":"2141a795_6c3c21b2","line":218,"in_reply_to":"01a0fa26_b7aa9c80","updated":"2024-11-21 19:52:41.000000000","message":"Done","commit_id":"566311a0eb091a34abc347038b7afcce0e14f498"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"86d4b3737db6851c3094b28e8a0ba5c133c2bd27","unresolved":true,"context_lines":[{"line_number":231,"context_line":"        **_trust_properties,"},{"line_number":232,"context_line":"        **_role_response_properties,"},{"line_number":233,"context_line":"    },"},{"line_number":234,"context_line":"    \"additionalProperties\": True,"},{"line_number":235,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":15,"id":"4eed66f7_cd7bc893","line":234,"updated":"2024-11-15 14:10:47.000000000","message":"why true?","commit_id":"566311a0eb091a34abc347038b7afcce0e14f498"},{"author":{"_account_id":35548,"name":"Antonia Gaete","email":"antoniagaete@osuosl.org","username":"antoniagaete"},"change_message_id":"9ec5ba344e3603273458f7157a0641c8f98986e1","unresolved":false,"context_lines":[{"line_number":231,"context_line":"        **_trust_properties,"},{"line_number":232,"context_line":"        **_role_response_properties,"},{"line_number":233,"context_line":"    },"},{"line_number":234,"context_line":"    \"additionalProperties\": True,"},{"line_number":235,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":15,"id":"eb51eed2_ba608e60","line":234,"in_reply_to":"4eed66f7_cd7bc893","updated":"2024-11-21 19:52:41.000000000","message":"For some reason this is expected to be an array. But I realized that this create response body is the same as the normal response body, so I removed it. Passing locally so waiting for Zuul tests to be sure this is correct.","commit_id":"566311a0eb091a34abc347038b7afcce0e14f498"}]}
