)]}'
{"dragonflow/controller/df_local_controller.py":[{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"ec7ab109cd5c571359e03e61cce60acc25a8423d","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        self.enable_selective_topo_dist \u003d \\"},{"line_number":77,"context_line":"            cfg.CONF.df.enable_selective_topology_distribution"},{"line_number":78,"context_line":"        self.sync_rate_limiter \u003d df_utils.RateLimiter("},{"line_number":79,"context_line":"                max_rate\u003d1, time_unit\u003ddb_common.DB_SYNC_MINIMUM_INTERVAL)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def run(self):"},{"line_number":82,"context_line":"        self.vswitch_api.initialize(self.nb_api)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f231b9d_9d122b58","line":79,"range":{"start_line":79,"start_character":25,"end_line":79,"end_character":26},"updated":"2017-06-12 07:16:15.000000000","message":"Const?","commit_id":"1b0e25c7ad76cca909f2075d38c2cbc22585bb8e"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"3f46bde2fa09533d95e5740d59bce8a6a279d549","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        self.enable_selective_topo_dist \u003d \\"},{"line_number":77,"context_line":"            cfg.CONF.df.enable_selective_topology_distribution"},{"line_number":78,"context_line":"        self.sync_rate_limiter \u003d df_utils.RateLimiter("},{"line_number":79,"context_line":"                max_rate\u003d1, time_unit\u003ddb_common.DB_SYNC_MINIMUM_INTERVAL)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def run(self):"},{"line_number":82,"context_line":"        self.vswitch_api.initialize(self.nb_api)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f201791_362031ac","line":79,"range":{"start_line":79,"start_character":25,"end_line":79,"end_character":26},"in_reply_to":"7f231b9d_9d122b58","updated":"2017-06-27 14:55:22.000000000","message":"This is copied straight from NbApi.\nThis rate-limiter is to ensure we sync only *once* per DB_SYNC_MINIMUM_TIME, not sure a const is warranted here.","commit_id":"1b0e25c7ad76cca909f2075d38c2cbc22585bb8e"},{"author":{"_account_id":23235,"name":"Lihi Wishnitzer","email":"lihiwish@gmail.com","username":"lihiwish"},"change_message_id":"49206825fa19b5d73f247d253adca121616db5af","unresolved":false,"context_lines":[{"line_number":395,"context_line":""},{"line_number":396,"context_line":"    def _handle_db_change(self, update):"},{"line_number":397,"context_line":"        action \u003d update.action"},{"line_number":398,"context_line":"        if action \u003d\u003d \u0027sync\u0027:"},{"line_number":399,"context_line":"            self.run_sync(update.value)"},{"line_number":400,"context_line":"        elif action \u003d\u003d \u0027dbrestart\u0027:"},{"line_number":401,"context_line":"            self.nb_api.db_recover_callback()"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f231b9d_5dfdb338","line":398,"range":{"start_line":398,"start_character":22,"end_line":398,"end_character":26},"updated":"2017-06-12 07:47:16.000000000","message":"Maybe you could move all these to consts","commit_id":"1b0e25c7ad76cca909f2075d38c2cbc22585bb8e"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"3f46bde2fa09533d95e5740d59bce8a6a279d549","unresolved":false,"context_lines":[{"line_number":395,"context_line":""},{"line_number":396,"context_line":"    def _handle_db_change(self, update):"},{"line_number":397,"context_line":"        action \u003d update.action"},{"line_number":398,"context_line":"        if action \u003d\u003d \u0027sync\u0027:"},{"line_number":399,"context_line":"            self.run_sync(update.value)"},{"line_number":400,"context_line":"        elif action \u003d\u003d \u0027dbrestart\u0027:"},{"line_number":401,"context_line":"            self.nb_api.db_recover_callback()"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f201791_b91f9206","line":398,"range":{"start_line":398,"start_character":22,"end_line":398,"end_character":26},"in_reply_to":"7f231b9d_5dfdb338","updated":"2017-06-27 14:55:22.000000000","message":"Done","commit_id":"1b0e25c7ad76cca909f2075d38c2cbc22585bb8e"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"ec7ab109cd5c571359e03e61cce60acc25a8423d","unresolved":false,"context_lines":[{"line_number":407,"context_line":"            self.ovs_sync_finished()"},{"line_number":408,"context_line":"        elif action \u003d\u003d \u0027ovs_sync_started\u0027:"},{"line_number":409,"context_line":"            self.ovs_sync_started()"},{"line_number":410,"context_line":"        elif \u0027log\u0027 \u003d\u003d action:"},{"line_number":411,"context_line":"            LOG.info(\u0027Log event: %s\u0027, str(update))"},{"line_number":412,"context_line":"        elif update.table is not None:"},{"line_number":413,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f231b9d_1dff3b02","line":410,"range":{"start_line":410,"start_character":13,"end_line":410,"end_character":29},"updated":"2017-06-12 07:16:15.000000000","message":"why is this not aligned with other \u0027\u003d\u003d\u0027 cases (action \u003d\u003d xxx)?","commit_id":"1b0e25c7ad76cca909f2075d38c2cbc22585bb8e"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"3f46bde2fa09533d95e5740d59bce8a6a279d549","unresolved":false,"context_lines":[{"line_number":407,"context_line":"            self.ovs_sync_finished()"},{"line_number":408,"context_line":"        elif action \u003d\u003d \u0027ovs_sync_started\u0027:"},{"line_number":409,"context_line":"            self.ovs_sync_started()"},{"line_number":410,"context_line":"        elif \u0027log\u0027 \u003d\u003d action:"},{"line_number":411,"context_line":"            LOG.info(\u0027Log event: %s\u0027, str(update))"},{"line_number":412,"context_line":"        elif update.table is not None:"},{"line_number":413,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f201791_59507e0b","line":410,"range":{"start_line":410,"start_character":13,"end_line":410,"end_character":29},"in_reply_to":"7f231b9d_1dff3b02","updated":"2017-06-27 14:55:22.000000000","message":"Copied from NbApi","commit_id":"1b0e25c7ad76cca909f2075d38c2cbc22585bb8e"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"ec7ab109cd5c571359e03e61cce60acc25a8423d","unresolved":false,"context_lines":[{"line_number":414,"context_line":"                model_class \u003d model_framework.get_model(update.table)"},{"line_number":415,"context_line":"            except KeyError:"},{"line_number":416,"context_line":"                # Model class not found, possibly update was not about a model"},{"line_number":417,"context_line":"                # Added lport migration for VM migration flag"},{"line_number":418,"context_line":"                LOG.warning(\u0027Unknown table %s\u0027, update.table)"},{"line_number":419,"context_line":"            else:"},{"line_number":420,"context_line":"                if action \u003d\u003d \u0027delete\u0027:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f231b9d_3d19d778","line":417,"range":{"start_line":417,"start_character":10,"end_line":417,"end_character":61},"updated":"2017-06-12 07:16:15.000000000","message":"Relevant?","commit_id":"1b0e25c7ad76cca909f2075d38c2cbc22585bb8e"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"3f46bde2fa09533d95e5740d59bce8a6a279d549","unresolved":false,"context_lines":[{"line_number":414,"context_line":"                model_class \u003d model_framework.get_model(update.table)"},{"line_number":415,"context_line":"            except KeyError:"},{"line_number":416,"context_line":"                # Model class not found, possibly update was not about a model"},{"line_number":417,"context_line":"                # Added lport migration for VM migration flag"},{"line_number":418,"context_line":"                LOG.warning(\u0027Unknown table %s\u0027, update.table)"},{"line_number":419,"context_line":"            else:"},{"line_number":420,"context_line":"                if action \u003d\u003d \u0027delete\u0027:"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f201791_d9b12e49","line":417,"range":{"start_line":417,"start_character":10,"end_line":417,"end_character":61},"in_reply_to":"7f231b9d_3d19d778","updated":"2017-06-27 14:55:22.000000000","message":"Not anymore","commit_id":"1b0e25c7ad76cca909f2075d38c2cbc22585bb8e"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"ec7ab109cd5c571359e03e61cce60acc25a8423d","unresolved":false,"context_lines":[{"line_number":423,"context_line":"                    obj \u003d model_class.from_json(update.value)"},{"line_number":424,"context_line":"                    self.update(obj)"},{"line_number":425,"context_line":"        else:"},{"line_number":426,"context_line":"            LOG.warning(\u0027Unfamiliar update type: %s\u0027, str(update))"},{"line_number":427,"context_line":""},{"line_number":428,"context_line":""},{"line_number":429,"context_line":"def init_ryu_config():"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f231b9d_7d386fd2","line":426,"range":{"start_line":426,"start_character":24,"end_line":426,"end_character":66},"updated":"2017-06-12 07:16:15.000000000","message":"Not exactly accurate. You are not checking the type, but action and table presence","commit_id":"1b0e25c7ad76cca909f2075d38c2cbc22585bb8e"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"3f46bde2fa09533d95e5740d59bce8a6a279d549","unresolved":false,"context_lines":[{"line_number":423,"context_line":"                    obj \u003d model_class.from_json(update.value)"},{"line_number":424,"context_line":"                    self.update(obj)"},{"line_number":425,"context_line":"        else:"},{"line_number":426,"context_line":"            LOG.warning(\u0027Unfamiliar update type: %s\u0027, str(update))"},{"line_number":427,"context_line":""},{"line_number":428,"context_line":""},{"line_number":429,"context_line":"def init_ryu_config():"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f201791_59d51e43","line":426,"range":{"start_line":426,"start_character":24,"end_line":426,"end_character":66},"in_reply_to":"7f231b9d_7d386fd2","updated":"2017-06-27 14:55:22.000000000","message":"Will remove \u0027type\u0027","commit_id":"1b0e25c7ad76cca909f2075d38c2cbc22585bb8e"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"cee76384d5d66f24fe312e5c1e5238bd59611079","unresolved":false,"context_lines":[{"line_number":387,"context_line":"        try:"},{"line_number":388,"context_line":"            self._handle_db_change(update)"},{"line_number":389,"context_line":"        except Exception as e:"},{"line_number":390,"context_line":"            if \"ofport is 0\" not in e.message:"},{"line_number":391,"context_line":"                LOG.exception(e)"},{"line_number":392,"context_line":"            if not self.sync_rate_limiter():"},{"line_number":393,"context_line":"                self.sync()"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f1d235d_b8b81cc8","line":390,"updated":"2017-07-03 07:19:06.000000000","message":"maybe add comment that explained what the meaning of that message ,and why we don\u0027t log it ..","commit_id":"388106aae69145838425a2dca5f831da58dfcc71"}],"dragonflow/db/api_nb.py":[{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"13bc9322aec2d0664106c44df177ef0d900fc228","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        self.publisher.send_event(update)"},{"line_number":162,"context_line":"        time.sleep(0)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    def register_controller(self, controller):"},{"line_number":165,"context_line":"        self.controller \u003d controller"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    def register_listener_callback(self, cb, topic):"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f1d235d_9dd6c7f1","side":"PARENT","line":164,"range":{"start_line":164,"start_character":8,"end_line":164,"end_character":27},"updated":"2017-06-29 07:40:53.000000000","message":"Didn\u0027t you just rename this in the parent patch?","commit_id":"b4ca9219613febba456160297bca56ad8f07cac0"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"6def542c71a535bdf5a0cd340b652e4db25eaf05","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        self.publisher.send_event(update)"},{"line_number":162,"context_line":"        time.sleep(0)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    def register_controller(self, controller):"},{"line_number":165,"context_line":"        self.controller \u003d controller"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    def register_listener_callback(self, cb, topic):"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f1d235d_0397f892","side":"PARENT","line":164,"range":{"start_line":164,"start_character":8,"end_line":164,"end_character":27},"in_reply_to":"3f1d235d_9dd6c7f1","updated":"2017-06-29 07:50:29.000000000","message":"I did, each name makes sense for its context.","commit_id":"b4ca9219613febba456160297bca56ad8f07cac0"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"13bc9322aec2d0664106c44df177ef0d900fc228","unresolved":false,"context_lines":[{"line_number":175,"context_line":"        self.subscriber.register_topic(topic)"},{"line_number":176,"context_line":"        self.subscriber.daemonize()"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    def db_change_callback(self, table, key, action, value, topic\u003dNone):"},{"line_number":179,"context_line":"        update \u003d db_common.DbUpdate(table, key, action, value, topic\u003dtopic)"},{"line_number":180,"context_line":"        LOG.debug(\"Pushing Update to Queue: %s\", update)"},{"line_number":181,"context_line":"        self._queue.put(update)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f1d235d_1d04f77a","line":178,"range":{"start_line":178,"start_character":0,"end_line":178,"end_character":72},"updated":"2017-06-29 07:40:53.000000000","message":"Is there a plan to move this to the controller as well?","commit_id":"e55ea6f460680793f449506f38270c79e80dbd24"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"6def542c71a535bdf5a0cd340b652e4db25eaf05","unresolved":false,"context_lines":[{"line_number":175,"context_line":"        self.subscriber.register_topic(topic)"},{"line_number":176,"context_line":"        self.subscriber.daemonize()"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    def db_change_callback(self, table, key, action, value, topic\u003dNone):"},{"line_number":179,"context_line":"        update \u003d db_common.DbUpdate(table, key, action, value, topic\u003dtopic)"},{"line_number":180,"context_line":"        LOG.debug(\"Pushing Update to Queue: %s\", update)"},{"line_number":181,"context_line":"        self._queue.put(update)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f1d235d_c3e5803a","line":178,"range":{"start_line":178,"start_character":0,"end_line":178,"end_character":72},"in_reply_to":"3f1d235d_1d04f77a","updated":"2017-06-29 07:50:29.000000000","message":"No, this manages NbApi\u0027s internal queue.\n\nWe can create a common dispatcher object and move it there (maybe even rename it to something more clear like \u0027submit\u0027)","commit_id":"e55ea6f460680793f449506f38270c79e80dbd24"}]}
