)]}'
{"vitrage/datasources/aodh/transformer.py":[{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"a49b7a71f67543f0dc2e7f48cb11a429c30be6ae","unresolved":false,"context_lines":[{"line_number":56,"context_line":"            AodhProps.ENABLED: entity_event[AodhProps.ENABLED],"},{"line_number":57,"context_line":"            VProps.PROJECT_ID: entity_event.get(AodhProps.PROJECT_ID, None),"},{"line_number":58,"context_line":"            AodhProps.REPEAT_ACTIONS: entity_event[AodhProps.REPEAT_ACTIONS],"},{"line_number":59,"context_line":"            VProps.RESOURCE_ID: entity_event[AodhProps.RESOURCE_ID],"},{"line_number":60,"context_line":"            \u0027alarm_type\u0027: entity_event[AodhProps.TYPE]"},{"line_number":61,"context_line":"        }"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7ffa3b31_28d37d62","line":59,"range":{"start_line":59,"start_character":32,"end_line":59,"end_character":67},"updated":"2017-04-19 07:22:54.000000000","message":"aodh alarms usually don\u0027t have resource id","commit_id":"c9444c691e213320d9ad680321c46de380a4aa12"}],"vitrage/datasources/collectd/transformer.py":[{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"a49b7a71f67543f0dc2e7f48cb11a429c30be6ae","unresolved":false,"context_lines":[{"line_number":54,"context_line":"            VProps.NAME: entity_event[CProps.MESSAGE],"},{"line_number":55,"context_line":"            VProps.SEVERITY: entity_event[CProps.SEVERITY],"},{"line_number":56,"context_line":"            VProps.RAWTEXT: self.generate_raw_text(entity_event),"},{"line_number":57,"context_line":"            VProps.RESOURCE_ID: entity_event[CProps.RESOURCE_NAME]"},{"line_number":58,"context_line":"        }"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        return graph_utils.create_vertex("}],"source_content_type":"text/x-python","patch_set":1,"id":"7ffa3b31_a8742d69","line":57,"range":{"start_line":57,"start_character":31,"end_line":57,"end_character":66},"updated":"2017-04-19 07:22:54.000000000","message":"is this good enough?","commit_id":"c9444c691e213320d9ad680321c46de380a4aa12"}],"vitrage/datasources/consistency/transformer.py":[{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"a49b7a71f67543f0dc2e7f48cb11a429c30be6ae","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @staticmethod"},{"line_number":42,"context_line":"    def _create_vertex(entity_event):"},{"line_number":43,"context_line":"        metadata \u003d {"},{"line_number":44,"context_line":"            VProps.IS_REAL_VITRAGE_ID:"},{"line_number":45,"context_line":"                entity_event.get(VProps.IS_REAL_VITRAGE_ID, False)"},{"line_number":46,"context_line":"        }"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        return graph_utils.create_vertex("},{"line_number":49,"context_line":"            entity_event[VProps.VITRAGE_ID],"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ffa3b31_e8b6b5fa","line":46,"range":{"start_line":43,"start_character":8,"end_line":46,"end_character":9},"updated":"2017-04-19 07:22:54.000000000","message":"?","commit_id":"c9444c691e213320d9ad680321c46de380a4aa12"}],"vitrage/datasources/nagios/transformer.py":[{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"a49b7a71f67543f0dc2e7f48cb11a429c30be6ae","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"        metadata \u003d {"},{"line_number":50,"context_line":"            VProps.NAME: entity_event[NagiosProperties.SERVICE],"},{"line_number":51,"context_line":"            VProps.RESOURCE_ID: entity_event[NagiosProperties.RESOURCE_NAME],"},{"line_number":52,"context_line":"            VProps.SEVERITY: entity_event[NagiosProperties.STATUS],"},{"line_number":53,"context_line":"            VProps.INFO: entity_event[NagiosProperties.STATUS_INFO]"},{"line_number":54,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ffa3b31_08a561b5","line":51,"range":{"start_line":51,"start_character":32,"end_line":51,"end_character":76},"updated":"2017-04-19 07:22:54.000000000","message":"is this good enough?","commit_id":"c9444c691e213320d9ad680321c46de380a4aa12"}],"vitrage/datasources/zabbix/transformer.py":[{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"a49b7a71f67543f0dc2e7f48cb11a429c30be6ae","unresolved":false,"context_lines":[{"line_number":65,"context_line":"            VProps.SEVERITY: TriggerSeverity.str("},{"line_number":66,"context_line":"                entity_event[ZProps.PRIORITY]),"},{"line_number":67,"context_line":"            VProps.RAWTEXT: entity_event[ZProps.RAWTEXT],"},{"line_number":68,"context_line":"            VProps.RESOURCE_ID: entity_event[ZProps.RESOURCE_NAME]"},{"line_number":69,"context_line":"        }"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        return graph_utils.create_vertex("}],"source_content_type":"text/x-python","patch_set":1,"id":"7ffa3b31_c8ae5997","line":68,"range":{"start_line":68,"start_character":32,"end_line":68,"end_character":66},"updated":"2017-04-19 07:22:54.000000000","message":"same","commit_id":"c9444c691e213320d9ad680321c46de380a4aa12"}],"vitrage/entity_graph/consistency/consistency_enforcer.py":[{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"a49b7a71f67543f0dc2e7f48cb11a429c30be6ae","unresolved":false,"context_lines":[{"line_number":161,"context_line":"                VProps.ID: vertex.get(VProps.ID, None),"},{"line_number":162,"context_line":"                VProps.TYPE: vertex[VProps.TYPE],"},{"line_number":163,"context_line":"                VProps.CATEGORY: vertex[VProps.CATEGORY],"},{"line_number":164,"context_line":"                VProps.IS_REAL_VITRAGE_ID: True"},{"line_number":165,"context_line":"            }"},{"line_number":166,"context_line":"            self.evaluator_queue.put(event)"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7ffa3b31_e884750e","line":164,"range":{"start_line":164,"start_character":15,"end_line":164,"end_character":47},"updated":"2017-04-19 07:22:54.000000000","message":"?","commit_id":"c9444c691e213320d9ad680321c46de380a4aa12"}],"vitrage/entity_graph/processor/processor.py":[{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"a49b7a71f67543f0dc2e7f48cb11a429c30be6ae","unresolved":false,"context_lines":[{"line_number":372,"context_line":""},{"line_number":373,"context_line":"    def _find_and_fix_graph_vertex(self,"},{"line_number":374,"context_line":"                                   vertex,"},{"line_number":375,"context_line":"                                   neighbors,"},{"line_number":376,"context_line":"                                   include_deleted\u003dFalse):"},{"line_number":377,"context_line":"        \"\"\"Search for vertex in graph, and update vertex id and vitrage ID"},{"line_number":378,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7ffa3b31_2e4ee56e","line":375,"range":{"start_line":375,"start_character":35,"end_line":375,"end_character":45},"updated":"2017-04-19 07:22:54.000000000","message":"neighbors\u003dNone","commit_id":"c9444c691e213320d9ad680321c46de380a4aa12"},{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"a49b7a71f67543f0dc2e7f48cb11a429c30be6ae","unresolved":false,"context_lines":[{"line_number":386,"context_line":"        :type neighbors: List of vertex neighbors"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"        :param include_deleted: If True, Include deleted entities in the search"},{"line_number":389,"context_line":"        :type include_deleted: If True, Include deleted entities in the search"},{"line_number":390,"context_line":"        \"\"\""},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"        previous_vitrage_id \u003d vertex[VProps.VITRAGE_ID]"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ffa3b31_8b93aba3","line":389,"range":{"start_line":389,"start_character":31,"end_line":389,"end_character":78},"updated":"2017-04-19 07:22:54.000000000","message":"should be \u0027bool\u0027","commit_id":"c9444c691e213320d9ad680321c46de380a4aa12"},{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"a49b7a71f67543f0dc2e7f48cb11a429c30be6ae","unresolved":false,"context_lines":[{"line_number":398,"context_line":"                                and not include_deleted):"},{"line_number":399,"context_line":""},{"line_number":400,"context_line":"            vitrage_id \u003d uuidutils.generate_uuid()"},{"line_number":401,"context_line":"            if vertex[VProps.TYPE] \u003d\u003d \u0027openstack.cluster\u0027:"},{"line_number":402,"context_line":"                self.entity_graph.root_id \u003d vitrage_id"},{"line_number":403,"context_line":"        else:"},{"line_number":404,"context_line":"            vitrage_id \u003d graph_vertex[VProps.VITRAGE_ID]"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ffa3b31_0b355bf7","line":401,"range":{"start_line":401,"start_character":38,"end_line":401,"end_character":57},"updated":"2017-04-19 07:22:54.000000000","message":"use constant OPENSTACK_CLUSTER","commit_id":"c9444c691e213320d9ad680321c46de380a4aa12"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"659e68fc8ba7fbd8f44af03b6a34cf344114e291","unresolved":false,"context_lines":[{"line_number":409,"context_line":"        if not neighbors:"},{"line_number":410,"context_line":"            return"},{"line_number":411,"context_line":""},{"line_number":412,"context_line":"        for (neighbor_vertex, edge) in neighbors:"},{"line_number":413,"context_line":"            if not neighbor_vertex.get(VProps.IS_REAL_VITRAGE_ID, False):"},{"line_number":414,"context_line":"                self._find_and_fix_graph_vertex(neighbor_vertex, [])"},{"line_number":415,"context_line":"            if edge.target_id \u003d\u003d previous_vitrage_id:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ffa3b31_a8af8de1","line":412,"range":{"start_line":412,"start_character":12,"end_line":412,"end_character":36},"updated":"2017-04-19 06:05:20.000000000","message":"no need for parenthesis","commit_id":"c9444c691e213320d9ad680321c46de380a4aa12"},{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"a49b7a71f67543f0dc2e7f48cb11a429c30be6ae","unresolved":false,"context_lines":[{"line_number":411,"context_line":""},{"line_number":412,"context_line":"        for (neighbor_vertex, edge) in neighbors:"},{"line_number":413,"context_line":"            if not neighbor_vertex.get(VProps.IS_REAL_VITRAGE_ID, False):"},{"line_number":414,"context_line":"                self._find_and_fix_graph_vertex(neighbor_vertex, [])"},{"line_number":415,"context_line":"            if edge.target_id \u003d\u003d previous_vitrage_id:"},{"line_number":416,"context_line":"                edge.target_id \u003d vitrage_id"},{"line_number":417,"context_line":"                edge.source_id \u003d neighbor_vertex.vertex_id"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ffa3b31_ce7301b1","line":414,"range":{"start_line":414,"start_character":65,"end_line":414,"end_character":67},"updated":"2017-04-19 07:22:54.000000000","message":"no need for this if neighbors has default","commit_id":"c9444c691e213320d9ad680321c46de380a4aa12"},{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"a49b7a71f67543f0dc2e7f48cb11a429c30be6ae","unresolved":false,"context_lines":[{"line_number":431,"context_line":"        :type vertex: Vertex"},{"line_number":432,"context_line":""},{"line_number":433,"context_line":"        :param include_deleted: Include deleted entities in the query"},{"line_number":434,"context_line":"        :type include_deleted: Boolean"},{"line_number":435,"context_line":"        \"\"\""},{"line_number":436,"context_line":""},{"line_number":437,"context_line":"        graph_vertices \u003d self.entity_graph.get_vertices_by_key("}],"source_content_type":"text/x-python","patch_set":1,"id":"7ffa3b31_8bf5eb85","line":434,"range":{"start_line":434,"start_character":31,"end_line":434,"end_character":38},"updated":"2017-04-19 07:22:54.000000000","message":"bool","commit_id":"c9444c691e213320d9ad680321c46de380a4aa12"},{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"a49b7a71f67543f0dc2e7f48cb11a429c30be6ae","unresolved":false,"context_lines":[{"line_number":441,"context_line":"            raise VitrageError("},{"line_number":442,"context_line":"                \u0027found too many vertices with same properties: %s \u0027,"},{"line_number":443,"context_line":"                vertex)"},{"line_number":444,"context_line":"        graph_vertex \u003d None if len(graph_vertices) \u003d\u003d 0 \\"},{"line_number":445,"context_line":"            else graph_vertices[0]"},{"line_number":446,"context_line":""},{"line_number":447,"context_line":"        return graph_vertex"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ffa3b31_0b18bbd0","line":445,"range":{"start_line":444,"start_character":0,"end_line":445,"end_character":34},"updated":"2017-04-19 07:22:54.000000000","message":"graph_vertex \u003d None if graph_vertices else graph_vertices[0]","commit_id":"c9444c691e213320d9ad680321c46de380a4aa12"}],"vitrage/entity_graph/processor/processor_utils.py":[{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"659e68fc8ba7fbd8f44af03b6a34cf344114e291","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    # In Python 2.7 it\u0027s \"unicode\", while in python 3 it\u0027s \"str\""},{"line_number":93,"context_line":"    # \"Six\" library does not give a proper solution for this problem"},{"line_number":94,"context_line":"    # Currently, the best solution is to actually test the version."},{"line_number":95,"context_line":"    if sys.version_info \u003c (3,):"},{"line_number":96,"context_line":"        defining_props \u003d {VProps.TYPE: unicode(vertex[VProps.TYPE])}"},{"line_number":97,"context_line":"    else:"},{"line_number":98,"context_line":"        defining_props \u003d {VProps.TYPE: str(vertex[VProps.TYPE])}"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    if VProps.ID in vertex.properties:"},{"line_number":101,"context_line":"        defining_props[VProps.ID] \u003d vertex[VProps.ID]"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ffa3b31_c844191e","line":98,"range":{"start_line":95,"start_character":4,"end_line":98,"end_character":64},"updated":"2017-04-19 06:05:20.000000000","message":"six.text does this","commit_id":"c9444c691e213320d9ad680321c46de380a4aa12"}],"vitrage/graph/driver/networkx_graph.py":[{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"5a8d8b990dadc735ecf3f5432d04a63665fb4fa1","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        super(NXGraph, self).__init__(name, NXGraph.GRAPH_TYPE, uuid\u003duuid)"},{"line_number":57,"context_line":"        self._g \u003d nx.MultiDiGraph()"},{"line_number":58,"context_line":"        if uuid:"},{"line_number":59,"context_line":"            self.key_to_vertex_ids \u003d dict()"},{"line_number":60,"context_line":"        self.root_id \u003d root_id"},{"line_number":61,"context_line":"        self.add_vertices(vertices)"},{"line_number":62,"context_line":"        self.add_edges(edges)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ffa3b31_0e1e896f","line":59,"range":{"start_line":59,"start_character":36,"end_line":59,"end_character":43},"updated":"2017-04-19 07:48:21.000000000","message":"defaultdict(list)","commit_id":"c9444c691e213320d9ad680321c46de380a4aa12"},{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"a49b7a71f67543f0dc2e7f48cb11a429c30be6ae","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        if self.uuid:"},{"line_number":89,"context_line":"            self.update_keys_map(v)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def update_keys_map(self, v):"},{"line_number":92,"context_line":"        key_hash \u003d PUtils.get_defining_properties(v)"},{"line_number":93,"context_line":"        if not self.key_to_vertex_ids.get(key_hash):"},{"line_number":94,"context_line":"            self.key_to_vertex_ids[key_hash] \u003d []"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ffa3b31_0b32fba7","line":91,"range":{"start_line":91,"start_character":8,"end_line":91,"end_character":23},"updated":"2017-04-19 07:22:54.000000000","message":"rename to _update_keys_ids_map, please move to the end","commit_id":"c9444c691e213320d9ad680321c46de380a4aa12"},{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"a49b7a71f67543f0dc2e7f48cb11a429c30be6ae","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def update_keys_map(self, v):"},{"line_number":92,"context_line":"        key_hash \u003d PUtils.get_defining_properties(v)"},{"line_number":93,"context_line":"        if not self.key_to_vertex_ids.get(key_hash):"},{"line_number":94,"context_line":"            self.key_to_vertex_ids[key_hash] \u003d []"},{"line_number":95,"context_line":"        if v.vertex_id not in self.key_to_vertex_ids[key_hash]:"},{"line_number":96,"context_line":"            self.key_to_vertex_ids[key_hash].append(v.vertex_id)"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7ffa3b31_abd0a720","line":94,"range":{"start_line":93,"start_character":0,"end_line":94,"end_character":49},"updated":"2017-04-19 07:22:54.000000000","message":"can use default dict to shorten this","commit_id":"c9444c691e213320d9ad680321c46de380a4aa12"},{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"a49b7a71f67543f0dc2e7f48cb11a429c30be6ae","unresolved":false,"context_lines":[{"line_number":249,"context_line":"        else:"},{"line_number":250,"context_line":"            return []"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"    def get_vertices_by_key(self, key_values_hash, with_deleted\u003dFalse):"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"        if key_values_hash in self.key_to_vertex_ids:"},{"line_number":255,"context_line":"            vertices \u003d []"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ffa3b31_8b6f2b91","line":252,"range":{"start_line":252,"start_character":49,"end_line":252,"end_character":69},"updated":"2017-04-19 07:22:54.000000000","message":"Graph driver is generic, hence should not know about fields such as IS_DELETED","commit_id":"c9444c691e213320d9ad680321c46de380a4aa12"},{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"a49b7a71f67543f0dc2e7f48cb11a429c30be6ae","unresolved":false,"context_lines":[{"line_number":249,"context_line":"        else:"},{"line_number":250,"context_line":"            return []"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"    def get_vertices_by_key(self, key_values_hash, with_deleted\u003dFalse):"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"        if key_values_hash in self.key_to_vertex_ids:"},{"line_number":255,"context_line":"            vertices \u003d []"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ffa3b31_6badff86","line":252,"range":{"start_line":252,"start_character":8,"end_line":252,"end_character":27},"updated":"2017-04-19 07:22:54.000000000","message":"should also add to graph.py (is the interface)","commit_id":"c9444c691e213320d9ad680321c46de380a4aa12"},{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"a49b7a71f67543f0dc2e7f48cb11a429c30be6ae","unresolved":false,"context_lines":[{"line_number":259,"context_line":"            else:"},{"line_number":260,"context_line":"                for vertex_id in self.key_to_vertex_ids[key_values_hash]:"},{"line_number":261,"context_line":"                    tmp_vertex \u003d self.get_vertex(vertex_id)"},{"line_number":262,"context_line":"                    if not tmp_vertex.get(VProps.IS_DELETED, False):"},{"line_number":263,"context_line":"                        vertices.append(tmp_vertex)"},{"line_number":264,"context_line":"            return vertices"},{"line_number":265,"context_line":"        return []"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ffa3b31_4b692389","line":262,"range":{"start_line":262,"start_character":42,"end_line":262,"end_character":66},"updated":"2017-04-19 07:22:54.000000000","message":"same","commit_id":"c9444c691e213320d9ad680321c46de380a4aa12"}],"vitrage_tempest_tests/tests/api/event/test_events.py":[{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"659e68fc8ba7fbd8f44af03b6a34cf344114e291","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"7ffa3b31_681ce511","updated":"2017-04-19 06:05:20.000000000","message":"did you check that this tests actually passes because I use it as a smoke test in puppet-openstack-integration","commit_id":"c9444c691e213320d9ad680321c46de380a4aa12"}]}
