)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"024539db1d57c952a422ff08d6cfe60f8766f3c7","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Remove duplicated query statement"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Multiple criteria joined together is supported by \"sqlalchemy\", so we needn\u0027t query database separately."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Iddf6b23a538c0bd05e69c9a170240058e1ed1b98"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5a890539_610ca743","line":9,"updated":"2014-11-11 20:51:38.000000000","message":"Suggest following this guide for writing commit messages and keeping the description paragraph under 74 characters per line. \n\nhttps://wiki.openstack.org/wiki/GitCommitMessages","commit_id":"717c2776efbf6e9cc523a7af47a635e2d8f79894"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"972438dd358fadb2fc38a65b244a08e97579faec","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Remove duplicated query statement"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Multiple criteria joined together is supported by \"sqlalchemy\", so we needn\u0027t query database separately."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Iddf6b23a538c0bd05e69c9a170240058e1ed1b98"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5a890539_946e2a00","line":9,"in_reply_to":"5a890539_610ca743","updated":"2014-11-16 02:17:51.000000000","message":"Thanks Lance, and sorry for haven\u0027t take it seriously, pls hit me back if I still miss something.","commit_id":"717c2776efbf6e9cc523a7af47a635e2d8f79894"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"7bfb05890cf24dd6237059665336e4e3b6df14c3","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Reduce database query statement"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Filtering criterion in the method of \"Query.filter_by()\" introduced"},{"line_number":10,"context_line":"by SQLAlchemy supports to join multiple criteria together to achieve"},{"line_number":11,"context_line":"\"and\" logic in the query statement, thus, it needn\u0027t query database"},{"line_number":12,"context_line":"one by one. As a result,this will help to make the code more efficient."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"5a890539_16fff934","line":9,"updated":"2014-11-26 04:59:07.000000000","message":"Calling filter_by isn\u0027t actually querying the database. The Query object is just remembering all of the filters so that it can make the proper query when .all() is called.","commit_id":"ecc1ba4c7b4ff1b1e0d70efa588aa31635c15704"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"f37f92a80e33ee0670e25ce11c17abc85910b34e","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Reduce database query statement"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Filtering criterion in the method of \"Query.filter_by()\" introduced"},{"line_number":10,"context_line":"by SQLAlchemy supports to join multiple criteria together to achieve"},{"line_number":11,"context_line":"\"and\" logic in the query statement, thus, it needn\u0027t query database"},{"line_number":12,"context_line":"one by one. As a result,this will help to make the code more efficient."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"5a890539_719767ec","line":9,"in_reply_to":"5a890539_16fff934","updated":"2014-11-26 06:20:48.000000000","message":"Done","commit_id":"ecc1ba4c7b4ff1b1e0d70efa588aa31635c15704"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"5ffc5b6564f1ce98ea796c40060d05e8687dda60","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Dave Chen \u003cdave.jungler@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-12-01 09:01:30 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"More efficient way to build the SQL clauses"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Filtering criterion in the method of \"Query.filter_by()\" introduced"},{"line_number":10,"context_line":"by SQLAlchemy supports to join multiple criteria together in the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"5a890539_3c9aaac5","line":7,"updated":"2014-12-01 14:11:31.000000000","message":"This is more efficient or just a way to refactor the code to simplify it?","commit_id":"af4c70d04b6af0132474c21e85a1d81de5b2b6ba"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"091b9ef1fd269e47654321c8c6fe43a7246204a6","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Dave Chen \u003cdave.jungler@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-12-01 09:01:30 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"More efficient way to build the SQL clauses"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Filtering criterion in the method of \"Query.filter_by()\" introduced"},{"line_number":10,"context_line":"by SQLAlchemy supports to join multiple criteria together in the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"5a890539_bca764a6","line":7,"in_reply_to":"5a890539_3c9aaac5","updated":"2014-12-02 01:18:24.000000000","message":"@David, I think it\u0027s more efficient as the code refactor will reduce functions invocation, this is my point of view on this.","commit_id":"af4c70d04b6af0132474c21e85a1d81de5b2b6ba"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"a339d8a886436b8ab25c59e75c56cbceabad516c","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Dave Chen \u003cdave.jungler@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-12-01 09:01:30 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"More efficient way to build the SQL clauses"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Filtering criterion in the method of \"Query.filter_by()\" introduced"},{"line_number":10,"context_line":"by SQLAlchemy supports to join multiple criteria together in the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1a930d6b_c915024a","line":7,"in_reply_to":"5a890539_8bfdf7b3","updated":"2015-01-26 20:37:51.000000000","message":"I just took a deeper look and found that filter_by is probably less efficient since it\u0027s just a call to filter. While it is only a single call to filter there are two other functions called for each kwarg passed to filter_by that figure out the correct args for filter. I doubt this hurts performance, but I thought it was interesting based on the previous performance claims. https://bitbucket.org/zzzeek/sqlalchemy/src/7b102eeaee12265a2c4f4f5619827178d379d210/lib/sqlalchemy/orm/query.py?at\u003dmaster#cl-1344","commit_id":"af4c70d04b6af0132474c21e85a1d81de5b2b6ba"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"635e50b505c47447308ed0da6ad10005041de98f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Dave Chen \u003cdave.jungler@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-12-01 09:01:30 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"More efficient way to build the SQL clauses"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Filtering criterion in the method of \"Query.filter_by()\" introduced"},{"line_number":10,"context_line":"by SQLAlchemy supports to join multiple criteria together in the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"5a890539_ddeb4910","line":7,"in_reply_to":"5a890539_bca764a6","updated":"2014-12-02 04:18:50.000000000","message":"I\u0027ll let some of the other cores weigh in here. I think it\u0027s a little misleading if you are just reading the commit summary. A function call shouldn\u0027t be slow enough to measure unless SQA is doing something funny here.","commit_id":"af4c70d04b6af0132474c21e85a1d81de5b2b6ba"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"34a83a808735f951339b119b7c66f7f3bcd04b22","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Dave Chen \u003cdave.jungler@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-12-01 09:01:30 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"More efficient way to build the SQL clauses"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Filtering criterion in the method of \"Query.filter_by()\" introduced"},{"line_number":10,"context_line":"by SQLAlchemy supports to join multiple criteria together in the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"5a890539_8bfdf7b3","line":7,"in_reply_to":"5a890539_ddeb4910","updated":"2014-12-02 06:17:24.000000000","message":"David, I modify the commit message again and not sure if there is still misleading there, thanks for reviewing it again.","commit_id":"af4c70d04b6af0132474c21e85a1d81de5b2b6ba"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"f14ebb3a23bd1eb9f5336f5da02e6249697e28d0","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2014-12-11 22:10:24 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Refactor the code to join multiple criteria together"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Filtering criterion in the method of \"Query.filter_by()\" introduced"},{"line_number":10,"context_line":"by SQLAlchemy supports to join multiple criteria together instead of"},{"line_number":11,"context_line":"join each criteria separately."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"3a961159_48869514","line":8,"updated":"2014-12-11 11:51:45.000000000","message":"I\u0027d specify which backend you are refactoring here, since the same refactoring can be done in several SQL backends.\n\nAnother option is to make this refactoring in all SQL backends.","commit_id":"defa688df76f7fd5ba89dc6727f0e07cc987fc8c"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"7e184ce64fdf744d5bac97f5eb838aeb2a77880f","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2014-12-11 22:10:24 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Refactor the code to join multiple criteria together"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Filtering criterion in the method of \"Query.filter_by()\" introduced"},{"line_number":10,"context_line":"by SQLAlchemy supports to join multiple criteria together instead of"},{"line_number":11,"context_line":"join each criteria separately."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"3a961159_c690c345","line":8,"in_reply_to":"3a961159_48869514","updated":"2014-12-19 02:08:37.000000000","message":"Hi Rodrigo,\nRefactoring in all SQL backends is a good idea, I would like to make it happens step by step.","commit_id":"defa688df76f7fd5ba89dc6727f0e07cc987fc8c"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"1da670a185d0fa954ec7d19182e729bb4b805e3a","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2014-12-11 22:10:24 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Refactor the code to join multiple criteria together"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Filtering criterion in the method of \"Query.filter_by()\" introduced"},{"line_number":10,"context_line":"by SQLAlchemy supports to join multiple criteria together instead of"},{"line_number":11,"context_line":"join each criteria separately."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"3a961159_df019db0","line":8,"in_reply_to":"3a961159_c690c345","updated":"2014-12-31 15:51:51.000000000","message":"So is this a WIP?","commit_id":"defa688df76f7fd5ba89dc6727f0e07cc987fc8c"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"1be1db8ccee6e0d05c1eb2dcf36284952e0931a4","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2014-12-11 22:10:24 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Refactor the code to join multiple criteria together"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Filtering criterion in the method of \"Query.filter_by()\" introduced"},{"line_number":10,"context_line":"by SQLAlchemy supports to join multiple criteria together instead of"},{"line_number":11,"context_line":"join each criteria separately."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"da86d52c_16e34f06","line":8,"in_reply_to":"3a961159_df019db0","updated":"2015-02-08 04:47:28.000000000","message":"Rodrigo, acutally, I\u0027d like to get some reviews and weight on this patch at first and plan to submit another patch to address the same issue in \u0027identity\u0027, \u0027endpoint_policy\u0027, \u0027resource\u0027,\u0027trust\u0027 backends if this patch works.","commit_id":"defa688df76f7fd5ba89dc6727f0e07cc987fc8c"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"c3203a4f030c30730e9f7fd44f92662dcb0999ef","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Filtering criterion in the method of \"Query.filter_by()\" introduced"},{"line_number":10,"context_line":"by SQLAlchemy supports to join multiple criteria together instead of"},{"line_number":11,"context_line":"join each criteria separately."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Iddf6b23a538c0bd05e69c9a170240058e1ed1b98"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"7aaa499b_423be79c","line":12,"updated":"2015-04-14 10:10:43.000000000","message":"should have a bug of bp link here....and that should describe why we are doing this...is it just cleanliness, more efficient etc.","commit_id":"6bd73d3bdb87141bf595b527b33da58a896e4a96"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"06ca0d14ac9ac076c0717a253f6036800690e2b5","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Filtering criterion in the method of \"Query.filter_by()\" introduced"},{"line_number":10,"context_line":"by SQLAlchemy supports to join multiple criteria together instead of"},{"line_number":11,"context_line":"join each criteria separately."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Iddf6b23a538c0bd05e69c9a170240058e1ed1b98"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"5ad0253b_c265e5e1","line":12,"in_reply_to":"7aaa499b_423be79c","updated":"2015-04-29 06:20:21.000000000","message":"Done","commit_id":"6bd73d3bdb87141bf595b527b33da58a896e4a96"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"66f2f3b1bbab6f2ebc56e9ca0e657c8ed65a11cc","unresolved":false,"context_lines":[{"line_number":25,"context_line":"                filter_by(name \u003d \u0027some name\u0027, id \u003d 5)"},{"line_number":26,"context_line":"\""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Since SQLAlchemy provides this interface, this should has its benefit from introducing this"},{"line_number":29,"context_line":"method, the direct impact is we needn\u0027t build the query statement repetitively."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"2. The change make the code looks more concise."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":19,"id":"3acd31a7_ad5395e1","line":28,"updated":"2015-05-04 21:23:13.000000000","message":"nice commit message, can you shorten it to be 72 cols per line? (https://wiki.openstack.org/wiki/GitCommitMessages)","commit_id":"e1d27a65b7ccd5acefd12266cffc6a50ad73eb41"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"b9eca2c1311d453c3361c52ac92750800a157207","unresolved":false,"context_lines":[{"line_number":25,"context_line":"                filter_by(name \u003d \u0027some name\u0027, id \u003d 5)"},{"line_number":26,"context_line":"\""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Since SQLAlchemy provides this interface, this should has its benefit from introducing this"},{"line_number":29,"context_line":"method, the direct impact is we needn\u0027t build the query statement repetitively."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"2. The change make the code looks more concise."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":19,"id":"3acd31a7_0e75dc62","line":28,"in_reply_to":"3acd31a7_ad5395e1","updated":"2015-05-05 02:01:05.000000000","message":"Done","commit_id":"e1d27a65b7ccd5acefd12266cffc6a50ad73eb41"}],"keystone/assignment/backends/sql.py":[{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"963d4960c2ff611521dc878839a9927175e229be","unresolved":false,"context_lines":[{"line_number":64,"context_line":"            query \u003d session.query(RoleAssignment.actor_id)"},{"line_number":65,"context_line":"            query \u003d query.filter_by("},{"line_number":66,"context_line":"                type\u003dAssignmentType.USER_PROJECT,"},{"line_number":67,"context_line":"                target_id\u003dtenant_id)"},{"line_number":68,"context_line":"            query \u003d query.distinct(\u0027actor_id\u0027)"},{"line_number":69,"context_line":"            assignments \u003d query.all()"},{"line_number":70,"context_line":"            return [assignment.actor_id for assignment in assignments]"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a961159_971b4372","line":67,"updated":"2014-12-11 05:21:45.000000000","message":"Why not \n\nquery \u003d query.filter_by(type\u003dAssignmentType.USER_PROJECT,\n                        target_id\u003dtenant_id)\n\nThis would be follow the same pattern used to define several methodsin this class, e.g _get_metadata, .","commit_id":"2945b40e02625652a25a5153033a14c33470dfa1"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"963d4960c2ff611521dc878839a9927175e229be","unresolved":false,"context_lines":[{"line_number":508,"context_line":"            q \u003d q.filter_by("},{"line_number":509,"context_line":"                actor_id\u003duser_id,"},{"line_number":510,"context_line":"                target_id\u003dtenant_id,"},{"line_number":511,"context_line":"                role_id\u003drole_id)"},{"line_number":512,"context_line":"            if q.delete() \u003d\u003d 0:"},{"line_number":513,"context_line":"                raise exception.RoleNotFound(message\u003d_("},{"line_number":514,"context_line":"                    \u0027Cannot remove role that has not been granted, %s\u0027) %"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a961159_1c169a55","line":511,"updated":"2014-12-11 05:21:45.000000000","message":"Same as for line 67.\nWhy not\n\nq \u003d q.filter_by(actor_id\u003duser_id,\n                target_id\u003dtenant_id,\n                role_id\u003drole_id)","commit_id":"2945b40e02625652a25a5153033a14c33470dfa1"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"8af198d6c521b11f27f6fd69c79799b2422e021e","unresolved":false,"context_lines":[{"line_number":508,"context_line":"            q \u003d q.filter_by("},{"line_number":509,"context_line":"                actor_id\u003duser_id,"},{"line_number":510,"context_line":"                target_id\u003dtenant_id,"},{"line_number":511,"context_line":"                role_id\u003drole_id)"},{"line_number":512,"context_line":"            if q.delete() \u003d\u003d 0:"},{"line_number":513,"context_line":"                raise exception.RoleNotFound(message\u003d_("},{"line_number":514,"context_line":"                    \u0027Cannot remove role that has not been granted, %s\u0027) %"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a961159_f751e736","line":511,"in_reply_to":"3a961159_1c169a55","updated":"2014-12-11 06:11:26.000000000","message":"Samuel, thanks for the comments.\n\nIf I am remember correctly,I try to do that way but found cannot pass pep8 verification. Try it again this time, pep8 and py27 passed well, I will submit one new patch to address your comment.","commit_id":"2945b40e02625652a25a5153033a14c33470dfa1"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"f10adbe3121bfe178fd9e34f22d39209fe53964f","unresolved":false,"context_lines":[{"line_number":96,"context_line":"                    return AssignmentType.GROUP_DOMAIN"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        q \u003d q.filter_by(type\u003d_calc_assignment_type())"},{"line_number":99,"context_line":"        q \u003d q.filter_by(actor_id\u003duser_id or group_id)"},{"line_number":100,"context_line":"        q \u003d q.filter_by(target_id\u003dtenant_id or domain_id)"},{"line_number":101,"context_line":"        refs \u003d q.all()"},{"line_number":102,"context_line":"        if not refs:"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a930d6b_df704642","line":99,"updated":"2015-01-27 02:35:56.000000000","message":"(nit) put these 3 together as well","commit_id":"c8efb91a5d12251bd9a7114dba327514e9a8c720"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"3b45bd44c765f5a871083694f7c70fc8a0a4ba6c","unresolved":false,"context_lines":[{"line_number":96,"context_line":"                    return AssignmentType.GROUP_DOMAIN"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        q \u003d q.filter_by(type\u003d_calc_assignment_type())"},{"line_number":99,"context_line":"        q \u003d q.filter_by(actor_id\u003duser_id or group_id)"},{"line_number":100,"context_line":"        q \u003d q.filter_by(target_id\u003dtenant_id or domain_id)"},{"line_number":101,"context_line":"        refs \u003d q.all()"},{"line_number":102,"context_line":"        if not refs:"}],"source_content_type":"text/x-python","patch_set":11,"id":"da86d52c_96301fa0","line":99,"in_reply_to":"1a930d6b_df704642","updated":"2015-02-08 04:40:59.000000000","message":"Done","commit_id":"c8efb91a5d12251bd9a7114dba327514e9a8c720"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"4ddb8ec60872c02a00cd28d5269ecdcbb1b305f8","unresolved":false,"context_lines":[{"line_number":179,"context_line":"    def _build_grant_filter(self, session, role_id, user_id, group_id,"},{"line_number":180,"context_line":"                            domain_id, project_id, inherited_to_projects):"},{"line_number":181,"context_line":"        q \u003d session.query(RoleAssignment)"},{"line_number":182,"context_line":"        q \u003d q.filter_by(actor_id\u003duser_id or group_id)"},{"line_number":183,"context_line":"        q \u003d q.filter_by(target_id\u003dproject_id or domain_id)"},{"line_number":184,"context_line":"        q \u003d q.filter_by(role_id\u003drole_id, inherited\u003dinherited_to_projects)"},{"line_number":185,"context_line":"        return q"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a930d6b_445d7914","line":182,"updated":"2015-01-26 20:40:00.000000000","message":"(nit) why are these two not rolled up?","commit_id":"c8efb91a5d12251bd9a7114dba327514e9a8c720"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"3b45bd44c765f5a871083694f7c70fc8a0a4ba6c","unresolved":false,"context_lines":[{"line_number":179,"context_line":"    def _build_grant_filter(self, session, role_id, user_id, group_id,"},{"line_number":180,"context_line":"                            domain_id, project_id, inherited_to_projects):"},{"line_number":181,"context_line":"        q \u003d session.query(RoleAssignment)"},{"line_number":182,"context_line":"        q \u003d q.filter_by(actor_id\u003duser_id or group_id)"},{"line_number":183,"context_line":"        q \u003d q.filter_by(target_id\u003dproject_id or domain_id)"},{"line_number":184,"context_line":"        q \u003d q.filter_by(role_id\u003drole_id, inherited\u003dinherited_to_projects)"},{"line_number":185,"context_line":"        return q"}],"source_content_type":"text/x-python","patch_set":11,"id":"da86d52c_b625235e","line":182,"in_reply_to":"1a930d6b_445d7914","updated":"2015-02-08 04:40:59.000000000","message":"Done","commit_id":"c8efb91a5d12251bd9a7114dba327514e9a8c720"}]}
