)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":21798,"name":"Bernard Cafarelli","email":"bcafarel@redhat.com","username":"bcafarel"},"change_message_id":"3163d5657b4b45992e0bf771945ddd67cc39ee31","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Miguel Lavalle \u003cmiguel.lavalle@verizonmedia.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-06-16 19:59:03 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix list security groups performace with RBAC"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"After change [1], if the system has a high number of security groups"},{"line_number":10,"context_line":"with no associated RBAC entries, a non admin user owning only one"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9fb8cfa7_4d4e32c2","line":7,"range":{"start_line":7,"start_character":25,"end_line":7,"end_character":35},"updated":"2019-06-19 18:03:08.000000000","message":"*performance","commit_id":"dc441c0d775b33a92d8fa7c4ffaa4a6c7ddd2125"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"f6e9552736504b149e6e822567dc21a6b47ddb7d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Miguel Lavalle \u003cmiguel.lavalle@verizonmedia.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-06-16 19:59:03 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix list security groups performace with RBAC"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"After change [1], if the system has a high number of security groups"},{"line_number":10,"context_line":"with no associated RBAC entries, a non admin user owning only one"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9fb8cfa7_8655b652","line":7,"range":{"start_line":7,"start_character":25,"end_line":7,"end_character":35},"in_reply_to":"9fb8cfa7_4d4e32c2","updated":"2019-06-23 22:36:06.000000000","message":"Thanks!","commit_id":"dc441c0d775b33a92d8fa7c4ffaa4a6c7ddd2125"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"1e3def5b46d0902d066949c515568662f10acf2d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Miguel Lavalle \u003cmiguel.lavalle@verizonmedia.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-06-16 19:59:03 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix list security groups performace with RBAC"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"After change [1], if the system has a high number of security groups"},{"line_number":10,"context_line":"with no associated RBAC entries, a non admin user owning only one"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7faddb67_db99a61f","line":7,"range":{"start_line":7,"start_character":25,"end_line":7,"end_character":35},"in_reply_to":"9fb8cfa7_8655b652","updated":"2019-07-04 23:10:49.000000000","message":"Done","commit_id":"dc441c0d775b33a92d8fa7c4ffaa4a6c7ddd2125"}],"neutron/objects/rbac_db.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"0347e758d575f745738b7b88212354a5d72b0677","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        # tenant has access. Otherwise, we know tenant has no access"},{"line_number":90,"context_line":"        if db_obj.db_obj.get(\u0027rbac_entries\u0027):"},{"line_number":91,"context_line":"            return cls.is_shared_with_tenant(context, db_obj.id,"},{"line_number":92,"context_line":"                                             context.tenant_id)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    @classmethod"},{"line_number":95,"context_line":"    def get_object(cls, context, **kwargs):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_b56163d6","line":92,"updated":"2019-06-17 16:53:42.000000000","message":"Does there need to be a \u0027return False\u0027 here?  indented same as \u0027if\u0027","commit_id":"dc441c0d775b33a92d8fa7c4ffaa4a6c7ddd2125"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"f6e9552736504b149e6e822567dc21a6b47ddb7d","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        # tenant has access. Otherwise, we know tenant has no access"},{"line_number":90,"context_line":"        if db_obj.db_obj.get(\u0027rbac_entries\u0027):"},{"line_number":91,"context_line":"            return cls.is_shared_with_tenant(context, db_obj.id,"},{"line_number":92,"context_line":"                                             context.tenant_id)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    @classmethod"},{"line_number":95,"context_line":"    def get_object(cls, context, **kwargs):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_e65ef274","line":92,"in_reply_to":"9fb8cfa7_748d037a","updated":"2019-06-23 22:36:06.000000000","message":"Good point. Thanks","commit_id":"dc441c0d775b33a92d8fa7c4ffaa4a6c7ddd2125"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"579a03078d152f971a9292613fa8cb939dd87c13","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        # tenant has access. Otherwise, we know tenant has no access"},{"line_number":90,"context_line":"        if db_obj.db_obj.get(\u0027rbac_entries\u0027):"},{"line_number":91,"context_line":"            return cls.is_shared_with_tenant(context, db_obj.id,"},{"line_number":92,"context_line":"                                             context.tenant_id)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    @classmethod"},{"line_number":95,"context_line":"    def get_object(cls, context, **kwargs):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_748d037a","line":92,"in_reply_to":"9fb8cfa7_a0a34700","updated":"2019-06-19 15:30:46.000000000","message":"I was thinking more for the tests, since they are doing assertTrue/assertFalse which would fail?\n\n\u003e\u003e\u003e None \u003d\u003d False\nFalse","commit_id":"dc441c0d775b33a92d8fa7c4ffaa4a6c7ddd2125"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"7f7e084fb34093ac8583ee034110fc6c9ec7fdf2","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        # tenant has access. Otherwise, we know tenant has no access"},{"line_number":90,"context_line":"        if db_obj.db_obj.get(\u0027rbac_entries\u0027):"},{"line_number":91,"context_line":"            return cls.is_shared_with_tenant(context, db_obj.id,"},{"line_number":92,"context_line":"                                             context.tenant_id)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    @classmethod"},{"line_number":95,"context_line":"    def get_object(cls, context, **kwargs):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_a0a34700","line":92,"in_reply_to":"9fb8cfa7_b56163d6","updated":"2019-06-18 22:48:24.000000000","message":"No, if we don\u0027t go into the if in L90, we return None, which counts as False","commit_id":"dc441c0d775b33a92d8fa7c4ffaa4a6c7ddd2125"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"e90c7f77ee0da99f580a852c5e722b24632f8bad","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        # tenant has access. Otherwise, we know tenant has no access"},{"line_number":90,"context_line":"        if db_obj.db_obj.get(\u0027rbac_entries\u0027):"},{"line_number":91,"context_line":"            return cls.is_shared_with_tenant(context, db_obj.id,"},{"line_number":92,"context_line":"                                             context.tenant_id)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    @classmethod"},{"line_number":95,"context_line":"    def get_object(cls, context, **kwargs):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_3b88fac4","line":92,"in_reply_to":"9fb8cfa7_e65ef274","updated":"2019-07-04 23:11:43.000000000","message":"I think we might not need this. Let\u0027s see what the latest WIP revision returns from zuul","commit_id":"dc441c0d775b33a92d8fa7c4ffaa4a6c7ddd2125"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"55566b42564e39d733220f7f8be73a40d1832095","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        with cls.db_context_reader(admin_context):"},{"line_number":97,"context_line":"            obj \u003d super(RbacNeutronDbObjectMixin,"},{"line_number":98,"context_line":"                        cls).get_object(admin_context, **kwargs)"},{"line_number":99,"context_line":"            if (not obj or not cls.is_accessible(context, obj)):"},{"line_number":100,"context_line":"                return"},{"line_number":101,"context_line":"            return obj"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_71eaeaac","side":"PARENT","line":99,"updated":"2019-07-08 21:33:03.000000000","message":"nit: extra () here\n\nAnd just to be pedantic, this is a little more readable without the double-negative, and should have the same result:\n\nif obj and cls.is_accessible(context, obj):\n    return obj\n\nIt will just return None otherwise.","commit_id":"c6426b3fecd4443b6c06aeedbb07c54946eda5e0"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"f79871fd18afa6b055486f2fc7c48026e79391c4","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        with cls.db_context_reader(admin_context):"},{"line_number":97,"context_line":"            obj \u003d super(RbacNeutronDbObjectMixin,"},{"line_number":98,"context_line":"                        cls).get_object(admin_context, **kwargs)"},{"line_number":99,"context_line":"            if (not obj or not cls.is_accessible(context, obj)):"},{"line_number":100,"context_line":"                return"},{"line_number":101,"context_line":"            return obj"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_f11c9ac2","side":"PARENT","line":99,"in_reply_to":"7faddb67_71eaeaac","updated":"2019-07-08 21:38:59.000000000","message":"This is code that I removed","commit_id":"c6426b3fecd4443b6c06aeedbb07c54946eda5e0"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"cbc9970fe09bf3b6f14de4664b7ac53ad4409916","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        with cls.db_context_reader(admin_context):"},{"line_number":97,"context_line":"            obj \u003d super(RbacNeutronDbObjectMixin,"},{"line_number":98,"context_line":"                        cls).get_object(admin_context, **kwargs)"},{"line_number":99,"context_line":"            if (not obj or not cls.is_accessible(context, obj)):"},{"line_number":100,"context_line":"                return"},{"line_number":101,"context_line":"            return obj"},{"line_number":102,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_51ea4e75","side":"PARENT","line":99,"in_reply_to":"7faddb67_f11c9ac2","updated":"2019-07-08 21:43:04.000000000","message":"It was a long weekend.....","commit_id":"c6426b3fecd4443b6c06aeedbb07c54946eda5e0"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"55566b42564e39d733220f7f8be73a40d1832095","unresolved":false,"context_lines":[{"line_number":112,"context_line":"                                          validate_filters, **kwargs)"},{"line_number":113,"context_line":"            result \u003d []"},{"line_number":114,"context_line":"            for obj in objs:"},{"line_number":115,"context_line":"                if not cls.is_accessible(context, obj):"},{"line_number":116,"context_line":"                    continue"},{"line_number":117,"context_line":"                result.append(obj)"},{"line_number":118,"context_line":"            return result"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_31f55284","side":"PARENT","line":115,"updated":"2019-07-08 21:33:03.000000000","message":"I guess I have the same comment here:\n\nif cls.is_accessible(context, obj):\n    result.append(obj)\n\nNo need for the continue then.","commit_id":"c6426b3fecd4443b6c06aeedbb07c54946eda5e0"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"f79871fd18afa6b055486f2fc7c48026e79391c4","unresolved":false,"context_lines":[{"line_number":112,"context_line":"                                          validate_filters, **kwargs)"},{"line_number":113,"context_line":"            result \u003d []"},{"line_number":114,"context_line":"            for obj in objs:"},{"line_number":115,"context_line":"                if not cls.is_accessible(context, obj):"},{"line_number":116,"context_line":"                    continue"},{"line_number":117,"context_line":"                result.append(obj)"},{"line_number":118,"context_line":"            return result"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_b17ce2eb","side":"PARENT","line":115,"in_reply_to":"7faddb67_31f55284","updated":"2019-07-08 21:38:59.000000000","message":"Same response here","commit_id":"c6426b3fecd4443b6c06aeedbb07c54946eda5e0"}]}
