)]}'
{"gnocchi/indexer/sqlalchemy.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"a401188df96ed7d47659d190838d553290d833dc","unresolved":false,"context_lines":[{"line_number":250,"context_line":"        with self.facade.independent_reader() as session:"},{"line_number":251,"context_line":"            q \u003d session.query(Metric).filter("},{"line_number":252,"context_line":"                Metric.status \u003d\u003d status).order_by(Metric.id)"},{"line_number":253,"context_line":"            if user_id is not None:"},{"line_number":254,"context_line":"                q \u003d q.filter(Metric.created_by_user_id \u003d\u003d user_id)"},{"line_number":255,"context_line":"            if project_id is not None:"},{"line_number":256,"context_line":"                q \u003d q.filter(Metric.created_by_project_id \u003d\u003d project_id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_7802a2b5","side":"PARENT","line":253,"updated":"2016-02-01 22:45:43.000000000","message":"we just never used user_id and project_id filters?","commit_id":"6ec0414e3468bcf6ba18a6c2e11d76f9fc571742"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"851a80c1bc28195ab0b40d26fc8ade3bcf9780da","unresolved":false,"context_lines":[{"line_number":250,"context_line":"        with self.facade.independent_reader() as session:"},{"line_number":251,"context_line":"            q \u003d session.query(Metric).filter("},{"line_number":252,"context_line":"                Metric.status \u003d\u003d status).order_by(Metric.id)"},{"line_number":253,"context_line":"            if user_id is not None:"},{"line_number":254,"context_line":"                q \u003d q.filter(Metric.created_by_user_id \u003d\u003d user_id)"},{"line_number":255,"context_line":"            if project_id is not None:"},{"line_number":256,"context_line":"                q \u003d q.filter(Metric.created_by_project_id \u003d\u003d project_id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_c642c50e","side":"PARENT","line":253,"in_reply_to":"7a5de9d1_7802a2b5","updated":"2016-02-02 07:57:27.000000000","message":"Even if we use them, they are handled as part of kwargs :)","commit_id":"6ec0414e3468bcf6ba18a6c2e11d76f9fc571742"}],"gnocchi/rest/__init__.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"11141ca50ba2ce0b4a80837c51236cd12bc14718","unresolved":false,"context_lines":[{"line_number":676,"context_line":"        else:"},{"line_number":677,"context_line":"            user_id \u003d kwargs.get(\u0027user_id\u0027)"},{"line_number":678,"context_line":"            project_id \u003d kwargs.get(\u0027project_id\u0027)"},{"line_number":679,"context_line":"        return pecan.request.indexer.list_metrics("},{"line_number":680,"context_line":"            user_id, project_id)"},{"line_number":681,"context_line":""},{"line_number":682,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_e13ebdd9","line":679,"updated":"2016-02-02 12:44:20.000000000","message":"this will fail.","commit_id":"57ff905335f77d75d1e49885c92d666faecfd529"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"c339bf7e8055236fdcb1a05ae8bcaf9c3b24ba4e","unresolved":false,"context_lines":[{"line_number":676,"context_line":"        else:"},{"line_number":677,"context_line":"            user_id \u003d kwargs.get(\u0027user_id\u0027)"},{"line_number":678,"context_line":"            project_id \u003d kwargs.get(\u0027project_id\u0027)"},{"line_number":679,"context_line":"        return pecan.request.indexer.list_metrics("},{"line_number":680,"context_line":"            user_id, project_id)"},{"line_number":681,"context_line":""},{"line_number":682,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_bc10ee5a","line":679,"in_reply_to":"7a5de9d1_e13ebdd9","updated":"2016-02-02 13:01:30.000000000","message":"Excellent catch. The test did not spot it as the call is valid, but misinterpreted…","commit_id":"57ff905335f77d75d1e49885c92d666faecfd529"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"faff5bf2a86580364bd44e69ba7c011ef2b8d270","unresolved":false,"context_lines":[{"line_number":677,"context_line":"            user_id \u003d kwargs.get(\u0027user_id\u0027)"},{"line_number":678,"context_line":"            project_id \u003d kwargs.get(\u0027project_id\u0027)"},{"line_number":679,"context_line":"        return pecan.request.indexer.list_metrics("},{"line_number":680,"context_line":"            user_id\u003duser_id, project_id\u003dproject_id)"},{"line_number":681,"context_line":""},{"line_number":682,"context_line":""},{"line_number":683,"context_line":"_MetricsSchema \u003d voluptuous.Schema({"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a5de9d1_145f9676","line":680,"updated":"2016-02-02 13:50:37.000000000","message":"user_id and project_id aren\u0027t attributes of Metric. they need to be remapped to created_by_*","commit_id":"6714b4d81be200492ef8b352a19b838799785923"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"acc2e22c5654bd8f2a0e0b8d31cfc4c0401d4e33","unresolved":false,"context_lines":[{"line_number":1279,"context_line":"    def post(self, start\u003dNone, stop\u003dNone, aggregation\u003d\u0027mean\u0027,"},{"line_number":1280,"context_line":"             granularity\u003dNone, needed_overlap\u003d100.0,"},{"line_number":1281,"context_line":"             groupby\u003dNone):"},{"line_number":1282,"context_line":"        # First, set groupby in the right format: a sorted list of unique"},{"line_number":1283,"context_line":"        # strings."},{"line_number":1284,"context_line":"        if groupby:"},{"line_number":1285,"context_line":"            if not isinstance(groupby, list):"}],"source_content_type":"text/x-python","patch_set":19,"id":"dae33548_5443ce6b","line":1282,"updated":"2016-02-18 14:29:03.000000000","message":"what\u0027s all this for?","commit_id":"223d5f958f01c4e24a8de47728881083535dd5fb"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"d604125fbc5234f410aac9aec877dd8ce352adab","unresolved":false,"context_lines":[{"line_number":1279,"context_line":"    def post(self, start\u003dNone, stop\u003dNone, aggregation\u003d\u0027mean\u0027,"},{"line_number":1280,"context_line":"             granularity\u003dNone, needed_overlap\u003d100.0,"},{"line_number":1281,"context_line":"             groupby\u003dNone):"},{"line_number":1282,"context_line":"        # First, set groupby in the right format: a sorted list of unique"},{"line_number":1283,"context_line":"        # strings."},{"line_number":1284,"context_line":"        if groupby:"},{"line_number":1285,"context_line":"            if not isinstance(groupby, list):"}],"source_content_type":"text/x-python","patch_set":19,"id":"dae33548_df80978d","line":1282,"in_reply_to":"dae33548_5443ce6b","updated":"2016-02-18 14:38:43.000000000","message":"Ok, rebase bug I guess.","commit_id":"223d5f958f01c4e24a8de47728881083535dd5fb"}],"gnocchi/tests/test_storage.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"acc2e22c5654bd8f2a0e0b8d31cfc4c0401d4e33","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    @mock.patch(\u0027gnocchi.carbonara.AggregatedTimeSerie.POINTS_PER_SPLIT\u0027, 48)"},{"line_number":114,"context_line":"    def test_add_measures_big_update_subset(self):"},{"line_number":115,"context_line":"        m \u003d self._create_metric(\u0027high\u0027)"},{"line_number":116,"context_line":"        measures \u003d ["},{"line_number":117,"context_line":"            storage.Measure(datetime.datetime(2014, 1, i, j, 0, 0), 100)"},{"line_number":118,"context_line":"            for i in six.moves.range(1, 6) for j in six.moves.range(0, 24)]"}],"source_content_type":"text/x-python","patch_set":19,"id":"dae33548_bf2e7389","line":115,"updated":"2016-02-18 14:29:03.000000000","message":"this is suppose to be medium.","commit_id":"223d5f958f01c4e24a8de47728881083535dd5fb"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"d604125fbc5234f410aac9aec877dd8ce352adab","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    @mock.patch(\u0027gnocchi.carbonara.AggregatedTimeSerie.POINTS_PER_SPLIT\u0027, 48)"},{"line_number":114,"context_line":"    def test_add_measures_big_update_subset(self):"},{"line_number":115,"context_line":"        m \u003d self._create_metric(\u0027high\u0027)"},{"line_number":116,"context_line":"        measures \u003d ["},{"line_number":117,"context_line":"            storage.Measure(datetime.datetime(2014, 1, i, j, 0, 0), 100)"},{"line_number":118,"context_line":"            for i in six.moves.range(1, 6) for j in six.moves.range(0, 24)]"}],"source_content_type":"text/x-python","patch_set":19,"id":"dae33548_ff363b01","line":115,"in_reply_to":"dae33548_bf2e7389","updated":"2016-02-18 14:38:43.000000000","message":"Done","commit_id":"223d5f958f01c4e24a8de47728881083535dd5fb"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"acc2e22c5654bd8f2a0e0b8d31cfc4c0401d4e33","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        with mock.patch.object(self.storage, \u0027_store_metric_measures\u0027) as c:"},{"line_number":128,"context_line":"            self.storage.process_background_tasks(self.index, True)"},{"line_number":129,"context_line":"            c.assert_any_call(mock.ANY, mock.ANY, \u0027mean\u0027, 3600.0, mock.ANY)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    def test_add_and_get_measures(self):"},{"line_number":132,"context_line":"        self.storage.add_measures(self.metric, ["}],"source_content_type":"text/x-python","patch_set":19,"id":"dae33548_dfb8972c","line":129,"updated":"2016-02-18 14:29:03.000000000","message":"this test verifies we only call update only once, not at lease once.","commit_id":"223d5f958f01c4e24a8de47728881083535dd5fb"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"d059b74797463f1e5dc1362257dd1774121b7b9c","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        with mock.patch.object(self.storage, \u0027_store_metric_measures\u0027) as c:"},{"line_number":128,"context_line":"            self.storage.process_background_tasks(self.index, True)"},{"line_number":129,"context_line":"            c.assert_any_call(mock.ANY, mock.ANY, \u0027mean\u0027, 3600.0, mock.ANY)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    def test_add_and_get_measures(self):"},{"line_number":132,"context_line":"        self.storage.add_measures(self.metric, ["}],"source_content_type":"text/x-python","patch_set":19,"id":"dae33548_da754532","line":129,"in_reply_to":"dae33548_9a161d4a","updated":"2016-02-18 14:46:28.000000000","message":"yeah, i won\u0027t lie, there\u0027s a lot of playing around to get the  test to work. you need to find exactly where the split_key is breaking off, then you need to ensure you\u0027re adding a new entry into an existing block rather than the first measure into a new block... it\u0027s insane.","commit_id":"223d5f958f01c4e24a8de47728881083535dd5fb"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"d604125fbc5234f410aac9aec877dd8ce352adab","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        with mock.patch.object(self.storage, \u0027_store_metric_measures\u0027) as c:"},{"line_number":128,"context_line":"            self.storage.process_background_tasks(self.index, True)"},{"line_number":129,"context_line":"            c.assert_any_call(mock.ANY, mock.ANY, \u0027mean\u0027, 3600.0, mock.ANY)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    def test_add_and_get_measures(self):"},{"line_number":132,"context_line":"        self.storage.add_measures(self.metric, ["}],"source_content_type":"text/x-python","patch_set":19,"id":"dae33548_9a161d4a","line":129,"in_reply_to":"dae33548_dfb8972c","updated":"2016-02-18 14:38:43.000000000","message":"Ok, I\u0027ll try to keep as it was; for an unknown reason I had 0 with your check.","commit_id":"223d5f958f01c4e24a8de47728881083535dd5fb"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"98f43a2d26131c68a0dbf306c9fba272451c62e1","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        with mock.patch.object(self.storage, \u0027_store_metric_measures\u0027) as c:"},{"line_number":128,"context_line":"            self.storage.process_background_tasks(self.index, True)"},{"line_number":129,"context_line":"            c.assert_any_call(mock.ANY, mock.ANY, \u0027mean\u0027, 3600.0, mock.ANY)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    def test_add_and_get_measures(self):"},{"line_number":132,"context_line":"        self.storage.add_measures(self.metric, ["}],"source_content_type":"text/x-python","patch_set":20,"id":"dae33548_f17b0ff3","line":129,"updated":"2016-02-18 15:17:19.000000000","message":"i did a quick check. it still works. just that for some reason the first param passed is now an obj but \u0027m\u0027 var is just the id.\n\ni\u0027m not entirely sure why it changed.","commit_id":"2808c4e3fb57e046b4c5c21af10e58bbb2b6c82e"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"6cc56d02ee980d8eee2cf0271235243be15c3efd","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        with mock.patch.object(self.storage, \u0027_store_metric_measures\u0027) as c:"},{"line_number":128,"context_line":"            self.storage.process_background_tasks(self.index, True)"},{"line_number":129,"context_line":"            c.assert_any_call(mock.ANY, mock.ANY, \u0027mean\u0027, 3600.0, mock.ANY)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    def test_add_and_get_measures(self):"},{"line_number":132,"context_line":"        self.storage.add_measures(self.metric, ["}],"source_content_type":"text/x-python","patch_set":20,"id":"dae33548_7816bc4c","line":129,"in_reply_to":"dae33548_443dd729","updated":"2016-02-18 16:20:48.000000000","message":"i changed this. _store_metric_measures is actually passed indexer metric model rather than storage metric model","commit_id":"2808c4e3fb57e046b4c5c21af10e58bbb2b6c82e"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"09aa4317bb7a798d91aa769da1926774d70f2e5c","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        with mock.patch.object(self.storage, \u0027_store_metric_measures\u0027) as c:"},{"line_number":128,"context_line":"            self.storage.process_background_tasks(self.index, True)"},{"line_number":129,"context_line":"            c.assert_any_call(mock.ANY, mock.ANY, \u0027mean\u0027, 3600.0, mock.ANY)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    def test_add_and_get_measures(self):"},{"line_number":132,"context_line":"        self.storage.add_measures(self.metric, ["}],"source_content_type":"text/x-python","patch_set":20,"id":"dae33548_443dd729","line":129,"in_reply_to":"dae33548_f17b0ff3","updated":"2016-02-18 15:32:45.000000000","message":"didn\u0027t have much success from my side… we may want to find a better way to test in the long run","commit_id":"2808c4e3fb57e046b4c5c21af10e58bbb2b6c82e"}]}
