)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"918420973727617f42b3b726de5c01f7672996be","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add --query to alarm list"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"As discussed in the MailList and aggred, we should now"},{"line_number":10,"context_line":"add -- query to alarm list\" to perform the functionality"},{"line_number":11,"context_line":"what \"alarm search\" does."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Icf8888b91f7040d6158919cb667e8fa7d46a54ee"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3afc51ec_f7828251","line":10,"range":{"start_line":10,"start_character":6,"end_line":10,"end_character":7},"updated":"2016-03-14 02:46:39.000000000","message":"no blank","commit_id":"1f7de8e7e3a31d42d593b67bfd4604943d5dceea"}],"aodhclient/tests/functional/test_alarm.py":[{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"039a293f5712b003f069c722508b3c0f7cc41410","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        # LIST WITH QUERY"},{"line_number":88,"context_line":"        result \u003d self.aodh(\u0027alarm\u0027,"},{"line_number":89,"context_line":"                           params\u003d(\"list --query \""},{"line_number":90,"context_line":"                                   \"\u0027{\\\"\u003d\\\": {\\\"project_id\\\": \\\"%s\\\"}}\u0027\""},{"line_number":91,"context_line":"                                   % PROJECT_ID))"},{"line_number":92,"context_line":"        alarm_list \u003d self.parser.listing(result)[0]"},{"line_number":93,"context_line":"        self.assertEqual(ALARM_ID, alarm_list[\"alarm_id\"])"}],"source_content_type":"text/x-python","patch_set":7,"id":"1af94dfe_4bc63f68","line":90,"updated":"2016-03-16 08:08:04.000000000","message":"Need to be updated ?","commit_id":"838739f47186698452bac23f5dcf66e973212a16"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"a55bd93600ede5a57b38436eb7d0bcec6ba33f09","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        # LIST WITH QUERY"},{"line_number":88,"context_line":"        result \u003d self.aodh(\u0027alarm\u0027,"},{"line_number":89,"context_line":"                           params\u003d(\"list --query \""},{"line_number":90,"context_line":"                                   \"\u0027{\\\"\u003d\\\": {\\\"project_id\\\": \\\"%s\\\"}}\u0027\""},{"line_number":91,"context_line":"                                   % PROJECT_ID))"},{"line_number":92,"context_line":"        alarm_list \u003d self.parser.listing(result)[0]"},{"line_number":93,"context_line":"        self.assertEqual(ALARM_ID, alarm_list[\"alarm_id\"])"}],"source_content_type":"text/x-python","patch_set":7,"id":"1af94dfe_2b55b34f","line":90,"in_reply_to":"1af94dfe_4bc63f68","updated":"2016-03-16 08:13:28.000000000","message":"Done","commit_id":"838739f47186698452bac23f5dcf66e973212a16"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"039a293f5712b003f069c722508b3c0f7cc41410","unresolved":false,"context_lines":[{"line_number":193,"context_line":"        result \u003d self.aodh(\u0027alarm\u0027,"},{"line_number":194,"context_line":"                           params\u003d(\"list --query \""},{"line_number":195,"context_line":"                                   \"\u0027{\\\"\u003d\\\": {\\\"project_id\\\": \\\"%s\\\"}}\u0027\""},{"line_number":196,"context_line":"                                   % PROJECT_ID))"},{"line_number":197,"context_line":"        alarm_list \u003d self.parser.listing(result)[0]"},{"line_number":198,"context_line":"        self.assertEqual(ALARM_ID, alarm_list[\"alarm_id\"])"},{"line_number":199,"context_line":"        self.assertEqual(\u0027alarm1\u0027, alarm_list[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"1af94dfe_cbb08ff7","line":196,"updated":"2016-03-16 08:08:04.000000000","message":"Same","commit_id":"838739f47186698452bac23f5dcf66e973212a16"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"a55bd93600ede5a57b38436eb7d0bcec6ba33f09","unresolved":false,"context_lines":[{"line_number":193,"context_line":"        result \u003d self.aodh(\u0027alarm\u0027,"},{"line_number":194,"context_line":"                           params\u003d(\"list --query \""},{"line_number":195,"context_line":"                                   \"\u0027{\\\"\u003d\\\": {\\\"project_id\\\": \\\"%s\\\"}}\u0027\""},{"line_number":196,"context_line":"                                   % PROJECT_ID))"},{"line_number":197,"context_line":"        alarm_list \u003d self.parser.listing(result)[0]"},{"line_number":198,"context_line":"        self.assertEqual(ALARM_ID, alarm_list[\"alarm_id\"])"},{"line_number":199,"context_line":"        self.assertEqual(\u0027alarm1\u0027, alarm_list[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"1af94dfe_0b527767","line":196,"in_reply_to":"1af94dfe_cbb08ff7","updated":"2016-03-16 08:13:28.000000000","message":"Done","commit_id":"838739f47186698452bac23f5dcf66e973212a16"}],"aodhclient/utils.py":[{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"dd0354013253845ddbce4a0e086afd9201623c8c","unresolved":false,"context_lines":[{"line_number":19,"context_line":"binary_operator \u003d (u\"\u003e\u003d\", u\"\u003c\u003d\", u\"!\u003d\", u\"\u003e\", u\"\u003c\", u\"\u003d\", u\"\u003d\u003d\", u\"eq\", u\"ne\","},{"line_number":20,"context_line":"                   u\"lt\", u\"gt\", u\"ge\", u\"le\", u\"in\", u\"like\", u\"≠\", u\"≥\","},{"line_number":21,"context_line":"                   u\"≤\", u\"like\" \"in\")"},{"line_number":22,"context_line":"multiple_operators \u003d (u\"and\", u\"or\", u\"∧\", u\"∨\")"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"operator \u003d pp.Regex(u\"|\".join(binary_operator))"},{"line_number":25,"context_line":"null \u003d pp.Regex(\"None|none|null\").setParseAction(pp.replaceWith(None))"}],"source_content_type":"text/x-python","patch_set":8,"id":"1af94dfe_8bf32773","line":22,"updated":"2016-03-16 08:14:31.000000000","message":"binary and multiple needs to be updated too.","commit_id":"3e6cdf7b99379ce715cead2136dd6f7d60f0f555"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"def49d3607f6aa77c452682613ab53d38d1a73bf","unresolved":false,"context_lines":[{"line_number":36,"context_line":"                   pp.Optional(pp.delimitedList(comparison_term)) +"},{"line_number":37,"context_line":"                   pp.Suppress(\u0027]\u0027))(\"list\")"},{"line_number":38,"context_line":"comparison_term \u003c\u003c (null | boolean | uuid | identifier | number |"},{"line_number":39,"context_line":"                    quoted_string | in_list)"},{"line_number":40,"context_line":"condition \u003d pp.Group(comparison_term + operator + comparison_term)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"expr \u003d pp.operatorPrecedence(condition, ["}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_3aa85a1f","line":39,"updated":"2016-03-16 09:00:32.000000000","message":"Sorry I have missed that one: in_list is not supported I think","commit_id":"cacaa96327c844f4471734b6d6cac21ef7f23a4c"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"8349d6b52a549824d2be26a12444f78f83230802","unresolved":false,"context_lines":[{"line_number":36,"context_line":"                   pp.Optional(pp.delimitedList(comparison_term)) +"},{"line_number":37,"context_line":"                   pp.Suppress(\u0027]\u0027))(\"list\")"},{"line_number":38,"context_line":"comparison_term \u003c\u003c (null | boolean | uuid | identifier | number |"},{"line_number":39,"context_line":"                    quoted_string | in_list)"},{"line_number":40,"context_line":"condition \u003d pp.Group(comparison_term + operator + comparison_term)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"expr \u003d pp.operatorPrecedence(condition, ["}],"source_content_type":"text/x-python","patch_set":10,"id":"1af94dfe_fd1d4c10","line":39,"in_reply_to":"1af94dfe_3aa85a1f","updated":"2016-03-16 09:09:45.000000000","message":"Done","commit_id":"cacaa96327c844f4471734b6d6cac21ef7f23a4c"}],"aodhclient/v2/alarm_cli.py":[{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"918420973727617f42b3b726de5c01f7672996be","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def get_parser(self, prog_name):"},{"line_number":37,"context_line":"        parser \u003d super(CliAlarmList, self).get_parser(prog_name)"},{"line_number":38,"context_line":"        parser.add_argument(\"--query\", help\u003d\"Query\"),"},{"line_number":39,"context_line":"        return parser"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def take_action(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afc51ec_b7baba21","line":38,"range":{"start_line":38,"start_character":45,"end_line":38,"end_character":50},"updated":"2016-03-14 02:46:39.000000000","message":"could please add a more detailed help string ?","commit_id":"1f7de8e7e3a31d42d593b67bfd4604943d5dceea"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"af4242828f2c789914b92b59e069191c71ff2ec9","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def get_parser(self, prog_name):"},{"line_number":37,"context_line":"        parser \u003d super(CliAlarmList, self).get_parser(prog_name)"},{"line_number":38,"context_line":"        parser.add_argument(\"--query\", help\u003d\"Query\"),"},{"line_number":39,"context_line":"        return parser"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def take_action(self, parsed_args):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afc51ec_77c5d28c","line":38,"range":{"start_line":38,"start_character":45,"end_line":38,"end_character":50},"in_reply_to":"3afc51ec_b7baba21","updated":"2016-03-14 02:51:01.000000000","message":"Hmm, sounds helpful.","commit_id":"1f7de8e7e3a31d42d593b67bfd4604943d5dceea"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"26e32dd891fbf0ed62c2d479111e97497650a8b0","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def get_parser(self, prog_name):"},{"line_number":37,"context_line":"        parser \u003d super(CliAlarmList, self).get_parser(prog_name)"},{"line_number":38,"context_line":"        parser.add_argument(\"--query\","},{"line_number":39,"context_line":"                            help\u003d\"Rich query supported by Telemetry,\""},{"line_number":40,"context_line":"                                 \"currently supports filter and order query.\""},{"line_number":41,"context_line":"                                 \"filter: \""}],"source_content_type":"text/x-python","patch_set":3,"id":"3afc51ec_6fa68b54","line":38,"updated":"2016-03-14 12:19:09.000000000","message":"we need a way to differentiate complex query vs regular query\n\nmaybe this should be \u0027search\u0027 and regular is \u0027query\u0027?","commit_id":"afbf70de7a28e3da9761c8ff5bd2be0eb8744b56"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"8645bcc9781e61e55e5e40843b420d039a3b5ccc","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def get_parser(self, prog_name):"},{"line_number":37,"context_line":"        parser \u003d super(CliAlarmList, self).get_parser(prog_name)"},{"line_number":38,"context_line":"        parser.add_argument(\"--query\","},{"line_number":39,"context_line":"                            help\u003d\"Rich query supported by Telemetry,\""},{"line_number":40,"context_line":"                                 \"currently supports filter and order query.\""},{"line_number":41,"context_line":"                                 \"filter: \""}],"source_content_type":"text/x-python","patch_set":3,"id":"3afc51ec_7a77673a","line":38,"in_reply_to":"3afc51ec_6fa68b54","updated":"2016-03-14 12:25:42.000000000","message":"oh, we chose filter and query? seems fine then.","commit_id":"afbf70de7a28e3da9761c8ff5bd2be0eb8744b56"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"de78e4cedf3cc8332801df4654463db39463c05c","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    def get_parser(self, prog_name):"},{"line_number":37,"context_line":"        parser \u003d super(CliAlarmList, self).get_parser(prog_name)"},{"line_number":38,"context_line":"        parser.add_argument(\"--query\","},{"line_number":39,"context_line":"                            help\u003d\"Rich query supported by Telemetry,\""},{"line_number":40,"context_line":"                                 \"currently supports filter and order query.\""},{"line_number":41,"context_line":"                                 \"filter: \""},{"line_number":42,"context_line":"                                 \"{complex_op: [{simple_op: {field_name:\""}],"source_content_type":"text/x-python","patch_set":3,"id":"3afc51ec_a67c40ec","line":39,"range":{"start_line":39,"start_character":58,"end_line":39,"end_character":67},"updated":"2016-03-14 11:20:07.000000000","message":"aodh?","commit_id":"afbf70de7a28e3da9761c8ff5bd2be0eb8744b56"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"69153b059fc658633ec99f833a6073582e7e6c69","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    def get_parser(self, prog_name):"},{"line_number":37,"context_line":"        parser \u003d super(CliAlarmList, self).get_parser(prog_name)"},{"line_number":38,"context_line":"        parser.add_argument(\"--query\","},{"line_number":39,"context_line":"                            help\u003d\"Rich query supported by Telemetry,\""},{"line_number":40,"context_line":"                                 \"currently supports filter and order query.\""},{"line_number":41,"context_line":"                                 \"filter: \""},{"line_number":42,"context_line":"                                 \"{complex_op: [{simple_op: {field_name:\""}],"source_content_type":"text/x-python","patch_set":3,"id":"3afc51ec_e6ebe876","line":39,"range":{"start_line":39,"start_character":58,"end_line":39,"end_character":67},"in_reply_to":"3afc51ec_a67c40ec","updated":"2016-03-14 11:22:57.000000000","message":"Hm, I mean this is supported by all telemetry sub-projects, but if aodh makes it better for user to understand then I will change it.","commit_id":"afbf70de7a28e3da9761c8ff5bd2be0eb8744b56"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"3749849536eced44d90fea0ada2da03c3b951d09","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    def get_parser(self, prog_name):"},{"line_number":37,"context_line":"        parser \u003d super(CliAlarmList, self).get_parser(prog_name)"},{"line_number":38,"context_line":"        parser.add_argument(\"--query\","},{"line_number":39,"context_line":"                            help\u003d\"Rich query supported by Telemetry,\""},{"line_number":40,"context_line":"                                 \"currently supports filter and order query.\""},{"line_number":41,"context_line":"                                 \"filter: \""},{"line_number":42,"context_line":"                                 \"{complex_op: [{simple_op: {field_name:\""}],"source_content_type":"text/x-python","patch_set":3,"id":"3afc51ec_e9ea9bab","line":39,"range":{"start_line":39,"start_character":58,"end_line":39,"end_character":67},"in_reply_to":"3afc51ec_e6ebe876","updated":"2016-03-14 11:37:41.000000000","message":"I\u0027m not 100% sure they all support the same set of operators and all actually, so I think it\u0027s a safer bet to keep Aodh here yeah :)","commit_id":"afbf70de7a28e3da9761c8ff5bd2be0eb8744b56"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"26e32dd891fbf0ed62c2d479111e97497650a8b0","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    def get_parser(self, prog_name):"},{"line_number":37,"context_line":"        parser \u003d super(CliAlarmList, self).get_parser(prog_name)"},{"line_number":38,"context_line":"        parser.add_argument(\"--query\","},{"line_number":39,"context_line":"                            help\u003d\"Rich query supported by Telemetry,\""},{"line_number":40,"context_line":"                                 \"currently supports filter and order query.\""},{"line_number":41,"context_line":"                                 \"filter: \""},{"line_number":42,"context_line":"                                 \"{complex_op: [{simple_op: {field_name:\""}],"source_content_type":"text/x-python","patch_set":3,"id":"3afc51ec_ef0f3b86","line":39,"range":{"start_line":39,"start_character":58,"end_line":39,"end_character":67},"in_reply_to":"3afc51ec_e9ea9bab","updated":"2016-03-14 12:19:09.000000000","message":"let\u0027s keep Aodh","commit_id":"afbf70de7a28e3da9761c8ff5bd2be0eb8744b56"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"ab115cfc57cad7cfb81b78233291cec27a4cf2d8","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        return parser"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def take_action(self, parsed_args):"},{"line_number":56,"context_line":"        query \u003d getattr(parsed_args, \u0027query\u0027, None)"},{"line_number":57,"context_line":"        alarms \u003d self.app.client.alarm.list(query)"},{"line_number":58,"context_line":"        return utils.list2cols(ALARM_LIST_COLS, alarms)"},{"line_number":59,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3afc51ec_a6240ac5","line":56,"updated":"2016-03-15 08:51:49.000000000","message":"What about using \"utils.search_query_builder()\" ? (The method have been designed for Gnocchi and some operator need to be dropped for Aodh, but this allows to write query like --query \u0027project_id!\u003d\"my-id\" and (user_id\u003d\"foo\" or user_id\u003d\"bar\")\u0027\n\nAlso I don\u0027t get what \u0027order\u0027 is here ?","commit_id":"9d379881b411b01785b61be57789b16a200f7997"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"efdb1af998b7c24f20032aff7917a6b95a7ba78b","unresolved":false,"context_lines":[{"line_number":42,"context_line":"                            help\u003d\"Rich query supported by aodh, \""},{"line_number":43,"context_line":"                                 \"e.g. project_id!\u003dmy-id \""},{"line_number":44,"context_line":"                                 \"user_id\u003dfoo or user_id\u003dbar \""},{"line_number":45,"context_line":"                                 \"The complex_op is one of: [\u0027and\u0027,\""},{"line_number":46,"context_line":"                                 \"\u0027or\u0027], simple_op is one of: [\u0027\u003d\u0027, \u0027!\u003d\u0027, \""},{"line_number":47,"context_line":"                                 \"\u0027\u003c\u0027, \u0027\u003c\u003d\u0027, \u0027\u003e\u0027, \u0027\u003e\u003d\u0027].\"),"},{"line_number":48,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":7,"id":"1af94dfe_cb5d2feb","line":45,"updated":"2016-03-16 08:09:08.000000000","message":"please update this help message, there is no complex_op and simple_op","commit_id":"838739f47186698452bac23f5dcf66e973212a16"}]}
