)]}'
{"vitrage/entity_graph/graph_init.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"f39b97d19c9dd7cee338836982c7bed9e5046376","unresolved":false,"context_lines":[{"line_number":101,"context_line":"            self.workers.submit_evaluators_reload_templates()"},{"line_number":102,"context_line":"        else:"},{"line_number":103,"context_line":"            self.processor.process_event(event)"},{"line_number":104,"context_line":"        self.persist.flush_events()"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    def _recreate_transformers_id_cache(self):"},{"line_number":107,"context_line":"        for v in self.graph.get_vertices():"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fdfeff1_d967d024","line":104,"range":{"start_line":104,"start_character":8,"end_line":104,"end_character":35},"updated":"2019-02-27 12:43:41.000000000","message":"Is it flushed for a single event as well?","commit_id":"d076754c03d0cf4a6b95f6151d2c5d8951a67ba2"},{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"2c49d1195ca64c85024d4f154230cb8b776bf4a5","unresolved":false,"context_lines":[{"line_number":101,"context_line":"            self.workers.submit_evaluators_reload_templates()"},{"line_number":102,"context_line":"        else:"},{"line_number":103,"context_line":"            self.processor.process_event(event)"},{"line_number":104,"context_line":"        self.persist.flush_events()"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    def _recreate_transformers_id_cache(self):"},{"line_number":107,"context_line":"        for v in self.graph.get_vertices():"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fdfeff1_8cb268e4","line":104,"range":{"start_line":104,"start_character":8,"end_line":104,"end_character":35},"in_reply_to":"9fdfeff1_d967d024","updated":"2019-02-27 15:44:12.000000000","message":"yes, process_event() may generate these, hence after process_event ran any number of times, flush the data.","commit_id":"d076754c03d0cf4a6b95f6151d2c5d8951a67ba2"}],"vitrage/evaluator/scenario_evaluator.py":[{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"9d535709baee523775dac837cffad8e5fb5b1e1e","unresolved":false,"context_lines":[{"line_number":149,"context_line":"            self._action_executor.execute(action.specs, action.mode)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"        if self.actions_to_do:"},{"line_number":152,"context_line":"            self.actions_callback(\u0027kuku\u0027, self.actions_to_do)"},{"line_number":153,"context_line":"            self.actions_to_do \u003d []"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"        LOG.debug(\u0027Process event - completed\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_342ad690","line":152,"range":{"start_line":152,"start_character":35,"end_line":152,"end_character":39},"updated":"2019-02-25 15:54:43.000000000","message":"????","commit_id":"8307fb5b5de44602e5b6fdcc14b5f89dffc86a68"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"9d535709baee523775dac837cffad8e5fb5b1e1e","unresolved":false,"context_lines":[{"line_number":601,"context_line":""},{"line_number":602,"context_line":"    def _query_similar_actions(self, actions):"},{"line_number":603,"context_line":"        \"\"\"Query DB for all actions with same properties\"\"\""},{"line_number":604,"context_line":"        actions_keys \u003d set([self._get_key(action) for action in actions])"},{"line_number":605,"context_line":"        db_rows \u003d self._db.active_actions._query_similar_actions(actions_keys) or []"},{"line_number":606,"context_line":"        result \u003d defaultdict(set)"},{"line_number":607,"context_line":"        for action in actions_keys:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_a80f4a2c","line":604,"range":{"start_line":604,"start_character":23,"end_line":604,"end_character":73},"updated":"2019-02-25 15:54:43.000000000","message":"{self._get_key(action) for action in actions}","commit_id":"8307fb5b5de44602e5b6fdcc14b5f89dffc86a68"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"4bf8e8fc35178464f69e8206f5236221f5f10a15","unresolved":false,"context_lines":[{"line_number":573,"context_line":"        self._remove(action_info)"},{"line_number":574,"context_line":"        return result"},{"line_number":575,"context_line":""},{"line_number":576,"context_line":"    def get_actions_to_remove(self):"},{"line_number":577,"context_line":"        return self.actions_to_remove"},{"line_number":578,"context_line":""},{"line_number":579,"context_line":"    def get_actions_to_create(self):"},{"line_number":580,"context_line":"        return self.actions_to_create.values()"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_7e4ca175","line":577,"range":{"start_line":576,"start_character":4,"end_line":577,"end_character":37},"updated":"2019-02-26 14:12:31.000000000","message":"this is redundant","commit_id":"38067580b7c84e1a6d3fda32dc252629792d5fd5"},{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"0733a47282ac1ee55a5188c69121b5f05ca2e82a","unresolved":false,"context_lines":[{"line_number":573,"context_line":"        self._remove(action_info)"},{"line_number":574,"context_line":"        return result"},{"line_number":575,"context_line":""},{"line_number":576,"context_line":"    def get_actions_to_remove(self):"},{"line_number":577,"context_line":"        return self.actions_to_remove"},{"line_number":578,"context_line":""},{"line_number":579,"context_line":"    def get_actions_to_create(self):"},{"line_number":580,"context_line":"        return self.actions_to_create.values()"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_76c83854","line":577,"range":{"start_line":576,"start_character":4,"end_line":577,"end_character":37},"in_reply_to":"9fdfeff1_7e4ca175","updated":"2019-02-27 07:56:18.000000000","message":"Done","commit_id":"38067580b7c84e1a6d3fda32dc252629792d5fd5"},{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"4bf8e8fc35178464f69e8206f5236221f5f10a15","unresolved":false,"context_lines":[{"line_number":576,"context_line":"    def get_actions_to_remove(self):"},{"line_number":577,"context_line":"        return self.actions_to_remove"},{"line_number":578,"context_line":""},{"line_number":579,"context_line":"    def get_actions_to_create(self):"},{"line_number":580,"context_line":"        return self.actions_to_create.values()"},{"line_number":581,"context_line":""},{"line_number":582,"context_line":"    def _add(self, action_info):"},{"line_number":583,"context_line":"        db_row \u003d self._to_db_row(action_info)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_9e7aa585","line":580,"range":{"start_line":579,"start_character":4,"end_line":580,"end_character":46},"updated":"2019-02-26 14:12:31.000000000","message":"use a property here","commit_id":"38067580b7c84e1a6d3fda32dc252629792d5fd5"},{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"0733a47282ac1ee55a5188c69121b5f05ca2e82a","unresolved":false,"context_lines":[{"line_number":576,"context_line":"    def get_actions_to_remove(self):"},{"line_number":577,"context_line":"        return self.actions_to_remove"},{"line_number":578,"context_line":""},{"line_number":579,"context_line":"    def get_actions_to_create(self):"},{"line_number":580,"context_line":"        return self.actions_to_create.values()"},{"line_number":581,"context_line":""},{"line_number":582,"context_line":"    def _add(self, action_info):"},{"line_number":583,"context_line":"        db_row \u003d self._to_db_row(action_info)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_16c1ac2f","line":580,"range":{"start_line":579,"start_character":4,"end_line":580,"end_character":46},"in_reply_to":"9fdfeff1_9e7aa585","updated":"2019-02-27 07:56:18.000000000","message":"Done","commit_id":"38067580b7c84e1a6d3fda32dc252629792d5fd5"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"f39b97d19c9dd7cee338836982c7bed9e5046376","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        self.actions_to_do \u003d []"},{"line_number":78,"context_line":"        self.actions_callback \u003d actions_callback"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def add_to_actions(self, event_type, event):"},{"line_number":81,"context_line":"        self.actions_to_do.append(event)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fdfeff1_d9503035","line":80,"range":{"start_line":80,"start_character":8,"end_line":80,"end_character":22},"updated":"2019-02-27 12:43:41.000000000","message":"add_to_do_actions","commit_id":"d076754c03d0cf4a6b95f6151d2c5d8951a67ba2"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"f39b97d19c9dd7cee338836982c7bed9e5046376","unresolved":false,"context_lines":[{"line_number":337,"context_line":"        active_actions.flush_db_updates()"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"        unique_ordered_actions \u003d OrderedDict()"},{"line_number":340,"context_line":"        for action in active_actions.actions_to_perform:"},{"line_number":341,"context_line":"            if isinstance(action, ActiveAction):"},{"line_number":342,"context_line":"                action \u003d self._db_action_to_action_info(action)"},{"line_number":343,"context_line":"            id_ \u003d self._generate_action_id(action.specs)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fdfeff1_395ffc41","line":340,"range":{"start_line":340,"start_character":37,"end_line":340,"end_character":55},"updated":"2019-02-27 12:43:41.000000000","message":"what is actions_to_do vs. action_to_perform?","commit_id":"d076754c03d0cf4a6b95f6151d2c5d8951a67ba2"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"f39b97d19c9dd7cee338836982c7bed9e5046376","unresolved":false,"context_lines":[{"line_number":481,"context_line":"                                                 action.action_id, s, t)"},{"line_number":482,"context_line":""},{"line_number":483,"context_line":""},{"line_number":484,"context_line":"class ActiveActionsTracker(object):"},{"line_number":485,"context_line":"    \"\"\"Keeps track of all active actions and relative dominance/priority."},{"line_number":486,"context_line":""},{"line_number":487,"context_line":"    Actions are organized according to resource-id and action details."}],"source_content_type":"text/x-python","patch_set":7,"id":"9fdfeff1_7936e404","line":484,"range":{"start_line":484,"start_character":6,"end_line":484,"end_character":26},"updated":"2019-02-27 12:43:41.000000000","message":"I would move it to another file, this file is too long","commit_id":"d076754c03d0cf4a6b95f6151d2c5d8951a67ba2"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"f39b97d19c9dd7cee338836982c7bed9e5046376","unresolved":false,"context_lines":[{"line_number":534,"context_line":"            ActionType.EXECUTE_MISTRAL: pt.BaselineTools"},{"line_number":535,"context_line":"        }"},{"line_number":536,"context_line":""},{"line_number":537,"context_line":"    def calc_do_action(self, action_info):"},{"line_number":538,"context_line":"        \"\"\"Add this action to active_actions table, if not exists"},{"line_number":539,"context_line":""},{"line_number":540,"context_line":"        return value to help decide if action should be performed"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fdfeff1_ac75ec99","line":537,"range":{"start_line":537,"start_character":8,"end_line":537,"end_character":22},"updated":"2019-02-27 12:43:41.000000000","message":"I think the name calc_ is misleading, since the function also writes the action to db.","commit_id":"d076754c03d0cf4a6b95f6151d2c5d8951a67ba2"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"f39b97d19c9dd7cee338836982c7bed9e5046376","unresolved":false,"context_lines":[{"line_number":559,"context_line":"        :param action_info: action to delete"},{"line_number":560,"context_line":"        \"\"\""},{"line_number":561,"context_line":"        similar_actions \u003d self._get_similar(action_info)"},{"line_number":562,"context_line":"        if not self._is_highest_score(similar_actions, action_info):"},{"line_number":563,"context_line":"            self._remove(action_info)"},{"line_number":564,"context_line":"            return"},{"line_number":565,"context_line":""},{"line_number":566,"context_line":"        second_highest \u003d self._sort_db_actions(similar_actions)[1]\\"},{"line_number":567,"context_line":"            if len(similar_actions) \u003e 1 else None"},{"line_number":568,"context_line":"        # We should \u0027DO\u0027 the Second highest scored action so"},{"line_number":569,"context_line":"        # to override the existing dominant action."},{"line_number":570,"context_line":"        # or, if there is no second highest scored action"},{"line_number":571,"context_line":"        # So we just \u0027UNDO\u0027 the existing dominant action"},{"line_number":572,"context_line":"        if second_highest:"},{"line_number":573,"context_line":"            self.actions_to_perform.append(second_highest)"},{"line_number":574,"context_line":"        else:"},{"line_number":575,"context_line":"            self.actions_to_perform.append(action_info)"},{"line_number":576,"context_line":"        self._remove(action_info)"},{"line_number":577,"context_line":""},{"line_number":578,"context_line":"    def flush_db_updates(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fdfeff1_ec8c5481","line":575,"range":{"start_line":562,"start_character":0,"end_line":575,"end_character":55},"updated":"2019-02-27 12:43:41.000000000","message":"I think you can write instead:\n\nif self._is_highest_score(similar_actions, action_info):\n   ... all the code of second_highest ...\n\nself._remove(action_info)","commit_id":"d076754c03d0cf4a6b95f6151d2c5d8951a67ba2"},{"author":{"_account_id":26339,"name":"Muhamad Najjar","email":"muhamad.najjar@nokia.com","username":"7mode3294"},"change_message_id":"b59407769ec1c17350668bdf5dc8e3783fbdc3cb","unresolved":false,"context_lines":[{"line_number":460,"context_line":"                del match[v_id]"},{"line_number":461,"context_line":""},{"line_number":462,"context_line":""},{"line_number":463,"context_line":"class ActiveActionsTracker(object):"},{"line_number":464,"context_line":"    \"\"\"Keeps track of all active actions and relative dominance/priority."},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"    Actions are organized according to resource-id and action details."}],"source_content_type":"text/x-python","patch_set":8,"id":"9fdfeff1_0f51730e","line":463,"range":{"start_line":463,"start_character":6,"end_line":463,"end_character":26},"updated":"2019-02-28 07:49:34.000000000","message":"documentations in the class and in the function are still true after all those changes?","commit_id":"12bac362eeb018f9ea918eeec4ab6f91eea23a44"}],"vitrage/storage/impl_sqlalchemy.py":[{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"9d535709baee523775dac837cffad8e5fb5b1e1e","unresolved":false,"context_lines":[{"line_number":302,"context_line":"    def __init__(self, engine_facade):"},{"line_number":303,"context_line":"        super(EventsConnection, self).__init__(engine_facade)"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"    def bulk_create(self, events):"},{"line_number":306,"context_line":"        session \u003d self._engine_facade.get_session()"},{"line_number":307,"context_line":"        with session.begin():"},{"line_number":308,"context_line":"            session.bulk_save_objects(events)"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"    def create(self, event):"},{"line_number":311,"context_line":"        session \u003d self._engine_facade.get_session()"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_28a03af4","line":308,"range":{"start_line":305,"start_character":3,"end_line":308,"end_character":45},"updated":"2019-02-25 15:54:43.000000000","message":"the same as above you can crate one method for that in base","commit_id":"8307fb5b5de44602e5b6fdcc14b5f89dffc86a68"}],"vitrage/tests/functional/entity_graph/consistency/test_consistency.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"f39b97d19c9dd7cee338836982c7bed9e5046376","unresolved":false,"context_lines":[{"line_number":261,"context_line":"                while not self.event_queue.empty():"},{"line_number":262,"context_line":"                    count +\u003d 1"},{"line_number":263,"context_line":"                    data \u003d self.event_queue.get()"},{"line_number":264,"context_line":"                    if isinstance(data, list):"},{"line_number":265,"context_line":"                        for event in data:"},{"line_number":266,"context_line":"                            self.processor.process_event(event)"},{"line_number":267,"context_line":"                    else:"},{"line_number":268,"context_line":"                        self.processor.process_event(data)"},{"line_number":269,"context_line":"                return"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fdfeff1_0c6678bc","line":266,"range":{"start_line":264,"start_character":0,"end_line":266,"end_character":63},"updated":"2019-02-27 12:43:41.000000000","message":"Why did you change it? process_event should work also for a list, right?","commit_id":"d076754c03d0cf4a6b95f6151d2c5d8951a67ba2"}],"vitrage/tests/functional/entity_graph/graph_persistor/test_graph_persistor.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"f39b97d19c9dd7cee338836982c7bed9e5046376","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        edge \u003d g.get_edges(vertices[2].vertex_id).pop()"},{"line_number":87,"context_line":"        edge[EdgeProperties.RELATIONSHIP_TYPE] \u003d \u0027kuku\u0027"},{"line_number":88,"context_line":"        g.update_edge(edge)"},{"line_number":89,"context_line":"        graph_persistor.flush_events()"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        self.assertIsNone(self.fail_msg, \u0027callback failed\u0027)"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9fdfeff1_8c0fc8de","line":89,"range":{"start_line":89,"start_character":8,"end_line":89,"end_character":38},"updated":"2019-02-27 12:43:41.000000000","message":"Does it make sense to call flush_events() in a functional test? I would expect a functional test to be more of a black box","commit_id":"d076754c03d0cf4a6b95f6151d2c5d8951a67ba2"}],"vitrage/tests/functional/evaluator/test_scenario_evaluator.py":[{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"f39b97d19c9dd7cee338836982c7bed9e5046376","unresolved":false,"context_lines":[{"line_number":1406,"context_line":"    def _consume_queue(event_queue, processor):"},{"line_number":1407,"context_line":"        while not event_queue.empty():"},{"line_number":1408,"context_line":"            data \u003d event_queue.get()"},{"line_number":1409,"context_line":"            if isinstance(data, list):"},{"line_number":1410,"context_line":"                for event in data:"},{"line_number":1411,"context_line":"                    processor.process_event(event)"},{"line_number":1412,"context_line":"            else:"},{"line_number":1413,"context_line":"                processor.process_event(data)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fdfeff1_8c282833","line":1411,"range":{"start_line":1409,"start_character":0,"end_line":1411,"end_character":50},"updated":"2019-02-27 12:43:41.000000000","message":"Same here, why not pass a list to process_event","commit_id":"d076754c03d0cf4a6b95f6151d2c5d8951a67ba2"},{"author":{"_account_id":19184,"name":"Idan Hefetz","email":"idan.hefetz@nokia.com","username":"idan-hefetz"},"change_message_id":"2c49d1195ca64c85024d4f154230cb8b776bf4a5","unresolved":false,"context_lines":[{"line_number":1406,"context_line":"    def _consume_queue(event_queue, processor):"},{"line_number":1407,"context_line":"        while not event_queue.empty():"},{"line_number":1408,"context_line":"            data \u003d event_queue.get()"},{"line_number":1409,"context_line":"            if isinstance(data, list):"},{"line_number":1410,"context_line":"                for event in data:"},{"line_number":1411,"context_line":"                    processor.process_event(event)"},{"line_number":1412,"context_line":"            else:"},{"line_number":1413,"context_line":"                processor.process_event(data)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fdfeff1_cf670225","line":1411,"range":{"start_line":1409,"start_character":0,"end_line":1411,"end_character":50},"in_reply_to":"9fdfeff1_8c282833","updated":"2019-02-27 15:44:12.000000000","message":"processor.process_event can only handle a single value","commit_id":"d076754c03d0cf4a6b95f6151d2c5d8951a67ba2"}]}
