)]}'
{"ceilometer/transformer/conversions.py":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"f5424101fb1ef22e11ac3bbfcec9a4081a5e17a6","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        return s"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"AGGREGATE_ATTRIBUTE \u003d [\u0027resource_metadata\u0027, \u0027user_id\u0027, \u0027project_id\u0027]"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"class AggregatorTransformer(ScalingTransformer):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAW3%2F%2Feag%3D","line":168,"updated":"2014-04-14 11:21:07.000000000","message":"That should be configurable actually, and at least part of the class.","commit_id":"dd7c8316fcbae9ff310a6a982309cf03c6180e2f"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"6fe96cca22cb5ee2b1b6f7c36c33664ab412f73a","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        return s"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"AGGREGATE_ATTRIBUTE \u003d [\u0027resource_metadata\u0027, \u0027user_id\u0027, \u0027project_id\u0027]"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"class AggregatorTransformer(ScalingTransformer):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAW3%2F%2FeRY%3D","line":168,"in_reply_to":"AAAAW3%2F%2Feag%3D","updated":"2014-04-14 11:37:51.000000000","message":"This is configurable :), this is the list of attributes of field that could be aggregated.\n\nThe usage of the aggregator looks like this:\n\nAggregate samples by resource_metadata and only keeping the resource_metadata of the latest sample recieved.\n\n  AggregatorTransformer(size\u003d15, resource_metadata\u003dlast)\n\n\nAggregate samples by user_id and resource_metadata and only keeping the resource_metadata of the latest sample received and the user_id of the first the sample received.\n\n  AggregatorTransformer(size\u003d15, user_id\u003dfirst, resource_metadata\u003dlast)\n\n\nI will put arguments explicitly in the constructor to make it more clear.","commit_id":"dd7c8316fcbae9ff310a6a982309cf03c6180e2f"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"f5424101fb1ef22e11ac3bbfcec9a4081a5e17a6","unresolved":false,"context_lines":[{"line_number":168,"context_line":"AGGREGATE_ATTRIBUTE \u003d [\u0027resource_metadata\u0027, \u0027user_id\u0027, \u0027project_id\u0027]"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"class AggregatorTransformer(ScalingTransformer):"},{"line_number":172,"context_line":"    \"\"\"Transformer that aggregate sample until a threshold, and then flush"},{"line_number":173,"context_line":"    them out in the wild."},{"line_number":174,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAW3%2F%2FeZU%3D","line":171,"updated":"2014-04-14 11:21:07.000000000","message":"I wonder if it shouldn\u0027t/couldn\u0027t inherit form  accumulator.","commit_id":"dd7c8316fcbae9ff310a6a982309cf03c6180e2f"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"6fe96cca22cb5ee2b1b6f7c36c33664ab412f73a","unresolved":false,"context_lines":[{"line_number":168,"context_line":"AGGREGATE_ATTRIBUTE \u003d [\u0027resource_metadata\u0027, \u0027user_id\u0027, \u0027project_id\u0027]"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"class AggregatorTransformer(ScalingTransformer):"},{"line_number":172,"context_line":"    \"\"\"Transformer that aggregate sample until a threshold, and then flush"},{"line_number":173,"context_line":"    them out in the wild."},{"line_number":174,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAW3%2F%2FeRg%3D","line":171,"in_reply_to":"AAAAW3%2F%2FeZU%3D","updated":"2014-04-14 11:37:51.000000000","message":"I could and I will :)","commit_id":"dd7c8316fcbae9ff310a6a982309cf03c6180e2f"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"2c1ec6f9f3c9d1d70b879d752236f982a9adf6bf","unresolved":false,"context_lines":[{"line_number":197,"context_line":"        self.merged_attribute_policy \u003d {}"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        self._init_attribute(\u0027project_id\u0027, project_id)"},{"line_number":200,"context_line":"        self._init_attribute(\u0027user_id\u0027, user_id)"},{"line_number":201,"context_line":"        self._init_attribute(\u0027resource_metadata\u0027, resource_metadata,"},{"line_number":202,"context_line":"                             is_droppable\u003dTrue, mandatory\u003dTrue)"},{"line_number":203,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAXX%2F%2FwxQ%3D","line":200,"updated":"2014-04-28 06:48:25.000000000","message":"Should the \u0027resource_id\u0027 also be part of the unique_key? I don\u0027t see the usage of aggregate samples for different resource_id","commit_id":"dddd46077e472391f67e90c4b5eb063c01056ab6"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"855d0b741b265a8be451b49ad2691c99136e621f","unresolved":false,"context_lines":[{"line_number":197,"context_line":"        self.merged_attribute_policy \u003d {}"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        self._init_attribute(\u0027project_id\u0027, project_id)"},{"line_number":200,"context_line":"        self._init_attribute(\u0027user_id\u0027, user_id)"},{"line_number":201,"context_line":"        self._init_attribute(\u0027resource_metadata\u0027, resource_metadata,"},{"line_number":202,"context_line":"                             is_droppable\u003dTrue, mandatory\u003dTrue)"},{"line_number":203,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAXX%2F%2FwII%3D","line":200,"in_reply_to":"AAAAXX%2F%2FwxQ%3D","updated":"2014-04-28 08:40:18.000000000","message":"I don\u0027t see use cases for this too, and even I consider it, I don\u0027t know which value I could put in resource_id for the sample generated by this transformer.","commit_id":"dddd46077e472391f67e90c4b5eb063c01056ab6"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"87f3f145905af3f0e6a96d812d4941c6d58ac4c3","unresolved":false,"context_lines":[{"line_number":215,"context_line":"    def _get_unique_key(self, s):"},{"line_number":216,"context_line":"        non_aggregated_keys \u003d \"-\".join([getattr(s, field)"},{"line_number":217,"context_line":"                                        for field in self.key_attributes])"},{"line_number":218,"context_line":"        #NOTE(sileht): it assumes, a meter always have the same unit/type"},{"line_number":219,"context_line":"        return \"%s-%s-%s\" % (s.name, s.resource_id, non_aggregated_keys)"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"    def handle_sample(self, context, sample):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAXX%2F%2FwH0%3D","line":218,"updated":"2014-04-28 09:10:31.000000000","message":"# NOTE\n(add a space)\nOtherwise next pep8 will complain.","commit_id":"6957e7b66aa37685ec0d75fe7ef65cdab981d55f"}]}
