)]}'
{"gnocchi/storage/ceph.py":[{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"89e2e4a48395e7571edff4a2ee9fdc454fef7d84","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        return \"gnocchi_%s_%s\" % (metric, aggregation)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    def _create_metric_container(self, metric, archive_policy):"},{"line_number":111,"context_line":"        aggregation \u003d list(archive_policy.aggregation_methods)[0]"},{"line_number":112,"context_line":"        name \u003d self._get_object_name(metric, aggregation)"},{"line_number":113,"context_line":"        with self._get_ioctx() as ioctx:"},{"line_number":114,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_29632ede","line":111,"updated":"2015-02-10 19:50:53.000000000","message":"This won\u0027t work well, if the aggregation methods change and the first method have not yet received measurements, this will not raise the excepted storage.MetricAlreadyExists. \n\nA solution can be looping on all aggregation methods to ensure the metric doesn\u0027t exists yet.\nOr create an empty object to track the existence of the metric.\n\nI prefer the second one. I can provide a change in that way.","commit_id":"61758ec046699267d2319ca1402d5e62544e58d1"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"463602fa687092b1e845f7f20de7cadc447b04f0","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        return \"gnocchi_%s_%s\" % (metric, aggregation)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    def _create_metric_container(self, metric, archive_policy):"},{"line_number":111,"context_line":"        aggregation \u003d list(archive_policy.aggregation_methods)[0]"},{"line_number":112,"context_line":"        name \u003d self._get_object_name(metric, aggregation)"},{"line_number":113,"context_line":"        with self._get_ioctx() as ioctx:"},{"line_number":114,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_8d71810e","line":111,"in_reply_to":"da86d52c_29632ede","updated":"2015-02-10 22:11:53.000000000","message":"So this is a flaw already present?\n\nAny chance you can write a test?","commit_id":"61758ec046699267d2319ca1402d5e62544e58d1"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"dd5c18bee8928eda16027aaa52e8698cc5cb252f","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        return \"gnocchi_%s_%s\" % (metric, aggregation)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    def _create_metric_container(self, metric, archive_policy):"},{"line_number":111,"context_line":"        aggregation \u003d list(archive_policy.aggregation_methods)[0]"},{"line_number":112,"context_line":"        name \u003d self._get_object_name(metric, aggregation)"},{"line_number":113,"context_line":"        with self._get_ioctx() as ioctx:"},{"line_number":114,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_7b495930","line":111,"in_reply_to":"da86d52c_8d71810e","updated":"2015-02-11 09:01:23.000000000","message":"The test with the solution two fix here:  https://review.openstack.org/154786","commit_id":"61758ec046699267d2319ca1402d5e62544e58d1"}]}
