)]}'
{"octavia/api/v1/controllers/load_balancer_statistics.py":[{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"f21a1a43fe9edfbf4e6d2d2f102e057b88603b66","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    @wsme_pecan.wsexpose(stats_types.StatisticsResponse)"},{"line_number":31,"context_line":"    def get_all(self):"},{"line_number":32,"context_line":"        \"\"\"Gets a single listener\u0027s statistics details.\"\"\""},{"line_number":33,"context_line":"        # NOTE(sbalukoff): since a listener can only have one set of"},{"line_number":34,"context_line":"        # listener statistics we are using the get_all method to only get"},{"line_number":35,"context_line":"        # the single set of stats"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ac371cc_f7d04df8","line":32,"range":{"start_line":32,"start_character":25,"end_line":32,"end_character":35},"updated":"2016-08-17 12:46:57.000000000","message":"loadbalancer\u0027s","commit_id":"67bac10c8a219039d94bd5b18721c501bb1ecbb8"},{"author":{"_account_id":6116,"name":"li,chen","email":"shchenli@cn.ibm.com","username":"chen-li"},"change_message_id":"4d8c8bb91eed50d078a569b90a6281a1edf8285f","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    @wsme_pecan.wsexpose(stats_types.StatisticsResponse)"},{"line_number":31,"context_line":"    def get_all(self):"},{"line_number":32,"context_line":"        \"\"\"Gets a single listener\u0027s statistics details.\"\"\""},{"line_number":33,"context_line":"        # NOTE(sbalukoff): since a listener can only have one set of"},{"line_number":34,"context_line":"        # listener statistics we are using the get_all method to only get"},{"line_number":35,"context_line":"        # the single set of stats"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ac371cc_06e67314","line":32,"range":{"start_line":32,"start_character":25,"end_line":32,"end_character":35},"in_reply_to":"3ac371cc_f7d04df8","updated":"2016-08-18 01:47:03.000000000","message":"Thanks!\nDone!","commit_id":"67bac10c8a219039d94bd5b18721c501bb1ecbb8"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"f21a1a43fe9edfbf4e6d2d2f102e057b88603b66","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    @wsme_pecan.wsexpose(stats_types.StatisticsResponse)"},{"line_number":31,"context_line":"    def get_all(self):"},{"line_number":32,"context_line":"        \"\"\"Gets a single listener\u0027s statistics details.\"\"\""},{"line_number":33,"context_line":"        # NOTE(sbalukoff): since a listener can only have one set of"},{"line_number":34,"context_line":"        # listener statistics we are using the get_all method to only get"},{"line_number":35,"context_line":"        # the single set of stats"},{"line_number":36,"context_line":"        context \u003d pecan.request.context.get(\u0027octavia_context\u0027)"},{"line_number":37,"context_line":"        return self._convert_db_to_type("},{"line_number":38,"context_line":"            self._get_loadbalancer(context.session, self.loadbalancer_id),"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ac371cc_d739d1f3","line":35,"range":{"start_line":33,"start_character":8,"end_line":35,"end_character":33},"updated":"2016-08-17 12:46:57.000000000","message":"It seems that this note is not relevant here.","commit_id":"67bac10c8a219039d94bd5b18721c501bb1ecbb8"},{"author":{"_account_id":6116,"name":"li,chen","email":"shchenli@cn.ibm.com","username":"chen-li"},"change_message_id":"4d8c8bb91eed50d078a569b90a6281a1edf8285f","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    @wsme_pecan.wsexpose(stats_types.StatisticsResponse)"},{"line_number":31,"context_line":"    def get_all(self):"},{"line_number":32,"context_line":"        \"\"\"Gets a single listener\u0027s statistics details.\"\"\""},{"line_number":33,"context_line":"        # NOTE(sbalukoff): since a listener can only have one set of"},{"line_number":34,"context_line":"        # listener statistics we are using the get_all method to only get"},{"line_number":35,"context_line":"        # the single set of stats"},{"line_number":36,"context_line":"        context \u003d pecan.request.context.get(\u0027octavia_context\u0027)"},{"line_number":37,"context_line":"        return self._convert_db_to_type("},{"line_number":38,"context_line":"            self._get_loadbalancer(context.session, self.loadbalancer_id),"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ac371cc_c6b61bf8","line":35,"range":{"start_line":33,"start_character":8,"end_line":35,"end_character":33},"in_reply_to":"3ac371cc_d739d1f3","updated":"2016-08-18 01:47:03.000000000","message":"Done","commit_id":"67bac10c8a219039d94bd5b18721c501bb1ecbb8"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"6b9f178acb60fe6833e86e4855c129a0af32ce30","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        # the single set of stats"},{"line_number":36,"context_line":"        context \u003d pecan.request.context.get(\u0027octavia_context\u0027)"},{"line_number":37,"context_line":"        return self._convert_db_to_type("},{"line_number":38,"context_line":"            self._get_loadbalancer(context.session, self.loadbalancer_id),"},{"line_number":39,"context_line":"            stats_types.StatisticsResponse)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ac371cc_729c6b0f","line":38,"range":{"start_line":38,"start_character":12,"end_line":38,"end_character":74},"updated":"2016-08-17 12:48:27.000000000","message":"Calling a method and immediately passing its return value to another method makes debugging more difficult.","commit_id":"67bac10c8a219039d94bd5b18721c501bb1ecbb8"},{"author":{"_account_id":6116,"name":"li,chen","email":"shchenli@cn.ibm.com","username":"chen-li"},"change_message_id":"4d8c8bb91eed50d078a569b90a6281a1edf8285f","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        # the single set of stats"},{"line_number":36,"context_line":"        context \u003d pecan.request.context.get(\u0027octavia_context\u0027)"},{"line_number":37,"context_line":"        return self._convert_db_to_type("},{"line_number":38,"context_line":"            self._get_loadbalancer(context.session, self.loadbalancer_id),"},{"line_number":39,"context_line":"            stats_types.StatisticsResponse)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ac371cc_26d28f28","line":38,"range":{"start_line":38,"start_character":12,"end_line":38,"end_character":74},"in_reply_to":"3ac371cc_729c6b0f","updated":"2016-08-18 01:47:03.000000000","message":"Done","commit_id":"67bac10c8a219039d94bd5b18721c501bb1ecbb8"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"a1793c69f8e34f08df0668ef3ab0e3e5ea2b0d61","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        self.loadbalancer_id \u003d loadbalancer_id"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    @wsme_pecan.wsexpose(lb_types.LoadBalancerStatisticsResponse)"},{"line_number":31,"context_line":"    def get_all(self):"},{"line_number":32,"context_line":"        \"\"\"Gets a single loadbalancer\u0027s statistics details.\"\"\""},{"line_number":33,"context_line":"        context \u003d pecan.request.context.get(\u0027octavia_context\u0027)"},{"line_number":34,"context_line":"        data_stats \u003d self._get_loadbalancer_stats("}],"source_content_type":"text/x-python","patch_set":11,"id":"fa7ab95a_8ffdbd3d","line":31,"range":{"start_line":31,"start_character":8,"end_line":31,"end_character":15},"updated":"2016-08-31 21:23:57.000000000","message":"Definitely should not be the \"get_all\" if its getting a single loadbalancer\u0027s stats.  This would be used to get ALL loadbalancer\u0027s stats.","commit_id":"03f6f38af9f19a6010d2f98244cb46978d56c360"},{"author":{"_account_id":6116,"name":"li,chen","email":"shchenli@cn.ibm.com","username":"chen-li"},"change_message_id":"3e75e0d0d87f1ee7c52ec8241ffb951930649a01","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        self.loadbalancer_id \u003d loadbalancer_id"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    @wsme_pecan.wsexpose(lb_types.LoadBalancerStatisticsResponse)"},{"line_number":31,"context_line":"    def get_all(self):"},{"line_number":32,"context_line":"        \"\"\"Gets a single loadbalancer\u0027s statistics details.\"\"\""},{"line_number":33,"context_line":"        context \u003d pecan.request.context.get(\u0027octavia_context\u0027)"},{"line_number":34,"context_line":"        data_stats \u003d self._get_loadbalancer_stats("}],"source_content_type":"text/x-python","patch_set":11,"id":"fa7ab95a_97306809","line":31,"range":{"start_line":31,"start_character":8,"end_line":31,"end_character":15},"in_reply_to":"fa7ab95a_28c4a190","updated":"2016-09-02 03:38:30.000000000","message":"Done","commit_id":"03f6f38af9f19a6010d2f98244cb46978d56c360"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"1e84dd7232eadc16725cc1e7c648528a10c94bba","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        self.loadbalancer_id \u003d loadbalancer_id"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    @wsme_pecan.wsexpose(lb_types.LoadBalancerStatisticsResponse)"},{"line_number":31,"context_line":"    def get_all(self):"},{"line_number":32,"context_line":"        \"\"\"Gets a single loadbalancer\u0027s statistics details.\"\"\""},{"line_number":33,"context_line":"        context \u003d pecan.request.context.get(\u0027octavia_context\u0027)"},{"line_number":34,"context_line":"        data_stats \u003d self._get_loadbalancer_stats("}],"source_content_type":"text/x-python","patch_set":11,"id":"fa7ab95a_28c4a190","line":31,"range":{"start_line":31,"start_character":8,"end_line":31,"end_character":15},"in_reply_to":"fa7ab95a_8ffdbd3d","updated":"2016-09-01 01:43:59.000000000","message":"+1","commit_id":"03f6f38af9f19a6010d2f98244cb46978d56c360"}],"octavia/api/v1/types/load_balancer_statistics.py":[{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"a1793c69f8e34f08df0668ef3ab0e3e5ea2b0d61","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from octavia.api.v1.types import listener_statistics"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class LsStatistics(listener_statistics.ListenerStatistics):"},{"line_number":22,"context_line":"    id \u003d wtypes.wsattr(wtypes.UuidType())"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa7ab95a_6fb0798c","line":21,"range":{"start_line":21,"start_character":6,"end_line":21,"end_character":18},"updated":"2016-08-31 21:23:57.000000000","message":"I\u0027m not a fan of this name.  Also, is there a way you can just incorporate these things on the ListenerStatistics class that already exists (that you inherit from here)?","commit_id":"03f6f38af9f19a6010d2f98244cb46978d56c360"},{"author":{"_account_id":6116,"name":"li,chen","email":"shchenli@cn.ibm.com","username":"chen-li"},"change_message_id":"b322d0905af7a1cf7f2c9f93c614039b7436ad18","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from octavia.api.v1.types import listener_statistics"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class LsStatistics(listener_statistics.ListenerStatistics):"},{"line_number":22,"context_line":"    id \u003d wtypes.wsattr(wtypes.UuidType())"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa7ab95a_513510d9","line":21,"range":{"start_line":21,"start_character":6,"end_line":21,"end_character":18},"in_reply_to":"fa7ab95a_4872c5e4","updated":"2016-09-01 03:08:51.000000000","message":"But how to avoid the id to be listed in the response of listener_stats ?\n\nWe only want the id showed in the response of loadbalancer_stats.","commit_id":"03f6f38af9f19a6010d2f98244cb46978d56c360"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"1e84dd7232eadc16725cc1e7c648528a10c94bba","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from octavia.api.v1.types import listener_statistics"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class LsStatistics(listener_statistics.ListenerStatistics):"},{"line_number":22,"context_line":"    id \u003d wtypes.wsattr(wtypes.UuidType())"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa7ab95a_4872c5e4","line":21,"range":{"start_line":21,"start_character":6,"end_line":21,"end_character":18},"in_reply_to":"fa7ab95a_6fb0798c","updated":"2016-09-01 01:43:59.000000000","message":"Personally, I would prefer to see added attribute in listener_statistics.ListenerStatistics which will keep listener_id from the model and use it in this load balancer statistics type.","commit_id":"03f6f38af9f19a6010d2f98244cb46978d56c360"}],"octavia/common/data_models.py":[{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"1e84dd7232eadc16725cc1e7c648528a10c94bba","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        return stats"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"class LoadBalancerStatistics(BaseDataModel):"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    def __init__(self, bytes_in\u003d0, bytes_out\u003d0, active_connections\u003d0,"},{"line_number":160,"context_line":"                 total_connections\u003d0, request_errors\u003d0, listeners\u003dNone):"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa7ab95a_680309b9","line":157,"updated":"2016-09-01 01:43:59.000000000","message":"Do we need that class? It should be the result of addition all listener stats for specified load balancer.","commit_id":"03f6f38af9f19a6010d2f98244cb46978d56c360"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"b406a30d5a5a3d3ff10ef99869fc313f40a712f5","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        return stats"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"class LoadBalancerStatistics(BaseDataModel):"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    def __init__(self, bytes_in\u003d0, bytes_out\u003d0, active_connections\u003d0,"},{"line_number":160,"context_line":"                 total_connections\u003d0, request_errors\u003d0, listeners\u003dNone):"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa7ab95a_af407ea6","line":157,"in_reply_to":"fa7ab95a_542173fb","updated":"2016-09-01 19:29:58.000000000","message":"A, ok yeah I didn\u0027t saw that.","commit_id":"03f6f38af9f19a6010d2f98244cb46978d56c360"},{"author":{"_account_id":6116,"name":"li,chen","email":"shchenli@cn.ibm.com","username":"chen-li"},"change_message_id":"b322d0905af7a1cf7f2c9f93c614039b7436ad18","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        return stats"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"class LoadBalancerStatistics(BaseDataModel):"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    def __init__(self, bytes_in\u003d0, bytes_out\u003d0, active_connections\u003d0,"},{"line_number":160,"context_line":"                 total_connections\u003d0, request_errors\u003d0, listeners\u003dNone):"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa7ab95a_d14f6068","line":157,"in_reply_to":"fa7ab95a_680309b9","updated":"2016-09-01 03:08:51.000000000","message":"And along with all listener_stats data.\nWithout this class, how to convert things to the API response ?","commit_id":"03f6f38af9f19a6010d2f98244cb46978d56c360"},{"author":{"_account_id":11685,"name":"Stephen Balukoff","email":"stephen@balukoff.com","username":"sbalukoff"},"change_message_id":"0172d41a75773c8d2aa43980fb0e6bd283761b54","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        return stats"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"class LoadBalancerStatistics(BaseDataModel):"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    def __init__(self, bytes_in\u003d0, bytes_out\u003d0, active_connections\u003d0,"},{"line_number":160,"context_line":"                 total_connections\u003d0, request_errors\u003d0, listeners\u003dNone):"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa7ab95a_542173fb","line":157,"in_reply_to":"fa7ab95a_d14f6068","updated":"2016-09-01 09:08:32.000000000","message":"Yeah, I think we need this class.","commit_id":"03f6f38af9f19a6010d2f98244cb46978d56c360"}],"octavia/common/stats.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"4ea70e5f6752fc031585776033efba88c9f04eae","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        self.repo_listener_stats \u003d repo.ListenerStatisticsRepository()"},{"line_number":32,"context_line":"        self.repo_loadbalancer \u003d repo.LoadBalancerRepository()"},{"line_number":33,"context_line":"        self.repo_amphora \u003d repo.AmphoraRepository()"},{"line_number":34,"context_line":"        self.repo_listener \u003d repo.ListenerRepository()"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def _get_listener(self, session, listener_id):"},{"line_number":37,"context_line":"        \"\"\"Gets the current listener statistics object from the database.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"1ac06dbe_3f576527","line":34,"updated":"2016-08-23 03:11:55.000000000","message":"Why is this needed here?","commit_id":"82589c6f98cd01618f378d7e8f59566430f5e2a2"},{"author":{"_account_id":6116,"name":"li,chen","email":"shchenli@cn.ibm.com","username":"chen-li"},"change_message_id":"9d2a15eb3c6c8d6f92de462f776787c0b3119ab9","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        self.repo_listener_stats \u003d repo.ListenerStatisticsRepository()"},{"line_number":32,"context_line":"        self.repo_loadbalancer \u003d repo.LoadBalancerRepository()"},{"line_number":33,"context_line":"        self.repo_amphora \u003d repo.AmphoraRepository()"},{"line_number":34,"context_line":"        self.repo_listener \u003d repo.ListenerRepository()"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def _get_listener(self, session, listener_id):"},{"line_number":37,"context_line":"        \"\"\"Gets the current listener statistics object from the database.\"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"1ac06dbe_bab40382","line":34,"in_reply_to":"1ac06dbe_3f576527","updated":"2016-08-23 03:30:39.000000000","message":"It is used in\n\nhttps://review.openstack.org/#/c/356268/7/octavia/controller/healthmanager/update_db.py\n\nGet the loadbalancer from listener when send loadbalancer stats by event stream.","commit_id":"82589c6f98cd01618f378d7e8f59566430f5e2a2"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"1e84dd7232eadc16725cc1e7c648528a10c94bba","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        statistics \u003d data_models.ListenerStatistics(listener_id\u003dlistener_id)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        for db_l in db_ls:"},{"line_number":49,"context_line":"            statistics.bytes_in +\u003d db_l.bytes_in"},{"line_number":50,"context_line":"            statistics.bytes_out +\u003d db_l.bytes_out"},{"line_number":51,"context_line":"            statistics.request_errors +\u003d db_l.request_errors"},{"line_number":52,"context_line":"            statistics.total_connections +\u003d db_l.total_connections"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"            amp \u003d self.repo_amphora.get(session, id\u003ddb_l.amphora_id)"},{"line_number":55,"context_line":"            if amp and amp.status \u003d\u003d constants.AMPHORA_ALLOCATED:"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa7ab95a_48cc8561","line":52,"range":{"start_line":49,"start_character":12,"end_line":52,"end_character":66},"updated":"2016-09-01 01:43:59.000000000","message":"This code also we can replace with __add__ and __iadd__","commit_id":"03f6f38af9f19a6010d2f98244cb46978d56c360"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"a1793c69f8e34f08df0668ef3ab0e3e5ea2b0d61","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                statistics.active_connections +\u003d db_l.active_connections"},{"line_number":57,"context_line":"        return statistics"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def _get_loadbalancer_stats(self, session, loadbalancer_id):"},{"line_number":60,"context_line":"        statistics \u003d data_models.LoadBalancerStatistics()"},{"line_number":61,"context_line":"        lb_db \u003d self.repo_loadbalancer.get(session, id\u003dloadbalancer_id)"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"fa7ab95a_ef30090a","line":59,"range":{"start_line":59,"start_character":8,"end_line":59,"end_character":31},"updated":"2016-08-31 21:23:57.000000000","message":"Similar comment on previous review, I\u0027m not sure this is actually supposed to be a private method if you\u0027re using a mixin.","commit_id":"03f6f38af9f19a6010d2f98244cb46978d56c360"},{"author":{"_account_id":6116,"name":"li,chen","email":"shchenli@cn.ibm.com","username":"chen-li"},"change_message_id":"429428694683720bde94033a0a974cc0abe79535","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                statistics.active_connections +\u003d db_l.active_connections"},{"line_number":57,"context_line":"        return statistics"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def _get_loadbalancer_stats(self, session, loadbalancer_id):"},{"line_number":60,"context_line":"        statistics \u003d data_models.LoadBalancerStatistics()"},{"line_number":61,"context_line":"        lb_db \u003d self.repo_loadbalancer.get(session, id\u003dloadbalancer_id)"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"fa7ab95a_4807251d","line":59,"range":{"start_line":59,"start_character":8,"end_line":59,"end_character":31},"in_reply_to":"fa7ab95a_689f895f","updated":"2016-09-01 01:48:50.000000000","message":"previous method is created by me too.\nWill update this later.","commit_id":"03f6f38af9f19a6010d2f98244cb46978d56c360"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"1e84dd7232eadc16725cc1e7c648528a10c94bba","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                statistics.active_connections +\u003d db_l.active_connections"},{"line_number":57,"context_line":"        return statistics"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def _get_loadbalancer_stats(self, session, loadbalancer_id):"},{"line_number":60,"context_line":"        statistics \u003d data_models.LoadBalancerStatistics()"},{"line_number":61,"context_line":"        lb_db \u003d self.repo_loadbalancer.get(session, id\u003dloadbalancer_id)"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"fa7ab95a_689f895f","line":59,"range":{"start_line":59,"start_character":8,"end_line":59,"end_character":31},"in_reply_to":"fa7ab95a_ef30090a","updated":"2016-09-01 01:43:59.000000000","message":"She\u0027s just keeping the standard from previous method - in my opinion is ok.","commit_id":"03f6f38af9f19a6010d2f98244cb46978d56c360"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"1e84dd7232eadc16725cc1e7c648528a10c94bba","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        for listener in lb_db.listeners:"},{"line_number":64,"context_line":"            data \u003d self._get_listener_stats(session, listener.id)"},{"line_number":65,"context_line":"            statistics.bytes_in +\u003d data.bytes_in"},{"line_number":66,"context_line":"            statistics.bytes_out +\u003d data.bytes_out"},{"line_number":67,"context_line":"            statistics.request_errors +\u003d data.request_errors"},{"line_number":68,"context_line":"            statistics.active_connections +\u003d data.active_connections"},{"line_number":69,"context_line":"            statistics.total_connections +\u003d data.total_connections"},{"line_number":70,"context_line":"            statistics.listeners.append(data)"},{"line_number":71,"context_line":"        return statistics"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa7ab95a_28ce6183","line":69,"range":{"start_line":65,"start_character":12,"end_line":69,"end_character":66},"updated":"2016-09-01 01:43:59.000000000","message":"I would prefer to see that code as implementation of __add__ and __iadd__","commit_id":"03f6f38af9f19a6010d2f98244cb46978d56c360"},{"author":{"_account_id":11685,"name":"Stephen Balukoff","email":"stephen@balukoff.com","username":"sbalukoff"},"change_message_id":"0172d41a75773c8d2aa43980fb0e6bd283761b54","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        for listener in lb_db.listeners:"},{"line_number":64,"context_line":"            data \u003d self._get_listener_stats(session, listener.id)"},{"line_number":65,"context_line":"            statistics.bytes_in +\u003d data.bytes_in"},{"line_number":66,"context_line":"            statistics.bytes_out +\u003d data.bytes_out"},{"line_number":67,"context_line":"            statistics.request_errors +\u003d data.request_errors"},{"line_number":68,"context_line":"            statistics.active_connections +\u003d data.active_connections"},{"line_number":69,"context_line":"            statistics.total_connections +\u003d data.total_connections"},{"line_number":70,"context_line":"            statistics.listeners.append(data)"},{"line_number":71,"context_line":"        return statistics"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa7ab95a_b6572401","line":69,"range":{"start_line":65,"start_character":12,"end_line":69,"end_character":66},"in_reply_to":"fa7ab95a_28ce6183","updated":"2016-09-01 09:08:32.000000000","message":"Why? It\u0027s clear what\u0027s going on here. Is there some advantage to __add__ and __iadd__ that I don\u0027t know about?","commit_id":"03f6f38af9f19a6010d2f98244cb46978d56c360"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"b406a30d5a5a3d3ff10ef99869fc313f40a712f5","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        for listener in lb_db.listeners:"},{"line_number":64,"context_line":"            data \u003d self._get_listener_stats(session, listener.id)"},{"line_number":65,"context_line":"            statistics.bytes_in +\u003d data.bytes_in"},{"line_number":66,"context_line":"            statistics.bytes_out +\u003d data.bytes_out"},{"line_number":67,"context_line":"            statistics.request_errors +\u003d data.request_errors"},{"line_number":68,"context_line":"            statistics.active_connections +\u003d data.active_connections"},{"line_number":69,"context_line":"            statistics.total_connections +\u003d data.total_connections"},{"line_number":70,"context_line":"            statistics.listeners.append(data)"},{"line_number":71,"context_line":"        return statistics"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa7ab95a_ef1d26bf","line":69,"range":{"start_line":65,"start_character":12,"end_line":69,"end_character":66},"in_reply_to":"fa7ab95a_b6572401","updated":"2016-09-01 19:29:58.000000000","message":"Resulting code which will looks like this:\n\nfor listener in lb_db.listeners:\n            data \u003d self._get_listener_stats(session, listener.id)\n            statistics +\u003d data","commit_id":"03f6f38af9f19a6010d2f98244cb46978d56c360"},{"author":{"_account_id":6116,"name":"li,chen","email":"shchenli@cn.ibm.com","username":"chen-li"},"change_message_id":"3e75e0d0d87f1ee7c52ec8241ffb951930649a01","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        for listener in lb_db.listeners:"},{"line_number":64,"context_line":"            data \u003d self._get_listener_stats(session, listener.id)"},{"line_number":65,"context_line":"            statistics.bytes_in +\u003d data.bytes_in"},{"line_number":66,"context_line":"            statistics.bytes_out +\u003d data.bytes_out"},{"line_number":67,"context_line":"            statistics.request_errors +\u003d data.request_errors"},{"line_number":68,"context_line":"            statistics.active_connections +\u003d data.active_connections"},{"line_number":69,"context_line":"            statistics.total_connections +\u003d data.total_connections"},{"line_number":70,"context_line":"            statistics.listeners.append(data)"},{"line_number":71,"context_line":"        return statistics"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa7ab95a_0adf8a69","line":69,"range":{"start_line":65,"start_character":12,"end_line":69,"end_character":66},"in_reply_to":"fa7ab95a_ef1d26bf","updated":"2016-09-02 03:38:30.000000000","message":"statistics and data are actually different class, can we do this ?","commit_id":"03f6f38af9f19a6010d2f98244cb46978d56c360"}],"octavia/tests/unit/controller/healthmanager/test_update_db.py":[{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"07a912dc0525fcfb79789d4cb932e765ac7f02a2","unresolved":false,"context_lines":[{"line_number":481,"context_line":"            \"total_connections\": self.total_conns,"},{"line_number":482,"context_line":"            \"bytes_in\": self.bytes_in,"},{"line_number":483,"context_line":"            \"bytes_out\": self.bytes_out}"},{"line_number":484,"context_line":"        self.sm.get_listener_stats \u003d mock.MagicMock("},{"line_number":485,"context_line":"            return_value\u003dlistener_stats)"},{"line_number":486,"context_line":""},{"line_number":487,"context_line":"        self.loadbalancer_repo \u003d mock.MagicMock()"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa7ab95a_52531917","line":484,"range":{"start_line":484,"start_character":42,"end_line":484,"end_character":51},"updated":"2016-09-01 19:46:39.000000000","message":"Mocks mocks, everywhere mocks - http://www.voidspace.org.uk/python/mock/mock.html#mock.Mock","commit_id":"4a06c75a49246cf73d03d09b1a6b4091c1c1a6b7"},{"author":{"_account_id":14591,"name":"Lubosz Kosnik (diltram)","email":"lubosz.kosnik@intel.com","username":"diltram"},"change_message_id":"a7835da27b2c84cb5e6a152fa49b66e70b9054b9","unresolved":false,"context_lines":[{"line_number":471,"context_line":"            total_connections\u003drandom.randrange(1000000000),"},{"line_number":472,"context_line":"            request_errors\u003drandom.randrange(1000000000))"},{"line_number":473,"context_line":""},{"line_number":474,"context_line":"        self.sm.get_listener_stats \u003d mock.MagicMock()"},{"line_number":475,"context_line":"        self.sm.get_listener_stats.return_value \u003d self.listener_stats"},{"line_number":476,"context_line":""},{"line_number":477,"context_line":"        self.loadbalancer_id \u003d uuidutils.generate_uuid()"},{"line_number":478,"context_line":"        self.amphora_id \u003d uuidutils.generate_uuid()"},{"line_number":479,"context_line":"        self.listener_id \u003d uuidutils.generate_uuid()"},{"line_number":480,"context_line":""},{"line_number":481,"context_line":"        self.listener \u003d db_models.Listener("},{"line_number":482,"context_line":"            load_balancer_id\u003dself.loadbalancer_id)"},{"line_number":483,"context_line":""},{"line_number":484,"context_line":"        self.listener_repo \u003d mock.MagicMock()"},{"line_number":485,"context_line":"        self.sm.repo_listener \u003d self.listener_repo"},{"line_number":486,"context_line":"        self.sm.repo_listener.get.return_value \u003d self.listener"},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"        self.loadbalancer_repo \u003d mock.MagicMock()"},{"line_number":489,"context_line":"        self.sm.repo_loadbalancer \u003d self.loadbalancer_repo"},{"line_number":490,"context_line":""},{"line_number":491,"context_line":"        self.loadbalancer \u003d db_models.LoadBalancer("},{"line_number":492,"context_line":"            id\u003dself.loadbalancer_id,"},{"line_number":493,"context_line":"            listeners\u003d[self.listener])"},{"line_number":494,"context_line":"        self.loadbalancer_repo.get.return_value \u003d self.loadbalancer"},{"line_number":495,"context_line":""},{"line_number":496,"context_line":"    @mock.patch(\u0027octavia.db.api.get_session\u0027)"},{"line_number":497,"context_line":"    def test_update_stats(self, session):"}],"source_content_type":"text/x-python","patch_set":15,"id":"da7fb54a_ea82fbc7","line":494,"range":{"start_line":474,"start_character":8,"end_line":494,"end_character":67},"updated":"2016-09-02 16:10:44.000000000","message":"Still the same.","commit_id":"0aab927c2f049c6394c10320587edfe3f7995eed"}]}
