)]}'
{"octavia/db/repositories.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"9ac30d6b1a390275a5ab5e5eff430bf34eaf266c","unresolved":true,"context_lines":[{"line_number":1028,"context_line":"            query_options\u003dquery_options, **filters)"},{"line_number":1029,"context_line":""},{"line_number":1030,"context_line":"    def get_children_count(self, session, pool_id):"},{"line_number":1031,"context_line":"        pool \u003d session.query(self.model_class).filter("},{"line_number":1032,"context_line":"            self.model_class.provisioning_status !\u003d consts.DELETED)"},{"line_number":1033,"context_line":"        pool \u003d pool.first()"},{"line_number":1034,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1497a880_05d05de5","line":1031,"updated":"2021-04-30 16:39:53.000000000","message":"This is missing a pool_id filter. As it is, you will get a random, non-deleted, pool back.","commit_id":"39e7ef872c8e83a39860cfa8fd3b72e6db84134d"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"ae55accd741bc3390242331394af1e8e7ce6b5db","unresolved":true,"context_lines":[{"line_number":1028,"context_line":"            query_options\u003dquery_options, **filters)"},{"line_number":1029,"context_line":""},{"line_number":1030,"context_line":"    def get_children_count(self, session, pool_id):"},{"line_number":1031,"context_line":"        pool \u003d session.query(self.model_class).filter("},{"line_number":1032,"context_line":"            self.model_class.provisioning_status !\u003d consts.DELETED)"},{"line_number":1033,"context_line":"        pool \u003d pool.first()"},{"line_number":1034,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9b39692f_585ee3b6","line":1031,"in_reply_to":"1497a880_05d05de5","updated":"2021-04-30 16:43:17.000000000","message":"oops 😮","commit_id":"39e7ef872c8e83a39860cfa8fd3b72e6db84134d"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"1bb6bbe462dbb0914177ab99252277e52e04c4e6","unresolved":false,"context_lines":[{"line_number":1028,"context_line":"            query_options\u003dquery_options, **filters)"},{"line_number":1029,"context_line":""},{"line_number":1030,"context_line":"    def get_children_count(self, session, pool_id):"},{"line_number":1031,"context_line":"        pool \u003d session.query(self.model_class).filter("},{"line_number":1032,"context_line":"            self.model_class.provisioning_status !\u003d consts.DELETED)"},{"line_number":1033,"context_line":"        pool \u003d pool.first()"},{"line_number":1034,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"86f6bab5_d2fcce23","line":1031,"in_reply_to":"9b39692f_585ee3b6","updated":"2021-05-03 07:01:37.000000000","message":"Done","commit_id":"39e7ef872c8e83a39860cfa8fd3b72e6db84134d"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"9ac30d6b1a390275a5ab5e5eff430bf34eaf266c","unresolved":true,"context_lines":[{"line_number":1032,"context_line":"            self.model_class.provisioning_status !\u003d consts.DELETED)"},{"line_number":1033,"context_line":"        pool \u003d pool.first()"},{"line_number":1034,"context_line":""},{"line_number":1035,"context_line":"        hm_count \u003d 1 if pool.health_monitor else 0"},{"line_number":1036,"context_line":"        member_count \u003d len(pool.members)"},{"line_number":1037,"context_line":""},{"line_number":1038,"context_line":"        return (hm_count, member_count)"}],"source_content_type":"text/x-python","patch_set":1,"id":"b77680f2_8a65a603","line":1035,"updated":"2021-04-30 16:39:53.000000000","message":"If I\u0027m being nit-picky (or \"do it right\" hat maybe?) here, we could also avoid accessing the pool object all together.\nWe could simply do direct counts on the HM and member tables filtering by pool_id.\nTechnically that would save database query calls, RAM, and effectively use the database indexes.\n\nhm_count \u003d session.query(models.HealthMonitor).filter(models.HealthMonitor.pool_id \u003d pool_id, models.HealthMonitor.provisioning_status !\u003d consts.DELETED).count()\nmember_count \u003d session.query(models.Member).filter(models.Member.pool_id \u003d pool_id, models.Member.provisioning_status !\u003d consts.DELETED).count()\n\nIf we weren\u0027t using the ORM layer, you could do this one DB call, but I\u0027m not sure if you can do that in sqlalchemy easily.","commit_id":"39e7ef872c8e83a39860cfa8fd3b72e6db84134d"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"1bb6bbe462dbb0914177ab99252277e52e04c4e6","unresolved":true,"context_lines":[{"line_number":1032,"context_line":"            self.model_class.provisioning_status !\u003d consts.DELETED)"},{"line_number":1033,"context_line":"        pool \u003d pool.first()"},{"line_number":1034,"context_line":""},{"line_number":1035,"context_line":"        hm_count \u003d 1 if pool.health_monitor else 0"},{"line_number":1036,"context_line":"        member_count \u003d len(pool.members)"},{"line_number":1037,"context_line":""},{"line_number":1038,"context_line":"        return (hm_count, member_count)"}],"source_content_type":"text/x-python","patch_set":1,"id":"91d3bd65_10d0a2fe","line":1035,"in_reply_to":"033d714d_3d2afb93","updated":"2021-05-03 07:01:37.000000000","message":"Done,\nNow, sqlalchemy performs 2 requests instead of 3. In my dev environment, running a profiler showed that the function is 50% faster.\nThansk for the hints.","commit_id":"39e7ef872c8e83a39860cfa8fd3b72e6db84134d"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"ae55accd741bc3390242331394af1e8e7ce6b5db","unresolved":true,"context_lines":[{"line_number":1032,"context_line":"            self.model_class.provisioning_status !\u003d consts.DELETED)"},{"line_number":1033,"context_line":"        pool \u003d pool.first()"},{"line_number":1034,"context_line":""},{"line_number":1035,"context_line":"        hm_count \u003d 1 if pool.health_monitor else 0"},{"line_number":1036,"context_line":"        member_count \u003d len(pool.members)"},{"line_number":1037,"context_line":""},{"line_number":1038,"context_line":"        return (hm_count, member_count)"}],"source_content_type":"text/x-python","patch_set":1,"id":"033d714d_3d2afb93","line":1035,"in_reply_to":"b77680f2_8a65a603","updated":"2021-04-30 16:43:17.000000000","message":"I\u0027m going to try to reduce the number of queries","commit_id":"39e7ef872c8e83a39860cfa8fd3b72e6db84134d"}]}
