)]}'
{"aodhclient/v2/alarm.py":[{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"316a1e850abf35a2ecf9b5e9def70e24a86641b4","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        elif \u0027event_rule\u0027 in alarm_update:"},{"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":"        elif alarm_update.get(\u0027gnocchi_resources_threshold_rule\u0027):"},{"line_number":72,"context_line":"            alarm[\u0027gnocchi_resources_threshold_rule\u0027].update("},{"line_number":73,"context_line":"                alarm_update.get(\u0027gnocchi_resources_threshold_rule\u0027))"},{"line_number":74,"context_line":"            alarm_update.pop(\u0027gnocchi_resources_threshold_rule\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a68dd71_56189184","line":71,"range":{"start_line":71,"start_character":63,"end_line":71,"end_character":66},"updated":"2016-01-21 03:15:56.000000000","message":"why not follow the event_rule \u0026 threshold_rule convention above?","commit_id":"b45403fe64df51f3bbfa2113612e13eb44b77703"}],"aodhclient/v2/alarm_cli.py":[{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"316a1e850abf35a2ecf9b5e9def70e24a86641b4","unresolved":false,"context_lines":[{"line_number":269,"context_line":"                          \u0027threshold\u0027, \u0027aggregation_method\u0027,"},{"line_number":270,"context_line":"                          \u0027evaluation_periods\u0027, \u0027metric\u0027,"},{"line_number":271,"context_line":"                          \u0027query\u0027, \u0027resource_type\u0027])"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        if self.create:"},{"line_number":274,"context_line":"            alarm[\u0027type\u0027] \u003d parsed_args.type"},{"line_number":275,"context_line":"            self._validate_args(parsed_args)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a68dd71_71527f15","line":272,"updated":"2016-01-21 03:15:56.000000000","message":"I think we should get the args based on alarm type and omit the unrelated args, just in case the user input gnocchi rules for alarm type event","commit_id":"b45403fe64df51f3bbfa2113612e13eb44b77703"},{"author":{"_account_id":6924,"name":"Pradeep Kilambi","email":"pkilambi@redhat.com","username":"pkilambi"},"change_message_id":"a8a19c28c8efa870943cb3f571537c42c44d2c94","unresolved":false,"context_lines":[{"line_number":269,"context_line":"                          \u0027threshold\u0027, \u0027aggregation_method\u0027,"},{"line_number":270,"context_line":"                          \u0027evaluation_periods\u0027, \u0027metric\u0027,"},{"line_number":271,"context_line":"                          \u0027query\u0027, \u0027resource_type\u0027])"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        if self.create:"},{"line_number":274,"context_line":"            alarm[\u0027type\u0027] \u003d parsed_args.type"},{"line_number":275,"context_line":"            self._validate_args(parsed_args)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a68dd71_d672e510","line":272,"in_reply_to":"9a68dd71_71527f15","updated":"2016-01-22 14:35:26.000000000","message":"sorry i dont fully understand your comment. The args above are needed for gnocchi alarm. Are you suggesting we only include unique args for just that type and keep the rest common?","commit_id":"b45403fe64df51f3bbfa2113612e13eb44b77703"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"c08ad7b276e5f154012fddb4dda0ce0b80fbab6a","unresolved":false,"context_lines":[{"line_number":269,"context_line":"                          \u0027threshold\u0027, \u0027aggregation_method\u0027,"},{"line_number":270,"context_line":"                          \u0027evaluation_periods\u0027, \u0027metric\u0027,"},{"line_number":271,"context_line":"                          \u0027query\u0027, \u0027resource_type\u0027])"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        if self.create:"},{"line_number":274,"context_line":"            alarm[\u0027type\u0027] \u003d parsed_args.type"},{"line_number":275,"context_line":"            self._validate_args(parsed_args)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a5de9d1_c7304a59","line":272,"in_reply_to":"9a68dd71_d672e510","updated":"2016-01-28 08:18:49.000000000","message":"What I mean here is that we only need to get the args we\u0027re interested and forget the rest based on --type value.","commit_id":"b45403fe64df51f3bbfa2113612e13eb44b77703"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"e6016c89439ed7607f30e047c8f8ebcbd9736a11","unresolved":false,"context_lines":[{"line_number":163,"context_line":"            \u0027-q\u0027, \u0027--query\u0027, metavar\u003d\u0027\u003cQUERY\u003e\u0027, dest\u003d\u0027query\u0027,"},{"line_number":164,"context_line":"            help\u003d\u0027key[op]data_type::value; list. data_type is optional, \u0027"},{"line_number":165,"context_line":"                 \u0027but if supplied must be string, integer, float, or boolean. \u0027"},{"line_number":166,"context_line":"                 \u0027Used by threshold and event alarms\u0027)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        threshold_group \u003d parser.add_argument_group(\u0027threshold alarm\u0027)"},{"line_number":169,"context_line":"        threshold_group.add_argument("}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_d044ce4a","line":166,"updated":"2016-01-25 16:59:38.000000000","message":"used by agg by resource rule","commit_id":"4bf625c19024fe0acb7a5bfc4cd85443a282b829"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"e6016c89439ed7607f30e047c8f8ebcbd9736a11","unresolved":false,"context_lines":[{"line_number":176,"context_line":"            \u0027--period\u0027, type\u003dint, metavar\u003d\u0027\u003cPERIOD\u003e\u0027, dest\u003d\u0027period\u0027,"},{"line_number":177,"context_line":"            help\u003d\u0027Length of each period (seconds) to evaluate over.\u0027)"},{"line_number":178,"context_line":"        threshold_group.add_argument("},{"line_number":179,"context_line":"            \u0027--comparison-operator\u0027, metavar\u003d\u0027\u003cOPERATOR\u003e\u0027,"},{"line_number":180,"context_line":"            dest\u003d\u0027comparison_operator\u0027, choices\u003dALARM_OPERATORS,"},{"line_number":181,"context_line":"            help\u003d\u0027Operator to compare with, one of: \u0027 + str(ALARM_OPERATORS))"},{"line_number":182,"context_line":"        threshold_group.add_argument("}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_75cdd42f","line":179,"updated":"2016-01-25 16:59:38.000000000","message":"why did this move? it\u0027s actually used by gnocchi alarms as well.","commit_id":"4bf625c19024fe0acb7a5bfc4cd85443a282b829"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"e6016c89439ed7607f30e047c8f8ebcbd9736a11","unresolved":false,"context_lines":[{"line_number":180,"context_line":"            dest\u003d\u0027comparison_operator\u0027, choices\u003dALARM_OPERATORS,"},{"line_number":181,"context_line":"            help\u003d\u0027Operator to compare with, one of: \u0027 + str(ALARM_OPERATORS))"},{"line_number":182,"context_line":"        threshold_group.add_argument("},{"line_number":183,"context_line":"            \u0027--evaluation-periods\u0027, type\u003dint, metavar\u003d\u0027\u003cEVAL_PERIODS\u003e\u0027,"},{"line_number":184,"context_line":"            dest\u003d\u0027evaluation_periods\u0027,"},{"line_number":185,"context_line":"            help\u003d\u0027Number of periods to evaluate over\u0027)"},{"line_number":186,"context_line":"        threshold_group.add_argument("}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_f5aea42c","line":183,"updated":"2016-01-25 16:59:38.000000000","message":"also used by gnocchi alarms","commit_id":"4bf625c19024fe0acb7a5bfc4cd85443a282b829"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"e6016c89439ed7607f30e047c8f8ebcbd9736a11","unresolved":false,"context_lines":[{"line_number":194,"context_line":"            dest\u003d\u0027event_type\u0027, help\u003d\u0027Event type to evaluate against\u0027)"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"        gnocchi_common_group \u003d parser.add_argument_group("},{"line_number":197,"context_line":"            \u0027gnocchi common alarm\u0027)"},{"line_number":198,"context_line":"        gnocchi_common_group.add_argument("},{"line_number":199,"context_line":"            \u0027--gnocchi-threshold\u0027, type\u003dfloat, metavar\u003d\u0027\u003cTHRESHOLD\u003e\u0027,"},{"line_number":200,"context_line":"            dest\u003d\u0027threshold\u0027, help\u003d\u0027Threshold to evaluate against.\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_b02efa89","line":197,"updated":"2016-01-25 16:59:38.000000000","message":"common gnocchi alarm rules","commit_id":"4bf625c19024fe0acb7a5bfc4cd85443a282b829"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"e6016c89439ed7607f30e047c8f8ebcbd9736a11","unresolved":false,"context_lines":[{"line_number":196,"context_line":"        gnocchi_common_group \u003d parser.add_argument_group("},{"line_number":197,"context_line":"            \u0027gnocchi common alarm\u0027)"},{"line_number":198,"context_line":"        gnocchi_common_group.add_argument("},{"line_number":199,"context_line":"            \u0027--gnocchi-threshold\u0027, type\u003dfloat, metavar\u003d\u0027\u003cTHRESHOLD\u003e\u0027,"},{"line_number":200,"context_line":"            dest\u003d\u0027threshold\u0027, help\u003d\u0027Threshold to evaluate against.\u0027)"},{"line_number":201,"context_line":"        gnocchi_common_group.add_argument("},{"line_number":202,"context_line":"            \u0027--granularity\u0027, metavar\u003d\u0027\u003cGRANULARITY\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_35eafc74","line":199,"updated":"2016-01-25 16:59:38.000000000","message":"maybe we should just reuse --threshold","commit_id":"4bf625c19024fe0acb7a5bfc4cd85443a282b829"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"e6016c89439ed7607f30e047c8f8ebcbd9736a11","unresolved":false,"context_lines":[{"line_number":220,"context_line":"            dest\u003d\u0027resource_id\u0027, help\u003d\u0027The id of a resource.\u0027)"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"        gnocchi_aggr_metrics_group \u003d parser.add_argument_group("},{"line_number":223,"context_line":"            \u0027gnocchi aggregation metrics alarm\u0027)"},{"line_number":224,"context_line":"        gnocchi_aggr_metrics_group.add_argument("},{"line_number":225,"context_line":"            \u0027--metrics\u0027, metavar\u003d\u0027\u003cMETRICS\u003e\u0027, action\u003d\u0027append\u0027,"},{"line_number":226,"context_line":"            dest\u003d\u0027metrics\u0027, help\u003d\u0027The list of metric ids.\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_d06b6eb5","line":223,"updated":"2016-01-25 16:59:38.000000000","message":"aggregation by metrics","commit_id":"4bf625c19024fe0acb7a5bfc4cd85443a282b829"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"e6016c89439ed7607f30e047c8f8ebcbd9736a11","unresolved":false,"context_lines":[{"line_number":226,"context_line":"            dest\u003d\u0027metrics\u0027, help\u003d\u0027The list of metric ids.\u0027)"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"        gnocchi_aggr_resources_thr_group \u003d parser.add_argument_group("},{"line_number":229,"context_line":"            \u0027gnocchi aggregation resource threshold alarm\u0027)"},{"line_number":230,"context_line":"        gnocchi_aggr_resources_thr_group.add_argument("},{"line_number":231,"context_line":"            \u0027--aggr-metric\u0027, metavar\u003d\u0027\u003cMETRIC\u003e\u0027,"},{"line_number":232,"context_line":"            dest\u003d\u0027metric\u0027, help\u003d\u0027Metric to evaluate against.\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_50777e9f","line":229,"updated":"2016-01-25 16:59:38.000000000","message":"aggregation by resource","commit_id":"4bf625c19024fe0acb7a5bfc4cd85443a282b829"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"e6016c89439ed7607f30e047c8f8ebcbd9736a11","unresolved":false,"context_lines":[{"line_number":228,"context_line":"        gnocchi_aggr_resources_thr_group \u003d parser.add_argument_group("},{"line_number":229,"context_line":"            \u0027gnocchi aggregation resource threshold alarm\u0027)"},{"line_number":230,"context_line":"        gnocchi_aggr_resources_thr_group.add_argument("},{"line_number":231,"context_line":"            \u0027--aggr-metric\u0027, metavar\u003d\u0027\u003cMETRIC\u003e\u0027,"},{"line_number":232,"context_line":"            dest\u003d\u0027metric\u0027, help\u003d\u0027Metric to evaluate against.\u0027)"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"        self.parser \u003d parser"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_353d1cdd","line":231,"updated":"2016-01-25 16:59:38.000000000","message":"maybe just reuse --metric","commit_id":"4bf625c19024fe0acb7a5bfc4cd85443a282b829"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"e6016c89439ed7607f30e047c8f8ebcbd9736a11","unresolved":false,"context_lines":[{"line_number":252,"context_line":"                          \u0027query\u0027])"},{"line_number":253,"context_line":"        alarm[\u0027event_rule\u0027] \u003d utils.dict_from_parsed_args("},{"line_number":254,"context_line":"            parsed_args, [\u0027event_type\u0027, \u0027query\u0027])"},{"line_number":255,"context_line":"        alarm[\u0027gnocchi_resources_threshold_rule\u0027] \u003d\\"},{"line_number":256,"context_line":"            utils.dict_from_parsed_args("},{"line_number":257,"context_line":"            parsed_args, [\u0027granularity\u0027, \u0027comparison_operator\u0027,"},{"line_number":258,"context_line":"                          \u0027threshold\u0027, \u0027aggregation_method\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_50ec5e29","line":255,"updated":"2016-01-25 16:59:38.000000000","message":"use parantheses","commit_id":"4bf625c19024fe0acb7a5bfc4cd85443a282b829"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"e6016c89439ed7607f30e047c8f8ebcbd9736a11","unresolved":false,"context_lines":[{"line_number":258,"context_line":"                          \u0027threshold\u0027, \u0027aggregation_method\u0027,"},{"line_number":259,"context_line":"                          \u0027evaluation_periods\u0027, \u0027metric\u0027,"},{"line_number":260,"context_line":"                          \u0027resource_id\u0027, \u0027resource_type\u0027])"},{"line_number":261,"context_line":"        alarm[\u0027gnocchi_aggregation_by_metrics_threshold_rule\u0027] \u003d\\"},{"line_number":262,"context_line":"            utils.dict_from_parsed_args("},{"line_number":263,"context_line":"            parsed_args, [\u0027granularity\u0027, \u0027comparison_operator\u0027,"},{"line_number":264,"context_line":"                          \u0027threshold\u0027, \u0027aggregation_method\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_f0db127a","line":261,"updated":"2016-01-25 16:59:38.000000000","message":"same","commit_id":"4bf625c19024fe0acb7a5bfc4cd85443a282b829"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"e6016c89439ed7607f30e047c8f8ebcbd9736a11","unresolved":false,"context_lines":[{"line_number":263,"context_line":"            parsed_args, [\u0027granularity\u0027, \u0027comparison_operator\u0027,"},{"line_number":264,"context_line":"                          \u0027threshold\u0027, \u0027aggregation_method\u0027,"},{"line_number":265,"context_line":"                          \u0027evaluation_periods\u0027, \u0027metrics\u0027])"},{"line_number":266,"context_line":"        alarm[\u0027gnocchi_aggregation_by_resources_threshold_rule\u0027] \u003d\\"},{"line_number":267,"context_line":"            utils.dict_from_parsed_args("},{"line_number":268,"context_line":"            parsed_args, [\u0027granularity\u0027, \u0027comparison_operator\u0027,"},{"line_number":269,"context_line":"                          \u0027threshold\u0027, \u0027aggregation_method\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a68dd71_10f26606","line":266,"updated":"2016-01-25 16:59:38.000000000","message":"same","commit_id":"4bf625c19024fe0acb7a5bfc4cd85443a282b829"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"4ad8371393cfe509a762026b4103b57ad37d69d1","unresolved":false,"context_lines":[{"line_number":212,"context_line":"            \u0027--resource-type\u0027, metavar\u003d\u0027\u003cRESOURCE_TYPE\u003e\u0027,"},{"line_number":213,"context_line":"            dest\u003d\u0027resource_type\u0027, help\u003d\u0027The type of resource.\u0027)"},{"line_number":214,"context_line":"        gnocchi_resource_threshold_group.add_argument("},{"line_number":215,"context_line":"            \u0027--metric\u0027, metavar\u003d\u0027\u003cMETRIC\u003e\u0027,"},{"line_number":216,"context_line":"            dest\u003d\u0027metric\u0027, help\u003d\u0027Metric to evaluate against.\u0027)"},{"line_number":217,"context_line":"        gnocchi_resource_threshold_group.add_argument("},{"line_number":218,"context_line":"            \u0027--resource-id\u0027, metavar\u003d\u0027\u003cRESOURCE_ID\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a68dd71_dca05b44","line":215,"updated":"2016-01-25 22:47:41.000000000","message":"this should move up to common gnocchi rules since it\u0027s used by aggregation by resource alarm","commit_id":"dbca1b1b1fbced7464e58583c3851a690fa09cc5"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"4ad8371393cfe509a762026b4103b57ad37d69d1","unresolved":false,"context_lines":[{"line_number":231,"context_line":"        if (parsed_args.type \u003d\u003d \u0027threshold\u0027 and"},{"line_number":232,"context_line":"                not (parsed_args.meter_name and parsed_args.threshold)):"},{"line_number":233,"context_line":"            self.parser.error(\u0027threshold requires --meter-name and \u0027"},{"line_number":234,"context_line":"                              \u0027--threshold\u0027)"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"    def _alarm_from_args(self, parsed_args):"},{"line_number":237,"context_line":"        alarm \u003d utils.dict_from_parsed_args("}],"source_content_type":"text/x-python","patch_set":8,"id":"9a68dd71_e7210c9f","line":234,"updated":"2016-01-25 22:47:41.000000000","message":"i think we need to add which values are required here. i assume not all can be skipped.","commit_id":"dbca1b1b1fbced7464e58583c3851a690fa09cc5"}],"setup-tests.sh":[{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"49bda42cc4128e58d01b4b26ab941560455b1c33","unresolved":false,"context_lines":[{"line_number":80,"context_line":"cat \u003e ${AODH_DATA}/aodh.conf \u003c\u003cEOF"},{"line_number":81,"context_line":"[api]"},{"line_number":82,"context_line":"paste_config \u003d ${AODH_DATA}/api-paste.ini"},{"line_number":83,"context_line":"# paste_config \u003d ${VIRTUAL_ENV}/etc/aodh/api-paste.ini"},{"line_number":84,"context_line":"[oslo_policy]"},{"line_number":85,"context_line":"policy_file \u003d ${AODH_DATA}/policy.json"},{"line_number":86,"context_line":"# policy_file \u003d ${VIRTUAL_ENV}/etc/aodh/policy.json"}],"source_content_type":"text/x-sh","patch_set":15,"id":"3a57f1b5_3c578c59","line":83,"updated":"2016-02-12 06:22:09.000000000","message":"Do we need to leave this line of the commented code?","commit_id":"34049924bb3106cd5fa7ee9be6c14e8f65c677bf"},{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"49bda42cc4128e58d01b4b26ab941560455b1c33","unresolved":false,"context_lines":[{"line_number":83,"context_line":"# paste_config \u003d ${VIRTUAL_ENV}/etc/aodh/api-paste.ini"},{"line_number":84,"context_line":"[oslo_policy]"},{"line_number":85,"context_line":"policy_file \u003d ${AODH_DATA}/policy.json"},{"line_number":86,"context_line":"# policy_file \u003d ${VIRTUAL_ENV}/etc/aodh/policy.json"},{"line_number":87,"context_line":"[database]"},{"line_number":88,"context_line":"connection \u003d $AODH_TEST_STORAGE_URL"},{"line_number":89,"context_line":"[service_credentials]"}],"source_content_type":"text/x-sh","patch_set":15,"id":"3a57f1b5_bcc93c28","line":86,"updated":"2016-02-12 06:22:09.000000000","message":"ditto","commit_id":"34049924bb3106cd5fa7ee9be6c14e8f65c677bf"}]}
