)]}'
{"keystone/auth/controllers.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"fc63e84c30b0ccdd9c4b98df91632af1171e0b1a","unresolved":false,"context_lines":[{"line_number":103,"context_line":"                                     \u0027expires_at\u0027])"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def __setitem__(self, key, val):"},{"line_number":106,"context_line":"        \"\"\"Defining identity attributes assignment condtions.\"\"\""},{"line_number":107,"context_line":"        if key in self.IDENTITY_ATTRIBUTES and key in self:"},{"line_number":108,"context_line":"            existing_val \u003d self[key]"},{"line_number":109,"context_line":"            if key \u003d\u003d \u0027expires_at\u0027:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_aae2572d","line":106,"updated":"2016-04-22 16:36:01.000000000","message":"Misspelling and I don\u0027t know what this means.","commit_id":"7940a80fd453b13c25865f74ad118021d4234ce9"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"f0bab1ba75fce8245e2e810642a91a1948c13a33","unresolved":false,"context_lines":[{"line_number":103,"context_line":"                                     \u0027expires_at\u0027])"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def __setitem__(self, key, val):"},{"line_number":106,"context_line":"        \"\"\"Assign identity attributes with condtions.\"\"\""},{"line_number":107,"context_line":"        if key in self.IDENTITY_ATTRIBUTES and key in self:"},{"line_number":108,"context_line":"            existing_val \u003d self[key]"},{"line_number":109,"context_line":"            if key \u003d\u003d \u0027expires_at\u0027:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_95db3ced","line":106,"updated":"2016-04-22 17:15:29.000000000","message":"How about \"Override __setitem__ to prevent conflicting values\"?","commit_id":"51ff322408c1280a34acc3778dddfb575a26b822"}],"keystone/common/kvs/core.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"fc63e84c30b0ccdd9c4b98df91632af1171e0b1a","unresolved":false,"context_lines":[{"line_number":429,"context_line":"                            self.key)"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"    def __exit__(self, exc_type, exc_val, exc_tb):"},{"line_number":432,"context_line":"        \"\"\"Define KVSLock context manager behavior on exit(releasing lock).\"\"\""},{"line_number":433,"context_line":"        self.release()"},{"line_number":434,"context_line":""},{"line_number":435,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_ea39efa4","line":432,"updated":"2016-04-22 16:36:01.000000000","message":"Just \"Context manager exit\" would be fine. What is KVSLock?","commit_id":"7940a80fd453b13c25865f74ad118021d4234ce9"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"f0bab1ba75fce8245e2e810642a91a1948c13a33","unresolved":false,"context_lines":[{"line_number":429,"context_line":"                            self.key)"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"    def __exit__(self, exc_type, exc_val, exc_tb):"},{"line_number":432,"context_line":"        \"\"\"Exit behavior of context manager to release the lock.\"\"\""},{"line_number":433,"context_line":"        self.release()"},{"line_number":434,"context_line":""},{"line_number":435,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_30a876db","line":432,"updated":"2016-04-22 17:15:29.000000000","message":"How about just \"Release the lock\"?","commit_id":"51ff322408c1280a34acc3778dddfb575a26b822"}],"keystone/common/ldap/core.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"fc63e84c30b0ccdd9c4b98df91632af1171e0b1a","unresolved":false,"context_lines":[{"line_number":868,"context_line":"        self.page_size \u003d 0"},{"line_number":869,"context_line":""},{"line_number":870,"context_line":"    def __enter__(self):"},{"line_number":871,"context_line":"        \"\"\"Define LDAP context manager behavior, returning self.\"\"\""},{"line_number":872,"context_line":"        return self"},{"line_number":873,"context_line":""},{"line_number":874,"context_line":"    def _disable_paging(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_4a58e3fa","line":871,"updated":"2016-04-22 16:36:01.000000000","message":"Similar to my previous comment","commit_id":"7940a80fd453b13c25865f74ad118021d4234ce9"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"fc63e84c30b0ccdd9c4b98df91632af1171e0b1a","unresolved":false,"context_lines":[{"line_number":1084,"context_line":"        return self.conn.delete_ext_s(dn_utf8, serverctrls, clientctrls)"},{"line_number":1085,"context_line":""},{"line_number":1086,"context_line":"    def __exit__(self, exc_type, exc_val, exc_tb):"},{"line_number":1087,"context_line":"        \"\"\"Define LDAP context manager on exit, unbinding LDAP.\"\"\""},{"line_number":1088,"context_line":"        self.unbind_s()"},{"line_number":1089,"context_line":""},{"line_number":1090,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_8a72fb7a","line":1087,"updated":"2016-04-22 16:36:01.000000000","message":"Ditto","commit_id":"7940a80fd453b13c25865f74ad118021d4234ce9"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"f0bab1ba75fce8245e2e810642a91a1948c13a33","unresolved":false,"context_lines":[{"line_number":868,"context_line":"        self.page_size \u003d 0"},{"line_number":869,"context_line":""},{"line_number":870,"context_line":"    def __enter__(self):"},{"line_number":871,"context_line":"        \"\"\"Context manager behavior at the beginning, returning self.\"\"\""},{"line_number":872,"context_line":"        return self"},{"line_number":873,"context_line":""},{"line_number":874,"context_line":"    def _disable_paging(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_9096aa92","line":871,"updated":"2016-04-22 17:15:29.000000000","message":"I\u0027d rather something simple like \"Enter runtime context\"? This is straight from https://docs.python.org/2/reference/datamodel.html#object.__enter__","commit_id":"51ff322408c1280a34acc3778dddfb575a26b822"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"f0bab1ba75fce8245e2e810642a91a1948c13a33","unresolved":false,"context_lines":[{"line_number":1084,"context_line":"        return self.conn.delete_ext_s(dn_utf8, serverctrls, clientctrls)"},{"line_number":1085,"context_line":""},{"line_number":1086,"context_line":"    def __exit__(self, exc_type, exc_val, exc_tb):"},{"line_number":1087,"context_line":"        \"\"\"Context manager on exit, unbinding LDAP.\"\"\""},{"line_number":1088,"context_line":"        self.unbind_s()"},{"line_number":1089,"context_line":""},{"line_number":1090,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_f039dea4","line":1087,"updated":"2016-04-22 17:15:29.000000000","message":"or \"Exit runtime context, unbind LDAP\"","commit_id":"51ff322408c1280a34acc3778dddfb575a26b822"}],"keystone/common/ldap/models.py":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"8859412e1d3957cbf1329aeacdea4387530716c2","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    \"\"\"Base model class.\"\"\""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    def __hash__(self):"},{"line_number":26,"context_line":"        \"\"\"Define hash behavior where hash of service id is returned.\"\"\""},{"line_number":27,"context_line":"        return self[\u0027id\u0027].__hash__()"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a122d0e_a0ca4a9f","line":26,"range":{"start_line":26,"start_character":54,"end_line":26,"end_character":56},"updated":"2016-04-25 14:05:48.000000000","message":"nit: s/id/ID","commit_id":"a17083e7184e4d5e0f8c432410634cad49fe43d4"}],"keystone/models/token_model.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"8acf07880cc0d11b23bd4f55f5a004a8a058999f","unresolved":false,"context_lines":[{"line_number":63,"context_line":"                                              \u0027both project and domain.\u0027))"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def __repr__(self):"},{"line_number":66,"context_line":"        \"\"\"Return string representation of KystoneToken decstioptions.\"\"\""},{"line_number":67,"context_line":"        desc \u003d (\u0027\u003c%(type)s (audit_id\u003d%(audit_id)s, \u0027"},{"line_number":68,"context_line":"                \u0027audit_chain_id\u003d%(audit_chain_id)s) at %(loc)s\u003e\u0027)"},{"line_number":69,"context_line":"        self_cls_name \u003d reflection.get_class_name(self,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_2a7127a9","line":66,"range":{"start_line":66,"start_character":43,"end_line":66,"end_character":69},"updated":"2016-04-22 16:31:29.000000000","message":"KeystoneToken. (drop the last word)","commit_id":"9f156f7749795a4b7bfdeeab0c1dc443112e3513"}]}
