)]}'
{"tools/datasource-scaffold/README.md":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"d2d18423e245680daa74577153ba734852a2032e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Scaffold for creating new datasource"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"This tool use cookiecutter to generate the scaffold of new datasource."},{"line_number":4,"context_line":""}],"source_content_type":"text/x-gfm","patch_set":2,"id":"5f7c97a3_0c2d9e94","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":38},"updated":"2018-05-06 05:58:57.000000000","message":"Why use an .md format? \nWhere will it be displayed?","commit_id":"3be119c5d94f8c93c82730df675493313442dda8"},{"author":{"_account_id":21414,"name":"Yujun Zhang","email":"zhang.yujunz@zte.com.cn","username":"yujunz"},"change_message_id":"c3d7ee08a174bfbe266c1123776a2413d06a04e9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Scaffold for creating new datasource"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"This tool use cookiecutter to generate the scaffold of new datasource."},{"line_number":4,"context_line":""}],"source_content_type":"text/x-gfm","patch_set":2,"id":"5f7c97a3_4a31350b","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":38},"in_reply_to":"5f7c97a3_0c2d9e94","updated":"2018-05-07 02:46:14.000000000","message":"Moved to docs and keep the link only. Hope to make it easier for user to find the content from either the docs site or from the code.","commit_id":"3be119c5d94f8c93c82730df675493313442dda8"}],"tools/datasource-scaffold/sample/__init__.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"d2d18423e245680daa74577153ba734852a2032e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016 - Vitrage team"},{"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":"5f7c97a3_ac210aa2","line":1,"range":{"start_line":1,"start_character":12,"end_line":1,"end_character":16},"updated":"2018-05-06 05:58:57.000000000","message":"2018 (here and in other places)","commit_id":"3be119c5d94f8c93c82730df675493313442dda8"},{"author":{"_account_id":21414,"name":"Yujun Zhang","email":"zhang.yujunz@zte.com.cn","username":"yujunz"},"change_message_id":"c3d7ee08a174bfbe266c1123776a2413d06a04e9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016 - Vitrage team"},{"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":"5f7c97a3_8a2e6da3","line":1,"range":{"start_line":1,"start_character":12,"end_line":1,"end_character":16},"in_reply_to":"5f7c97a3_ac210aa2","updated":"2018-05-07 02:46:14.000000000","message":"Done","commit_id":"3be119c5d94f8c93c82730df675493313442dda8"}],"tools/datasource-scaffold/sample/driver.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"d2d18423e245680daa74577153ba734852a2032e","unresolved":false,"context_lines":[{"line_number":28,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class SampleDriver(AlarmDriverBase):"},{"line_number":32,"context_line":"    AlarmKey \u003d namedtuple(\u0027AlarmKey\u0027, [\u0027labels\u0027])  # ???"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def __init__(self, conf):"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_cc26c6b8","line":31,"range":{"start_line":31,"start_character":6,"end_line":31,"end_character":18},"updated":"2018-05-06 05:58:57.000000000","message":"What about get_all and get_changes?","commit_id":"3be119c5d94f8c93c82730df675493313442dda8"},{"author":{"_account_id":21414,"name":"Yujun Zhang","email":"zhang.yujunz@zte.com.cn","username":"yujunz"},"change_message_id":"c3d7ee08a174bfbe266c1123776a2413d06a04e9","unresolved":false,"context_lines":[{"line_number":28,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class SampleDriver(AlarmDriverBase):"},{"line_number":32,"context_line":"    AlarmKey \u003d namedtuple(\u0027AlarmKey\u0027, [\u0027labels\u0027])  # ???"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def __init__(self, conf):"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_0d09172b","line":31,"range":{"start_line":31,"start_character":6,"end_line":31,"end_character":18},"in_reply_to":"5f7c97a3_cc26c6b8","updated":"2018-05-07 02:46:14.000000000","message":"I forgot to backport the content from sample driver.","commit_id":"3be119c5d94f8c93c82730df675493313442dda8"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"d2d18423e245680daa74577153ba734852a2032e","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class SampleDriver(AlarmDriverBase):"},{"line_number":32,"context_line":"    AlarmKey \u003d namedtuple(\u0027AlarmKey\u0027, [\u0027labels\u0027])  # ???"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def __init__(self, conf):"},{"line_number":35,"context_line":"        super(SampleDriver, self).__init__()"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_6c3bf2d0","line":32,"range":{"start_line":32,"start_character":15,"end_line":32,"end_character":56},"updated":"2018-05-06 05:58:57.000000000","message":"So you copied my WIP Prometheus :-) \n\nThe AlarmKey could be practically anything, we should think if there is a way to automatically create it. It\u0027s not trivial.","commit_id":"3be119c5d94f8c93c82730df675493313442dda8"},{"author":{"_account_id":21414,"name":"Yujun Zhang","email":"zhang.yujunz@zte.com.cn","username":"yujunz"},"change_message_id":"c3d7ee08a174bfbe266c1123776a2413d06a04e9","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class SampleDriver(AlarmDriverBase):"},{"line_number":32,"context_line":"    AlarmKey \u003d namedtuple(\u0027AlarmKey\u0027, [\u0027labels\u0027])  # ???"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def __init__(self, conf):"},{"line_number":35,"context_line":"        super(SampleDriver, self).__init__()"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_6d2d2b94","line":32,"range":{"start_line":32,"start_character":15,"end_line":32,"end_character":56},"in_reply_to":"5f7c97a3_6c3bf2d0","updated":"2018-05-07 02:46:14.000000000","message":"The same reason as above.\n\nAt the beginning I planned to backport from the WIP prometheus data source. But soon I found out that it already includes some dedicated code for prometheus. Then I turned to create a sample driver following the instruction in the document, lint the code and backport to the scaffold.","commit_id":"3be119c5d94f8c93c82730df675493313442dda8"}],"tools/datasource-scaffold/sample/transformer.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"4235d9e3a63a9ccb631cae2946099e3bd7e766a6","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    def _create_entity_key(self, entity_event):"},{"line_number":47,"context_line":"        \"\"\"the unique key of this entity\"\"\""},{"line_number":48,"context_line":"        entity_id \u003d entity_event[VProps.ID]"},{"line_number":49,"context_line":"        entity_type \u003d entity_event[SampleFields.TYPE]"},{"line_number":50,"context_line":"        key_fields \u003d self._key_values(entity_type, entity_id)"},{"line_number":51,"context_line":"        return transformer_base.build_key(key_fields)"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_10425e11","line":49,"range":{"start_line":49,"start_character":8,"end_line":49,"end_character":53},"updated":"2018-05-09 07:21:53.000000000","message":"I think it should also have a FIXME comment. The entity key can be different than the one that you suggested","commit_id":"8dc69b521c9144666b45122b99d9e5a9c44937a1"},{"author":{"_account_id":21414,"name":"Yujun Zhang","email":"zhang.yujunz@zte.com.cn","username":"yujunz"},"change_message_id":"bbb84791013cdb85d3db065de140d311ac900343","unresolved":false,"context_lines":[{"line_number":46,"context_line":"    def _create_entity_key(self, entity_event):"},{"line_number":47,"context_line":"        \"\"\"the unique key of this entity\"\"\""},{"line_number":48,"context_line":"        entity_id \u003d entity_event[VProps.ID]"},{"line_number":49,"context_line":"        entity_type \u003d entity_event[SampleFields.TYPE]"},{"line_number":50,"context_line":"        key_fields \u003d self._key_values(entity_type, entity_id)"},{"line_number":51,"context_line":"        return transformer_base.build_key(key_fields)"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_a7e797e4","line":49,"range":{"start_line":49,"start_character":8,"end_line":49,"end_character":53},"in_reply_to":"5f7c97a3_10425e11","updated":"2018-05-10 01:19:07.000000000","message":"Done","commit_id":"8dc69b521c9144666b45122b99d9e5a9c44937a1"}],"tools/datasource-scaffold/{{cookiecutter.name}}/driver.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"d2d18423e245680daa74577153ba734852a2032e","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class {{cookiecutter.name|capitalize}}Driver(AlarmDriverBase):"},{"line_number":32,"context_line":"    AlarmKey \u003d namedtuple(\u0027AlarmKey\u0027, [\u0027labels\u0027])  # ???"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def __init__(self, conf):"},{"line_number":35,"context_line":"        super({{cookiecutter.name|capitalize}}Driver, self).__init__()"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_2c4ada54","line":32,"range":{"start_line":32,"start_character":0,"end_line":32,"end_character":56},"updated":"2018-05-06 05:58:57.000000000","message":"Same comment about the AlarmKey","commit_id":"3be119c5d94f8c93c82730df675493313442dda8"},{"author":{"_account_id":21414,"name":"Yujun Zhang","email":"zhang.yujunz@zte.com.cn","username":"yujunz"},"change_message_id":"c3d7ee08a174bfbe266c1123776a2413d06a04e9","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class {{cookiecutter.name|capitalize}}Driver(AlarmDriverBase):"},{"line_number":32,"context_line":"    AlarmKey \u003d namedtuple(\u0027AlarmKey\u0027, [\u0027labels\u0027])  # ???"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def __init__(self, conf):"},{"line_number":35,"context_line":"        super({{cookiecutter.name|capitalize}}Driver, self).__init__()"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_6d520b16","line":32,"range":{"start_line":32,"start_character":0,"end_line":32,"end_character":56},"in_reply_to":"5f7c97a3_2c4ada54","updated":"2018-05-07 02:46:14.000000000","message":"Done","commit_id":"3be119c5d94f8c93c82730df675493313442dda8"}]}
