)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"e78cc83f2f6491b73362eff12d8369ab1935f138","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Sherif Abdelwahab \u003csherif.abdelwahab@hp.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-07-21 12:12:43 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Blueprint: Activepassiveamphora Active-Passive Amphora Setup using VRRP"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This blueprint describes how Octavia implements its Active-Standby"},{"line_number":10,"context_line":"solution. It will describe the high level topology and the proposed code"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3a50d1a3_e7b19b90","line":7,"updated":"2015-07-21 19:39:30.000000000","message":"oye, this needs some reformatting","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Sherif Abdelwahab \u003csherif.abdelwahab@hp.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-07-21 12:12:43 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Blueprint: Activepassiveamphora Active-Passive Amphora Setup using VRRP"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This blueprint describes how Octavia implements its Active-Standby"},{"line_number":10,"context_line":"solution. It will describe the high level topology and the proposed code"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3a50d1a3_5cc10753","line":7,"in_reply_to":"3a50d1a3_e7b19b90","updated":"2015-07-22 18:59:40.000000000","message":"nit: the \"Blueprint: Activepassiveamphora\" just let gerrit change the topic automatically to bp/Activepassiveamphora matching the launch directive: https://blueprints.launchpad.net/octavia/+spec/activepassiveamphora\nNot a big deal though I will make it more readable.","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"}],"specs/version0.5/active_passive_loadbalancer.rst":[{"author":{"_account_id":6437,"name":"Susanne Balle","email":"sleipnir012@gmail.com","username":"susanne-balle"},"change_message_id":"7488effb800075f0ff9186309b196471e84bff36","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/octavia/+spec/activepassiveamphora"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This blueprint describes how Octavia implements its Active-Standby"},{"line_number":14,"context_line":"solution. It will describe the high level topology and the proposed code"},{"line_number":15,"context_line":"changes to realize the high availability loadbalancer scenario."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_90bd766a","line":14,"updated":"2015-07-21 17:09:29.000000000","message":"nit: proposed code changes from what? from the active-active solution or from no HA?","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":6437,"name":"Susanne Balle","email":"sleipnir012@gmail.com","username":"susanne-balle"},"change_message_id":"7488effb800075f0ff9186309b196471e84bff36","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":"A tenant should be able to start high availability loadbalancer for her"},{"line_number":21,"context_line":"backend services as follows:"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"* The tenant should specify through neutron command line interface or through"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_503ccee1","line":20,"updated":"2015-07-21 17:09:29.000000000","message":"nit: should this be highly available loadbalancer(s)?","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":10850,"name":"German Eichberger","email":"german.eichberger@gmail.com","username":"german"},"change_message_id":"d0b5982ffc3bfed355c0bf29f03cf7fae5464470","unresolved":false,"context_lines":[{"line_number":21,"context_line":"backend services as follows:"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"* The tenant should specify through neutron command line interface or through"},{"line_number":24,"context_line":" octavia configuration file, which topology shall the loadbalancer support."},{"line_number":25,"context_line":" An Active_Standby topology shall be supported by Octavia in addition to the"},{"line_number":26,"context_line":" Single topology that is currently supported."},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_3af27170","line":24,"updated":"2015-07-20 23:11:14.000000000","message":"Nit: the loadbalancer SHALL support","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":6437,"name":"Susanne Balle","email":"sleipnir012@gmail.com","username":"susanne-balle"},"change_message_id":"7488effb800075f0ff9186309b196471e84bff36","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"* The tenant should specify through neutron command line interface or through"},{"line_number":24,"context_line":" octavia configuration file, which topology shall the loadbalancer support."},{"line_number":25,"context_line":" An Active_Standby topology shall be supported by Octavia in addition to the"},{"line_number":26,"context_line":" Single topology that is currently supported."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"* In Active_Standby, two Amphorae shall host a replicated configuration of the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_53585832","line":25,"updated":"2015-07-21 17:09:29.000000000","message":"nit. Let\u0027s be consistent and call it the same throughout the document. Either Active-Passive or Active-Standby.","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c6c6555f79ea96a921e14c0e24675e72e68aabd1","unresolved":false,"context_lines":[{"line_number":32,"context_line":"* Upon failure of the master amphora, the backup one shall seamlessly take over"},{"line_number":33,"context_line":"the load balancing function. After the master amphora changes to a healthy"},{"line_number":34,"context_line":"status, the backup amphora shall give up the load balancing function to the"},{"line_number":35,"context_line":"master again."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"* Fail-overs shall be seamless to end-users and fail-over time should be"},{"line_number":38,"context_line":"minimized."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_9df93f83","line":35,"updated":"2015-07-21 00:14:37.000000000","message":"Hmm, we don\u0027t really need it to fail back.  Is there an easy way to implement it so that it does not fail back?  This would eliminate a slight interruption of the data flow.","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":6437,"name":"Susanne Balle","email":"sleipnir012@gmail.com","username":"susanne-balle"},"change_message_id":"7488effb800075f0ff9186309b196471e84bff36","unresolved":false,"context_lines":[{"line_number":32,"context_line":"* Upon failure of the master amphora, the backup one shall seamlessly take over"},{"line_number":33,"context_line":"the load balancing function. After the master amphora changes to a healthy"},{"line_number":34,"context_line":"status, the backup amphora shall give up the load balancing function to the"},{"line_number":35,"context_line":"master again."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"* Fail-overs shall be seamless to end-users and fail-over time should be"},{"line_number":38,"context_line":"minimized."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_f3b5e430","line":35,"in_reply_to":"3a50d1a3_9df93f83","updated":"2015-07-21 17:09:29.000000000","message":"I agree. I was going to comment about that too. The master can just be the newly assigned master and the seocnd LB can be the standby one.","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c6c6555f79ea96a921e14c0e24675e72e68aabd1","unresolved":false,"context_lines":[{"line_number":48,"context_line":"                    |   IP"},{"line_number":49,"context_line":"                    v"},{"line_number":50,"context_line":"  +-----------------------------------+"},{"line_number":51,"context_line":"  |   Router (Floating IP \u003c-\u003e VIP)    |"},{"line_number":52,"context_line":"  ++---------------------------------++"},{"line_number":53,"context_line":"   |                                 |         Tenant"},{"line_number":54,"context_line":"   |   -^----------------------------+-----^--Network-+--------+"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_1d2c4f01","line":51,"updated":"2015-07-21 00:14:37.000000000","message":"NAT here might make it more clear","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":6437,"name":"Susanne Balle","email":"sleipnir012@gmail.com","username":"susanne-balle"},"change_message_id":"7488effb800075f0ff9186309b196471e84bff36","unresolved":false,"context_lines":[{"line_number":57,"context_line":"|VIP |IP-1|                        |VIP |IP-2|        |        |"},{"line_number":58,"context_line":"+----+----+----+              +----+----+----+        v        |"},{"line_number":59,"context_line":"| Master  |VRRP|   Unicast    |VRRP| Backup  |    +-------+    |"},{"line_number":60,"context_line":"| Amphora |IP-1|\u003c---Tenant---\u003e|IP-2| Amphora |    |Tenant |    v"},{"line_number":61,"context_line":"+-------+-+----+     Net      +----+-------+-+    |Service|+-------+"},{"line_number":62,"context_line":"|  MNG  |                          |  MNG  |      |  (1)  ||Tenant |"},{"line_number":63,"context_line":"| IP-1  |                          | IP-1  |      +-------+|Service|"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_73455415","line":60,"updated":"2015-07-21 17:09:29.000000000","message":"Not sure what network this is? Tenant net? is that the same as Tenant Network?\n\nJust read further down in the spec. Tenant Net should be Tenant Network. maybe it is already there but with the comments I cannot see the whole diagram.","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c6c6555f79ea96a921e14c0e24675e72e68aabd1","unresolved":false,"context_lines":[{"line_number":58,"context_line":"+----+----+----+              +----+----+----+        v        |"},{"line_number":59,"context_line":"| Master  |VRRP|   Unicast    |VRRP| Backup  |    +-------+    |"},{"line_number":60,"context_line":"| Amphora |IP-1|\u003c---Tenant---\u003e|IP-2| Amphora |    |Tenant |    v"},{"line_number":61,"context_line":"+-------+-+----+     Net      +----+-------+-+    |Service|+-------+"},{"line_number":62,"context_line":"|  MNG  |                          |  MNG  |      |  (1)  ||Tenant |"},{"line_number":63,"context_line":"| IP-1  |                          | IP-1  |      +-------+|Service|"},{"line_number":64,"context_line":"+-------+                          +-------+               |  (N)  |"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_dd358746","line":61,"updated":"2015-07-21 00:14:37.000000000","message":"Net 2?","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c6c6555f79ea96a921e14c0e24675e72e68aabd1","unresolved":false,"context_lines":[{"line_number":59,"context_line":"| Master  |VRRP|   Unicast    |VRRP| Backup  |    +-------+    |"},{"line_number":60,"context_line":"| Amphora |IP-1|\u003c---Tenant---\u003e|IP-2| Amphora |    |Tenant |    v"},{"line_number":61,"context_line":"+-------+-+----+     Net      +----+-------+-+    |Service|+-------+"},{"line_number":62,"context_line":"|  MNG  |                          |  MNG  |      |  (1)  ||Tenant |"},{"line_number":63,"context_line":"| IP-1  |                          | IP-1  |      +-------+|Service|"},{"line_number":64,"context_line":"+-------+                          +-------+               |  (N)  |"},{"line_number":65,"context_line":"    |                                  |                   +-------+"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_bd3bdb37","line":62,"updated":"2015-07-21 00:14:37.000000000","message":"nit: MNG-\u003eMGMT","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c6c6555f79ea96a921e14c0e24675e72e68aabd1","unresolved":false,"context_lines":[{"line_number":64,"context_line":"+-------+                          +-------+               |  (N)  |"},{"line_number":65,"context_line":"    |                                  |                   +-------+"},{"line_number":66,"context_line":"    |              Management          |"},{"line_number":67,"context_line":" ---v-------^--------(MNG) ------------v---"},{"line_number":68,"context_line":"            |       network"},{"line_number":69,"context_line":"            |"},{"line_number":70,"context_line":"       +---------+"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_dd0ca796","line":67,"updated":"2015-07-21 00:14:37.000000000","message":"nit: MNG-\u003eMGMT","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c6c6555f79ea96a921e14c0e24675e72e68aabd1","unresolved":false,"context_lines":[{"line_number":70,"context_line":"       +---------+"},{"line_number":71,"context_line":"       | Octavia |"},{"line_number":72,"context_line":"       | Control |"},{"line_number":73,"context_line":"       |Worker(s)|"},{"line_number":74,"context_line":"       +---------+"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"* The newly introduced VRRP IPs shall communicate on the same tenant network"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_5d2177fa","line":73,"updated":"2015-07-21 00:14:37.000000000","message":"Octavia Controller(s)","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c6c6555f79ea96a921e14c0e24675e72e68aabd1","unresolved":false,"context_lines":[{"line_number":76,"context_line":"* The newly introduced VRRP IPs shall communicate on the same tenant network"},{"line_number":77,"context_line":"(see security impact for more details)."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"* The existing Haproxy Jinja configuration template shall consider peer setup"},{"line_number":80,"context_line":" with state sync over the VRRP IP addresses."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"* The VRRP IP addresses shall potentially be IPv6."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_fdeba376","line":79,"updated":"2015-07-21 00:14:37.000000000","message":"nit: shall consider peer setup with state sync over the VRRP IP addresses.\n-\u003e\nshall include \"peer\" setup for state synchronization over the VRRP IP addresses.","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":10850,"name":"German Eichberger","email":"german.eichberger@gmail.com","username":"german"},"change_message_id":"d0b5982ffc3bfed355c0bf29f03cf7fae5464470","unresolved":false,"context_lines":[{"line_number":79,"context_line":"* The existing Haproxy Jinja configuration template shall consider peer setup"},{"line_number":80,"context_line":" with state sync over the VRRP IP addresses."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"* The VRRP IP addresses shall potentially be IPv6."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"Proposed change"},{"line_number":85,"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":1,"id":"3a50d1a3_fab9697a","line":82,"updated":"2015-07-20 23:11:14.000000000","message":"work with both ipV4 and v6","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":6437,"name":"Susanne Balle","email":"sleipnir012@gmail.com","username":"susanne-balle"},"change_message_id":"7488effb800075f0ff9186309b196471e84bff36","unresolved":false,"context_lines":[{"line_number":79,"context_line":"* The existing Haproxy Jinja configuration template shall consider peer setup"},{"line_number":80,"context_line":" with state sync over the VRRP IP addresses."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"* The VRRP IP addresses shall potentially be IPv6."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"Proposed change"},{"line_number":85,"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":1,"id":"3a50d1a3_93d4a020","line":82,"in_reply_to":"3a50d1a3_1dc8cf21","updated":"2015-07-21 17:09:29.000000000","message":"+1","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c6c6555f79ea96a921e14c0e24675e72e68aabd1","unresolved":false,"context_lines":[{"line_number":79,"context_line":"* The existing Haproxy Jinja configuration template shall consider peer setup"},{"line_number":80,"context_line":" with state sync over the VRRP IP addresses."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"* The VRRP IP addresses shall potentially be IPv6."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"Proposed change"},{"line_number":85,"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":1,"id":"3a50d1a3_1dc8cf21","line":82,"in_reply_to":"3a50d1a3_fab9697a","updated":"2015-07-21 00:14:37.000000000","message":"+1","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c6c6555f79ea96a921e14c0e24675e72e68aabd1","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"* Add support of VRRP in the amphora base image through Keepalived."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"* Extend the controller worker (deploy-worker) to be able to spawn two"},{"line_number":92,"context_line":"amphorae associated with the same loadbalancer with the same VIP on two"},{"line_number":93,"context_line":"different compute nodes. These two amphorae shall replicate the same listeners,"},{"line_number":94,"context_line":" and pools configuration. Note: a topology is a property of a loadbalancer"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_7d2b1395","line":91,"updated":"2015-07-21 00:14:37.000000000","message":"We can drop \"(deploy-worker)\" as that was just a transitional clarification after I renamed it to controller worker.","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":10850,"name":"German Eichberger","email":"german.eichberger@gmail.com","username":"german"},"change_message_id":"d0b5982ffc3bfed355c0bf29f03cf7fae5464470","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"* Add support of VRRP in the amphora base image through Keepalived."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"* Extend the controller worker (deploy-worker) to be able to spawn two"},{"line_number":92,"context_line":"amphorae associated with the same loadbalancer with the same VIP on two"},{"line_number":93,"context_line":"different compute nodes. These two amphorae shall replicate the same listeners,"},{"line_number":94,"context_line":" and pools configuration. Note: a topology is a property of a loadbalancer"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_3a67d126","line":91,"updated":"2015-07-20 23:11:14.000000000","message":"say N instead of two -- and reference ACTIVE-ACTIVE work","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":10850,"name":"German Eichberger","email":"german.eichberger@gmail.com","username":"german"},"change_message_id":"d0b5982ffc3bfed355c0bf29f03cf7fae5464470","unresolved":false,"context_lines":[{"line_number":97,"context_line":"* Extend the amphora driver interface, the amphora REST/SSH driver, and Jinja"},{"line_number":98,"context_line":"configuration templates for the newly introduced VRRP service [4]."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"* Develop a Keepalived amphora driver."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"* Extend the Octavia configuration and Operator APIs support the"},{"line_number":103,"context_line":"Active/Standby topology."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_1a321511","line":100,"updated":"2015-07-20 23:11:14.000000000","message":"I expect we need to change the network driver as well to so we can create that additional network?\n\nI also expect some controller worker changes in the flows","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c6c6555f79ea96a921e14c0e24675e72e68aabd1","unresolved":false,"context_lines":[{"line_number":97,"context_line":"* Extend the amphora driver interface, the amphora REST/SSH driver, and Jinja"},{"line_number":98,"context_line":"configuration templates for the newly introduced VRRP service [4]."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"* Develop a Keepalived amphora driver."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"* Extend the Octavia configuration and Operator APIs support the"},{"line_number":103,"context_line":"Active/Standby topology."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_88301fea","line":100,"in_reply_to":"3a50d1a3_1a321511","updated":"2015-07-21 00:14:37.000000000","message":"Yes, I think we will need to add support for creating the network.  The current plug methods should work though.  \n\nWe also need to mention the \"address pairs\" setting here as it is an important setting for the VRRP.","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":10850,"name":"German Eichberger","email":"german.eichberger@gmail.com","username":"german"},"change_message_id":"d0b5982ffc3bfed355c0bf29f03cf7fae5464470","unresolved":false,"context_lines":[{"line_number":108,"context_line":"service) it must replicate the same VRRP priorities, ids, and authentication"},{"line_number":109,"context_line":"credentials to keep the loadbalancer in its meant configuration. Listeners"},{"line_number":110,"context_line":"associated with this load balancer shall by put in a DEGRADED"},{"line_number":111,"context_line":"provisioning_state."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"Alternatives"},{"line_number":114,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_5a309d01","line":111,"updated":"2015-07-20 23:11:14.000000000","message":"Ideally that would be transparent...","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c6c6555f79ea96a921e14c0e24675e72e68aabd1","unresolved":false,"context_lines":[{"line_number":108,"context_line":"service) it must replicate the same VRRP priorities, ids, and authentication"},{"line_number":109,"context_line":"credentials to keep the loadbalancer in its meant configuration. Listeners"},{"line_number":110,"context_line":"associated with this load balancer shall by put in a DEGRADED"},{"line_number":111,"context_line":"provisioning_state."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"Alternatives"},{"line_number":114,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_e8a52304","line":111,"in_reply_to":"3a50d1a3_5a309d01","updated":"2015-07-21 00:14:37.000000000","message":"I think provisioning state might be ok as it is not visible to the customer.  But in general, I agree that most of these details should be hidden from the end user.","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c6c6555f79ea96a921e14c0e24675e72e68aabd1","unresolved":false,"context_lines":[{"line_number":135,"context_line":"* New value tables for the loadbalancer topology and the amphorae roles."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"* All new columns shall be nullable and ensures backward compatibility with"},{"line_number":138,"context_line":"the base database version."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"REST API impact"},{"line_number":141,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_a8971b8f","line":138,"updated":"2015-07-21 00:14:37.000000000","message":"As this is unreleased code, I don\u0027t think this is necessary and I might argue against it.","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c6c6555f79ea96a921e14c0e24675e72e68aabd1","unresolved":false,"context_lines":[{"line_number":168,"context_line":"** provisioning_status - string enum - (ACTIVE, PENDING_CREATE, PENDING_UPDATE,"},{"line_number":169,"context_line":"PENDING_DELETE, DELETED, ERROR)"},{"line_number":170,"context_line":"** operating_status - string enum - (ONLINE, OFFLINE, DEGRADED, ERROR)"},{"line_number":171,"context_line":"** topology - string enum - (SINGLE, ACTIVE_STANDBY)"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"PUT /loadbalancers/{lb_id}"},{"line_number":174,"context_line":"* Successful Status Code - 202"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_28ea2b10","line":171,"updated":"2015-07-21 00:14:37.000000000","message":"Can you emphasize the new/changed parts?","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c6c6555f79ea96a921e14c0e24675e72e68aabd1","unresolved":false,"context_lines":[{"line_number":215,"context_line":""},{"line_number":216,"context_line":"* The VRRP driver must automatically add a security-rule to the amphoras\u0027"},{"line_number":217,"context_line":"security group to allow VRRP traffic (Protocol number 112) on the same tenant"},{"line_number":218,"context_line":" subnet."},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"* At this point, VRRP shall communicate on the same tenant network. The rational"},{"line_number":221,"context_line":"is to fail-over based on similar network interfaces\u0027 condition which the tenant"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_4830d79e","line":218,"updated":"2015-07-21 00:14:37.000000000","message":"Is there a rule required for the \"peer\" traffic?","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":10850,"name":"German Eichberger","email":"german.eichberger@gmail.com","username":"german"},"change_message_id":"d0b5982ffc3bfed355c0bf29f03cf7fae5464470","unresolved":false,"context_lines":[{"line_number":217,"context_line":"security group to allow VRRP traffic (Protocol number 112) on the same tenant"},{"line_number":218,"context_line":" subnet."},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"* At this point, VRRP shall communicate on the same tenant network. The rational"},{"line_number":221,"context_line":"is to fail-over based on similar network interfaces\u0027 condition which the tenant"},{"line_number":222,"context_line":"operates with. This may create fake fail-overs if the tenant network is under"},{"line_number":223,"context_line":" unplanned heavy traffic. This is still better than failing over, while the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_dd20279e","line":220,"updated":"2015-07-20 23:11:14.000000000","message":"the graph shows an extra network... so I am confused","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c6c6555f79ea96a921e14c0e24675e72e68aabd1","unresolved":false,"context_lines":[{"line_number":222,"context_line":"operates with. This may create fake fail-overs if the tenant network is under"},{"line_number":223,"context_line":" unplanned heavy traffic. This is still better than failing over, while the"},{"line_number":224,"context_line":" master is actually serving tenant\u0027s traffic or not failing over at all if"},{"line_number":225,"context_line":" the master failed."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"* Nothing else at this point. Tenant quotas and allowed topologies shall be"},{"line_number":228,"context_line":"taken into account in a next step."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_488c5735","line":225,"updated":"2015-07-21 00:14:37.000000000","message":"Hmm, interface doesn\u0027t seem like enough.  We should be checking the health of the HAproxy services as wel.","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c6c6555f79ea96a921e14c0e24675e72e68aabd1","unresolved":false,"context_lines":[{"line_number":225,"context_line":" the master failed."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"* Nothing else at this point. Tenant quotas and allowed topologies shall be"},{"line_number":228,"context_line":"taken into account in a next step."},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"Notifications impact"},{"line_number":231,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_88725f48","line":228,"updated":"2015-07-21 00:14:37.000000000","message":"You should talk to the protection of the VRRP traffic here.  Router IDs and pass phrases, etc.\n\nWill the pass phrase be stored in the database to allow amphora rebuilds?","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":10850,"name":"German Eichberger","email":"german.eichberger@gmail.com","username":"german"},"change_message_id":"d0b5982ffc3bfed355c0bf29f03cf7fae5464470","unresolved":false,"context_lines":[{"line_number":235,"context_line":"Other end user impact"},{"line_number":236,"context_line":"---------------------"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"* The neutron client shall support an --enable-active-standby option."},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"* The user shall be able to specify the loadbalancer topology in the Octavia"},{"line_number":241,"context_line":"configuration file (used by default)."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_dd57c700","line":238,"updated":"2015-07-20 23:11:14.000000000","message":"Not sure if that is feasible. Neutron client should stay the same...","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c6c6555f79ea96a921e14c0e24675e72e68aabd1","unresolved":false,"context_lines":[{"line_number":235,"context_line":"Other end user impact"},{"line_number":236,"context_line":"---------------------"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"* The neutron client shall support an --enable-active-standby option."},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"* The user shall be able to specify the loadbalancer topology in the Octavia"},{"line_number":241,"context_line":"configuration file (used by default)."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_48e1b7cf","line":238,"in_reply_to":"3a50d1a3_dd57c700","updated":"2015-07-21 00:14:37.000000000","message":"+1\nI think this is config file / flavors config only","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":10850,"name":"German Eichberger","email":"german.eichberger@gmail.com","username":"german"},"change_message_id":"d0b5982ffc3bfed355c0bf29f03cf7fae5464470","unresolved":false,"context_lines":[{"line_number":237,"context_line":""},{"line_number":238,"context_line":"* The neutron client shall support an --enable-active-standby option."},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"* The user shall be able to specify the loadbalancer topology in the Octavia"},{"line_number":241,"context_line":"configuration file (used by default)."},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_bd3d1bbd","line":240,"updated":"2015-07-20 23:11:14.000000000","message":"say operator instead of user","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c6c6555f79ea96a921e14c0e24675e72e68aabd1","unresolved":false,"context_lines":[{"line_number":237,"context_line":""},{"line_number":238,"context_line":"* The neutron client shall support an --enable-active-standby option."},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"* The user shall be able to specify the loadbalancer topology in the Octavia"},{"line_number":241,"context_line":"configuration file (used by default)."},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_08ebafb1","line":240,"in_reply_to":"3a50d1a3_bd3d1bbd","updated":"2015-07-21 00:14:37.000000000","message":"+1","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c6c6555f79ea96a921e14c0e24675e72e68aabd1","unresolved":false,"context_lines":[{"line_number":243,"context_line":"Performance Impact"},{"line_number":244,"context_line":"------------------"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"The Active Standby consumes at least twice the resources (storage, network,"},{"line_number":247,"context_line":"compute) as required by the Single Topology. Nevertheless, on single amphora"},{"line_number":248,"context_line":"shall be active (i.e. serving end-user) at any point in time. If the Master"},{"line_number":249,"context_line":"amphora is healthy, the backup one shall remain idle until it receives no"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_08108fa7","line":246,"updated":"2015-07-21 00:14:37.000000000","message":"This is not quite true, as the standby will not be writing logs or handling customer traffic...","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c6c6555f79ea96a921e14c0e24675e72e68aabd1","unresolved":false,"context_lines":[{"line_number":248,"context_line":"shall be active (i.e. serving end-user) at any point in time. If the Master"},{"line_number":249,"context_line":"amphora is healthy, the backup one shall remain idle until it receives no"},{"line_number":250,"context_line":"VRRP advertisements from master. Obviously, the backup amphora should not be"},{"line_number":251,"context_line":"in a sleep state."},{"line_number":252,"context_line":""},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"Other deployer impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_c8694727","line":251,"updated":"2015-07-21 00:14:37.000000000","message":"sleep-\u003esuspended?\nMaybe just drop the last sentence","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c6c6555f79ea96a921e14c0e24675e72e68aabd1","unresolved":false,"context_lines":[{"line_number":255,"context_line":"---------------------"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"Discuss things that will affect how you deploy and configure OpenStack"},{"line_number":258,"context_line":"that have not already been mentioned, such as:"},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"* An amphora_topology config option shall be added to the configuration. The"},{"line_number":261,"context_line":"controller worker shall change its taskflow behavior according to the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_e85a0383","line":258,"updated":"2015-07-21 00:14:37.000000000","message":"This is a template sentence..","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c6c6555f79ea96a921e14c0e24675e72e68aabd1","unresolved":false,"context_lines":[{"line_number":259,"context_line":""},{"line_number":260,"context_line":"* An amphora_topology config option shall be added to the configuration. The"},{"line_number":261,"context_line":"controller worker shall change its taskflow behavior according to the"},{"line_number":262,"context_line":"requirement of different topologiesß."},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"* By default, the amphora_topology \u003d SINGLE and the ACTIVE_STANDBY topology"},{"line_number":265,"context_line":"shall be enabled/requested explicitly by tenants."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_a8dcfbe4","line":262,"updated":"2015-07-21 00:14:37.000000000","message":"Extra character here","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c6c6555f79ea96a921e14c0e24675e72e68aabd1","unresolved":false,"context_lines":[{"line_number":262,"context_line":"requirement of different topologiesß."},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"* By default, the amphora_topology \u003d SINGLE and the ACTIVE_STANDBY topology"},{"line_number":265,"context_line":"shall be enabled/requested explicitly by tenants."},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"* The Keepalived version deployed in the amphora image must be newer than 1.2"},{"line_number":268,"context_line":".8 to support unicast VRRP mode."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_c8506761","line":265,"updated":"2015-07-21 00:14:37.000000000","message":"tenants-\u003eoperators","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c6c6555f79ea96a921e14c0e24675e72e68aabd1","unresolved":false,"context_lines":[{"line_number":279,"context_line":"Assignee(s)"},{"line_number":280,"context_line":"-----------"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"Sherif Abdelwahab"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"Work Items"},{"line_number":285,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_68e6f3b5","line":282,"updated":"2015-07-21 00:14:37.000000000","message":"\u003circ handle\u003e","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c6c6555f79ea96a921e14c0e24675e72e68aabd1","unresolved":false,"context_lines":[{"line_number":286,"context_line":""},{"line_number":287,"context_line":"Work items or tasks -- break the feature up into the things that need to be"},{"line_number":288,"context_line":"done to implement it. Those parts might end up being done by different people,"},{"line_number":289,"context_line":"but we\u0027re mostly trying to understand the timeline for implementation."},{"line_number":290,"context_line":""},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_c8fe2738","line":289,"updated":"2015-07-21 00:14:37.000000000","message":"Template sentence.  Should be a list of high level work items.","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"c6c6555f79ea96a921e14c0e24675e72e68aabd1","unresolved":false,"context_lines":[{"line_number":292,"context_line":"Dependencies"},{"line_number":293,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"None."},{"line_number":296,"context_line":""},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3a50d1a3_68827396","line":295,"updated":"2015-07-21 00:14:37.000000000","message":"Keepalived version deployed in the amphora image must be newer than 1.2.8 to support unicast VRRP mode.","commit_id":"86044c33ffa0d2427ec3d80a106f15014d04743f"},{"author":{"_account_id":6437,"name":"Susanne Balle","email":"sleipnir012@gmail.com","username":"susanne-balle"},"change_message_id":"f759f6257f1a3108463191c8c24be8f7724fbb2b","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/octavia/+spec/activepassiveamphora"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This blueprint describes how Octavia implements its Active-Standby"},{"line_number":14,"context_line":"solution. It will describe the high level topology and the proposed code"},{"line_number":15,"context_line":"changes to realize the high availability loadbalancer scenario."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_4c766fa5","line":13,"updated":"2015-07-21 21:47:57.000000000","message":"Nit: Should this be Active_Standby? this is how you wrtoe it in the rest of the spec.","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/octavia/+spec/activepassiveamphora"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This blueprint describes how Octavia implements its Active-Standby"},{"line_number":14,"context_line":"solution. It will describe the high level topology and the proposed code"},{"line_number":15,"context_line":"changes to realize the high availability loadbalancer scenario."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_32b9f879","line":13,"in_reply_to":"3a50d1a3_4c766fa5","updated":"2015-07-22 18:59:40.000000000","message":"Changed to Active/Standby all over the spec.","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","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":"A tenant should be able to start high availability loadbalancer for her"},{"line_number":21,"context_line":"backend services as follows:"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"* The tenant should specify through through octavia configuration file, which"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_c04a45ac","line":20,"updated":"2015-07-21 21:27:53.000000000","message":"I suggest removing the gender-specific word here and any following.  Should use things like \"their\" or \"one\u0027s\" or \"the tenant\u0027s\" for being more specific.  Also, for readability \"should be able to start a high availability\".  Add the \"a\" there.","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","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":"A tenant should be able to start high availability loadbalancer for her"},{"line_number":21,"context_line":"backend services as follows:"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"* The tenant should specify through through octavia configuration file, which"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_9256cc28","line":20,"in_reply_to":"3a50d1a3_c04a45ac","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":6437,"name":"Susanne Balle","email":"sleipnir012@gmail.com","username":"susanne-balle"},"change_message_id":"f759f6257f1a3108463191c8c24be8f7724fbb2b","unresolved":false,"context_lines":[{"line_number":20,"context_line":"A tenant should be able to start high availability loadbalancer for her"},{"line_number":21,"context_line":"backend services as follows:"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"* The tenant should specify through through octavia configuration file, which"},{"line_number":24,"context_line":"  the loadbalancer shall support. An Active_Standby topology shall be"},{"line_number":25,"context_line":"  supported by Octavia in addition to the Single topology that is currently"},{"line_number":26,"context_line":"  supported."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_8cb79739","line":23,"updated":"2015-07-21 21:47:57.000000000","message":"nit: did you meant to write thought twice?","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"e78cc83f2f6491b73362eff12d8369ab1935f138","unresolved":false,"context_lines":[{"line_number":20,"context_line":"A tenant should be able to start high availability loadbalancer for her"},{"line_number":21,"context_line":"backend services as follows:"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"* The tenant should specify through through octavia configuration file, which"},{"line_number":24,"context_line":"  the loadbalancer shall support. An Active_Standby topology shall be"},{"line_number":25,"context_line":"  supported by Octavia in addition to the Single topology that is currently"},{"line_number":26,"context_line":"  supported."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_47716fdf","line":23,"updated":"2015-07-21 19:39:30.000000000","message":"when you say tenant, do you mean deployer/operator in this case? tenant\u0027s shouldn\u0027t have access to octavia configuration files.","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":20,"context_line":"A tenant should be able to start high availability loadbalancer for her"},{"line_number":21,"context_line":"backend services as follows:"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"* The tenant should specify through through octavia configuration file, which"},{"line_number":24,"context_line":"  the loadbalancer shall support. An Active_Standby topology shall be"},{"line_number":25,"context_line":"  supported by Octavia in addition to the Single topology that is currently"},{"line_number":26,"context_line":"  supported."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_b22ae88e","line":23,"in_reply_to":"3a50d1a3_47716fdf","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":20,"context_line":"A tenant should be able to start high availability loadbalancer for her"},{"line_number":21,"context_line":"backend services as follows:"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"* The tenant should specify through through octavia configuration file, which"},{"line_number":24,"context_line":"  the loadbalancer shall support. An Active_Standby topology shall be"},{"line_number":25,"context_line":"  supported by Octavia in addition to the Single topology that is currently"},{"line_number":26,"context_line":"  supported."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_20e8c9b3","line":23,"in_reply_to":"3a50d1a3_47716fdf","updated":"2015-07-21 21:27:53.000000000","message":"For readability: second \"through\" should be \"an\" like so: \"should specify through an octavia configuration...\"","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":20,"context_line":"A tenant should be able to start high availability loadbalancer for her"},{"line_number":21,"context_line":"backend services as follows:"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"* The tenant should specify through through octavia configuration file, which"},{"line_number":24,"context_line":"  the loadbalancer shall support. An Active_Standby topology shall be"},{"line_number":25,"context_line":"  supported by Octavia in addition to the Single topology that is currently"},{"line_number":26,"context_line":"  supported."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_b7438441","line":23,"in_reply_to":"3a50d1a3_47716fdf","updated":"2015-07-22 18:59:40.000000000","message":"Yes I meant deployer/operator.","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":20,"context_line":"A tenant should be able to start high availability loadbalancer for her"},{"line_number":21,"context_line":"backend services as follows:"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"* The tenant should specify through through octavia configuration file, which"},{"line_number":24,"context_line":"  the loadbalancer shall support. An Active_Standby topology shall be"},{"line_number":25,"context_line":"  supported by Octavia in addition to the Single topology that is currently"},{"line_number":26,"context_line":"  supported."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_55010e04","line":23,"in_reply_to":"3a50d1a3_8cb79739","updated":"2015-07-22 18:59:40.000000000","message":"No typo.","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":21,"context_line":"backend services as follows:"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"* The tenant should specify through through octavia configuration file, which"},{"line_number":24,"context_line":"  the loadbalancer shall support. An Active_Standby topology shall be"},{"line_number":25,"context_line":"  supported by Octavia in addition to the Single topology that is currently"},{"line_number":26,"context_line":"  supported."},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_5b838656","line":24,"updated":"2015-07-21 21:27:53.000000000","message":"Standardize on the symbol between \"Active\" and \"Standby\" across the document.  My suggestion, \u0027/\u0027 seems most appropriate.","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":21,"context_line":"backend services as follows:"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"* The tenant should specify through through octavia configuration file, which"},{"line_number":24,"context_line":"  the loadbalancer shall support. An Active_Standby topology shall be"},{"line_number":25,"context_line":"  supported by Octavia in addition to the Single topology that is currently"},{"line_number":26,"context_line":"  supported."},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_953236f1","line":24,"in_reply_to":"3a50d1a3_5b838656","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":26,"context_line":"  supported."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"* In Active_Standby, two Amphorae shall host a replicated configuration of the"},{"line_number":29,"context_line":"  load balancing services. Both amphorae will also deploy an Virtual Router"},{"line_number":30,"context_line":"  Redundancy Protocol (VRRP) implementation [2]."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* Upon failure of the master amphora, the backup one shall seamlessly take over"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_e05f413f","line":29,"updated":"2015-07-21 21:27:53.000000000","message":"For readability: not \"an Virtual Router...\", but \"a Virtual Router....\"","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":26,"context_line":"  supported."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"* In Active_Standby, two Amphorae shall host a replicated configuration of the"},{"line_number":29,"context_line":"  load balancing services. Both amphorae will also deploy an Virtual Router"},{"line_number":30,"context_line":"  Redundancy Protocol (VRRP) implementation [2]."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* Upon failure of the master amphora, the backup one shall seamlessly take over"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_75544afe","line":29,"in_reply_to":"3a50d1a3_e05f413f","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":30,"context_line":"  Redundancy Protocol (VRRP) implementation [2]."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* Upon failure of the master amphora, the backup one shall seamlessly take over"},{"line_number":33,"context_line":"  the load balancing function. After the master amphora changes to a healthy"},{"line_number":34,"context_line":"  status, the backup amphora shall give up the load balancing function to the"},{"line_number":35,"context_line":"  master again."},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_403f15d6","line":33,"updated":"2015-07-21 21:27:53.000000000","message":"nit: \"functions\" should be plural here, and in the next sentence I think, because load balancers have more than one function.  Thoughts?","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":30,"context_line":"  Redundancy Protocol (VRRP) implementation [2]."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* Upon failure of the master amphora, the backup one shall seamlessly take over"},{"line_number":33,"context_line":"  the load balancing function. After the master amphora changes to a healthy"},{"line_number":34,"context_line":"  status, the backup amphora shall give up the load balancing function to the"},{"line_number":35,"context_line":"  master again."},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_b55df216","line":33,"in_reply_to":"3a50d1a3_403f15d6","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":6437,"name":"Susanne Balle","email":"sleipnir012@gmail.com","username":"susanne-balle"},"change_message_id":"f759f6257f1a3108463191c8c24be8f7724fbb2b","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* Upon failure of the master amphora, the backup one shall seamlessly take over"},{"line_number":33,"context_line":"  the load balancing function. After the master amphora changes to a healthy"},{"line_number":34,"context_line":"  status, the backup amphora shall give up the load balancing function to the"},{"line_number":35,"context_line":"  master again."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"* Fail-overs shall be seamless to end-users and fail-over time should be"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_ccdfdf67","line":34,"updated":"2015-07-21 21:47:57.000000000","message":"I am not sure we would fall back to the primary again? Why not just have the failover become the primary? Am I missing something?","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":6437,"name":"Susanne Balle","email":"sleipnir012@gmail.com","username":"susanne-balle"},"change_message_id":"2e6a6a9d981d227296dbc2ef89b7bf7db6b19b01","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* Upon failure of the master amphora, the backup one shall seamlessly take over"},{"line_number":33,"context_line":"  the load balancing function. After the master amphora changes to a healthy"},{"line_number":34,"context_line":"  status, the backup amphora shall give up the load balancing function to the"},{"line_number":35,"context_line":"  master again."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"* Fail-overs shall be seamless to end-users and fail-over time should be"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_6c18d21e","line":34,"in_reply_to":"3a50d1a3_3571e2a8","updated":"2015-07-22 19:16:50.000000000","message":"Fair enough. I still that the switching back could potentially create new issues and instabilities but I can be convinced that we need to switch back. Thx for the examples it clarifies things nicely.","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* Upon failure of the master amphora, the backup one shall seamlessly take over"},{"line_number":33,"context_line":"  the load balancing function. After the master amphora changes to a healthy"},{"line_number":34,"context_line":"  status, the backup amphora shall give up the load balancing function to the"},{"line_number":35,"context_line":"  master again."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"* Fail-overs shall be seamless to end-users and fail-over time should be"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_3571e2a8","line":34,"in_reply_to":"3a50d1a3_ccdfdf67","updated":"2015-07-22 18:59:40.000000000","message":"The VRRP protocol, relies on master election. When the current master fails, all other backup nodes (amphoras in our case) run an election process in which the node with the highest priority assumes the master rule by raising its priority (rfc 3768 - section 3).  In tests, when the master becomes live again, it advertises  a high priority and a MASTER rule which preempts the current backup. \nThe drawback of this behavior is a potential ping-pong if the master is alternating between failures and up state.\n\n1. Master advertise prio 100\n\n19:43:03.057951 IP host-10-0-0-28.openstacklocal \u003e host-10-0-0-27.openstacklocal: VRRPv2, Advertisement, vrid 1, prio 100, authtype simple, intvl 1s, length 20\n\n2. Master interface down\n\n3. Backup detected failure and assume a master role after ~3seconds with prio 50 \n\n19:43:06.864648 IP host-10-0-0-27.openstacklocal \u003e host-10-0-0-28.openstacklocal: VRRPv2, Advertisement, vrid 1, prio 50, authtype simple, intvl 1s, length 20\n19:43:07.878262 IP host-10-0-0-27.openstacklocal \u003e host-10-0-0-28.openstacklocal: VRRPv2, Advertisement, vrid 1, prio 50, authtype simple, intvl 1s, length 20\n\n4. Master became alive again and advertised prio 100 (notice election packets)\n\n19:43:13.890650 IP host-10-0-0-27.openstacklocal \u003e host-10-0-0-28.openstacklocal: VRRPv2, Advertisement, vrid 1, prio 50, authtype simple, intvl 1s, length 20\n19:43:25.918198 IP host-10-0-0-28.openstacklocal \u003e host-10-0-0-27.openstacklocal: VRRPv2, Advertisement, vrid 1, prio 100, authtype simple, intvl 1s, length 20\n19:43:25.919757 IP host-10-0-0-28.openstacklocal \u003e host-10-0-0-27.openstacklocal: VRRPv2, Advertisement, vrid 1, prio 100, authtype simple, intvl 1s, length 20\n19:43:25.919794 IP host-10-0-0-28.openstacklocal \u003e host-10-0-0-27.openstacklocal: VRRPv2, Advertisement, vrid 1, prio 100, authtype simple, intvl 1s, length 20\n19:43:25.920761 IP host-10-0-0-27.openstacklocal \u003e host-10-0-0-28.openstacklocal: VRRPv2, Advertisement, vrid 1, prio 50, authtype simple, intvl 1s, length 20\n19:43:25.922023 IP host-10-0-0-27.openstacklocal \u003e host-10-0-0-28.openstacklocal: VRRPv2, Advertisement, vrid 1, prio 50, authtype simple, intvl 1s, length 20\n19:43:25.923815 IP host-10-0-0-27.openstacklocal \u003e host-10-0-0-28.openstacklocal: VRRPv2, Advertisement, vrid 1, prio 50, authtype simple, intvl 1s, length 20\n\n5. Backup give up service again to Master after ~ 3 seconds.\n\n19:43:25.926259 IP host-10-0-0-28.openstacklocal \u003e host-10-0-0-27.openstacklocal: VRRPv2, Advertisement, vrid 1, prio 100, authtype simple, intvl 1s, length 20\n19:43:25.930090 IP host-10-0-0-28.openstacklocal \u003e host-10-0-0-27.openstacklocal: VRRPv2, Advertisement, vrid 1, prio 100, authtype simple, intvl 1s, length 20","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":6437,"name":"Susanne Balle","email":"sleipnir012@gmail.com","username":"susanne-balle"},"change_message_id":"f759f6257f1a3108463191c8c24be8f7724fbb2b","unresolved":false,"context_lines":[{"line_number":54,"context_line":"▼─▼─────────────▲────┼───▼─▲────▼─▲─┤     Router      │    IP    │         │"},{"line_number":55,"context_line":"▲───────────────┼────┼─────┼──────┼─┤Floating \u003c-\u003e VIP ◀──────────┤ Internet│"},{"line_number":56,"context_line":"│  Management   │    ▼ ▲   │      │ │                 │          │         │"},{"line_number":57,"context_line":"│    (MNG)      │      │   │      │ └─────────────────┘          └─────────┘"},{"line_number":58,"context_line":"│     Net.      │   ┌──┴──┬┴────┐ │"},{"line_number":59,"context_line":"│           Paired  │MGMT │VRRP │ │"},{"line_number":60,"context_line":"│               │   │ IP  │ IP2 │ │"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_cc4d9f3f","line":57,"updated":"2015-07-21 21:47:57.000000000","message":"Is this suppose to be: MGMT","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":54,"context_line":"▼─▼─────────────▲────┼───▼─▲────▼─▲─┤     Router      │    IP    │         │"},{"line_number":55,"context_line":"▲───────────────┼────┼─────┼──────┼─┤Floating \u003c-\u003e VIP ◀──────────┤ Internet│"},{"line_number":56,"context_line":"│  Management   │    ▼ ▲   │      │ │                 │          │         │"},{"line_number":57,"context_line":"│    (MNG)      │      │   │      │ └─────────────────┘          └─────────┘"},{"line_number":58,"context_line":"│     Net.      │   ┌──┴──┬┴────┐ │"},{"line_number":59,"context_line":"│           Paired  │MGMT │VRRP │ │"},{"line_number":60,"context_line":"│               │   │ IP  │ IP2 │ │"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_15a38601","line":57,"in_reply_to":"3a50d1a3_cc4d9f3f","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":75,"context_line":"Proposed change"},{"line_number":76,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"The Active/Standby loadbalancers require the following high level changes:"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"* Add support of VRRP in the amphora base image through Keepalived."},{"line_number":81,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_1b217e9f","line":78,"updated":"2015-07-21 21:27:53.000000000","message":"Use the standardized symbol between \"Active\" and \"Active\" decided upon above.","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":75,"context_line":"Proposed change"},{"line_number":76,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"The Active/Standby loadbalancers require the following high level changes:"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"* Add support of VRRP in the amphora base image through Keepalived."},{"line_number":81,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_f5ae1ae5","line":78,"in_reply_to":"3a50d1a3_1b217e9f","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"e78cc83f2f6491b73362eff12d8369ab1935f138","unresolved":false,"context_lines":[{"line_number":80,"context_line":"* Add support of VRRP in the amphora base image through Keepalived."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"* Extend the controller worker to be able to spawn N amphorae associated with"},{"line_number":83,"context_line":"  the same loadbalancer with the same VIP on N different compute nodes (This"},{"line_number":84,"context_line":"  takes into account future work on Active-Active topology). These amphorae"},{"line_number":85,"context_line":"  shall replicate the same listeners, and pools configuration. Note: a"},{"line_number":86,"context_line":"  topology is a property of a loadbalancer and not of one of its amphorae."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_aa1efa60","line":83,"updated":"2015-07-21 19:39:30.000000000","message":"spawning amphorae with the same VIP will be an issue for what we are doing.  If this is just a matter of changing a flow and/or task, then this will be fine.  If this is something assumed in all of the code then that will be an issue.  I don\u0027t think this will happen, but just mentioning it.","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":80,"context_line":"* Add support of VRRP in the amphora base image through Keepalived."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"* Extend the controller worker to be able to spawn N amphorae associated with"},{"line_number":83,"context_line":"  the same loadbalancer with the same VIP on N different compute nodes (This"},{"line_number":84,"context_line":"  takes into account future work on Active-Active topology). These amphorae"},{"line_number":85,"context_line":"  shall replicate the same listeners, and pools configuration. Note: a"},{"line_number":86,"context_line":"  topology is a property of a loadbalancer and not of one of its amphorae."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_95bc7607","line":83,"in_reply_to":"3a50d1a3_aa1efa60","updated":"2015-07-22 18:59:40.000000000","message":"It will be an issue for Active/Active topology I guess or multi-master Active/Standby. This does not mean that the same VIP is plugged to to all amphoras. I think neutron will not allow this. It means that two amphoras, shall be allowed to use the same VIP though \"allow address pairing\". Note the pair word in the diagram. Rewrote this part for clarity.","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":81,"context_line":""},{"line_number":82,"context_line":"* Extend the controller worker to be able to spawn N amphorae associated with"},{"line_number":83,"context_line":"  the same loadbalancer with the same VIP on N different compute nodes (This"},{"line_number":84,"context_line":"  takes into account future work on Active-Active topology). These amphorae"},{"line_number":85,"context_line":"  shall replicate the same listeners, and pools configuration. Note: a"},{"line_number":86,"context_line":"  topology is a property of a loadbalancer and not of one of its amphorae."},{"line_number":87,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_3ba9dadf","line":84,"updated":"2015-07-21 21:27:53.000000000","message":"Use the standardized symbol between \"Active\" and \"Active\" decided upon above.","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":81,"context_line":""},{"line_number":82,"context_line":"* Extend the controller worker to be able to spawn N amphorae associated with"},{"line_number":83,"context_line":"  the same loadbalancer with the same VIP on N different compute nodes (This"},{"line_number":84,"context_line":"  takes into account future work on Active-Active topology). These amphorae"},{"line_number":85,"context_line":"  shall replicate the same listeners, and pools configuration. Note: a"},{"line_number":86,"context_line":"  topology is a property of a loadbalancer and not of one of its amphorae."},{"line_number":87,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_b5b97217","line":84,"in_reply_to":"3a50d1a3_3ba9dadf","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":82,"context_line":"* Extend the controller worker to be able to spawn N amphorae associated with"},{"line_number":83,"context_line":"  the same loadbalancer with the same VIP on N different compute nodes (This"},{"line_number":84,"context_line":"  takes into account future work on Active-Active topology). These amphorae"},{"line_number":85,"context_line":"  shall replicate the same listeners, and pools configuration. Note: a"},{"line_number":86,"context_line":"  topology is a property of a loadbalancer and not of one of its amphorae."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"* Extend the amphora driver interface, the amphora REST/SSH driver, and Jinja"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_7b6202af","line":85,"updated":"2015-07-21 21:27:53.000000000","message":"nit: \u0027a\u0027 is not needed here.  just \"topology is a property of a....\" is fine.  (not -1 worthy)","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":82,"context_line":"* Extend the controller worker to be able to spawn N amphorae associated with"},{"line_number":83,"context_line":"  the same loadbalancer with the same VIP on N different compute nodes (This"},{"line_number":84,"context_line":"  takes into account future work on Active-Active topology). These amphorae"},{"line_number":85,"context_line":"  shall replicate the same listeners, and pools configuration. Note: a"},{"line_number":86,"context_line":"  topology is a property of a loadbalancer and not of one of its amphorae."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"* Extend the amphora driver interface, the amphora REST/SSH driver, and Jinja"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_b55092d5","line":85,"in_reply_to":"3a50d1a3_7b6202af","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":83,"context_line":"  the same loadbalancer with the same VIP on N different compute nodes (This"},{"line_number":84,"context_line":"  takes into account future work on Active-Active topology). These amphorae"},{"line_number":85,"context_line":"  shall replicate the same listeners, and pools configuration. Note: a"},{"line_number":86,"context_line":"  topology is a property of a loadbalancer and not of one of its amphorae."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"* Extend the amphora driver interface, the amphora REST/SSH driver, and Jinja"},{"line_number":89,"context_line":"  configuration templates for the newly introduced VRRP service [4]."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_3b131a0f","line":86,"updated":"2015-07-21 21:27:53.000000000","message":"For readability:  \"property of a load balancer and not its amphorae\"","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":83,"context_line":"  the same loadbalancer with the same VIP on N different compute nodes (This"},{"line_number":84,"context_line":"  takes into account future work on Active-Active topology). These amphorae"},{"line_number":85,"context_line":"  shall replicate the same listeners, and pools configuration. Note: a"},{"line_number":86,"context_line":"  topology is a property of a loadbalancer and not of one of its amphorae."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"* Extend the amphora driver interface, the amphora REST/SSH driver, and Jinja"},{"line_number":89,"context_line":"  configuration templates for the newly introduced VRRP service [4]."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_d5743e69","line":86,"in_reply_to":"3a50d1a3_3b131a0f","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":85,"context_line":"  shall replicate the same listeners, and pools configuration. Note: a"},{"line_number":86,"context_line":"  topology is a property of a loadbalancer and not of one of its amphorae."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"* Extend the amphora driver interface, the amphora REST/SSH driver, and Jinja"},{"line_number":89,"context_line":"  configuration templates for the newly introduced VRRP service [4]."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"* Develop a Keepalived amphora driver."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_7b8c4235","line":88,"updated":"2015-07-21 21:27:53.000000000","message":"For readability: add the \u0027s\u0027 as follows:  \"the amphora REST/SSH drivers,\"","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":85,"context_line":"  shall replicate the same listeners, and pools configuration. Note: a"},{"line_number":86,"context_line":"  topology is a property of a loadbalancer and not of one of its amphorae."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"* Extend the amphora driver interface, the amphora REST/SSH driver, and Jinja"},{"line_number":89,"context_line":"  configuration templates for the newly introduced VRRP service [4]."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"* Develop a Keepalived amphora driver."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_b56732b6","line":88,"in_reply_to":"3a50d1a3_7b8c4235","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":88,"context_line":"* Extend the amphora driver interface, the amphora REST/SSH driver, and Jinja"},{"line_number":89,"context_line":"  configuration templates for the newly introduced VRRP service [4]."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"* Develop a Keepalived amphora driver."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"* Extend the network driver to become aware of the different loadbalancer"},{"line_number":94,"context_line":"  topologies and add support of network creations. The network driver shall"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_5b05c677","line":91,"updated":"2015-07-21 21:27:53.000000000","message":"What does this mean exactly?  Keepalived will be a valid driver to configure an amphora?  Like setting up directories, uploading PEM files, etc etc?","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":88,"context_line":"* Extend the amphora driver interface, the amphora REST/SSH driver, and Jinja"},{"line_number":89,"context_line":"  configuration templates for the newly introduced VRRP service [4]."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"* Develop a Keepalived amphora driver."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"* Extend the network driver to become aware of the different loadbalancer"},{"line_number":94,"context_line":"  topologies and add support of network creations. The network driver shall"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_750c4aed","line":91,"in_reply_to":"3a50d1a3_5b05c677","updated":"2015-07-22 18:59:40.000000000","message":"Changed to keepalived driver. To configure the keepalived service.","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":91,"context_line":"* Develop a Keepalived amphora driver."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"* Extend the network driver to become aware of the different loadbalancer"},{"line_number":94,"context_line":"  topologies and add support of network creations. The network driver shall"},{"line_number":95,"context_line":"  also pair the different amphorae in a given topology to the same VIP address."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"* Extend the controller worker to build the right flow/sub-flows according to"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_9bab4e1d","line":94,"updated":"2015-07-21 21:27:53.000000000","message":"For readability: \"and add support for network creation.\"","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":91,"context_line":"* Develop a Keepalived amphora driver."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"* Extend the network driver to become aware of the different loadbalancer"},{"line_number":94,"context_line":"  topologies and add support of network creations. The network driver shall"},{"line_number":95,"context_line":"  also pair the different amphorae in a given topology to the same VIP address."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"* Extend the controller worker to build the right flow/sub-flows according to"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_3512420a","line":94,"in_reply_to":"3a50d1a3_9bab4e1d","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":94,"context_line":"  topologies and add support of network creations. The network driver shall"},{"line_number":95,"context_line":"  also pair the different amphorae in a given topology to the same VIP address."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"* Extend the controller worker to build the right flow/sub-flows according to"},{"line_number":98,"context_line":"  the given topology. The controller worker also is responsible of creating the"},{"line_number":99,"context_line":"  correct stores needed by other sub-flows."},{"line_number":100,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_7603f70d","line":97,"updated":"2015-07-21 21:27:53.000000000","message":"nit: I don\u0027t think the distinction between \"flows/sub-flows\" is really necessary for documentation.  If you decide to keep it, add \"flows/\" to the end of this paragraph, behind \"sub-flows.\"","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":94,"context_line":"  topologies and add support of network creations. The network driver shall"},{"line_number":95,"context_line":"  also pair the different amphorae in a given topology to the same VIP address."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"* Extend the controller worker to build the right flow/sub-flows according to"},{"line_number":98,"context_line":"  the given topology. The controller worker also is responsible of creating the"},{"line_number":99,"context_line":"  correct stores needed by other sub-flows."},{"line_number":100,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_7533eaab","line":97,"in_reply_to":"3a50d1a3_7603f70d","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":95,"context_line":"  also pair the different amphorae in a given topology to the same VIP address."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"* Extend the controller worker to build the right flow/sub-flows according to"},{"line_number":98,"context_line":"  the given topology. The controller worker also is responsible of creating the"},{"line_number":99,"context_line":"  correct stores needed by other sub-flows."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"* Extend the Octavia configuration and Operator APIs support the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_1b3c1ee1","line":98,"updated":"2015-07-21 21:27:53.000000000","message":"For readability:  \"worker is also responsible for creating\"","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":95,"context_line":"  also pair the different amphorae in a given topology to the same VIP address."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"* Extend the controller worker to build the right flow/sub-flows according to"},{"line_number":98,"context_line":"  the given topology. The controller worker also is responsible of creating the"},{"line_number":99,"context_line":"  correct stores needed by other sub-flows."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"* Extend the Octavia configuration and Operator APIs support the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_f51ffa05","line":98,"in_reply_to":"3a50d1a3_1b3c1ee1","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":98,"context_line":"  the given topology. The controller worker also is responsible of creating the"},{"line_number":99,"context_line":"  correct stores needed by other sub-flows."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"* Extend the Octavia configuration and Operator APIs support the"},{"line_number":102,"context_line":"  Active/Standby topology."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"* MINOR: Extend the Health Manager to be aware of the role of the amphora"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_16587331","line":101,"updated":"2015-07-21 21:27:53.000000000","message":"Are there multiple Operator APIs?  For readability:  \"Operator API to support\"","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":98,"context_line":"  the given topology. The controller worker also is responsible of creating the"},{"line_number":99,"context_line":"  correct stores needed by other sub-flows."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"* Extend the Octavia configuration and Operator APIs support the"},{"line_number":102,"context_line":"  Active/Standby topology."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"* MINOR: Extend the Health Manager to be aware of the role of the amphora"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_75da0a4e","line":101,"in_reply_to":"3a50d1a3_16587331","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"* MINOR: Extend the Health Manager to be aware of the role of the amphora"},{"line_number":105,"context_line":"  (Master/Backup) [9]. If the health manager decided to spawn a new amphora"},{"line_number":106,"context_line":"  instance to replace an unhealthy one  (while a backup amphora is already in"},{"line_number":107,"context_line":"  service) it must replicate the same VRRP priorities, ids, and authentication"},{"line_number":108,"context_line":"  credentials to keep the loadbalancer in its meant configuration. Listeners"},{"line_number":109,"context_line":"  associated with this load balancer shall by put in a DEGRADED"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_769f77b4","line":106,"updated":"2015-07-21 21:27:53.000000000","message":"\"instance\" isn\u0027t necessary here.  nit: no two spaces after \"unhealthy one\", and add a comma after the closing parenthesis.","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"* MINOR: Extend the Health Manager to be aware of the role of the amphora"},{"line_number":105,"context_line":"  (Master/Backup) [9]. If the health manager decided to spawn a new amphora"},{"line_number":106,"context_line":"  instance to replace an unhealthy one  (while a backup amphora is already in"},{"line_number":107,"context_line":"  service) it must replicate the same VRRP priorities, ids, and authentication"},{"line_number":108,"context_line":"  credentials to keep the loadbalancer in its meant configuration. Listeners"},{"line_number":109,"context_line":"  associated with this load balancer shall by put in a DEGRADED"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_b5c3b256","line":106,"in_reply_to":"3a50d1a3_769f77b4","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":105,"context_line":"  (Master/Backup) [9]. If the health manager decided to spawn a new amphora"},{"line_number":106,"context_line":"  instance to replace an unhealthy one  (while a backup amphora is already in"},{"line_number":107,"context_line":"  service) it must replicate the same VRRP priorities, ids, and authentication"},{"line_number":108,"context_line":"  credentials to keep the loadbalancer in its meant configuration. Listeners"},{"line_number":109,"context_line":"  associated with this load balancer shall by put in a DEGRADED"},{"line_number":110,"context_line":"  provisioning_state."},{"line_number":111,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_d669abbf","line":108,"updated":"2015-07-21 21:27:53.000000000","message":"For readability:  \"meant\" could be replaced with \"appropriate\"","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":105,"context_line":"  (Master/Backup) [9]. If the health manager decided to spawn a new amphora"},{"line_number":106,"context_line":"  instance to replace an unhealthy one  (while a backup amphora is already in"},{"line_number":107,"context_line":"  service) it must replicate the same VRRP priorities, ids, and authentication"},{"line_number":108,"context_line":"  credentials to keep the loadbalancer in its meant configuration. Listeners"},{"line_number":109,"context_line":"  associated with this load balancer shall by put in a DEGRADED"},{"line_number":110,"context_line":"  provisioning_state."},{"line_number":111,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_15a94690","line":108,"in_reply_to":"3a50d1a3_d669abbf","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":106,"context_line":"  instance to replace an unhealthy one  (while a backup amphora is already in"},{"line_number":107,"context_line":"  service) it must replicate the same VRRP priorities, ids, and authentication"},{"line_number":108,"context_line":"  credentials to keep the loadbalancer in its meant configuration. Listeners"},{"line_number":109,"context_line":"  associated with this load balancer shall by put in a DEGRADED"},{"line_number":110,"context_line":"  provisioning_state."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_56383ba0","line":109,"updated":"2015-07-21 21:27:53.000000000","message":"replace \"by\" with \"be\"","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":106,"context_line":"  instance to replace an unhealthy one  (while a backup amphora is already in"},{"line_number":107,"context_line":"  service) it must replicate the same VRRP priorities, ids, and authentication"},{"line_number":108,"context_line":"  credentials to keep the loadbalancer in its meant configuration. Listeners"},{"line_number":109,"context_line":"  associated with this load balancer shall by put in a DEGRADED"},{"line_number":110,"context_line":"  provisioning_state."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_d5975e46","line":109,"in_reply_to":"3a50d1a3_56383ba0","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":107,"context_line":"  service) it must replicate the same VRRP priorities, ids, and authentication"},{"line_number":108,"context_line":"  credentials to keep the loadbalancer in its meant configuration. Listeners"},{"line_number":109,"context_line":"  associated with this load balancer shall by put in a DEGRADED"},{"line_number":110,"context_line":"  provisioning_state."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Alternatives"},{"line_number":113,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_b6517fda","line":110,"updated":"2015-07-21 21:27:53.000000000","message":"replace \"_\" with \" \"","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":107,"context_line":"  service) it must replicate the same VRRP priorities, ids, and authentication"},{"line_number":108,"context_line":"  credentials to keep the loadbalancer in its meant configuration. Listeners"},{"line_number":109,"context_line":"  associated with this load balancer shall by put in a DEGRADED"},{"line_number":110,"context_line":"  provisioning_state."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Alternatives"},{"line_number":113,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_f594da43","line":110,"in_reply_to":"3a50d1a3_b6517fda","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":112,"context_line":"Alternatives"},{"line_number":113,"context_line":"------------"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"We cloud use heartbeat as an alternative to VRRP, which is also a widely"},{"line_number":116,"context_line":"adopted solution. Heartbeat suits better redundant file servers, filesystems,"},{"line_number":117,"context_line":"and databases rather than network services such as routers, firewalls, and"},{"line_number":118,"context_line":"loadbalancers. Willy Tarreau, the creator of Haproxy, provides a detailed view"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_36132f0f","line":115,"updated":"2015-07-21 21:27:53.000000000","message":"For readability:  pluralize heartbeat.","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":112,"context_line":"Alternatives"},{"line_number":113,"context_line":"------------"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"We cloud use heartbeat as an alternative to VRRP, which is also a widely"},{"line_number":116,"context_line":"adopted solution. Heartbeat suits better redundant file servers, filesystems,"},{"line_number":117,"context_line":"and databases rather than network services such as routers, firewalls, and"},{"line_number":118,"context_line":"loadbalancers. Willy Tarreau, the creator of Haproxy, provides a detailed view"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_959d5668","line":115,"in_reply_to":"3a50d1a3_36132f0f","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":113,"context_line":"------------"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"We cloud use heartbeat as an alternative to VRRP, which is also a widely"},{"line_number":116,"context_line":"adopted solution. Heartbeat suits better redundant file servers, filesystems,"},{"line_number":117,"context_line":"and databases rather than network services such as routers, firewalls, and"},{"line_number":118,"context_line":"loadbalancers. Willy Tarreau, the creator of Haproxy, provides a detailed view"},{"line_number":119,"context_line":"on the major differences between heartbeat and VRRP in [5]."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_16271365","line":116,"updated":"2015-07-21 21:27:53.000000000","message":"For readability:  \"Heartbeats better suit redundant\"","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":113,"context_line":"------------"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"We cloud use heartbeat as an alternative to VRRP, which is also a widely"},{"line_number":116,"context_line":"adopted solution. Heartbeat suits better redundant file servers, filesystems,"},{"line_number":117,"context_line":"and databases rather than network services such as routers, firewalls, and"},{"line_number":118,"context_line":"loadbalancers. Willy Tarreau, the creator of Haproxy, provides a detailed view"},{"line_number":119,"context_line":"on the major differences between heartbeat and VRRP in [5]."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_55910e46","line":116,"in_reply_to":"3a50d1a3_16271365","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":116,"context_line":"adopted solution. Heartbeat suits better redundant file servers, filesystems,"},{"line_number":117,"context_line":"and databases rather than network services such as routers, firewalls, and"},{"line_number":118,"context_line":"loadbalancers. Willy Tarreau, the creator of Haproxy, provides a detailed view"},{"line_number":119,"context_line":"on the major differences between heartbeat and VRRP in [5]."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"Data model impact"},{"line_number":122,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_96f243d1","line":119,"updated":"2015-07-21 21:27:53.000000000","message":"Curious: is it necessary to site a source for an alternative?","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"47c3d32c5de1381a52ce0ff1cb0902cfd5913b19","unresolved":false,"context_lines":[{"line_number":116,"context_line":"adopted solution. Heartbeat suits better redundant file servers, filesystems,"},{"line_number":117,"context_line":"and databases rather than network services such as routers, firewalls, and"},{"line_number":118,"context_line":"loadbalancers. Willy Tarreau, the creator of Haproxy, provides a detailed view"},{"line_number":119,"context_line":"on the major differences between heartbeat and VRRP in [5]."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"Data model impact"},{"line_number":122,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_8c53de38","line":119,"in_reply_to":"3a50d1a3_75bd2ab6","updated":"2015-07-22 19:28:44.000000000","message":"Yeah, sounds good to me.","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":116,"context_line":"adopted solution. Heartbeat suits better redundant file servers, filesystems,"},{"line_number":117,"context_line":"and databases rather than network services such as routers, firewalls, and"},{"line_number":118,"context_line":"loadbalancers. Willy Tarreau, the creator of Haproxy, provides a detailed view"},{"line_number":119,"context_line":"on the major differences between heartbeat and VRRP in [5]."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"Data model impact"},{"line_number":122,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_75bd2ab6","line":119,"in_reply_to":"3a50d1a3_96f243d1","updated":"2015-07-22 18:59:40.000000000","message":"I don\u0027t know if it is necessary or not. We had some discussions about heartbeats, and I thought including can be a good idea.","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":124,"context_line":"The data model of the Octavia database shall be impacted as follows:"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"* A new column in the load_balancer table shall indicate its topology. The"},{"line_number":127,"context_line":"  tolpology field takes values from: SINGLE, or ACTIVE_STANDBY"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* A new column in the amphora table shall indicate an amphora\u0027s role in the"},{"line_number":130,"context_line":"  topology. If the topology is SINGLE, the amphora role shall be STANDALONE. If"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_96dc8313","line":127,"updated":"2015-07-21 21:27:53.000000000","message":"typo:  \"topology\"","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":124,"context_line":"The data model of the Octavia database shall be impacted as follows:"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"* A new column in the load_balancer table shall indicate its topology. The"},{"line_number":127,"context_line":"  tolpology field takes values from: SINGLE, or ACTIVE_STANDBY"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* A new column in the amphora table shall indicate an amphora\u0027s role in the"},{"line_number":130,"context_line":"  topology. If the topology is SINGLE, the amphora role shall be STANDALONE. If"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_95c23633","line":127,"in_reply_to":"3a50d1a3_96dc8313","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"e78cc83f2f6491b73362eff12d8369ab1935f138","unresolved":false,"context_lines":[{"line_number":129,"context_line":"* A new column in the amphora table shall indicate an amphora\u0027s role in the"},{"line_number":130,"context_line":"  topology. If the topology is SINGLE, the amphora role shall be STANDALONE. If"},{"line_number":131,"context_line":"  the topology is ACTIVE_STANDBY, the amphora role shall be either MASTER or"},{"line_number":132,"context_line":"  BACKUP."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"* New value tables for the loadbalancer topology and the amphorae roles."},{"line_number":135,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_6aea3211","line":132,"updated":"2015-07-21 19:39:30.000000000","message":"this should be fine for ACTIVE_ACTIVE as we\u0027ll just use MASTER role for all amphorae or just create a new role.","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":129,"context_line":"* A new column in the amphora table shall indicate an amphora\u0027s role in the"},{"line_number":130,"context_line":"  topology. If the topology is SINGLE, the amphora role shall be STANDALONE. If"},{"line_number":131,"context_line":"  the topology is ACTIVE_STANDBY, the amphora role shall be either MASTER or"},{"line_number":132,"context_line":"  BACKUP."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"* New value tables for the loadbalancer topology and the amphorae roles."},{"line_number":135,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_35ea42ad","line":132,"in_reply_to":"3a50d1a3_6aea3211","updated":"2015-07-22 18:59:40.000000000","message":"Added: The role field will also be of use for the Active/Active topology.","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":137,"context_line":"REST API impact"},{"line_number":138,"context_line":"---------------"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"** Changes to operator APIs: see [10] **"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"POST /loadbalancers"},{"line_number":143,"context_line":"* Successful Status Code - 202"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_562cbb01","line":140,"updated":"2015-07-21 21:27:53.000000000","message":"From before: are there multiple operator APIs?","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":137,"context_line":"REST API impact"},{"line_number":138,"context_line":"---------------"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"** Changes to operator APIs: see [10] **"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"POST /loadbalancers"},{"line_number":143,"context_line":"* Successful Status Code - 202"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_d5419eaa","line":140,"in_reply_to":"3a50d1a3_562cbb01","updated":"2015-07-22 18:59:40.000000000","message":"Corrected.","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"e78cc83f2f6491b73362eff12d8369ab1935f138","unresolved":false,"context_lines":[{"line_number":146,"context_line":"*** net_port_id - uuid"},{"line_number":147,"context_line":"*** subnet_id - uuid"},{"line_number":148,"context_line":"*** floating_ip_id - uuid"},{"line_number":149,"context_line":"*** floating_ip_network_id - uuid"},{"line_number":150,"context_line":"** tenant_id - string - optional - default \"0\" * 36 (for now)"},{"line_number":151,"context_line":"** name - string - optional - default null"},{"line_number":152,"context_line":"** description - string - optional - default null"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_ea4c0244","line":149,"updated":"2015-07-21 19:39:30.000000000","message":"are you adding floating_ip and all of that to the API or just copy pasting this from another blueprint that has not been updated by yours truly?","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":146,"context_line":"*** net_port_id - uuid"},{"line_number":147,"context_line":"*** subnet_id - uuid"},{"line_number":148,"context_line":"*** floating_ip_id - uuid"},{"line_number":149,"context_line":"*** floating_ip_network_id - uuid"},{"line_number":150,"context_line":"** tenant_id - string - optional - default \"0\" * 36 (for now)"},{"line_number":151,"context_line":"** name - string - optional - default null"},{"line_number":152,"context_line":"** description - string - optional - default null"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_b51bb2c9","line":149,"in_reply_to":"3a50d1a3_ea4c0244","updated":"2015-07-22 18:59:40.000000000","message":"I didn\u0027t not update the other blueprint. I just included the relevant methods here and included the change (topology field). I will update all other relevant blueprints as I proceed with code.","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":210,"context_line":"Security impact"},{"line_number":211,"context_line":"---------------"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"* The VRRP driver must automatically add a security-rule to the amphoras\u0027"},{"line_number":214,"context_line":"  security group to allow VRRP traffic (Protocol number 112) on the same tenant"},{"line_number":215,"context_line":"  subnet."},{"line_number":216,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_16a07342","line":213,"updated":"2015-07-21 21:27:53.000000000","message":"For readability:  \"add a security group rule to\"  typo:  \"amphora\u0027s\"","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":210,"context_line":"Security impact"},{"line_number":211,"context_line":"---------------"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"* The VRRP driver must automatically add a security-rule to the amphoras\u0027"},{"line_number":214,"context_line":"  security group to allow VRRP traffic (Protocol number 112) on the same tenant"},{"line_number":215,"context_line":"  subnet."},{"line_number":216,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_d56f5e29","line":213,"in_reply_to":"3a50d1a3_16a07342","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":214,"context_line":"  security group to allow VRRP traffic (Protocol number 112) on the same tenant"},{"line_number":215,"context_line":"  subnet."},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"* The VRRP driver shall automatically add a security-rule to allow"},{"line_number":218,"context_line":"  Authentication Header traffic (Protocol number 51)."},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"* VRRP driver shall support authentication-type MD5."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_b6a65f51","line":217,"updated":"2015-07-21 21:27:53.000000000","message":"For readability:  \"add a security group rule to\"","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":214,"context_line":"  security group to allow VRRP traffic (Protocol number 112) on the same tenant"},{"line_number":215,"context_line":"  subnet."},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"* The VRRP driver shall automatically add a security-rule to allow"},{"line_number":218,"context_line":"  Authentication Header traffic (Protocol number 51)."},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"* VRRP driver shall support authentication-type MD5."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_75676a4d","line":217,"in_reply_to":"3a50d1a3_b6a65f51","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":219,"context_line":""},{"line_number":220,"context_line":"* VRRP driver shall support authentication-type MD5."},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"* The HAProxy driver must be updated to automatically add a security-rule"},{"line_number":223,"context_line":"  that allows multi-master peers to synchronize their states."},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"* Currently HAProxy **does not** support peer authentication and state sync"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_166e3301","line":222,"updated":"2015-07-21 21:27:53.000000000","message":"For readability:  \"add a security group rule that\"","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":219,"context_line":""},{"line_number":220,"context_line":"* VRRP driver shall support authentication-type MD5."},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"* The HAProxy driver must be updated to automatically add a security-rule"},{"line_number":223,"context_line":"  that allows multi-master peers to synchronize their states."},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"* Currently HAProxy **does not** support peer authentication and state sync"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_355d6279","line":222,"in_reply_to":"3a50d1a3_166e3301","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":222,"context_line":"* The HAProxy driver must be updated to automatically add a security-rule"},{"line_number":223,"context_line":"  that allows multi-master peers to synchronize their states."},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"* Currently HAProxy **does not** support peer authentication and state sync"},{"line_number":226,"context_line":"  messages are in plaintext."},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"* At this point, VRRP shall communicate on the same tenant network."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_1645d36e","line":225,"updated":"2015-07-21 21:27:53.000000000","message":"For readability: \"authentication, and state sync\"","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":222,"context_line":"* The HAProxy driver must be updated to automatically add a security-rule"},{"line_number":223,"context_line":"  that allows multi-master peers to synchronize their states."},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"* Currently HAProxy **does not** support peer authentication and state sync"},{"line_number":226,"context_line":"  messages are in plaintext."},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"* At this point, VRRP shall communicate on the same tenant network."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_d5567e5b","line":225,"in_reply_to":"3a50d1a3_1645d36e","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":226,"context_line":"  messages are in plaintext."},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"* At this point, VRRP shall communicate on the same tenant network."},{"line_number":229,"context_line":"  The rational is to fail-over based on similar network interfaces\u0027 condition"},{"line_number":230,"context_line":"  which the tenant operates with. This may create fake fail-overs if the"},{"line_number":231,"context_line":"  tenant network is under unplanned heavy traffic. This is still better than"},{"line_number":232,"context_line":"  failing over, while the master is actually serving tenant\u0027s traffic or not"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_96300303","line":229,"updated":"2015-07-21 21:27:53.000000000","message":"For readability:  \"The rationale is to fail-over based on a similar network interface\u0027s condition with which the tenant operates.\"","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":226,"context_line":"  messages are in plaintext."},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"* At this point, VRRP shall communicate on the same tenant network."},{"line_number":229,"context_line":"  The rational is to fail-over based on similar network interfaces\u0027 condition"},{"line_number":230,"context_line":"  which the tenant operates with. This may create fake fail-overs if the"},{"line_number":231,"context_line":"  tenant network is under unplanned heavy traffic. This is still better than"},{"line_number":232,"context_line":"  failing over, while the master is actually serving tenant\u0027s traffic or not"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_f5da9ae7","line":229,"in_reply_to":"3a50d1a3_96300303","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":228,"context_line":"* At this point, VRRP shall communicate on the same tenant network."},{"line_number":229,"context_line":"  The rational is to fail-over based on similar network interfaces\u0027 condition"},{"line_number":230,"context_line":"  which the tenant operates with. This may create fake fail-overs if the"},{"line_number":231,"context_line":"  tenant network is under unplanned heavy traffic. This is still better than"},{"line_number":232,"context_line":"  failing over, while the master is actually serving tenant\u0027s traffic or not"},{"line_number":233,"context_line":"  failing over at all if the master failed. Additionally, the Keepalived"},{"line_number":234,"context_line":"  shall check the health of the HAproxy service."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_f608672f","line":231,"updated":"2015-07-21 21:27:53.000000000","message":"For readability: \"unplanned, heavy\"","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":228,"context_line":"* At this point, VRRP shall communicate on the same tenant network."},{"line_number":229,"context_line":"  The rational is to fail-over based on similar network interfaces\u0027 condition"},{"line_number":230,"context_line":"  which the tenant operates with. This may create fake fail-overs if the"},{"line_number":231,"context_line":"  tenant network is under unplanned heavy traffic. This is still better than"},{"line_number":232,"context_line":"  failing over, while the master is actually serving tenant\u0027s traffic or not"},{"line_number":233,"context_line":"  failing over at all if the master failed. Additionally, the Keepalived"},{"line_number":234,"context_line":"  shall check the health of the HAproxy service."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_55f02e67","line":231,"in_reply_to":"3a50d1a3_f608672f","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":229,"context_line":"  The rational is to fail-over based on similar network interfaces\u0027 condition"},{"line_number":230,"context_line":"  which the tenant operates with. This may create fake fail-overs if the"},{"line_number":231,"context_line":"  tenant network is under unplanned heavy traffic. This is still better than"},{"line_number":232,"context_line":"  failing over, while the master is actually serving tenant\u0027s traffic or not"},{"line_number":233,"context_line":"  failing over at all if the master failed. Additionally, the Keepalived"},{"line_number":234,"context_line":"  shall check the health of the HAproxy service."},{"line_number":235,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_4c28af86","line":232,"updated":"2015-07-21 21:27:53.000000000","message":"For readability:  no comma needed after \"failing over\", and add \"the\" as follows:  \"serving the tenant\u0027s traffic\"","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":229,"context_line":"  The rational is to fail-over based on similar network interfaces\u0027 condition"},{"line_number":230,"context_line":"  which the tenant operates with. This may create fake fail-overs if the"},{"line_number":231,"context_line":"  tenant network is under unplanned heavy traffic. This is still better than"},{"line_number":232,"context_line":"  failing over, while the master is actually serving tenant\u0027s traffic or not"},{"line_number":233,"context_line":"  failing over at all if the master failed. Additionally, the Keepalived"},{"line_number":234,"context_line":"  shall check the health of the HAproxy service."},{"line_number":235,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_d5043e4b","line":232,"in_reply_to":"3a50d1a3_4c28af86","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":234,"context_line":"  shall check the health of the HAproxy service."},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"* In next steps the following shall be taken into account:"},{"line_number":237,"context_line":"  * Tenant quotas and allowed topologies."},{"line_number":238,"context_line":"  * Protection of VRRP Traffic, HAproxy state sync, Router IDs, and pass"},{"line_number":239,"context_line":"  phrases in both packets and dB."},{"line_number":240,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_ec397bd8","line":237,"updated":"2015-07-21 21:27:53.000000000","message":"nit:  replaced \"allowed\" with \"supported\"","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":234,"context_line":"  shall check the health of the HAproxy service."},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"* In next steps the following shall be taken into account:"},{"line_number":237,"context_line":"  * Tenant quotas and allowed topologies."},{"line_number":238,"context_line":"  * Protection of VRRP Traffic, HAproxy state sync, Router IDs, and pass"},{"line_number":239,"context_line":"  phrases in both packets and dB."},{"line_number":240,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_159dc609","line":237,"in_reply_to":"3a50d1a3_ec397bd8","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":236,"context_line":"* In next steps the following shall be taken into account:"},{"line_number":237,"context_line":"  * Tenant quotas and allowed topologies."},{"line_number":238,"context_line":"  * Protection of VRRP Traffic, HAproxy state sync, Router IDs, and pass"},{"line_number":239,"context_line":"  phrases in both packets and dB."},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"Notifications impact"},{"line_number":242,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_6c548bfe","line":239,"updated":"2015-07-21 21:27:53.000000000","message":"typo: \"DB\", not \"dB\", unless its not referring to database.","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":236,"context_line":"* In next steps the following shall be taken into account:"},{"line_number":237,"context_line":"  * Tenant quotas and allowed topologies."},{"line_number":238,"context_line":"  * Protection of VRRP Traffic, HAproxy state sync, Router IDs, and pass"},{"line_number":239,"context_line":"  phrases in both packets and dB."},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"Notifications impact"},{"line_number":242,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_9591d6f3","line":239,"in_reply_to":"3a50d1a3_6c548bfe","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":252,"context_line":"Performance Impact"},{"line_number":253,"context_line":"------------------"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"The Active Standby can consume up to twice the resources (storage, network,"},{"line_number":256,"context_line":"compute) as required by the Single Topology. Nevertheless, one single amphora"},{"line_number":257,"context_line":"shall be active (i.e. serving end-user) at any point in time. If the Master"},{"line_number":258,"context_line":"amphora is healthy, the backup one shall remain idle until it receives no"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_cc6a7fb3","line":255,"updated":"2015-07-21 21:27:53.000000000","message":"Add the standardized symbol between \"Active\" and \"Standby\"","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":252,"context_line":"Performance Impact"},{"line_number":253,"context_line":"------------------"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"The Active Standby can consume up to twice the resources (storage, network,"},{"line_number":256,"context_line":"compute) as required by the Single Topology. Nevertheless, one single amphora"},{"line_number":257,"context_line":"shall be active (i.e. serving end-user) at any point in time. If the Master"},{"line_number":258,"context_line":"amphora is healthy, the backup one shall remain idle until it receives no"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_75c3eaed","line":255,"in_reply_to":"3a50d1a3_cc6a7fb3","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":256,"context_line":"compute) as required by the Single Topology. Nevertheless, one single amphora"},{"line_number":257,"context_line":"shall be active (i.e. serving end-user) at any point in time. If the Master"},{"line_number":258,"context_line":"amphora is healthy, the backup one shall remain idle until it receives no"},{"line_number":259,"context_line":"VRRP advertisements from master."},{"line_number":260,"context_line":""},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"Other deployer impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_ccb11f49","line":259,"updated":"2015-07-21 21:27:53.000000000","message":"For readability:  \"from the master.\"","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":256,"context_line":"compute) as required by the Single Topology. Nevertheless, one single amphora"},{"line_number":257,"context_line":"shall be active (i.e. serving end-user) at any point in time. If the Master"},{"line_number":258,"context_line":"amphora is healthy, the backup one shall remain idle until it receives no"},{"line_number":259,"context_line":"VRRP advertisements from master."},{"line_number":260,"context_line":""},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"Other deployer impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_35b9e279","line":259,"in_reply_to":"3a50d1a3_ccb11f49","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":262,"context_line":"Other deployer impact"},{"line_number":263,"context_line":"---------------------"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"* An amphora_topology config option shall be added to the configuration. The"},{"line_number":266,"context_line":"  controller worker shall change its taskflow behavior according to the"},{"line_number":267,"context_line":"  requirement of different topologies."},{"line_number":268,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_acb4d334","line":265,"updated":"2015-07-21 21:27:53.000000000","message":"nit:  \"to the configuration\" is redundant.","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"5eedc5649fd8f2054076c5e7b6c160e9f844f8b9","unresolved":false,"context_lines":[{"line_number":266,"context_line":"  controller worker shall change its taskflow behavior according to the"},{"line_number":267,"context_line":"  requirement of different topologies."},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"* By default, the amphora_topology \u003d SINGLE and the ACTIVE_STANDBY topology"},{"line_number":270,"context_line":"  shall be enabled/requested explicitly by operators."},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"* The Keepalived version deployed in the amphora image must be newer than"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_cc983fc3","line":269,"updated":"2015-07-21 21:27:53.000000000","message":"nit: this should be a sentence, not a variable assignment.  \"the amphora topology is SINGLE\" etc.","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":266,"context_line":"  controller worker shall change its taskflow behavior according to the"},{"line_number":267,"context_line":"  requirement of different topologies."},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"* By default, the amphora_topology \u003d SINGLE and the ACTIVE_STANDBY topology"},{"line_number":270,"context_line":"  shall be enabled/requested explicitly by operators."},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"* The Keepalived version deployed in the amphora image must be newer than"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_d5799ec9","line":269,"in_reply_to":"3a50d1a3_cc983fc3","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":6437,"name":"Susanne Balle","email":"sleipnir012@gmail.com","username":"susanne-balle"},"change_message_id":"688efbb551287c1d13a4332623b31f6449edc1a6","unresolved":false,"context_lines":[{"line_number":332,"context_line":"References"},{"line_number":333,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":334,"context_line":""},{"line_number":335,"context_line":"[1] Implementing High Availability Instances with Neutron using VRRP"},{"line_number":336,"context_line":"[2] RFC3768 Virtual Router Redundancy Protocol (VRRP)"},{"line_number":337,"context_line":"[3] https://review.openstack.org/#/c/38230/"},{"line_number":338,"context_line":"[4] http://www.keepalived.org/LVS-NAT-Keepalived-HOWTO.html"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_e97ff414","line":335,"updated":"2015-07-22 18:48:48.000000000","message":"What\u0027s the reference here? a link to the article would be good. Susanne","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":17041,"name":"Sherif Abdelwahab","email":"selgohari@ieee.org","username":"sherif"},"change_message_id":"7ab3baeaf4edc6f3ce70f176ce7ed7ea92cd9c8d","unresolved":false,"context_lines":[{"line_number":332,"context_line":"References"},{"line_number":333,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":334,"context_line":""},{"line_number":335,"context_line":"[1] Implementing High Availability Instances with Neutron using VRRP"},{"line_number":336,"context_line":"[2] RFC3768 Virtual Router Redundancy Protocol (VRRP)"},{"line_number":337,"context_line":"[3] https://review.openstack.org/#/c/38230/"},{"line_number":338,"context_line":"[4] http://www.keepalived.org/LVS-NAT-Keepalived-HOWTO.html"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_891bd0c9","line":335,"in_reply_to":"3a50d1a3_e97ff414","updated":"2015-07-22 18:59:40.000000000","message":"Done","commit_id":"564c12314120f4723523f3bd9d88c139ce8e61cb"},{"author":{"_account_id":10850,"name":"German Eichberger","email":"german.eichberger@gmail.com","username":"german"},"change_message_id":"c8d273dc8298ff732f5289ef60e5ddb82f04c907","unresolved":false,"context_lines":[{"line_number":114,"context_line":"Alternatives"},{"line_number":115,"context_line":"------------"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"We cloud use heartbeats as an alternative to VRRP, which is also a widely"},{"line_number":118,"context_line":"adopted solution. Heartbeats better suit redundant file servers, filesystems,"},{"line_number":119,"context_line":"and databases rather than network services such as routers, firewalls, and"},{"line_number":120,"context_line":"loadbalancers. Willy Tarreau, the creator of Haproxy, provides a detailed"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a50d1a3_84008367","line":117,"updated":"2015-07-23 03:25:40.000000000","message":"NIT: could","commit_id":"feadf9352d3202141f08de8428013866029d6b49"}]}
