)]}'
{"vitrage/datasources/aodh/driver.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"1d285ecb5114d773a7b29b087d43d4210f5b0d31","unresolved":false,"context_lines":[{"line_number":12,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"# under the License."},{"line_number":14,"context_line":"import json"},{"line_number":15,"context_line":"import six"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from oslo_log import log"},{"line_number":18,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_74cda683","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":10},"updated":"2018-05-25 04:51:43.000000000","message":"Please, move this statement should be placed after the oslo_log import according to the OpenStack Hacking guidelines [1]\n\n[1] https://docs.openstack.org/hacking/latest/user/hacking.html#import-order-template","commit_id":"3bc2c3551210cc51af9b528bdbaf234aa18368c0"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"20e92f394fa2a0d4ec19b2113e021d0b43858b2d","unresolved":false,"context_lines":[{"line_number":195,"context_line":"        }"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    @classmethod"},{"line_number":198,"context_line":"    def _convert_gnocchi_resources_threshold_alarm_rule(cls, rule):"},{"line_number":199,"context_line":"        return {"},{"line_number":200,"context_line":"            AodhProps.RESOURCE_ID: _parse_query(rule, AodhProps.RESOURCE_ID)"},{"line_number":201,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_ec4cf89e","line":198,"range":{"start_line":198,"start_character":8,"end_line":198,"end_character":55},"updated":"2018-06-28 10:38:06.000000000","message":"You can rename it to _convert_standard_alarm_rule and use the same method for all new alarms (in _init_convert_aodh_alarm_rule_actions). Maybe find a better name instead of \u0027standard\u0027.","commit_id":"0d2af5173587f011a06d070382d22e83b8ea9aec"},{"author":{"_account_id":19194,"name":"Dan Offek","email":"dany.offek@gmail.com","username":"danoffek"},"change_message_id":"efb279aefdf496bc4be84229d621b67cc29d0539","unresolved":false,"context_lines":[{"line_number":189,"context_line":"        }"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    @classmethod"},{"line_number":192,"context_line":"    def _convert_threshold_alarm_rule(cls, rule):"},{"line_number":193,"context_line":"        return {"},{"line_number":194,"context_line":"            AodhProps.RESOURCE_ID: _parse_query(rule, AodhProps.RESOURCE_ID)"},{"line_number":195,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_875f160e","line":192,"updated":"2018-07-15 12:49:35.000000000","message":"This return is similar to next 4 returns. \nWhy not make another private method that returns just this, and call it?","commit_id":"43b94fc58922ae5dd76fca57daec89be066ad222"},{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"d1b48d1ba1a3f5cf4427a1c45c6161f5dce6c7d9","unresolved":false,"context_lines":[{"line_number":189,"context_line":"        }"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    @classmethod"},{"line_number":192,"context_line":"    def _convert_threshold_alarm_rule(cls, rule):"},{"line_number":193,"context_line":"        return {"},{"line_number":194,"context_line":"            AodhProps.RESOURCE_ID: _parse_query(rule, AodhProps.RESOURCE_ID)"},{"line_number":195,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_ca350e45","line":192,"in_reply_to":"5f7c97a3_875f160e","updated":"2018-07-16 06:23:30.000000000","message":"+1","commit_id":"43b94fc58922ae5dd76fca57daec89be066ad222"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"9f1b3100320aea8d6447c9939f8d46345a85177b","unresolved":false,"context_lines":[{"line_number":189,"context_line":"        }"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    @classmethod"},{"line_number":192,"context_line":"    def _convert_threshold_alarm_rule(cls, rule):"},{"line_number":193,"context_line":"        return {"},{"line_number":194,"context_line":"            AodhProps.RESOURCE_ID: _parse_query(rule, AodhProps.RESOURCE_ID)"},{"line_number":195,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_a2669754","line":192,"in_reply_to":"5f7c97a3_ca350e45","updated":"2018-07-17 09:46:24.000000000","message":"Done","commit_id":"43b94fc58922ae5dd76fca57daec89be066ad222"},{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"b6c090f958f0930b9fbb4bda3e16e90030af61b6","unresolved":false,"context_lines":[{"line_number":350,"context_line":"     }\u0027"},{"line_number":351,"context_line":"    \"\"\""},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"    query_fields \u003d data.get(AodhProps.QUERY, {})"},{"line_number":354,"context_line":"    if isinstance(query_fields, six.text_type):"},{"line_number":355,"context_line":"        query_fields \u003d json.loads(query_fields)"},{"line_number":356,"context_line":"    if not isinstance(query_fields, list):"},{"line_number":357,"context_line":"        query_fields \u003d [query_fields]"},{"line_number":358,"context_line":"    for query in query_fields:"},{"line_number":359,"context_line":"        field \u003d query.get(\u0027field\u0027)"},{"line_number":360,"context_line":"        if field and field \u003d\u003d key:"},{"line_number":361,"context_line":"            return query[\u0027value\u0027]"},{"line_number":362,"context_line":"        elif not field:"},{"line_number":363,"context_line":"            field \u003d query.get(\u0027\u003d\u0027, {})"},{"line_number":364,"context_line":"            for k in field:"},{"line_number":365,"context_line":"                if k \u003d\u003d key:"},{"line_number":366,"context_line":"                    return field[key]"},{"line_number":367,"context_line":"    return None"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"def _is_vitrage_alarm(rule):"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_7b5e77e9","line":367,"range":{"start_line":353,"start_character":0,"end_line":367,"end_character":15},"updated":"2018-07-22 13:21:24.000000000","message":"please add try catch here, so if one alarm miss behaves we don\u0027t lose all the alarms.","commit_id":"d75df451ae9a5f69632c3bb1f117a8c310f5a06b"}],"vitrage/tests/unit/datasources/aodh/test_aodh_driver.py":[{"author":{"_account_id":18783,"name":"dongwenjuan","email":"dong.wenjuan@zte.com.cn","username":"dongwenjuan"},"change_message_id":"d1b48d1ba1a3f5cf4427a1c45c6161f5dce6c7d9","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from vitrage.tests.mocks import mock_driver"},{"line_number":25,"context_line":"from vitrage.tests.unit.datasources.aodh.mock_driver import MockAodhDriver"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"METRICS_TYPE \u003d \u0027gnocchi_aggregation_by_metrics_threshold\u0027"},{"line_number":28,"context_line":"RESOURCES_TYPE \u003d \u0027gnocchi_aggregation_by_resources_threshold\u0027"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class AodhDriverTest(base.BaseTest):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_eafb2a78","line":28,"range":{"start_line":27,"start_character":0,"end_line":28,"end_character":61},"updated":"2018-07-16 06:23:30.000000000","message":"Why not defined them in AodhProperties?","commit_id":"43b94fc58922ae5dd76fca57daec89be066ad222"},{"author":{"_account_id":26464,"name":"Niv Oppenhaim","email":"niv.oppenhaim@nokia.com","username":"nivolas"},"change_message_id":"9f1b3100320aea8d6447c9939f8d46345a85177b","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from vitrage.tests.mocks import mock_driver"},{"line_number":25,"context_line":"from vitrage.tests.unit.datasources.aodh.mock_driver import MockAodhDriver"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"METRICS_TYPE \u003d \u0027gnocchi_aggregation_by_metrics_threshold\u0027"},{"line_number":28,"context_line":"RESOURCES_TYPE \u003d \u0027gnocchi_aggregation_by_resources_threshold\u0027"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class AodhDriverTest(base.BaseTest):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_626cff32","line":28,"range":{"start_line":27,"start_character":0,"end_line":28,"end_character":61},"in_reply_to":"5f7c97a3_eafb2a78","updated":"2018-07-17 09:46:24.000000000","message":"Done","commit_id":"43b94fc58922ae5dd76fca57daec89be066ad222"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"5d50482ae06bf4431e80548f70ba3b852fbb8178","unresolved":false,"context_lines":[{"line_number":454,"context_line":"        # prepare data"},{"line_number":455,"context_line":"        detail_data \u003d {"},{"line_number":456,"context_line":"            \"type\": AType.GNOCCHI_AGGREGATION_BY_RESOURCES_THRESHOLD,"},{"line_number":457,"context_line":"             AodhProps.DETAIL: self._create_alarm_data_resource()"},{"line_number":458,"context_line":"        }"},{"line_number":459,"context_line":"        generators \u003d \\"},{"line_number":460,"context_line":"            mock_driver.simple_aodh_alarm_notification_generators("}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_f3b8e3e8","line":457,"updated":"2018-07-17 11:34:15.000000000","message":"pep8 failing due to wrong alignment.","commit_id":"0e423a89de05f04a0b85959371ae373810bcf751"}]}
