)]}'
{"vitrage/datasources/collectd/mapper.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"a48d649dacc698cf9f32d829870f25bdbfe4819f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016 - Nokia"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f2577a7_e9f415f3","line":1,"range":{"start_line":1,"start_character":12,"end_line":1,"end_character":16},"updated":"2017-09-18 13:37:51.000000000","message":"2017 :-)","commit_id":"f98a31f5ffbc5e2592331c62aabe0e607a13b628"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"9298224a992706ff52ce5f648851a2dde7f5e06c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016 - Nokia"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f2577a7_c94159ab","line":1,"range":{"start_line":1,"start_character":12,"end_line":1,"end_character":16},"in_reply_to":"5f2577a7_e9f415f3","updated":"2017-09-18 13:48:14.000000000","message":"Done","commit_id":"f98a31f5ffbc5e2592331c62aabe0e607a13b628"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"a48d649dacc698cf9f32d829870f25bdbfe4819f","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def find_regex(self, collectd_name):"},{"line_number":39,"context_line":"        for pattern, value in self.mapping.items():"},{"line_number":40,"context_line":"            type_, name \u003d value[\u0027type\u0027], value[\u0027name\u0027]"},{"line_number":41,"context_line":"            if re.match(pattern, collectd_name):"},{"line_number":42,"context_line":"                if name \u003d\u003d COLLECTD_HOST_PARAM:"},{"line_number":43,"context_line":"                    return \\"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f2577a7_891a3114","line":40,"range":{"start_line":40,"start_character":12,"end_line":40,"end_character":54},"updated":"2017-09-18 13:37:51.000000000","message":"You better move this line inside the \u0027if\u0027, as usually it won\u0027t be needed","commit_id":"f98a31f5ffbc5e2592331c62aabe0e607a13b628"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"9298224a992706ff52ce5f648851a2dde7f5e06c","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def find_regex(self, collectd_name):"},{"line_number":39,"context_line":"        for pattern, value in self.mapping.items():"},{"line_number":40,"context_line":"            type_, name \u003d value[\u0027type\u0027], value[\u0027name\u0027]"},{"line_number":41,"context_line":"            if re.match(pattern, collectd_name):"},{"line_number":42,"context_line":"                if name \u003d\u003d COLLECTD_HOST_PARAM:"},{"line_number":43,"context_line":"                    return \\"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f2577a7_8947d1bc","line":40,"range":{"start_line":40,"start_character":12,"end_line":40,"end_character":54},"in_reply_to":"5f2577a7_891a3114","updated":"2017-09-18 13:48:14.000000000","message":"Done","commit_id":"f98a31f5ffbc5e2592331c62aabe0e607a13b628"},{"author":{"_account_id":21414,"name":"Yujun Zhang","email":"zhang.yujunz@zte.com.cn","username":"yujunz"},"change_message_id":"cf8fb4bae3da05e87369acab5c460f7d45acdcde","unresolved":false,"context_lines":[{"line_number":33,"context_line":"                    CProps.RESOURCE_TYPE: resource_value[\u0027type\u0027],"},{"line_number":34,"context_line":"                    CProps.RESOURCE_NAME: resource_value[\u0027name\u0027]"},{"line_number":35,"context_line":"                }"},{"line_number":36,"context_line":"        return self.find_regex(collectd_name)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def find_regex(self, collectd_name):"},{"line_number":39,"context_line":"        for pattern, value in self.mapping.items():"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff5d4b2f_0a715be1","line":36,"range":{"start_line":36,"start_character":15,"end_line":36,"end_character":45},"updated":"2017-09-19 03:55:42.000000000","message":"Will this result in unexpected matching if the collectd_name includes reserved letter in regex? For example \"A.C\" would match \"ABC\".","commit_id":"026b87e97207b5842477b0dfa51caaf1f3ecba51"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"e44d7eba0e39825d46812b6a4a0dcf156c4e05f2","unresolved":false,"context_lines":[{"line_number":33,"context_line":"                    CProps.RESOURCE_TYPE: resource_value[\u0027type\u0027],"},{"line_number":34,"context_line":"                    CProps.RESOURCE_NAME: resource_value[\u0027name\u0027]"},{"line_number":35,"context_line":"                }"},{"line_number":36,"context_line":"        return self.find_regex(collectd_name)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def find_regex(self, collectd_name):"},{"line_number":39,"context_line":"        for pattern, value in self.mapping.items():"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff5d4b2f_7e9ad9c5","line":36,"range":{"start_line":36,"start_character":15,"end_line":36,"end_character":45},"in_reply_to":"ff5d4b2f_0a715be1","updated":"2017-09-19 07:06:21.000000000","message":"I first look for an exact match without a regex.\nso if a.c appears it will first look for a.c then it will check for the regex\nI would also use parenthesis to prevent this\ni.e \"a(.)c\"","commit_id":"026b87e97207b5842477b0dfa51caaf1f3ecba51"},{"author":{"_account_id":21414,"name":"Yujun Zhang","email":"zhang.yujunz@zte.com.cn","username":"yujunz"},"change_message_id":"2f32031012e9f89ac53f52073744fec99a5fbd23","unresolved":false,"context_lines":[{"line_number":33,"context_line":"                    CProps.RESOURCE_TYPE: resource_value[\u0027type\u0027],"},{"line_number":34,"context_line":"                    CProps.RESOURCE_NAME: resource_value[\u0027name\u0027]"},{"line_number":35,"context_line":"                }"},{"line_number":36,"context_line":"        return self.find_regex(collectd_name)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def find_regex(self, collectd_name):"},{"line_number":39,"context_line":"        for pattern, value in self.mapping.items():"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf57530f_dcd66dc4","line":36,"range":{"start_line":36,"start_character":15,"end_line":36,"end_character":45},"in_reply_to":"ff5d4b2f_7e9ad9c5","updated":"2017-09-20 02:18:43.000000000","message":"I mean when you search for \"a.c\" for exact match and it does not exist, it will reach \"abc\". This is not an expected behavior.\n\nSee https://review.openstack.org/#/c/505469/ for details.","commit_id":"026b87e97207b5842477b0dfa51caaf1f3ecba51"}],"vitrage/tests/unit/datasources/collectd/test_mapper.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"a48d649dacc698cf9f32d829870f25bdbfe4819f","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from vitrage.datasources.collectd.mapper import CollectdMapper"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class TestCollectdMapper(TestCase):"},{"line_number":21,"context_line":"    def setUp(self):"},{"line_number":22,"context_line":"        super(TestCollectdMapper, self).setUp()"},{"line_number":23,"context_line":"        self.mapper \u003d CollectdMapper({"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f2577a7_c9e959e6","line":20,"range":{"start_line":20,"start_character":6,"end_line":20,"end_character":24},"updated":"2017-09-18 13:37:51.000000000","message":"What if there are two matches?","commit_id":"f98a31f5ffbc5e2592331c62aabe0e607a13b628"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"9298224a992706ff52ce5f648851a2dde7f5e06c","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from vitrage.datasources.collectd.mapper import CollectdMapper"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class TestCollectdMapper(TestCase):"},{"line_number":21,"context_line":"    def setUp(self):"},{"line_number":22,"context_line":"        super(TestCollectdMapper, self).setUp()"},{"line_number":23,"context_line":"        self.mapper \u003d CollectdMapper({"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f2577a7_2931fd5a","line":20,"range":{"start_line":20,"start_character":6,"end_line":20,"end_character":24},"in_reply_to":"5f2577a7_c9e959e6","updated":"2017-09-18 13:48:14.000000000","message":"then the first will be match and it is an error\nthe conf file must have a unique regex in it","commit_id":"f98a31f5ffbc5e2592331c62aabe0e607a13b628"}]}
