)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":28022,"name":"Bharat Kunwar","email":"brtknr@bath.edu","username":"brtknr"},"change_message_id":"d003f342bf484d176eda1d54c89b84ed384e3db0","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Move data_points to repository class"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"data_points_class can be now declared as a List of Dictionary. The"},{"line_number":10,"context_line":"latter is used when writing measurements per tenant. This refactoring"},{"line_number":11,"context_line":"avoids creating the dictionary and then chaining again its values in"},{"line_number":12,"context_line":"case of ElasticSearch and Cassandra databases or if db_per_tenant option"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3fa7e38b_3216c9f3","line":9,"range":{"start_line":9,"start_character":48,"end_line":9,"end_character":50},"updated":"2019-10-21 13:06:32.000000000","message":"or a","commit_id":"7b85437072d0234014f3661684e9784258560bc1"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"be40a2231ad70f0b684eaa64fd61a0b7c7b0414c","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Move data_points to repository class"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"data_points_class can be now declared as a List of Dictionary. The"},{"line_number":10,"context_line":"latter is used when writing measurements per tenant. This refactoring"},{"line_number":11,"context_line":"avoids creating the dictionary and then chaining again its values in"},{"line_number":12,"context_line":"case of ElasticSearch and Cassandra databases or if db_per_tenant option"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3fa7e38b_b2b879e5","line":9,"range":{"start_line":9,"start_character":48,"end_line":9,"end_character":50},"in_reply_to":"3fa7e38b_3216c9f3","updated":"2019-10-21 13:08:59.000000000","message":"Done","commit_id":"7b85437072d0234014f3661684e9784258560bc1"}],"monasca_persister/repositories/abstract_repository.py":[{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"2ca4985ccde460690cc5853a7329e97a78cdd6b8","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        pass"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"class DataPointsAsList(list):"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def append(self, key, value):"},{"line_number":37,"context_line":"        super(DataPointsAsList, self).append(value)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_52db1a20","line":34,"updated":"2019-10-23 14:38:32.000000000","message":"nit: should these two classes live outside of abstract_repository.py?","commit_id":"714c825253fb33a32a27ac74a2068410e2b04308"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"4adf60af5d5ad2d68cd5f02a449abd956df8cb2f","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        pass"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"class DataPointsAsList(list):"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def append(self, key, value):"},{"line_number":37,"context_line":"        super(DataPointsAsList, self).append(value)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_e5e030fb","line":34,"in_reply_to":"3fa7e38b_52db1a20","updated":"2019-10-24 11:39:20.000000000","message":"Done","commit_id":"714c825253fb33a32a27ac74a2068410e2b04308"}],"monasca_persister/repositories/data_points.py":[{"author":{"_account_id":21922,"name":"Dobroslaw Zybort","email":"dobroslaw.zybort@ts.fujitsu.com","username":"dobrolaw.zybort"},"change_message_id":"44756777c23fb9b3cdfc9296de5b7df67aa7fe89","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#  Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"#  not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"#  a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_b929598a","line":1,"updated":"2019-11-06 15:29:46.000000000","message":"SUSE header?","commit_id":"e883b5bcda1a2e783f3789d108ead17a8b4df666"},{"author":{"_account_id":28022,"name":"Bharat Kunwar","email":"brtknr@bath.edu","username":"brtknr"},"change_message_id":"09ac52da77f70ed85e7b7e305fe485d08f53a908","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#  Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"#  not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"#  a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_396329e0","line":1,"in_reply_to":"3fa7e38b_b929598a","updated":"2019-11-06 15:33:59.000000000","message":"This is adapted from here which we also contributed to: https://review.opendev.org/#/c/689513/5/monasca_persister/repositories/persister.py","commit_id":"e883b5bcda1a2e783f3789d108ead17a8b4df666"}],"monasca_persister/repositories/persister.py":[{"author":{"_account_id":28022,"name":"Bharat Kunwar","email":"brtknr@bath.edu","username":"brtknr"},"change_message_id":"1804638dab2d667cadd6d37446fd645b611a0e03","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        self._kafka_topic \u003d kafka_conf.topic"},{"line_number":34,"context_line":"        self._batch_size \u003d kafka_conf.batch_size"},{"line_number":35,"context_line":"        self.repository \u003d repository()"},{"line_number":36,"context_line":"        self._data_points \u003d self.repository.data_points_class()"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def _flush(self):"},{"line_number":39,"context_line":"        if not self._data_points:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_8fe43ae2","line":36,"range":{"start_line":36,"start_character":0,"end_line":36,"end_character":63},"updated":"2019-10-21 12:14:34.000000000","message":"Nice!","commit_id":"ada4835692958a5581803c276df3a39e21e68824"},{"author":{"_account_id":28022,"name":"Bharat Kunwar","email":"brtknr@bath.edu","username":"brtknr"},"change_message_id":"1804638dab2d667cadd6d37446fd645b611a0e03","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            self.repository.write_batch(self._data_points)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"            LOG.info(\"Processed {} messages from topic \u0027{}\u0027\".format("},{"line_number":46,"context_line":"                self._data_points.get_counter(), self._kafka_topic))"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"            self._data_points.clear()"},{"line_number":49,"context_line":"            self._consumer.commit()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_2f998678","line":46,"range":{"start_line":46,"start_character":34,"end_line":46,"end_character":45},"updated":"2019-10-21 12:14:34.000000000","message":"maybe change to \"get_count\" or \"count\" as \"get_counter\" is not very readable... or maybe better to implement __len__ for data points class.","commit_id":"ada4835692958a5581803c276df3a39e21e68824"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"be40a2231ad70f0b684eaa64fd61a0b7c7b0414c","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            self.repository.write_batch(self._data_points)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"            LOG.info(\"Processed {} messages from topic \u0027{}\u0027\".format("},{"line_number":46,"context_line":"                self._data_points.get_counter(), self._kafka_topic))"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"            self._data_points.clear()"},{"line_number":49,"context_line":"            self._consumer.commit()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_92da1d49","line":46,"range":{"start_line":46,"start_character":34,"end_line":46,"end_character":45},"in_reply_to":"3fa7e38b_2f998678","updated":"2019-10-21 13:08:59.000000000","message":"Done","commit_id":"ada4835692958a5581803c276df3a39e21e68824"},{"author":{"_account_id":28022,"name":"Bharat Kunwar","email":"brtknr@bath.edu","username":"brtknr"},"change_message_id":"1804638dab2d667cadd6d37446fd645b611a0e03","unresolved":false,"context_lines":[{"line_number":74,"context_line":"                    LOG.exception(\u0027Error processing message. Message is \u0027"},{"line_number":75,"context_line":"                                  \u0027being dropped. {}\u0027.format(message))"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"                if self._data_points.get_counter() \u003e\u003d self._batch_size:"},{"line_number":78,"context_line":"                    self._flush()"},{"line_number":79,"context_line":"        except Exception:"},{"line_number":80,"context_line":"            LOG.exception("}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_afe9f6b7","line":77,"range":{"start_line":77,"start_character":37,"end_line":77,"end_character":48},"updated":"2019-10-21 12:14:34.000000000","message":"same","commit_id":"ada4835692958a5581803c276df3a39e21e68824"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"be40a2231ad70f0b684eaa64fd61a0b7c7b0414c","unresolved":false,"context_lines":[{"line_number":74,"context_line":"                    LOG.exception(\u0027Error processing message. Message is \u0027"},{"line_number":75,"context_line":"                                  \u0027being dropped. {}\u0027.format(message))"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"                if self._data_points.get_counter() \u003e\u003d self._batch_size:"},{"line_number":78,"context_line":"                    self._flush()"},{"line_number":79,"context_line":"        except Exception:"},{"line_number":80,"context_line":"            LOG.exception("}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_b2df1939","line":77,"range":{"start_line":77,"start_character":37,"end_line":77,"end_character":48},"in_reply_to":"3fa7e38b_afe9f6b7","updated":"2019-10-21 13:08:59.000000000","message":"Done","commit_id":"ada4835692958a5581803c276df3a39e21e68824"}],"monasca_persister/repositories/utils.py":[{"author":{"_account_id":21922,"name":"Dobroslaw Zybort","email":"dobroslaw.zybort@ts.fujitsu.com","username":"dobrolaw.zybort"},"change_message_id":"44756777c23fb9b3cdfc9296de5b7df67aa7fe89","unresolved":false,"context_lines":[{"line_number":104,"context_line":"    project_id \u003d decoded_message[\u0027meta\u0027][\u0027project_id\u0027]"},{"line_number":105,"context_line":"    dimensions \u003d decoded_message[\u0027event\u0027][\u0027dimensions\u0027]"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    return (project_id, timestamp, event_type, payload, dimensions), project_id"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_59538517","line":107,"range":{"start_line":107,"start_character":66,"end_line":107,"end_character":79},"updated":"2019-11-06 15:29:46.000000000","message":"why this change if you always discard this value?","commit_id":"e883b5bcda1a2e783f3789d108ead17a8b4df666"},{"author":{"_account_id":28022,"name":"Bharat Kunwar","email":"brtknr@bath.edu","username":"brtknr"},"change_message_id":"09ac52da77f70ed85e7b7e305fe485d08f53a908","unresolved":false,"context_lines":[{"line_number":104,"context_line":"    project_id \u003d decoded_message[\u0027meta\u0027][\u0027project_id\u0027]"},{"line_number":105,"context_line":"    dimensions \u003d decoded_message[\u0027event\u0027][\u0027dimensions\u0027]"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    return (project_id, timestamp, event_type, payload, dimensions), project_id"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_99725db0","line":107,"range":{"start_line":107,"start_character":66,"end_line":107,"end_character":79},"in_reply_to":"3fa7e38b_59538517","updated":"2019-11-06 15:33:59.000000000","message":"Only discarded for the test, it would be used by the persister.","commit_id":"e883b5bcda1a2e783f3789d108ead17a8b4df666"}]}
