)]}'
{"devstack/plugin.sh":[{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"63f7f07a81a14c1fab0629eeb5bde030d70f2016","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        iniset $NEUTRON_CONF DEFAULT metadata_proxy_shared_secret $METADATA_PROXY_SHARED_SECRET"},{"line_number":139,"context_line":"        iniset $NEUTRON_CONF df_metadata ip \"$DF_METADATA_SERVICE_IP\""},{"line_number":140,"context_line":"        iniset $NEUTRON_CONF df_metadata port \"$DF_METADATA_SERVICE_PORT\""},{"line_number":141,"context_line":"        iniset $NEUTRON_CONF df df_metadata_interface \"$DF_METADATA_SERVICE_INTERFACE\""},{"line_number":142,"context_line":"    fi"},{"line_number":143,"context_line":"}"},{"line_number":144,"context_line":""}],"source_content_type":"text/x-sh","patch_set":2,"id":"fa7ab95a_a98ca8da","line":141,"updated":"2016-08-30 14:22:06.000000000","message":"Why move the interface from the df_metadata scope?\n\nI don\u0027t think the configuration name should be prefixed with df. I think df.metadata_interface is better. But I still think df_metadata.interface is event better.","commit_id":"f7690e02d1261ba9b53a5abda982c7ef958478e7"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"eb2fb793c6ad9b6928b522f018025e963b66e383","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        iniset $NEUTRON_CONF DEFAULT metadata_proxy_shared_secret $METADATA_PROXY_SHARED_SECRET"},{"line_number":139,"context_line":"        iniset $NEUTRON_CONF df_metadata ip \"$DF_METADATA_SERVICE_IP\""},{"line_number":140,"context_line":"        iniset $NEUTRON_CONF df_metadata port \"$DF_METADATA_SERVICE_PORT\""},{"line_number":141,"context_line":"        iniset $NEUTRON_CONF df df_metadata_interface \"$DF_METADATA_SERVICE_INTERFACE\""},{"line_number":142,"context_line":"    fi"},{"line_number":143,"context_line":"}"},{"line_number":144,"context_line":""}],"source_content_type":"text/x-sh","patch_set":2,"id":"fa7ab95a_120c6393","line":141,"in_reply_to":"fa7ab95a_a98ca8da","updated":"2016-09-01 07:02:47.000000000","message":"Moving it to the df scope is to make it available when use it. I need to use the interface name to recognize the metadata device in the ovs code, where the metadata app has not been loaded yet.\nI will change it to df.metadata_interface","commit_id":"f7690e02d1261ba9b53a5abda982c7ef958478e7"}],"dragonflow/controller/df_local_controller.py":[{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"63f7f07a81a14c1fab0629eeb5bde030d70f2016","unresolved":false,"context_lines":[{"line_number":545,"context_line":"    def ovs_sync_started(self):"},{"line_number":546,"context_line":"        self.open_flow_app.notify_ovs_sync_started()"},{"line_number":547,"context_line":""},{"line_number":548,"context_line":"    def metadata_interface_updated(self):"},{"line_number":549,"context_line":"        self.open_flow_app.notify_metadata_interface_updated()"},{"line_number":550,"context_line":""},{"line_number":551,"context_line":"    def metadata_interface_deleted(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa7ab95a_24851d59","line":548,"updated":"2016-08-30 14:22:06.000000000","message":"Can\u0027t this be inferred via ovs_port_* and verifying the port name equals the metadata interface? Or even recognise its type in the OVS DB code.","commit_id":"f7690e02d1261ba9b53a5abda982c7ef958478e7"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"eb2fb793c6ad9b6928b522f018025e963b66e383","unresolved":false,"context_lines":[{"line_number":545,"context_line":"    def ovs_sync_started(self):"},{"line_number":546,"context_line":"        self.open_flow_app.notify_ovs_sync_started()"},{"line_number":547,"context_line":""},{"line_number":548,"context_line":"    def metadata_interface_updated(self):"},{"line_number":549,"context_line":"        self.open_flow_app.notify_metadata_interface_updated()"},{"line_number":550,"context_line":""},{"line_number":551,"context_line":"    def metadata_interface_deleted(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa7ab95a_1258e3f9","line":548,"in_reply_to":"fa7ab95a_24851d59","updated":"2016-09-01 07:02:47.000000000","message":"It could be. Actually, I had this thought in mind, but chose another way to implement. Will remove this 2 methods.","commit_id":"f7690e02d1261ba9b53a5abda982c7ef958478e7"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"5a71527134d7ee8bea1d3c2e80016a3cdb7abca8","unresolved":false,"context_lines":[{"line_number":544,"context_line":"    def ovs_port_updated(self, ovs_port):"},{"line_number":545,"context_line":"        if ovs_port.get_name() \u003d\u003d cfg.CONF.df.metadata_interface:"},{"line_number":546,"context_line":"            # Notify about the metadata interface upate."},{"line_number":547,"context_line":"            self.open_flow_app.notify_metadata_interface_updated()"},{"line_number":548,"context_line":"        else:"},{"line_number":549,"context_line":"            self.topology.ovs_port_updated(ovs_port)"},{"line_number":550,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a89bdaa_05cc6434","line":547,"updated":"2016-09-04 04:51:34.000000000","message":"I still feel this logic should be in the metadata app and not here. Why did you decide to put it here? Do you think we will have other applications that will want this event?","commit_id":"3c577610521a8663c66bb3875e1cef3195fa3b6f"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"c3474ca4d21b9019113f1be81114ac72e51099e8","unresolved":false,"context_lines":[{"line_number":544,"context_line":"    def ovs_port_updated(self, ovs_port):"},{"line_number":545,"context_line":"        if ovs_port.get_name() \u003d\u003d cfg.CONF.df.metadata_interface:"},{"line_number":546,"context_line":"            # Notify about the metadata interface upate."},{"line_number":547,"context_line":"            self.open_flow_app.notify_metadata_interface_updated()"},{"line_number":548,"context_line":"        else:"},{"line_number":549,"context_line":"            self.topology.ovs_port_updated(ovs_port)"},{"line_number":550,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a89bdaa_ba1d8e11","line":547,"in_reply_to":"9a89bdaa_05cc6434","updated":"2016-09-04 13:52:17.000000000","message":"I can\u0027t think of other apps will want this event. Do you suggest to call the metadata app method directly here? Or, call the metadata app method at the ovsdb_vswitch_impl?","commit_id":"3c577610521a8663c66bb3875e1cef3195fa3b6f"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"7a89de3102a38780906b2ea6fe059bc3897f1566","unresolved":false,"context_lines":[{"line_number":544,"context_line":"    def ovs_port_updated(self, ovs_port):"},{"line_number":545,"context_line":"        if ovs_port.get_name() \u003d\u003d cfg.CONF.df.metadata_interface:"},{"line_number":546,"context_line":"            # Notify about the metadata interface upate."},{"line_number":547,"context_line":"            self.open_flow_app.notify_metadata_interface_updated()"},{"line_number":548,"context_line":"        else:"},{"line_number":549,"context_line":"            self.topology.ovs_port_updated(ovs_port)"},{"line_number":550,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a89bdaa_737703a0","line":547,"in_reply_to":"9a89bdaa_3a8dfe31","updated":"2016-09-08 01:37:53.000000000","message":"Done","commit_id":"3c577610521a8663c66bb3875e1cef3195fa3b6f"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"d3510c815e59ec70c25c9b84e1d9d2975f1894be","unresolved":false,"context_lines":[{"line_number":544,"context_line":"    def ovs_port_updated(self, ovs_port):"},{"line_number":545,"context_line":"        if ovs_port.get_name() \u003d\u003d cfg.CONF.df.metadata_interface:"},{"line_number":546,"context_line":"            # Notify about the metadata interface upate."},{"line_number":547,"context_line":"            self.open_flow_app.notify_metadata_interface_updated()"},{"line_number":548,"context_line":"        else:"},{"line_number":549,"context_line":"            self.topology.ovs_port_updated(ovs_port)"},{"line_number":550,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a89bdaa_6af01d68","line":547,"in_reply_to":"9a89bdaa_3a8dfe31","updated":"2016-09-07 08:21:08.000000000","message":"In my opinion, we should keep the framework as general as possible, let it unaware of specific services. It maybe a little bit inefficient, but easier to maintain.","commit_id":"3c577610521a8663c66bb3875e1cef3195fa3b6f"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"7a89de3102a38780906b2ea6fe059bc3897f1566","unresolved":false,"context_lines":[{"line_number":544,"context_line":"    def ovs_port_updated(self, ovs_port):"},{"line_number":545,"context_line":"        if ovs_port.get_name() \u003d\u003d cfg.CONF.df.metadata_interface:"},{"line_number":546,"context_line":"            # Notify about the metadata interface upate."},{"line_number":547,"context_line":"            self.open_flow_app.notify_metadata_interface_updated()"},{"line_number":548,"context_line":"        else:"},{"line_number":549,"context_line":"            self.topology.ovs_port_updated(ovs_port)"},{"line_number":550,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a89bdaa_539aff6e","line":547,"in_reply_to":"9a89bdaa_6af01d68","updated":"2016-09-08 01:37:53.000000000","message":"I think Omer\u0027s  suggestion will keep the framework unware of the apps, we just need to identify the metadata interface in ovs code, and let the metadata app to select and use the metadata interface.","commit_id":"3c577610521a8663c66bb3875e1cef3195fa3b6f"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"af483279cbd3cbb2435d8ecf00354ce7db406901","unresolved":false,"context_lines":[{"line_number":544,"context_line":"    def ovs_port_updated(self, ovs_port):"},{"line_number":545,"context_line":"        if ovs_port.get_name() \u003d\u003d cfg.CONF.df.metadata_interface:"},{"line_number":546,"context_line":"            # Notify about the metadata interface upate."},{"line_number":547,"context_line":"            self.open_flow_app.notify_metadata_interface_updated()"},{"line_number":548,"context_line":"        else:"},{"line_number":549,"context_line":"            self.topology.ovs_port_updated(ovs_port)"},{"line_number":550,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a89bdaa_3a8dfe31","line":547,"in_reply_to":"9a89bdaa_ba1d8e11","updated":"2016-09-04 14:03:34.000000000","message":"I thought calling ovs_port_created/deleted, and in the metadata app recognize by ovs_port name.","commit_id":"3c577610521a8663c66bb3875e1cef3195fa3b6f"}],"dragonflow/db/api_nb.py":[{"author":{"_account_id":21691,"name":"weizj","email":"wzj334965317@outlook.com","username":"ZhijunWei"},"change_message_id":"e7b97ea8ecbf5616d01430c5e9c32390cfbb1501","unresolved":false,"context_lines":[{"line_number":263,"context_line":"            elif action \u003d\u003d \u0027delete\u0027:"},{"line_number":264,"context_line":"                ovs_port_id \u003d key"},{"line_number":265,"context_line":"                self.controller.ovs_port_deleted(ovs_port_id)"},{"line_number":266,"context_line":"        elif table \u003d\u003d constants.METADATA_INTERFACE:"},{"line_number":267,"context_line":"            if action \u003d\u003d \u0027set\u0027 or action \u003d\u003d \u0027create\u0027:"},{"line_number":268,"context_line":"                self.controller.metadata_interface_updated()"},{"line_number":269,"context_line":"            elif action \u003d\u003d \u0027delete\u0027:"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_bd9e2db6","line":266,"range":{"start_line":266,"start_character":13,"end_line":266,"end_character":50},"updated":"2016-08-27 04:50:46.000000000","message":"constants.METADATA_INTERFACE \u003d\u003d table","commit_id":"af0fa61cee5867a9459f22ac318d44b1dd43c757"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"5be0379cb9de6ea6b517d5034486f0df253d4d5c","unresolved":false,"context_lines":[{"line_number":263,"context_line":"            elif action \u003d\u003d \u0027delete\u0027:"},{"line_number":264,"context_line":"                ovs_port_id \u003d key"},{"line_number":265,"context_line":"                self.controller.ovs_port_deleted(ovs_port_id)"},{"line_number":266,"context_line":"        elif table \u003d\u003d constants.METADATA_INTERFACE:"},{"line_number":267,"context_line":"            if action \u003d\u003d \u0027set\u0027 or action \u003d\u003d \u0027create\u0027:"},{"line_number":268,"context_line":"                self.controller.metadata_interface_updated()"},{"line_number":269,"context_line":"            elif action \u003d\u003d \u0027delete\u0027:"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_0f58bc31","line":266,"range":{"start_line":266,"start_character":13,"end_line":266,"end_character":50},"in_reply_to":"fa7ab95a_bd9e2db6","updated":"2016-08-27 05:38:12.000000000","message":"Is this your -1 for? Can you tell me what is the benifit to use your style?","commit_id":"af0fa61cee5867a9459f22ac318d44b1dd43c757"}]}
