)]}'
{"dragonflow/controller/df_base_app.py":[{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"11ee1853c73c02f05f858c8c3377e1af25000848","unresolved":false,"context_lines":[{"line_number":23,"context_line":"class DFlowApp(DBNotifyInterface):"},{"line_number":24,"context_line":"    def __init__(self, api, **kwargs):"},{"line_number":25,"context_line":"        self.api \u003d api"},{"line_number":26,"context_line":"        self.db_store \u003d kwargs[\u0027db_store\u0027]"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def get_datapath(self):"},{"line_number":29,"context_line":"        return self.api.datapath"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_1a30ba9d","line":26,"updated":"2016-03-09 08:52:07.000000000","message":"Same here. (See Li Ma\u0027s comment in ryu_base_app.)","commit_id":"234e16866ade2da317485d560cccd12e7bc86e09"},{"author":{"_account_id":11364,"name":"Fei Rao","email":"milo.frao@gmail.com","username":"milo.frao"},"change_message_id":"9c602a7b7a5edaa3635285d72dc6bfb8a16a37b9","unresolved":false,"context_lines":[{"line_number":23,"context_line":"class DFlowApp(DBNotifyInterface):"},{"line_number":24,"context_line":"    def __init__(self, api, **kwargs):"},{"line_number":25,"context_line":"        self.api \u003d api"},{"line_number":26,"context_line":"        self.db_store \u003d kwargs[\u0027db_store\u0027]"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def get_datapath(self):"},{"line_number":29,"context_line":"        return self.api.datapath"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_79158247","line":26,"in_reply_to":"5aef4532_1a30ba9d","updated":"2016-03-09 11:47:47.000000000","message":"will do","commit_id":"234e16866ade2da317485d560cccd12e7bc86e09"}],"dragonflow/controller/df_local_controller.py":[{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"11ee1853c73c02f05f858c8c3377e1af25000848","unresolved":false,"context_lines":[{"line_number":60,"context_line":"            db_store\u003dself.db_store"},{"line_number":61,"context_line":"        )"},{"line_number":62,"context_line":"        app_mgr \u003d AppManager.get_instance()"},{"line_number":63,"context_line":"        self.open_flow_app \u003d app_mgr.instantiate(RyuDFAdapter, **kwargs)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def run(self):"},{"line_number":66,"context_line":"        nb_driver_class \u003d importutils.import_class(cfg.CONF.df.nb_db_class)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_1a09dadd","line":63,"updated":"2016-03-09 08:52:07.000000000","message":"See Li Ma\u0027s comment in ryu_base_app.","commit_id":"234e16866ade2da317485d560cccd12e7bc86e09"},{"author":{"_account_id":11364,"name":"Fei Rao","email":"milo.frao@gmail.com","username":"milo.frao"},"change_message_id":"9c602a7b7a5edaa3635285d72dc6bfb8a16a37b9","unresolved":false,"context_lines":[{"line_number":60,"context_line":"            db_store\u003dself.db_store"},{"line_number":61,"context_line":"        )"},{"line_number":62,"context_line":"        app_mgr \u003d AppManager.get_instance()"},{"line_number":63,"context_line":"        self.open_flow_app \u003d app_mgr.instantiate(RyuDFAdapter, **kwargs)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def run(self):"},{"line_number":66,"context_line":"        nb_driver_class \u003d importutils.import_class(cfg.CONF.df.nb_db_class)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_19571e27","line":63,"in_reply_to":"5aef4532_1a09dadd","updated":"2016-03-09 11:47:47.000000000","message":"Here no need to change. even if RyuDFAdapter init use the explicit parameters, right?","commit_id":"234e16866ade2da317485d560cccd12e7bc86e09"}],"dragonflow/controller/ryu_base_app.py":[{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"96bcad2728a42ef7a3d8c47311894293a115c41d","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    OFP_VERSIONS \u003d [ofproto_v1_3.OFP_VERSION]"},{"line_number":37,"context_line":"    OF_AUTO_PORT_DESC_STATS_REQ_VER \u003d 0x04"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def __init__(self, **kwargs):"},{"line_number":40,"context_line":"        super(RyuDFAdapter, self).__init__(**kwargs)"},{"line_number":41,"context_line":"        self.dispatcher \u003d AppDispatcher(\u0027dragonflow.controller\u0027,"},{"line_number":42,"context_line":"                cfg.CONF.df.apps_list)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_e6729d48","line":39,"range":{"start_line":39,"start_character":23,"end_line":39,"end_character":31},"updated":"2016-03-09 07:23:43.000000000","message":"Can we provide the required arguments explicitly instead of using kwargs? I know the current kwargs is more flexible, but it is not obvious for other developers to identify which argument is available.","commit_id":"234e16866ade2da317485d560cccd12e7bc86e09"},{"author":{"_account_id":11364,"name":"Fei Rao","email":"milo.frao@gmail.com","username":"milo.frao"},"change_message_id":"9c602a7b7a5edaa3635285d72dc6bfb8a16a37b9","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    OFP_VERSIONS \u003d [ofproto_v1_3.OFP_VERSION]"},{"line_number":37,"context_line":"    OF_AUTO_PORT_DESC_STATS_REQ_VER \u003d 0x04"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def __init__(self, **kwargs):"},{"line_number":40,"context_line":"        super(RyuDFAdapter, self).__init__(**kwargs)"},{"line_number":41,"context_line":"        self.dispatcher \u003d AppDispatcher(\u0027dragonflow.controller\u0027,"},{"line_number":42,"context_line":"                cfg.CONF.df.apps_list)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_b96c2a36","line":39,"range":{"start_line":39,"start_character":23,"end_line":39,"end_character":31},"in_reply_to":"5aef4532_da8c9281","updated":"2016-03-09 11:47:47.000000000","message":"will do","commit_id":"234e16866ade2da317485d560cccd12e7bc86e09"},{"author":{"_account_id":11364,"name":"Fei Rao","email":"milo.frao@gmail.com","username":"milo.frao"},"change_message_id":"9c602a7b7a5edaa3635285d72dc6bfb8a16a37b9","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    OFP_VERSIONS \u003d [ofproto_v1_3.OFP_VERSION]"},{"line_number":37,"context_line":"    OF_AUTO_PORT_DESC_STATS_REQ_VER \u003d 0x04"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def __init__(self, **kwargs):"},{"line_number":40,"context_line":"        super(RyuDFAdapter, self).__init__(**kwargs)"},{"line_number":41,"context_line":"        self.dispatcher \u003d AppDispatcher(\u0027dragonflow.controller\u0027,"},{"line_number":42,"context_line":"                cfg.CONF.df.apps_list)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_f91b52c8","line":39,"range":{"start_line":39,"start_character":23,"end_line":39,"end_character":31},"in_reply_to":"5aef4532_e6729d48","updated":"2016-03-09 11:47:47.000000000","message":"In fact, DNAT App need more df-controller management objects such as vswitch_api to manage the ovs bridge, I think many other APP will need to access vswitch_api also later. In Addition some Apps maybe need more info(object) with new feature goes forward. So I think it\u0027s better to make it variable. Anyway, I will change it into explicit parameters if all of you think it\u0027s better.","commit_id":"234e16866ade2da317485d560cccd12e7bc86e09"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"11ee1853c73c02f05f858c8c3377e1af25000848","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    OFP_VERSIONS \u003d [ofproto_v1_3.OFP_VERSION]"},{"line_number":37,"context_line":"    OF_AUTO_PORT_DESC_STATS_REQ_VER \u003d 0x04"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def __init__(self, **kwargs):"},{"line_number":40,"context_line":"        super(RyuDFAdapter, self).__init__(**kwargs)"},{"line_number":41,"context_line":"        self.dispatcher \u003d AppDispatcher(\u0027dragonflow.controller\u0027,"},{"line_number":42,"context_line":"                cfg.CONF.df.apps_list)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_da8c9281","line":39,"range":{"start_line":39,"start_character":23,"end_line":39,"end_character":31},"in_reply_to":"5aef4532_e6729d48","updated":"2016-03-09 08:52:07.000000000","message":"Li Ma: +1.\n\nThis behaviour also appears in other places in this patch. If the db_store/nb_api parameter is needed in addition, it should be added explicitly.","commit_id":"234e16866ade2da317485d560cccd12e7bc86e09"}]}
