)]}'
{"keystone/tests/unit/filtering.py":[{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"17847c8d1036b5b3beda20a42de69c2e990d0a17","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def _create_entity(self, entity_type):"},{"line_number":45,"context_line":"        f \u003d getattr(self.identity_api, \u0027create_%s\u0027 % entity_type, None)"},{"line_number":46,"context_line":"        if not f:"},{"line_number":47,"context_line":"            f \u003d getattr(self.resource_api, \u0027create_%s\u0027 % entity_type, None)"},{"line_number":48,"context_line":"        if f is None:"},{"line_number":49,"context_line":"            f \u003d getattr(self.assignment_api, \u0027create_%s\u0027 % entity_type)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_388de2d2","line":46,"updated":"2015-08-07 15:36:59.000000000","message":"It says \"if not f:\" here and \"if f is None:\" below. It looks inconsistently.\n\nI also don\u0027t quite understand why it\u0027s needed. Will try to figure out now...","commit_id":"5785b8f2880ff7b9728dc8d329e278e19551b1d1"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"40d0465e425baa6d4f3412f2b7aa4df2bb862fdc","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def _create_entity(self, entity_type):"},{"line_number":45,"context_line":"        f \u003d getattr(self.identity_api, \u0027create_%s\u0027 % entity_type, None)"},{"line_number":46,"context_line":"        if not f:"},{"line_number":47,"context_line":"            f \u003d getattr(self.resource_api, \u0027create_%s\u0027 % entity_type, None)"},{"line_number":48,"context_line":"        if f is None:"},{"line_number":49,"context_line":"            f \u003d getattr(self.assignment_api, \u0027create_%s\u0027 % entity_type)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_76c85b55","line":46,"in_reply_to":"1a4dcd0f_388de2d2","updated":"2015-08-07 16:05:40.000000000","message":"the line above checks if the method exists and returns None if it doesn\u0027t.\n\npython considers None to be falsy and a bound function to be true.","commit_id":"5785b8f2880ff7b9728dc8d329e278e19551b1d1"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"e6c7c20dd48092e02fceb677a91f85d73678bc0d","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    def _create_entity(self, entity_type):"},{"line_number":45,"context_line":"        f \u003d getattr(self.identity_api, \u0027create_%s\u0027 % entity_type, None)"},{"line_number":46,"context_line":"        if f is None:"},{"line_number":47,"context_line":"            f \u003d getattr(self.assignment_api, \u0027create_%s\u0027 % entity_type)"},{"line_number":48,"context_line":"        return f"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def _delete_entity(self, entity_type):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_16a9d723","side":"PARENT","line":47,"updated":"2015-08-07 16:12:00.000000000","message":"this looks like a bad merge or something?","commit_id":"74575a66f1113ac0452da9982b345dec18ec0f32"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"6c33fbd8f9dd54e631b1b71fe7d240dcd0e6f721","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    def _create_entity(self, entity_type):"},{"line_number":45,"context_line":"        f \u003d getattr(self.identity_api, \u0027create_%s\u0027 % entity_type, None)"},{"line_number":46,"context_line":"        if f is None:"},{"line_number":47,"context_line":"            f \u003d getattr(self.assignment_api, \u0027create_%s\u0027 % entity_type)"},{"line_number":48,"context_line":"        return f"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def _delete_entity(self, entity_type):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_3145fd41","side":"PARENT","line":47,"in_reply_to":"1a4dcd0f_16a9d723","updated":"2015-08-07 16:15:27.000000000","message":"Dolph - it looks funny but it\u0027s correct... gerrit matches the new line with the existing one and shows the existing line as a new one.","commit_id":"74575a66f1113ac0452da9982b345dec18ec0f32"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"c8cdda6a5cca2ef0735f5373d1df243a695c0afa","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    def _create_entity(self, entity_type):"},{"line_number":45,"context_line":"        f \u003d getattr(self.identity_api, \u0027create_%s\u0027 % entity_type, None)"},{"line_number":46,"context_line":"        if f is None:"},{"line_number":47,"context_line":"            f \u003d getattr(self.assignment_api, \u0027create_%s\u0027 % entity_type)"},{"line_number":48,"context_line":"        return f"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def _delete_entity(self, entity_type):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_b10a6d1e","side":"PARENT","line":47,"in_reply_to":"1a4dcd0f_16a9d723","updated":"2015-08-07 16:13:25.000000000","message":"oh i see what\u0027s going on... docstrings, *please*!","commit_id":"74575a66f1113ac0452da9982b345dec18ec0f32"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"7832b7302775468bc537a87fc447659848dd3a0b","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    def _create_entity(self, entity_type):"},{"line_number":45,"context_line":"        f \u003d getattr(self.identity_api, \u0027create_%s\u0027 % entity_type, None)"},{"line_number":46,"context_line":"        if f is None:"},{"line_number":47,"context_line":"            f \u003d getattr(self.assignment_api, \u0027create_%s\u0027 % entity_type)"},{"line_number":48,"context_line":"        return f"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def _delete_entity(self, entity_type):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_ec657c44","side":"PARENT","line":47,"in_reply_to":"1a4dcd0f_3145fd41","updated":"2015-08-07 16:48:16.000000000","message":"I think just a comment at the class level talking about the method lookups would be enough.","commit_id":"74575a66f1113ac0452da9982b345dec18ec0f32"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"4212fe9db4b23f2f34883d100d3dfc441bb6c05f","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    def _create_entity(self, entity_type):"},{"line_number":45,"context_line":"        f \u003d getattr(self.identity_api, \u0027create_%s\u0027 % entity_type, None)"},{"line_number":46,"context_line":"        if f is None:"},{"line_number":47,"context_line":"            f \u003d getattr(self.assignment_api, \u0027create_%s\u0027 % entity_type)"},{"line_number":48,"context_line":"        return f"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def _delete_entity(self, entity_type):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_2a333ff8","side":"PARENT","line":47,"in_reply_to":"1a4dcd0f_ec657c44","updated":"2015-08-07 19:11:03.000000000","message":"Done","commit_id":"74575a66f1113ac0452da9982b345dec18ec0f32"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"53fec4d29d7950819e62e645b29b0bcc5471f05f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"1a4dcd0f_5670bf0a","updated":"2015-08-07 16:08:45.000000000","message":"why do you need to change this file? I tried applying the patch, checking out the file from master and running the tests. I don\u0027t see any deprecation warnings logs which could be related to this identity/resource/assignments.","commit_id":"8db9fd44b71a9c90b7a9ef53bd0b4a4a01acc1d2"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"553d875089db98e6e9c3f346d5c4005777a5d474","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"1a4dcd0f_1680f789","in_reply_to":"1a4dcd0f_5670bf0a","updated":"2015-08-07 16:12:46.000000000","message":"Try applying the follow-on patch https://review.openstack.org/#/c/210174/ and run without this change.\n\nThere are a lot of calls happening to assignment_api.create_\u003cproject, etc\u003e, etc. which are deprecated.","commit_id":"8db9fd44b71a9c90b7a9ef53bd0b4a4a01acc1d2"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"d424a7a95d4f0e94f488e2f2d6f323cc142096ba","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        Searches through the [identity_api, resource_api, assignment_api]"},{"line_number":48,"context_line":"        managers for a method called create_\u003centity_type\u003e and returns the first"},{"line_number":49,"context_line":"        one."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        \"\"\""},{"line_number":52,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_67309de9","line":49,"updated":"2015-08-07 20:54:59.000000000","message":"++ thanks for adding docstrings!","commit_id":"1a615fb5e20fd8864142aeebf582cd38c19435b7"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"2ba7a68a589cec366c8cd486d58186038b46ba80","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        Searches through the [identity_api, resource_api, assignment_api]"},{"line_number":48,"context_line":"        managers for a method called create_\u003centity_type\u003e and returns the first"},{"line_number":49,"context_line":"        one."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        \"\"\""},{"line_number":52,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_a736a5e5","line":49,"updated":"2015-08-07 20:54:47.000000000","message":"Thank you for addressing my idiocy!","commit_id":"1a615fb5e20fd8864142aeebf582cd38c19435b7"}]}
