)]}'
{"doc/source/specs/support_check_chassis_alive.rst":[{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"ff98e1893edf79518f312c6afc397857157b824e","unresolved":false,"context_lines":[{"line_number":51,"context_line":"chassis will be considered as down if it doesn\u0027t report itself for such a"},{"line_number":52,"context_line":"long time."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"The configuration option *report_interval* from OpenStack Neutron will be used."},{"line_number":55,"context_line":"Chassis will use this value as the interval to report its timestamp to"},{"line_number":56,"context_line":"Dragonflow Northbound Database. The default value of *report_interval* is 30"},{"line_number":57,"context_line":"seconds, which should not cause big impact to the performance of Dragonflow"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa6399be_034c5b75","line":54,"range":{"start_line":54,"start_character":26,"end_line":54,"end_character":41},"updated":"2016-10-18 03:05:32.000000000","message":"I suggest to use the same option in [df] section, not neutron.","commit_id":"e802f329a758ac56781aafaaf3916ec477f4ba9c"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"9520a6b166982d223e87bf54473a4ee9f92ac78f","unresolved":false,"context_lines":[{"line_number":51,"context_line":"chassis will be considered as down if it doesn\u0027t report itself for such a"},{"line_number":52,"context_line":"long time."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"The configuration option *report_interval* from OpenStack Neutron will be used."},{"line_number":55,"context_line":"Chassis will use this value as the interval to report its timestamp to"},{"line_number":56,"context_line":"Dragonflow Northbound Database. The default value of *report_interval* is 30"},{"line_number":57,"context_line":"seconds, which should not cause big impact to the performance of Dragonflow"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa6399be_a3cacf6c","line":54,"range":{"start_line":54,"start_character":26,"end_line":54,"end_character":41},"in_reply_to":"fa6399be_034c5b75","updated":"2016-10-18 03:20:57.000000000","message":"I think you are right, when I check the report_interval from neutron, it is headed with \"*agent.\" which might cause confusion at df. It would actually be better to specified it in [df] section.","commit_id":"e802f329a758ac56781aafaaf3916ec477f4ba9c"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"ff98e1893edf79518f312c6afc397857157b824e","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"Dragonflow DB CLI should provide 2 commands."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"#. A command to list stale chassis."},{"line_number":84,"context_line":"#. A command to delete stale chassis."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"So that administrator can clean the stale chassis."}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa6399be_436d73cb","line":83,"range":{"start_line":83,"start_character":21,"end_line":83,"end_character":34},"updated":"2016-10-18 03:05:32.000000000","message":"to list all the chassis with online/offline states?","commit_id":"e802f329a758ac56781aafaaf3916ec477f4ba9c"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"9520a6b166982d223e87bf54473a4ee9f92ac78f","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"Dragonflow DB CLI should provide 2 commands."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"#. A command to list stale chassis."},{"line_number":84,"context_line":"#. A command to delete stale chassis."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"So that administrator can clean the stale chassis."}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa6399be_e3eda7f0","line":83,"range":{"start_line":83,"start_character":21,"end_line":83,"end_character":34},"in_reply_to":"fa6399be_436d73cb","updated":"2016-10-18 03:20:57.000000000","message":"Done. Actually, it will be much easier to do so with the refactor at [1]. When I worked on [1], I thought it might be more reasonable to add option(some kind of filter) to the list-chassis command.\n\n[1] https://review.openstack.org/#/c/367922/","commit_id":"e802f329a758ac56781aafaaf3916ec477f4ba9c"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"1a835ff5a029fb36c625fee5c7f4e93048a86ee7","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"* Once a chassis is registered in Dragonflow Northbound Database, there is no"},{"line_number":24,"context_line":"  way to unregister it, even if it goes down. This fact will increase the"},{"line_number":25,"context_line":"  unnecessary burden to the Dragonflow Northbound Database."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"* The network segments support needs the information of if chassis is alive."},{"line_number":28,"context_line":"  This involves to the ml2 port binding and routed networks."}],"source_content_type":"text/x-rst","patch_set":2,"id":"da6895a0_96124b61","line":25,"range":{"start_line":25,"start_character":28,"end_line":25,"end_character":59},"updated":"2016-10-23 14:43:43.000000000","message":"Also for the ovs unnecessary flow entries","commit_id":"7c2031336560c6ccd5a52d2dea3ab7fb87a3527b"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"b6729ec53baf7c9b0e90c092bd094d87f981a2fb","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"* Once a chassis is registered in Dragonflow Northbound Database, there is no"},{"line_number":24,"context_line":"  way to unregister it, even if it goes down. This fact will increase the"},{"line_number":25,"context_line":"  unnecessary burden to the Dragonflow Northbound Database."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"* The network segments support needs the information of if chassis is alive."},{"line_number":28,"context_line":"  This involves to the ml2 port binding and routed networks."}],"source_content_type":"text/x-rst","patch_set":2,"id":"da6895a0_31b7c93a","line":25,"range":{"start_line":25,"start_character":28,"end_line":25,"end_character":59},"in_reply_to":"da6895a0_96124b61","updated":"2016-10-23 15:07:04.000000000","message":"I can add this to the spec, but as the comment below. I think it will be more clear to provide one thing in this spec. That is to tell if chassis is alive.","commit_id":"7c2031336560c6ccd5a52d2dea3ab7fb87a3527b"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"1a835ff5a029fb36c625fee5c7f4e93048a86ee7","unresolved":false,"context_lines":[{"line_number":61,"context_line":"NB Data Model Impact"},{"line_number":62,"context_line":"--------------------"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Add a new field called *timestamp* to Chassis in Dragonflow Northbound"},{"line_number":65,"context_line":"Database. This field will not be exposed. The Chassis class in Dragonflow"},{"line_number":66,"context_line":"Northbound will provide a new method called is_active. The new method will"},{"line_number":67,"context_line":"compare *timestamp* of chassis and current time. If timestamp is older than"},{"line_number":68,"context_line":"current time, and the gap is greater than *chassis_down_time*, the method"},{"line_number":69,"context_line":"will return false."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Publisher Subscriber Impact"},{"line_number":72,"context_line":"---------------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da6895a0_b10e7932","line":69,"range":{"start_line":64,"start_character":0,"end_line":69,"end_character":18},"updated":"2016-10-23 14:43:43.000000000","message":"who will invode is_active method and who will do the job to monitor each chassis timestamp, table_monitor processor?","commit_id":"7c2031336560c6ccd5a52d2dea3ab7fb87a3527b"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"b6729ec53baf7c9b0e90c092bd094d87f981a2fb","unresolved":false,"context_lines":[{"line_number":61,"context_line":"NB Data Model Impact"},{"line_number":62,"context_line":"--------------------"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Add a new field called *timestamp* to Chassis in Dragonflow Northbound"},{"line_number":65,"context_line":"Database. This field will not be exposed. The Chassis class in Dragonflow"},{"line_number":66,"context_line":"Northbound will provide a new method called is_active. The new method will"},{"line_number":67,"context_line":"compare *timestamp* of chassis and current time. If timestamp is older than"},{"line_number":68,"context_line":"current time, and the gap is greater than *chassis_down_time*, the method"},{"line_number":69,"context_line":"will return false."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Publisher Subscriber Impact"},{"line_number":72,"context_line":"---------------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da6895a0_9157b501","line":69,"range":{"start_line":64,"start_character":0,"end_line":69,"end_character":18},"in_reply_to":"da6895a0_b10e7932","updated":"2016-10-23 15:07:04.000000000","message":"who will invode is_active method?\nAny other functionality that cares about this value, for example SNAT, but I don\u0027t want to discuss it in this spec. That is beyond the scope of this spec. This spec just provides this ability to tell if chassis is alive.\n\nwho will do the job to monitor each chassis timestamp?\nI think the answer is the same as above.","commit_id":"7c2031336560c6ccd5a52d2dea3ab7fb87a3527b"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"1a835ff5a029fb36c625fee5c7f4e93048a86ee7","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"None"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Installed flows Impact"},{"line_number":99,"context_line":"----------------------"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da6895a0_d113ed5a","line":98,"range":{"start_line":98,"start_character":0,"end_line":98,"end_character":22},"updated":"2016-10-23 14:43:43.000000000","message":"if a chassis is dead, the corresponding flow entries on other chassis should be deleted, right?","commit_id":"7c2031336560c6ccd5a52d2dea3ab7fb87a3527b"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"c62dea3ec547bff9be39debb3b039de6f6a568d0","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"None"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Installed flows Impact"},{"line_number":99,"context_line":"----------------------"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da6895a0_4a0d5f36","line":98,"range":{"start_line":98,"start_character":0,"end_line":98,"end_character":22},"in_reply_to":"da6895a0_87ca126d","updated":"2016-10-24 02:32:25.000000000","message":"I think the safest way is to let admin do the job, we can combine this with the new Dragonflow DB CLI command mentioned above.\n\nHowever, I would see this as an existing bug in df. the chassis_deleted method in df-local-controller will only clear tunnel ports, however, it should also clear the flow about deleted chassis in current df-controller.\n\nAnyway, I would see this as an enhancement that following this spec.  I agree it is something that we should care about.","commit_id":"7c2031336560c6ccd5a52d2dea3ab7fb87a3527b"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"b6729ec53baf7c9b0e90c092bd094d87f981a2fb","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"None"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Installed flows Impact"},{"line_number":99,"context_line":"----------------------"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da6895a0_d1af6de1","line":98,"range":{"start_line":98,"start_character":0,"end_line":98,"end_character":22},"in_reply_to":"da6895a0_d113ed5a","updated":"2016-10-23 15:07:04.000000000","message":"It is a good point. It should be deleted if the chassis is dead.  However, it is hard to tell if the chassis is dead or just break for a while. That is to say, (maybe)due to the unstable network, the chassis might be switch between alive/dead. We can\u0027t delete the flows or the chassis automatically, because the chassis might be back online in next second. This is like the agent in neutron, it is dead, but its data will be kept in neutron, unless admin delete it.\n\nWe can let the admin to clear the stale chassis(db record and flows).  But I don\u0027t want to make this implementation to include to much things. We can do it in further enhancement.  The main purpose is to provide the is_active ability to chassis.","commit_id":"7c2031336560c6ccd5a52d2dea3ab7fb87a3527b"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"0d2282615eeb29794a18234d97d33ce1f00caeca","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"None"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Installed flows Impact"},{"line_number":99,"context_line":"----------------------"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da6895a0_87ca126d","line":98,"range":{"start_line":98,"start_character":0,"end_line":98,"end_character":22},"in_reply_to":"da6895a0_d1af6de1","updated":"2016-10-24 01:49:19.000000000","message":"Agreed. It will make the datapath unstable if we clear the corresponding flows immediately after the chassis is dead.\nWe can set a time threshold to clear the flows, for example, 3 times of the dead timeout.","commit_id":"7c2031336560c6ccd5a52d2dea3ab7fb87a3527b"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"40d069b264fb4f3fd1327df01812d35920427c24","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Support check if chassis is alive"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/dragonflow/+spec/is-chassis-alive-support"}],"source_content_type":"text/x-rst","patch_set":3,"id":"da6895a0_4031a404","line":8,"range":{"start_line":8,"start_character":8,"end_line":8,"end_character":13},"updated":"2016-10-25 09:28:51.000000000","message":"checking?","commit_id":"3633b3209c8b4e269a11601667c0fea97adc5796"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"6619a4ad41f881221a7a7dfef06ad87757795b06","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Support check if chassis is alive"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/dragonflow/+spec/is-chassis-alive-support"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba5da102_e7e81a7f","line":8,"range":{"start_line":8,"start_character":8,"end_line":8,"end_character":13},"in_reply_to":"da6895a0_4031a404","updated":"2016-10-31 02:59:10.000000000","message":"Done","commit_id":"3633b3209c8b4e269a11601667c0fea97adc5796"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"40d069b264fb4f3fd1327df01812d35920427c24","unresolved":false,"context_lines":[{"line_number":26,"context_line":"  each Dragonflow controller."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"* The network segments support needs the information of if chassis is alive."},{"line_number":29,"context_line":"  This involves to the ml2 port binding and routed networks."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"* To support router gateway in native Dragonflow, the information of if chassis"},{"line_number":32,"context_line":"  is alive is required. Because, either centralized router gateway or"}],"source_content_type":"text/x-rst","patch_set":3,"id":"da6895a0_23103a4e","line":29,"range":{"start_line":29,"start_character":16,"end_line":29,"end_character":18},"updated":"2016-10-25 09:28:51.000000000","message":"remove \"to\"","commit_id":"3633b3209c8b4e269a11601667c0fea97adc5796"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"6619a4ad41f881221a7a7dfef06ad87757795b06","unresolved":false,"context_lines":[{"line_number":26,"context_line":"  each Dragonflow controller."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"* The network segments support needs the information of if chassis is alive."},{"line_number":29,"context_line":"  This involves to the ml2 port binding and routed networks."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"* To support router gateway in native Dragonflow, the information of if chassis"},{"line_number":32,"context_line":"  is alive is required. Because, either centralized router gateway or"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba5da102_07ec2e8e","line":29,"range":{"start_line":29,"start_character":16,"end_line":29,"end_character":18},"in_reply_to":"da6895a0_23103a4e","updated":"2016-10-31 02:59:10.000000000","message":"Done","commit_id":"3633b3209c8b4e269a11601667c0fea97adc5796"},{"author":{"_account_id":20297,"name":"duankebo","email":"duankebo@huawei.com","username":"duankebo"},"change_message_id":"40d069b264fb4f3fd1327df01812d35920427c24","unresolved":false,"context_lines":[{"line_number":67,"context_line":"Northbound will provide a new method called is_active. The new method will"},{"line_number":68,"context_line":"compare *timestamp* of chassis and current time. If timestamp is older than"},{"line_number":69,"context_line":"current time, and the gap is greater than *chassis_down_time*, the method"},{"line_number":70,"context_line":"will return false."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Publisher Subscriber Impact"},{"line_number":73,"context_line":"---------------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"da6895a0_03d0961e","line":70,"updated":"2016-10-25 09:28:51.000000000","message":"I think it\u0027s necessary to state that who will call this method to compare? What if the method returns false? How can  this mechanism solve the problems you have said.","commit_id":"3633b3209c8b4e269a11601667c0fea97adc5796"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"6619a4ad41f881221a7a7dfef06ad87757795b06","unresolved":false,"context_lines":[{"line_number":67,"context_line":"Northbound will provide a new method called is_active. The new method will"},{"line_number":68,"context_line":"compare *timestamp* of chassis and current time. If timestamp is older than"},{"line_number":69,"context_line":"current time, and the gap is greater than *chassis_down_time*, the method"},{"line_number":70,"context_line":"will return false."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Publisher Subscriber Impact"},{"line_number":73,"context_line":"---------------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ba5da102_073fced6","line":70,"in_reply_to":"da6895a0_03d0961e","updated":"2016-10-31 02:59:10.000000000","message":"I would add some words to for this part, as many has bring it out.","commit_id":"3633b3209c8b4e269a11601667c0fea97adc5796"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"d9a92f31a25ee680f16ead4062208e94a4b9758e","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Other functionalities, for example ml2 port binding, can avoid using the stale"},{"line_number":77,"context_line":"Chassis by checking the return value of this method. If the return value is"},{"line_number":78,"context_line":"false, ml2 port binding can switch to use another Chassis. The details depends"},{"line_number":79,"context_line":"on the implementation of other functionalities. This method just provides the"},{"line_number":80,"context_line":"possibility to do that."},{"line_number":81,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a629dbe_ab8e4125","line":78,"range":{"start_line":78,"start_character":7,"end_line":78,"end_character":57},"updated":"2016-11-07 10:26:55.000000000","message":"I think nova is responsible to schedule the instance to certain compute node, so neutron cannot decide to choose another chassis. It can report binding failed","commit_id":"fe7d6134aad953b4d99952c99fc101ebb324ade9"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"c01cf4565e3bb29fa29b74ffab5597888ec25123","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Other functionalities, for example ml2 port binding, can avoid using the stale"},{"line_number":77,"context_line":"Chassis by checking the return value of this method. If the return value is"},{"line_number":78,"context_line":"false, ml2 port binding can switch to use another Chassis. The details depends"},{"line_number":79,"context_line":"on the implementation of other functionalities. This method just provides the"},{"line_number":80,"context_line":"possibility to do that."},{"line_number":81,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a629dbe_5179d42e","line":78,"range":{"start_line":78,"start_character":7,"end_line":78,"end_character":57},"in_reply_to":"9a629dbe_ab8e4125","updated":"2016-11-07 11:05:22.000000000","message":"Yeah, you are right, the ml2 port binding can only work with host specified. And if the host can\u0027t bind the port, it will report error, instead of switch to other host. Unless there are multiple df-controller in one host, ml2 will not have the possibility to switch using another df-controller, but I don\u0027t think dragonflow has such feature.\n\nI will update this part.","commit_id":"fe7d6134aad953b4d99952c99fc101ebb324ade9"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"d9a92f31a25ee680f16ead4062208e94a4b9758e","unresolved":false,"context_lines":[{"line_number":91,"context_line":"Dragonflow DB CLI Impact"},{"line_number":92,"context_line":"------------------------"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Dragonflow DB CLI should provide 2 commands."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"#. A command to list chassis, administrator can use this command to check all"},{"line_number":97,"context_line":"   chassis in the OpenStack Cloud. Also, an optional parameter will be added to"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a629dbe_4b23e505","line":94,"range":{"start_line":94,"start_character":35,"end_line":94,"end_character":43},"updated":"2016-11-07 10:26:55.000000000","message":"need to make sure these commands are available for admins only","commit_id":"fe7d6134aad953b4d99952c99fc101ebb324ade9"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"c01cf4565e3bb29fa29b74ffab5597888ec25123","unresolved":false,"context_lines":[{"line_number":91,"context_line":"Dragonflow DB CLI Impact"},{"line_number":92,"context_line":"------------------------"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Dragonflow DB CLI should provide 2 commands."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"#. A command to list chassis, administrator can use this command to check all"},{"line_number":97,"context_line":"   chassis in the OpenStack Cloud. Also, an optional parameter will be added to"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a629dbe_71c41840","line":94,"range":{"start_line":94,"start_character":35,"end_line":94,"end_character":43},"in_reply_to":"9a629dbe_4b23e505","updated":"2016-11-07 11:05:22.000000000","message":"There is no way to do this now. Maybe we can enhance it in future.","commit_id":"fe7d6134aad953b4d99952c99fc101ebb324ade9"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"28daf204477176786032273833f95871ac24862f","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Other functionalities, for example ml2 port binding, can avoid using the stale"},{"line_number":77,"context_line":"Chassis by checking the return value of this method. If the return value is"},{"line_number":78,"context_line":"false, ml2 can report error on port binding. The details depends on the"},{"line_number":79,"context_line":"implementation of other functionalities. This method just provides the"},{"line_number":80,"context_line":"possibility to do that."},{"line_number":81,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a629dbe_2346d523","line":78,"range":{"start_line":78,"start_character":56,"end_line":78,"end_character":64},"updated":"2016-11-07 11:56:36.000000000","message":"typo: depend on","commit_id":"8a8a798da5caeda614b86fc482bfec6c3b25be1f"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"df9556d10a0beb002acbc645843b90332aec00fa","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Other functionalities, for example ml2 port binding, can avoid using the stale"},{"line_number":77,"context_line":"Chassis by checking the return value of this method. If the return value is"},{"line_number":78,"context_line":"false, ml2 can report error on port binding. The details depends on the"},{"line_number":79,"context_line":"implementation of other functionalities. This method just provides the"},{"line_number":80,"context_line":"possibility to do that."},{"line_number":81,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a629dbe_760329b9","line":78,"range":{"start_line":78,"start_character":56,"end_line":78,"end_character":64},"in_reply_to":"9a629dbe_2346d523","updated":"2016-11-07 12:28:11.000000000","message":"Done","commit_id":"8a8a798da5caeda614b86fc482bfec6c3b25be1f"},{"author":{"_account_id":13912,"name":"rajiv","email":"thenakliman@gmail.com","username":"rajiv.kumar"},"change_message_id":"4bd3eafe89d7b0003a5bd0d63389a57eab938b7d","unresolved":false,"context_lines":[{"line_number":123,"context_line":"Work Items"},{"line_number":124,"context_line":"----------"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"#. Make Dragonflow controller silently ingore the change of timestamp of"},{"line_number":127,"context_line":"   chassis."},{"line_number":128,"context_line":"#. Add configuration and make Dragonflow controller report to Dragonflow"},{"line_number":129,"context_line":"   Northbound Database periodly."}],"source_content_type":"text/x-rst","patch_set":6,"id":"9a629dbe_6b440074","line":126,"updated":"2016-11-08 06:04:56.000000000","message":"ingore -\u003e ignore","commit_id":"816cf825cd018d2a6193587cb81b887ceeca373d"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"8ee6fac3cc10fc64e1ccca6ffbc9effef2d64b09","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/dragonflow/+spec/is-chassis-alive-support"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Chassis is important to some functionalities, for example, segments support,"},{"line_number":14,"context_line":"router gateway. Dragonflow should provide a way to check if a chassis is alive."},{"line_number":15,"context_line":"So that other functionalities can use it."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a629dbe_0c3579f6","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":7},"updated":"2016-11-15 09:59:58.000000000","message":"What is meant by \u0027Chassis\u0027?","commit_id":"28758c6649a0f76f6de4dbf66905cf3a98d6dafe"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"5c72e10835ab141e7b502c73b1a9a4079b7ff456","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/dragonflow/+spec/is-chassis-alive-support"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Chassis is important to some functionalities, for example, segments support,"},{"line_number":14,"context_line":"router gateway. Dragonflow should provide a way to check if a chassis is alive."},{"line_number":15,"context_line":"So that other functionalities can use it."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a77a97e_bef804e7","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":7},"in_reply_to":"7a77a97e_2f74d533","updated":"2016-11-15 20:53:53.000000000","message":"Chassis is used throughout other specs. I find it\u0027s usage here is correct, that is in line with its meaning in other documents. It\u0027s definition can be made more accurate in the documentation.","commit_id":"28758c6649a0f76f6de4dbf66905cf3a98d6dafe"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"a7383ceff4d085437f395825a0b32b74d60b2060","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/dragonflow/+spec/is-chassis-alive-support"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Chassis is important to some functionalities, for example, segments support,"},{"line_number":14,"context_line":"router gateway. Dragonflow should provide a way to check if a chassis is alive."},{"line_number":15,"context_line":"So that other functionalities can use it."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a77a97e_f48c4d81","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":7},"in_reply_to":"7a77a97e_59a61c11","updated":"2016-11-16 07:12:37.000000000","message":"You mean ToR switch, right? I haven\u0027t run df on that or seen anyone do that before. chassis for df will serve the compute service, so normally it is a host.\n\nBut I don\u0027t see any reason why not. However, to make things simple, I would still think chassis is a host for now.","commit_id":"28758c6649a0f76f6de4dbf66905cf3a98d6dafe"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"ae709407b8e908e2846917cbfe7fdf7dbfa5d14c","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/dragonflow/+spec/is-chassis-alive-support"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Chassis is important to some functionalities, for example, segments support,"},{"line_number":14,"context_line":"router gateway. Dragonflow should provide a way to check if a chassis is alive."},{"line_number":15,"context_line":"So that other functionalities can use it."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a77a97e_2f74d533","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":7},"in_reply_to":"7a77a97e_a95f0571","updated":"2016-11-15 12:56:58.000000000","message":"Probably the current spec is not the place to discuss this, but would ToR also seen as Chassis?","commit_id":"28758c6649a0f76f6de4dbf66905cf3a98d6dafe"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"7f3b631e3e70350c3f4a69377f0b822a3124bb99","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/dragonflow/+spec/is-chassis-alive-support"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Chassis is important to some functionalities, for example, segments support,"},{"line_number":14,"context_line":"router gateway. Dragonflow should provide a way to check if a chassis is alive."},{"line_number":15,"context_line":"So that other functionalities can use it."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a77a97e_59a61c11","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":7},"in_reply_to":"7a77a97e_bef804e7","updated":"2016-11-16 06:34:48.000000000","message":"you still didn\u0027t answer my question regarding the ToR","commit_id":"28758c6649a0f76f6de4dbf66905cf3a98d6dafe"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"400f594499c881a62b77b92c9869a3c6ad140d94","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/dragonflow/+spec/is-chassis-alive-support"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Chassis is important to some functionalities, for example, segments support,"},{"line_number":14,"context_line":"router gateway. Dragonflow should provide a way to check if a chassis is alive."},{"line_number":15,"context_line":"So that other functionalities can use it."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a77a97e_a95f0571","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":7},"in_reply_to":"9a629dbe_0c3579f6","updated":"2016-11-15 12:19:17.000000000","message":"Chassis can be seen as host in sdn/df world.","commit_id":"28758c6649a0f76f6de4dbf66905cf3a98d6dafe"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"8ee6fac3cc10fc64e1ccca6ffbc9effef2d64b09","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem Description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Currently, Dragonflow doesn\u0027t provide a way to check if a chassis is alive."},{"line_number":21,"context_line":"This causes several problems."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"* Once a chassis is registered in Dragonflow Northbound Database, there is no"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a77a97e_9010b350","line":20,"range":{"start_line":20,"start_character":66,"end_line":20,"end_character":74},"updated":"2016-11-15 09:59:58.000000000","message":"Do you mean chassis  presence?","commit_id":"28758c6649a0f76f6de4dbf66905cf3a98d6dafe"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"173bbc26083a41099eec863fe03bef6b53cffcda","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem Description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Currently, Dragonflow doesn\u0027t provide a way to check if a chassis is alive."},{"line_number":21,"context_line":"This causes several problems."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"* Once a chassis is registered in Dragonflow Northbound Database, there is no"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a77a97e_a018c885","line":20,"range":{"start_line":20,"start_character":66,"end_line":20,"end_character":74},"in_reply_to":"7a77a97e_6f308d57","updated":"2016-11-16 10:34:46.000000000","message":"+1 ACTIVE is common in OpenStack and can prevent from misunderstanding.","commit_id":"28758c6649a0f76f6de4dbf66905cf3a98d6dafe"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"400f594499c881a62b77b92c9869a3c6ad140d94","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem Description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Currently, Dragonflow doesn\u0027t provide a way to check if a chassis is alive."},{"line_number":21,"context_line":"This causes several problems."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"* Once a chassis is registered in Dragonflow Northbound Database, there is no"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a77a97e_a972a5e3","line":20,"range":{"start_line":20,"start_character":66,"end_line":20,"end_character":74},"in_reply_to":"7a77a97e_9010b350","updated":"2016-11-15 12:19:17.000000000","message":"Sort of. alive/online/presence/ means the host is ready to host any sdn resource.","commit_id":"28758c6649a0f76f6de4dbf66905cf3a98d6dafe"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"69133caa97b61eed530fe0fbe287d4b02c6e28d8","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem Description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Currently, Dragonflow doesn\u0027t provide a way to check if a chassis is alive."},{"line_number":21,"context_line":"This causes several problems."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"* Once a chassis is registered in Dragonflow Northbound Database, there is no"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a77a97e_1cf77d8d","line":20,"range":{"start_line":20,"start_character":66,"end_line":20,"end_character":74},"in_reply_to":"7a77a97e_a018c885","updated":"2016-11-21 06:58:11.000000000","message":"Done","commit_id":"28758c6649a0f76f6de4dbf66905cf3a98d6dafe"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"ae709407b8e908e2846917cbfe7fdf7dbfa5d14c","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem Description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Currently, Dragonflow doesn\u0027t provide a way to check if a chassis is alive."},{"line_number":21,"context_line":"This causes several problems."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"* Once a chassis is registered in Dragonflow Northbound Database, there is no"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a77a97e_6f308d57","line":20,"range":{"start_line":20,"start_character":66,"end_line":20,"end_character":74},"in_reply_to":"7a77a97e_a972a5e3","updated":"2016-11-15 12:56:58.000000000","message":"Not sure if \u0027alive\u0027 is the correct state, probably \u0027ACTIVE\u0027 is more accurate to represent the SDN readiness.","commit_id":"28758c6649a0f76f6de4dbf66905cf3a98d6dafe"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"e4389d7ca19067881623228b8b4dc01d2fdd4d35","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"* To support router gateway in native Dragonflow, the information of if chassis"},{"line_number":32,"context_line":"  is alive is required. Because, either centralized router gateway or"},{"line_number":33,"context_line":"  distributed router gateway, needs to run in alive chassis."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Proposed Change"},{"line_number":36,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a629dbe_a33a2ae5","line":33,"updated":"2016-11-10 21:06:32.000000000","message":"nit: Please provide links to the features mentioned here:\nML2 port binding\nRouted networks\nRouter gateway\n\nI\u0027m afraid I don\u0027t remember all these features and what they mean of the top of my head :)","commit_id":"28758c6649a0f76f6de4dbf66905cf3a98d6dafe"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"5c72e10835ab141e7b502c73b1a9a4079b7ff456","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"* To support router gateway in native Dragonflow, the information of if chassis"},{"line_number":32,"context_line":"  is alive is required. Because, either centralized router gateway or"},{"line_number":33,"context_line":"  distributed router gateway, needs to run in alive chassis."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Proposed Change"},{"line_number":36,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a77a97e_de41403b","line":33,"in_reply_to":"9a629dbe_3270f00a","updated":"2016-11-15 20:53:53.000000000","message":"I don\u0027t think people will think it\u0027s part of Dragonflow. It is understood that these are features that exist in the ecosystem. It would help if they were referenced, but it\u0027s not very important (That\u0027s why it\u0027s a nit (: ).","commit_id":"28758c6649a0f76f6de4dbf66905cf3a98d6dafe"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"0abed13dc78a1cbe393161eba0edcd6814fce463","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"* To support router gateway in native Dragonflow, the information of if chassis"},{"line_number":32,"context_line":"  is alive is required. Because, either centralized router gateway or"},{"line_number":33,"context_line":"  distributed router gateway, needs to run in alive chassis."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Proposed Change"},{"line_number":36,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a629dbe_3270f00a","line":33,"in_reply_to":"9a629dbe_a33a2ae5","updated":"2016-11-12 03:46:50.000000000","message":"They don\u0027t have links in df now. They are features in neutron that will need the feature in this spec. I think one day when df wants to implement such features, so I bring them out here.\n\nFor ml2 port binding and router gateway, they are small features, I can\u0027t find such link in neutron, for routed network it is introduced in [1] in neutron.\n\nSo, what do you think about it? Should I remove them in this spec to keep people from thinking that they are something in df alreay?\n\n[1] https://specs.openstack.org/openstack/neutron-specs/specs/newton/routed-networks.html","commit_id":"28758c6649a0f76f6de4dbf66905cf3a98d6dafe"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"e4389d7ca19067881623228b8b4dc01d2fdd4d35","unresolved":false,"context_lines":[{"line_number":36,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Make Dragonflow controller report its timestamp to Dragonflow Northbound"},{"line_number":39,"context_line":"Database periodly. Add a method to tell if a chassis is alive."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"The implementation will under the assumption that all the nodes in OpenStack"},{"line_number":42,"context_line":"cloud have consistent time. This is a reliable assumption because it is"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a629dbe_fedbd579","line":39,"updated":"2016-11-10 21:06:32.000000000","message":"Would it be possible to make this method extensible? I mean, if we want to add other periodic health-check information, such as l3 agent, publisher service (for Neutron Servers), metadata service, and future services we may run on the hosts?\n\nThe implementation of this spec can be only for the health check of the local-controller, but we will probably want to extend this to other Dragonflow services.\n\nWhat do you think?","commit_id":"28758c6649a0f76f6de4dbf66905cf3a98d6dafe"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"69133caa97b61eed530fe0fbe287d4b02c6e28d8","unresolved":false,"context_lines":[{"line_number":36,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Make Dragonflow controller report its timestamp to Dragonflow Northbound"},{"line_number":39,"context_line":"Database periodly. Add a method to tell if a chassis is alive."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"The implementation will under the assumption that all the nodes in OpenStack"},{"line_number":42,"context_line":"cloud have consistent time. This is a reliable assumption because it is"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a77a97e_9c29cdf5","line":39,"in_reply_to":"7a77a97e_dec4e093","updated":"2016-11-21 06:58:11.000000000","message":"Done","commit_id":"28758c6649a0f76f6de4dbf66905cf3a98d6dafe"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"5c72e10835ab141e7b502c73b1a9a4079b7ff456","unresolved":false,"context_lines":[{"line_number":36,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Make Dragonflow controller report its timestamp to Dragonflow Northbound"},{"line_number":39,"context_line":"Database periodly. Add a method to tell if a chassis is alive."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"The implementation will under the assumption that all the nodes in OpenStack"},{"line_number":42,"context_line":"cloud have consistent time. This is a reliable assumption because it is"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a77a97e_dec4e093","line":39,"in_reply_to":"9a629dbe_12b84c74","updated":"2016-11-15 20:53:53.000000000","message":"This topic was covered in the weekly meeting. Could you please add the relevant insights here?","commit_id":"28758c6649a0f76f6de4dbf66905cf3a98d6dafe"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"0abed13dc78a1cbe393161eba0edcd6814fce463","unresolved":false,"context_lines":[{"line_number":36,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Make Dragonflow controller report its timestamp to Dragonflow Northbound"},{"line_number":39,"context_line":"Database periodly. Add a method to tell if a chassis is alive."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"The implementation will under the assumption that all the nodes in OpenStack"},{"line_number":42,"context_line":"cloud have consistent time. This is a reliable assumption because it is"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a629dbe_12b84c74","line":39,"in_reply_to":"9a629dbe_fedbd579","updated":"2016-11-12 03:46:50.000000000","message":"The method could be a static method and be used by multiple services. Just like [1]. \n\nI want to discuss a bit more about the monitor of other services here. \n\nl3 agent: it has already be managed by neutron, and will be removed once the snat is implemented, right?\n\npublisher service: Should we use neutron server to manage the process, by using ProcessManager at [2]? If so, we don\u0027t need to consider monitor it in df process. ProcessManager will monitor process and restart it if needed.\n\nmetadata service: Should we also use df controller to manage the process, by using ProcessManager at [2]?\n\nFor other service in future, could it also be managed by df controller? In this way, we are giving more authority to df controller, but I think it is OK, as it is still a distributed management.  What do you think?\n\n\n[1] https://github.com/openstack/neutron/blob/9f022dad4f2627e64cc4dc7a63e6327c8396f228/neutron/agent/common/utils.py#L61\n\n[2] https://github.com/openstack/neutron/blob/9f022dad4f2627e64cc4dc7a63e6327c8396f228/neutron/agent/linux/external_process.py#L56","commit_id":"28758c6649a0f76f6de4dbf66905cf3a98d6dafe"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"e4389d7ca19067881623228b8b4dc01d2fdd4d35","unresolved":false,"context_lines":[{"line_number":78,"context_line":"false, ml2 can report error on port binding. The details depend on the"},{"line_number":79,"context_line":"implementation of other functionalities. This method just provides the"},{"line_number":80,"context_line":"possibility to do that."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Publisher Subscriber Impact"},{"line_number":83,"context_line":"---------------------------"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a629dbe_3e2f0d89","line":81,"updated":"2016-11-10 21:06:32.000000000","message":"Have you considered also running a TableMonitor on the Neutron Servervs, to detect failed chassises and raise a notification (using e.g. ceilometer+aodh (in a pluggable way, of course (: ) )? This way, an administrator doesn\u0027t need to connect to the CLI to verify chassis health. This way, a stale chassis can be cleared automatically once an event was raised or notification was sent (If we decide this is wanted, seeing the discussion in comments below).","commit_id":"28758c6649a0f76f6de4dbf66905cf3a98d6dafe"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"5c72e10835ab141e7b502c73b1a9a4079b7ff456","unresolved":false,"context_lines":[{"line_number":78,"context_line":"false, ml2 can report error on port binding. The details depend on the"},{"line_number":79,"context_line":"implementation of other functionalities. This method just provides the"},{"line_number":80,"context_line":"possibility to do that."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Publisher Subscriber Impact"},{"line_number":83,"context_line":"---------------------------"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a77a97e_437f17aa","line":81,"in_reply_to":"9a629dbe_3261d005","updated":"2016-11-15 20:53:53.000000000","message":"Sounds good.","commit_id":"28758c6649a0f76f6de4dbf66905cf3a98d6dafe"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"0abed13dc78a1cbe393161eba0edcd6814fce463","unresolved":false,"context_lines":[{"line_number":78,"context_line":"false, ml2 can report error on port binding. The details depend on the"},{"line_number":79,"context_line":"implementation of other functionalities. This method just provides the"},{"line_number":80,"context_line":"possibility to do that."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Publisher Subscriber Impact"},{"line_number":83,"context_line":"---------------------------"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a629dbe_3261d005","line":81,"in_reply_to":"9a629dbe_3e2f0d89","updated":"2016-11-12 03:46:50.000000000","message":"I think it is better to be a non-automatical way first, as I have the concern about the stablity.  If we decides to do it automatically in future, it will not be difficult to add such mechanism, what do you think?","commit_id":"28758c6649a0f76f6de4dbf66905cf3a98d6dafe"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"c21c1369325773b6da25d0b1cbb0d0c80062efa9","unresolved":false,"context_lines":[{"line_number":97,"context_line":"   chassis in the OpenStack Cloud. Also, an optional parameter will be added to"},{"line_number":98,"context_line":"   the command. The optional parameter will provide the ability to filter out"},{"line_number":99,"context_line":"   the active chassis or stale chassis."},{"line_number":100,"context_line":"#. A command to delete stale chassis. When administrator deletes chassis, the"},{"line_number":101,"context_line":"   chassis delete event should be broadcasted to all Dragonflow controllers."},{"line_number":102,"context_line":"   Dragonflow controllers should clear local information of stale chassis when"},{"line_number":103,"context_line":"   receive such event."}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a629dbe_1e78048f","line":100,"range":{"start_line":100,"start_character":3,"end_line":100,"end_character":37},"updated":"2016-11-08 15:22:31.000000000","message":"Why not delete stale chassis periodically from the plugin side?","commit_id":"28758c6649a0f76f6de4dbf66905cf3a98d6dafe"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"7a9305e7255efc24bbaced9128e9d04fa6c59223","unresolved":false,"context_lines":[{"line_number":97,"context_line":"   chassis in the OpenStack Cloud. Also, an optional parameter will be added to"},{"line_number":98,"context_line":"   the command. The optional parameter will provide the ability to filter out"},{"line_number":99,"context_line":"   the active chassis or stale chassis."},{"line_number":100,"context_line":"#. A command to delete stale chassis. When administrator deletes chassis, the"},{"line_number":101,"context_line":"   chassis delete event should be broadcasted to all Dragonflow controllers."},{"line_number":102,"context_line":"   Dragonflow controllers should clear local information of stale chassis when"},{"line_number":103,"context_line":"   receive such event."}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a629dbe_8f2769b5","line":100,"range":{"start_line":100,"start_character":3,"end_line":100,"end_character":37},"in_reply_to":"9a629dbe_1e78048f","updated":"2016-11-09 03:04:29.000000000","message":"Dima, it could be supported, but this spec focus the mechanism that check the chassis alive, who will invoke the api and how to use it, I think several examples are enough.","commit_id":"28758c6649a0f76f6de4dbf66905cf3a98d6dafe"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"540390c384d837b9b8140c6442917466c0767ef3","unresolved":false,"context_lines":[{"line_number":97,"context_line":"   chassis in the OpenStack Cloud. Also, an optional parameter will be added to"},{"line_number":98,"context_line":"   the command. The optional parameter will provide the ability to filter out"},{"line_number":99,"context_line":"   the active chassis or stale chassis."},{"line_number":100,"context_line":"#. A command to delete stale chassis. When administrator deletes chassis, the"},{"line_number":101,"context_line":"   chassis delete event should be broadcasted to all Dragonflow controllers."},{"line_number":102,"context_line":"   Dragonflow controllers should clear local information of stale chassis when"},{"line_number":103,"context_line":"   receive such event."}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a629dbe_b131a75c","line":100,"range":{"start_line":100,"start_character":3,"end_line":100,"end_character":37},"in_reply_to":"9a629dbe_1e78048f","updated":"2016-11-10 13:26:57.000000000","message":"Why not delete stale chassis periodically from the plugin side?\n\nIt is not safe to do that, the network may be unstable, and the chassis may disconnect to nb db intermittently. We should let admin, who knows what to do, to delete the chassis mannually.","commit_id":"28758c6649a0f76f6de4dbf66905cf3a98d6dafe"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"316c2e9f60b836387e15e541494407130a819fa5","unresolved":false,"context_lines":[{"line_number":97,"context_line":"   chassis in the OpenStack Cloud. Also, an optional parameter will be added to"},{"line_number":98,"context_line":"   the command. The optional parameter will provide the ability to filter out"},{"line_number":99,"context_line":"   the active chassis or stale chassis."},{"line_number":100,"context_line":"#. A command to delete stale chassis. When administrator deletes chassis, the"},{"line_number":101,"context_line":"   chassis delete event should be broadcasted to all Dragonflow controllers."},{"line_number":102,"context_line":"   Dragonflow controllers should clear local information of stale chassis when"},{"line_number":103,"context_line":"   receive such event."}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a629dbe_3bd76424","line":100,"range":{"start_line":100,"start_character":3,"end_line":100,"end_character":37},"in_reply_to":"9a629dbe_8f2769b5","updated":"2016-11-09 15:07:36.000000000","message":"Ok, I agree.","commit_id":"28758c6649a0f76f6de4dbf66905cf3a98d6dafe"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"2dde3caf1bb6103ed6750ed7ee26633aad0ffad9","unresolved":false,"context_lines":[{"line_number":99,"context_line":"   the active chassis or stale chassis."},{"line_number":100,"context_line":"#. A command to delete stale chassis. When administrator deletes chassis, the"},{"line_number":101,"context_line":"   chassis delete event should be broadcasted to all Dragonflow controllers."},{"line_number":102,"context_line":"   Dragonflow controllers should clear local information of stale chassis when"},{"line_number":103,"context_line":"   receive such event."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"So that administrator can clean the stale chassis."}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a629dbe_82304958","line":102,"range":{"start_line":102,"start_character":39,"end_line":102,"end_character":56},"updated":"2016-11-08 11:38:41.000000000","message":"which infomation, cache data? Tunnel Port? FLow entry??","commit_id":"28758c6649a0f76f6de4dbf66905cf3a98d6dafe"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"1d2da0f165ac0a786af4d2a50111b098a4c1709f","unresolved":false,"context_lines":[{"line_number":99,"context_line":"   the active chassis or stale chassis."},{"line_number":100,"context_line":"#. A command to delete stale chassis. When administrator deletes chassis, the"},{"line_number":101,"context_line":"   chassis delete event should be broadcasted to all Dragonflow controllers."},{"line_number":102,"context_line":"   Dragonflow controllers should clear local information of stale chassis when"},{"line_number":103,"context_line":"   receive such event."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"So that administrator can clean the stale chassis."}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a629dbe_9d6d0807","line":102,"range":{"start_line":102,"start_character":39,"end_line":102,"end_character":56},"in_reply_to":"9a629dbe_5d04507d","updated":"2016-11-08 11:57:58.000000000","message":"All right.","commit_id":"28758c6649a0f76f6de4dbf66905cf3a98d6dafe"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"3ae99151b46ceaa6270a5e5b6b64df7e4f2af58e","unresolved":false,"context_lines":[{"line_number":99,"context_line":"   the active chassis or stale chassis."},{"line_number":100,"context_line":"#. A command to delete stale chassis. When administrator deletes chassis, the"},{"line_number":101,"context_line":"   chassis delete event should be broadcasted to all Dragonflow controllers."},{"line_number":102,"context_line":"   Dragonflow controllers should clear local information of stale chassis when"},{"line_number":103,"context_line":"   receive such event."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"So that administrator can clean the stale chassis."}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a629dbe_5d04507d","line":102,"range":{"start_line":102,"start_character":39,"end_line":102,"end_character":56},"in_reply_to":"9a629dbe_82304958","updated":"2016-11-08 11:52:13.000000000","message":"It could be either cache data or Tunnel Port or FLow entry. Depends on how [1] will be implemented, so I can\u0027t be too specific now.\n\n[1] https://blueprints.launchpad.net/dragonflow/+spec/virtual-tunnel-port-support","commit_id":"28758c6649a0f76f6de4dbf66905cf3a98d6dafe"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"1d2da0f165ac0a786af4d2a50111b098a4c1709f","unresolved":false,"context_lines":[{"line_number":100,"context_line":"#. A command to delete stale chassis. When administrator deletes chassis, the"},{"line_number":101,"context_line":"   chassis delete event should be broadcasted to all Dragonflow controllers."},{"line_number":102,"context_line":"   Dragonflow controllers should clear local information of stale chassis when"},{"line_number":103,"context_line":"   receive such event."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"So that administrator can clean the stale chassis."},{"line_number":106,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a629dbe_bd72cce3","line":103,"range":{"start_line":103,"start_character":3,"end_line":103,"end_character":10},"updated":"2016-11-08 11:57:58.000000000","message":"receiving?","commit_id":"28758c6649a0f76f6de4dbf66905cf3a98d6dafe"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"09b12f506bc8ec7634b007d6ab9c280ee27bde31","unresolved":false,"context_lines":[{"line_number":100,"context_line":"#. A command to delete stale chassis. When administrator deletes chassis, the"},{"line_number":101,"context_line":"   chassis delete event should be broadcasted to all Dragonflow controllers."},{"line_number":102,"context_line":"   Dragonflow controllers should clear local information of stale chassis when"},{"line_number":103,"context_line":"   receive such event."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"So that administrator can clean the stale chassis."},{"line_number":106,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a629dbe_25a6a210","line":103,"range":{"start_line":103,"start_character":3,"end_line":103,"end_character":10},"in_reply_to":"9a629dbe_b85f3a71","updated":"2016-11-08 13:13:23.000000000","message":"I meant I might be wrong about \"either is correct\", anyway ,thanks :)","commit_id":"28758c6649a0f76f6de4dbf66905cf3a98d6dafe"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"df2adf21ae2eb83d9dd50fd0d770d677defa7897","unresolved":false,"context_lines":[{"line_number":100,"context_line":"#. A command to delete stale chassis. When administrator deletes chassis, the"},{"line_number":101,"context_line":"   chassis delete event should be broadcasted to all Dragonflow controllers."},{"line_number":102,"context_line":"   Dragonflow controllers should clear local information of stale chassis when"},{"line_number":103,"context_line":"   receive such event."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"So that administrator can clean the stale chassis."},{"line_number":106,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a629dbe_d8af8ee1","line":103,"range":{"start_line":103,"start_character":3,"end_line":103,"end_character":10},"in_reply_to":"9a629dbe_bd72cce3","updated":"2016-11-08 12:03:39.000000000","message":"I think either is correct, but as you know, I am not a native English speaker.","commit_id":"28758c6649a0f76f6de4dbf66905cf3a98d6dafe"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"3e75e514d05e6f711cec2f64fda6d6760e839b9b","unresolved":false,"context_lines":[{"line_number":100,"context_line":"#. A command to delete stale chassis. When administrator deletes chassis, the"},{"line_number":101,"context_line":"   chassis delete event should be broadcasted to all Dragonflow controllers."},{"line_number":102,"context_line":"   Dragonflow controllers should clear local information of stale chassis when"},{"line_number":103,"context_line":"   receive such event."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"So that administrator can clean the stale chassis."},{"line_number":106,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a629dbe_b85f3a71","line":103,"range":{"start_line":103,"start_character":3,"end_line":103,"end_character":10},"in_reply_to":"9a629dbe_d8af8ee1","updated":"2016-11-08 12:13:24.000000000","message":"ok, just a friendly remind :)","commit_id":"28758c6649a0f76f6de4dbf66905cf3a98d6dafe"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"30422c78ced68d7a16c5bb468c219eb30e200448","unresolved":false,"context_lines":[{"line_number":83,"context_line":"will return false."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"Add a new field called *service_status* to Chassis in Dragonflow Northbound"},{"line_number":86,"context_line":"Database. The status of local services will be recorded in this field."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"The new DB cli commands that are mentioned below will show the Chassis status"},{"line_number":89,"context_line":"according to the return value of this method. Administrator can then delete the"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a77a97e_8a916d55","line":86,"updated":"2016-11-21 13:50:27.000000000","message":"service_status will be a dictionary, service name -\u003e service status?\n\nIt\u0027s not a blocker, and can definitely be defined later.","commit_id":"aa9126734d733ed924256dda374ce6e62cf1bbc2"}]}
