)]}'
{"aodhclient/v2/alarm_cli.py":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"2acd0f1b7e048f74dfba39e55fcf7df490527b74","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        return utils.list2cols(ALARM_LIST_COLS, alarms)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"def _find_alarm(self, parsed_args):"},{"line_number":66,"context_line":"        name \u003d parsed_args.alarm_id"},{"line_number":67,"context_line":"        query \u003d json.dumps({\"\u003d\": {\"name\": name}})"},{"line_number":68,"context_line":"        alarms \u003d self.app.client.alarm.list(query)"},{"line_number":69,"context_line":"        import pdb"},{"line_number":70,"context_line":"        pdb.set_trace()"},{"line_number":71,"context_line":"        if len(alarms) \u003e 1:"},{"line_number":72,"context_line":"            msg \u003d (_(\"Multiple alarms matches found for \u0027%(name)s\u0027, \""},{"line_number":73,"context_line":"                     \"use an ID to be more specific.\") %name)"},{"line_number":74,"context_line":"            raise exceptions.NoUniqueMatch(msg)"},{"line_number":75,"context_line":"        else:"},{"line_number":76,"context_line":"            return alarms[0][\u0027alarm_id\u0027]"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"def _format_alarm(alarm):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afc51ec_c66181aa","line":76,"range":{"start_line":65,"start_character":0,"end_line":76,"end_character":40},"updated":"2016-03-14 14:00:17.000000000","message":"huhu?","commit_id":"dc92f69ba04e7e845a3344897bdf6856e3acb501"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"f2935f3b5e30117af7f113a6b8b97b976d5a112c","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        return utils.list2cols(ALARM_LIST_COLS, alarms)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"def _find_alarm(self, parsed_args):"},{"line_number":66,"context_line":"        name \u003d parsed_args.alarm_id"},{"line_number":67,"context_line":"        query \u003d json.dumps({\"\u003d\": {\"name\": name}})"},{"line_number":68,"context_line":"        alarms \u003d self.app.client.alarm.list(query)"},{"line_number":69,"context_line":"        import pdb"},{"line_number":70,"context_line":"        pdb.set_trace()"},{"line_number":71,"context_line":"        if len(alarms) \u003e 1:"},{"line_number":72,"context_line":"            msg \u003d (_(\"Multiple alarms matches found for \u0027%(name)s\u0027, \""},{"line_number":73,"context_line":"                     \"use an ID to be more specific.\") %name)"},{"line_number":74,"context_line":"            raise exceptions.NoUniqueMatch(msg)"},{"line_number":75,"context_line":"        else:"},{"line_number":76,"context_line":"            return alarms[0][\u0027alarm_id\u0027]"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"def _format_alarm(alarm):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afc51ec_aa85faad","line":76,"range":{"start_line":65,"start_character":0,"end_line":76,"end_character":40},"in_reply_to":"3afc51ec_c66181aa","updated":"2016-03-15 01:18:25.000000000","message":"Ah, my bad.","commit_id":"dc92f69ba04e7e845a3344897bdf6856e3acb501"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"2acd0f1b7e048f74dfba39e55fcf7df490527b74","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"def _find_alarm(client, parsed_args):"},{"line_number":91,"context_line":"    name \u003d parsed_args.alarm"},{"line_number":92,"context_line":"    query \u003d json.dumps({\"\u003d\": {\"name\": name}})"},{"line_number":93,"context_line":"    alarms \u003d client.list(query)"},{"line_number":94,"context_line":"    if len(alarms) \u003e 1:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afc51ec_2642e510","line":91,"updated":"2016-03-14 14:00:17.000000000","message":"if you just care about the name, just use name as an arg to _find_alarm(), it\u0027d be simpler/cleaner.","commit_id":"dc92f69ba04e7e845a3344897bdf6856e3acb501"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"f2935f3b5e30117af7f113a6b8b97b976d5a112c","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"def _find_alarm(client, parsed_args):"},{"line_number":91,"context_line":"    name \u003d parsed_args.alarm"},{"line_number":92,"context_line":"    query \u003d json.dumps({\"\u003d\": {\"name\": name}})"},{"line_number":93,"context_line":"    alarms \u003d client.list(query)"},{"line_number":94,"context_line":"    if len(alarms) \u003e 1:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afc51ec_0a950edd","line":91,"in_reply_to":"3afc51ec_2642e510","updated":"2016-03-15 01:18:25.000000000","message":"Done","commit_id":"dc92f69ba04e7e845a3344897bdf6856e3acb501"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"ef262ebfb85ffc97fb48dcfde8d1a04420d388fb","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"def _find_alarm(client, parsed_args):"},{"line_number":91,"context_line":"    name \u003d parsed_args.alarm"},{"line_number":92,"context_line":"    query \u003d json.dumps({\"\u003d\": {\"name\": name}})"},{"line_number":93,"context_line":"    alarms \u003d client.list(query)"},{"line_number":94,"context_line":"    if len(alarms) \u003e 1:"},{"line_number":95,"context_line":"        msg \u003d (_(\"Multiple alarms matches found for \u0027%s\u0027, \""}],"source_content_type":"text/x-python","patch_set":2,"id":"3afc51ec_6002f170","line":92,"range":{"start_line":92,"start_character":12,"end_line":92,"end_character":23},"updated":"2016-03-15 02:39:04.000000000","message":"you\u0027d better to use jsonutils.dumps() and don\u0027t need to import json","commit_id":"dc92f69ba04e7e845a3344897bdf6856e3acb501"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"2acd0f1b7e048f74dfba39e55fcf7df490527b74","unresolved":false,"context_lines":[{"line_number":91,"context_line":"    name \u003d parsed_args.alarm"},{"line_number":92,"context_line":"    query \u003d json.dumps({\"\u003d\": {\"name\": name}})"},{"line_number":93,"context_line":"    alarms \u003d client.list(query)"},{"line_number":94,"context_line":"    if len(alarms) \u003e 1:"},{"line_number":95,"context_line":"        msg \u003d (_(\"Multiple alarms matches found for \u0027%s\u0027, \""},{"line_number":96,"context_line":"                 \"use an ID to be more specific.\") % name)"},{"line_number":97,"context_line":"        raise exceptions.NoUniqueMatch(msg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afc51ec_a6e8b511","line":94,"updated":"2016-03-14 14:00:17.000000000","message":"Is this possible?","commit_id":"dc92f69ba04e7e845a3344897bdf6856e3acb501"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"f2935f3b5e30117af7f113a6b8b97b976d5a112c","unresolved":false,"context_lines":[{"line_number":91,"context_line":"    name \u003d parsed_args.alarm"},{"line_number":92,"context_line":"    query \u003d json.dumps({\"\u003d\": {\"name\": name}})"},{"line_number":93,"context_line":"    alarms \u003d client.list(query)"},{"line_number":94,"context_line":"    if len(alarms) \u003e 1:"},{"line_number":95,"context_line":"        msg \u003d (_(\"Multiple alarms matches found for \u0027%s\u0027, \""},{"line_number":96,"context_line":"                 \"use an ID to be more specific.\") % name)"},{"line_number":97,"context_line":"        raise exceptions.NoUniqueMatch(msg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afc51ec_6aec928f","line":94,"in_reply_to":"3afc51ec_a6e8b511","updated":"2016-03-15 01:18:25.000000000","message":"As admin may search for all projects, and name is limited to be unique so it might be a chance that we have duplicated names across the whole openstack.","commit_id":"dc92f69ba04e7e845a3344897bdf6856e3acb501"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"2acd0f1b7e048f74dfba39e55fcf7df490527b74","unresolved":false,"context_lines":[{"line_number":381,"context_line":"    def take_action(self, parsed_args):"},{"line_number":382,"context_line":"        # If the user provided name instead of alarm_id,"},{"line_number":383,"context_line":"        # we should get the alarm_id first."},{"line_number":384,"context_line":"        if not uuidutils.is_uuid_like(parsed_args.alarm):"},{"line_number":385,"context_line":"            alarm_id \u003d _find_alarm(self.app.client.alarm, parsed_args)"},{"line_number":386,"context_line":"        else:"},{"line_number":387,"context_line":"            alarm_id \u003d parsed_args.alarm_id"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afc51ec_c6ece12b","line":384,"updated":"2016-03-14 14:00:17.000000000","message":"This is fuzzy and dangerous, you should just use a different option to delete by name.","commit_id":"dc92f69ba04e7e845a3344897bdf6856e3acb501"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"f2935f3b5e30117af7f113a6b8b97b976d5a112c","unresolved":false,"context_lines":[{"line_number":381,"context_line":"    def take_action(self, parsed_args):"},{"line_number":382,"context_line":"        # If the user provided name instead of alarm_id,"},{"line_number":383,"context_line":"        # we should get the alarm_id first."},{"line_number":384,"context_line":"        if not uuidutils.is_uuid_like(parsed_args.alarm):"},{"line_number":385,"context_line":"            alarm_id \u003d _find_alarm(self.app.client.alarm, parsed_args)"},{"line_number":386,"context_line":"        else:"},{"line_number":387,"context_line":"            alarm_id \u003d parsed_args.alarm_id"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afc51ec_ea8f02ca","line":384,"in_reply_to":"3afc51ec_c6ece12b","updated":"2016-03-15 01:18:25.000000000","message":"Hm, will work on that.","commit_id":"dc92f69ba04e7e845a3344897bdf6856e3acb501"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"ef262ebfb85ffc97fb48dcfde8d1a04420d388fb","unresolved":false,"context_lines":[{"line_number":384,"context_line":"        if not uuidutils.is_uuid_like(parsed_args.alarm):"},{"line_number":385,"context_line":"            alarm_id \u003d _find_alarm(self.app.client.alarm, parsed_args)"},{"line_number":386,"context_line":"        else:"},{"line_number":387,"context_line":"            alarm_id \u003d parsed_args.alarm_id"},{"line_number":388,"context_line":"        self.app.client.alarm.delete(alarm_id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afc51ec_800d7d92","line":387,"range":{"start_line":387,"start_character":23,"end_line":387,"end_character":43},"updated":"2016-03-15 02:39:04.000000000","message":"is there still a parsed_args.alarm_id?","commit_id":"dc92f69ba04e7e845a3344897bdf6856e3acb501"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"ef262ebfb85ffc97fb48dcfde8d1a04420d388fb","unresolved":false,"context_lines":[{"line_number":385,"context_line":"            alarm_id \u003d _find_alarm(self.app.client.alarm, parsed_args)"},{"line_number":386,"context_line":"        else:"},{"line_number":387,"context_line":"            alarm_id \u003d parsed_args.alarm_id"},{"line_number":388,"context_line":"        self.app.client.alarm.delete(alarm_id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afc51ec_e0e1e19b","line":388,"range":{"start_line":388,"start_character":8,"end_line":388,"end_character":46},"updated":"2016-03-15 02:39:04.000000000","message":"you\u0027d better to try this and except NotFound exception, and if NotFound raised in deletion, you need to re-try find by name. it is possible that an alarm name is uuid like.","commit_id":"dc92f69ba04e7e845a3344897bdf6856e3acb501"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"ee1844da9f5fa6527c9bee504800af2d4599c33d","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        if six.PY3:"},{"line_number":71,"context_line":"            tmp_id \u003d tmp_id.decode()"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        uuid.UUID(tmp_id)"},{"line_number":74,"context_line":"        if update_args:"},{"line_number":75,"context_line":"            return cb(tmp_id, update_args)"},{"line_number":76,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3afc51ec_b325670a","line":73,"range":{"start_line":73,"start_character":8,"end_line":73,"end_character":25},"updated":"2016-03-15 09:40:55.000000000","message":"I\u0027m completely against autodetection here to be clear. The user/developer has to specify if it\u0027s passing a name or an id, guessing is too much error prone.","commit_id":"f529eded5b4b653e1ee802b8b4e0be7a01e815c5"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"e470f32fb7bb4c9f7ee60f51b56f7f4afdc39522","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        if six.PY3:"},{"line_number":71,"context_line":"            tmp_id \u003d tmp_id.decode()"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        uuid.UUID(tmp_id)"},{"line_number":74,"context_line":"        if update_args:"},{"line_number":75,"context_line":"            return cb(tmp_id, update_args)"},{"line_number":76,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"1af94dfe_124f51be","line":73,"range":{"start_line":73,"start_character":8,"end_line":73,"end_character":25},"in_reply_to":"1af94dfe_0473b7b2","updated":"2016-03-16 03:10:43.000000000","message":"actually, if we are using uuid-name, we will first treat it as uuid, search and if it cannot found, we will again try to treat it as name and search again.","commit_id":"f529eded5b4b653e1ee802b8b4e0be7a01e815c5"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"2a1b02394cf14e500c684e202730ec0e1f6df9f1","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        if six.PY3:"},{"line_number":71,"context_line":"            tmp_id \u003d tmp_id.decode()"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        uuid.UUID(tmp_id)"},{"line_number":74,"context_line":"        if update_args:"},{"line_number":75,"context_line":"            return cb(tmp_id, update_args)"},{"line_number":76,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"1af94dfe_b265bde2","line":73,"range":{"start_line":73,"start_character":8,"end_line":73,"end_character":25},"in_reply_to":"1af94dfe_0473b7b2","updated":"2016-03-16 02:44:57.000000000","message":"yes, if users start using UUID as alarm name, this function will try twice, but I don\u0027t this situation is common practice ;-) alright, so how about support \"alarm show \u003cUUID\u003e\" and \"alarm show --name \u003calarm_name\u003e\" ? :)","commit_id":"f529eded5b4b653e1ee802b8b4e0be7a01e815c5"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"468147c28ea919a04c2ccad42cfa5b82fa6981f1","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        if six.PY3:"},{"line_number":71,"context_line":"            tmp_id \u003d tmp_id.decode()"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        uuid.UUID(tmp_id)"},{"line_number":74,"context_line":"        if update_args:"},{"line_number":75,"context_line":"            return cb(tmp_id, update_args)"},{"line_number":76,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3afc51ec_ec49d0b8","line":73,"range":{"start_line":73,"start_character":8,"end_line":73,"end_character":25},"in_reply_to":"3afc51ec_b325670a","updated":"2016-03-15 11:10:56.000000000","message":"Hi, JD, I think this change provide a convenient usage of these commands,  it will firstly try a most possible way to take corresponding action, for example, if the input is uuid, we assume it is an alarm_id (this case is most common), the handling process is same as before. If not, we assume the input is an alarm_name, and try to query it. if we use \"alarm show\", \"alarm delete\" specified an alarm uuid, it is almost same as previous process,  so it is not much error prone, what do you think, or you think this change is valueless ? :-)","commit_id":"f529eded5b4b653e1ee802b8b4e0be7a01e815c5"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"ad8fa1f56a77e2beb093b2c9e9bcb7888b08e806","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        if six.PY3:"},{"line_number":71,"context_line":"            tmp_id \u003d tmp_id.decode()"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        uuid.UUID(tmp_id)"},{"line_number":74,"context_line":"        if update_args:"},{"line_number":75,"context_line":"            return cb(tmp_id, update_args)"},{"line_number":76,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3afc51ec_09486ecb","line":73,"range":{"start_line":73,"start_character":8,"end_line":73,"end_character":25},"in_reply_to":"3afc51ec_b325670a","updated":"2016-03-15 10:40:15.000000000","message":"Hm, OK, sound reasonable, then I will add new option for --name and --alarm_id","commit_id":"f529eded5b4b653e1ee802b8b4e0be7a01e815c5"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"e470f32fb7bb4c9f7ee60f51b56f7f4afdc39522","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        if six.PY3:"},{"line_number":71,"context_line":"            tmp_id \u003d tmp_id.decode()"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        uuid.UUID(tmp_id)"},{"line_number":74,"context_line":"        if update_args:"},{"line_number":75,"context_line":"            return cb(tmp_id, update_args)"},{"line_number":76,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"1af94dfe_9bba8bbf","line":73,"range":{"start_line":73,"start_character":8,"end_line":73,"end_character":25},"in_reply_to":"3afc51ec_ec49d0b8","updated":"2016-03-16 03:10:43.000000000","message":"+1 on LiuSheng","commit_id":"f529eded5b4b653e1ee802b8b4e0be7a01e815c5"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"9297b4dd921ebf660fe20f893747de6444f5a567","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        if six.PY3:"},{"line_number":71,"context_line":"            tmp_id \u003d tmp_id.decode()"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        uuid.UUID(tmp_id)"},{"line_number":74,"context_line":"        if update_args:"},{"line_number":75,"context_line":"            return cb(tmp_id, update_args)"},{"line_number":76,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"1af94dfe_0473b7b2","line":73,"range":{"start_line":73,"start_character":8,"end_line":73,"end_character":25},"in_reply_to":"3afc51ec_ec49d0b8","updated":"2016-03-15 13:33:54.000000000","message":"If people start using UUID as alarm name, this will fail stupidly with no way of bypassing this code.\n\nAdding a --name option does not sound like a big deal to me for users.","commit_id":"f529eded5b4b653e1ee802b8b4e0be7a01e815c5"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"df0712caf6213005fb48dabb8cc4cb85d314c66b","unresolved":false,"context_lines":[{"line_number":369,"context_line":""},{"line_number":370,"context_line":"    def take_action(self, parsed_args):"},{"line_number":371,"context_line":"        attributes \u003d self._alarm_from_args(parsed_args)"},{"line_number":372,"context_line":"        if not parsed_args.alarm_id and not parsed_args.alarm_name:"},{"line_number":373,"context_line":"            msg \u003d (_(\"You need to specify at least one of \""},{"line_number":374,"context_line":"                     \"alarm ID(--alarm-id) and alarm name(--alarm-name) \""},{"line_number":375,"context_line":"                     \" to update an alarm.\"))"},{"line_number":376,"context_line":"            raise exceptions.BadRequest(404, msg)"},{"line_number":377,"context_line":"        elif parsed_args.alarm_id:"},{"line_number":378,"context_line":"            updated_alarm \u003d self.app.client.alarm.update("}],"source_content_type":"text/x-python","patch_set":7,"id":"1af94dfe_e777729d","line":375,"range":{"start_line":372,"start_character":4,"end_line":375,"end_character":45},"updated":"2016-03-16 12:31:32.000000000","message":"Right, that\u0027s not what I had in mind, because having to specify one of the other option is not really user friendly…\n\nI\u0027m not sure argparse can support something like:\n\nupdate \u003cuuid\u003e\nupdate --name \u003cname\u003e\n\nDoes it?","commit_id":"527eed443577f48de460683ec5b9c705c3dee196"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"a99f52a295f6e4d240c0bc817df246631e0ccc8b","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    return alarm"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"def _find_alarm(client, name):"},{"line_number":71,"context_line":"    # then try to get entity as name"},{"line_number":72,"context_line":"    query \u003d jsonutils.dumps({\"\u003d\": {\"name\": name}})"},{"line_number":73,"context_line":"    alarms \u003d client.list(query)"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa0719c6_97c5fe8f","line":70,"range":{"start_line":70,"start_character":4,"end_line":70,"end_character":15},"updated":"2016-03-22 07:42:34.000000000","message":"the function name should really be: _find_alarm_by_name according to the code, and I think we can return the alarm instead of just an id","commit_id":"a15f15c13bd164d5b27cb75619906f72b90b731f"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"c7bd6b6a2ca0addec3085f0398af70457b7855fd","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    return alarm"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"def _find_alarm(client, name):"},{"line_number":71,"context_line":"    # then try to get entity as name"},{"line_number":72,"context_line":"    query \u003d jsonutils.dumps({\"\u003d\": {\"name\": name}})"},{"line_number":73,"context_line":"    alarms \u003d client.list(query)"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa0719c6_37a35251","line":70,"range":{"start_line":70,"start_character":4,"end_line":70,"end_character":15},"in_reply_to":"fa0719c6_97c5fe8f","updated":"2016-03-22 07:57:29.000000000","message":"I can change the name, this function is also used by delete, so return ID will be better.","commit_id":"a15f15c13bd164d5b27cb75619906f72b90b731f"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"29f23586994eb099b7ef58800ffa10bd1c5417b8","unresolved":false,"context_lines":[{"line_number":105,"context_line":"            msg \u003d (_(\"You need to specify one of \""},{"line_number":106,"context_line":"                     \"alarm ID and alarm name(--alarm-name) \""},{"line_number":107,"context_line":"                     \"to query an alarm.\"))"},{"line_number":108,"context_line":"            raise exceptions.BadRequest(404, msg)"},{"line_number":109,"context_line":"        elif parsed_args.id:"},{"line_number":110,"context_line":"            alarm \u003d self.app.client.alarm.get(alarm_id\u003dparsed_args.id)"},{"line_number":111,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa0719c6_d7c5b63c","line":108,"range":{"start_line":108,"start_character":11,"end_line":108,"end_character":49},"updated":"2016-03-22 07:51:27.000000000","message":"I prefer this is also an exceptions.CommandError","commit_id":"a15f15c13bd164d5b27cb75619906f72b90b731f"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"a99f52a295f6e4d240c0bc817df246631e0ccc8b","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        else:"},{"line_number":112,"context_line":"            alarm_id \u003d _find_alarm(self.app.client.alarm,"},{"line_number":113,"context_line":"                                   parsed_args.alarm_name)"},{"line_number":114,"context_line":"            alarm \u003d self.app.client.alarm.get(alarm_id\u003dalarm_id)"},{"line_number":115,"context_line":"        return self.dict2columns(_format_alarm(alarm))"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"fa0719c6_174e0e6f","line":114,"range":{"start_line":114,"start_character":12,"end_line":114,"end_character":64},"updated":"2016-03-22 07:42:34.000000000","message":"if we already get the alarm, why need to get it again? just use the result returned by find_alarm_by_name, save one more http(s) request","commit_id":"a15f15c13bd164d5b27cb75619906f72b90b731f"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"29f23586994eb099b7ef58800ffa10bd1c5417b8","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        else:"},{"line_number":112,"context_line":"            alarm_id \u003d _find_alarm(self.app.client.alarm,"},{"line_number":113,"context_line":"                                   parsed_args.alarm_name)"},{"line_number":114,"context_line":"            alarm \u003d self.app.client.alarm.get(alarm_id\u003dalarm_id)"},{"line_number":115,"context_line":"        return self.dict2columns(_format_alarm(alarm))"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"fa0719c6_57e886b4","line":114,"range":{"start_line":114,"start_character":12,"end_line":114,"end_character":64},"in_reply_to":"fa0719c6_174e0e6f","updated":"2016-03-22 07:51:27.000000000","message":"agree","commit_id":"a15f15c13bd164d5b27cb75619906f72b90b731f"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"29f23586994eb099b7ef58800ffa10bd1c5417b8","unresolved":false,"context_lines":[{"line_number":379,"context_line":"            msg \u003d (_(\"You need to specify one of \""},{"line_number":380,"context_line":"                     \"alarm ID and alarm name(--alarm-name) \""},{"line_number":381,"context_line":"                     \"to update an alarm.\"))"},{"line_number":382,"context_line":"            raise exceptions.BadRequest(404, msg)"},{"line_number":383,"context_line":"        elif parsed_args.id:"},{"line_number":384,"context_line":"            updated_alarm \u003d self.app.client.alarm.update("},{"line_number":385,"context_line":"                alarm_id\u003dparsed_args.id, alarm_update\u003dattributes)"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa0719c6_77cdca5c","line":382,"range":{"start_line":382,"start_character":12,"end_line":382,"end_character":49},"updated":"2016-03-22 07:51:27.000000000","message":"ditto","commit_id":"a15f15c13bd164d5b27cb75619906f72b90b731f"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"a99f52a295f6e4d240c0bc817df246631e0ccc8b","unresolved":false,"context_lines":[{"line_number":369,"context_line":"        return parser"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"    def take_action(self, parsed_args):"},{"line_number":372,"context_line":"        if parsed_args.id and parsed_args.alarm_name:"},{"line_number":373,"context_line":"            raise exceptions.CommandError("},{"line_number":374,"context_line":"                \"You should provide only one of \""},{"line_number":375,"context_line":"                \"alarm ID and alarm name(--alarm-name) \""},{"line_number":376,"context_line":"                \"to update an alarm.\")"},{"line_number":377,"context_line":"        attributes \u003d self._alarm_from_args(parsed_args)"},{"line_number":378,"context_line":"        if not parsed_args.id and not parsed_args.alarm_name:"},{"line_number":379,"context_line":"            msg \u003d (_(\"You need to specify one of \""},{"line_number":380,"context_line":"                     \"alarm ID and alarm name(--alarm-name) \""},{"line_number":381,"context_line":"                     \"to update an alarm.\"))"},{"line_number":382,"context_line":"            raise exceptions.BadRequest(404, msg)"},{"line_number":383,"context_line":"        elif parsed_args.id:"},{"line_number":384,"context_line":"            updated_alarm \u003d self.app.client.alarm.update("},{"line_number":385,"context_line":"                alarm_id\u003dparsed_args.id, alarm_update\u003dattributes)"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa0719c6_d7bad622","line":382,"range":{"start_line":372,"start_character":8,"end_line":382,"end_character":49},"updated":"2016-03-22 07:42:34.000000000","message":"repeated logic, use a common function to check only one of them can be use","commit_id":"a15f15c13bd164d5b27cb75619906f72b90b731f"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"c7bd6b6a2ca0addec3085f0398af70457b7855fd","unresolved":false,"context_lines":[{"line_number":369,"context_line":"        return parser"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"    def take_action(self, parsed_args):"},{"line_number":372,"context_line":"        if parsed_args.id and parsed_args.alarm_name:"},{"line_number":373,"context_line":"            raise exceptions.CommandError("},{"line_number":374,"context_line":"                \"You should provide only one of \""},{"line_number":375,"context_line":"                \"alarm ID and alarm name(--alarm-name) \""},{"line_number":376,"context_line":"                \"to update an alarm.\")"},{"line_number":377,"context_line":"        attributes \u003d self._alarm_from_args(parsed_args)"},{"line_number":378,"context_line":"        if not parsed_args.id and not parsed_args.alarm_name:"},{"line_number":379,"context_line":"            msg \u003d (_(\"You need to specify one of \""},{"line_number":380,"context_line":"                     \"alarm ID and alarm name(--alarm-name) \""},{"line_number":381,"context_line":"                     \"to update an alarm.\"))"},{"line_number":382,"context_line":"            raise exceptions.BadRequest(404, msg)"},{"line_number":383,"context_line":"        elif parsed_args.id:"},{"line_number":384,"context_line":"            updated_alarm \u003d self.app.client.alarm.update("},{"line_number":385,"context_line":"                alarm_id\u003dparsed_args.id, alarm_update\u003dattributes)"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa0719c6_d7abf61b","line":382,"range":{"start_line":372,"start_character":8,"end_line":382,"end_character":49},"in_reply_to":"fa0719c6_d7bad622","updated":"2016-03-22 07:57:29.000000000","message":"Done","commit_id":"a15f15c13bd164d5b27cb75619906f72b90b731f"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"a99f52a295f6e4d240c0bc817df246631e0ccc8b","unresolved":false,"context_lines":[{"line_number":405,"context_line":"        return parser"},{"line_number":406,"context_line":""},{"line_number":407,"context_line":"    def take_action(self, parsed_args):"},{"line_number":408,"context_line":"        if parsed_args.id and parsed_args.alarm_name:"},{"line_number":409,"context_line":"            raise exceptions.CommandError("},{"line_number":410,"context_line":"                \"You should provide only one of \""},{"line_number":411,"context_line":"                \"alarm ID and alarm name(--alarm-name) \""},{"line_number":412,"context_line":"                \"to delete an alarm.\")"},{"line_number":413,"context_line":"        if not parsed_args.id and not parsed_args.alarm_name:"},{"line_number":414,"context_line":"            msg \u003d (_(\"You need to specify one of \""},{"line_number":415,"context_line":"                     \"alarm ID and alarm name(--alarm-name) \""},{"line_number":416,"context_line":"                     \"to delete an alarm.\"))"},{"line_number":417,"context_line":"            raise exceptions.BadRequest(404, msg)"},{"line_number":418,"context_line":"        elif parsed_args.id:"},{"line_number":419,"context_line":"            self.app.client.alarm.delete(parsed_args.id)"},{"line_number":420,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa0719c6_b78c8280","line":417,"range":{"start_line":408,"start_character":8,"end_line":417,"end_character":49},"updated":"2016-03-22 07:42:34.000000000","message":"again","commit_id":"a15f15c13bd164d5b27cb75619906f72b90b731f"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"1c929be97a8626261123cc63d771179fca477867","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        return alarms[0]"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"def _check_args(parsed_args, action):"},{"line_number":88,"context_line":"        if parsed_args.id and parsed_args.alarm_name:"},{"line_number":89,"context_line":"            raise exceptions.CommandError("},{"line_number":90,"context_line":"                \"You should provide only one of \""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa0719c6_7fc6404a","line":87,"range":{"start_line":87,"start_character":5,"end_line":87,"end_character":15},"updated":"2016-03-22 09:09:21.000000000","message":"it is better to change this method name more specific","commit_id":"fbd0732d316df7eee32bbb31a5161ed352b478d1"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"c1d5035a6569349659aec3e2607553cd22d13d27","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        if parsed_args.id and parsed_args.alarm_name:"},{"line_number":89,"context_line":"            raise exceptions.CommandError("},{"line_number":90,"context_line":"                \"You should provide only one of \""},{"line_number":91,"context_line":"                \"alarm ID and alarm name(--alarm-name) \""},{"line_number":92,"context_line":"                \"to %s an alarm.\" % action)"},{"line_number":93,"context_line":"        if not parsed_args.id and not parsed_args.alarm_name:"},{"line_number":94,"context_line":"            msg \u003d (_(\"You need to specify one of \""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa0719c6_9f7d141f","line":91,"range":{"start_line":91,"start_character":26,"end_line":91,"end_character":29},"updated":"2016-03-22 09:07:44.000000000","message":"or ?, I am not sure","commit_id":"fbd0732d316df7eee32bbb31a5161ed352b478d1"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"c1d5035a6569349659aec3e2607553cd22d13d27","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"def _check_args(parsed_args, action):"},{"line_number":88,"context_line":"        if parsed_args.id and parsed_args.alarm_name:"},{"line_number":89,"context_line":"            raise exceptions.CommandError("},{"line_number":90,"context_line":"                \"You should provide only one of \""},{"line_number":91,"context_line":"                \"alarm ID and alarm name(--alarm-name) \""},{"line_number":92,"context_line":"                \"to %s an alarm.\" % action)"},{"line_number":93,"context_line":"        if not parsed_args.id and not parsed_args.alarm_name:"},{"line_number":94,"context_line":"            msg \u003d (_(\"You need to specify one of \""},{"line_number":95,"context_line":"                     \"alarm ID and alarm name(--alarm-name) \""},{"line_number":96,"context_line":"                     \"to %s an alarm.\" % action))"},{"line_number":97,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"class CliAlarmShow(show.ShowOne):"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa0719c6_bf9bb871","line":97,"range":{"start_line":88,"start_character":1,"end_line":97,"end_character":46},"updated":"2016-03-22 09:07:44.000000000","message":"extra indent :)","commit_id":"fbd0732d316df7eee32bbb31a5161ed352b478d1"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"0a0c496e65642d5346d05ab111232ad5a5e7cab1","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"def _check_name_and_id(parsed_args, action):"},{"line_number":88,"context_line":"        if parsed_args.id and parsed_args.alarm_name:"},{"line_number":89,"context_line":"            raise exceptions.CommandError("},{"line_number":90,"context_line":"                \"You should provide only one of \""},{"line_number":91,"context_line":"                \"alarm ID and alarm name(--alarm-name) \""},{"line_number":92,"context_line":"                \"to %s an alarm.\" % action)"},{"line_number":93,"context_line":"        if not parsed_args.id and not parsed_args.alarm_name:"},{"line_number":94,"context_line":"            msg \u003d (_(\"You need to specify one of \""},{"line_number":95,"context_line":"                     \"alarm ID and alarm name(--alarm-name) \""},{"line_number":96,"context_line":"                     \"to %s an alarm.\") % action)"},{"line_number":97,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"class CliAlarmShow(show.ShowOne):"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa0719c6_ac47e21b","line":97,"range":{"start_line":88,"start_character":0,"end_line":97,"end_character":46},"updated":"2016-03-23 01:13:21.000000000","message":"indent too much","commit_id":"83df12e9d6ee670b2ac5c63516cc2ea1683b9571"}]}
