)]}'
{"ceilometerclient/v2/options.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"2aa01bb46ba12466e1eb9efc8aba674dfe7932ab","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        value_frags \u003d split_by_data_type(query[2])"},{"line_number":122,"context_line":"        if not value_frags:"},{"line_number":123,"context_line":"            opt[\u0027value\u0027] \u003d query[2]"},{"line_number":124,"context_line":"            if add_type:"},{"line_number":125,"context_line":"                opt[\u0027type\u0027] \u003d \u0027\u0027"},{"line_number":126,"context_line":"        else:"},{"line_number":127,"context_line":"            opt[\u0027type\u0027] \u003d value_frags[0]"}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_3adafde8","line":124,"updated":"2015-08-31 13:35:56.000000000","message":"what\u0027s this for? i think we should add a note to explain why this is needed just for event alarms","commit_id":"c34d357ae413c4ef63c3162c2cf297bec854d9e2"},{"author":{"_account_id":1894,"name":"Ryota MIBU","email":"r-mibu@cq.jp.nec.com","username":"r-mibu"},"change_message_id":"f63bcb4f0137404b9cdd3e89bf523764d397638c","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        value_frags \u003d split_by_data_type(query[2])"},{"line_number":122,"context_line":"        if not value_frags:"},{"line_number":123,"context_line":"            opt[\u0027value\u0027] \u003d query[2]"},{"line_number":124,"context_line":"            if add_type:"},{"line_number":125,"context_line":"                opt[\u0027type\u0027] \u003d \u0027\u0027"},{"line_number":126,"context_line":"        else:"},{"line_number":127,"context_line":"            opt[\u0027type\u0027] \u003d value_frags[0]"}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_2bfced6e","line":124,"in_reply_to":"da20952f_3adafde8","updated":"2015-08-31 14:24:10.000000000","message":"Agree to add note here.\n\nThis is just API difference; there is no \u0027type\u0027 in query for event alarm.","commit_id":"c34d357ae413c4ef63c3162c2cf297bec854d9e2"},{"author":{"_account_id":11235,"name":"Edwin Zhai","email":"edwin.zhai@intel.com","username":"gzhai"},"change_message_id":"2fc87f940e8538eeb158c22c87a329cac601ed93","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    This is the option to support event-alarm API."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    :param cli_query: CLI query to convert."},{"line_number":83,"context_line":"    :param add_type: Set to False to hide \u0027type\u0027 from query."},{"line_number":84,"context_line":"    \"\"\""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    if cli_query is None:"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_4ce6f644","line":83,"updated":"2015-09-01 06:01:50.000000000","message":"MIBU,\nI don\u0027t fully understand why event-alarm should hide \u0027string\u0027 in query like \"traits.instance_id\u003dstring::XXXX\".\n\nSee following alarm description, we can use ceilometer alarm-list -q \u0027type\u003devent\u0027 to get event-alarm only.\n\nSo this is the \u0027type\u0027 for the alarm, another is \u0027type\u0027 for the values in query. Seems not conflict. Maybe some other conflict?\n\n+---------------------------+--------------------------------------------------------------------+\n| Property                  | Value                                                              |\n+---------------------------+--------------------------------------------------------------------+\n| alarm_actions             | [u\u0027log://\u0027]                                                        |\n| event_type                | compute.instance.update                                            |\n| query                     | [{u\u0027field\u0027: u\u0027traits.instance_id\u0027, u\u0027type\u0027: u\u0027string\u0027, u\u0027value\u0027: u |\n|                           | \u0027a648746d-8a74-41dd-b78d-c25bae3a6a60\u0027, u\u0027op\u0027: u\u0027eq\u0027}]             |\n| type                      | event                                                              |\n+---------------------------+--------------------------------------------------------------------+","commit_id":"41b77b3630c0dec75b835175510d65dc63fedba4"},{"author":{"_account_id":11235,"name":"Edwin Zhai","email":"edwin.zhai@intel.com","username":"gzhai"},"change_message_id":"577a2d47031fc059e6cdbd08b6a9dbf16443353a","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        else:"},{"line_number":132,"context_line":"            opt[\u0027type\u0027] \u003d value_frags[0]"},{"line_number":133,"context_line":"            if add_type:"},{"line_number":134,"context_line":"                opt[\u0027value\u0027] \u003d value_frags[1]"},{"line_number":135,"context_line":"        opts.append(opt)"},{"line_number":136,"context_line":"    return opts"}],"source_content_type":"text/x-python","patch_set":2,"id":"da20952f_b60a8524","line":134,"updated":"2015-09-01 05:25:21.000000000","message":"I think need exchange \u0027type\u0027 and \u0027value\u0027.","commit_id":"41b77b3630c0dec75b835175510d65dc63fedba4"}],"ceilometerclient/v2/shell.py":[{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"43b5b8b61ce56355fb8c09c4041f64c84038d9f6","unresolved":false,"context_lines":[{"line_number":580,"context_line":"    return _wrapper"},{"line_number":581,"context_line":""},{"line_number":582,"context_line":""},{"line_number":583,"context_line":"def common_alarm_event_arguments(create\u003dFalse):"},{"line_number":584,"context_line":"    def _wrapper(func):"},{"line_number":585,"context_line":"        @utils.arg(\u0027--event-type\u0027, dest\u003d\u0027event_rule/event_type\u0027,"},{"line_number":586,"context_line":"                   metavar\u003d\u0027\u003cEVENT_TYPE\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_8e75f9fa","line":583,"updated":"2015-09-07 04:16:27.000000000","message":"the *create* is unused, or missed to indicate required arg ?","commit_id":"0f33168affaf0b789c3887ff8f496b3c71b15fbc"},{"author":{"_account_id":1894,"name":"Ryota MIBU","email":"r-mibu@cq.jp.nec.com","username":"r-mibu"},"change_message_id":"411ddeb2e322b4a93141ed4cacc2c1b7cbc9d85c","unresolved":false,"context_lines":[{"line_number":580,"context_line":"    return _wrapper"},{"line_number":581,"context_line":""},{"line_number":582,"context_line":""},{"line_number":583,"context_line":"def common_alarm_event_arguments(create\u003dFalse):"},{"line_number":584,"context_line":"    def _wrapper(func):"},{"line_number":585,"context_line":"        @utils.arg(\u0027--event-type\u0027, dest\u003d\u0027event_rule/event_type\u0027,"},{"line_number":586,"context_line":"                   metavar\u003d\u0027\u003cEVENT_TYPE\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_41800ff7","line":583,"in_reply_to":"da20952f_8e75f9fa","updated":"2015-09-07 08:19:45.000000000","message":"right, we don\u0027t need this.","commit_id":"0f33168affaf0b789c3887ff8f496b3c71b15fbc"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"43b5b8b61ce56355fb8c09c4041f64c84038d9f6","unresolved":false,"context_lines":[{"line_number":752,"context_line":"@_restore_shadowed_arg(\u0027user_id\u0027, \u0027alarm_user_id\u0027)"},{"line_number":753,"context_line":"def do_alarm_event_create(cc, args\u003d{}):"},{"line_number":754,"context_line":"    \"\"\"Create a new alarm based on events.\"\"\""},{"line_number":755,"context_line":"    fields \u003d dict(filter(lambda x: not (x[1] is None), vars(args).items()))"},{"line_number":756,"context_line":"    fields \u003d utils.key_with_slash_to_nested_dict(fields)"},{"line_number":757,"context_line":"    fields[\u0027type\u0027] \u003d \u0027event\u0027"},{"line_number":758,"context_line":"    if \u0027query\u0027 in fields[\u0027event_rule\u0027]:"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_8e4739bb","line":755,"updated":"2015-09-07 04:16:27.000000000","message":"nit: not (x[1] is None) -\u003e x[1] is not None","commit_id":"0f33168affaf0b789c3887ff8f496b3c71b15fbc"},{"author":{"_account_id":1894,"name":"Ryota MIBU","email":"r-mibu@cq.jp.nec.com","username":"r-mibu"},"change_message_id":"411ddeb2e322b4a93141ed4cacc2c1b7cbc9d85c","unresolved":false,"context_lines":[{"line_number":752,"context_line":"@_restore_shadowed_arg(\u0027user_id\u0027, \u0027alarm_user_id\u0027)"},{"line_number":753,"context_line":"def do_alarm_event_create(cc, args\u003d{}):"},{"line_number":754,"context_line":"    \"\"\"Create a new alarm based on events.\"\"\""},{"line_number":755,"context_line":"    fields \u003d dict(filter(lambda x: not (x[1] is None), vars(args).items()))"},{"line_number":756,"context_line":"    fields \u003d utils.key_with_slash_to_nested_dict(fields)"},{"line_number":757,"context_line":"    fields[\u0027type\u0027] \u003d \u0027event\u0027"},{"line_number":758,"context_line":"    if \u0027query\u0027 in fields[\u0027event_rule\u0027]:"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_c1abbf73","line":755,"in_reply_to":"da20952f_8e4739bb","updated":"2015-09-07 08:19:45.000000000","message":"Done","commit_id":"0f33168affaf0b789c3887ff8f496b3c71b15fbc"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"43b5b8b61ce56355fb8c09c4041f64c84038d9f6","unresolved":false,"context_lines":[{"line_number":993,"context_line":"@_restore_shadowed_arg(\u0027user_id\u0027, \u0027alarm_user_id\u0027)"},{"line_number":994,"context_line":"def do_alarm_event_update(cc, args\u003d{}):"},{"line_number":995,"context_line":"    \"\"\"Update an existing alarm based on events.\"\"\""},{"line_number":996,"context_line":"    fields \u003d dict(filter(lambda x: not (x[1] is None), vars(args).items()))"},{"line_number":997,"context_line":"    fields \u003d utils.key_with_slash_to_nested_dict(fields)"},{"line_number":998,"context_line":"    fields.pop(\u0027alarm_id\u0027)"},{"line_number":999,"context_line":"    fields[\u0027type\u0027] \u003d \u0027event\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_ce56915b","line":996,"updated":"2015-09-07 04:16:27.000000000","message":"ditto","commit_id":"0f33168affaf0b789c3887ff8f496b3c71b15fbc"},{"author":{"_account_id":1894,"name":"Ryota MIBU","email":"r-mibu@cq.jp.nec.com","username":"r-mibu"},"change_message_id":"411ddeb2e322b4a93141ed4cacc2c1b7cbc9d85c","unresolved":false,"context_lines":[{"line_number":993,"context_line":"@_restore_shadowed_arg(\u0027user_id\u0027, \u0027alarm_user_id\u0027)"},{"line_number":994,"context_line":"def do_alarm_event_update(cc, args\u003d{}):"},{"line_number":995,"context_line":"    \"\"\"Update an existing alarm based on events.\"\"\""},{"line_number":996,"context_line":"    fields \u003d dict(filter(lambda x: not (x[1] is None), vars(args).items()))"},{"line_number":997,"context_line":"    fields \u003d utils.key_with_slash_to_nested_dict(fields)"},{"line_number":998,"context_line":"    fields.pop(\u0027alarm_id\u0027)"},{"line_number":999,"context_line":"    fields[\u0027type\u0027] \u003d \u0027event\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_61b193df","line":996,"in_reply_to":"da20952f_ce56915b","updated":"2015-09-07 08:19:45.000000000","message":"Done","commit_id":"0f33168affaf0b789c3887ff8f496b3c71b15fbc"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"43b5b8b61ce56355fb8c09c4041f64c84038d9f6","unresolved":false,"context_lines":[{"line_number":1002,"context_line":"            fields[\u0027event_rule\u0027][\u0027query\u0027])"},{"line_number":1003,"context_line":"    try:"},{"line_number":1004,"context_line":"        alarm \u003d cc.alarms.update(args.alarm_id, **fields)"},{"line_number":1005,"context_line":"    except exc.HTTPNotFound:"},{"line_number":1006,"context_line":"        raise exc.CommandError(\u0027Alarm not found: %s\u0027 % args.alarm_id)"},{"line_number":1007,"context_line":"    _display_alarm(alarm)"},{"line_number":1008,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_aea31d42","line":1005,"updated":"2015-09-07 04:16:27.000000000","message":"sorry, I have tested your patch, create and update, when updating, I just provided alarm_id, the following error occurred:\n\nTraceback (most recent call last):\n  File \"/usr/local/bin/ceilometer\", line 10, in \u003cmodule\u003e\n    sys.exit(main())\n  File \"/usr/local/lib/python2.7/dist-packages/ceilometerclient/shell.py\", line 293, in main\n    CeilometerShell().main(args)\n  File \"/usr/local/lib/python2.7/dist-packages/ceilometerclient/shell.py\", line 242, in main\n    args.func(client, args)\n  File \"/usr/local/lib/python2.7/dist-packages/ceilometerclient/v2/shell.py\", line 487, in _wrapped\n    return func(*args, **kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/ceilometerclient/v2/shell.py\", line 599, in _wrapped\n    return func(*args, **kwargs)\n  File \"/usr/local/lib/python2.7/dist-packages/ceilometerclient/v2/shell.py\", line 191, in wrapped\n    return func(cc, args)\n  File \"/usr/local/lib/python2.7/dist-packages/ceilometerclient/v2/shell.py\", line 191, in wrapped\n    return func(cc, args)\n  File \"/usr/local/lib/python2.7/dist-packages/ceilometerclient/v2/shell.py\", line 1000, in do_alarm_event_update\n    if \u0027query\u0027 in fields[\u0027event_rule\u0027]:\nKeyError: \u0027event_rule\u0027\n\ndid I missing something?","commit_id":"0f33168affaf0b789c3887ff8f496b3c71b15fbc"},{"author":{"_account_id":1894,"name":"Ryota MIBU","email":"r-mibu@cq.jp.nec.com","username":"r-mibu"},"change_message_id":"411ddeb2e322b4a93141ed4cacc2c1b7cbc9d85c","unresolved":false,"context_lines":[{"line_number":1002,"context_line":"            fields[\u0027event_rule\u0027][\u0027query\u0027])"},{"line_number":1003,"context_line":"    try:"},{"line_number":1004,"context_line":"        alarm \u003d cc.alarms.update(args.alarm_id, **fields)"},{"line_number":1005,"context_line":"    except exc.HTTPNotFound:"},{"line_number":1006,"context_line":"        raise exc.CommandError(\u0027Alarm not found: %s\u0027 % args.alarm_id)"},{"line_number":1007,"context_line":"    _display_alarm(alarm)"},{"line_number":1008,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_61367352","line":1005,"in_reply_to":"da20952f_aea31d42","updated":"2015-09-07 08:19:45.000000000","message":"I have to consider the case that input has no event_rule. I will fix it.","commit_id":"0f33168affaf0b789c3887ff8f496b3c71b15fbc"}]}
