)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b7928d12f4e4fa8a73f73849faf8b7cd99f75d4a","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Jorge Munoz \u003celkidster@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-03-08 22:27:54 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Validate v2 fernet token returns extra attributes"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently uuid and fernet tokens return different response on"},{"line_number":10,"context_line":"token validation."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"5aef4532_f0fa3874","line":7,"updated":"2016-03-09 16:08:06.000000000","message":"what are the extra attibutes?","commit_id":"33b50a285a78e76301ed4b108feac7733ffda24a"},{"author":{"_account_id":13152,"name":"Jorge Munoz","email":"elkidster@gmail.com","username":"jmunoz"},"change_message_id":"6e421a0c97ebff53b862cb9c3430c959cdbfb2ea","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Jorge Munoz \u003celkidster@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-03-08 22:27:54 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Validate v2 fernet token returns extra attributes"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently uuid and fernet tokens return different response on"},{"line_number":10,"context_line":"token validation."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"5aef4532_86fe0cac","line":7,"in_reply_to":"5aef4532_f0fa3874","updated":"2016-03-09 18:55:14.000000000","message":"I should have included that on the commit body, but its is_domain, and project_parent_id.","commit_id":"33b50a285a78e76301ed4b108feac7733ffda24a"}],"keystone/tests/unit/schema.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"32a7db1d92a4400cf2361cf05c5faac42c585dfc","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    },"},{"line_number":59,"context_line":"    \u0027roles_links\u0027: {"},{"line_number":60,"context_line":"        \u0027type\u0027: \u0027array\u0027,"},{"line_number":61,"context_line":"        \u0027items\u0027: {"},{"line_number":62,"context_line":"            \u0027type\u0027: \u0027string\u0027,"},{"line_number":63,"context_line":"        },"},{"line_number":64,"context_line":"    },"}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_4069d524","line":61,"updated":"2016-03-08 17:13:06.000000000","message":"Instead of definiting \u0027items\u0027, how about ensuring \u0027maxItems\u0027: 0 -- because we never use this.","commit_id":"6e42db70bc41a9b3aa66c87fe11da71bea39a56d"},{"author":{"_account_id":13152,"name":"Jorge Munoz","email":"elkidster@gmail.com","username":"jmunoz"},"change_message_id":"3608da1ec425706669121c147aab436c414682ce","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    },"},{"line_number":59,"context_line":"    \u0027roles_links\u0027: {"},{"line_number":60,"context_line":"        \u0027type\u0027: \u0027array\u0027,"},{"line_number":61,"context_line":"        \u0027items\u0027: {"},{"line_number":62,"context_line":"            \u0027type\u0027: \u0027string\u0027,"},{"line_number":63,"context_line":"        },"},{"line_number":64,"context_line":"    },"}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_dcff8d65","line":61,"in_reply_to":"5aef4532_4069d524","updated":"2016-03-08 19:11:00.000000000","message":"Done","commit_id":"6e42db70bc41a9b3aa66c87fe11da71bea39a56d"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"484aa57624ee0132560ede981b7498259d79fab0","unresolved":false,"context_lines":[{"line_number":76,"context_line":"    \u0027id\u0027: {\u0027type\u0027: \u0027string\u0027},"},{"line_number":77,"context_line":"    \u0027adminURL\u0027: parameter_types.url,"},{"line_number":78,"context_line":"    \u0027internalURL\u0027: parameter_types.url,"},{"line_number":79,"context_line":"    \u0027publicURL\u0027: parameter_types.url,"},{"line_number":80,"context_line":"    \u0027region\u0027: {\u0027type\u0027: \u0027string\u0027},"},{"line_number":81,"context_line":"}"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_a06379db","line":79,"updated":"2016-03-08 16:57:57.000000000","message":"This is uppercase? \"URL\"","commit_id":"6e42db70bc41a9b3aa66c87fe11da71bea39a56d"},{"author":{"_account_id":13152,"name":"Jorge Munoz","email":"elkidster@gmail.com","username":"jmunoz"},"change_message_id":"3608da1ec425706669121c147aab436c414682ce","unresolved":false,"context_lines":[{"line_number":76,"context_line":"    \u0027id\u0027: {\u0027type\u0027: \u0027string\u0027},"},{"line_number":77,"context_line":"    \u0027adminURL\u0027: parameter_types.url,"},{"line_number":78,"context_line":"    \u0027internalURL\u0027: parameter_types.url,"},{"line_number":79,"context_line":"    \u0027publicURL\u0027: parameter_types.url,"},{"line_number":80,"context_line":"    \u0027region\u0027: {\u0027type\u0027: \u0027string\u0027},"},{"line_number":81,"context_line":"}"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_1c28d5e1","line":79,"in_reply_to":"5aef4532_a06379db","updated":"2016-03-08 19:11:00.000000000","message":"Done","commit_id":"6e42db70bc41a9b3aa66c87fe11da71bea39a56d"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"32a7db1d92a4400cf2361cf05c5faac42c585dfc","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    \u0027name\u0027: parameter_types.name,"},{"line_number":86,"context_line":"    \u0027endpoints_links\u0027: {"},{"line_number":87,"context_line":"        \u0027type\u0027: \u0027array\u0027,"},{"line_number":88,"context_line":"        \u0027items\u0027: {\u0027type\u0027: \u0027string\u0027},"},{"line_number":89,"context_line":"    },"},{"line_number":90,"context_line":"    \u0027endpoints\u0027: {"},{"line_number":91,"context_line":"        \u0027type\u0027: \u0027array\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_005ead75","line":88,"updated":"2016-03-08 17:13:06.000000000","message":"Same as role links - maxItems: 0?","commit_id":"6e42db70bc41a9b3aa66c87fe11da71bea39a56d"},{"author":{"_account_id":13152,"name":"Jorge Munoz","email":"elkidster@gmail.com","username":"jmunoz"},"change_message_id":"3608da1ec425706669121c147aab436c414682ce","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    \u0027name\u0027: parameter_types.name,"},{"line_number":86,"context_line":"    \u0027endpoints_links\u0027: {"},{"line_number":87,"context_line":"        \u0027type\u0027: \u0027array\u0027,"},{"line_number":88,"context_line":"        \u0027items\u0027: {\u0027type\u0027: \u0027string\u0027},"},{"line_number":89,"context_line":"    },"},{"line_number":90,"context_line":"    \u0027endpoints\u0027: {"},{"line_number":91,"context_line":"        \u0027type\u0027: \u0027array\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_3c1dd1bd","line":88,"in_reply_to":"5aef4532_005ead75","updated":"2016-03-08 19:11:00.000000000","message":"Done","commit_id":"6e42db70bc41a9b3aa66c87fe11da71bea39a56d"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"484aa57624ee0132560ede981b7498259d79fab0","unresolved":false,"context_lines":[{"line_number":90,"context_line":"    \u0027endpoints\u0027: {"},{"line_number":91,"context_line":"        \u0027type\u0027: \u0027array\u0027,"},{"line_number":92,"context_line":"        \u0027properties\u0027: _endpoint_v2_properties,"},{"line_number":93,"context_line":"        \u0027required\u0027: [\u0027publicUrl\u0027, \u0027id\u0027],"},{"line_number":94,"context_line":"        \u0027additionalProperties\u0027: False,"},{"line_number":95,"context_line":"    },"},{"line_number":96,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_206f69c6","line":93,"updated":"2016-03-08 16:57:57.000000000","message":"But this is camel case? \"Url\"","commit_id":"6e42db70bc41a9b3aa66c87fe11da71bea39a56d"},{"author":{"_account_id":13152,"name":"Jorge Munoz","email":"elkidster@gmail.com","username":"jmunoz"},"change_message_id":"3608da1ec425706669121c147aab436c414682ce","unresolved":false,"context_lines":[{"line_number":90,"context_line":"    \u0027endpoints\u0027: {"},{"line_number":91,"context_line":"        \u0027type\u0027: \u0027array\u0027,"},{"line_number":92,"context_line":"        \u0027properties\u0027: _endpoint_v2_properties,"},{"line_number":93,"context_line":"        \u0027required\u0027: [\u0027publicUrl\u0027, \u0027id\u0027],"},{"line_number":94,"context_line":"        \u0027additionalProperties\u0027: False,"},{"line_number":95,"context_line":"    },"},{"line_number":96,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_7c7d99e6","line":93,"in_reply_to":"5aef4532_206f69c6","updated":"2016-03-08 19:11:00.000000000","message":"Done","commit_id":"6e42db70bc41a9b3aa66c87fe11da71bea39a56d"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"32a7db1d92a4400cf2361cf05c5faac42c585dfc","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    },"},{"line_number":96,"context_line":"}"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"_access_v2_properties \u003d {"},{"line_number":99,"context_line":"    \u0027metadata\u0027: {"},{"line_number":100,"context_line":"        \u0027type\u0027: \u0027object\u0027,"},{"line_number":101,"context_line":"        \u0027properties\u0027: _metadata_v2_properties,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_fb0c143d","line":98,"updated":"2016-03-08 17:13:06.000000000","message":"To make these assertions stronger, make two copies of this object and modify them two different ways.\n\nunscoped_access_v2_properties would have maxItems: 0 here, to ensure the catalog is empty.\n\nscoped_access_v2_properties would have minItems: 1 here, to ensure the catalog has at least one entry.","commit_id":"6e42db70bc41a9b3aa66c87fe11da71bea39a56d"},{"author":{"_account_id":13152,"name":"Jorge Munoz","email":"elkidster@gmail.com","username":"jmunoz"},"change_message_id":"3608da1ec425706669121c147aab436c414682ce","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    },"},{"line_number":96,"context_line":"}"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"_access_v2_properties \u003d {"},{"line_number":99,"context_line":"    \u0027metadata\u0027: {"},{"line_number":100,"context_line":"        \u0027type\u0027: \u0027object\u0027,"},{"line_number":101,"context_line":"        \u0027properties\u0027: _metadata_v2_properties,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_229808c0","line":98,"in_reply_to":"5aef4532_fb0c143d","updated":"2016-03-08 19:11:00.000000000","message":"Done","commit_id":"6e42db70bc41a9b3aa66c87fe11da71bea39a56d"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"32a7db1d92a4400cf2361cf05c5faac42c585dfc","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        \u0027items\u0027: {"},{"line_number":108,"context_line":"            \u0027type\u0027: \u0027object\u0027,"},{"line_number":109,"context_line":"            \u0027properties\u0027: _service_v2_properties,"},{"line_number":110,"context_line":"            \u0027additionalProperties\u0027: False,"},{"line_number":111,"context_line":"        },"},{"line_number":112,"context_line":"    },"},{"line_number":113,"context_line":"    \u0027token\u0027: {"}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_a0e6d9b1","line":110,"updated":"2016-03-08 17:13:06.000000000","message":"required: name, type, endpoints_links, endpoints","commit_id":"6e42db70bc41a9b3aa66c87fe11da71bea39a56d"},{"author":{"_account_id":13152,"name":"Jorge Munoz","email":"elkidster@gmail.com","username":"jmunoz"},"change_message_id":"3608da1ec425706669121c147aab436c414682ce","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        \u0027items\u0027: {"},{"line_number":108,"context_line":"            \u0027type\u0027: \u0027object\u0027,"},{"line_number":109,"context_line":"            \u0027properties\u0027: _service_v2_properties,"},{"line_number":110,"context_line":"            \u0027additionalProperties\u0027: False,"},{"line_number":111,"context_line":"        },"},{"line_number":112,"context_line":"    },"},{"line_number":113,"context_line":"    \u0027token\u0027: {"}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_629210a0","line":110,"in_reply_to":"5aef4532_a0e6d9b1","updated":"2016-03-08 19:11:00.000000000","message":"Done","commit_id":"6e42db70bc41a9b3aa66c87fe11da71bea39a56d"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"9813638ef94a0a95bb1ad3fb8bfd07cb430ce9b0","unresolved":false,"context_lines":[{"line_number":128,"context_line":"    \u0027type\u0027: \u0027object\u0027,"},{"line_number":129,"context_line":"    \u0027properties\u0027: _access_v2_properties,"},{"line_number":130,"context_line":"    \u0027required\u0027: [\u0027metadata\u0027, \u0027user\u0027, \u0027serviceCatalog\u0027, \u0027token\u0027],"},{"line_number":131,"context_line":"    \u0027optional\u0027: [],"},{"line_number":132,"context_line":"    \u0027additionalProperties\u0027: False,"},{"line_number":133,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_1b2100a0","line":131,"updated":"2016-03-08 17:13:55.000000000","message":"if this line doesn\u0027t have any impact, remove it?","commit_id":"6e42db70bc41a9b3aa66c87fe11da71bea39a56d"},{"author":{"_account_id":13152,"name":"Jorge Munoz","email":"elkidster@gmail.com","username":"jmunoz"},"change_message_id":"3608da1ec425706669121c147aab436c414682ce","unresolved":false,"context_lines":[{"line_number":128,"context_line":"    \u0027type\u0027: \u0027object\u0027,"},{"line_number":129,"context_line":"    \u0027properties\u0027: _access_v2_properties,"},{"line_number":130,"context_line":"    \u0027required\u0027: [\u0027metadata\u0027, \u0027user\u0027, \u0027serviceCatalog\u0027, \u0027token\u0027],"},{"line_number":131,"context_line":"    \u0027optional\u0027: [],"},{"line_number":132,"context_line":"    \u0027additionalProperties\u0027: False,"},{"line_number":133,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":4,"id":"5aef4532_428d547a","line":131,"in_reply_to":"5aef4532_1b2100a0","updated":"2016-03-08 19:11:00.000000000","message":"Done","commit_id":"6e42db70bc41a9b3aa66c87fe11da71bea39a56d"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"289f29427d7df5f001ea3be6f55d828f6e36eb65","unresolved":false,"context_lines":[{"line_number":8,"context_line":"# distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT"},{"line_number":9,"context_line":"# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":10,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"# under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"from keystone.common import validation"},{"line_number":14,"context_line":"from keystone.common.validation import parameter_types"}],"source_content_type":"text/x-python","patch_set":6,"id":"5aef4532_8205977b","line":11,"updated":"2016-03-08 21:22:10.000000000","message":"Should we name this the v2 schema?","commit_id":"7edcafe0cac1ac2287f44793b665eeef82ab397f"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"3abdee2c6479effaf3aa9a7f2446b1c397857ffa","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"_user_v2_properties \u003d {"},{"line_number":49,"context_line":"    \u0027id\u0027: parameter_types.id_string,"},{"line_number":50,"context_line":"    # TODO(jorge_munoz): Should both name and username be required?"},{"line_number":51,"context_line":"    \u0027name\u0027: parameter_types.name,"},{"line_number":52,"context_line":"    \u0027username\u0027: parameter_types.name,"},{"line_number":53,"context_line":"    \u0027roles\u0027: {"}],"source_content_type":"text/x-python","patch_set":6,"id":"5aef4532_2ee90fe7","line":50,"updated":"2016-03-08 20:49:39.000000000","message":"Yes, I think so. One is provided for backwards compatibility.","commit_id":"7edcafe0cac1ac2287f44793b665eeef82ab397f"},{"author":{"_account_id":13152,"name":"Jorge Munoz","email":"elkidster@gmail.com","username":"jmunoz"},"change_message_id":"3b317b0f7187b9b199e50d4a343feb55cbf46ae8","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"_user_v2_properties \u003d {"},{"line_number":49,"context_line":"    \u0027id\u0027: parameter_types.id_string,"},{"line_number":50,"context_line":"    # TODO(jorge_munoz): Should both name and username be required?"},{"line_number":51,"context_line":"    \u0027name\u0027: parameter_types.name,"},{"line_number":52,"context_line":"    \u0027username\u0027: parameter_types.name,"},{"line_number":53,"context_line":"    \u0027roles\u0027: {"}],"source_content_type":"text/x-python","patch_set":6,"id":"5aef4532_4e90dbec","line":50,"in_reply_to":"5aef4532_2ee90fe7","updated":"2016-03-08 22:22:17.000000000","message":"Done","commit_id":"7edcafe0cac1ac2287f44793b665eeef82ab397f"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"3abdee2c6479effaf3aa9a7f2446b1c397857ffa","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        \u0027type\u0027: \u0027array\u0027,"},{"line_number":55,"context_line":"        \u0027properties\u0027: _role_v2_properties,"},{"line_number":56,"context_line":"        \u0027required\u0027: [\u0027name\u0027],"},{"line_number":57,"context_line":"        \u0027additionalProperties\u0027: False,"},{"line_number":58,"context_line":"    },"},{"line_number":59,"context_line":"    \u0027roles_links\u0027: {"},{"line_number":60,"context_line":"        \u0027type\u0027: \u0027array\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5aef4532_aebb5fe4","line":57,"updated":"2016-03-08 20:49:39.000000000","message":"minItems: 1","commit_id":"7edcafe0cac1ac2287f44793b665eeef82ab397f"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"70698159547a14dee92bc12e94d639ecb7d505b8","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        \u0027type\u0027: \u0027array\u0027,"},{"line_number":55,"context_line":"        \u0027properties\u0027: _role_v2_properties,"},{"line_number":56,"context_line":"        \u0027required\u0027: [\u0027name\u0027],"},{"line_number":57,"context_line":"        \u0027additionalProperties\u0027: False,"},{"line_number":58,"context_line":"    },"},{"line_number":59,"context_line":"    \u0027roles_links\u0027: {"},{"line_number":60,"context_line":"        \u0027type\u0027: \u0027array\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5aef4532_eee8c7b6","line":57,"in_reply_to":"5aef4532_aebb5fe4","updated":"2016-03-08 20:50:15.000000000","message":"for a scoped token ^ ... else 0 roles for an unscoped token","commit_id":"7edcafe0cac1ac2287f44793b665eeef82ab397f"},{"author":{"_account_id":13152,"name":"Jorge Munoz","email":"elkidster@gmail.com","username":"jmunoz"},"change_message_id":"3b317b0f7187b9b199e50d4a343feb55cbf46ae8","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        \u0027type\u0027: \u0027array\u0027,"},{"line_number":55,"context_line":"        \u0027properties\u0027: _role_v2_properties,"},{"line_number":56,"context_line":"        \u0027required\u0027: [\u0027name\u0027],"},{"line_number":57,"context_line":"        \u0027additionalProperties\u0027: False,"},{"line_number":58,"context_line":"    },"},{"line_number":59,"context_line":"    \u0027roles_links\u0027: {"},{"line_number":60,"context_line":"        \u0027type\u0027: \u0027array\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5aef4532_fbdec66b","line":57,"in_reply_to":"5aef4532_eee8c7b6","updated":"2016-03-08 22:22:17.000000000","message":"Done","commit_id":"7edcafe0cac1ac2287f44793b665eeef82ab397f"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"3abdee2c6479effaf3aa9a7f2446b1c397857ffa","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    },"},{"line_number":59,"context_line":"    \u0027roles_links\u0027: {"},{"line_number":60,"context_line":"        \u0027type\u0027: \u0027array\u0027,"},{"line_number":61,"context_line":"        \u0027maxItems\u0027: 0,"},{"line_number":62,"context_line":"    },"},{"line_number":63,"context_line":"}"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"5aef4532_aed4ff1f","line":61,"updated":"2016-03-08 20:49:39.000000000","message":"++","commit_id":"7edcafe0cac1ac2287f44793b665eeef82ab397f"},{"author":{"_account_id":13152,"name":"Jorge Munoz","email":"elkidster@gmail.com","username":"jmunoz"},"change_message_id":"3b317b0f7187b9b199e50d4a343feb55cbf46ae8","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    },"},{"line_number":59,"context_line":"    \u0027roles_links\u0027: {"},{"line_number":60,"context_line":"        \u0027type\u0027: \u0027array\u0027,"},{"line_number":61,"context_line":"        \u0027maxItems\u0027: 0,"},{"line_number":62,"context_line":"    },"},{"line_number":63,"context_line":"}"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"5aef4532_3be94e15","line":61,"in_reply_to":"5aef4532_02d0671e","updated":"2016-03-08 22:22:17.000000000","message":"Done","commit_id":"7edcafe0cac1ac2287f44793b665eeef82ab397f"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"289f29427d7df5f001ea3be6f55d828f6e36eb65","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    },"},{"line_number":59,"context_line":"    \u0027roles_links\u0027: {"},{"line_number":60,"context_line":"        \u0027type\u0027: \u0027array\u0027,"},{"line_number":61,"context_line":"        \u0027maxItems\u0027: 0,"},{"line_number":62,"context_line":"    },"},{"line_number":63,"context_line":"}"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"5aef4532_02d0671e","line":61,"in_reply_to":"5aef4532_aed4ff1f","updated":"2016-03-08 21:22:10.000000000","message":"how come?","commit_id":"7edcafe0cac1ac2287f44793b665eeef82ab397f"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"289f29427d7df5f001ea3be6f55d828f6e36eb65","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    \u0027name\u0027: parameter_types.name,"},{"line_number":84,"context_line":"    \u0027endpoints_links\u0027: {"},{"line_number":85,"context_line":"        \u0027type\u0027: \u0027array\u0027,"},{"line_number":86,"context_line":"        \u0027maxItems\u0027: 0,"},{"line_number":87,"context_line":"    },"},{"line_number":88,"context_line":"    \u0027endpoints\u0027: {"},{"line_number":89,"context_line":"        \u0027type\u0027: \u0027array\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5aef4532_8290f744","line":86,"updated":"2016-03-08 21:22:10.000000000","message":"is this never populated but just here because?","commit_id":"7edcafe0cac1ac2287f44793b665eeef82ab397f"},{"author":{"_account_id":13152,"name":"Jorge Munoz","email":"elkidster@gmail.com","username":"jmunoz"},"change_message_id":"3b317b0f7187b9b199e50d4a343feb55cbf46ae8","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    \u0027name\u0027: parameter_types.name,"},{"line_number":84,"context_line":"    \u0027endpoints_links\u0027: {"},{"line_number":85,"context_line":"        \u0027type\u0027: \u0027array\u0027,"},{"line_number":86,"context_line":"        \u0027maxItems\u0027: 0,"},{"line_number":87,"context_line":"    },"},{"line_number":88,"context_line":"    \u0027endpoints\u0027: {"},{"line_number":89,"context_line":"        \u0027type\u0027: \u0027array\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5aef4532_7bd11657","line":86,"in_reply_to":"5aef4532_8290f744","updated":"2016-03-08 22:22:17.000000000","message":"Done","commit_id":"7edcafe0cac1ac2287f44793b665eeef82ab397f"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"3abdee2c6479effaf3aa9a7f2446b1c397857ffa","unresolved":false,"context_lines":[{"line_number":97,"context_line":"    },"},{"line_number":98,"context_line":"}"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"_unscoped_access_v2_properties \u003d {"},{"line_number":101,"context_line":"    \u0027metadata\u0027: {"},{"line_number":102,"context_line":"        \u0027type\u0027: \u0027object\u0027,"},{"line_number":103,"context_line":"        \u0027properties\u0027: _metadata_v2_properties,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5aef4532_ce9d0b5b","line":100,"updated":"2016-03-08 20:49:39.000000000","message":"use copy.deepcopy() to minimize duplication between scoped_ and unscoped_ ?","commit_id":"7edcafe0cac1ac2287f44793b665eeef82ab397f"},{"author":{"_account_id":13152,"name":"Jorge Munoz","email":"elkidster@gmail.com","username":"jmunoz"},"change_message_id":"3b317b0f7187b9b199e50d4a343feb55cbf46ae8","unresolved":false,"context_lines":[{"line_number":97,"context_line":"    },"},{"line_number":98,"context_line":"}"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"_unscoped_access_v2_properties \u003d {"},{"line_number":101,"context_line":"    \u0027metadata\u0027: {"},{"line_number":102,"context_line":"        \u0027type\u0027: \u0027object\u0027,"},{"line_number":103,"context_line":"        \u0027properties\u0027: _metadata_v2_properties,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5aef4532_5bd41a46","line":100,"in_reply_to":"5aef4532_ce9d0b5b","updated":"2016-03-08 22:22:17.000000000","message":"Done","commit_id":"7edcafe0cac1ac2287f44793b665eeef82ab397f"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"289f29427d7df5f001ea3be6f55d828f6e36eb65","unresolved":false,"context_lines":[{"line_number":106,"context_line":"    },"},{"line_number":107,"context_line":"    \u0027serviceCatalog\u0027: {"},{"line_number":108,"context_line":"        \u0027type\u0027: \u0027array\u0027,"},{"line_number":109,"context_line":"        \u0027maxItems\u0027: 0,"},{"line_number":110,"context_line":"    },"},{"line_number":111,"context_line":"    \u0027token\u0027: {"},{"line_number":112,"context_line":"        \u0027type\u0027: \u0027object\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5aef4532_c29aff62","line":109,"updated":"2016-03-08 21:22:10.000000000","message":"same here?","commit_id":"7edcafe0cac1ac2287f44793b665eeef82ab397f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b7928d12f4e4fa8a73f73849faf8b7cd99f75d4a","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from keystone.common.validation import parameter_types"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"_project_v2_properties \u003d {"},{"line_number":21,"context_line":"    \u0027id\u0027: parameter_types.id_string,"},{"line_number":22,"context_line":"    \u0027name\u0027: parameter_types.name,"},{"line_number":23,"context_line":"    \u0027enabled\u0027: parameter_types.boolean,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5aef4532_381642f1","line":20,"updated":"2016-03-09 16:08:06.000000000","message":"These should all be moved into schema/v2.py rather put \"v2\" in the name of all the symbols.","commit_id":"33b50a285a78e76301ed4b108feac7733ffda24a"},{"author":{"_account_id":13152,"name":"Jorge Munoz","email":"elkidster@gmail.com","username":"jmunoz"},"change_message_id":"6e421a0c97ebff53b862cb9c3430c959cdbfb2ea","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from keystone.common.validation import parameter_types"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"_project_v2_properties \u003d {"},{"line_number":21,"context_line":"    \u0027id\u0027: parameter_types.id_string,"},{"line_number":22,"context_line":"    \u0027name\u0027: parameter_types.name,"},{"line_number":23,"context_line":"    \u0027enabled\u0027: parameter_types.boolean,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5aef4532_4b76cdd7","line":20,"in_reply_to":"5aef4532_381642f1","updated":"2016-03-09 18:55:14.000000000","message":"Done","commit_id":"33b50a285a78e76301ed4b108feac7733ffda24a"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b7928d12f4e4fa8a73f73849faf8b7cd99f75d4a","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    \u0027tenant\u0027: {"},{"line_number":40,"context_line":"        \u0027type\u0027: \u0027object\u0027,"},{"line_number":41,"context_line":"        \u0027properties\u0027: _project_v2_properties,"},{"line_number":42,"context_line":"        \u0027required\u0027: [\u0027id\u0027, \u0027name\u0027, \u0027enabled\u0027],"},{"line_number":43,"context_line":"        \u0027additionalProperties\u0027: False,"},{"line_number":44,"context_line":"    },"},{"line_number":45,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":8,"id":"5aef4532_b8d412bd","line":42,"updated":"2016-03-09 16:08:06.000000000","message":"referring to properties in _project_v2_properties from here just make the code harder to understand.","commit_id":"33b50a285a78e76301ed4b108feac7733ffda24a"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b7928d12f4e4fa8a73f73849faf8b7cd99f75d4a","unresolved":false,"context_lines":[{"line_number":68,"context_line":"}"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"_metadata_v2_properties \u003d {"},{"line_number":71,"context_line":"    \u0027is_admin\u0027: {\u0027type\u0027: \u0027integer\u0027},"},{"line_number":72,"context_line":"    \u0027roles\u0027: {"},{"line_number":73,"context_line":"        \u0027type\u0027: \u0027array\u0027,"},{"line_number":74,"context_line":"        \u0027items\u0027: {\u0027type\u0027: \u0027string\u0027},"}],"source_content_type":"text/x-python","patch_set":8,"id":"5aef4532_d842be67","line":71,"updated":"2016-03-09 16:08:06.000000000","message":"uhh, boolean?","commit_id":"33b50a285a78e76301ed4b108feac7733ffda24a"},{"author":{"_account_id":13152,"name":"Jorge Munoz","email":"elkidster@gmail.com","username":"jmunoz"},"change_message_id":"6e421a0c97ebff53b862cb9c3430c959cdbfb2ea","unresolved":false,"context_lines":[{"line_number":68,"context_line":"}"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"_metadata_v2_properties \u003d {"},{"line_number":71,"context_line":"    \u0027is_admin\u0027: {\u0027type\u0027: \u0027integer\u0027},"},{"line_number":72,"context_line":"    \u0027roles\u0027: {"},{"line_number":73,"context_line":"        \u0027type\u0027: \u0027array\u0027,"},{"line_number":74,"context_line":"        \u0027items\u0027: {\u0027type\u0027: \u0027string\u0027},"}],"source_content_type":"text/x-python","patch_set":8,"id":"5aef4532_2b6b81f2","line":71,"in_reply_to":"5aef4532_d842be67","updated":"2016-03-09 18:55:14.000000000","message":"No, this is an integer denoted as 0 or 1.","commit_id":"33b50a285a78e76301ed4b108feac7733ffda24a"}],"keystone/tests/unit/test_v2.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b7928d12f4e4fa8a73f73849faf8b7cd99f75d4a","unresolved":false,"context_lines":[{"line_number":1429,"context_line":""},{"line_number":1430,"context_line":"        self.service \u003d unit.new_service_ref()"},{"line_number":1431,"context_line":"        self.service_id \u003d self.service[\u0027id\u0027]"},{"line_number":1432,"context_line":"        self.catalog_api.create_service(self.service_id, self.service.copy())"},{"line_number":1433,"context_line":""},{"line_number":1434,"context_line":"        self.endpoint \u003d unit.new_endpoint_ref(service_id\u003dself.service_id,"},{"line_number":1435,"context_line":"                                              interface\u003d\u0027public\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5aef4532_137fe915","line":1432,"updated":"2016-03-09 16:08:06.000000000","message":"why does this need to make a copy?","commit_id":"33b50a285a78e76301ed4b108feac7733ffda24a"},{"author":{"_account_id":13152,"name":"Jorge Munoz","email":"elkidster@gmail.com","username":"jmunoz"},"change_message_id":"6e421a0c97ebff53b862cb9c3430c959cdbfb2ea","unresolved":false,"context_lines":[{"line_number":1429,"context_line":""},{"line_number":1430,"context_line":"        self.service \u003d unit.new_service_ref()"},{"line_number":1431,"context_line":"        self.service_id \u003d self.service[\u0027id\u0027]"},{"line_number":1432,"context_line":"        self.catalog_api.create_service(self.service_id, self.service.copy())"},{"line_number":1433,"context_line":""},{"line_number":1434,"context_line":"        self.endpoint \u003d unit.new_endpoint_ref(service_id\u003dself.service_id,"},{"line_number":1435,"context_line":"                                              interface\u003d\u0027public\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5aef4532_abab1174","line":1432,"in_reply_to":"5aef4532_137fe915","updated":"2016-03-09 18:55:14.000000000","message":"Removed, its not needed.","commit_id":"33b50a285a78e76301ed4b108feac7733ffda24a"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b7928d12f4e4fa8a73f73849faf8b7cd99f75d4a","unresolved":false,"context_lines":[{"line_number":1440,"context_line":""},{"line_number":1441,"context_line":"    def assertValidUnscopedTokenResponse(self, r):"},{"line_number":1442,"context_line":"        token \u003d r.json[\u0027access\u0027]"},{"line_number":1443,"context_line":"        validator_object \u003d validators.SchemaValidator("},{"line_number":1444,"context_line":"            schema.unscoped_token_v2_schema)"},{"line_number":1445,"context_line":"        validator_object.validate(token)"},{"line_number":1446,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5aef4532_93df790c","line":1443,"updated":"2016-03-09 16:08:06.000000000","message":"shouldn\u0027t need to create a new one of these every time this function is called.","commit_id":"33b50a285a78e76301ed4b108feac7733ffda24a"},{"author":{"_account_id":13152,"name":"Jorge Munoz","email":"elkidster@gmail.com","username":"jmunoz"},"change_message_id":"6e421a0c97ebff53b862cb9c3430c959cdbfb2ea","unresolved":false,"context_lines":[{"line_number":1440,"context_line":""},{"line_number":1441,"context_line":"    def assertValidUnscopedTokenResponse(self, r):"},{"line_number":1442,"context_line":"        token \u003d r.json[\u0027access\u0027]"},{"line_number":1443,"context_line":"        validator_object \u003d validators.SchemaValidator("},{"line_number":1444,"context_line":"            schema.unscoped_token_v2_schema)"},{"line_number":1445,"context_line":"        validator_object.validate(token)"},{"line_number":1446,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5aef4532_cbbc9dbd","line":1443,"in_reply_to":"5aef4532_93df790c","updated":"2016-03-09 18:55:14.000000000","message":"Done","commit_id":"33b50a285a78e76301ed4b108feac7733ffda24a"}],"keystone/token/providers/common.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"d2ad1a55eefd729c2c08e22d425d0f07b076e0a1","unresolved":false,"context_lines":[{"line_number":73,"context_line":"            # Drop domain specific fields since v2 calls are not domain-aware."},{"line_number":74,"context_line":"            token[\u0027tenant\u0027] \u003d common_controller.V2Controller.filter_domain_id("},{"line_number":75,"context_line":"                tenant)"},{"line_number":76,"context_line":"            token[\u0027tenant\u0027] \u003d common_controller.V2Controller.filter_is_domain("},{"line_number":77,"context_line":"                tenant)"},{"line_number":78,"context_line":"            token[\u0027tenant\u0027] \u003d (common_controller.V2Controller."},{"line_number":79,"context_line":"                               filter_project_parent_id(tenant))"}],"source_content_type":"text/x-python","patch_set":3,"id":"5aef4532_b7958ae5","line":76,"updated":"2016-03-08 14:58:43.000000000","message":"This is useless. I think what you want is to assign the two above to \u0027tenant\u0027. This would chain the filters together.","commit_id":"275979e0f2e15d59b6f5a6318e0233d91dea326b"},{"author":{"_account_id":13152,"name":"Jorge Munoz","email":"elkidster@gmail.com","username":"jmunoz"},"change_message_id":"02e9f2c71a0f2222c627c75c35d6c24454c8a43f","unresolved":false,"context_lines":[{"line_number":73,"context_line":"            # Drop domain specific fields since v2 calls are not domain-aware."},{"line_number":74,"context_line":"            token[\u0027tenant\u0027] \u003d common_controller.V2Controller.filter_domain_id("},{"line_number":75,"context_line":"                tenant)"},{"line_number":76,"context_line":"            token[\u0027tenant\u0027] \u003d common_controller.V2Controller.filter_is_domain("},{"line_number":77,"context_line":"                tenant)"},{"line_number":78,"context_line":"            token[\u0027tenant\u0027] \u003d (common_controller.V2Controller."},{"line_number":79,"context_line":"                               filter_project_parent_id(tenant))"}],"source_content_type":"text/x-python","patch_set":3,"id":"5aef4532_989ebbb6","line":76,"in_reply_to":"5aef4532_b7958ae5","updated":"2016-03-08 15:43:59.000000000","message":"Done","commit_id":"275979e0f2e15d59b6f5a6318e0233d91dea326b"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"d2ad1a55eefd729c2c08e22d425d0f07b076e0a1","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        user[\u0027roles\u0027] \u003d []"},{"line_number":100,"context_line":"        role_ids \u003d []"},{"line_number":101,"context_line":"        for role in v3_token.get(\u0027roles\u0027, []):"},{"line_number":102,"context_line":"            role_ids.append(role.pop(\u0027id\u0027))"},{"line_number":103,"context_line":"            user[\u0027roles\u0027].append(role)"},{"line_number":104,"context_line":"        user[\u0027roles_links\u0027] \u003d []"},{"line_number":105,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5aef4532_b7bc6a6d","line":102,"updated":"2016-03-08 14:58:43.000000000","message":"We are removing a role_id that we already expose?","commit_id":"275979e0f2e15d59b6f5a6318e0233d91dea326b"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"b804a40b72412e18d137d56e188ff7bdcd2dee8e","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        user[\u0027roles\u0027] \u003d []"},{"line_number":100,"context_line":"        role_ids \u003d []"},{"line_number":101,"context_line":"        for role in v3_token.get(\u0027roles\u0027, []):"},{"line_number":102,"context_line":"            role_ids.append(role.pop(\u0027id\u0027))"},{"line_number":103,"context_line":"            user[\u0027roles\u0027].append(role)"},{"line_number":104,"context_line":"        user[\u0027roles_links\u0027] \u003d []"},{"line_number":105,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5aef4532_6555034f","line":102,"in_reply_to":"5aef4532_98a4fbb9","updated":"2016-03-08 16:51:26.000000000","message":"ah, gotcha","commit_id":"275979e0f2e15d59b6f5a6318e0233d91dea326b"},{"author":{"_account_id":13152,"name":"Jorge Munoz","email":"elkidster@gmail.com","username":"jmunoz"},"change_message_id":"02e9f2c71a0f2222c627c75c35d6c24454c8a43f","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        user[\u0027roles\u0027] \u003d []"},{"line_number":100,"context_line":"        role_ids \u003d []"},{"line_number":101,"context_line":"        for role in v3_token.get(\u0027roles\u0027, []):"},{"line_number":102,"context_line":"            role_ids.append(role.pop(\u0027id\u0027))"},{"line_number":103,"context_line":"            user[\u0027roles\u0027].append(role)"},{"line_number":104,"context_line":"        user[\u0027roles_links\u0027] \u003d []"},{"line_number":105,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5aef4532_98a4fbb9","line":102,"in_reply_to":"5aef4532_b7bc6a6d","updated":"2016-03-08 15:43:59.000000000","message":"A Uuid token object in v2 only has a list of role names under the user object and a list of role ids under the metadata object. This change allows to have matching responses between uuid and fernet.","commit_id":"275979e0f2e15d59b6f5a6318e0233d91dea326b"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"289f29427d7df5f001ea3be6f55d828f6e36eb65","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        user[\u0027roles\u0027] \u003d []"},{"line_number":96,"context_line":"        role_ids \u003d []"},{"line_number":97,"context_line":"        for role in v3_token.get(\u0027roles\u0027, []):"},{"line_number":98,"context_line":"            role_ids.append(role.pop(\u0027id\u0027))"},{"line_number":99,"context_line":"            user[\u0027roles\u0027].append(role)"},{"line_number":100,"context_line":"        user[\u0027roles_links\u0027] \u003d []"},{"line_number":101,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"5aef4532_a287f3d5","line":98,"updated":"2016-03-08 21:22:10.000000000","message":"so we no longer return \u0027id\u0027 in our response, but we never did with v3, right?","commit_id":"7edcafe0cac1ac2287f44793b665eeef82ab397f"}]}
