)]}'
{"ceilometer/alarm/evaluator/combination.py":[{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"5019bfad5c723c646cc5076ed6490b620df7c959","unresolved":false,"context_lines":[{"line_number":47,"context_line":"            reason \u003d _(\u0027Alarms %(alarm_ids)s\u0027"},{"line_number":48,"context_line":"                       \u0027 are in unknown state\u0027) % \\"},{"line_number":49,"context_line":"                {\u0027alarm_ids\u0027: \",\".join(alarms_missing_states)}"},{"line_number":50,"context_line":"            reason_data \u003d CombinationEvaluator._reason_data("},{"line_number":51,"context_line":"                alarms_missing_states)"},{"line_number":52,"context_line":"            self._refresh(alarm, evaluator.UNKNOWN, reason, reason_data)"},{"line_number":53,"context_line":"        return sufficient"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9qas%3D","line":50,"updated":"2014-02-05 09:05:16.000000000","message":"self instead of CombinationEvaluator must be used here.","commit_id":"fc667544f6c1e25a7239c800ba0c13a0368bd042"},{"author":{"_account_id":8052,"name":"Nejc Saje","email":"nejc@saje.info","username":"nsaje"},"change_message_id":"4186647c9d1872269d9a435eacec20a1bd54e202","unresolved":false,"context_lines":[{"line_number":47,"context_line":"            reason \u003d _(\u0027Alarms %(alarm_ids)s\u0027"},{"line_number":48,"context_line":"                       \u0027 are in unknown state\u0027) % \\"},{"line_number":49,"context_line":"                {\u0027alarm_ids\u0027: \",\".join(alarms_missing_states)}"},{"line_number":50,"context_line":"            reason_data \u003d CombinationEvaluator._reason_data("},{"line_number":51,"context_line":"                alarms_missing_states)"},{"line_number":52,"context_line":"            self._refresh(alarm, evaluator.UNKNOWN, reason, reason_data)"},{"line_number":53,"context_line":"        return sufficient"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9oHw%3D","line":50,"in_reply_to":"AAAAUH%2F9qas%3D","updated":"2014-02-05 15:16:00.000000000","message":"Done","commit_id":"fc667544f6c1e25a7239c800ba0c13a0368bd042"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"5019bfad5c723c646cc5076ed6490b620df7c959","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        \"\"\""},{"line_number":59,"context_line":"        return {\u0027type\u0027: \u0027combination\u0027, \u0027alarm_ids\u0027: alarm_ids}"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    @staticmethod"},{"line_number":62,"context_line":"    def _reason(alarm, state, underlying_states):"},{"line_number":63,"context_line":"        \"\"\"Fabricate reason string.\"\"\""},{"line_number":64,"context_line":"        transition \u003d alarm.state !\u003d state"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9qaw%3D","line":61,"updated":"2014-02-05 09:05:16.000000000","message":"Must be a classmethod","commit_id":"fc667544f6c1e25a7239c800ba0c13a0368bd042"},{"author":{"_account_id":8052,"name":"Nejc Saje","email":"nejc@saje.info","username":"nsaje"},"change_message_id":"4186647c9d1872269d9a435eacec20a1bd54e202","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        \"\"\""},{"line_number":59,"context_line":"        return {\u0027type\u0027: \u0027combination\u0027, \u0027alarm_ids\u0027: alarm_ids}"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    @staticmethod"},{"line_number":62,"context_line":"    def _reason(alarm, state, underlying_states):"},{"line_number":63,"context_line":"        \"\"\"Fabricate reason string.\"\"\""},{"line_number":64,"context_line":"        transition \u003d alarm.state !\u003d state"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9oHs%3D","line":61,"in_reply_to":"AAAAUH%2F9qaw%3D","updated":"2014-02-05 15:16:00.000000000","message":"Done","commit_id":"fc667544f6c1e25a7239c800ba0c13a0368bd042"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"5019bfad5c723c646cc5076ed6490b620df7c959","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        alarms_to_report \u003d [alarm_id for alarm_id, alarm_state"},{"line_number":67,"context_line":"                            in underlying_states"},{"line_number":68,"context_line":"                            if alarm_state \u003d\u003d state]"},{"line_number":69,"context_line":"        reason_data \u003d CombinationEvaluator._reason_data(alarms_to_report)"},{"line_number":70,"context_line":"        if transition:"},{"line_number":71,"context_line":"            return (_(\u0027Transition to %(state)s due to alarms\u0027"},{"line_number":72,"context_line":"                      \u0027 %(alarm_ids)s in state %(state)s\u0027) %"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9qa4%3D","line":69,"updated":"2014-02-05 09:05:16.000000000","message":"cls instead of CombinationEvaluator must be used here.","commit_id":"fc667544f6c1e25a7239c800ba0c13a0368bd042"},{"author":{"_account_id":8052,"name":"Nejc Saje","email":"nejc@saje.info","username":"nsaje"},"change_message_id":"4186647c9d1872269d9a435eacec20a1bd54e202","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        alarms_to_report \u003d [alarm_id for alarm_id, alarm_state"},{"line_number":67,"context_line":"                            in underlying_states"},{"line_number":68,"context_line":"                            if alarm_state \u003d\u003d state]"},{"line_number":69,"context_line":"        reason_data \u003d CombinationEvaluator._reason_data(alarms_to_report)"},{"line_number":70,"context_line":"        if transition:"},{"line_number":71,"context_line":"            return (_(\u0027Transition to %(state)s due to alarms\u0027"},{"line_number":72,"context_line":"                      \u0027 %(alarm_ids)s in state %(state)s\u0027) %"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9oHo%3D","line":69,"in_reply_to":"AAAAUH%2F9qa4%3D","updated":"2014-02-05 15:16:00.000000000","message":"Done","commit_id":"fc667544f6c1e25a7239c800ba0c13a0368bd042"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"5019bfad5c723c646cc5076ed6490b620df7c959","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        \"\"\"Transition alarm state if necessary."},{"line_number":82,"context_line":"        \"\"\""},{"line_number":83,"context_line":"        op \u003d alarm.rule[\u0027operator\u0027]"},{"line_number":84,"context_line":"        if COMPARATORS[op](s \u003d\u003d evaluator.ALARM for _, s in underlying_states):"},{"line_number":85,"context_line":"            state \u003d evaluator.ALARM"},{"line_number":86,"context_line":"        else:"},{"line_number":87,"context_line":"            state \u003d evaluator.OK"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9qak%3D","line":84,"updated":"2014-02-05 09:05:16.000000000","message":"use two _, one _ is reversed for translation","commit_id":"fc667544f6c1e25a7239c800ba0c13a0368bd042"},{"author":{"_account_id":8052,"name":"Nejc Saje","email":"nejc@saje.info","username":"nsaje"},"change_message_id":"4186647c9d1872269d9a435eacec20a1bd54e202","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        \"\"\"Transition alarm state if necessary."},{"line_number":82,"context_line":"        \"\"\""},{"line_number":83,"context_line":"        op \u003d alarm.rule[\u0027operator\u0027]"},{"line_number":84,"context_line":"        if COMPARATORS[op](s \u003d\u003d evaluator.ALARM for _, s in underlying_states):"},{"line_number":85,"context_line":"            state \u003d evaluator.ALARM"},{"line_number":86,"context_line":"        else:"},{"line_number":87,"context_line":"            state \u003d evaluator.OK"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9oHk%3D","line":84,"in_reply_to":"AAAAUH%2F9qak%3D","updated":"2014-02-05 15:16:00.000000000","message":"Done","commit_id":"fc667544f6c1e25a7239c800ba0c13a0368bd042"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"5019bfad5c723c646cc5076ed6490b620df7c959","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    def evaluate(self, alarm):"},{"line_number":95,"context_line":"        states \u003d []"},{"line_number":96,"context_line":"        for alarm_id in alarm.rule[\u0027alarm_ids\u0027]:"},{"line_number":97,"context_line":"            states.append((alarm_id, self._get_alarm_state(alarm_id)))"},{"line_number":98,"context_line":"            #note(sileht): alarm can be evaluated only with"},{"line_number":99,"context_line":"            #stable state of other alarm"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9qXU%3D","line":97,"updated":"2014-02-05 09:05:16.000000000","message":"nit: Can simplified with:\n\n  states \u003d zip(alarm.rule[\u0027alarm_ids\u0027], itertools.imap(self._get_alarm_state, alarm.rule[\u0027alarm_ids\u0027])","commit_id":"fc667544f6c1e25a7239c800ba0c13a0368bd042"},{"author":{"_account_id":8052,"name":"Nejc Saje","email":"nejc@saje.info","username":"nsaje"},"change_message_id":"4186647c9d1872269d9a435eacec20a1bd54e202","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    def evaluate(self, alarm):"},{"line_number":95,"context_line":"        states \u003d []"},{"line_number":96,"context_line":"        for alarm_id in alarm.rule[\u0027alarm_ids\u0027]:"},{"line_number":97,"context_line":"            states.append((alarm_id, self._get_alarm_state(alarm_id)))"},{"line_number":98,"context_line":"            #note(sileht): alarm can be evaluated only with"},{"line_number":99,"context_line":"            #stable state of other alarm"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9oHg%3D","line":97,"in_reply_to":"AAAAUH%2F9qXU%3D","updated":"2014-02-05 15:16:00.000000000","message":"Indeed! Done","commit_id":"fc667544f6c1e25a7239c800ba0c13a0368bd042"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"5019bfad5c723c646cc5076ed6490b620df7c959","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        for alarm_id in alarm.rule[\u0027alarm_ids\u0027]:"},{"line_number":97,"context_line":"            states.append((alarm_id, self._get_alarm_state(alarm_id)))"},{"line_number":98,"context_line":"            #note(sileht): alarm can be evaluated only with"},{"line_number":99,"context_line":"            #stable state of other alarm"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        if self._sufficient_states(alarm, states):"},{"line_number":102,"context_line":"            self._transition(alarm, states)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9qYs%3D","line":99,"updated":"2014-02-05 09:05:16.000000000","message":"The comment must be moved in _sufficient_states too","commit_id":"fc667544f6c1e25a7239c800ba0c13a0368bd042"},{"author":{"_account_id":8052,"name":"Nejc Saje","email":"nejc@saje.info","username":"nsaje"},"change_message_id":"4186647c9d1872269d9a435eacec20a1bd54e202","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        for alarm_id in alarm.rule[\u0027alarm_ids\u0027]:"},{"line_number":97,"context_line":"            states.append((alarm_id, self._get_alarm_state(alarm_id)))"},{"line_number":98,"context_line":"            #note(sileht): alarm can be evaluated only with"},{"line_number":99,"context_line":"            #stable state of other alarm"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        if self._sufficient_states(alarm, states):"},{"line_number":102,"context_line":"            self._transition(alarm, states)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9oHc%3D","line":99,"in_reply_to":"AAAAUH%2F9qYs%3D","updated":"2014-02-05 15:16:00.000000000","message":"Done","commit_id":"fc667544f6c1e25a7239c800ba0c13a0368bd042"}],"ceilometer/alarm/evaluator/threshold.py":[{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"5019bfad5c723c646cc5076ed6490b620df7c959","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        if not sufficient and alarm.state !\u003d evaluator.UNKNOWN:"},{"line_number":112,"context_line":"            reason \u003d _(\u0027%d datapoints are unknown\u0027) % alarm.rule["},{"line_number":113,"context_line":"                \u0027evaluation_periods\u0027]"},{"line_number":114,"context_line":"            reason_data \u003d ThresholdEvaluator._reason_data("},{"line_number":115,"context_line":"                \u0027unknown\u0027,"},{"line_number":116,"context_line":"                alarm.rule[\u0027evaluation_periods\u0027],"},{"line_number":117,"context_line":"                None)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9qbo%3D","line":114,"updated":"2014-02-05 09:05:16.000000000","message":"self instead of ThresholdEvaluator must be used here.","commit_id":"fc667544f6c1e25a7239c800ba0c13a0368bd042"},{"author":{"_account_id":8052,"name":"Nejc Saje","email":"nejc@saje.info","username":"nsaje"},"change_message_id":"4186647c9d1872269d9a435eacec20a1bd54e202","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        if not sufficient and alarm.state !\u003d evaluator.UNKNOWN:"},{"line_number":112,"context_line":"            reason \u003d _(\u0027%d datapoints are unknown\u0027) % alarm.rule["},{"line_number":113,"context_line":"                \u0027evaluation_periods\u0027]"},{"line_number":114,"context_line":"            reason_data \u003d ThresholdEvaluator._reason_data("},{"line_number":115,"context_line":"                \u0027unknown\u0027,"},{"line_number":116,"context_line":"                alarm.rule[\u0027evaluation_periods\u0027],"},{"line_number":117,"context_line":"                None)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9oHQ%3D","line":114,"in_reply_to":"AAAAUH%2F9qbo%3D","updated":"2014-02-05 15:16:00.000000000","message":"Done","commit_id":"fc667544f6c1e25a7239c800ba0c13a0368bd042"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"5019bfad5c723c646cc5076ed6490b620df7c959","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        return {\u0027type\u0027: \u0027threshold\u0027, \u0027disposition\u0027: disposition,"},{"line_number":126,"context_line":"                \u0027count\u0027: count, \u0027most_recent\u0027: most_recent}"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    @staticmethod"},{"line_number":129,"context_line":"    def _reason(alarm, statistics, distilled, state):"},{"line_number":130,"context_line":"        \"\"\"Fabricate reason string.\"\"\""},{"line_number":131,"context_line":"        count \u003d len(statistics)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9qbc%3D","line":128,"updated":"2014-02-05 09:05:16.000000000","message":"Must be a classmethod","commit_id":"fc667544f6c1e25a7239c800ba0c13a0368bd042"},{"author":{"_account_id":8052,"name":"Nejc Saje","email":"nejc@saje.info","username":"nsaje"},"change_message_id":"4186647c9d1872269d9a435eacec20a1bd54e202","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        return {\u0027type\u0027: \u0027threshold\u0027, \u0027disposition\u0027: disposition,"},{"line_number":126,"context_line":"                \u0027count\u0027: count, \u0027most_recent\u0027: most_recent}"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    @staticmethod"},{"line_number":129,"context_line":"    def _reason(alarm, statistics, distilled, state):"},{"line_number":130,"context_line":"        \"\"\"Fabricate reason string.\"\"\""},{"line_number":131,"context_line":"        count \u003d len(statistics)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9oHI%3D","line":128,"in_reply_to":"AAAAUH%2F9qbc%3D","updated":"2014-02-05 15:16:00.000000000","message":"Done","commit_id":"fc667544f6c1e25a7239c800ba0c13a0368bd042"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"5019bfad5c723c646cc5076ed6490b620df7c959","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        disposition \u003d \u0027inside\u0027 if state \u003d\u003d evaluator.OK else \u0027outside\u0027"},{"line_number":133,"context_line":"        last \u003d getattr(statistics[-1], alarm.rule[\u0027statistic\u0027])"},{"line_number":134,"context_line":"        transition \u003d alarm.state !\u003d state"},{"line_number":135,"context_line":"        reason_data \u003d ThresholdEvaluator._reason_data(disposition, count, last)"},{"line_number":136,"context_line":"        if transition:"},{"line_number":137,"context_line":"            return (_(\u0027Transition to %(state)s due to %(count)d samples\u0027"},{"line_number":138,"context_line":"                      \u0027 %(disposition)s threshold, most recent:\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9qbg%3D","line":135,"updated":"2014-02-05 09:05:16.000000000","message":"cls instead of ThresholdEvaluator must be used here.","commit_id":"fc667544f6c1e25a7239c800ba0c13a0368bd042"},{"author":{"_account_id":8052,"name":"Nejc Saje","email":"nejc@saje.info","username":"nsaje"},"change_message_id":"4186647c9d1872269d9a435eacec20a1bd54e202","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        disposition \u003d \u0027inside\u0027 if state \u003d\u003d evaluator.OK else \u0027outside\u0027"},{"line_number":133,"context_line":"        last \u003d getattr(statistics[-1], alarm.rule[\u0027statistic\u0027])"},{"line_number":134,"context_line":"        transition \u003d alarm.state !\u003d state"},{"line_number":135,"context_line":"        reason_data \u003d ThresholdEvaluator._reason_data(disposition, count, last)"},{"line_number":136,"context_line":"        if transition:"},{"line_number":137,"context_line":"            return (_(\u0027Transition to %(state)s due to %(count)d samples\u0027"},{"line_number":138,"context_line":"                      \u0027 %(disposition)s threshold, most recent:\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F9oHA%3D","line":135,"in_reply_to":"AAAAUH%2F9qbg%3D","updated":"2014-02-05 15:16:00.000000000","message":"Done","commit_id":"fc667544f6c1e25a7239c800ba0c13a0368bd042"}]}
