)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"e79dd97a1df48eb786fa7aae9d3919374a1dfa32","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     dongwenjuan \u003cdong.wenjuan@zte.com.cn\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-10-30 16:12:49 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP]Rewrite Aodh datasource"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Iaaa72dd5214f6d8168f4ba4560a6cec67d01d2a9"},{"line_number":10,"context_line":"Signed-off-by: dongwenjuan \u003cdong.wenjuan@zte.com.cn\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3f4b6375_2e2acf8f","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":28},"updated":"2017-10-30 09:21:32.000000000","message":"Can you please add a blueprint in launchpad and link it here?","commit_id":"370d992d3c6dad4d19a47d622acc48b75b52d577"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"0449c874a8dcfc4fced1e4ebd02c8f58f594b3ca","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     dongwenjuan \u003cdong.wenjuan@zte.com.cn\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-10-30 16:12:49 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP]Rewrite Aodh datasource"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Iaaa72dd5214f6d8168f4ba4560a6cec67d01d2a9"},{"line_number":10,"context_line":"Signed-off-by: dongwenjuan \u003cdong.wenjuan@zte.com.cn\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3f4b6375_71c78647","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":28},"in_reply_to":"3f4b6375_2e2acf8f","updated":"2017-10-30 09:51:13.000000000","message":"OK, Do I need to write a spec for this?","commit_id":"370d992d3c6dad4d19a47d622acc48b75b52d577"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"a77d67d80b86db38f2970fb1145d11c55a8e9419","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     dongwenjuan \u003cdong.wenjuan@zte.com.cn\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-10-30 16:12:49 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP]Rewrite Aodh datasource"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Iaaa72dd5214f6d8168f4ba4560a6cec67d01d2a9"},{"line_number":10,"context_line":"Signed-off-by: dongwenjuan \u003cdong.wenjuan@zte.com.cn\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3f4b6375_d1cf5a27","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":28},"in_reply_to":"3f4b6375_71c78647","updated":"2017-10-30 09:54:41.000000000","message":"I\u0027m not sure if a spec is required. The change is quite trivial after all. It\u0027s up to you.","commit_id":"370d992d3c6dad4d19a47d622acc48b75b52d577"}],"vitrage/datasources/aodh/driver.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"e79dd97a1df48eb786fa7aae9d3919374a1dfa32","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    def _init_convert_aodh_alarm_rule_actions(self):"},{"line_number":51,"context_line":"        self.convert_rule_actions \u003d {"},{"line_number":52,"context_line":"            AodhProps.VITRAGE: self._convert_vitrage_alarm_rule,"},{"line_number":53,"context_line":"            AodhProps.EVENT: self._convert_threshold_alarm_rule,"},{"line_number":54,"context_line":"            AodhProps.THRESHOLD: self._convert_event_alarm_rule,"},{"line_number":55,"context_line":"            AodhProps.GNOCCHI_RESOURCES_THRESHOLD:"},{"line_number":56,"context_line":"                self._convert_gnocchi_resources_threshold_alarm_rule"},{"line_number":57,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_8ef8a37c","line":54,"range":{"start_line":53,"start_character":12,"end_line":54,"end_character":63},"updated":"2017-10-30 09:21:32.000000000","message":"You got them mixed up","commit_id":"370d992d3c6dad4d19a47d622acc48b75b52d577"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"0449c874a8dcfc4fced1e4ebd02c8f58f594b3ca","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    def _init_convert_aodh_alarm_rule_actions(self):"},{"line_number":51,"context_line":"        self.convert_rule_actions \u003d {"},{"line_number":52,"context_line":"            AodhProps.VITRAGE: self._convert_vitrage_alarm_rule,"},{"line_number":53,"context_line":"            AodhProps.EVENT: self._convert_threshold_alarm_rule,"},{"line_number":54,"context_line":"            AodhProps.THRESHOLD: self._convert_event_alarm_rule,"},{"line_number":55,"context_line":"            AodhProps.GNOCCHI_RESOURCES_THRESHOLD:"},{"line_number":56,"context_line":"                self._convert_gnocchi_resources_threshold_alarm_rule"},{"line_number":57,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_31c10e30","line":54,"range":{"start_line":53,"start_character":12,"end_line":54,"end_character":63},"in_reply_to":"3f4b6375_8ef8a37c","updated":"2017-10-30 09:51:13.000000000","message":"You are right. Fix it.","commit_id":"370d992d3c6dad4d19a47d622acc48b75b52d577"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"e79dd97a1df48eb786fa7aae9d3919374a1dfa32","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def _get_aodh_alarm_type(self, alarm):"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        Aodh_type \u003d [AodhProps.EVENT, AodhProps.THRESHOL,"},{"line_number":107,"context_line":"                     AodhProps.GNOCCHI_RESOURCES_THRESHOLD]"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        alarm_type \u003d alarm[AodhProps.TYPE].copy()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_ce333b62","line":106,"range":{"start_line":106,"start_character":48,"end_line":106,"end_character":56},"updated":"2017-10-30 09:21:32.000000000","message":"missing a D at the end","commit_id":"370d992d3c6dad4d19a47d622acc48b75b52d577"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"0449c874a8dcfc4fced1e4ebd02c8f58f594b3ca","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def _get_aodh_alarm_type(self, alarm):"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        Aodh_type \u003d [AodhProps.EVENT, AodhProps.THRESHOL,"},{"line_number":107,"context_line":"                     AodhProps.GNOCCHI_RESOURCES_THRESHOLD]"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        alarm_type \u003d alarm[AodhProps.TYPE].copy()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_11dcd216","line":106,"range":{"start_line":106,"start_character":48,"end_line":106,"end_character":56},"in_reply_to":"3f4b6375_ce333b62","updated":"2017-10-30 09:51:13.000000000","message":"Will fix it.","commit_id":"370d992d3c6dad4d19a47d622acc48b75b52d577"},{"author":{"_account_id":21414,"name":"Yujun Zhang","email":"zhang.yujunz@zte.com.cn","username":"yujunz"},"change_message_id":"199c382ba98634a631e3eb83fddc3c5a5327affa","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def _init_alarm_type_to_rule(self):"},{"line_number":60,"context_line":"        self.alarm_rule_types \u003d {"},{"line_number":61,"context_line":"            AodhProps.VITRAGE: AodhProps.EVENT_RULE,"},{"line_number":62,"context_line":"            AodhProps.EVENT: AodhProps.EVENT_RULE,"},{"line_number":63,"context_line":"            AodhProps.THRESHOLD: AodhProps.THRESHOLD_RULE,"},{"line_number":64,"context_line":"            AodhProps.GNOCCHI_RESOURCES_THRESHOLD:"},{"line_number":65,"context_line":"                AodhProps.GNOCCHI_RESOURCES_THRESHOLD_RULE"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4b6375_ae365b50","line":62,"range":{"start_line":61,"start_character":0,"end_line":62,"end_character":50},"updated":"2017-11-02 08:43:06.000000000","message":"Why these two types are the same?","commit_id":"84660bc2175f25f6db81ea503d1fd6bc9689e7bc"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"62cc4f02d96e694f323a649bad28819b38ad60a7","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def _init_alarm_type_to_rule(self):"},{"line_number":60,"context_line":"        self.alarm_rule_types \u003d {"},{"line_number":61,"context_line":"            AodhProps.VITRAGE: AodhProps.EVENT_RULE,"},{"line_number":62,"context_line":"            AodhProps.EVENT: AodhProps.EVENT_RULE,"},{"line_number":63,"context_line":"            AodhProps.THRESHOLD: AodhProps.THRESHOLD_RULE,"},{"line_number":64,"context_line":"            AodhProps.GNOCCHI_RESOURCES_THRESHOLD:"},{"line_number":65,"context_line":"                AodhProps.GNOCCHI_RESOURCES_THRESHOLD_RULE"}],"source_content_type":"text/x-python","patch_set":9,"id":"3f4b6375_3bf7485c","line":62,"range":{"start_line":61,"start_character":0,"end_line":62,"end_character":50},"in_reply_to":"3f4b6375_ae365b50","updated":"2017-11-02 09:22:43.000000000","message":"Vitrage creates the event type alarm in Aodh. We want to change the type to custom and proposed a BP to Aodh for adding the custom alarm, but was not accepted. Do you remember?","commit_id":"84660bc2175f25f6db81ea503d1fd6bc9689e7bc"}],"vitrage/datasources/aodh/properties.py":[{"author":{"_account_id":21414,"name":"Yujun Zhang","email":"zhang.yujunz@zte.com.cn","username":"yujunz"},"change_message_id":"8c80c951580825e6810475a9c67dd241a540f844","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    GNOCCHI_RESOURCES_THRESHOLD \u003d \u0027gnocchi_resources_threshold\u0027"},{"line_number":35,"context_line":"    TIMESTAMP \u003d \u0027timestamp\u0027"},{"line_number":36,"context_line":"    TYPE \u003d \u0027type\u0027"},{"line_number":37,"context_line":"    VITRAGE \u003d \u0027vitrage\u0027"},{"line_number":38,"context_line":"    VITRAGE_ID \u003d \u0027vitrage_id\u0027"},{"line_number":39,"context_line":"    DETAIL \u003d \u0027detail\u0027"},{"line_number":40,"context_line":"    RULE \u003d \u0027rule\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_6db28908","line":37,"updated":"2017-11-03 05:52:30.000000000","message":"It is not aodh property, is it?","commit_id":"370d992d3c6dad4d19a47d622acc48b75b52d577"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"01faae615e233a6e9843532209f3b9b238d434c3","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    GNOCCHI_RESOURCES_THRESHOLD \u003d \u0027gnocchi_resources_threshold\u0027"},{"line_number":35,"context_line":"    TIMESTAMP \u003d \u0027timestamp\u0027"},{"line_number":36,"context_line":"    TYPE \u003d \u0027type\u0027"},{"line_number":37,"context_line":"    VITRAGE \u003d \u0027vitrage\u0027"},{"line_number":38,"context_line":"    VITRAGE_ID \u003d \u0027vitrage_id\u0027"},{"line_number":39,"context_line":"    DETAIL \u003d \u0027detail\u0027"},{"line_number":40,"context_line":"    RULE \u003d \u0027rule\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_5f19b0d4","line":37,"in_reply_to":"3f4b6375_6db28908","updated":"2017-11-03 07:22:53.000000000","message":"Yes, maybe define another AlarmType class is suitable.","commit_id":"370d992d3c6dad4d19a47d622acc48b75b52d577"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"c6e7b0ca16541b4388c6b0a3e6cd6fc857bef194","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    DELETION \u003d \u0027alarm.deletion\u0027"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"class AlarmType(object):"},{"line_number":59,"context_line":"    EVENT \u003d \u0027event\u0027"},{"line_number":60,"context_line":"    VITRAGE \u003d \u0027vitrage\u0027"},{"line_number":61,"context_line":"    THRESHOLD \u003d \u0027threshold\u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f4b6375_91e7d7ac","line":58,"range":{"start_line":58,"start_character":6,"end_line":58,"end_character":15},"updated":"2017-11-07 13:39:54.000000000","message":"Please rename it to AodhAlarmType","commit_id":"2a13ed95c8ce580f758c37f4cb113ce5a5ef7606"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"bac0fb8d98532edd799e7f00e8d2a5ae1ca6c9f5","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    DELETION \u003d \u0027alarm.deletion\u0027"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"class AlarmType(object):"},{"line_number":59,"context_line":"    EVENT \u003d \u0027event\u0027"},{"line_number":60,"context_line":"    VITRAGE \u003d \u0027vitrage\u0027"},{"line_number":61,"context_line":"    THRESHOLD \u003d \u0027threshold\u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f4b6375_120f5b37","line":58,"range":{"start_line":58,"start_character":6,"end_line":58,"end_character":15},"in_reply_to":"3f4b6375_12051b46","updated":"2017-11-08 03:18:48.000000000","message":"OK, fix it.","commit_id":"2a13ed95c8ce580f758c37f4cb113ce5a5ef7606"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"a91023cb3cd525b80bfae25069f79fd0291eefc7","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    DELETION \u003d \u0027alarm.deletion\u0027"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"class AlarmType(object):"},{"line_number":59,"context_line":"    EVENT \u003d \u0027event\u0027"},{"line_number":60,"context_line":"    VITRAGE \u003d \u0027vitrage\u0027"},{"line_number":61,"context_line":"    THRESHOLD \u003d \u0027threshold\u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f4b6375_12051b46","line":58,"range":{"start_line":58,"start_character":6,"end_line":58,"end_character":15},"in_reply_to":"3f4b6375_2fcc34b9","updated":"2017-11-08 02:56:45.000000000","message":"I see. On the other hand, \"threshold\" is not an alarm type in Vitrage, and AlarmType sounds like an enum of alarm types in Vitrage.\n\nHow about AodhExtendedAlarmType? or maybe your have a better name? as long as it doesn\u0027t sound like these are the alarm types in Vitrage.","commit_id":"2a13ed95c8ce580f758c37f4cb113ce5a5ef7606"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"5c56c339d915d18e917d1d14dc18b803f18db8ef","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    DELETION \u003d \u0027alarm.deletion\u0027"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"class AlarmType(object):"},{"line_number":59,"context_line":"    EVENT \u003d \u0027event\u0027"},{"line_number":60,"context_line":"    VITRAGE \u003d \u0027vitrage\u0027"},{"line_number":61,"context_line":"    THRESHOLD \u003d \u0027threshold\u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f4b6375_2fcc34b9","line":58,"range":{"start_line":58,"start_character":6,"end_line":58,"end_character":15},"in_reply_to":"3f4b6375_91e7d7ac","updated":"2017-11-08 00:49:07.000000000","message":"Vitrage alarm is event alarm in Aodh, so i think here use AodhAlarmType is not suitable.","commit_id":"2a13ed95c8ce580f758c37f4cb113ce5a5ef7606"}],"vitrage/datasources/ceilometer/driver.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"e13ce2065858b09dd02c8fe6f55f579ac599af9f","unresolved":false,"context_lines":[{"line_number":196,"context_line":"    @staticmethod"},{"line_number":197,"context_line":"    def get_event_types():"},{"line_number":198,"context_line":"        # Add event_types to receive notifications about"},{"line_number":199,"context_line":"        return [CeilometerEventType.CREATION,"},{"line_number":200,"context_line":"                CeilometerEventType.STATE_TRANSITION,"},{"line_number":201,"context_line":"                CeilometerEventType.RULE_CHANGE,"},{"line_number":202,"context_line":"                CeilometerEventType.DELETION]"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f4b6375_cf531939","line":199,"range":{"start_line":199,"start_character":16,"end_line":199,"end_character":35},"updated":"2017-10-31 12:46:38.000000000","message":"Why is this *Ceilometer*EventType and the others have just \"Ceil\"?","commit_id":"3729fac95f76812b3240787b564eca1d12329ef4"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"775dc80f131b2f8a789762fcaeeed5ce1fa3fa0b","unresolved":false,"context_lines":[{"line_number":196,"context_line":"    @staticmethod"},{"line_number":197,"context_line":"    def get_event_types():"},{"line_number":198,"context_line":"        # Add event_types to receive notifications about"},{"line_number":199,"context_line":"        return [CeilometerEventType.CREATION,"},{"line_number":200,"context_line":"                CeilometerEventType.STATE_TRANSITION,"},{"line_number":201,"context_line":"                CeilometerEventType.RULE_CHANGE,"},{"line_number":202,"context_line":"                CeilometerEventType.DELETION]"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f4b6375_13c47d5e","line":199,"range":{"start_line":199,"start_character":16,"end_line":199,"end_character":35},"in_reply_to":"3f4b6375_390bfe24","updated":"2017-11-02 01:24:56.000000000","message":"Done","commit_id":"3729fac95f76812b3240787b564eca1d12329ef4"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"36990007fad8880ab088df69c5b5c330de3c1656","unresolved":false,"context_lines":[{"line_number":196,"context_line":"    @staticmethod"},{"line_number":197,"context_line":"    def get_event_types():"},{"line_number":198,"context_line":"        # Add event_types to receive notifications about"},{"line_number":199,"context_line":"        return [CeilometerEventType.CREATION,"},{"line_number":200,"context_line":"                CeilometerEventType.STATE_TRANSITION,"},{"line_number":201,"context_line":"                CeilometerEventType.RULE_CHANGE,"},{"line_number":202,"context_line":"                CeilometerEventType.DELETION]"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f4b6375_390bfe24","line":199,"range":{"start_line":199,"start_character":16,"end_line":199,"end_character":35},"in_reply_to":"3f4b6375_cf531939","updated":"2017-11-01 01:26:35.000000000","message":"To keep these consistent, I can change it to CeilEventType.\n\u0027CeilometerXXX\u0027 is too long, may over 79 characters for one line, so I use \u0027CeilXXX\u0027","commit_id":"3729fac95f76812b3240787b564eca1d12329ef4"}],"vitrage/datasources/ceilometer/properties.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"b1d4c68affb57a1b35ef84a23620083ae8c56609","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"class AodhProperties(object):"},{"line_number":17,"context_line":"    ALARM_ID \u003d \u0027alarm_id\u0027"},{"line_number":18,"context_line":"    DESCRIPTION \u003d \u0027description\u0027"},{"line_number":19,"context_line":"    ENABLED \u003d \u0027enabled\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f4b6375_fda467bb","line":16,"range":{"start_line":16,"start_character":6,"end_line":16,"end_character":20},"updated":"2017-10-30 12:51:48.000000000","message":"Either have a common class for Aodh and Ceilometer, or (preferred) rename it to CeilometerProperties","commit_id":"f3db5767f035815b71305b195ec7861e2bf8018a"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"339444469a83b2bbb91cadc926b7604ce397baf1","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"class AodhProperties(object):"},{"line_number":17,"context_line":"    ALARM_ID \u003d \u0027alarm_id\u0027"},{"line_number":18,"context_line":"    DESCRIPTION \u003d \u0027description\u0027"},{"line_number":19,"context_line":"    ENABLED \u003d \u0027enabled\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f4b6375_903783e4","line":16,"range":{"start_line":16,"start_character":6,"end_line":16,"end_character":20},"in_reply_to":"3f4b6375_fda467bb","updated":"2017-10-31 01:53:06.000000000","message":"OK","commit_id":"f3db5767f035815b71305b195ec7861e2bf8018a"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"b1d4c68affb57a1b35ef84a23620083ae8c56609","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    GNOCCHI_RESOURCES_THRESHOLD_RULE \u003d \u0027gnocchi_resources_threshold_rule\u0027"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class AodhState(object):"},{"line_number":42,"context_line":"    OK \u003d \u0027ok\u0027"},{"line_number":43,"context_line":"    ALARM \u003d \u0027alarm\u0027"},{"line_number":44,"context_line":"    INSUFFICIENT_DATA \u003d \u0027insufficient_data\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f4b6375_bdaeef95","line":41,"range":{"start_line":41,"start_character":6,"end_line":41,"end_character":15},"updated":"2017-10-30 12:51:48.000000000","message":"I think this can be common to Ceilometer and Aodh","commit_id":"f3db5767f035815b71305b195ec7861e2bf8018a"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"9c673984f93312a70ac65a1b0bd6dd0dbe3b9ece","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    GNOCCHI_RESOURCES_THRESHOLD_RULE \u003d \u0027gnocchi_resources_threshold_rule\u0027"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class AodhState(object):"},{"line_number":42,"context_line":"    OK \u003d \u0027ok\u0027"},{"line_number":43,"context_line":"    ALARM \u003d \u0027alarm\u0027"},{"line_number":44,"context_line":"    INSUFFICIENT_DATA \u003d \u0027insufficient_data\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f4b6375_ec2023fa","line":41,"range":{"start_line":41,"start_character":6,"end_line":41,"end_character":15},"in_reply_to":"3f4b6375_b03a7fca","updated":"2017-10-31 05:21:47.000000000","message":"Ok","commit_id":"f3db5767f035815b71305b195ec7861e2bf8018a"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"339444469a83b2bbb91cadc926b7604ce397baf1","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    GNOCCHI_RESOURCES_THRESHOLD_RULE \u003d \u0027gnocchi_resources_threshold_rule\u0027"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class AodhState(object):"},{"line_number":42,"context_line":"    OK \u003d \u0027ok\u0027"},{"line_number":43,"context_line":"    ALARM \u003d \u0027alarm\u0027"},{"line_number":44,"context_line":"    INSUFFICIENT_DATA \u003d \u0027insufficient_data\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f4b6375_b03a7fca","line":41,"range":{"start_line":41,"start_character":6,"end_line":41,"end_character":15},"in_reply_to":"3f4b6375_bdaeef95","updated":"2017-10-31 01:53:06.000000000","message":"I prefer to rename it as CeilometerState. If we define it as common, so many files will need to fix. What do you think?","commit_id":"f3db5767f035815b71305b195ec7861e2bf8018a"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"b1d4c68affb57a1b35ef84a23620083ae8c56609","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    INSUFFICIENT_DATA \u003d \u0027insufficient_data\u0027"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"class AodhEventType(object):"},{"line_number":48,"context_line":"    CREATION \u003d \u0027alarm.creation\u0027"},{"line_number":49,"context_line":"    RULE_CHANGE \u003d \u0027alarm.rule_change\u0027"},{"line_number":50,"context_line":"    STATE_TRANSITION \u003d \u0027alarm.state_transition\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f4b6375_3d9aff6d","line":47,"range":{"start_line":47,"start_character":6,"end_line":47,"end_character":19},"updated":"2017-10-30 12:51:48.000000000","message":"This can be common as well","commit_id":"f3db5767f035815b71305b195ec7861e2bf8018a"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"339444469a83b2bbb91cadc926b7604ce397baf1","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    INSUFFICIENT_DATA \u003d \u0027insufficient_data\u0027"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"class AodhEventType(object):"},{"line_number":48,"context_line":"    CREATION \u003d \u0027alarm.creation\u0027"},{"line_number":49,"context_line":"    RULE_CHANGE \u003d \u0027alarm.rule_change\u0027"},{"line_number":50,"context_line":"    STATE_TRANSITION \u003d \u0027alarm.state_transition\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f4b6375_50310bec","line":47,"range":{"start_line":47,"start_character":6,"end_line":47,"end_character":19},"in_reply_to":"3f4b6375_3d9aff6d","updated":"2017-10-31 01:53:06.000000000","message":"same as above.","commit_id":"f3db5767f035815b71305b195ec7861e2bf8018a"}],"vitrage/datasources/ceilometer/transformer.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"e13ce2065858b09dd02c8fe6f55f579ac599af9f","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    # Event types which need to refer them differently"},{"line_number":39,"context_line":"    GRAPH_ACTION_MAPPING \u003d {"},{"line_number":40,"context_line":"        CeilometerEventType.DELETION: GraphAction.DELETE_ENTITY,"},{"line_number":41,"context_line":"    }"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def __init__(self, transformers, conf):"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f4b6375_e9f7ea58","line":40,"range":{"start_line":40,"start_character":8,"end_line":40,"end_character":27},"updated":"2017-10-31 12:46:38.000000000","message":"import as CeilEventType?","commit_id":"3729fac95f76812b3240787b564eca1d12329ef4"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"36990007fad8880ab088df69c5b5c330de3c1656","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    # Event types which need to refer them differently"},{"line_number":39,"context_line":"    GRAPH_ACTION_MAPPING \u003d {"},{"line_number":40,"context_line":"        CeilometerEventType.DELETION: GraphAction.DELETE_ENTITY,"},{"line_number":41,"context_line":"    }"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def __init__(self, transformers, conf):"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f4b6375_f90c463a","line":40,"range":{"start_line":40,"start_character":8,"end_line":40,"end_character":27},"in_reply_to":"3f4b6375_e9f7ea58","updated":"2017-11-01 01:26:35.000000000","message":"OK.","commit_id":"3729fac95f76812b3240787b564eca1d12329ef4"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"775dc80f131b2f8a789762fcaeeed5ce1fa3fa0b","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    # Event types which need to refer them differently"},{"line_number":39,"context_line":"    GRAPH_ACTION_MAPPING \u003d {"},{"line_number":40,"context_line":"        CeilometerEventType.DELETION: GraphAction.DELETE_ENTITY,"},{"line_number":41,"context_line":"    }"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def __init__(self, transformers, conf):"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f4b6375_b3b5a9f0","line":40,"range":{"start_line":40,"start_character":8,"end_line":40,"end_character":27},"in_reply_to":"3f4b6375_f90c463a","updated":"2017-11-02 01:24:56.000000000","message":"Done","commit_id":"3729fac95f76812b3240787b564eca1d12329ef4"}],"vitrage/tests/functional/datasources/aodh/test_aodh.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"e13ce2065858b09dd02c8fe6f55f579ac599af9f","unresolved":false,"context_lines":[{"line_number":59,"context_line":"                         len(processor.entity_graph))"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        detail \u003d {TransformerBase.QUERY_RESULT: \u0027\u0027,"},{"line_number":62,"context_line":"                  DSProp.ENTITY_TYPE: AODH_DATASOURCE}"},{"line_number":63,"context_line":"        spec_list \u003d \\"},{"line_number":64,"context_line":"            mock_transformer.simple_aodh_alarm_generators(alarm_num\u003d1,"},{"line_number":65,"context_line":"                                                          snapshot_events\u003d1,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f4b6375_2983c2ab","line":62,"range":{"start_line":62,"start_character":18,"end_line":62,"end_character":53},"updated":"2017-10-31 12:46:38.000000000","message":"Why did you add it?","commit_id":"3729fac95f76812b3240787b564eca1d12329ef4"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"36990007fad8880ab088df69c5b5c330de3c1656","unresolved":false,"context_lines":[{"line_number":59,"context_line":"                         len(processor.entity_graph))"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        detail \u003d {TransformerBase.QUERY_RESULT: \u0027\u0027,"},{"line_number":62,"context_line":"                  DSProp.ENTITY_TYPE: AODH_DATASOURCE}"},{"line_number":63,"context_line":"        spec_list \u003d \\"},{"line_number":64,"context_line":"            mock_transformer.simple_aodh_alarm_generators(alarm_num\u003d1,"},{"line_number":65,"context_line":"                                                          snapshot_events\u003d1,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f4b6375_d9498a60","line":62,"range":{"start_line":62,"start_character":18,"end_line":62,"end_character":53},"in_reply_to":"3f4b6375_2983c2ab","updated":"2017-11-01 01:26:35.000000000","message":"It can be not added. We mock the aodh_event with \u0027DSProp.ENTITY_TYPE: AODH_DATASOURCE\u0027 default. But for ceilometer datasource, here we need to fill with \u0027DSProp.ENTITY_TYPE: CEILOMETER_DATASOURCE\u0027 when we use the same mock. It was obvious for developer to distiguish these two datasources.","commit_id":"3729fac95f76812b3240787b564eca1d12329ef4"}],"vitrage/tests/functional/datasources/ceilometer/test_ceilometer.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"e13ce2065858b09dd02c8fe6f55f579ac599af9f","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from vitrage.tests.mocks import mock_transformer"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"class TestCeilometerAlarms(TestDataSourcesBase):"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    DATASOURCES_OPTS \u003d ["},{"line_number":35,"context_line":"        cfg.ListOpt(\u0027types\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f4b6375_696f7afc","line":32,"range":{"start_line":32,"start_character":6,"end_line":32,"end_character":26},"updated":"2017-10-31 12:46:38.000000000","message":"What is this test? is it the old Aodh test that you renamed to CeilometerTest? is it going to work, now that Ceilometer API was removed?\nAs far as I understand, the Ceilometer datasource can only work on top of older OpenStack versions. It\u0027s a good question how we can test it...","commit_id":"3729fac95f76812b3240787b564eca1d12329ef4"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"7041598a4ba6c88e2c2f7fb21f0bd5ec5d73ee18","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from vitrage.tests.mocks import mock_transformer"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"class TestCeilometerAlarms(TestDataSourcesBase):"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    DATASOURCES_OPTS \u003d ["},{"line_number":35,"context_line":"        cfg.ListOpt(\u0027types\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f4b6375_b9712e47","line":32,"range":{"start_line":32,"start_character":6,"end_line":32,"end_character":26},"in_reply_to":"3f4b6375_597d9a6c","updated":"2017-11-01 01:37:40.000000000","message":"Sorry, I have some misunderstand to explain the tox. Here the tests don\u0027t use ceilometer API. we mock the entity for process to handle.","commit_id":"3729fac95f76812b3240787b564eca1d12329ef4"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"36990007fad8880ab088df69c5b5c330de3c1656","unresolved":false,"context_lines":[{"line_number":29,"context_line":"from vitrage.tests.mocks import mock_transformer"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"class TestCeilometerAlarms(TestDataSourcesBase):"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    DATASOURCES_OPTS \u003d ["},{"line_number":35,"context_line":"        cfg.ListOpt(\u0027types\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f4b6375_597d9a6c","line":32,"range":{"start_line":32,"start_character":6,"end_line":32,"end_character":26},"in_reply_to":"3f4b6375_696f7afc","updated":"2017-11-01 01:26:35.000000000","message":"Yes, it\u0027s the old Aodh test.\n\nAll these tests are triggered by tox. In the virtual env, we specify the Ceilometerclient version as older in the test-requirements .txt file, it can be tested.\n\nBut for the tempest tests, I think we can not run the ceilometer tests. One issue is Ceilometer API was removed, another is we can not support ceilometer datasource and aodh datasource simultaneously. Meanwhile the listener service can not handle the same EventType in different datasources.","commit_id":"3729fac95f76812b3240787b564eca1d12329ef4"}],"vitrage_tempest_tests/tests/api/alarms/base.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"e79dd97a1df48eb786fa7aae9d3919374a1dfa32","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    def _delete_aodh_alarms(self):"},{"line_number":49,"context_line":"        alarms \u003d self.aodh_client.alarm.list()"},{"line_number":50,"context_line":"        for alarm in alarms:"},{"line_number":51,"context_line":"            self.aodh_client.alarm.delete(alarm[\u0027alarm_id\u0027])"},{"line_number":52,"context_line":"        self._wait_for_status(20,"},{"line_number":53,"context_line":"                              self._check_num_alarms,"},{"line_number":54,"context_line":"                              num_alarms\u003d0)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_aed47fbe","line":51,"range":{"start_line":51,"start_character":48,"end_line":51,"end_character":58},"updated":"2017-10-30 09:21:32.000000000","message":"Please use a constant","commit_id":"370d992d3c6dad4d19a47d622acc48b75b52d577"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"0449c874a8dcfc4fced1e4ebd02c8f58f594b3ca","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    def _delete_aodh_alarms(self):"},{"line_number":49,"context_line":"        alarms \u003d self.aodh_client.alarm.list()"},{"line_number":50,"context_line":"        for alarm in alarms:"},{"line_number":51,"context_line":"            self.aodh_client.alarm.delete(alarm[\u0027alarm_id\u0027])"},{"line_number":52,"context_line":"        self._wait_for_status(20,"},{"line_number":53,"context_line":"                              self._check_num_alarms,"},{"line_number":54,"context_line":"                              num_alarms\u003d0)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_31d6aef3","line":51,"range":{"start_line":51,"start_character":48,"end_line":51,"end_character":58},"in_reply_to":"3f4b6375_aed47fbe","updated":"2017-10-30 09:51:13.000000000","message":"OK","commit_id":"370d992d3c6dad4d19a47d622acc48b75b52d577"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"e79dd97a1df48eb786fa7aae9d3919374a1dfa32","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        if len(self.aodh_client.alarm.list()) !\u003d num_alarms:"},{"line_number":79,"context_line":"            return False"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        return all(alarm[\u0027state\u0027].upper() \u003d\u003d state.upper()"},{"line_number":82,"context_line":"                   for alarm in self.aodh_client.alarm.list())"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_4ee3cba5","line":81,"range":{"start_line":81,"start_character":25,"end_line":81,"end_character":32},"updated":"2017-10-30 09:21:32.000000000","message":"Please use a constant","commit_id":"370d992d3c6dad4d19a47d622acc48b75b52d577"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"0449c874a8dcfc4fced1e4ebd02c8f58f594b3ca","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        if len(self.aodh_client.alarm.list()) !\u003d num_alarms:"},{"line_number":79,"context_line":"            return False"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        return all(alarm[\u0027state\u0027].upper() \u003d\u003d state.upper()"},{"line_number":82,"context_line":"                   for alarm in self.aodh_client.alarm.list())"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_91f8c27c","line":81,"range":{"start_line":81,"start_character":25,"end_line":81,"end_character":32},"in_reply_to":"3f4b6375_4ee3cba5","updated":"2017-10-30 09:51:13.000000000","message":"OK","commit_id":"370d992d3c6dad4d19a47d622acc48b75b52d577"}]}
