)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"e78e72548c57d0cec4abe8370bf149f0487e2020","unresolved":false,"context_lines":[{"line_number":7,"context_line":"[HA Guide] Update for the current predominant architectures"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Begin updating the guide to reflect current architecture best practices."},{"line_number":10,"context_line":"Deprecate the keepalived architecture, it\u0027s use is increasingly rare."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Id62d09707611f4706620b00f7800b80138afe98d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7a8ec9b2_37e7b541","line":10,"range":{"start_line":10,"start_character":39,"end_line":10,"end_character":43},"updated":"2016-09-20 10:37:13.000000000","message":"\"its\" ;-)","commit_id":"ce80b9148790cded126098a54da00f695e047c23"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"e78e72548c57d0cec4abe8370bf149f0487e2020","unresolved":false,"context_lines":[{"line_number":7,"context_line":"[HA Guide] Update for the current predominant architectures"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Begin updating the guide to reflect current architecture best practices."},{"line_number":10,"context_line":"Deprecate the keepalived architecture, it\u0027s use is increasingly rare."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Id62d09707611f4706620b00f7800b80138afe98d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7a8ec9b2_abd0bcca","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":9},"updated":"2016-09-20 10:37:13.000000000","message":"You didn\u0027t actually deprecate it - you just removed it.","commit_id":"ce80b9148790cded126098a54da00f695e047c23"}],"doc/ha-guide/source/intro-ha-arch-keepalived.rst":[{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"e78e72548c57d0cec4abe8370bf149f0487e2020","unresolved":false,"context_lines":[{"line_number":9,"context_line":"strategies used to achieve high availability for the OpenStack"},{"line_number":10,"context_line":"services:"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":".. image:: /figures/keepalived-arch.jpg"},{"line_number":13,"context_line":"   :width: 100%"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Depending on the method used to communicate with the service, the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a8ec9b2_2bfcac3d","side":"PARENT","line":12,"updated":"2016-09-20 10:37:13.000000000","message":"If you\u0027re removing this file, presumably you should remove that image too?","commit_id":"5a45c9ce62e947c467346dac5d70d4085704ad0a"}],"doc/ha-guide/source/intro-ha-controller.rst":[{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"e78e72548c57d0cec4abe8370bf149f0487e2020","unresolved":false,"context_lines":[{"line_number":42,"context_line":"Common deployment architectures"},{"line_number":43,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"There are primarily two HA architectures in use today."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Both use a cluster manager such as Pacemaker or Veritas to"},{"line_number":48,"context_line":"orchestrate the actions of the various services across a set of"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a8ec9b2_7afe8406","line":45,"range":{"start_line":45,"start_character":0,"end_line":45,"end_character":54},"updated":"2016-09-20 10:37:13.000000000","message":"Please could you make it clearer here whether you\u0027re talking about within OpenStack, or HA in general?","commit_id":"ce80b9148790cded126098a54da00f695e047c23"},{"author":{"_account_id":17517,"name":"Andrew Beekhof","email":"abeekhof@redhat.com","username":"beekhof"},"change_message_id":"24a84aa532ad8069a3747711f2fca2cb628dd79b","unresolved":false,"context_lines":[{"line_number":42,"context_line":"Common deployment architectures"},{"line_number":43,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"There are primarily two HA architectures in use today."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Both use a cluster manager such as Pacemaker or Veritas to"},{"line_number":48,"context_line":"orchestrate the actions of the various services across a set of"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a8ec9b2_8fd04155","line":45,"range":{"start_line":45,"start_character":0,"end_line":45,"end_character":54},"in_reply_to":"7a8ec9b2_7afe8406","updated":"2016-09-22 00:44:14.000000000","message":"You\u0027ll note that I didn\u0027t write/change this line.\nHowever, if it would make you happy, I can change \"in use\" to \"that we recommend\".","commit_id":"ce80b9148790cded126098a54da00f695e047c23"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"337f0e2b165d9556985556c0360b52e710584ef3","unresolved":false,"context_lines":[{"line_number":42,"context_line":"Common deployment architectures"},{"line_number":43,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"There are primarily two HA architectures in use today."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Both use a cluster manager such as Pacemaker or Veritas to"},{"line_number":48,"context_line":"orchestrate the actions of the various services across a set of"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a8bc5a2_a83e20b6","line":45,"range":{"start_line":45,"start_character":0,"end_line":45,"end_character":54},"in_reply_to":"7a8ec9b2_8fd04155","updated":"2016-09-22 14:15:52.000000000","message":"Thanks, looks much better in patch set 4.","commit_id":"ce80b9148790cded126098a54da00f695e047c23"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"e78e72548c57d0cec4abe8370bf149f0487e2020","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"There are primarily two HA architectures in use today."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Both use a cluster manager such as Pacemaker or Veritas to"},{"line_number":48,"context_line":"orchestrate the actions of the various services across a set of"},{"line_number":49,"context_line":"machines. Since we are focused on FOSS, we will refer to these as"},{"line_number":50,"context_line":"Pacemaker architectures."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a8ec9b2_5a31c8eb","line":47,"range":{"start_line":47,"start_character":0,"end_line":47,"end_character":55},"updated":"2016-09-20 10:37:13.000000000","message":"Is that really accurate? I get the impression there are quite a few (supposedly) HA OpenStack clouds out there not using Pacemaker at all, instead relying on Galera, mirrored Rabbit queues, HAproxy, and keepalived.  \n\nAnd if you were talking about HA architectures in general rather than for OpenStack (although I presume you weren\u0027t), then I\u0027m sure there are many other HA architectures which don\u0027t use a cluster manager at all.","commit_id":"ce80b9148790cded126098a54da00f695e047c23"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"337f0e2b165d9556985556c0360b52e710584ef3","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"There are primarily two HA architectures in use today."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Both use a cluster manager such as Pacemaker or Veritas to"},{"line_number":48,"context_line":"orchestrate the actions of the various services across a set of"},{"line_number":49,"context_line":"machines. Since we are focused on FOSS, we will refer to these as"},{"line_number":50,"context_line":"Pacemaker architectures."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a8bc5a2_a89380a2","line":47,"range":{"start_line":47,"start_character":0,"end_line":47,"end_character":55},"in_reply_to":"7a8ec9b2_4f1e3964","updated":"2016-09-22 14:15:52.000000000","message":"Indeed, and now that in patch set 4 you\u0027ve changed the first sentence to \"recommended\", I think this is absolutely fine.","commit_id":"ce80b9148790cded126098a54da00f695e047c23"},{"author":{"_account_id":17517,"name":"Andrew Beekhof","email":"abeekhof@redhat.com","username":"beekhof"},"change_message_id":"24a84aa532ad8069a3747711f2fca2cb628dd79b","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"There are primarily two HA architectures in use today."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Both use a cluster manager such as Pacemaker or Veritas to"},{"line_number":48,"context_line":"orchestrate the actions of the various services across a set of"},{"line_number":49,"context_line":"machines. Since we are focused on FOSS, we will refer to these as"},{"line_number":50,"context_line":"Pacemaker architectures."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a8ec9b2_4f1e3964","line":47,"range":{"start_line":47,"start_character":0,"end_line":47,"end_character":55},"in_reply_to":"7a8ec9b2_5a31c8eb","updated":"2016-09-22 00:44:14.000000000","message":"You can\u0027t do galera + keepalived without a whole lot of manual intervention.  I\u0027d bet I can construct some data loss scenarios for mirrored queues too.\n\nAlso, it is not our responsibility to document every possible architecture.  If someone strongly believes in a keepalived based arch, then they can step forward to object to this change and volunteer to keep it updated.","commit_id":"ce80b9148790cded126098a54da00f695e047c23"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"fcccfd12d9c8bc6e9ec7f8a0ffb5c1d88dad1013","unresolved":false,"context_lines":[{"line_number":49,"context_line":"machines. Since we are focused on FOSS, we will refer to these as"},{"line_number":50,"context_line":"Pacemaker architectures."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Where the architectures differ is in the sets of services managed by"},{"line_number":53,"context_line":"the cluster."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Traditionally Pacemaker has been positioned as an all encompassing"},{"line_number":56,"context_line":"solution.  However as OpenStack services have matured, they are"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a8ec9b2_77bbfd75","line":53,"range":{"start_line":52,"start_character":0,"end_line":53,"end_character":12},"updated":"2016-09-20 09:54:02.000000000","message":"The architectures differ in ...","commit_id":"ce80b9148790cded126098a54da00f695e047c23"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"fcccfd12d9c8bc6e9ec7f8a0ffb5c1d88dad1013","unresolved":false,"context_lines":[{"line_number":52,"context_line":"Where the architectures differ is in the sets of services managed by"},{"line_number":53,"context_line":"the cluster."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Traditionally Pacemaker has been positioned as an all encompassing"},{"line_number":56,"context_line":"solution.  However as OpenStack services have matured, they are"},{"line_number":57,"context_line":"increasingly able to run in an active/active configuration and"},{"line_number":58,"context_line":"gracefully tollerate the dissappearance of the APIs on which they"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a8ec9b2_77621d18","line":55,"range":{"start_line":55,"start_character":0,"end_line":55,"end_character":13},"updated":"2016-09-20 09:54:02.000000000","message":"Traditionally,","commit_id":"ce80b9148790cded126098a54da00f695e047c23"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"fcccfd12d9c8bc6e9ec7f8a0ffb5c1d88dad1013","unresolved":false,"context_lines":[{"line_number":52,"context_line":"Where the architectures differ is in the sets of services managed by"},{"line_number":53,"context_line":"the cluster."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Traditionally Pacemaker has been positioned as an all encompassing"},{"line_number":56,"context_line":"solution.  However as OpenStack services have matured, they are"},{"line_number":57,"context_line":"increasingly able to run in an active/active configuration and"},{"line_number":58,"context_line":"gracefully tollerate the dissappearance of the APIs on which they"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a8ec9b2_d77131e2","line":55,"range":{"start_line":55,"start_character":50,"end_line":55,"end_character":66},"updated":"2016-09-20 09:54:02.000000000","message":"all-encompassing","commit_id":"ce80b9148790cded126098a54da00f695e047c23"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"fcccfd12d9c8bc6e9ec7f8a0ffb5c1d88dad1013","unresolved":false,"context_lines":[{"line_number":53,"context_line":"the cluster."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Traditionally Pacemaker has been positioned as an all encompassing"},{"line_number":56,"context_line":"solution.  However as OpenStack services have matured, they are"},{"line_number":57,"context_line":"increasingly able to run in an active/active configuration and"},{"line_number":58,"context_line":"gracefully tollerate the dissappearance of the APIs on which they"},{"line_number":59,"context_line":"depend."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a8ec9b2_f73e2d28","line":56,"range":{"start_line":56,"start_character":11,"end_line":56,"end_character":18},"updated":"2016-09-20 09:54:02.000000000","message":"However,","commit_id":"ce80b9148790cded126098a54da00f695e047c23"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"fcccfd12d9c8bc6e9ec7f8a0ffb5c1d88dad1013","unresolved":false,"context_lines":[{"line_number":53,"context_line":"the cluster."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Traditionally Pacemaker has been positioned as an all encompassing"},{"line_number":56,"context_line":"solution.  However as OpenStack services have matured, they are"},{"line_number":57,"context_line":"increasingly able to run in an active/active configuration and"},{"line_number":58,"context_line":"gracefully tollerate the dissappearance of the APIs on which they"},{"line_number":59,"context_line":"depend."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a8ec9b2_17239906","line":56,"range":{"start_line":56,"start_character":10,"end_line":56,"end_character":11},"updated":"2016-09-20 09:54:02.000000000","message":"Please remove the extra space here and below.","commit_id":"ce80b9148790cded126098a54da00f695e047c23"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"fcccfd12d9c8bc6e9ec7f8a0ffb5c1d88dad1013","unresolved":false,"context_lines":[{"line_number":55,"context_line":"Traditionally Pacemaker has been positioned as an all encompassing"},{"line_number":56,"context_line":"solution.  However as OpenStack services have matured, they are"},{"line_number":57,"context_line":"increasingly able to run in an active/active configuration and"},{"line_number":58,"context_line":"gracefully tollerate the dissappearance of the APIs on which they"},{"line_number":59,"context_line":"depend."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"With this in mind, some vendors are restricting Pacemaker\u0027s use to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a8ec9b2_9793294f","line":58,"range":{"start_line":58,"start_character":28,"end_line":58,"end_character":29},"updated":"2016-09-20 09:54:02.000000000","message":"disappearance","commit_id":"ce80b9148790cded126098a54da00f695e047c23"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"fcccfd12d9c8bc6e9ec7f8a0ffb5c1d88dad1013","unresolved":false,"context_lines":[{"line_number":55,"context_line":"Traditionally Pacemaker has been positioned as an all encompassing"},{"line_number":56,"context_line":"solution.  However as OpenStack services have matured, they are"},{"line_number":57,"context_line":"increasingly able to run in an active/active configuration and"},{"line_number":58,"context_line":"gracefully tollerate the dissappearance of the APIs on which they"},{"line_number":59,"context_line":"depend."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"With this in mind, some vendors are restricting Pacemaker\u0027s use to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a8ec9b2_1779d92f","line":58,"range":{"start_line":58,"start_character":14,"end_line":58,"end_character":15},"updated":"2016-09-20 09:54:02.000000000","message":"tolerate","commit_id":"ce80b9148790cded126098a54da00f695e047c23"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"e78e72548c57d0cec4abe8370bf149f0487e2020","unresolved":false,"context_lines":[{"line_number":53,"context_line":"the cluster."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Traditionally Pacemaker has been positioned as an all encompassing"},{"line_number":56,"context_line":"solution.  However as OpenStack services have matured, they are"},{"line_number":57,"context_line":"increasingly able to run in an active/active configuration and"},{"line_number":58,"context_line":"gracefully tollerate the dissappearance of the APIs on which they"},{"line_number":59,"context_line":"depend."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"With this in mind, some vendors are restricting Pacemaker\u0027s use to"},{"line_number":62,"context_line":"services that must operate in an active/passive mode (such as Cinder"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a8ec9b2_abb35c09","line":59,"range":{"start_line":56,"start_character":11,"end_line":59,"end_character":7},"updated":"2016-09-20 10:37:13.000000000","message":"Shouldn\u0027t HAproxy also be mentioned in the description of the active/active services in these two architectures?","commit_id":"ce80b9148790cded126098a54da00f695e047c23"},{"author":{"_account_id":17517,"name":"Andrew Beekhof","email":"abeekhof@redhat.com","username":"beekhof"},"change_message_id":"24a84aa532ad8069a3747711f2fca2cb628dd79b","unresolved":false,"context_lines":[{"line_number":53,"context_line":"the cluster."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Traditionally Pacemaker has been positioned as an all encompassing"},{"line_number":56,"context_line":"solution.  However as OpenStack services have matured, they are"},{"line_number":57,"context_line":"increasingly able to run in an active/active configuration and"},{"line_number":58,"context_line":"gracefully tollerate the dissappearance of the APIs on which they"},{"line_number":59,"context_line":"depend."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"With this in mind, some vendors are restricting Pacemaker\u0027s use to"},{"line_number":62,"context_line":"services that must operate in an active/passive mode (such as Cinder"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a8ec9b2_8f2cc14b","line":59,"range":{"start_line":56,"start_character":11,"end_line":59,"end_character":7},"in_reply_to":"7a8ec9b2_abb35c09","updated":"2016-09-22 00:44:14.000000000","message":"I would expect to document that in the details.\nI was following the previous content structure which focused on the differences between the two architectures.","commit_id":"ce80b9148790cded126098a54da00f695e047c23"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"fcccfd12d9c8bc6e9ec7f8a0ffb5c1d88dad1013","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"With this in mind, some vendors are restricting Pacemaker\u0027s use to"},{"line_number":62,"context_line":"services that must operate in an active/passive mode (such as Cinder"},{"line_number":63,"context_line":"Volume), those with multiple states (eg. Galera) and those with"},{"line_number":64,"context_line":"complex bootstrapping proceedures (such as RabbitMQ)."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"The majority of services, needing no real orchestration, are handled"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a8ec9b2_d748518a","line":63,"range":{"start_line":63,"start_character":47,"end_line":63,"end_character":48},"updated":"2016-09-20 09:54:02.000000000","message":"),","commit_id":"ce80b9148790cded126098a54da00f695e047c23"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"fcccfd12d9c8bc6e9ec7f8a0ffb5c1d88dad1013","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"With this in mind, some vendors are restricting Pacemaker\u0027s use to"},{"line_number":62,"context_line":"services that must operate in an active/passive mode (such as Cinder"},{"line_number":63,"context_line":"Volume), those with multiple states (eg. Galera) and those with"},{"line_number":64,"context_line":"complex bootstrapping proceedures (such as RabbitMQ)."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"The majority of services, needing no real orchestration, are handled"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a8ec9b2_974ec994","line":63,"range":{"start_line":63,"start_character":37,"end_line":63,"end_character":40},"updated":"2016-09-20 09:54:02.000000000","message":"for example,","commit_id":"ce80b9148790cded126098a54da00f695e047c23"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"fcccfd12d9c8bc6e9ec7f8a0ffb5c1d88dad1013","unresolved":false,"context_lines":[{"line_number":61,"context_line":"With this in mind, some vendors are restricting Pacemaker\u0027s use to"},{"line_number":62,"context_line":"services that must operate in an active/passive mode (such as Cinder"},{"line_number":63,"context_line":"Volume), those with multiple states (eg. Galera) and those with"},{"line_number":64,"context_line":"complex bootstrapping proceedures (such as RabbitMQ)."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"The majority of services, needing no real orchestration, are handled"},{"line_number":67,"context_line":"by Systemd on each node.  This approach avoids the need to co-ordinate"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a8ec9b2_37adf588","line":64,"range":{"start_line":64,"start_character":27,"end_line":64,"end_character":28},"updated":"2016-09-20 09:54:02.000000000","message":"procedures","commit_id":"ce80b9148790cded126098a54da00f695e047c23"},{"author":{"_account_id":14947,"name":"Maria Zlatkova","email":"mzlatkova@mirantis.com","username":"mzlatkova"},"change_message_id":"fcccfd12d9c8bc6e9ec7f8a0ffb5c1d88dad1013","unresolved":false,"context_lines":[{"line_number":67,"context_line":"by Systemd on each node.  This approach avoids the need to co-ordinate"},{"line_number":68,"context_line":"service upgrades or location changes with the cluster and has the"},{"line_number":69,"context_line":"added advantage of more easily scaling beyond Corosync\u0027s 16 node"},{"line_number":70,"context_line":"limit.  However it will generally require the addition of an"},{"line_number":71,"context_line":"enterprise monitoring solution such as Nagios or Sensu for those"},{"line_number":72,"context_line":"wanting centralized failure reporting."},{"line_number":73,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a8ec9b2_b7fd8570","line":70,"range":{"start_line":70,"start_character":8,"end_line":70,"end_character":15},"updated":"2016-09-20 09:54:02.000000000","message":"However,","commit_id":"ce80b9148790cded126098a54da00f695e047c23"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"e78e72548c57d0cec4abe8370bf149f0487e2020","unresolved":false,"context_lines":[{"line_number":69,"context_line":"added advantage of more easily scaling beyond Corosync\u0027s 16 node"},{"line_number":70,"context_line":"limit.  However it will generally require the addition of an"},{"line_number":71,"context_line":"enterprise monitoring solution such as Nagios or Sensu for those"},{"line_number":72,"context_line":"wanting centralized failure reporting."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":".. toctree::"},{"line_number":75,"context_line":"   :maxdepth: 1"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a8ec9b2_0bf610d7","line":72,"range":{"start_line":72,"start_character":20,"end_line":72,"end_character":37},"updated":"2016-09-20 10:37:13.000000000","message":"Failure reporting isn\u0027t enough - the monitoring solution also needs to be able to restart hung services. (Presumably it doesn\u0027t need to restart /crashed/ services because systemd should be able to do that - right?)","commit_id":"ce80b9148790cded126098a54da00f695e047c23"},{"author":{"_account_id":17517,"name":"Andrew Beekhof","email":"abeekhof@redhat.com","username":"beekhof"},"change_message_id":"a4ae3f482f5909808082142beca6db31ee85a615","unresolved":false,"context_lines":[{"line_number":69,"context_line":"added advantage of more easily scaling beyond Corosync\u0027s 16 node"},{"line_number":70,"context_line":"limit.  However it will generally require the addition of an"},{"line_number":71,"context_line":"enterprise monitoring solution such as Nagios or Sensu for those"},{"line_number":72,"context_line":"wanting centralized failure reporting."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":".. toctree::"},{"line_number":75,"context_line":"   :maxdepth: 1"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a8bc5a2_1b52e467","line":72,"range":{"start_line":72,"start_character":20,"end_line":72,"end_character":37},"in_reply_to":"5a8bc5a2_e3c12b30","updated":"2016-09-22 22:43:23.000000000","message":"Well I would imagine that the systemd equivalent of migration-threshold would eventually kick in for the restart loop - so no recovery required there.  \n\nWhile personally I would tend to agree that some sort of recovery is warranted if a hung service is detected, this doesn\u0027t appear to be on the initial radar here which suggests that there are alternate view points.","commit_id":"ce80b9148790cded126098a54da00f695e047c23"},{"author":{"_account_id":17517,"name":"Andrew Beekhof","email":"abeekhof@redhat.com","username":"beekhof"},"change_message_id":"24a84aa532ad8069a3747711f2fca2cb628dd79b","unresolved":false,"context_lines":[{"line_number":69,"context_line":"added advantage of more easily scaling beyond Corosync\u0027s 16 node"},{"line_number":70,"context_line":"limit.  However it will generally require the addition of an"},{"line_number":71,"context_line":"enterprise monitoring solution such as Nagios or Sensu for those"},{"line_number":72,"context_line":"wanting centralized failure reporting."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":".. toctree::"},{"line_number":75,"context_line":"   :maxdepth: 1"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a8ec9b2_6fb5b52f","line":72,"range":{"start_line":72,"start_character":20,"end_line":72,"end_character":37},"in_reply_to":"7a8ec9b2_0bf610d7","updated":"2016-09-22 00:44:14.000000000","message":"One size doesn\u0027t fit all, it might be advisable to restart hung services or even block services that are in a tight restart loop, however its not mandatory and no worse from systemd deciding a service should remain stopped.","commit_id":"ce80b9148790cded126098a54da00f695e047c23"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"337f0e2b165d9556985556c0360b52e710584ef3","unresolved":false,"context_lines":[{"line_number":69,"context_line":"added advantage of more easily scaling beyond Corosync\u0027s 16 node"},{"line_number":70,"context_line":"limit.  However it will generally require the addition of an"},{"line_number":71,"context_line":"enterprise monitoring solution such as Nagios or Sensu for those"},{"line_number":72,"context_line":"wanting centralized failure reporting."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":".. toctree::"},{"line_number":75,"context_line":"   :maxdepth: 1"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a8bc5a2_e3c12b30","line":72,"range":{"start_line":72,"start_character":20,"end_line":72,"end_character":37},"in_reply_to":"7a8ec9b2_6fb5b52f","updated":"2016-09-22 14:15:52.000000000","message":"Hmm, I think I\u0027d need some more convincing on this. For example if a service is in a tight restart loop, or malfunctioning in some other way, isn\u0027t it possible that it could be acting as a black hole for client requests? Or do you think that HAproxy is smart enough to always figure out the right times to disable that malfunctioning backend?","commit_id":"ce80b9148790cded126098a54da00f695e047c23"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"1856f5e6add18290513d1bff7cf8a341eeb10f7f","unresolved":false,"context_lines":[{"line_number":45,"context_line":"There are primarily two recommended architectures for making OpenStack"},{"line_number":46,"context_line":"highly available."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Both use a cluster manager such as Pacemaker or Veritas to"},{"line_number":49,"context_line":"orchestrate the actions of the various services across a set of"},{"line_number":50,"context_line":"machines. Since we are focused on FOSS, we will refer to these as"},{"line_number":51,"context_line":"Pacemaker architectures."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a8ec9b2_693d8e8e","line":48,"updated":"2016-09-21 12:49:04.000000000","message":"No change here taking into account my comment in patch set 1; if you disagree with what I said please let me know :)","commit_id":"6be1c54e2d1d60077f565dc158eac19ce495392a"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"4540a8b9fa3e11b6529fa76e296ae14b9a984349","unresolved":false,"context_lines":[{"line_number":50,"context_line":"machines. Since we are focused on FOSS, we will refer to these as"},{"line_number":51,"context_line":"Pacemaker architectures."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"The architectures differ is in the sets of services managed by"},{"line_number":54,"context_line":"the cluster."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Traditionally, Pacemaker has been positioned as an all-encompassing"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a8ec9b2_f98edece","line":53,"range":{"start_line":53,"start_character":0,"end_line":53,"end_character":25},"updated":"2016-09-21 09:54:06.000000000","message":"Where the architectures differ ?","commit_id":"6be1c54e2d1d60077f565dc158eac19ce495392a"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"fd8f28e73508939e1ff6683cfce5a7f99bba488f","unresolved":false,"context_lines":[{"line_number":50,"context_line":"machines. Since we are focused on FOSS, we will refer to these as"},{"line_number":51,"context_line":"Pacemaker architectures."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"The architectures differ is in the sets of services managed by"},{"line_number":54,"context_line":"the cluster."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Traditionally, Pacemaker has been positioned as an all-encompassing"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a8bc5a2_959fcf5e","line":53,"range":{"start_line":53,"start_character":0,"end_line":53,"end_character":25},"in_reply_to":"7a8ec9b2_e91efe0a","updated":"2016-09-22 09:52:43.000000000","message":"Hmm okay, well it needs context. It cannot stand alone as is, it doesn\u0027t read well.","commit_id":"6be1c54e2d1d60077f565dc158eac19ce495392a"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"1856f5e6add18290513d1bff7cf8a341eeb10f7f","unresolved":false,"context_lines":[{"line_number":50,"context_line":"machines. Since we are focused on FOSS, we will refer to these as"},{"line_number":51,"context_line":"Pacemaker architectures."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"The architectures differ is in the sets of services managed by"},{"line_number":54,"context_line":"the cluster."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Traditionally, Pacemaker has been positioned as an all-encompassing"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a8ec9b2_e91efe0a","line":53,"range":{"start_line":53,"start_character":0,"end_line":53,"end_character":25},"in_reply_to":"7a8ec9b2_f98edece","updated":"2016-09-21 12:49:04.000000000","message":"No, Maria already suggested to ditch \"Where\" in patch set 1.  I think the correct solution is s/is in/in/, which is what she originally proposed.","commit_id":"6be1c54e2d1d60077f565dc158eac19ce495392a"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"4540a8b9fa3e11b6529fa76e296ae14b9a984349","unresolved":false,"context_lines":[{"line_number":54,"context_line":"the cluster."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Traditionally, Pacemaker has been positioned as an all-encompassing"},{"line_number":57,"context_line":"solution. However as OpenStack services have matured, they are"},{"line_number":58,"context_line":"increasingly able to run in an active/active configuration and"},{"line_number":59,"context_line":"gracefully tollerate the dissappearance of the APIs on which they"},{"line_number":60,"context_line":"depend."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a8ec9b2_19bc6a6b","line":57,"range":{"start_line":57,"start_character":10,"end_line":57,"end_character":17},"updated":"2016-09-21 09:54:06.000000000","message":"However, *","commit_id":"6be1c54e2d1d60077f565dc158eac19ce495392a"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"4540a8b9fa3e11b6529fa76e296ae14b9a984349","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Traditionally, Pacemaker has been positioned as an all-encompassing"},{"line_number":57,"context_line":"solution. However as OpenStack services have matured, they are"},{"line_number":58,"context_line":"increasingly able to run in an active/active configuration and"},{"line_number":59,"context_line":"gracefully tollerate the dissappearance of the APIs on which they"},{"line_number":60,"context_line":"depend."},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a8ec9b2_99b07a8d","line":58,"range":{"start_line":58,"start_character":25,"end_line":58,"end_character":27},"updated":"2016-09-21 09:54:06.000000000","message":"remove","commit_id":"6be1c54e2d1d60077f565dc158eac19ce495392a"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"4540a8b9fa3e11b6529fa76e296ae14b9a984349","unresolved":false,"context_lines":[{"line_number":56,"context_line":"Traditionally, Pacemaker has been positioned as an all-encompassing"},{"line_number":57,"context_line":"solution. However as OpenStack services have matured, they are"},{"line_number":58,"context_line":"increasingly able to run in an active/active configuration and"},{"line_number":59,"context_line":"gracefully tollerate the dissappearance of the APIs on which they"},{"line_number":60,"context_line":"depend."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"With this in mind, some vendors are restricting Pacemaker\u0027s use to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a8ec9b2_39668629","line":59,"range":{"start_line":59,"start_character":25,"end_line":59,"end_character":39},"updated":"2016-09-21 09:54:06.000000000","message":"disappearance *","commit_id":"6be1c54e2d1d60077f565dc158eac19ce495392a"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"4540a8b9fa3e11b6529fa76e296ae14b9a984349","unresolved":false,"context_lines":[{"line_number":56,"context_line":"Traditionally, Pacemaker has been positioned as an all-encompassing"},{"line_number":57,"context_line":"solution. However as OpenStack services have matured, they are"},{"line_number":58,"context_line":"increasingly able to run in an active/active configuration and"},{"line_number":59,"context_line":"gracefully tollerate the dissappearance of the APIs on which they"},{"line_number":60,"context_line":"depend."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"With this in mind, some vendors are restricting Pacemaker\u0027s use to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a8ec9b2_19638a1b","line":59,"range":{"start_line":59,"start_character":11,"end_line":59,"end_character":20},"updated":"2016-09-21 09:54:06.000000000","message":"tolerate *","commit_id":"6be1c54e2d1d60077f565dc158eac19ce495392a"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"1856f5e6add18290513d1bff7cf8a341eeb10f7f","unresolved":false,"context_lines":[{"line_number":58,"context_line":"increasingly able to run in an active/active configuration and"},{"line_number":59,"context_line":"gracefully tollerate the dissappearance of the APIs on which they"},{"line_number":60,"context_line":"depend."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"With this in mind, some vendors are restricting Pacemaker\u0027s use to"},{"line_number":63,"context_line":"services that must operate in an active/passive mode (such as Cinder"},{"line_number":64,"context_line":"Volume), those with multiple states (for example Galera) and those"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a8ec9b2_09efaae9","line":61,"updated":"2016-09-21 12:49:04.000000000","message":"Still missing any mention of HAproxy, as per my comment in patch set 1.","commit_id":"6be1c54e2d1d60077f565dc158eac19ce495392a"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"4540a8b9fa3e11b6529fa76e296ae14b9a984349","unresolved":false,"context_lines":[{"line_number":60,"context_line":"depend."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"With this in mind, some vendors are restricting Pacemaker\u0027s use to"},{"line_number":63,"context_line":"services that must operate in an active/passive mode (such as Cinder"},{"line_number":64,"context_line":"Volume), those with multiple states (for example Galera) and those"},{"line_number":65,"context_line":"with complex bootstrapping procedures (such as RabbitMQ)."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"The majority of services, needing no real orchestration, are handled"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a8ec9b2_596d1203","line":64,"range":{"start_line":63,"start_character":62,"end_line":64,"end_character":6},"updated":"2016-09-21 09:54:06.000000000","message":"cinder-volume","commit_id":"6be1c54e2d1d60077f565dc158eac19ce495392a"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"4540a8b9fa3e11b6529fa76e296ae14b9a984349","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"With this in mind, some vendors are restricting Pacemaker\u0027s use to"},{"line_number":63,"context_line":"services that must operate in an active/passive mode (such as Cinder"},{"line_number":64,"context_line":"Volume), those with multiple states (for example Galera) and those"},{"line_number":65,"context_line":"with complex bootstrapping procedures (such as RabbitMQ)."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"The majority of services, needing no real orchestration, are handled"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a8ec9b2_d9812291","line":64,"range":{"start_line":64,"start_character":37,"end_line":64,"end_character":48},"updated":"2016-09-21 09:54:06.000000000","message":"for example, Galera*","commit_id":"6be1c54e2d1d60077f565dc158eac19ce495392a"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"4540a8b9fa3e11b6529fa76e296ae14b9a984349","unresolved":false,"context_lines":[{"line_number":65,"context_line":"with complex bootstrapping procedures (such as RabbitMQ)."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"The majority of services, needing no real orchestration, are handled"},{"line_number":68,"context_line":"by Systemd on each node. This approach avoids the need to co-ordinate"},{"line_number":69,"context_line":"service upgrades or location changes with the cluster and has the"},{"line_number":70,"context_line":"added advantage of more easily scaling beyond Corosync\u0027s 16 node"},{"line_number":71,"context_line":"limit. However, it will generally require the addition of an"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a8ec9b2_1931ca0b","line":68,"range":{"start_line":68,"start_character":58,"end_line":68,"end_character":69},"updated":"2016-09-21 09:54:06.000000000","message":"coordinate*","commit_id":"6be1c54e2d1d60077f565dc158eac19ce495392a"},{"author":{"_account_id":10607,"name":"Alexandra Settle","email":"a.settle@outlook.com","username":"asettle"},"change_message_id":"4540a8b9fa3e11b6529fa76e296ae14b9a984349","unresolved":false,"context_lines":[{"line_number":68,"context_line":"by Systemd on each node. This approach avoids the need to co-ordinate"},{"line_number":69,"context_line":"service upgrades or location changes with the cluster and has the"},{"line_number":70,"context_line":"added advantage of more easily scaling beyond Corosync\u0027s 16 node"},{"line_number":71,"context_line":"limit. However, it will generally require the addition of an"},{"line_number":72,"context_line":"enterprise monitoring solution such as Nagios or Sensu for those"},{"line_number":73,"context_line":"wanting centralized failure reporting."},{"line_number":74,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a8ec9b2_9925dac3","line":71,"range":{"start_line":71,"start_character":19,"end_line":71,"end_character":41},"updated":"2016-09-21 09:54:06.000000000","message":"it requires*","commit_id":"6be1c54e2d1d60077f565dc158eac19ce495392a"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"1856f5e6add18290513d1bff7cf8a341eeb10f7f","unresolved":false,"context_lines":[{"line_number":70,"context_line":"added advantage of more easily scaling beyond Corosync\u0027s 16 node"},{"line_number":71,"context_line":"limit. However, it will generally require the addition of an"},{"line_number":72,"context_line":"enterprise monitoring solution such as Nagios or Sensu for those"},{"line_number":73,"context_line":"wanting centralized failure reporting."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":".. toctree::"},{"line_number":76,"context_line":"   :maxdepth: 1"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a8ec9b2_a9b6b6f6","line":73,"range":{"start_line":73,"start_character":20,"end_line":73,"end_character":37},"updated":"2016-09-21 12:49:04.000000000","message":"Still missing any mention of restarting hung services, as per my comment in patch set 1.","commit_id":"6be1c54e2d1d60077f565dc158eac19ce495392a"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"fbf486204a58ac59d868d0092f13d32815f819e3","unresolved":false,"context_lines":[{"line_number":68,"context_line":"by Systemd on each node. This approach avoids the need to coordinate"},{"line_number":69,"context_line":"service upgrades or location changes with the cluster and has the"},{"line_number":70,"context_line":"added advantage of more easily scaling beyond Corosync\u0027s 16 node"},{"line_number":71,"context_line":"limit. However, it will generally require the addition of an"},{"line_number":72,"context_line":"enterprise monitoring solution such as Nagios or Sensu for those"},{"line_number":73,"context_line":"wanting centralized failure reporting."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":".. toctree::"},{"line_number":76,"context_line":"   :maxdepth: 1"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a8bc5a2_43d1ffcc","line":73,"range":{"start_line":71,"start_character":7,"end_line":73,"end_character":38},"updated":"2016-09-22 14:17:59.000000000","message":"I\u0027m still a bit sceptical about the sufficiency of a monitoring / reporting solution which takes no remedial action, but I\u0027m totally open to being convinced otherwise :-)\n\nIn any case, that\u0027s not sufficient for a -1, and the rest of this looks good to me.","commit_id":"c5c825fd88e7122895b7593d15021d2d45d4c4da"}]}
