)]}'
{"aodh/storage/impl_sqlalchemy.py":[{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"84e2c8a5eb9c33d03142e78bd0a1a5ffd2d9681a","unresolved":false,"context_lines":[{"line_number":197,"context_line":"    def get_alarms(self, name\u003dNone, user\u003dNone, state\u003dNone, meter\u003dNone,"},{"line_number":198,"context_line":"                   project\u003dNone, enabled\u003dNone, alarm_id\u003dNone,"},{"line_number":199,"context_line":"                   alarm_type\u003dNone, severity\u003dNone, exclude\u003dNone,"},{"line_number":200,"context_line":"                   pagination\u003dNone, resource\u003dNone):"},{"line_number":201,"context_line":"        \"\"\"Yields a lists of alarms that match filters."},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"        :param name: Optional name for alarm."}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_95e9b781","line":200,"updated":"2018-08-07 06:05:39.000000000","message":"resource is not part of the internal storage API","commit_id":"c13f552840a4b716a54b1cd5f458557d23b59568"},{"author":{"_account_id":26165,"name":"chao.ma","email":"chao.ma@easystack.cn","username":"chao.ma"},"change_message_id":"1418b14e0013465e5504a6866ef24c502f5122f3","unresolved":false,"context_lines":[{"line_number":197,"context_line":"    def get_alarms(self, name\u003dNone, user\u003dNone, state\u003dNone, meter\u003dNone,"},{"line_number":198,"context_line":"                   project\u003dNone, enabled\u003dNone, alarm_id\u003dNone,"},{"line_number":199,"context_line":"                   alarm_type\u003dNone, severity\u003dNone, exclude\u003dNone,"},{"line_number":200,"context_line":"                   pagination\u003dNone, resource\u003dNone):"},{"line_number":201,"context_line":"        \"\"\"Yields a lists of alarms that match filters."},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"        :param name: Optional name for alarm."}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_43101ea9","line":200,"in_reply_to":"3f79a3b5_95e9b781","updated":"2018-08-21 08:42:29.000000000","message":"If resource parameter can be added into this get_alarms method, it can search alarms which belongs to one resource.","commit_id":"c13f552840a4b716a54b1cd5f458557d23b59568"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"e97b958b43e676f0e73e34f56f5416a362d02e40","unresolved":false,"context_lines":[{"line_number":197,"context_line":"    def get_alarms(self, name\u003dNone, user\u003dNone, state\u003dNone, meter\u003dNone,"},{"line_number":198,"context_line":"                   project\u003dNone, enabled\u003dNone, alarm_id\u003dNone,"},{"line_number":199,"context_line":"                   alarm_type\u003dNone, severity\u003dNone, exclude\u003dNone,"},{"line_number":200,"context_line":"                   pagination\u003dNone, resource\u003dNone):"},{"line_number":201,"context_line":"        \"\"\"Yields a lists of alarms that match filters."},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"        :param name: Optional name for alarm."}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_5bb5a57d","line":200,"updated":"2018-08-29 10:16:53.000000000","message":"This is useless as resource is not passed anywhere in the rest of Aodh code.","commit_id":"dfe45d5c27a321ab0a141f3f156ab7dad43b2b54"},{"author":{"_account_id":26165,"name":"chao.ma","email":"chao.ma@easystack.cn","username":"chao.ma"},"change_message_id":"46c125d76859ee25b95c944d6a0075e0b83105bb","unresolved":false,"context_lines":[{"line_number":197,"context_line":"    def get_alarms(self, name\u003dNone, user\u003dNone, state\u003dNone, meter\u003dNone,"},{"line_number":198,"context_line":"                   project\u003dNone, enabled\u003dNone, alarm_id\u003dNone,"},{"line_number":199,"context_line":"                   alarm_type\u003dNone, severity\u003dNone, exclude\u003dNone,"},{"line_number":200,"context_line":"                   pagination\u003dNone, resource\u003dNone):"},{"line_number":201,"context_line":"        \"\"\"Yields a lists of alarms that match filters."},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"        :param name: Optional name for alarm."}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_b07f3365","line":200,"in_reply_to":"3f79a3b5_5bb5a57d","updated":"2018-09-11 07:27:25.000000000","message":"AlarmsController class in aodh/api/controllers/v2/alarms.py has a method\nwhich is named get_all, it has one parameter \u0027q\u0027.If the \u0027q\u0027 parameter can \nhave query information about resource_id, it can be passed into the method.\nFor example, urllib library can send one aodh alarm list url which contains \nsuch resource id query information, the resource parameter can be passed \ninto method.","commit_id":"dfe45d5c27a321ab0a141f3f156ab7dad43b2b54"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"c8d4e1a4f9b8b72c5f96b221dd42b7d3e91ccff7","unresolved":false,"context_lines":[{"line_number":197,"context_line":"    def get_alarms(self, name\u003dNone, user\u003dNone, state\u003dNone, meter\u003dNone,"},{"line_number":198,"context_line":"                   project\u003dNone, enabled\u003dNone, alarm_id\u003dNone,"},{"line_number":199,"context_line":"                   alarm_type\u003dNone, severity\u003dNone, exclude\u003dNone,"},{"line_number":200,"context_line":"                   pagination\u003dNone, resource\u003dNone):"},{"line_number":201,"context_line":"        \"\"\"Yields a lists of alarms that match filters."},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"        :param name: Optional name for alarm."}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_6691e59a","line":200,"in_reply_to":"3f79a3b5_b07f3365","updated":"2018-09-11 09:17:34.000000000","message":"Oh I see, it looks like a bug, we never wanted to allow resource_id in Query API object.","commit_id":"dfe45d5c27a321ab0a141f3f156ab7dad43b2b54"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"e97b958b43e676f0e73e34f56f5416a362d02e40","unresolved":false,"context_lines":[{"line_number":261,"context_line":"                    if resource in result:"},{"line_number":262,"context_line":"                        resultAlarms.append(row)"},{"line_number":263,"context_line":"                else:"},{"line_number":264,"context_line":"                    currentResource \u003d row.rule.get(\u0027resource_id\u0027, \u0027\u0027)"},{"line_number":265,"context_line":"                    if currentResource \u003d\u003d resource:"},{"line_number":266,"context_line":"                        resultAlarms.append(row)"},{"line_number":267,"context_line":"            alarms \u003d resultAlarms"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_7bbae16e","line":264,"updated":"2018-08-29 10:16:53.000000000","message":"resource_id is only valid for some Gnocchi alarm types.\n\nCan we make something generic that will work for any alarm rule attributes ?","commit_id":"dfe45d5c27a321ab0a141f3f156ab7dad43b2b54"},{"author":{"_account_id":26165,"name":"chao.ma","email":"chao.ma@easystack.cn","username":"chao.ma"},"change_message_id":"46c125d76859ee25b95c944d6a0075e0b83105bb","unresolved":false,"context_lines":[{"line_number":261,"context_line":"                    if resource in result:"},{"line_number":262,"context_line":"                        resultAlarms.append(row)"},{"line_number":263,"context_line":"                else:"},{"line_number":264,"context_line":"                    currentResource \u003d row.rule.get(\u0027resource_id\u0027, \u0027\u0027)"},{"line_number":265,"context_line":"                    if currentResource \u003d\u003d resource:"},{"line_number":266,"context_line":"                        resultAlarms.append(row)"},{"line_number":267,"context_line":"            alarms \u003d resultAlarms"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_f0004b03","line":264,"in_reply_to":"3f79a3b5_7bbae16e","updated":"2018-09-11 07:27:25.000000000","message":"Yes, you are right. Resource id is only fit for gnocchi alarm type and threshold alarm type which\nis depreciated now in master.\nThis patch wants to support searching alarms of one resource for gnocchi alarm type.\nI know this patch could not be fit for all kinds of alarm type. \nI just want to improve a little ability about searching alarms of one resource for \ngnocchi alarm type.","commit_id":"dfe45d5c27a321ab0a141f3f156ab7dad43b2b54"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"c8d4e1a4f9b8b72c5f96b221dd42b7d3e91ccff7","unresolved":false,"context_lines":[{"line_number":261,"context_line":"                    if resource in result:"},{"line_number":262,"context_line":"                        resultAlarms.append(row)"},{"line_number":263,"context_line":"                else:"},{"line_number":264,"context_line":"                    currentResource \u003d row.rule.get(\u0027resource_id\u0027, \u0027\u0027)"},{"line_number":265,"context_line":"                    if currentResource \u003d\u003d resource:"},{"line_number":266,"context_line":"                        resultAlarms.append(row)"},{"line_number":267,"context_line":"            alarms \u003d resultAlarms"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_c6ceb9b6","line":264,"in_reply_to":"3f79a3b5_f0004b03","updated":"2018-09-11 09:17:34.000000000","message":"This kind of feature must be generic. We can\u0027t have here a list of attributes that come from external application.","commit_id":"dfe45d5c27a321ab0a141f3f156ab7dad43b2b54"}],"aodh/tests/functional/api/v2/test_alarm_scenarios.py":[{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"e97b958b43e676f0e73e34f56f5416a362d02e40","unresolved":false,"context_lines":[{"line_number":196,"context_line":"                          for r in sorted(data,"},{"line_number":197,"context_line":"                                          key\u003doperator.itemgetter(\u0027name\u0027))])"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"    def test_alarm_list_by_resource_id_query(self):"},{"line_number":200,"context_line":"        # Create an alarm"},{"line_number":201,"context_line":"        resource_id \u003d \u002799ed2087-d881-4bfb-913a-70e87f02bfdd\u0027"},{"line_number":202,"context_line":"        alarm_id \u003d \u0027ddd\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_1b864dbc","line":199,"updated":"2018-08-29 10:16:53.000000000","message":"Assertion in functional tests must use REST API and not the database connection.","commit_id":"dfe45d5c27a321ab0a141f3f156ab7dad43b2b54"},{"author":{"_account_id":26165,"name":"chao.ma","email":"chao.ma@easystack.cn","username":"chao.ma"},"change_message_id":"46c125d76859ee25b95c944d6a0075e0b83105bb","unresolved":false,"context_lines":[{"line_number":196,"context_line":"                          for r in sorted(data,"},{"line_number":197,"context_line":"                                          key\u003doperator.itemgetter(\u0027name\u0027))])"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"    def test_alarm_list_by_resource_id_query(self):"},{"line_number":200,"context_line":"        # Create an alarm"},{"line_number":201,"context_line":"        resource_id \u003d \u002799ed2087-d881-4bfb-913a-70e87f02bfdd\u0027"},{"line_number":202,"context_line":"        alarm_id \u003d \u0027ddd\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_308b2369","line":199,"in_reply_to":"3f79a3b5_1b864dbc","updated":"2018-09-11 07:27:25.000000000","message":"Ok, I will try to edit the test code.","commit_id":"dfe45d5c27a321ab0a141f3f156ab7dad43b2b54"}]}
