)]}'
{"ceilometer/publisher/rpc.py":[{"author":{"_account_id":4715,"name":"Angus Salkeld","email":"asalkeld@redhat.com","username":"asalkeld"},"change_message_id":"456c4f820071c0f8ef557ddbf91d02b2e1d0a489","unresolved":false,"context_lines":[{"line_number":137,"context_line":"                  len(msg[\u0027args\u0027][\u0027data\u0027]), topic)"},{"line_number":138,"context_line":"        rpc.cast(context, topic, msg)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        raise Exception(self.options)"},{"line_number":141,"context_line":"        if bool(int(self.options.get(\u0027per_meter_topic\u0027, [0])[-1])):"},{"line_number":142,"context_line":"            for meter_name, meter_list in itertools.groupby("},{"line_number":143,"context_line":"                    sorted(meters, key\u003dlambda m: m[\u0027counter_name\u0027]),"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAPn%2F%2F33I%3D","line":140,"updated":"2013-06-19 10:48:45.000000000","message":"So what are these Exceptions doing here? It looks really odd.","commit_id":"7871413821b0488f9eca7f955e24a9cb19fef8f5"},{"author":{"_account_id":688,"name":"Sandy Walsh","email":"sandy.walsh@rackspace.com","username":"sandy-walsh"},"change_message_id":"b8adc148cd6cac39fa5d5ac36316415a72b45ce6","unresolved":false,"context_lines":[{"line_number":136,"context_line":"                  len(msg[\u0027args\u0027][\u0027data\u0027]), topic)"},{"line_number":137,"context_line":"        rpc.cast(context, topic, msg)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        if bool(int(self.options.get(\u0027per_meter_topic\u0027, [0])[-1])):"},{"line_number":140,"context_line":"            for meter_name, meter_list in itertools.groupby("},{"line_number":141,"context_line":"                    sorted(meters, key\u003dlambda m: m[\u0027counter_name\u0027]),"},{"line_number":142,"context_line":"                    operator.itemgetter(\u0027counter_name\u0027)):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAPn%2F%2FaaU%3D","line":139,"updated":"2013-07-02 14:04:44.000000000","message":"No explicit test for this, it just has it turned on.","commit_id":"b6a17f07e1a9161ab748339f2c9466cba746429d"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"4864e72bbaa12feca552fb2c12268bcce27ff148","unresolved":false,"context_lines":[{"line_number":136,"context_line":"                  len(msg[\u0027args\u0027][\u0027data\u0027]), topic)"},{"line_number":137,"context_line":"        rpc.cast(context, topic, msg)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        if bool(int(self.options.get(\u0027per_meter_topic\u0027, [0])[-1])):"},{"line_number":140,"context_line":"            for meter_name, meter_list in itertools.groupby("},{"line_number":141,"context_line":"                    sorted(meters, key\u003dlambda m: m[\u0027counter_name\u0027]),"},{"line_number":142,"context_line":"                    operator.itemgetter(\u0027counter_name\u0027)):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAPn%2F%2FW0s%3D","line":139,"in_reply_to":"AAAAPn%2F%2FaaU%3D","updated":"2013-07-03 12:54:30.000000000","message":"Done","commit_id":"b6a17f07e1a9161ab748339f2c9466cba746429d"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"ed743af3dcb9403b1d094ae42a7a0e366eb5fb82","unresolved":false,"context_lines":[{"line_number":136,"context_line":"                  len(msg[\u0027args\u0027][\u0027data\u0027]), topic)"},{"line_number":137,"context_line":"        rpc.cast(context, topic, msg)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        if bool(int(self.options.get(\u0027per_meter_topic\u0027, [0])[-1])):"},{"line_number":140,"context_line":"            for meter_name, meter_list in itertools.groupby("},{"line_number":141,"context_line":"                    sorted(meters, key\u003dlambda m: m[\u0027counter_name\u0027]),"},{"line_number":142,"context_line":"                    operator.itemgetter(\u0027counter_name\u0027)):"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAP3%2F%2F1v0%3D","line":139,"updated":"2013-07-10 15:52:29.000000000","message":"publish_counters() is going to be called a lot. It would be better to have the expression for getting the per_meter_topic option in __init__ and then save the results to a boolean attribute that can be checked quickly here.","commit_id":"062050da27ee9e8ebf37b5cdd802d416f068a592"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"ed743af3dcb9403b1d094ae42a7a0e366eb5fb82","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        if bool(int(self.options.get(\u0027per_meter_topic\u0027, [0])[-1])):"},{"line_number":140,"context_line":"            for meter_name, meter_list in itertools.groupby("},{"line_number":141,"context_line":"                    sorted(meters, key\u003dlambda m: m[\u0027counter_name\u0027]),"},{"line_number":142,"context_line":"                    operator.itemgetter(\u0027counter_name\u0027)):"},{"line_number":143,"context_line":"                msg \u003d {"},{"line_number":144,"context_line":"                    \u0027method\u0027: \u0027record_metering_data\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAP3%2F%2F1wI%3D","line":141,"updated":"2013-07-10 15:52:29.000000000","message":"The key function could use itemgetter(), too.","commit_id":"062050da27ee9e8ebf37b5cdd802d416f068a592"}]}
