)]}'
{"keystone/common/config.py":[{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"c6ec2aea42910c2737f6a2a95e31301bf31c8f23","unresolved":false,"context_lines":[{"line_number":1091,"context_line":"    ],"},{"line_number":1092,"context_line":"    \u0027delegation\u0027: ["},{"line_number":1093,"context_line":"        cfg.IntOpt(\u0027expiration\u0027,"},{"line_number":1094,"context_line":"                   default\u003d0,"},{"line_number":1095,"context_line":"                   help\u003d\u0027Default delegation TTL (in seconds), 0 to disable\u0027),"},{"line_number":1096,"context_line":"    ],"},{"line_number":1097,"context_line":"    \u0027delegation\u0027: ["}],"source_content_type":"text/x-python","patch_set":37,"id":"3aaa91ec_5454d2c8","line":1094,"range":{"start_line":1094,"start_character":28,"end_line":1094,"end_character":29},"updated":"2016-06-23 19:22:57.000000000","message":"This should default to None and have a min\u003d1, so:\ndefault\u003dNone,\nmin\u003d1,\n...","commit_id":"9315f2a741636b8a4591d3eb9a3ee1644c6272ba"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"654b0b3fbcf357068a9c3c5f13f2f18d2b1bc167","unresolved":false,"context_lines":[{"line_number":1091,"context_line":"    ],"},{"line_number":1092,"context_line":"    \u0027delegation\u0027: ["},{"line_number":1093,"context_line":"        cfg.IntOpt(\u0027expiration\u0027,"},{"line_number":1094,"context_line":"                   default\u003d0,"},{"line_number":1095,"context_line":"                   help\u003d\u0027Default delegation TTL (in seconds), 0 to disable\u0027),"},{"line_number":1096,"context_line":"    ],"},{"line_number":1097,"context_line":"    \u0027delegation\u0027: ["}],"source_content_type":"text/x-python","patch_set":37,"id":"3aaa91ec_c986f615","line":1094,"range":{"start_line":1094,"start_character":28,"end_line":1094,"end_character":29},"in_reply_to":"3aaa91ec_5454d2c8","updated":"2016-06-27 14:41:08.000000000","message":"++","commit_id":"9315f2a741636b8a4591d3eb9a3ee1644c6272ba"},{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"c6ec2aea42910c2737f6a2a95e31301bf31c8f23","unresolved":false,"context_lines":[{"line_number":1092,"context_line":"    \u0027delegation\u0027: ["},{"line_number":1093,"context_line":"        cfg.IntOpt(\u0027expiration\u0027,"},{"line_number":1094,"context_line":"                   default\u003d0,"},{"line_number":1095,"context_line":"                   help\u003d\u0027Default delegation TTL (in seconds), 0 to disable\u0027),"},{"line_number":1096,"context_line":"    ],"},{"line_number":1097,"context_line":"    \u0027delegation\u0027: ["},{"line_number":1098,"context_line":"        cfg.IntOpt(\u0027expiration\u0027,"}],"source_content_type":"text/x-python","patch_set":37,"id":"3aaa91ec_b45b76f5","line":1095,"range":{"start_line":1095,"start_character":61,"end_line":1095,"end_character":62},"updated":"2016-06-23 19:22:57.000000000","message":"Change this to something like, \"this feature is disabled by default.\"","commit_id":"9315f2a741636b8a4591d3eb9a3ee1644c6272ba"},{"author":{"_account_id":21465,"name":"Mikhail Nikolaenko","email":"mnikolaenko@protonmail.com","username":"mnikolaenko"},"change_message_id":"3a16766503dd0b9689ce560b7b8fa964b9d416d2","unresolved":false,"context_lines":[{"line_number":1093,"context_line":"        cfg.IntOpt(\u0027expiration\u0027,"},{"line_number":1094,"context_line":"                   default\u003d0,"},{"line_number":1095,"context_line":"                   help\u003d\u0027Default delegation TTL (in seconds), 0 to disable\u0027),"},{"line_number":1096,"context_line":"    ],"},{"line_number":1097,"context_line":"    \u0027delegation\u0027: ["},{"line_number":1098,"context_line":"        cfg.IntOpt(\u0027expiration\u0027,"},{"line_number":1099,"context_line":"                   default\u003d0,"},{"line_number":1100,"context_line":"                   help\u003d\u0027Default delegation TTL (in seconds), 0 to disable\u0027),"},{"line_number":1101,"context_line":"    ],"},{"line_number":1102,"context_line":"}"},{"line_number":1103,"context_line":""},{"line_number":1104,"context_line":""}],"source_content_type":"text/x-python","patch_set":37,"id":"3aaa91ec_23c3d939","line":1101,"range":{"start_line":1096,"start_character":5,"end_line":1101,"end_character":6},"updated":"2016-06-23 16:16:19.000000000","message":"duplicate?","commit_id":"9315f2a741636b8a4591d3eb9a3ee1644c6272ba"},{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"c6ec2aea42910c2737f6a2a95e31301bf31c8f23","unresolved":false,"context_lines":[{"line_number":1093,"context_line":"        cfg.IntOpt(\u0027expiration\u0027,"},{"line_number":1094,"context_line":"                   default\u003d0,"},{"line_number":1095,"context_line":"                   help\u003d\u0027Default delegation TTL (in seconds), 0 to disable\u0027),"},{"line_number":1096,"context_line":"    ],"},{"line_number":1097,"context_line":"    \u0027delegation\u0027: ["},{"line_number":1098,"context_line":"        cfg.IntOpt(\u0027expiration\u0027,"},{"line_number":1099,"context_line":"                   default\u003d0,"},{"line_number":1100,"context_line":"                   help\u003d\u0027Default delegation TTL (in seconds), 0 to disable\u0027),"},{"line_number":1101,"context_line":"    ],"},{"line_number":1102,"context_line":"}"},{"line_number":1103,"context_line":""},{"line_number":1104,"context_line":""}],"source_content_type":"text/x-python","patch_set":37,"id":"3aaa91ec_74890e75","line":1101,"range":{"start_line":1096,"start_character":5,"end_line":1101,"end_character":6},"in_reply_to":"3aaa91ec_23c3d939","updated":"2016-06-23 19:22:57.000000000","message":"++","commit_id":"9315f2a741636b8a4591d3eb9a3ee1644c6272ba"},{"author":{"_account_id":19985,"name":"Ryosuke Mizuno","email":"r-mizuno@rs.jp.nec.com","username":"r-mizuno"},"change_message_id":"db569a81cedf8c248719c40ccee24298c86745eb","unresolved":false,"context_lines":[{"line_number":1093,"context_line":"        cfg.IntOpt(\u0027expiration\u0027,"},{"line_number":1094,"context_line":"                   default\u003d0,"},{"line_number":1095,"context_line":"                   help\u003d\u0027Default delegation TTL (in seconds), 0 to disable\u0027),"},{"line_number":1096,"context_line":"    ],"},{"line_number":1097,"context_line":"    \u0027delegation\u0027: ["},{"line_number":1098,"context_line":"        cfg.IntOpt(\u0027expiration\u0027,"},{"line_number":1099,"context_line":"                   default\u003d0,"},{"line_number":1100,"context_line":"                   help\u003d\u0027Default delegation TTL (in seconds), 0 to disable\u0027),"},{"line_number":1101,"context_line":"    ],"},{"line_number":1102,"context_line":"}"},{"line_number":1103,"context_line":""},{"line_number":1104,"context_line":""}],"source_content_type":"text/x-python","patch_set":37,"id":"3aaa91ec_72a3c200","line":1101,"range":{"start_line":1096,"start_character":5,"end_line":1101,"end_character":6},"in_reply_to":"3aaa91ec_74890e75","updated":"2016-06-24 09:47:09.000000000","message":"++ It looks unnecessary.","commit_id":"9315f2a741636b8a4591d3eb9a3ee1644c6272ba"}],"keystone/common/sql/contract_repo/versions/005_contract_stub.py":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"292456d2885b69139e13f198921768dd23cf48a4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":64,"id":"1a6eadb0_85fcb73f","side":"PARENT","line":14,"range":{"start_line":13,"start_character":0,"end_line":14,"end_character":63},"updated":"2016-12-20 12:30:39.000000000","message":"Why are these using the placeholders, they are reserved for bug fixes that are being backported","commit_id":"0ec3b88a317236ab9daa36e352d17427fd3d1148"}],"keystone/common/sql/expand_repo/versions/005_add_delegation_tables.py":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"292456d2885b69139e13f198921768dd23cf48a4","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":"import migrate"},{"line_number":13,"context_line":"import sqlalchemy as sql"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-python","patch_set":64,"id":"1a6eadb0_25a2034c","line":11,"updated":"2016-12-20 12:30:39.000000000","message":"add a new line after this","commit_id":"4aa65cc08732c3aa840a2a8f03cad5dcec516345"}],"keystone/conf/delegation.py":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"292456d2885b69139e13f198921768dd23cf48a4","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    default\u003dNone,"},{"line_number":20,"context_line":"    help\u003dutils.fmt(\"\"\""},{"line_number":21,"context_line":"Default delegation TTL (in seconds), None to make delegations infinite"},{"line_number":22,"context_line":"by default."},{"line_number":23,"context_line":"\"\"\"))"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":64,"id":"1a6eadb0_c5622f16","line":22,"updated":"2016-12-20 12:30:39.000000000","message":"so the current behavior is that delegations are infinite, just to check, this is the current behavior, right ?","commit_id":"4aa65cc08732c3aa840a2a8f03cad5dcec516345"}],"keystone/delegation/backends/sql.py":[{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"a73df60c16abb77df537aaba1066b6b43eb9e971","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"class RoleDelegationModel(sql.DictBase):"},{"line_number":120,"context_line":"    \"\"\"Many-to-many table between delegation and role\"\"\""},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    __tablename__ \u003d \u0027role_delegation\u0027"},{"line_number":123,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"5a2ca52d_b81e5e61","line":120,"updated":"2015-10-15 13:07:44.000000000","message":"Don\u0027t you need to define these as;\n\n\n\nglobal __tablename__        \n\nglobal attributes\n\n\nbefore you can edit a global variable?\n\nOr are these variables just in this functions scope?\n\nor last option,  am I wrong?","commit_id":"18dfa8b0520f917c4ddc619ba27394cd865ee11e"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"ddcd2accc3504f20fed8bd4722fc882ea9efa4e3","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"class RoleDelegationModel(sql.DictBase):"},{"line_number":120,"context_line":"    \"\"\"Many-to-many table between delegation and role\"\"\""},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    __tablename__ \u003d \u0027role_delegation\u0027"},{"line_number":123,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"5a2ca52d_b8dc1e13","line":120,"in_reply_to":"5a2ca52d_b81e5e61","updated":"2015-10-15 13:15:08.000000000","message":"wow didn\u0027t realize they are defined in a class scope, sorry my coffee didn\u0027t kick in yet.  Ignore my last comment","commit_id":"18dfa8b0520f917c4ddc619ba27394cd865ee11e"},{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"c0b3ec917de8a4b9223ae9456d972566003df3ef","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        return None"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"class RoleDelegationModel(sql.ModelBase):"},{"line_number":33,"context_line":"    \"\"\"Many-to-many table between delegation and role\"\"\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    __tablename__ \u003d \u0027role_delegation\u0027"}],"source_content_type":"text/x-python","patch_set":30,"id":"1af94dfe_9aea250e","line":32,"range":{"start_line":32,"start_character":6,"end_line":32,"end_character":25},"updated":"2016-03-16 19:25:20.000000000","message":"Nit: you can remove the \u0027Model\u0027 suffix as this is not a common practice.","commit_id":"7cb18ed4b7c3d8e081c67f7ed46c7a591c82e276"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"60c996ff7f4cd66e8228561a2f08a56fd886ee92","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        return None"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"class RoleDelegationModel(sql.ModelBase):"},{"line_number":33,"context_line":"    \"\"\"Many-to-many table between delegation and role\"\"\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    __tablename__ \u003d \u0027role_delegation\u0027"}],"source_content_type":"text/x-python","patch_set":30,"id":"fa0719c6_061ad416","line":32,"range":{"start_line":32,"start_character":6,"end_line":32,"end_character":25},"in_reply_to":"1af94dfe_9aea250e","updated":"2016-03-24 11:04:08.000000000","message":"Several patches already depend on it, so I think it should be in following clean-up of refactoring patch. Right now things have to be as readable as possible.","commit_id":"7cb18ed4b7c3d8e081c67f7ed46c7a591c82e276"},{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"c0b3ec917de8a4b9223ae9456d972566003df3ef","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        nullable\u003dFalse)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"class DelegationModel(sql.ModelBase, sql.DictBase):"},{"line_number":53,"context_line":"    \"\"\"Unified delegation model"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    \u0027trustor_id\u0027: the user considered the source of delegated rights"}],"source_content_type":"text/x-python","patch_set":30,"id":"1af94dfe_bace01b2","line":52,"range":{"start_line":52,"start_character":6,"end_line":52,"end_character":21},"updated":"2016-03-16 19:25:20.000000000","message":"Nit: same as above","commit_id":"7cb18ed4b7c3d8e081c67f7ed46c7a591c82e276"},{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"c0b3ec917de8a4b9223ae9456d972566003df3ef","unresolved":false,"context_lines":[{"line_number":111,"context_line":"    user_id \u003d sql.Column(sql.String(64))"},{"line_number":112,"context_line":"    group_id \u003d sql.Column(sql.String(64))"},{"line_number":113,"context_line":"    project_id \u003d sql.Column(sql.String(64))"},{"line_number":114,"context_line":"    domain_id \u003d sql.Column(sql.String(64))"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    # Timestamps"},{"line_number":117,"context_line":"    deleted_at \u003d sql.Column(sql.DateTime)"}],"source_content_type":"text/x-python","patch_set":30,"id":"1af94dfe_da9aed62","line":114,"range":{"start_line":114,"start_character":4,"end_line":114,"end_character":13},"updated":"2016-03-16 19:25:20.000000000","message":"Foreign key constraints to project.id and domain.id?","commit_id":"7cb18ed4b7c3d8e081c67f7ed46c7a591c82e276"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"60c996ff7f4cd66e8228561a2f08a56fd886ee92","unresolved":false,"context_lines":[{"line_number":111,"context_line":"    user_id \u003d sql.Column(sql.String(64))"},{"line_number":112,"context_line":"    group_id \u003d sql.Column(sql.String(64))"},{"line_number":113,"context_line":"    project_id \u003d sql.Column(sql.String(64))"},{"line_number":114,"context_line":"    domain_id \u003d sql.Column(sql.String(64))"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"    # Timestamps"},{"line_number":117,"context_line":"    deleted_at \u003d sql.Column(sql.DateTime)"}],"source_content_type":"text/x-python","patch_set":30,"id":"fa0719c6_0676543d","line":114,"range":{"start_line":114,"start_character":4,"end_line":114,"end_character":13},"in_reply_to":"1af94dfe_da9aed62","updated":"2016-03-24 11:04:08.000000000","message":"Backends are pluggable - there is no guarantee that resources are stored in the same sql db as delegations.","commit_id":"7cb18ed4b7c3d8e081c67f7ed46c7a591c82e276"}],"keystone/delegation/backends/sql_model.py":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"292456d2885b69139e13f198921768dd23cf48a4","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    # OAuth1 access token secret"},{"line_number":127,"context_line":"    secret \u003d sql.Column(sql.String(64))"},{"line_number":128,"context_line":"    consumer_id \u003d sql.Column(sql.String(64))"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    extra \u003d sql.Column(sql.JsonBlob())"},{"line_number":131,"context_line":""}],"source_content_type":"text/x-python","patch_set":64,"id":"1a6eadb0_e533ab11","line":128,"updated":"2016-12-20 12:30:39.000000000","message":"this is the most complex  entity we\u0027re adding to keystone, I thought unified redelegation was here to simplify things. if the manager layer is going to be huge with tons of if/else statements to handle specific delegation logic, I don\u0027t see why we can\u0027t keep separate managers but that can share some code","commit_id":"4aa65cc08732c3aa840a2a8f03cad5dcec516345"}],"keystone/delegation/core.py":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"654b0b3fbcf357068a9c3c5f13f2f18d2b1bc167","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2012 OpenStack Foundation"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"# not use this file except in compliance with the License. You may obtain"},{"line_number":5,"context_line":"# a copy of the License at"}],"source_content_type":"text/x-python","patch_set":37,"id":"3aaa91ec_692b8295","line":2,"range":{"start_line":1,"start_character":0,"end_line":2,"end_character":1},"updated":"2016-06-27 14:41:08.000000000","message":"I\u0027d remove this ... also the year number is outdated (if you want to keep it)","commit_id":"9315f2a741636b8a4591d3eb9a3ee1644c6272ba"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"654b0b3fbcf357068a9c3c5f13f2f18d2b1bc167","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":37,"id":"3aaa91ec_29085a2d","line":21,"updated":"2016-06-27 14:41:08.000000000","message":"where is the manager code ? looks like this is still WIP?","commit_id":"9315f2a741636b8a4591d3eb9a3ee1644c6272ba"}]}
