)]}'
{"dragonflow/db/api_nb.py":[{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"e665d00a70350540ff77cd633e63c5776905d8a9","unresolved":false,"context_lines":[{"line_number":256,"context_line":"        elif table \u003d\u003d \u0027lport_migration\u0027 and action \u003d\u003d \u0027migrate\u0027:"},{"line_number":257,"context_line":"            lport \u003d db_models.LogicalPort(value)"},{"line_number":258,"context_line":"            self.controller.update_migration_flows(lport)"},{"line_number":259,"context_line":"        elif table is not None:"},{"line_number":260,"context_line":"            try:"},{"line_number":261,"context_line":"                model_class \u003d mf.get_model(table)"},{"line_number":262,"context_line":"            except KeyError:"},{"line_number":263,"context_line":"                # Model class not found, possibly update was not about a model"},{"line_number":264,"context_line":"                # Added lport migration for VM migration flag"},{"line_number":265,"context_line":"                LOG.warning(\u0027Unknown table %s\u0027, table)"},{"line_number":266,"context_line":"            else:"},{"line_number":267,"context_line":"                if action \u003d\u003d \u0027delete\u0027:"},{"line_number":268,"context_line":"                    self.controller.delete_by_id(model_class, key)"},{"line_number":269,"context_line":"                else:"},{"line_number":270,"context_line":"                    obj \u003d model_class.from_json(value)"},{"line_number":271,"context_line":"                    self.controller.update(obj)"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    # lport process for VM migration"},{"line_number":274,"context_line":"    def set_lport_migration(self, port_id, chassis):"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf091321_058ec377","side":"PARENT","line":271,"range":{"start_line":259,"start_character":7,"end_line":271,"end_character":47},"updated":"2017-06-08 12:09:59.000000000","message":"Is this block still needed?","commit_id":"905fa3e68620d24f6dfc1fd5b69fd6395d5279ab"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"70fdbeed9bfc1fbf024f2b677b72c9b89e39b7f0","unresolved":false,"context_lines":[{"line_number":256,"context_line":"        elif table \u003d\u003d \u0027lport_migration\u0027 and action \u003d\u003d \u0027migrate\u0027:"},{"line_number":257,"context_line":"            lport \u003d db_models.LogicalPort(value)"},{"line_number":258,"context_line":"            self.controller.update_migration_flows(lport)"},{"line_number":259,"context_line":"        elif table is not None:"},{"line_number":260,"context_line":"            try:"},{"line_number":261,"context_line":"                model_class \u003d mf.get_model(table)"},{"line_number":262,"context_line":"            except KeyError:"},{"line_number":263,"context_line":"                # Model class not found, possibly update was not about a model"},{"line_number":264,"context_line":"                # Added lport migration for VM migration flag"},{"line_number":265,"context_line":"                LOG.warning(\u0027Unknown table %s\u0027, table)"},{"line_number":266,"context_line":"            else:"},{"line_number":267,"context_line":"                if action \u003d\u003d \u0027delete\u0027:"},{"line_number":268,"context_line":"                    self.controller.delete_by_id(model_class, key)"},{"line_number":269,"context_line":"                else:"},{"line_number":270,"context_line":"                    obj \u003d model_class.from_json(value)"},{"line_number":271,"context_line":"                    self.controller.update(obj)"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    # lport process for VM migration"},{"line_number":274,"context_line":"    def set_lport_migration(self, port_id, chassis):"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf091321_fb692e8b","side":"PARENT","line":271,"range":{"start_line":259,"start_character":7,"end_line":271,"end_character":47},"in_reply_to":"bf091321_058ec377","updated":"2017-06-08 13:14:39.000000000","message":"Yes. This is the main dispatch code, dispatching events to the (Dragonflow local) controller.","commit_id":"905fa3e68620d24f6dfc1fd5b69fd6395d5279ab"}],"dragonflow/db/models/migration.py":[{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"c09550556fa035763ced609bcd2f1d996da6aa56","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"#    a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf091321_d6199f88","line":1,"updated":"2017-06-08 14:11:08.000000000","message":"add to all.py","commit_id":"f6bd596107b70e0508b9e02c2ab97f75bba4b688"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"d9d92d4a3d0fc18cf7fc853721b72495f78986dd","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"#    a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf091321_e35bc084","line":1,"in_reply_to":"bf091321_d6199f88","updated":"2017-06-08 16:45:28.000000000","message":"We should add a hacking rule or something that if a file contains @mf.register_model, it should be in all.py. Human memory is not reliable, and apparently mine doubly so.","commit_id":"f6bd596107b70e0508b9e02c2ab97f75bba4b688"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"d9d92d4a3d0fc18cf7fc853721b72495f78986dd","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"@mf.register_model"},{"line_number":28,"context_line":"class Migration(mf.ModelBase):"},{"line_number":29,"context_line":"@mf.construct_nb_db_model"},{"line_number":30,"context_line":"    table_name \u003d \u0027migration\u0027"},{"line_number":31,"context_line":"    chassis \u003d df_fields.ReferenceField(core.Chassis)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf091321_23c77815","line":28,"range":{"start_line":28,"start_character":0,"end_line":28,"end_character":30},"updated":"2017-06-08 16:45:28.000000000","message":"Looks like I botched a rebase here :(","commit_id":"f6bd596107b70e0508b9e02c2ab97f75bba4b688"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"c09550556fa035763ced609bcd2f1d996da6aa56","unresolved":false,"context_lines":[{"line_number":28,"context_line":"class Migration(mf.ModelBase):"},{"line_number":29,"context_line":"@mf.construct_nb_db_model"},{"line_number":30,"context_line":"    table_name \u003d \u0027migration\u0027"},{"line_number":31,"context_line":"    chassis \u003d df_fields.ReferenceField(core.Chassis)"},{"line_number":32,"context_line":"    lport \u003d df_fields.ReferenceField(l2.LogicalPort)"},{"line_number":33,"context_line":"    status \u003d df_fields.EnumField(MIGRATION_STATUSES, required\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf091321_544a2855","line":31,"range":{"start_line":31,"start_character":4,"end_line":31,"end_character":11},"updated":"2017-06-08 14:11:08.000000000","message":"This a bit confusing, maybe rename to source chassis?","commit_id":"f6bd596107b70e0508b9e02c2ab97f75bba4b688"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"d9d92d4a3d0fc18cf7fc853721b72495f78986dd","unresolved":false,"context_lines":[{"line_number":28,"context_line":"class Migration(mf.ModelBase):"},{"line_number":29,"context_line":"@mf.construct_nb_db_model"},{"line_number":30,"context_line":"    table_name \u003d \u0027migration\u0027"},{"line_number":31,"context_line":"    chassis \u003d df_fields.ReferenceField(core.Chassis)"},{"line_number":32,"context_line":"    lport \u003d df_fields.ReferenceField(l2.LogicalPort)"},{"line_number":33,"context_line":"    status \u003d df_fields.EnumField(MIGRATION_STATUSES, required\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf091321_8352c466","line":31,"range":{"start_line":31,"start_character":4,"end_line":31,"end_character":11},"in_reply_to":"bf091321_544a2855","updated":"2017-06-08 16:45:28.000000000","message":"Done","commit_id":"f6bd596107b70e0508b9e02c2ab97f75bba4b688"}]}
