)]}'
{"aodhclient/v2/alarm.py":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"fa6cf073df898d8418e6b5cd7c12ce9d072ce103","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    @staticmethod"},{"line_number":37,"context_line":"    def _clean_rules(alarm_type, alarm):"},{"line_number":38,"context_line":"        rules \u003d [\u0027threshold\u0027, \u0027event\u0027]"},{"line_number":39,"context_line":"        for rule in rules:"},{"line_number":40,"context_line":"            if rule !\u003d alarm_type:"},{"line_number":41,"context_line":"                alarm.pop(\u0027%s_rule\u0027 % rule, None)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da6ed579_53118251","line":38,"updated":"2016-01-12 16:30:21.000000000","message":"There\u0027s a constant defined somewhere already in your patch","commit_id":"1d73d6d39e9c74be6c5bdc33cf4e30e811a95d0e"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"fa6cf073df898d8418e6b5cd7c12ce9d072ce103","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        :param alarm: the alarm"},{"line_number":47,"context_line":"        :type alarm: dict"},{"line_number":48,"context_line":"        \"\"\""},{"line_number":49,"context_line":"        self._clean_rules(alarm[\u0027type\u0027], alarm)"},{"line_number":50,"context_line":"        return self._post("},{"line_number":51,"context_line":"            self.url, headers\u003d{\u0027Content-Type\u0027: \"application/json\"},"},{"line_number":52,"context_line":"            data\u003djsonutils.dumps(alarm)).json()"}],"source_content_type":"text/x-python","patch_set":2,"id":"da6ed579_33172f53","line":49,"updated":"2016-01-12 16:30:21.000000000","message":"Why is it a good idea to blindly remove bad data sent by the client/user?","commit_id":"1d73d6d39e9c74be6c5bdc33cf4e30e811a95d0e"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"1575b4df6850a56bf11dede98adaad62f725da54","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        :param alarm: the alarm"},{"line_number":47,"context_line":"        :type alarm: dict"},{"line_number":48,"context_line":"        \"\"\""},{"line_number":49,"context_line":"        self._clean_rules(alarm[\u0027type\u0027], alarm)"},{"line_number":50,"context_line":"        return self._post("},{"line_number":51,"context_line":"            self.url, headers\u003d{\u0027Content-Type\u0027: \"application/json\"},"},{"line_number":52,"context_line":"            data\u003djsonutils.dumps(alarm)).json()"}],"source_content_type":"text/x-python","patch_set":2,"id":"da6ed579_53a18293","line":49,"in_reply_to":"da6ed579_33172f53","updated":"2016-01-12 16:38:27.000000000","message":"the problem right now is that --query (and a few other options) are use by multiple alarm types. we can either share the option or create type specific options (ie. threshold_query, event_query).\n\nif the latter, we don\u0027t need to clean anything, we can fail and be confident\n\nbut if we share (which is what happens now), when we update, from cli pov, we can\u0027t tell what type of alarm we are updating, so when we build the alarm we need to put it as a rule for all relevant types\n\nso \u0027clean_rules\u0027 isn\u0027t necessary here in create but it\u0027s needed in update.","commit_id":"1d73d6d39e9c74be6c5bdc33cf4e30e811a95d0e"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"ddf65335fc7592f969887eb51cc31ae434ef5273","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        alarm \u003d self._get(self.url + \u0027/\u0027 + alarm_id).json()"},{"line_number":63,"context_line":"        self._clean_rules(alarm[\u0027type\u0027], alarm_update)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        if alarm_update.get(\u0027threshold_rule\u0027):"},{"line_number":66,"context_line":"            alarm[\u0027threshold_rule\u0027].update(alarm_update.get(\u0027threshold_rule\u0027))"},{"line_number":67,"context_line":"            alarm_update.pop(\u0027threshold_rule\u0027)"},{"line_number":68,"context_line":"        elif alarm_update.get(\u0027event_rule\u0027):"}],"source_content_type":"text/x-python","patch_set":2,"id":"da6ed579_36739c82","line":65,"updated":"2016-01-12 17:08:11.000000000","message":"if \u0027threshold_rule\u0027 in alarm_update","commit_id":"1d73d6d39e9c74be6c5bdc33cf4e30e811a95d0e"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"ddf65335fc7592f969887eb51cc31ae434ef5273","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        if alarm_update.get(\u0027threshold_rule\u0027):"},{"line_number":66,"context_line":"            alarm[\u0027threshold_rule\u0027].update(alarm_update.get(\u0027threshold_rule\u0027))"},{"line_number":67,"context_line":"            alarm_update.pop(\u0027threshold_rule\u0027)"},{"line_number":68,"context_line":"        elif alarm_update.get(\u0027event_rule\u0027):"},{"line_number":69,"context_line":"            alarm[\u0027event_rule\u0027].update(alarm_update.get(\u0027event_rule\u0027))"},{"line_number":70,"context_line":"            alarm_update.pop(\u0027event_rule\u0027)"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"da6ed579_56709072","line":68,"updated":"2016-01-12 17:08:11.000000000","message":"ditto","commit_id":"1d73d6d39e9c74be6c5bdc33cf4e30e811a95d0e"}]}
