)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"db3c19c9bd19429bc61362df39a7a733f0121f91","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Eyal \u003ceyal.bar-ilan@nokia.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-01-10 14:12:33 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"add collectd datasource"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I4fc357f241a096419f2b3444e046ae7dd1f11e56"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"ba5201f7_bd50ebd5","line":7,"updated":"2017-01-10 15:01:37.000000000","message":"Add:\nImplements: blueprint collectd-datasource","commit_id":"78728e258f67d639f3355cbbbc646b6c484e62d7"}],"vitrage/datasources/collectd/__init__.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"db3c19c9bd19429bc61362df39a7a733f0121f91","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":6,"id":"ba5201f7_02ec3628","line":1,"range":{"start_line":1,"start_character":12,"end_line":1,"end_character":16},"updated":"2017-01-10 15:01:37.000000000","message":"2017 :-)","commit_id":"78728e258f67d639f3355cbbbc646b6c484e62d7"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"db3c19c9bd19429bc61362df39a7a733f0121f91","unresolved":false,"context_lines":[{"line_number":34,"context_line":"                    \u0027Push: updates by getting notifications from the\u0027"},{"line_number":35,"context_line":"                    \u0027 datasource itself.\u0027,"},{"line_number":36,"context_line":"               required\u003dTrue),"},{"line_number":37,"context_line":"    cfg.IntOpt(\u0027changes_interval\u0027,"},{"line_number":38,"context_line":"               default\u003d30,"},{"line_number":39,"context_line":"               min\u003d10,"},{"line_number":40,"context_line":"               help\u003d\u0027interval between checking changes in collectd data \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5201f7_e2cf32b1","line":37,"range":{"start_line":37,"start_character":16,"end_line":37,"end_character":32},"updated":"2017-01-10 15:01:37.000000000","message":"Do you need it? does the collectd datasource support PULL mode?","commit_id":"78728e258f67d639f3355cbbbc646b6c484e62d7"}],"vitrage/datasources/collectd/collectd_vitrage/__init__.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"2bc9919cc562a06c0fa1807d93e3b645061c5e9d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"da4df55a_3d190423","updated":"2016-12-27 14:38:19.000000000","message":"What should be written in this file?","commit_id":"49d5589496a8b25f308e40d8e2321d38d74125f1"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"ca1e7f7b2db69a3c53ef3946833567d0696ec074","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"da4df55a_dd0b97d4","in_reply_to":"da4df55a_3d190423","updated":"2016-12-27 15:00:21.000000000","message":"nothing\nthis makes this directory a moudle","commit_id":"49d5589496a8b25f308e40d8e2321d38d74125f1"}],"vitrage/datasources/collectd/collectd_vitrage/vitrageplugin.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"2bc9919cc562a06c0fa1807d93e3b645061c5e9d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- coding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# © 2013 Nokia Inc."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":6,"context_line":"# not use this file except in compliance with the License.  You may obtain"}],"source_content_type":"text/x-python","patch_set":1,"id":"da4df55a_fd7e9c17","line":3,"range":{"start_line":3,"start_character":4,"end_line":3,"end_character":8},"updated":"2016-12-27 14:38:19.000000000","message":"Why 2013?","commit_id":"49d5589496a8b25f308e40d8e2321d38d74125f1"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"ca1e7f7b2db69a3c53ef3946833567d0696ec074","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- coding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# © 2013 Nokia Inc."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":6,"context_line":"# not use this file except in compliance with the License.  You may obtain"}],"source_content_type":"text/x-python","patch_set":1,"id":"da4df55a_7d01cbae","line":3,"range":{"start_line":3,"start_character":4,"end_line":3,"end_character":8},"in_reply_to":"da4df55a_fd7e9c17","updated":"2016-12-27 15:00:21.000000000","message":"ok","commit_id":"49d5589496a8b25f308e40d8e2321d38d74125f1"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"2bc9919cc562a06c0fa1807d93e3b645061c5e9d","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        \"\"\"Send the notification to Vitrage. \"\"\""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        # Use a friendly string instead of a number."},{"line_number":64,"context_line":"        severity \u003d {"},{"line_number":65,"context_line":"            collectd.NOTIF_FAILURE: \u0027FAILURE\u0027,"},{"line_number":66,"context_line":"            collectd.NOTIF_WARNING: \u0027WARNING\u0027,"},{"line_number":67,"context_line":"            collectd.NOTIF_OKAY: \u0027OK\u0027,"},{"line_number":68,"context_line":"        }.get(notification.severity)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        alarm \u003d notification.host + notification.plugin_instance \\"},{"line_number":71,"context_line":"            + notification.type_instance"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"da4df55a_7db8ecc8","line":69,"range":{"start_line":64,"start_character":0,"end_line":69,"end_character":0},"updated":"2016-12-27 14:38:19.000000000","message":"An alternative is to pass the number, and convert it using /etc/vitrage/datasources_values. But this option is also ok.","commit_id":"49d5589496a8b25f308e40d8e2321d38d74125f1"}],"vitrage/datasources/collectd/driver.py":[{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"f9e382a0f1a48ba3790dfa21953795fb7cc34fbf","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            alarm[CProps.RESOURCE_NAME] \u003d vitrage_host[CProps.RESOURCE_NAME]"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def _is_erroneous(self, alarm):"},{"line_number":64,"context_line":"        return alarm and alarm[\u0027severity\u0027] !\u003d \u0027OK\u0027"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def _status_changed(self, new_alarm, old_alarm):"},{"line_number":67,"context_line":"        return new_alarm and old_alarm \\"}],"source_content_type":"text/x-python","patch_set":1,"id":"da4df55a_9eae737f","line":64,"range":{"start_line":64,"start_character":31,"end_line":64,"end_character":41},"updated":"2016-12-27 08:16:40.000000000","message":"please create another class with constants of the collectd properties and put this property there","commit_id":"49d5589496a8b25f308e40d8e2321d38d74125f1"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"ca1e7f7b2db69a3c53ef3946833567d0696ec074","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            alarm[CProps.RESOURCE_NAME] \u003d vitrage_host[CProps.RESOURCE_NAME]"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def _is_erroneous(self, alarm):"},{"line_number":64,"context_line":"        return alarm and alarm[\u0027severity\u0027] !\u003d \u0027OK\u0027"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def _status_changed(self, new_alarm, old_alarm):"},{"line_number":67,"context_line":"        return new_alarm and old_alarm \\"}],"source_content_type":"text/x-python","patch_set":1,"id":"da4df55a_1d299f37","line":64,"range":{"start_line":64,"start_character":31,"end_line":64,"end_character":41},"in_reply_to":"da4df55a_9eae737f","updated":"2016-12-27 15:00:21.000000000","message":"ok","commit_id":"49d5589496a8b25f308e40d8e2321d38d74125f1"},{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"f9e382a0f1a48ba3790dfa21953795fb7cc34fbf","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def _status_changed(self, new_alarm, old_alarm):"},{"line_number":67,"context_line":"        return new_alarm and old_alarm \\"},{"line_number":68,"context_line":"            and not new_alarm[\u0027severity\u0027] \u003d\u003d old_alarm[\u0027severity\u0027]"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def _is_valid(self, alarm):"},{"line_number":71,"context_line":"        return alarm[CProps.RESOURCE_TYPE] is not None \\"}],"source_content_type":"text/x-python","patch_set":1,"id":"da4df55a_3ec0272a","line":68,"range":{"start_line":68,"start_character":55,"end_line":68,"end_character":65},"updated":"2016-12-27 08:16:40.000000000","message":"please create another class with constants of the collectd properties and put this property there","commit_id":"49d5589496a8b25f308e40d8e2321d38d74125f1"},{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"f9e382a0f1a48ba3790dfa21953795fb7cc34fbf","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def _status_changed(self, new_alarm, old_alarm):"},{"line_number":67,"context_line":"        return new_alarm and old_alarm \\"},{"line_number":68,"context_line":"            and not new_alarm[\u0027severity\u0027] \u003d\u003d old_alarm[\u0027severity\u0027]"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def _is_valid(self, alarm):"},{"line_number":71,"context_line":"        return alarm[CProps.RESOURCE_TYPE] is not None \\"}],"source_content_type":"text/x-python","patch_set":1,"id":"da4df55a_fec93f5a","line":68,"range":{"start_line":68,"start_character":30,"end_line":68,"end_character":40},"updated":"2016-12-27 08:16:40.000000000","message":"please create another class with constants of the collectd properties and put this property there","commit_id":"49d5589496a8b25f308e40d8e2321d38d74125f1"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"ca1e7f7b2db69a3c53ef3946833567d0696ec074","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def _status_changed(self, new_alarm, old_alarm):"},{"line_number":67,"context_line":"        return new_alarm and old_alarm \\"},{"line_number":68,"context_line":"            and not new_alarm[\u0027severity\u0027] \u003d\u003d old_alarm[\u0027severity\u0027]"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def _is_valid(self, alarm):"},{"line_number":71,"context_line":"        return alarm[CProps.RESOURCE_TYPE] is not None \\"}],"source_content_type":"text/x-python","patch_set":1,"id":"da4df55a_3d22e352","line":68,"range":{"start_line":68,"start_character":55,"end_line":68,"end_character":65},"in_reply_to":"da4df55a_3ec0272a","updated":"2016-12-27 15:00:21.000000000","message":"ok","commit_id":"49d5589496a8b25f308e40d8e2321d38d74125f1"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"ca1e7f7b2db69a3c53ef3946833567d0696ec074","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    def _status_changed(self, new_alarm, old_alarm):"},{"line_number":67,"context_line":"        return new_alarm and old_alarm \\"},{"line_number":68,"context_line":"            and not new_alarm[\u0027severity\u0027] \u003d\u003d old_alarm[\u0027severity\u0027]"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def _is_valid(self, alarm):"},{"line_number":71,"context_line":"        return alarm[CProps.RESOURCE_TYPE] is not None \\"}],"source_content_type":"text/x-python","patch_set":1,"id":"da4df55a_7d18eb1e","line":68,"range":{"start_line":68,"start_character":30,"end_line":68,"end_character":40},"in_reply_to":"da4df55a_fec93f5a","updated":"2016-12-27 15:00:21.000000000","message":"ok","commit_id":"49d5589496a8b25f308e40d8e2321d38d74125f1"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"db3c19c9bd19429bc61362df39a7a733f0121f91","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    def _get_alarms(self):"},{"line_number":46,"context_line":"        return []"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def _enrich_alarms(self, alarms):"},{"line_number":49,"context_line":"        \"\"\"Enrich collectd alarm using collectd configuration file"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        converting Collectd host name to Vitrage resource type and name"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5201f7_c2722e11","line":48,"range":{"start_line":48,"start_character":8,"end_line":48,"end_character":22},"updated":"2017-01-10 15:01:37.000000000","message":"I think this function is called only in PULL mode. Not sure that you need it","commit_id":"78728e258f67d639f3355cbbbc646b6c484e62d7"}],"vitrage/datasources/collectd/transformer.py":[{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"f9e382a0f1a48ba3790dfa21953795fb7cc34fbf","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def _create_vertex(self, entity_event):"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        entity_event[\u0027timestamp\u0027] \u003d format_unix_timestamp("},{"line_number":49,"context_line":"            entity_event[\u0027time\u0027], tbase.TIMESTAMP_FORMAT)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        update_timestamp \u003d entity_event[\u0027timestamp\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"da4df55a_1e9283f6","line":48,"range":{"start_line":48,"start_character":21,"end_line":48,"end_character":32},"updated":"2016-12-27 08:16:40.000000000","message":"please create another class with constants of the collectd properties and put this property there and all other properties as well","commit_id":"49d5589496a8b25f308e40d8e2321d38d74125f1"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"ca1e7f7b2db69a3c53ef3946833567d0696ec074","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    def _create_vertex(self, entity_event):"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        entity_event[\u0027timestamp\u0027] \u003d format_unix_timestamp("},{"line_number":49,"context_line":"            entity_event[\u0027time\u0027], tbase.TIMESTAMP_FORMAT)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        update_timestamp \u003d entity_event[\u0027timestamp\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"da4df55a_ddd9d758","line":48,"range":{"start_line":48,"start_character":21,"end_line":48,"end_character":32},"in_reply_to":"da4df55a_1e9283f6","updated":"2016-12-27 15:00:21.000000000","message":"ok","commit_id":"49d5589496a8b25f308e40d8e2321d38d74125f1"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"2bc9919cc562a06c0fa1807d93e3b645061c5e9d","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        sample_timestamp \u003d entity_event[DSProps.SAMPLE_DATE]"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        value \u003d entity_event[\u0027severity\u0027]"},{"line_number":56,"context_line":"        entity_state \u003d AlarmProps.INACTIVE_STATE if \\"},{"line_number":57,"context_line":"            value \u003d\u003d \u0027OK\u0027 else AlarmProps.ACTIVE_STATE"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        metadata \u003d {"},{"line_number":60,"context_line":"            VProps.NAME: entity_event[\u0027message\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"da4df55a_1d260015","line":57,"range":{"start_line":56,"start_character":0,"end_line":57,"end_character":54},"updated":"2016-12-27 14:38:19.000000000","message":"Isn\u0027t this handled in the base class? in doctor datasource I removed the entity_state handling from this method, and it was set correctly by the base class","commit_id":"49d5589496a8b25f308e40d8e2321d38d74125f1"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"ca1e7f7b2db69a3c53ef3946833567d0696ec074","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        sample_timestamp \u003d entity_event[DSProps.SAMPLE_DATE]"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        value \u003d entity_event[\u0027severity\u0027]"},{"line_number":56,"context_line":"        entity_state \u003d AlarmProps.INACTIVE_STATE if \\"},{"line_number":57,"context_line":"            value \u003d\u003d \u0027OK\u0027 else AlarmProps.ACTIVE_STATE"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        metadata \u003d {"},{"line_number":60,"context_line":"            VProps.NAME: entity_event[\u0027message\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"da4df55a_fdda1b4a","line":57,"range":{"start_line":56,"start_character":0,"end_line":57,"end_character":54},"in_reply_to":"da4df55a_1d260015","updated":"2016-12-27 15:00:21.000000000","message":"ok","commit_id":"49d5589496a8b25f308e40d8e2321d38d74125f1"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"2bc9919cc562a06c0fa1807d93e3b645061c5e9d","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        return []"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def _create_neighbor(self,"},{"line_number":97,"context_line":"                         vitrage_id,"},{"line_number":98,"context_line":"                         sample_timestamp,"},{"line_number":99,"context_line":"                         resource_type,"}],"source_content_type":"text/x-python","patch_set":1,"id":"da4df55a_5d4a48ad","line":96,"range":{"start_line":96,"start_character":8,"end_line":96,"end_character":24},"updated":"2016-12-27 14:38:19.000000000","message":"In https://review.openstack.org/#/c/414975 I\u0027m about to move this implementation to the base class. Currently the same code exists in zabbix, nagios and here","commit_id":"49d5589496a8b25f308e40d8e2321d38d74125f1"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"ca1e7f7b2db69a3c53ef3946833567d0696ec074","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        return []"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def _create_neighbor(self,"},{"line_number":97,"context_line":"                         vitrage_id,"},{"line_number":98,"context_line":"                         sample_timestamp,"},{"line_number":99,"context_line":"                         resource_type,"}],"source_content_type":"text/x-python","patch_set":1,"id":"da4df55a_5de6c715","line":96,"range":{"start_line":96,"start_character":8,"end_line":96,"end_character":24},"in_reply_to":"da4df55a_5d4a48ad","updated":"2016-12-27 15:00:21.000000000","message":"ok","commit_id":"49d5589496a8b25f308e40d8e2321d38d74125f1"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"db3c19c9bd19429bc61362df39a7a733f0121f91","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    def __init__(self, transformers, conf):"},{"line_number":36,"context_line":"        super(CollectdTransformer, self).__init__(transformers, conf)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def _create_snapshot_entity_vertex(self, entity_event):"},{"line_number":39,"context_line":"        return self._create_vertex(entity_event)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def _create_update_entity_vertex(self, entity_event):"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5201f7_42a2be4c","line":38,"range":{"start_line":38,"start_character":8,"end_line":38,"end_character":38},"updated":"2017-01-10 15:01:37.000000000","message":"Do you need it?","commit_id":"78728e258f67d639f3355cbbbc646b6c484e62d7"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"db3c19c9bd19429bc61362df39a7a733f0121f91","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        value \u003d entity_event[\u0027severity\u0027]"},{"line_number":54,"context_line":"        entity_state \u003d AlarmProps.INACTIVE_STATE if \\"},{"line_number":55,"context_line":"            value \u003d\u003d \u0027OK\u0027 else AlarmProps.ACTIVE_STATE"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        metadata \u003d {"},{"line_number":58,"context_line":"            VProps.NAME: entity_event[\u0027message\u0027],"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5201f7_226dba04","line":55,"range":{"start_line":55,"start_character":12,"end_line":55,"end_character":25},"updated":"2017-01-10 15:01:37.000000000","message":"Maybe call _ok_status()","commit_id":"78728e258f67d639f3355cbbbc646b6c484e62d7"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"db3c19c9bd19429bc61362df39a7a733f0121f91","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        metadata \u003d {"},{"line_number":58,"context_line":"            VProps.NAME: entity_event[\u0027message\u0027],"},{"line_number":59,"context_line":"            VProps.SEVERITY: entity_event[\u0027severity\u0027],"},{"line_number":60,"context_line":"        }"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        return graph_utils.create_vertex("}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5201f7_c27ceeb7","line":59,"range":{"start_line":59,"start_character":43,"end_line":59,"end_character":51},"updated":"2017-01-10 15:01:37.000000000","message":"You can use CollectdProperties.SEVERITY","commit_id":"78728e258f67d639f3355cbbbc646b6c484e62d7"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"db3c19c9bd19429bc61362df39a7a733f0121f91","unresolved":false,"context_lines":[{"line_number":68,"context_line":"            update_timestamp\u003dupdate_timestamp,"},{"line_number":69,"context_line":"            metadata\u003dmetadata)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def _create_snapshot_neighbors(self, entity_event):"},{"line_number":72,"context_line":"        return self._create_collectd_neighbors(entity_event)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def _create_update_neighbors(self, entity_event):"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5201f7_82abc61d","line":71,"range":{"start_line":71,"start_character":8,"end_line":71,"end_character":34},"updated":"2017-01-10 15:01:37.000000000","message":"Do you need this?","commit_id":"78728e258f67d639f3355cbbbc646b6c484e62d7"},{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"9cf907401e020f383c09b19ce742e8d4ac3dd208","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        return self._create_collectd_neighbors(entity_event)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def _create_collectd_neighbors(self, entity_event):"},{"line_number":78,"context_line":"        entity_event[\u0027timestamp\u0027] \u003d format_unix_timestamp("},{"line_number":79,"context_line":"            entity_event[\u0027time\u0027], tbase.TIMESTAMP_FORMAT)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        resource_type \u003d entity_event[CProps.RESOURCE_TYPE]"},{"line_number":82,"context_line":"        if resource_type:"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5201f7_3a169af1","line":79,"range":{"start_line":78,"start_character":8,"end_line":79,"end_character":57},"updated":"2017-01-11 09:35:19.000000000","message":"no need for this timestamp","commit_id":"4822e6496d638db8246a5184b700108a5159cbc0"}],"vitrage/tests/mocks/trace_generator.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"db3c19c9bd19429bc61362df39a7a733f0121f91","unresolved":false,"context_lines":[{"line_number":251,"context_line":"    return static_values"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"def _get_doctor_update_driver_values(spec):"},{"line_number":255,"context_line":"    \"\"\"Generates the static driver values for Doctor monitor notification."},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"    :param spec: specification of event generation."},{"line_number":258,"context_line":"    :type spec: dict"},{"line_number":259,"context_line":"    :return: list of notifications of Doctor monitor"},{"line_number":260,"context_line":"    :rtype: list"},{"line_number":261,"context_line":"    \"\"\""},{"line_number":262,"context_line":"    return [combine_data(None, None, spec.get(EXTERNAL_INFO_KEY, None))]"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"def _get_collectd_update_driver_values(spec):"},{"line_number":266,"context_line":"    \"\"\"Generates the static driver values for Collectd monitor notification."},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"    :param spec: specification of event generation."},{"line_number":269,"context_line":"    :type spec: dict"},{"line_number":270,"context_line":"    :return: list of notifications of Doctor monitor"},{"line_number":271,"context_line":"    :rtype: list"},{"line_number":272,"context_line":"    \"\"\""},{"line_number":273,"context_line":"    return [combine_data(None, None, spec.get(EXTERNAL_INFO_KEY, None))]"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"def _get_zone_snapshot_driver_values(spec):"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5201f7_bd18eb76","line":273,"range":{"start_line":254,"start_character":0,"end_line":273,"end_character":72},"updated":"2017-01-10 15:01:37.000000000","message":"These two functions are exactly the same. Can they be united? \nElisha, am I missing something here?","commit_id":"78728e258f67d639f3355cbbbc646b6c484e62d7"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"db3c19c9bd19429bc61362df39a7a733f0121f91","unresolved":false,"context_lines":[{"line_number":651,"context_line":"    return static_values"},{"line_number":652,"context_line":""},{"line_number":653,"context_line":""},{"line_number":654,"context_line":"def _get_trans_doctor_alarm_update_values(spec):"},{"line_number":655,"context_line":"    \"\"\"Generates the dynamic transformer values for a Doctor alarm"},{"line_number":656,"context_line":""},{"line_number":657,"context_line":"    :param spec: specification of event generation."},{"line_number":658,"context_line":"    :type spec: dict"},{"line_number":659,"context_line":"    :return: list of dynamic transformer values for a Doctor alarm"},{"line_number":660,"context_line":"    :rtype: list with one alarm"},{"line_number":661,"context_line":"    \"\"\""},{"line_number":662,"context_line":""},{"line_number":663,"context_line":"    static_info_re \u003d None"},{"line_number":664,"context_line":"    if spec[STATIC_INFO_FKEY] is not None:"},{"line_number":665,"context_line":"        static_info_re \u003d utils.load_specs(spec[STATIC_INFO_FKEY])"},{"line_number":666,"context_line":""},{"line_number":667,"context_line":"    return [combine_data(static_info_re,"},{"line_number":668,"context_line":"                         None, spec.get(EXTERNAL_INFO_KEY, None))]"},{"line_number":669,"context_line":""},{"line_number":670,"context_line":""},{"line_number":671,"context_line":"def _get_trans_collectd_alarm_update_values(spec):"},{"line_number":672,"context_line":"    \"\"\"Generates the dynamic transformer values for a Collectd alarm"},{"line_number":673,"context_line":""},{"line_number":674,"context_line":"    :param spec: specification of event generation."},{"line_number":675,"context_line":"    :type spec: dict"},{"line_number":676,"context_line":"    :return: list of dynamic transformer values for a Collectd alarm"},{"line_number":677,"context_line":"    :rtype: list with one alarm"},{"line_number":678,"context_line":"    \"\"\""},{"line_number":679,"context_line":""},{"line_number":680,"context_line":"    static_info_re \u003d None"},{"line_number":681,"context_line":"    if spec[STATIC_INFO_FKEY] is not None:"},{"line_number":682,"context_line":"        static_info_re \u003d utils.load_specs(spec[STATIC_INFO_FKEY])"},{"line_number":683,"context_line":""},{"line_number":684,"context_line":"    return [combine_data(static_info_re,"},{"line_number":685,"context_line":"                         None, spec.get(EXTERNAL_INFO_KEY, None))]"},{"line_number":686,"context_line":""},{"line_number":687,"context_line":""},{"line_number":688,"context_line":"def combine_data(static_info_re, mapping_info, external_info):"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5201f7_3d231ba9","line":685,"range":{"start_line":654,"start_character":0,"end_line":685,"end_character":66},"updated":"2017-01-10 15:01:37.000000000","message":"Again, we have two identical methods","commit_id":"78728e258f67d639f3355cbbbc646b6c484e62d7"}],"vitrage/tests/unit/datasources/collectd/test_collectd_driver.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"db3c19c9bd19429bc61362df39a7a733f0121f91","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        if hostname:"},{"line_number":63,"context_line":"            update_vals[\u0027host\u0027] \u003d hostname"},{"line_number":64,"context_line":"        if severity:"},{"line_number":65,"context_line":"            update_vals[\u0027severity\u0027] \u003d severity"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        if time:"},{"line_number":68,"context_line":"            update_vals[\u0027time\u0027] \u003d time"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5201f7_1d6e57c9","line":65,"range":{"start_line":65,"start_character":25,"end_line":65,"end_character":33},"updated":"2017-01-10 15:01:37.000000000","message":"You can use CollectdProperties.SEVERITY","commit_id":"78728e258f67d639f3355cbbbc646b6c484e62d7"}]}
