)]}'
{"vitrage/entity_graph/driver_exec.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"88e20b468d8df497617c7d0e285c79b6fc820687","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            for vertex in vertices"},{"line_number":113,"context_line":"        ]"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def _find_vertices_to_delete(self, driver_name, now):"},{"line_number":116,"context_line":"        query \u003d {"},{"line_number":117,"context_line":"            \u0027and\u0027: ["},{"line_number":118,"context_line":"                {\u0027!\u003d\u0027: {VProps.VITRAGE_TYPE: VITRAGE_DATASOURCE}},"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_362daf94","line":115,"range":{"start_line":115,"start_character":8,"end_line":115,"end_character":32},"updated":"2019-08-05 11:15:14.000000000","message":"what about drivers like collectd, that raise an alarm once and don\u0027t update it (because they don\u0027t support get_all)? I think you should also call the driver\u0027s should_delete_outdated_vertices() method","commit_id":"d5bf0bd4fbb06b5f7ed2906c67c27f2783ddc236"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"fa246b2241a40a4701739fcfb82403e86ac4a38e","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            for vertex in vertices"},{"line_number":113,"context_line":"        ]"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def _find_vertices_to_delete(self, driver_name, now):"},{"line_number":116,"context_line":"        query \u003d {"},{"line_number":117,"context_line":"            \u0027and\u0027: ["},{"line_number":118,"context_line":"                {\u0027!\u003d\u0027: {VProps.VITRAGE_TYPE: VITRAGE_DATASOURCE}},"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_76c24755","line":115,"range":{"start_line":115,"start_character":8,"end_line":115,"end_character":32},"in_reply_to":"7faddb67_362daf94","updated":"2019-08-05 11:48:07.000000000","message":"Done","commit_id":"d5bf0bd4fbb06b5f7ed2906c67c27f2783ddc236"},{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"d380eab33af568431c9380b51751b10c31c2d070","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            # if driver does not support get_all e.g collectd then"},{"line_number":67,"context_line":"            # it will return None, in that case dont delete outdated"},{"line_number":68,"context_line":"            # vertices , Note that if returned [] it is valid"},{"line_number":69,"context_line":"            events \u003d driver.get_all(action)"},{"line_number":70,"context_line":"            if events is None:"},{"line_number":71,"context_line":"                all_events \u003d []"},{"line_number":72,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_77aeb62e","line":69,"range":{"start_line":69,"start_character":12,"end_line":69,"end_character":18},"updated":"2019-08-06 05:56:54.000000000","message":"Seems fine, just notice that events can be a generator that should not be iterated or turned into a list - before it is actually used.","commit_id":"31ace9c50671577e7c7c6e553de2053ba3a9b6a8"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"0f928c1725e8d659dd18fbc9a439426dbc03d931","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            # if driver does not support get_all e.g collectd then"},{"line_number":67,"context_line":"            # it will return None, in that case dont delete outdated"},{"line_number":68,"context_line":"            # vertices , Note that if returned [] it is valid"},{"line_number":69,"context_line":"            events \u003d driver.get_all(action)"},{"line_number":70,"context_line":"            if events is None:"},{"line_number":71,"context_line":"                all_events \u003d []"},{"line_number":72,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_1fa438a5","line":69,"range":{"start_line":69,"start_character":12,"end_line":69,"end_character":18},"in_reply_to":"7faddb67_77aeb62e","updated":"2019-08-06 08:57:51.000000000","message":"Done","commit_id":"31ace9c50671577e7c7c6e553de2053ba3a9b6a8"},{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"d380eab33af568431c9380b51751b10c31c2d070","unresolved":false,"context_lines":[{"line_number":67,"context_line":"            # it will return None, in that case dont delete outdated"},{"line_number":68,"context_line":"            # vertices , Note that if returned [] it is valid"},{"line_number":69,"context_line":"            events \u003d driver.get_all(action)"},{"line_number":70,"context_line":"            if events is None:"},{"line_number":71,"context_line":"                all_events \u003d []"},{"line_number":72,"context_line":"            else:"},{"line_number":73,"context_line":"                vertices_to_delete \u003d \\"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_f72f06f3","line":70,"range":{"start_line":70,"start_character":12,"end_line":70,"end_character":30},"updated":"2019-08-06 05:56:54.000000000","message":"Cant we use the update_method to know this?\nThere may be other drivers that return None, or for example a driver that failed to run.","commit_id":"31ace9c50671577e7c7c6e553de2053ba3a9b6a8"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"0f928c1725e8d659dd18fbc9a439426dbc03d931","unresolved":false,"context_lines":[{"line_number":67,"context_line":"            # it will return None, in that case dont delete outdated"},{"line_number":68,"context_line":"            # vertices , Note that if returned [] it is valid"},{"line_number":69,"context_line":"            events \u003d driver.get_all(action)"},{"line_number":70,"context_line":"            if events is None:"},{"line_number":71,"context_line":"                all_events \u003d []"},{"line_number":72,"context_line":"            else:"},{"line_number":73,"context_line":"                vertices_to_delete \u003d \\"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_7f99ac6a","line":70,"range":{"start_line":70,"start_character":12,"end_line":70,"end_character":30},"in_reply_to":"7faddb67_f72f06f3","updated":"2019-08-06 08:57:51.000000000","message":"Done","commit_id":"31ace9c50671577e7c7c6e553de2053ba3a9b6a8"},{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"d380eab33af568431c9380b51751b10c31c2d070","unresolved":false,"context_lines":[{"line_number":73,"context_line":"                vertices_to_delete \u003d \\"},{"line_number":74,"context_line":"                    self._find_vertices_to_delete(driver_name, now)"},{"line_number":75,"context_line":"                delete_events \u003d self._to_events(vertices_to_delete)"},{"line_number":76,"context_line":"                all_events \u003d itertools.chain(delete_events, events)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"            count \u003d self.process_output_func(all_events)"},{"line_number":79,"context_line":"            LOG.info(\"run driver get_all: %s done (%s events)\","}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_1790a2ec","line":76,"range":{"start_line":76,"start_character":29,"end_line":76,"end_character":67},"updated":"2019-08-06 05:56:54.000000000","message":"The graph is not yet updated with new events","commit_id":"31ace9c50671577e7c7c6e553de2053ba3a9b6a8"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"0f928c1725e8d659dd18fbc9a439426dbc03d931","unresolved":false,"context_lines":[{"line_number":73,"context_line":"                vertices_to_delete \u003d \\"},{"line_number":74,"context_line":"                    self._find_vertices_to_delete(driver_name, now)"},{"line_number":75,"context_line":"                delete_events \u003d self._to_events(vertices_to_delete)"},{"line_number":76,"context_line":"                all_events \u003d itertools.chain(delete_events, events)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"            count \u003d self.process_output_func(all_events)"},{"line_number":79,"context_line":"            LOG.info(\"run driver get_all: %s done (%s events)\","}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_bf93a44e","line":76,"range":{"start_line":76,"start_character":29,"end_line":76,"end_character":67},"in_reply_to":"7faddb67_1790a2ec","updated":"2019-08-06 08:57:51.000000000","message":"Done","commit_id":"31ace9c50671577e7c7c6e553de2053ba3a9b6a8"},{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"3fde17d76188d322ae0d1b834591e3b3f2d2170b","unresolved":false,"context_lines":[{"line_number":124,"context_line":"    def _find_vertices_to_delete(self, driver_name, now):"},{"line_number":125,"context_line":"        query \u003d {"},{"line_number":126,"context_line":"            \u0027and\u0027: ["},{"line_number":127,"context_line":"                {\u0027!\u003d\u0027: {VProps.VITRAGE_TYPE: VITRAGE_DATASOURCE}},"},{"line_number":128,"context_line":"                {\u0027\u003c\u0027: {VProps.VITRAGE_SAMPLE_TIMESTAMP: now}},"},{"line_number":129,"context_line":"                {\u0027\u003d\u003d\u0027: {VProps.VITRAGE_IS_DELETED: False}},"},{"line_number":130,"context_line":"            ]"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_a94db29a","line":127,"range":{"start_line":127,"start_character":15,"end_line":127,"end_character":66},"updated":"2019-08-06 07:29:12.000000000","message":"The filtering can be removed by changing this query \n\n{\u0027\u003d\u003d\u0027: {VProps.VITRAGE_DATASOURCE_NAME: driver_name}},","commit_id":"31ace9c50671577e7c7c6e553de2053ba3a9b6a8"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"0f928c1725e8d659dd18fbc9a439426dbc03d931","unresolved":false,"context_lines":[{"line_number":124,"context_line":"    def _find_vertices_to_delete(self, driver_name, now):"},{"line_number":125,"context_line":"        query \u003d {"},{"line_number":126,"context_line":"            \u0027and\u0027: ["},{"line_number":127,"context_line":"                {\u0027!\u003d\u0027: {VProps.VITRAGE_TYPE: VITRAGE_DATASOURCE}},"},{"line_number":128,"context_line":"                {\u0027\u003c\u0027: {VProps.VITRAGE_SAMPLE_TIMESTAMP: now}},"},{"line_number":129,"context_line":"                {\u0027\u003d\u003d\u0027: {VProps.VITRAGE_IS_DELETED: False}},"},{"line_number":130,"context_line":"            ]"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_9f902845","line":127,"range":{"start_line":127,"start_character":15,"end_line":127,"end_character":66},"in_reply_to":"7faddb67_a94db29a","updated":"2019-08-06 08:57:51.000000000","message":"Done","commit_id":"31ace9c50671577e7c7c6e553de2053ba3a9b6a8"},{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"90157f46f3c791923c1ae6863e9d22627778a6da","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"            if driver.should_delete_outdated_entities():"},{"line_number":66,"context_line":"                vertices_to_delete \u003d \\"},{"line_number":67,"context_line":"                    self._find_vertices_to_delete(driver_name, now)"},{"line_number":68,"context_line":"                delete_events \u003d self._to_events(vertices_to_delete)"},{"line_number":69,"context_line":"                count_deleted \u003d self.process_output_func(delete_events)"},{"line_number":70,"context_line":"                LOG.info(\"run driver delete outdated vertices: %s done \""}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_8c046b1a","line":67,"range":{"start_line":67,"start_character":50,"end_line":67,"end_character":61},"updated":"2019-08-07 08:39:35.000000000","message":"driver_name here is the name as in the configuration file.\nBut, i think that the value that is stored in the vertex VITRAGE_DATASOURCE_NAME comes from the driver._datasource_name. These may be slightly different","commit_id":"109bb1ffb69399114167ab6f665a43a008597b81"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"7b34073165aedfad7dd92812460307b45fad5a07","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"            if driver.should_delete_outdated_entities():"},{"line_number":66,"context_line":"                vertices_to_delete \u003d \\"},{"line_number":67,"context_line":"                    self._find_vertices_to_delete(driver_name, now)"},{"line_number":68,"context_line":"                delete_events \u003d self._to_events(vertices_to_delete)"},{"line_number":69,"context_line":"                count_deleted \u003d self.process_output_func(delete_events)"},{"line_number":70,"context_line":"                LOG.info(\"run driver delete outdated vertices: %s done \""}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_cf47b51e","line":67,"range":{"start_line":67,"start_character":50,"end_line":67,"end_character":61},"in_reply_to":"7faddb67_8c046b1a","updated":"2019-08-07 09:26:20.000000000","message":"no it works","commit_id":"109bb1ffb69399114167ab6f665a43a008597b81"},{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"90157f46f3c791923c1ae6863e9d22627778a6da","unresolved":false,"context_lines":[{"line_number":103,"context_line":"                DSProps.ENTITY_TYPE: CONSISTENCY_DATASOURCE,"},{"line_number":104,"context_line":"                DSProps.DATASOURCE_ACTION: DatasourceAction.UPDATE,"},{"line_number":105,"context_line":"                DSProps.SAMPLE_DATE: str(utcnow()),"},{"line_number":106,"context_line":"                DSProps.EVENT_TYPE: GraphAction.REMOVE_DELETED_ENTITY,"},{"line_number":107,"context_line":"                VProps.VITRAGE_ID: vertex[VProps.VITRAGE_ID],"},{"line_number":108,"context_line":"                VProps.ID: vertex.get(VProps.ID, None),"},{"line_number":109,"context_line":"                VProps.VITRAGE_TYPE: vertex[VProps.VITRAGE_TYPE],"}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_ef3ab1c2","line":106,"range":{"start_line":106,"start_character":48,"end_line":106,"end_character":69},"updated":"2019-08-07 08:39:35.000000000","message":"I think this should be DELETE_ENTITY, because it is not deleted yet.","commit_id":"109bb1ffb69399114167ab6f665a43a008597b81"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"7b34073165aedfad7dd92812460307b45fad5a07","unresolved":false,"context_lines":[{"line_number":103,"context_line":"                DSProps.ENTITY_TYPE: CONSISTENCY_DATASOURCE,"},{"line_number":104,"context_line":"                DSProps.DATASOURCE_ACTION: DatasourceAction.UPDATE,"},{"line_number":105,"context_line":"                DSProps.SAMPLE_DATE: str(utcnow()),"},{"line_number":106,"context_line":"                DSProps.EVENT_TYPE: GraphAction.REMOVE_DELETED_ENTITY,"},{"line_number":107,"context_line":"                VProps.VITRAGE_ID: vertex[VProps.VITRAGE_ID],"},{"line_number":108,"context_line":"                VProps.ID: vertex.get(VProps.ID, None),"},{"line_number":109,"context_line":"                VProps.VITRAGE_TYPE: vertex[VProps.VITRAGE_TYPE],"}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_af8cb9d7","line":106,"range":{"start_line":106,"start_character":48,"end_line":106,"end_character":69},"in_reply_to":"7faddb67_ef3ab1c2","updated":"2019-08-07 09:26:20.000000000","message":"Done","commit_id":"109bb1ffb69399114167ab6f665a43a008597b81"},{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"90157f46f3c791923c1ae6863e9d22627778a6da","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        query \u003d {"},{"line_number":118,"context_line":"            \u0027and\u0027: ["},{"line_number":119,"context_line":"                {\u0027\u003d\u003d\u0027: {VProps.VITRAGE_DATASOURCE_NAME: driver_name}},"},{"line_number":120,"context_line":"                {\u0027\u003c\u0027: {VProps.VITRAGE_SAMPLE_TIMESTAMP: now}},"},{"line_number":121,"context_line":"                {\u0027\u003d\u003d\u0027: {VProps.VITRAGE_IS_DELETED: False}},"},{"line_number":122,"context_line":"            ]"},{"line_number":123,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_0f1f0d5c","line":120,"range":{"start_line":120,"start_character":30,"end_line":120,"end_character":54},"updated":"2019-08-07 08:39:35.000000000","message":"Are you sure? it could also be VITRAGE_UPDATE_TIMESTAMP","commit_id":"109bb1ffb69399114167ab6f665a43a008597b81"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"7b34073165aedfad7dd92812460307b45fad5a07","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        query \u003d {"},{"line_number":118,"context_line":"            \u0027and\u0027: ["},{"line_number":119,"context_line":"                {\u0027\u003d\u003d\u0027: {VProps.VITRAGE_DATASOURCE_NAME: driver_name}},"},{"line_number":120,"context_line":"                {\u0027\u003c\u0027: {VProps.VITRAGE_SAMPLE_TIMESTAMP: now}},"},{"line_number":121,"context_line":"                {\u0027\u003d\u003d\u0027: {VProps.VITRAGE_IS_DELETED: False}},"},{"line_number":122,"context_line":"            ]"},{"line_number":123,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":8,"id":"7faddb67_2fba096e","line":120,"range":{"start_line":120,"start_character":30,"end_line":120,"end_character":54},"in_reply_to":"7faddb67_0f1f0d5c","updated":"2019-08-07 09:26:20.000000000","message":"its the right one","commit_id":"109bb1ffb69399114167ab6f665a43a008597b81"},{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"bbff92e5c55f96fcfba10f07c60958fa65f32ab2","unresolved":false,"context_lines":[{"line_number":66,"context_line":"                vertices_to_delete \u003d \\"},{"line_number":67,"context_line":"                    self._find_vertices_to_delete(driver_name, now)"},{"line_number":68,"context_line":"                delete_events \u003d self._to_events(vertices_to_delete)"},{"line_number":69,"context_line":"                count_deleted \u003d self.process_output_func(delete_events)"},{"line_number":70,"context_line":"                LOG.info(\"run driver delete outdated vertices: %s done \""},{"line_number":71,"context_line":"                         \"(%s events)\", driver_name, count_deleted)"},{"line_number":72,"context_line":"                count +\u003d count_deleted"},{"line_number":73,"context_line":"            return count"},{"line_number":74,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_dd6baf82","line":71,"range":{"start_line":69,"start_character":0,"end_line":71,"end_character":67},"updated":"2019-08-11 07:16:09.000000000","message":"processing and logging only if there are delete_events","commit_id":"c9fb7cb459349f8350cffef53480dd52613f3109"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"872c3695c62beab2c0333ff54639634572d299b8","unresolved":false,"context_lines":[{"line_number":66,"context_line":"                vertices_to_delete \u003d \\"},{"line_number":67,"context_line":"                    self._find_vertices_to_delete(driver_name, now)"},{"line_number":68,"context_line":"                delete_events \u003d self._to_events(vertices_to_delete)"},{"line_number":69,"context_line":"                count_deleted \u003d self.process_output_func(delete_events)"},{"line_number":70,"context_line":"                LOG.info(\"run driver delete outdated vertices: %s done \""},{"line_number":71,"context_line":"                         \"(%s events)\", driver_name, count_deleted)"},{"line_number":72,"context_line":"                count +\u003d count_deleted"},{"line_number":73,"context_line":"            return count"},{"line_number":74,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":9,"id":"7faddb67_7d295b35","line":71,"range":{"start_line":69,"start_character":0,"end_line":71,"end_character":67},"in_reply_to":"7faddb67_dd6baf82","updated":"2019-08-11 07:31:48.000000000","message":"Done","commit_id":"c9fb7cb459349f8350cffef53480dd52613f3109"}]}
