)]}'
{"vitrage/snmp_parsing/service.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"c3eda7f5ef62aca669f648a98848df88f83c04dd","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                publisher_id\u003dself.publisher,"},{"line_number":127,"context_line":"                topics\u003d[\u0027vitrage_notifications\u0027])"},{"line_number":128,"context_line":"        except Exception as e:"},{"line_number":129,"context_line":"            LOG.info(\u0027Failed to initialize oslo notifier %s\u0027, str(e))"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    def _send_snmp_to_queue(self, snmp_trap):"},{"line_number":132,"context_line":"        if str \u003d\u003d type(snmp_trap):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_3fded5d9","line":129,"range":{"start_line":129,"start_character":16,"end_line":129,"end_character":20},"updated":"2018-01-10 13:25:08.000000000","message":"Should be a warning","commit_id":"6ca8ef85c7f3544edcefac5395192e4bc841065b"},{"author":{"_account_id":25301,"name":"xupeipei","email":"xu.peipei1@zte.com.cn","username":"xupeipei"},"change_message_id":"379de718bb49c056d1890769206be0ae7ab7fe10","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                publisher_id\u003dself.publisher,"},{"line_number":127,"context_line":"                topics\u003d[\u0027vitrage_notifications\u0027])"},{"line_number":128,"context_line":"        except Exception as e:"},{"line_number":129,"context_line":"            LOG.info(\u0027Failed to initialize oslo notifier %s\u0027, str(e))"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    def _send_snmp_to_queue(self, snmp_trap):"},{"line_number":132,"context_line":"        if str \u003d\u003d type(snmp_trap):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_743f65d6","line":129,"range":{"start_line":129,"start_character":16,"end_line":129,"end_character":20},"in_reply_to":"9f91af0f_3fded5d9","updated":"2018-01-11 03:09:13.000000000","message":"Done","commit_id":"6ca8ef85c7f3544edcefac5395192e4bc841065b"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"c3eda7f5ef62aca669f648a98848df88f83c04dd","unresolved":false,"context_lines":[{"line_number":138,"context_line":"            event \u003d {EventProperties.TIME: datetime.utcnow(),"},{"line_number":139,"context_line":"                     EventProperties.TYPE: event_type,"},{"line_number":140,"context_line":"                     EventProperties.DETAILS: snmp_trap}"},{"line_number":141,"context_line":"            LOG.info(\u0027snmp oslo_notifier event: %s\u0027 % event)"},{"line_number":142,"context_line":"            self.oslo_notifier.info("},{"line_number":143,"context_line":"                ctxt\u003d{\u0027message_id\u0027: uuidutils.generate_uuid(),"},{"line_number":144,"context_line":"                      \u0027publisher_id\u0027: self.publisher,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_7f01bd37","line":141,"range":{"start_line":141,"start_character":16,"end_line":141,"end_character":20},"updated":"2018-01-10 13:25:08.000000000","message":"Do you want all events at info level? won\u0027t there be too many?","commit_id":"6ca8ef85c7f3544edcefac5395192e4bc841065b"},{"author":{"_account_id":25301,"name":"xupeipei","email":"xu.peipei1@zte.com.cn","username":"xupeipei"},"change_message_id":"379de718bb49c056d1890769206be0ae7ab7fe10","unresolved":false,"context_lines":[{"line_number":138,"context_line":"            event \u003d {EventProperties.TIME: datetime.utcnow(),"},{"line_number":139,"context_line":"                     EventProperties.TYPE: event_type,"},{"line_number":140,"context_line":"                     EventProperties.DETAILS: snmp_trap}"},{"line_number":141,"context_line":"            LOG.info(\u0027snmp oslo_notifier event: %s\u0027 % event)"},{"line_number":142,"context_line":"            self.oslo_notifier.info("},{"line_number":143,"context_line":"                ctxt\u003d{\u0027message_id\u0027: uuidutils.generate_uuid(),"},{"line_number":144,"context_line":"                      \u0027publisher_id\u0027: self.publisher,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_f42a958e","line":141,"range":{"start_line":141,"start_character":16,"end_line":141,"end_character":20},"in_reply_to":"9f91af0f_7f01bd37","updated":"2018-01-11 03:09:13.000000000","message":"Yes, there will be too many, modify it to debug level.","commit_id":"6ca8ef85c7f3544edcefac5395192e4bc841065b"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"a5523a487bc61d41bbd1fc5e3175c2522bdda90a","unresolved":false,"context_lines":[{"line_number":119,"context_line":"    def _init_oslo_notifier(self):"},{"line_number":120,"context_line":"        self.oslo_notifier \u003d None"},{"line_number":121,"context_line":"        try:"},{"line_number":122,"context_line":"            self.publisher \u003d \u0027api_%s\u0027 % socket.gethostname()"},{"line_number":123,"context_line":"            self.oslo_notifier \u003d oslo_messaging.Notifier("},{"line_number":124,"context_line":"                get_transport(self.conf),"},{"line_number":125,"context_line":"                driver\u003d\u0027messagingv2\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_36a45e57","line":122,"range":{"start_line":122,"start_character":29,"end_line":122,"end_character":60},"updated":"2018-01-12 06:11:34.000000000","message":"\u0027vitrage-snmp-parsing\u0027 is more suitable.","commit_id":"f47775b108269e4beff8f70b0ed79c68ae67f989"},{"author":{"_account_id":25301,"name":"xupeipei","email":"xu.peipei1@zte.com.cn","username":"xupeipei"},"change_message_id":"207bc54745313e43e11eb3a5d029faf9dfbc2ba7","unresolved":false,"context_lines":[{"line_number":119,"context_line":"    def _init_oslo_notifier(self):"},{"line_number":120,"context_line":"        self.oslo_notifier \u003d None"},{"line_number":121,"context_line":"        try:"},{"line_number":122,"context_line":"            self.publisher \u003d \u0027api_%s\u0027 % socket.gethostname()"},{"line_number":123,"context_line":"            self.oslo_notifier \u003d oslo_messaging.Notifier("},{"line_number":124,"context_line":"                get_transport(self.conf),"},{"line_number":125,"context_line":"                driver\u003d\u0027messagingv2\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_ba212c50","line":122,"range":{"start_line":122,"start_character":29,"end_line":122,"end_character":60},"in_reply_to":"7f96bb07_36a45e57","updated":"2018-01-12 10:09:44.000000000","message":"Done","commit_id":"f47775b108269e4beff8f70b0ed79c68ae67f989"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"a5523a487bc61d41bbd1fc5e3175c2522bdda90a","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        try:"},{"line_number":135,"context_line":"            event_type \u003d self._get_event_type(snmp_trap)"},{"line_number":136,"context_line":"            if not event_type:"},{"line_number":137,"context_line":"                return"},{"line_number":138,"context_line":"            event \u003d {EventProperties.TIME: datetime.utcnow(),"},{"line_number":139,"context_line":"                     EventProperties.TYPE: event_type,"},{"line_number":140,"context_line":"                     EventProperties.DETAILS: snmp_trap}"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_16b84274","line":137,"range":{"start_line":137,"start_character":16,"end_line":137,"end_character":22},"updated":"2018-01-12 06:11:34.000000000","message":"Please add a log information before retrun.","commit_id":"f47775b108269e4beff8f70b0ed79c68ae67f989"},{"author":{"_account_id":25301,"name":"xupeipei","email":"xu.peipei1@zte.com.cn","username":"xupeipei"},"change_message_id":"207bc54745313e43e11eb3a5d029faf9dfbc2ba7","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        try:"},{"line_number":135,"context_line":"            event_type \u003d self._get_event_type(snmp_trap)"},{"line_number":136,"context_line":"            if not event_type:"},{"line_number":137,"context_line":"                return"},{"line_number":138,"context_line":"            event \u003d {EventProperties.TIME: datetime.utcnow(),"},{"line_number":139,"context_line":"                     EventProperties.TYPE: event_type,"},{"line_number":140,"context_line":"                     EventProperties.DETAILS: snmp_trap}"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_5a8fc829","line":137,"range":{"start_line":137,"start_character":16,"end_line":137,"end_character":22},"in_reply_to":"7f96bb07_16b84274","updated":"2018-01-12 10:09:44.000000000","message":"Relative log has been added in func _get_event_type. Will it be redundant if added here?","commit_id":"f47775b108269e4beff8f70b0ed79c68ae67f989"}],"vitrage/tests/functional/snmp_parsing/test_snmp_event_process.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"c3eda7f5ef62aca669f648a98848df88f83c04dd","unresolved":false,"context_lines":[{"line_number":32,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class TestSnmpEventProcess(TestFunctionalBase):"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    DATASOURCES_OPTS \u003d ["},{"line_number":38,"context_line":"        cfg.ListOpt(\u0027types\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_02537a18","line":35,"range":{"start_line":35,"start_character":6,"end_line":35,"end_character":26},"updated":"2018-01-10 13:25:08.000000000","message":"I didn\u0027t understand the purpose of this test. You don\u0027t have a datasource upstream, and you are actually testing the Doctor datasource here, right? I don\u0027t think it makes sense. The Doctor datasource, or your proprietary datasource, can change and the code below won\u0027t reflect any real test for the system.\n\nI think that a better idea could be, after we finish the tempest tests refactoring, that you write your own proprietary tempest test and run it on your own system. And of course, you can make the unit test as thorough as you can.","commit_id":"6ca8ef85c7f3544edcefac5395192e4bc841065b"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"32013b4475432ebd0f1baadadc21e58e658c1473","unresolved":false,"context_lines":[{"line_number":32,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class TestSnmpEventProcess(TestFunctionalBase):"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    DATASOURCES_OPTS \u003d ["},{"line_number":38,"context_line":"        cfg.ListOpt(\u0027types\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_4694f48b","line":35,"range":{"start_line":35,"start_character":6,"end_line":35,"end_character":26},"in_reply_to":"7f96bb07_151e18ba","updated":"2018-01-11 17:56:57.000000000","message":"+1","commit_id":"6ca8ef85c7f3544edcefac5395192e4bc841065b"},{"author":{"_account_id":25301,"name":"xupeipei","email":"xu.peipei1@zte.com.cn","username":"xupeipei"},"change_message_id":"ae71658d0a2e76c2f15c543a310d2f8fbfb020e5","unresolved":false,"context_lines":[{"line_number":32,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class TestSnmpEventProcess(TestFunctionalBase):"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    DATASOURCES_OPTS \u003d ["},{"line_number":38,"context_line":"        cfg.ListOpt(\u0027types\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_5dc27035","line":35,"range":{"start_line":35,"start_character":6,"end_line":35,"end_character":26},"in_reply_to":"7f96bb07_151e18ba","updated":"2018-01-12 01:17:56.000000000","message":"Ok. I will delete this testcase, and add a rst file in /vitrage/doc/source/contributor.","commit_id":"6ca8ef85c7f3544edcefac5395192e4bc841065b"},{"author":{"_account_id":21414,"name":"Yujun Zhang","email":"zhang.yujunz@zte.com.cn","username":"yujunz"},"change_message_id":"c5fd6d4c74e76a5865e006dce525f86ee02344b9","unresolved":false,"context_lines":[{"line_number":32,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class TestSnmpEventProcess(TestFunctionalBase):"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    DATASOURCES_OPTS \u003d ["},{"line_number":38,"context_line":"        cfg.ListOpt(\u0027types\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_151e18ba","line":35,"range":{"start_line":35,"start_character":6,"end_line":35,"end_character":26},"in_reply_to":"7f96bb07_cae5703a","updated":"2018-01-11 07:59:17.000000000","message":"I think unittest would be enough for the moment since there is no integration with existing upstream datasource yet.\n\nWe may create a design document in `/vitrage/doc/source/contributor` to describe how to extend snmp support in datasources and how to configure it properly. The source code can be provided in the document as an example instead of demonstrating it through a test case.\n\nAs for modification of Doctor data source, you may analyze the use cases and propose it in a separate blueprint if it does have value add to it.","commit_id":"6ca8ef85c7f3544edcefac5395192e4bc841065b"},{"author":{"_account_id":25301,"name":"xupeipei","email":"xu.peipei1@zte.com.cn","username":"xupeipei"},"change_message_id":"379de718bb49c056d1890769206be0ae7ab7fe10","unresolved":false,"context_lines":[{"line_number":32,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class TestSnmpEventProcess(TestFunctionalBase):"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    DATASOURCES_OPTS \u003d ["},{"line_number":38,"context_line":"        cfg.ListOpt(\u0027types\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_cae5703a","line":35,"range":{"start_line":35,"start_character":6,"end_line":35,"end_character":26},"in_reply_to":"9f91af0f_02537a18","updated":"2018-01-11 03:09:13.000000000","message":"The origin purpose of this test is that user can add codes in their datasource according to this test, when they have snmp_triggered trap system.\nSnmp_trap processing codes are added here, because I am not sure that whether I can modify doctor datasource, when there is actually no datasource upstream in community system.\nYou mean I write tempest tests in my own system, and not submit them to community codes, just make unit test more robust?","commit_id":"6ca8ef85c7f3544edcefac5395192e4bc841065b"}],"vitrage/tests/unit/snmp_parsing/test_snmp_parsing.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"c3eda7f5ef62aca669f648a98848df88f83c04dd","unresolved":false,"context_lines":[{"line_number":106,"context_line":"    u\u00271.3.6.1.4.1.3902.4101.1.3.1.22\u0027: 0"},{"line_number":107,"context_line":"}"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"OID_MAPPING_EXPECTED \u003d {"},{"line_number":110,"context_line":"    u\u00271.3.6.1.4.1.3902.4101.1.3.1.2\u0027: u\u0027alarm_object_type\u0027,"},{"line_number":111,"context_line":"    u\u00271.3.6.1.4.1.3902.4101.1.3.1.12\u0027: u\u0027alarm_code\u0027,"},{"line_number":112,"context_line":"    u\u00271.3.6.1.4.1.3902.4101.1.3.1.15\u0027: u\u0027alarm_object_name\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_9f3921f3","line":109,"range":{"start_line":109,"start_character":0,"end_line":109,"end_character":20},"updated":"2018-01-10 13:25:08.000000000","message":"Is it used?","commit_id":"6ca8ef85c7f3544edcefac5395192e4bc841065b"},{"author":{"_account_id":25301,"name":"xupeipei","email":"xu.peipei1@zte.com.cn","username":"xupeipei"},"change_message_id":"379de718bb49c056d1890769206be0ae7ab7fe10","unresolved":false,"context_lines":[{"line_number":106,"context_line":"    u\u00271.3.6.1.4.1.3902.4101.1.3.1.22\u0027: 0"},{"line_number":107,"context_line":"}"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"OID_MAPPING_EXPECTED \u003d {"},{"line_number":110,"context_line":"    u\u00271.3.6.1.4.1.3902.4101.1.3.1.2\u0027: u\u0027alarm_object_type\u0027,"},{"line_number":111,"context_line":"    u\u00271.3.6.1.4.1.3902.4101.1.3.1.12\u0027: u\u0027alarm_code\u0027,"},{"line_number":112,"context_line":"    u\u00271.3.6.1.4.1.3902.4101.1.3.1.15\u0027: u\u0027alarm_object_name\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_af2cb699","line":109,"range":{"start_line":109,"start_character":0,"end_line":109,"end_character":20},"in_reply_to":"9f91af0f_9f3921f3","updated":"2018-01-11 03:09:13.000000000","message":"It\u0027s not used. I forgot to delete it.","commit_id":"6ca8ef85c7f3544edcefac5395192e4bc841065b"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"c3eda7f5ef62aca669f648a98848df88f83c04dd","unresolved":false,"context_lines":[{"line_number":114,"context_line":"}"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"class TestSnmpParsing(base.BaseTest):"},{"line_number":118,"context_line":"    OPTS \u003d ["},{"line_number":119,"context_line":"        cfg.IntOpt(\u0027snmp_listening_port\u0027, default\u003d8162,"},{"line_number":120,"context_line":"                   help\u003d\u0027The listening port of snmp_parsing service\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_a2072e18","line":117,"range":{"start_line":117,"start_character":6,"end_line":117,"end_character":21},"updated":"2018-01-10 13:25:08.000000000","message":"Please add also negative tests, to check the behavior when the incoming trap has the wrong structure or is not mapped to anything","commit_id":"6ca8ef85c7f3544edcefac5395192e4bc841065b"},{"author":{"_account_id":25301,"name":"xupeipei","email":"xu.peipei1@zte.com.cn","username":"xupeipei"},"change_message_id":"379de718bb49c056d1890769206be0ae7ab7fe10","unresolved":false,"context_lines":[{"line_number":114,"context_line":"}"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"class TestSnmpParsing(base.BaseTest):"},{"line_number":118,"context_line":"    OPTS \u003d ["},{"line_number":119,"context_line":"        cfg.IntOpt(\u0027snmp_listening_port\u0027, default\u003d8162,"},{"line_number":120,"context_line":"                   help\u003d\u0027The listening port of snmp_parsing service\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f96bb07_6a5bfc2d","line":117,"range":{"start_line":117,"start_character":6,"end_line":117,"end_character":21},"in_reply_to":"9f91af0f_a2072e18","updated":"2018-01-11 03:09:13.000000000","message":"Added a test for trap from different system. Test for wrong structure trap is not added, because there is check in function callback_func, and wrong structure trap will not arrive function _convert_binds_to_dict.","commit_id":"6ca8ef85c7f3544edcefac5395192e4bc841065b"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"a5523a487bc61d41bbd1fc5e3175c2522bdda90a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"7f96bb07_f90fc92b","updated":"2018-01-12 06:11:34.000000000","message":"I think you should add the test to check the alarm in entity. The snmp trap will send notification to the doctor datasource and create the alarm in graph, right?","commit_id":"f47775b108269e4beff8f70b0ed79c68ae67f989"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"d03558555c7fb55d229e086afe27c831d5b89007","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"7f96bb07_d92e4242","in_reply_to":"7f96bb07_7a6de496","updated":"2018-01-16 01:37:57.000000000","message":"Sorry, I don\u0027t understand why you need to add another BP.","commit_id":"f47775b108269e4beff8f70b0ed79c68ae67f989"},{"author":{"_account_id":25301,"name":"xupeipei","email":"xu.peipei1@zte.com.cn","username":"xupeipei"},"change_message_id":"51e1e092686ad96f1a4c036f7e753990a0767851","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"7f96bb07_e33f9922","in_reply_to":"7f96bb07_d92e4242","updated":"2018-01-17 06:12:10.000000000","message":"Maybe there is no need to add doctor datasource processing snmp trap as a bp? I think datasource processing code should be not added in this bp, because there is no upstream datasource for now. So I submit a doc about how to extend snmp trap in datasource. Do you think that will be ok?","commit_id":"f47775b108269e4beff8f70b0ed79c68ae67f989"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"ccfcbd57e3267e4d92bfe84150263b3326146386","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"7f96bb07_e6c24459","in_reply_to":"7f96bb07_e33f9922","updated":"2018-01-17 08:54:31.000000000","message":"dongwenjuan, note that the other change with the rst is not a blueprint, it is a documentation rst that will be part of docs.openstack.org/vitrage/latest/","commit_id":"f47775b108269e4beff8f70b0ed79c68ae67f989"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"9a087bedbead14108cc8c7f26df1f4cab77a899d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"7f96bb07_c9bddbd8","in_reply_to":"7f96bb07_e6c24459","updated":"2018-01-17 09:29:02.000000000","message":"Hi Ifat, thanks for letting me know. I\u0027ll check the documentation.","commit_id":"f47775b108269e4beff8f70b0ed79c68ae67f989"},{"author":{"_account_id":25301,"name":"xupeipei","email":"xu.peipei1@zte.com.cn","username":"xupeipei"},"change_message_id":"207bc54745313e43e11eb3a5d029faf9dfbc2ba7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"7f96bb07_7a6de496","in_reply_to":"7f96bb07_f90fc92b","updated":"2018-01-12 10:09:44.000000000","message":"The test case to create a doctor type alarm in graph was added on the first patch. Considering suggestion by other reviewers, I plan to add a rst for how to support snmp parsing in datasource. And codes of doctor datasource processing snmp trap event will be added in another bp.","commit_id":"f47775b108269e4beff8f70b0ed79c68ae67f989"}]}
