)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"a9051486d41b8a273e337f52ad529f935d1a65c0","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This document describes the steps to test zero downtime"},{"line_number":10,"context_line":"upgrade process."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Depends-On: I65cc7d95cee86af7016b79d7dee0f820aff216fb"},{"line_number":13,"context_line":"Change-Id: Ieafd65da959f6153524f1f3ab0522025b94cbef4"},{"line_number":14,"context_line":"Co-Authored-by: Anusha Unnam \u003canusha.unnam@intel.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"1a6eadb0_bd4c7a71","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":53},"updated":"2016-12-13 21:50:46.000000000","message":"I don\u0027t think you need depends-on if making changes in the same repo. Just rebase your change on top of other change and it will work.","commit_id":"975657b0da5dc5674fa1d26ffc2b8653c204d108"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"1abffb84034c180fe117a4e390d8e29fd3bf3e73","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This document describes the steps to test zero downtime"},{"line_number":10,"context_line":"upgrade process."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Depends-On: I65cc7d95cee86af7016b79d7dee0f820aff216fb"},{"line_number":13,"context_line":"Change-Id: Ieafd65da959f6153524f1f3ab0522025b94cbef4"},{"line_number":14,"context_line":"Co-Authored-by: Anusha Unnam \u003canusha.unnam@intel.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"da4df55a_9925835d","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":53},"in_reply_to":"1a6eadb0_49e1bacf","updated":"2016-12-28 18:54:50.000000000","message":"Done","commit_id":"975657b0da5dc5674fa1d26ffc2b8653c204d108"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"207434d1a1272289c3b52d0651488ebffcbca38f","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This document describes the steps to test zero downtime"},{"line_number":10,"context_line":"upgrade process."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Depends-On: I65cc7d95cee86af7016b79d7dee0f820aff216fb"},{"line_number":13,"context_line":"Change-Id: Ieafd65da959f6153524f1f3ab0522025b94cbef4"},{"line_number":14,"context_line":"Co-Authored-by: Anusha Unnam \u003canusha.unnam@intel.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"1a6eadb0_49e1bacf","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":53},"in_reply_to":"1a6eadb0_bd4c7a71","updated":"2016-12-14 18:00:17.000000000","message":"+1 it does strange things inside a single repo, I would drop that.","commit_id":"975657b0da5dc5674fa1d26ffc2b8653c204d108"}],"doc/source/testing/zero-downtime-upgrade.rst":[{"author":{"_account_id":18462,"name":"Rahul U Nair","email":"rahulunair@gmail.com","username":"rahulunair"},"change_message_id":"dadaad243ed262b50204cfbec1be701f46b1c2c3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Testing Zero Downtime Upgrade Process"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_367bf68d","line":1,"range":{"start_line":1,"start_character":37,"end_line":1,"end_character":48},"updated":"2016-11-09 17:13:28.000000000","message":"nit: not needed","commit_id":"93a42fd750e95028f7e06f637afe85f55090ebe8"},{"author":{"_account_id":18462,"name":"Rahul U Nair","email":"rahulunair@gmail.com","username":"rahulunair"},"change_message_id":"dadaad243ed262b50204cfbec1be701f46b1c2c3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Testing Zero Downtime Upgrade Process"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Zero down time upgrade allows services to completely eliminate"},{"line_number":6,"context_line":"API downtime of the control plane during upgrade.This page describes how"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_966a02b2","line":3,"range":{"start_line":3,"start_character":38,"end_line":3,"end_character":48},"updated":"2016-11-09 17:13:28.000000000","message":"nit: not needed","commit_id":"93a42fd750e95028f7e06f637afe85f55090ebe8"},{"author":{"_account_id":18462,"name":"Rahul U Nair","email":"rahulunair@gmail.com","username":"rahulunair"},"change_message_id":"dadaad243ed262b50204cfbec1be701f46b1c2c3","unresolved":false,"context_lines":[{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Zero down time upgrade allows services to completely eliminate"},{"line_number":6,"context_line":"API downtime of the control plane during upgrade.This page describes how"},{"line_number":7,"context_line":"to test the zero down time upgrade process."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This process tests upgrade from N to N+1 release."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_1676f2a3","line":6,"range":{"start_line":6,"start_character":49,"end_line":6,"end_character":53},"updated":"2016-11-09 17:13:28.000000000","message":"nit: . This","commit_id":"93a42fd750e95028f7e06f637afe85f55090ebe8"},{"author":{"_account_id":18462,"name":"Rahul U Nair","email":"rahulunair@gmail.com","username":"rahulunair"},"change_message_id":"dadaad243ed262b50204cfbec1be701f46b1c2c3","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"------------------------------------------"},{"line_number":12,"context_line":"Environment"},{"line_number":13,"context_line":"------------------------------------------"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Multinode devstack environment with 2 nodes:"},{"line_number":16,"context_line":"    controller  - All services (N release)"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_96b1224a","line":13,"range":{"start_line":13,"start_character":11,"end_line":13,"end_character":42},"updated":"2016-11-09 17:13:28.000000000","message":"nit: not needed","commit_id":"93a42fd750e95028f7e06f637afe85f55090ebe8"},{"author":{"_account_id":18462,"name":"Rahul U Nair","email":"rahulunair@gmail.com","username":"rahulunair"},"change_message_id":"dadaad243ed262b50204cfbec1be701f46b1c2c3","unresolved":false,"context_lines":[{"line_number":17,"context_line":"    compute-api - Only n-cpu and n-api services (N release)"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Highly available load balancer (HAProxy) on top of the n-api services."},{"line_number":20,"context_line":"See Instructions to setup HAProxy below."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"------------------------------------------"},{"line_number":23,"context_line":"Instructions to setup HAProxy"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_567a2a78","line":20,"range":{"start_line":20,"start_character":4,"end_line":20,"end_character":16},"updated":"2016-11-09 17:13:28.000000000","message":"nit: instructions","commit_id":"93a42fd750e95028f7e06f637afe85f55090ebe8"},{"author":{"_account_id":18462,"name":"Rahul U Nair","email":"rahulunair@gmail.com","username":"rahulunair"},"change_message_id":"dadaad243ed262b50204cfbec1be701f46b1c2c3","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Highly available load balancer (HAProxy) on top of the n-api services."},{"line_number":20,"context_line":"See Instructions to setup HAProxy below."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"------------------------------------------"},{"line_number":23,"context_line":"Instructions to setup HAProxy"},{"line_number":24,"context_line":"------------------------------------------"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_969842c2","line":22,"range":{"start_line":22,"start_character":29,"end_line":22,"end_character":42},"updated":"2016-11-09 17:13:28.000000000","message":"nit: not needed","commit_id":"93a42fd750e95028f7e06f637afe85f55090ebe8"},{"author":{"_account_id":18462,"name":"Rahul U Nair","email":"rahulunair@gmail.com","username":"rahulunair"},"change_message_id":"dadaad243ed262b50204cfbec1be701f46b1c2c3","unresolved":false,"context_lines":[{"line_number":23,"context_line":"Instructions to setup HAProxy"},{"line_number":24,"context_line":"------------------------------------------"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Install ha proxy and keepalived on both nodes."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":".. code-block:: bash"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_36f056fe","line":26,"range":{"start_line":26,"start_character":8,"end_line":26,"end_character":16},"updated":"2016-11-09 17:13:28.000000000","message":"nit: HAProxy","commit_id":"93a42fd750e95028f7e06f637afe85f55090ebe8"},{"author":{"_account_id":18462,"name":"Rahul U Nair","email":"rahulunair@gmail.com","username":"rahulunair"},"change_message_id":"dadaad243ed262b50204cfbec1be701f46b1c2c3","unresolved":false,"context_lines":[{"line_number":23,"context_line":"Instructions to setup HAProxy"},{"line_number":24,"context_line":"------------------------------------------"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Install ha proxy and keepalived on both nodes."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":".. code-block:: bash"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_96c68298","line":26,"range":{"start_line":26,"start_character":21,"end_line":26,"end_character":31},"updated":"2016-11-09 17:13:28.000000000","message":"nit: Keepalived","commit_id":"93a42fd750e95028f7e06f637afe85f55090ebe8"},{"author":{"_account_id":18462,"name":"Rahul U Nair","email":"rahulunair@gmail.com","username":"rahulunair"},"change_message_id":"dadaad243ed262b50204cfbec1be701f46b1c2c3","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    # apt-get install haproxy keepalived"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Let the kernel know that we intend to bind additional IP addresses that"},{"line_number":33,"context_line":"won\u0027t be defined in the interfaces file. To do that we edit /etc/sysctl.conf"},{"line_number":34,"context_line":"and add the following line: \u0027net.ipv4.ip_nonlocal_bind\u003d1\u0027"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":".. code-block:: bash"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_163992a4","line":33,"range":{"start_line":33,"start_character":47,"end_line":33,"end_character":59},"updated":"2016-11-09 17:13:28.000000000","message":"this, we need to edit the file","commit_id":"93a42fd750e95028f7e06f637afe85f55090ebe8"},{"author":{"_account_id":18462,"name":"Rahul U Nair","email":"rahulunair@gmail.com","username":"rahulunair"},"change_message_id":"dadaad243ed262b50204cfbec1be701f46b1c2c3","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    # sysctl -p"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"On both nodes add the below haproxy config"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":".. code-block:: bash"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_d6539ae0","line":46,"range":{"start_line":46,"start_character":28,"end_line":46,"end_character":35},"updated":"2016-11-09 17:13:28.000000000","message":"nit: HAProxy","commit_id":"93a42fd750e95028f7e06f637afe85f55090ebe8"},{"author":{"_account_id":18462,"name":"Rahul U Nair","email":"rahulunair@gmail.com","username":"rahulunair"},"change_message_id":"dadaad243ed262b50204cfbec1be701f46b1c2c3","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"     EOF"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Note: Just change ip for log in global section on each node."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"On both nodes add keepalived.conf"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_9674c268","line":91,"range":{"start_line":91,"start_character":18,"end_line":91,"end_character":20},"updated":"2016-11-09 17:13:28.000000000","message":"the IP","commit_id":"93a42fd750e95028f7e06f637afe85f55090ebe8"},{"author":{"_account_id":18462,"name":"Rahul U Nair","email":"rahulunair@gmail.com","username":"rahulunair"},"change_message_id":"dadaad243ed262b50204cfbec1be701f46b1c2c3","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"     EOF"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Note: Just change ip for log in global section on each node."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"On both nodes add keepalived.conf"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_f667beb4","line":91,"range":{"start_line":91,"start_character":32,"end_line":91,"end_character":38},"updated":"2016-11-09 17:13:28.000000000","message":"the global","commit_id":"93a42fd750e95028f7e06f637afe85f55090ebe8"},{"author":{"_account_id":18462,"name":"Rahul U Nair","email":"rahulunair@gmail.com","username":"rahulunair"},"change_message_id":"dadaad243ed262b50204cfbec1be701f46b1c2c3","unresolved":false,"context_lines":[{"line_number":120,"context_line":"                }"},{"line_number":121,"context_line":"    EOF"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Note: Change priority on node2 to 100 (or vice-versa). Add haproxy virtual ip."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Restart keepalived service."},{"line_number":126,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_d6ef1ae7","line":123,"range":{"start_line":123,"start_character":75,"end_line":123,"end_character":77},"updated":"2016-11-09 17:13:28.000000000","message":"IP","commit_id":"93a42fd750e95028f7e06f637afe85f55090ebe8"},{"author":{"_account_id":18462,"name":"Rahul U Nair","email":"rahulunair@gmail.com","username":"rahulunair"},"change_message_id":"dadaad243ed262b50204cfbec1be701f46b1c2c3","unresolved":false,"context_lines":[{"line_number":120,"context_line":"                }"},{"line_number":121,"context_line":"    EOF"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Note: Change priority on node2 to 100 (or vice-versa). Add haproxy virtual ip."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Restart keepalived service."},{"line_number":126,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_f615fee4","line":123,"range":{"start_line":123,"start_character":38,"end_line":123,"end_character":53},"updated":"2016-11-09 17:13:28.000000000","message":"nit: ( or vice-versa )","commit_id":"93a42fd750e95028f7e06f637afe85f55090ebe8"},{"author":{"_account_id":18462,"name":"Rahul U Nair","email":"rahulunair@gmail.com","username":"rahulunair"},"change_message_id":"dadaad243ed262b50204cfbec1be701f46b1c2c3","unresolved":false,"context_lines":[{"line_number":120,"context_line":"                }"},{"line_number":121,"context_line":"    EOF"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Note: Change priority on node2 to 100 (or vice-versa). Add haproxy virtual ip."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Restart keepalived service."},{"line_number":126,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_76e00efb","line":123,"range":{"start_line":123,"start_character":59,"end_line":123,"end_character":66},"updated":"2016-11-09 17:13:28.000000000","message":"nit: HAProxy","commit_id":"93a42fd750e95028f7e06f637afe85f55090ebe8"},{"author":{"_account_id":18462,"name":"Rahul U Nair","email":"rahulunair@gmail.com","username":"rahulunair"},"change_message_id":"dadaad243ed262b50204cfbec1be701f46b1c2c3","unresolved":false,"context_lines":[{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    # sudo service haproxy restart"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"When both the services are restarted, node with high priority for keepalived"},{"line_number":138,"context_line":"claims the virtual ip. You can check it using:"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":".. code-block:: bash"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_b6cd4687","line":137,"range":{"start_line":137,"start_character":23,"end_line":137,"end_character":26},"updated":"2016-11-09 17:13:28.000000000","message":"nit: have","commit_id":"93a42fd750e95028f7e06f637afe85f55090ebe8"},{"author":{"_account_id":18462,"name":"Rahul U Nair","email":"rahulunair@gmail.com","username":"rahulunair"},"change_message_id":"dadaad243ed262b50204cfbec1be701f46b1c2c3","unresolved":false,"context_lines":[{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    # sudo service haproxy restart"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"When both the services are restarted, node with high priority for keepalived"},{"line_number":138,"context_line":"claims the virtual ip. You can check it using:"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":".. code-block:: bash"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_f6c33e55","line":137,"range":{"start_line":137,"start_character":38,"end_line":137,"end_character":42},"updated":"2016-11-09 17:13:28.000000000","message":"nit: the node","commit_id":"93a42fd750e95028f7e06f637afe85f55090ebe8"},{"author":{"_account_id":18462,"name":"Rahul U Nair","email":"rahulunair@gmail.com","username":"rahulunair"},"change_message_id":"dadaad243ed262b50204cfbec1be701f46b1c2c3","unresolved":false,"context_lines":[{"line_number":142,"context_line":"    # ip a"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"------------------------------------------"},{"line_number":146,"context_line":"Zero down time upgrade process"},{"line_number":147,"context_line":"------------------------------------------"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_76ae4e99","line":145,"range":{"start_line":145,"start_character":30,"end_line":145,"end_character":42},"updated":"2016-11-09 17:13:28.000000000","message":"not needed","commit_id":"93a42fd750e95028f7e06f637afe85f55090ebe8"},{"author":{"_account_id":18462,"name":"Rahul U Nair","email":"rahulunair@gmail.com","username":"rahulunair"},"change_message_id":"dadaad243ed262b50204cfbec1be701f46b1c2c3","unresolved":false,"context_lines":[{"line_number":149,"context_line":"Before maintenance window"},{"line_number":150,"context_line":"\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"* Change nova-api endpoint in keystone to point to the HA proxy virtual IP."},{"line_number":153,"context_line":"* Run tempest tests"},{"line_number":154,"context_line":"* Check if n-api services on both nodes are serving the requests."},{"line_number":155,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_f69a5e6d","line":152,"range":{"start_line":152,"start_character":55,"end_line":152,"end_character":63},"updated":"2016-11-09 17:13:28.000000000","message":"HAProxy","commit_id":"93a42fd750e95028f7e06f637afe85f55090ebe8"},{"author":{"_account_id":18462,"name":"Rahul U Nair","email":"rahulunair@gmail.com","username":"rahulunair"},"change_message_id":"dadaad243ed262b50204cfbec1be701f46b1c2c3","unresolved":false,"context_lines":[{"line_number":157,"context_line":"\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"* Start the process with controller node."},{"line_number":160,"context_line":"* Install the code for the next version of Nova including all the"},{"line_number":161,"context_line":"  python dependencies."},{"line_number":162,"context_line":"* Using the newly installed nova code, run the DB sync (nova-manage db sync and"},{"line_number":163,"context_line":"  nova-manage api_db sync)."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_f6717e45","line":160,"range":{"start_line":160,"start_character":43,"end_line":160,"end_character":47},"updated":"2016-11-09 17:13:28.000000000","message":"nit: nova","commit_id":"93a42fd750e95028f7e06f637afe85f55090ebe8"},{"author":{"_account_id":18462,"name":"Rahul U Nair","email":"rahulunair@gmail.com","username":"rahulunair"},"change_message_id":"dadaad243ed262b50204cfbec1be701f46b1c2c3","unresolved":false,"context_lines":[{"line_number":158,"context_line":""},{"line_number":159,"context_line":"* Start the process with controller node."},{"line_number":160,"context_line":"* Install the code for the next version of Nova including all the"},{"line_number":161,"context_line":"  python dependencies."},{"line_number":162,"context_line":"* Using the newly installed nova code, run the DB sync (nova-manage db sync and"},{"line_number":163,"context_line":"  nova-manage api_db sync)."},{"line_number":164,"context_line":"* Set [upgrade_levels]compute \u003d auto in nova.conf."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_16919247","line":161,"range":{"start_line":161,"start_character":2,"end_line":161,"end_character":8},"updated":"2016-11-09 17:13:28.000000000","message":"Python","commit_id":"93a42fd750e95028f7e06f637afe85f55090ebe8"},{"author":{"_account_id":18462,"name":"Rahul U Nair","email":"rahulunair@gmail.com","username":"rahulunair"},"change_message_id":"dadaad243ed262b50204cfbec1be701f46b1c2c3","unresolved":false,"context_lines":[{"line_number":163,"context_line":"  nova-manage api_db sync)."},{"line_number":164,"context_line":"* Set [upgrade_levels]compute \u003d auto in nova.conf."},{"line_number":165,"context_line":"* Starting with n-cond restart all services except n-api and n-cpu."},{"line_number":166,"context_line":"* In small batches gracefully shutdown nova-compute, then start the compute service"},{"line_number":167,"context_line":"  with new version of the code."},{"line_number":168,"context_line":"* Run tempest tests."},{"line_number":169,"context_line":"* Drain connections on n-api while the tempest tests are running."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_56978a39","line":166,"range":{"start_line":166,"start_character":68,"end_line":166,"end_character":75},"updated":"2016-11-09 17:13:28.000000000","message":"not: Compute","commit_id":"93a42fd750e95028f7e06f637afe85f55090ebe8"},{"author":{"_account_id":18462,"name":"Rahul U Nair","email":"rahulunair@gmail.com","username":"rahulunair"},"change_message_id":"dadaad243ed262b50204cfbec1be701f46b1c2c3","unresolved":false,"context_lines":[{"line_number":167,"context_line":"  with new version of the code."},{"line_number":168,"context_line":"* Run tempest tests."},{"line_number":169,"context_line":"* Drain connections on n-api while the tempest tests are running."},{"line_number":170,"context_line":"  Haproxy allows you to drain the connections by setting weight to zero"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":".. code-block:: bash"},{"line_number":173,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_d6ab9a73","line":170,"range":{"start_line":170,"start_character":2,"end_line":170,"end_character":9},"updated":"2016-11-09 17:13:28.000000000","message":"nit: HAProxy","commit_id":"93a42fd750e95028f7e06f637afe85f55090ebe8"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"95d46619f04cde0384b78c9068b5b6ef74d80704","unresolved":false,"context_lines":[{"line_number":2,"context_line":"Testing Zero Downtime Upgrade Process"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Zero down time upgrade allows services to completely eliminate"},{"line_number":6,"context_line":"API downtime of the control plane during upgrade. This page describes how"},{"line_number":7,"context_line":"to test the zero down time upgrade process."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This process tests upgrade from N to N+1 release."}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a629dbe_9ee470ac","line":6,"range":{"start_line":5,"start_character":23,"end_line":6,"end_character":48},"updated":"2016-11-11 20:23:39.000000000","message":"eliminates any disruption to nova API service.","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"8c2cf420a27337afe3cae2f269cd4d88c3c2a785","unresolved":false,"context_lines":[{"line_number":2,"context_line":"Testing Zero Downtime Upgrade Process"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Zero down time upgrade allows services to completely eliminate"},{"line_number":6,"context_line":"API downtime of the control plane during upgrade. This page describes how"},{"line_number":7,"context_line":"to test the zero down time upgrade process."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This process tests upgrade from N to N+1 release."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_009f0704","line":6,"range":{"start_line":5,"start_character":23,"end_line":6,"end_character":48},"in_reply_to":"9a629dbe_9ee470ac","updated":"2016-11-14 22:56:07.000000000","message":"Done","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"95d46619f04cde0384b78c9068b5b6ef74d80704","unresolved":false,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Zero down time upgrade allows services to completely eliminate"},{"line_number":6,"context_line":"API downtime of the control plane during upgrade. This page describes how"},{"line_number":7,"context_line":"to test the zero down time upgrade process."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This process tests upgrade from N to N+1 release."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a629dbe_fe9acc12","line":7,"updated":"2016-11-11 20:23:39.000000000","message":"I think its worth to mention in the beginning that in this process API services are upgraded in the last. Also mention that their might be some performance hit, but no downtime.","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"8c2cf420a27337afe3cae2f269cd4d88c3c2a785","unresolved":false,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Zero down time upgrade allows services to completely eliminate"},{"line_number":6,"context_line":"API downtime of the control plane during upgrade. This page describes how"},{"line_number":7,"context_line":"to test the zero down time upgrade process."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This process tests upgrade from N to N+1 release."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_20a40356","line":7,"in_reply_to":"9a629dbe_fe9acc12","updated":"2016-11-14 22:56:07.000000000","message":"Done","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a30e14ca59f33b1f05399400bcd834cae9a1d209","unresolved":false,"context_lines":[{"line_number":6,"context_line":"API downtime of the control plane during upgrade. This page describes how"},{"line_number":7,"context_line":"to test the zero down time upgrade process."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This process tests upgrade from N to N+1 release."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"-----------"},{"line_number":12,"context_line":"Environment"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a629dbe_4c535ae2","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":49},"updated":"2016-11-10 11:16:25.000000000","message":"We should probably emphasise the fact that, like standard non-zero downtime upgrades, this is the only type of upgrade you can do","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"95d46619f04cde0384b78c9068b5b6ef74d80704","unresolved":false,"context_lines":[{"line_number":6,"context_line":"API downtime of the control plane during upgrade. This page describes how"},{"line_number":7,"context_line":"to test the zero down time upgrade process."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This process tests upgrade from N to N+1 release."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"-----------"},{"line_number":12,"context_line":"Environment"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a629dbe_be8db4d4","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":49},"in_reply_to":"9a629dbe_4c535ae2","updated":"2016-11-11 20:23:39.000000000","message":"Their is another one with zero-impact upgrades. https://governance.openstack.org/reference/tags/assert_supports-zero-impact-upgrade.html\n\nSo in my opinion if we give the process summary above than this is not needed.","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"8c2cf420a27337afe3cae2f269cd4d88c3c2a785","unresolved":false,"context_lines":[{"line_number":6,"context_line":"API downtime of the control plane during upgrade. This page describes how"},{"line_number":7,"context_line":"to test the zero down time upgrade process."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This process tests upgrade from N to N+1 release."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"-----------"},{"line_number":12,"context_line":"Environment"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_303ff826","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":49},"in_reply_to":"9a629dbe_4c535ae2","updated":"2016-11-14 22:56:07.000000000","message":"ya. This is the only type of upgrade we can do. So I don\u0027t think I need to mention that. I will just remove it and say checkout next version of the code in the upgrade steps.","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a30e14ca59f33b1f05399400bcd834cae9a1d209","unresolved":false,"context_lines":[{"line_number":19,"context_line":"* Highly available load balancer (HAProxy) on top of the n-api services."},{"line_number":20,"context_line":"  See instructions to setup HAProxy below."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"-----------------------------"},{"line_number":23,"context_line":"Instructions to setup HAProxy"},{"line_number":24,"context_line":"-----------------------------"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a629dbe_8cde520f","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":29},"updated":"2016-11-10 11:16:25.000000000","message":"Do we normally include overlines for non-titles?","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"8c2cf420a27337afe3cae2f269cd4d88c3c2a785","unresolved":false,"context_lines":[{"line_number":19,"context_line":"* Highly available load balancer (HAProxy) on top of the n-api services."},{"line_number":20,"context_line":"  See instructions to setup HAProxy below."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"-----------------------------"},{"line_number":23,"context_line":"Instructions to setup HAProxy"},{"line_number":24,"context_line":"-----------------------------"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_105f5c73","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":29},"in_reply_to":"9a629dbe_8cde520f","updated":"2016-11-14 22:56:07.000000000","message":"I added this as a section for instructions and this is a title.","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a30e14ca59f33b1f05399400bcd834cae9a1d209","unresolved":false,"context_lines":[{"line_number":22,"context_line":"-----------------------------"},{"line_number":23,"context_line":"Instructions to setup HAProxy"},{"line_number":24,"context_line":"-----------------------------"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Install HAProxy and Keepalived on both nodes."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":".. code-block:: bash"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a629dbe_cc320a5e","line":25,"updated":"2016-11-10 11:16:25.000000000","message":"A little introduction on why this is necessary would be really helpful","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"8c2cf420a27337afe3cae2f269cd4d88c3c2a785","unresolved":false,"context_lines":[{"line_number":22,"context_line":"-----------------------------"},{"line_number":23,"context_line":"Instructions to setup HAProxy"},{"line_number":24,"context_line":"-----------------------------"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Install HAProxy and Keepalived on both nodes."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":".. code-block:: bash"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_d0f2446f","line":25,"in_reply_to":"9a629dbe_cc320a5e","updated":"2016-11-14 22:56:07.000000000","message":"Done","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"95d46619f04cde0384b78c9068b5b6ef74d80704","unresolved":false,"context_lines":[{"line_number":22,"context_line":"-----------------------------"},{"line_number":23,"context_line":"Instructions to setup HAProxy"},{"line_number":24,"context_line":"-----------------------------"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Install HAProxy and Keepalived on both nodes."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":".. code-block:: bash"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a629dbe_de334812","line":25,"in_reply_to":"9a629dbe_cc320a5e","updated":"2016-11-11 20:23:39.000000000","message":"So I think its good to link the actual process here,  https://review.openstack.org/#/c/393931/. Make this patch depends on that. That will give context to readers. Maybe do this in the beginning.","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"8c2cf420a27337afe3cae2f269cd4d88c3c2a785","unresolved":false,"context_lines":[{"line_number":22,"context_line":"-----------------------------"},{"line_number":23,"context_line":"Instructions to setup HAProxy"},{"line_number":24,"context_line":"-----------------------------"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Install HAProxy and Keepalived on both nodes."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":".. code-block:: bash"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_b0edc890","line":25,"in_reply_to":"9a629dbe_de334812","updated":"2016-11-14 22:56:07.000000000","message":"I don\u0027t think it would be nice to add the gerrit link here. I will add Depends on for this patch as you said to give context to the users. I can add the actual link here when it is merged.","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a30e14ca59f33b1f05399400bcd834cae9a1d209","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    # cd /etc/haproxy"},{"line_number":51,"context_line":"    # cat \u003e\u003e haproxy.cfg \u003c\u003cEOF"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"                        global"},{"line_number":54,"context_line":"                                chroot /var/lib/haproxy"},{"line_number":55,"context_line":"                                user haproxy"},{"line_number":56,"context_line":"                                group haproxy"},{"line_number":57,"context_line":"                                daemon"},{"line_number":58,"context_line":"                                log 192.168.0.88 local0"},{"line_number":59,"context_line":"                                pidfile  /var/run/haproxy.pid"},{"line_number":60,"context_line":"                                #stats socket /var/lib/haproxy/stats"},{"line_number":61,"context_line":"                                stats socket /var/run/haproxy.sock mode 600 level admin"},{"line_number":62,"context_line":"                                stats timeout 2m"},{"line_number":63,"context_line":"                                maxconn 4000"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"                        defaults"},{"line_number":66,"context_line":"                               log  global"},{"line_number":67,"context_line":"                               maxconn  8000"},{"line_number":68,"context_line":"                               mode  http"},{"line_number":69,"context_line":"                               option  redispatch"},{"line_number":70,"context_line":"                               retries  3"},{"line_number":71,"context_line":"                               stats  enable"},{"line_number":72,"context_line":"                               timeout  http-request 10s"},{"line_number":73,"context_line":"                               timeout  queue 1m"},{"line_number":74,"context_line":"                               timeout  connect 10s"},{"line_number":75,"context_line":"                               timeout  client 1m"},{"line_number":76,"context_line":"                               timeout  server 1m"},{"line_number":77,"context_line":"                               timeout  check 10s"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"                        frontend nova-api-vip"},{"line_number":80,"context_line":"                          bind 192.168.0.95:8282             \u003c\u003cha proxy virtual ip\u003e\u003e"},{"line_number":81,"context_line":"                          default_backend nova-api"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"                        backend nova-api"},{"line_number":84,"context_line":"                          balance  roundrobin"},{"line_number":85,"context_line":"                          option  tcplog"},{"line_number":86,"context_line":"                          server  controller 192.168.0.88:8774  check"},{"line_number":87,"context_line":"                          server  apicomp  192.168.0.89:8774  check"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"     EOF"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a629dbe_ac3236a5","line":87,"range":{"start_line":53,"start_character":0,"end_line":87,"end_character":67},"updated":"2016-11-10 11:16:25.000000000","message":"Does this need to be indented quite so much?","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"95d46619f04cde0384b78c9068b5b6ef74d80704","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    # cd /etc/haproxy"},{"line_number":51,"context_line":"    # cat \u003e\u003e haproxy.cfg \u003c\u003cEOF"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"                        global"},{"line_number":54,"context_line":"                                chroot /var/lib/haproxy"},{"line_number":55,"context_line":"                                user haproxy"},{"line_number":56,"context_line":"                                group haproxy"},{"line_number":57,"context_line":"                                daemon"},{"line_number":58,"context_line":"                                log 192.168.0.88 local0"},{"line_number":59,"context_line":"                                pidfile  /var/run/haproxy.pid"},{"line_number":60,"context_line":"                                #stats socket /var/lib/haproxy/stats"},{"line_number":61,"context_line":"                                stats socket /var/run/haproxy.sock mode 600 level admin"},{"line_number":62,"context_line":"                                stats timeout 2m"},{"line_number":63,"context_line":"                                maxconn 4000"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"                        defaults"},{"line_number":66,"context_line":"                               log  global"},{"line_number":67,"context_line":"                               maxconn  8000"},{"line_number":68,"context_line":"                               mode  http"},{"line_number":69,"context_line":"                               option  redispatch"},{"line_number":70,"context_line":"                               retries  3"},{"line_number":71,"context_line":"                               stats  enable"},{"line_number":72,"context_line":"                               timeout  http-request 10s"},{"line_number":73,"context_line":"                               timeout  queue 1m"},{"line_number":74,"context_line":"                               timeout  connect 10s"},{"line_number":75,"context_line":"                               timeout  client 1m"},{"line_number":76,"context_line":"                               timeout  server 1m"},{"line_number":77,"context_line":"                               timeout  check 10s"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"                        frontend nova-api-vip"},{"line_number":80,"context_line":"                          bind 192.168.0.95:8282             \u003c\u003cha proxy virtual ip\u003e\u003e"},{"line_number":81,"context_line":"                          default_backend nova-api"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"                        backend nova-api"},{"line_number":84,"context_line":"                          balance  roundrobin"},{"line_number":85,"context_line":"                          option  tcplog"},{"line_number":86,"context_line":"                          server  controller 192.168.0.88:8774  check"},{"line_number":87,"context_line":"                          server  apicomp  192.168.0.89:8774  check"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"     EOF"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a629dbe_be005403","line":87,"range":{"start_line":53,"start_character":0,"end_line":87,"end_character":67},"in_reply_to":"9a629dbe_ac3236a5","updated":"2016-11-11 20:23:39.000000000","message":"+1","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"8c2cf420a27337afe3cae2f269cd4d88c3c2a785","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    # cd /etc/haproxy"},{"line_number":51,"context_line":"    # cat \u003e\u003e haproxy.cfg \u003c\u003cEOF"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"                        global"},{"line_number":54,"context_line":"                                chroot /var/lib/haproxy"},{"line_number":55,"context_line":"                                user haproxy"},{"line_number":56,"context_line":"                                group haproxy"},{"line_number":57,"context_line":"                                daemon"},{"line_number":58,"context_line":"                                log 192.168.0.88 local0"},{"line_number":59,"context_line":"                                pidfile  /var/run/haproxy.pid"},{"line_number":60,"context_line":"                                #stats socket /var/lib/haproxy/stats"},{"line_number":61,"context_line":"                                stats socket /var/run/haproxy.sock mode 600 level admin"},{"line_number":62,"context_line":"                                stats timeout 2m"},{"line_number":63,"context_line":"                                maxconn 4000"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"                        defaults"},{"line_number":66,"context_line":"                               log  global"},{"line_number":67,"context_line":"                               maxconn  8000"},{"line_number":68,"context_line":"                               mode  http"},{"line_number":69,"context_line":"                               option  redispatch"},{"line_number":70,"context_line":"                               retries  3"},{"line_number":71,"context_line":"                               stats  enable"},{"line_number":72,"context_line":"                               timeout  http-request 10s"},{"line_number":73,"context_line":"                               timeout  queue 1m"},{"line_number":74,"context_line":"                               timeout  connect 10s"},{"line_number":75,"context_line":"                               timeout  client 1m"},{"line_number":76,"context_line":"                               timeout  server 1m"},{"line_number":77,"context_line":"                               timeout  check 10s"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"                        frontend nova-api-vip"},{"line_number":80,"context_line":"                          bind 192.168.0.95:8282             \u003c\u003cha proxy virtual ip\u003e\u003e"},{"line_number":81,"context_line":"                          default_backend nova-api"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"                        backend nova-api"},{"line_number":84,"context_line":"                          balance  roundrobin"},{"line_number":85,"context_line":"                          option  tcplog"},{"line_number":86,"context_line":"                          server  controller 192.168.0.88:8774  check"},{"line_number":87,"context_line":"                          server  apicomp  192.168.0.89:8774  check"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"     EOF"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_2bca2950","line":87,"range":{"start_line":53,"start_character":0,"end_line":87,"end_character":67},"in_reply_to":"9a629dbe_ac3236a5","updated":"2016-11-14 22:56:07.000000000","message":"Done","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a30e14ca59f33b1f05399400bcd834cae9a1d209","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"     EOF"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Note: Just change the IP for log in the global section on each node."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"On both nodes add keepalived.conf"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a629dbe_0ce962e6","line":91,"range":{"start_line":91,"start_character":0,"end_line":91,"end_character":68},"updated":"2016-11-10 11:16:25.000000000","message":"Maybe use markup for this\n\n    .. note::\n\n    Just change the IP for log in the global section on each node.","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"8c2cf420a27337afe3cae2f269cd4d88c3c2a785","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"     EOF"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Note: Just change the IP for log in the global section on each node."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"On both nodes add keepalived.conf"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_cbe1b5d2","line":91,"range":{"start_line":91,"start_character":0,"end_line":91,"end_character":68},"in_reply_to":"9a629dbe_0ce962e6","updated":"2016-11-14 22:56:07.000000000","message":"Done","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a30e14ca59f33b1f05399400bcd834cae9a1d209","unresolved":false,"context_lines":[{"line_number":97,"context_line":"    # cd /etc/keepalived"},{"line_number":98,"context_line":"    # cat \u003e\u003e keepalived.conf \u003c\u003cEOF"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"               global_defs {"},{"line_number":101,"context_line":"                  router_id controller"},{"line_number":102,"context_line":"                }"},{"line_number":103,"context_line":"                vrrp_script haproxy {"},{"line_number":104,"context_line":"                  script \"killall -0 haproxy\""},{"line_number":105,"context_line":"                  interval 2"},{"line_number":106,"context_line":"                  weight 2"},{"line_number":107,"context_line":"                }"},{"line_number":108,"context_line":"                vrrp_instance 50 {"},{"line_number":109,"context_line":"                  virtual_router_id 50"},{"line_number":110,"context_line":"                  advert_int 1"},{"line_number":111,"context_line":"                  priority 101"},{"line_number":112,"context_line":"                  state MASTER"},{"line_number":113,"context_line":"                  interface eth0"},{"line_number":114,"context_line":"                  virtual_ipaddress {"},{"line_number":115,"context_line":"                    192.168.0.95 dev eth0"},{"line_number":116,"context_line":"                  }"},{"line_number":117,"context_line":"                  track_script {"},{"line_number":118,"context_line":"                    haproxy"},{"line_number":119,"context_line":"                  }"},{"line_number":120,"context_line":"                }"},{"line_number":121,"context_line":"    EOF"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Note: Change priority on node2 to 100 ( or vice-versa). Add HAProxy virtual IP."}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a629dbe_acc07651","line":120,"range":{"start_line":100,"start_character":0,"end_line":120,"end_character":17},"updated":"2016-11-10 11:16:25.000000000","message":"ditto","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"8c2cf420a27337afe3cae2f269cd4d88c3c2a785","unresolved":false,"context_lines":[{"line_number":97,"context_line":"    # cd /etc/keepalived"},{"line_number":98,"context_line":"    # cat \u003e\u003e keepalived.conf \u003c\u003cEOF"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"               global_defs {"},{"line_number":101,"context_line":"                  router_id controller"},{"line_number":102,"context_line":"                }"},{"line_number":103,"context_line":"                vrrp_script haproxy {"},{"line_number":104,"context_line":"                  script \"killall -0 haproxy\""},{"line_number":105,"context_line":"                  interval 2"},{"line_number":106,"context_line":"                  weight 2"},{"line_number":107,"context_line":"                }"},{"line_number":108,"context_line":"                vrrp_instance 50 {"},{"line_number":109,"context_line":"                  virtual_router_id 50"},{"line_number":110,"context_line":"                  advert_int 1"},{"line_number":111,"context_line":"                  priority 101"},{"line_number":112,"context_line":"                  state MASTER"},{"line_number":113,"context_line":"                  interface eth0"},{"line_number":114,"context_line":"                  virtual_ipaddress {"},{"line_number":115,"context_line":"                    192.168.0.95 dev eth0"},{"line_number":116,"context_line":"                  }"},{"line_number":117,"context_line":"                  track_script {"},{"line_number":118,"context_line":"                    haproxy"},{"line_number":119,"context_line":"                  }"},{"line_number":120,"context_line":"                }"},{"line_number":121,"context_line":"    EOF"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Note: Change priority on node2 to 100 ( or vice-versa). Add HAProxy virtual IP."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_ebe671e7","line":120,"range":{"start_line":100,"start_character":0,"end_line":120,"end_character":17},"in_reply_to":"9a629dbe_acc07651","updated":"2016-11-14 22:56:07.000000000","message":"Done","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a30e14ca59f33b1f05399400bcd834cae9a1d209","unresolved":false,"context_lines":[{"line_number":120,"context_line":"                }"},{"line_number":121,"context_line":"    EOF"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Note: Change priority on node2 to 100 ( or vice-versa). Add HAProxy virtual IP."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Restart keepalived service."},{"line_number":126,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a629dbe_4cc6fa68","line":123,"range":{"start_line":123,"start_character":0,"end_line":123,"end_character":79},"updated":"2016-11-10 11:16:25.000000000","message":"markup","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"8c2cf420a27337afe3cae2f269cd4d88c3c2a785","unresolved":false,"context_lines":[{"line_number":120,"context_line":"                }"},{"line_number":121,"context_line":"    EOF"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Note: Change priority on node2 to 100 ( or vice-versa). Add HAProxy virtual IP."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Restart keepalived service."},{"line_number":126,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_ab039975","line":123,"range":{"start_line":123,"start_character":0,"end_line":123,"end_character":79},"in_reply_to":"9a629dbe_4cc6fa68","updated":"2016-11-14 22:56:07.000000000","message":"Done","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a30e14ca59f33b1f05399400bcd834cae9a1d209","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":".. code-block:: bash"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    # sudo service keepalived restart"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Add ENABLED\u003d1 in /etc/default/haproxy and then restart HAProxy service."},{"line_number":132,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a629dbe_2c7b8629","line":129,"range":{"start_line":129,"start_character":4,"end_line":129,"end_character":37},"updated":"2016-11-10 11:16:25.000000000","message":"If you\u0027re using sudo, you should be using \u0027$\u0027, not \u0027#\u0027","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"8c2cf420a27337afe3cae2f269cd4d88c3c2a785","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":".. code-block:: bash"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    # sudo service keepalived restart"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Add ENABLED\u003d1 in /etc/default/haproxy and then restart HAProxy service."},{"line_number":132,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_8befbdaf","line":129,"range":{"start_line":129,"start_character":4,"end_line":129,"end_character":37},"in_reply_to":"9a629dbe_2c7b8629","updated":"2016-11-14 22:56:07.000000000","message":"Done","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a30e14ca59f33b1f05399400bcd834cae9a1d209","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    # sudo service keepalived restart"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Add ENABLED\u003d1 in /etc/default/haproxy and then restart HAProxy service."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":".. code-block:: bash"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a629dbe_ec9b4e64","line":131,"range":{"start_line":131,"start_character":4,"end_line":131,"end_character":13},"updated":"2016-11-10 11:16:25.000000000","message":"``ENABLED\u003d1``","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"8c2cf420a27337afe3cae2f269cd4d88c3c2a785","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    # sudo service keepalived restart"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Add ENABLED\u003d1 in /etc/default/haproxy and then restart HAProxy service."},{"line_number":132,"context_line":""},{"line_number":133,"context_line":".. code-block:: bash"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_40b01f8c","line":131,"range":{"start_line":131,"start_character":4,"end_line":131,"end_character":13},"in_reply_to":"9a629dbe_ec9b4e64","updated":"2016-11-14 22:56:07.000000000","message":"Done","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a30e14ca59f33b1f05399400bcd834cae9a1d209","unresolved":false,"context_lines":[{"line_number":156,"context_line":"During maintenance window"},{"line_number":157,"context_line":"\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"* Start the process with controller node."},{"line_number":160,"context_line":"* Install the code for the next version of nova including all the"},{"line_number":161,"context_line":"  Python dependencies."},{"line_number":162,"context_line":"* Using the newly installed nova code, run the DB sync (nova-manage db sync and"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a629dbe_ec5c2e7f","line":159,"range":{"start_line":159,"start_character":8,"end_line":159,"end_character":19},"updated":"2016-11-10 11:16:25.000000000","message":"What process?","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a30e14ca59f33b1f05399400bcd834cae9a1d209","unresolved":false,"context_lines":[{"line_number":161,"context_line":"  Python dependencies."},{"line_number":162,"context_line":"* Using the newly installed nova code, run the DB sync (nova-manage db sync and"},{"line_number":163,"context_line":"  nova-manage api_db sync)."},{"line_number":164,"context_line":"* Set [upgrade_levels]compute \u003d auto in nova.conf."},{"line_number":165,"context_line":"* Starting with n-cond restart all services except n-api and n-cpu."},{"line_number":166,"context_line":"* In small batches gracefully shutdown nova-cpu, then start n-cpu service"},{"line_number":167,"context_line":"  with new version of the code."}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a629dbe_ac7f96de","line":164,"range":{"start_line":164,"start_character":6,"end_line":164,"end_character":36},"updated":"2016-11-10 11:16:25.000000000","message":"This could do with being broken out into a \u0027code-block\u0027 directive","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a30e14ca59f33b1f05399400bcd834cae9a1d209","unresolved":false,"context_lines":[{"line_number":169,"context_line":"* Drain connections on n-api while the tempest tests are running."},{"line_number":170,"context_line":"  HAProxy allows you to drain the connections by setting weight to zero"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":".. code-block:: bash"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    # echo \"set weight nova-api/\u003c\u003cserver\u003e\u003e 0\" | sudo socat /var/run/haproxy.sock stdio"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"or disable service using"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":".. code-block:: bash"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    # echo \"disable server nova-api/\u003c\u003cserver\u003e\u003e\" | sudo socat /var/run/haproxy.sock stdio"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"This allows the current node to complete all the pending requests. When this"},{"line_number":183,"context_line":"is being upgraded, other api node serves the requests. This way we can"},{"line_number":184,"context_line":"achieve zero down time."},{"line_number":185,"context_line":" * Restart n-api service and enable n-api using the command"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":".. code-block:: bash"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"    # echo \"enable server nova-api/\u003c\u003cserver\u003e\u003e\" | sudo socat /var/run/haproxy.sock stdio."},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"At this point, both old api and new api serves requests."},{"line_number":192,"context_line":" * Upgrade other nodes in the same way."}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a629dbe_2c6c6634","line":189,"range":{"start_line":172,"start_character":0,"end_line":189,"end_character":88},"updated":"2016-11-10 11:16:25.000000000","message":"This should be indented by two spaces","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"8c2cf420a27337afe3cae2f269cd4d88c3c2a785","unresolved":false,"context_lines":[{"line_number":169,"context_line":"* Drain connections on n-api while the tempest tests are running."},{"line_number":170,"context_line":"  HAProxy allows you to drain the connections by setting weight to zero"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":".. code-block:: bash"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    # echo \"set weight nova-api/\u003c\u003cserver\u003e\u003e 0\" | sudo socat /var/run/haproxy.sock stdio"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"or disable service using"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":".. code-block:: bash"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    # echo \"disable server nova-api/\u003c\u003cserver\u003e\u003e\" | sudo socat /var/run/haproxy.sock stdio"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"This allows the current node to complete all the pending requests. When this"},{"line_number":183,"context_line":"is being upgraded, other api node serves the requests. This way we can"},{"line_number":184,"context_line":"achieve zero down time."},{"line_number":185,"context_line":" * Restart n-api service and enable n-api using the command"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":".. code-block:: bash"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"    # echo \"enable server nova-api/\u003c\u003cserver\u003e\u003e\" | sudo socat /var/run/haproxy.sock stdio."},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"At this point, both old api and new api serves requests."},{"line_number":192,"context_line":" * Upgrade other nodes in the same way."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_80aa3718","line":189,"range":{"start_line":172,"start_character":0,"end_line":189,"end_character":88},"in_reply_to":"9a629dbe_2c6c6634","updated":"2016-11-14 22:56:07.000000000","message":"Coudn\u0027t indent by 2 spaces. Losing code block when 2 spaces are given.","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a30e14ca59f33b1f05399400bcd834cae9a1d209","unresolved":false,"context_lines":[{"line_number":195,"context_line":"After maintenance window"},{"line_number":196,"context_line":"\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"* Send the SIG_HUP signal once all the services are upgraded, so all the services clear any"},{"line_number":199,"context_line":"  cached service version data."},{"line_number":200,"context_line":"* Complete all online data migrations using"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":".. code-block:: bash"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a629dbe_accdd632","line":199,"range":{"start_line":198,"start_character":0,"end_line":199,"end_character":30},"updated":"2016-11-10 11:16:25.000000000","message":"Could you give an example?","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"8c2cf420a27337afe3cae2f269cd4d88c3c2a785","unresolved":false,"context_lines":[{"line_number":195,"context_line":"After maintenance window"},{"line_number":196,"context_line":"\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"* Send the SIG_HUP signal once all the services are upgraded, so all the services clear any"},{"line_number":199,"context_line":"  cached service version data."},{"line_number":200,"context_line":"* Complete all online data migrations using"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":".. code-block:: bash"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_a0a7334e","line":199,"range":{"start_line":198,"start_character":0,"end_line":199,"end_character":30},"in_reply_to":"9a629dbe_accdd632","updated":"2016-11-14 22:56:07.000000000","message":"Done","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a30e14ca59f33b1f05399400bcd834cae9a1d209","unresolved":false,"context_lines":[{"line_number":201,"context_line":""},{"line_number":202,"context_line":".. code-block:: bash"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"    # nova-manage db online_data_migrations --limit\u003cnumber\u003e."},{"line_number":205,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a629dbe_ccce8a2c","line":204,"range":{"start_line":204,"start_character":59,"end_line":204,"end_character":60},"updated":"2016-11-10 11:16:25.000000000","message":"Should this be here?","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"8c2cf420a27337afe3cae2f269cd4d88c3c2a785","unresolved":false,"context_lines":[{"line_number":201,"context_line":""},{"line_number":202,"context_line":".. code-block:: bash"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"    # nova-manage db online_data_migrations --limit\u003cnumber\u003e."},{"line_number":205,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_e0676b23","line":204,"range":{"start_line":204,"start_character":59,"end_line":204,"end_character":60},"in_reply_to":"9a629dbe_ccce8a2c","updated":"2016-11-14 22:56:07.000000000","message":"Done","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a30e14ca59f33b1f05399400bcd834cae9a1d209","unresolved":false,"context_lines":[{"line_number":202,"context_line":".. code-block:: bash"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"    # nova-manage db online_data_migrations --limit\u003cnumber\u003e."},{"line_number":205,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a629dbe_2cdaa6e8","line":205,"range":{"start_line":205,"start_character":0,"end_line":205,"end_character":0},"updated":"2016-11-10 11:16:25.000000000","message":"Should these spaces be here?","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"8c2cf420a27337afe3cae2f269cd4d88c3c2a785","unresolved":false,"context_lines":[{"line_number":202,"context_line":".. code-block:: bash"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"    # nova-manage db online_data_migrations --limit\u003cnumber\u003e."},{"line_number":205,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_006d4704","line":205,"range":{"start_line":205,"start_character":0,"end_line":205,"end_character":0},"in_reply_to":"9a629dbe_2cdaa6e8","updated":"2016-11-14 22:56:07.000000000","message":"Done","commit_id":"afcd815376cac895115fc600d6893df1ecb05ac2"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"207434d1a1272289c3b52d0651488ebffcbca38f","unresolved":false,"context_lines":[{"line_number":5,"context_line":"Zero down time upgrade eliminates any disruption to nova API service"},{"line_number":6,"context_line":"during upgrade."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"Nova API services are upgraded at the end and one at a time. Upgrading"},{"line_number":9,"context_line":"in batches will make sure there is other api service running during this"},{"line_number":10,"context_line":"process. This results in both old (N) and new (N+1) nova-api services"},{"line_number":11,"context_line":"running concurrently at some point of process. There might be some"},{"line_number":12,"context_line":"performance degradation during the process due to slow HTTP responses"},{"line_number":13,"context_line":"and delayed request handling, but there is no API downtime."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This page describes how to test the zero down time upgrade process."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1a6eadb0_69b75686","line":13,"range":{"start_line":8,"start_character":0,"end_line":13,"end_character":59},"updated":"2016-12-14 18:00:17.000000000","message":"Not sure thats quite what I was thinking should be done.\n\nUsers want to see the max_supported API version as a monotonically increasing number, ideally.\n\nTo do this, we want to switch new connections from going to the old nodes, to going to new nodes (ideally) all in one go. To do this we have old and new versions running at the same time, so new connections go to the new API nodes, while the old connections slowly drain from the old nodes.\n\nNow, there maybe a little time while new users get combinations of old apis and then new apis, but ideally that would never happen, or at least, only for a very small race window.","commit_id":"975657b0da5dc5674fa1d26ffc2b8653c204d108"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"1abffb84034c180fe117a4e390d8e29fd3bf3e73","unresolved":false,"context_lines":[{"line_number":5,"context_line":"Zero down time upgrade eliminates any disruption to nova API service"},{"line_number":6,"context_line":"during upgrade."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"Nova API services are upgraded at the end and one at a time. Upgrading"},{"line_number":9,"context_line":"in batches will make sure there is other api service running during this"},{"line_number":10,"context_line":"process. This results in both old (N) and new (N+1) nova-api services"},{"line_number":11,"context_line":"running concurrently at some point of process. There might be some"},{"line_number":12,"context_line":"performance degradation during the process due to slow HTTP responses"},{"line_number":13,"context_line":"and delayed request handling, but there is no API downtime."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This page describes how to test the zero down time upgrade process."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"da4df55a_191a7317","line":13,"range":{"start_line":8,"start_character":0,"end_line":13,"end_character":59},"in_reply_to":"1a6eadb0_69b75686","updated":"2016-12-28 18:54:50.000000000","message":"Done","commit_id":"975657b0da5dc5674fa1d26ffc2b8653c204d108"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0a600133e025ec87258255fcc518c4e9071e8bab","unresolved":false,"context_lines":[{"line_number":97,"context_line":"     EOF"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":".. note::"},{"line_number":100,"context_line":"Just change the IP for log in the global section on each node."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"On both nodes add keepalived.conf"},{"line_number":103,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba5201f7_307eb9ae","line":100,"range":{"start_line":100,"start_character":0,"end_line":100,"end_character":62},"updated":"2017-01-04 11:44:31.000000000","message":"I think this needs to be indented to render correctly?\n\n  .. note::\n\n     Just change the IP...","commit_id":"dccfdac9c68c9b26f4c52ef246df38f6acb31634"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0a600133e025ec87258255fcc518c4e9071e8bab","unresolved":false,"context_lines":[{"line_number":189,"context_line":"* Drain connections on n-api while the tempest tests are running."},{"line_number":190,"context_line":"  HAProxy allows you to drain the connections by setting weight to zero"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"..   code-block:: bash"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"      # echo \"set weight nova-api/\u003c\u003cserver\u003e\u003e 0\" | sudo socat /var/run/haproxy.sock stdio"},{"line_number":195,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba5201f7_b048e988","line":192,"range":{"start_line":192,"start_character":3,"end_line":192,"end_character":5},"updated":"2017-01-04 11:44:31.000000000","message":"Why did you add all that extra spacing? Perhaps this does the same thing as:\n\n  * My bullet point\n\n    .. code-block:: console\n\n       $ echo \"Some code under the bullet point\"\n\nbut this (^) seems a little easier to read","commit_id":"dccfdac9c68c9b26f4c52ef246df38f6acb31634"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0a600133e025ec87258255fcc518c4e9071e8bab","unresolved":false,"context_lines":[{"line_number":215,"context_line":"\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"* Once all the services are upgraded, remove the configuration for"},{"line_number":218,"context_line":"  [upgrade_levels]compute in nova.conf."},{"line_number":219,"context_line":"* Send the SIG_HUP signal(kill -1), so all the services clear any cached"},{"line_number":220,"context_line":"  service version data."},{"line_number":221,"context_line":"* Complete all online data migrations using:"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba5201f7_f61eea61","line":218,"range":{"start_line":218,"start_character":2,"end_line":218,"end_character":25},"updated":"2017-01-04 11:44:31.000000000","message":"``[upgrade_levels] compute``","commit_id":"dccfdac9c68c9b26f4c52ef246df38f6acb31634"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0a600133e025ec87258255fcc518c4e9071e8bab","unresolved":false,"context_lines":[{"line_number":216,"context_line":""},{"line_number":217,"context_line":"* Once all the services are upgraded, remove the configuration for"},{"line_number":218,"context_line":"  [upgrade_levels]compute in nova.conf."},{"line_number":219,"context_line":"* Send the SIG_HUP signal(kill -1), so all the services clear any cached"},{"line_number":220,"context_line":"  service version data."},{"line_number":221,"context_line":"* Complete all online data migrations using:"},{"line_number":222,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba5201f7_161a8e6e","line":219,"range":{"start_line":219,"start_character":11,"end_line":219,"end_character":18},"updated":"2017-01-04 11:44:31.000000000","message":"``SIG_HUP``","commit_id":"dccfdac9c68c9b26f4c52ef246df38f6acb31634"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0a600133e025ec87258255fcc518c4e9071e8bab","unresolved":false,"context_lines":[{"line_number":216,"context_line":""},{"line_number":217,"context_line":"* Once all the services are upgraded, remove the configuration for"},{"line_number":218,"context_line":"  [upgrade_levels]compute in nova.conf."},{"line_number":219,"context_line":"* Send the SIG_HUP signal(kill -1), so all the services clear any cached"},{"line_number":220,"context_line":"  service version data."},{"line_number":221,"context_line":"* Complete all online data migrations using:"},{"line_number":222,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba5201f7_562a567f","line":219,"range":{"start_line":219,"start_character":26,"end_line":219,"end_character":33},"updated":"2017-01-04 11:44:31.000000000","message":"``kill -1``","commit_id":"dccfdac9c68c9b26f4c52ef246df38f6acb31634"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"9fb579b656994572c3ee8530fe09c5dda5486582","unresolved":false,"context_lines":[{"line_number":2,"context_line":"Testing Zero Downtime Upgrade Process"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Zero down time upgrade eliminates any disruption to nova API service"},{"line_number":6,"context_line":"during upgrade."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"Nova API services are upgraded at the end. The basic idea of the zero downtime"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5201f7_47760da5","line":5,"updated":"2017-01-04 21:37:51.000000000","message":"nit: Both \"down time\" and \"downtime\" are used throughout this doc. \"Downtime\" is correct.","commit_id":"9924e732c7d821864047c2ddf62be7bf62ba71fe"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"1d7cc0504c568c3c5fcb2fde3d72caf6cb665a29","unresolved":false,"context_lines":[{"line_number":2,"context_line":"Testing Zero Downtime Upgrade Process"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Zero down time upgrade eliminates any disruption to nova API service"},{"line_number":6,"context_line":"during upgrade."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"Nova API services are upgraded at the end. The basic idea of the zero downtime"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5201f7_fd74f036","line":5,"in_reply_to":"ba5201f7_47760da5","updated":"2017-01-04 23:05:13.000000000","message":"Done","commit_id":"9924e732c7d821864047c2ddf62be7bf62ba71fe"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"9fb579b656994572c3ee8530fe09c5dda5486582","unresolved":false,"context_lines":[{"line_number":5,"context_line":"Zero down time upgrade eliminates any disruption to nova API service"},{"line_number":6,"context_line":"during upgrade."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"Nova API services are upgraded at the end. The basic idea of the zero downtime"},{"line_number":9,"context_line":"upgrade process is to have the connections drain from the old api before"},{"line_number":10,"context_line":"being upgraded. In this process, new connections go to the new API nodes"},{"line_number":11,"context_line":"while old connections slowly drain from the old nodes. This ensures that the"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5201f7_75973a3a","line":8,"updated":"2017-01-04 21:37:51.000000000","message":"nit: The first sentence probably shouldn\u0027t open this paragraph? I feel like it should be the last sentence.","commit_id":"9924e732c7d821864047c2ddf62be7bf62ba71fe"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"1d7cc0504c568c3c5fcb2fde3d72caf6cb665a29","unresolved":false,"context_lines":[{"line_number":5,"context_line":"Zero down time upgrade eliminates any disruption to nova API service"},{"line_number":6,"context_line":"during upgrade."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"Nova API services are upgraded at the end. The basic idea of the zero downtime"},{"line_number":9,"context_line":"upgrade process is to have the connections drain from the old api before"},{"line_number":10,"context_line":"being upgraded. In this process, new connections go to the new API nodes"},{"line_number":11,"context_line":"while old connections slowly drain from the old nodes. This ensures that the"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5201f7_7dae4082","line":8,"in_reply_to":"ba5201f7_75973a3a","updated":"2017-01-04 23:05:13.000000000","message":"I\u0027m not sure if adding it at the end would be nice. Not sure where to add.","commit_id":"9924e732c7d821864047c2ddf62be7bf62ba71fe"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"9fb579b656994572c3ee8530fe09c5dda5486582","unresolved":false,"context_lines":[{"line_number":6,"context_line":"during upgrade."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"Nova API services are upgraded at the end. The basic idea of the zero downtime"},{"line_number":9,"context_line":"upgrade process is to have the connections drain from the old api before"},{"line_number":10,"context_line":"being upgraded. In this process, new connections go to the new API nodes"},{"line_number":11,"context_line":"while old connections slowly drain from the old nodes. This ensures that the"},{"line_number":12,"context_line":"user sees the max_supported API version as a monotonically increasing number."}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5201f7_b57e0217","line":9,"updated":"2017-01-04 21:37:51.000000000","message":"nit: s/api/API/","commit_id":"9924e732c7d821864047c2ddf62be7bf62ba71fe"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"1d7cc0504c568c3c5fcb2fde3d72caf6cb665a29","unresolved":false,"context_lines":[{"line_number":6,"context_line":"during upgrade."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"Nova API services are upgraded at the end. The basic idea of the zero downtime"},{"line_number":9,"context_line":"upgrade process is to have the connections drain from the old api before"},{"line_number":10,"context_line":"being upgraded. In this process, new connections go to the new API nodes"},{"line_number":11,"context_line":"while old connections slowly drain from the old nodes. This ensures that the"},{"line_number":12,"context_line":"user sees the max_supported API version as a monotonically increasing number."}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5201f7_ddc9ec5a","line":9,"in_reply_to":"ba5201f7_b57e0217","updated":"2017-01-04 23:05:13.000000000","message":"Done","commit_id":"9924e732c7d821864047c2ddf62be7bf62ba71fe"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"9fb579b656994572c3ee8530fe09c5dda5486582","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    * compute-api - Only n-cpu and n-api services (N release)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"* Highly available load balancer (HAProxy) on top of the n-api services."},{"line_number":27,"context_line":"  This is required for zero downtime upgrade as it allows one api service"},{"line_number":28,"context_line":"  to run while we upgrade the other. See instructions to setup HAProxy below."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"-----------------------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5201f7_359772ed","line":27,"updated":"2017-01-04 21:37:51.000000000","message":"nit: s/api/API/ or s/api/n-api/","commit_id":"9924e732c7d821864047c2ddf62be7bf62ba71fe"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"1d7cc0504c568c3c5fcb2fde3d72caf6cb665a29","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    * compute-api - Only n-cpu and n-api services (N release)"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"* Highly available load balancer (HAProxy) on top of the n-api services."},{"line_number":27,"context_line":"  This is required for zero downtime upgrade as it allows one api service"},{"line_number":28,"context_line":"  to run while we upgrade the other. See instructions to setup HAProxy below."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"-----------------------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5201f7_1dc0d429","line":27,"in_reply_to":"ba5201f7_359772ed","updated":"2017-01-04 23:05:13.000000000","message":"Done","commit_id":"9924e732c7d821864047c2ddf62be7bf62ba71fe"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"9fb579b656994572c3ee8530fe09c5dda5486582","unresolved":false,"context_lines":[{"line_number":39,"context_line":"   # apt-get install haproxy keepalived"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Let the kernel know that we intend to bind additional IP addresses that"},{"line_number":42,"context_line":"won\u0027t be defined in the interfaces file. To do this, edit /etc/sysctl.conf"},{"line_number":43,"context_line":"and add the following line: \u0027net.ipv4.ip_nonlocal_bind\u003d1\u0027"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":".. code-block:: bash"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5201f7_f5916af2","line":42,"updated":"2017-01-04 21:37:51.000000000","message":"nit: Use backticks around literals, i.e. ``/etc/systctl.conf``","commit_id":"9924e732c7d821864047c2ddf62be7bf62ba71fe"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"1d7cc0504c568c3c5fcb2fde3d72caf6cb665a29","unresolved":false,"context_lines":[{"line_number":39,"context_line":"   # apt-get install haproxy keepalived"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Let the kernel know that we intend to bind additional IP addresses that"},{"line_number":42,"context_line":"won\u0027t be defined in the interfaces file. To do this, edit /etc/sysctl.conf"},{"line_number":43,"context_line":"and add the following line: \u0027net.ipv4.ip_nonlocal_bind\u003d1\u0027"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":".. code-block:: bash"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5201f7_5de41ce0","line":42,"in_reply_to":"ba5201f7_f5916af2","updated":"2017-01-04 23:05:13.000000000","message":"Done","commit_id":"9924e732c7d821864047c2ddf62be7bf62ba71fe"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"9fb579b656994572c3ee8530fe09c5dda5486582","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Let the kernel know that we intend to bind additional IP addresses that"},{"line_number":42,"context_line":"won\u0027t be defined in the interfaces file. To do this, edit /etc/sysctl.conf"},{"line_number":43,"context_line":"and add the following line: \u0027net.ipv4.ip_nonlocal_bind\u003d1\u0027"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":".. code-block:: bash"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5201f7_d5af0628","line":43,"updated":"2017-01-04 21:37:51.000000000","message":"Delete everything after the colon in favor of the code block below?","commit_id":"9924e732c7d821864047c2ddf62be7bf62ba71fe"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"1d7cc0504c568c3c5fcb2fde3d72caf6cb665a29","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Let the kernel know that we intend to bind additional IP addresses that"},{"line_number":42,"context_line":"won\u0027t be defined in the interfaces file. To do this, edit /etc/sysctl.conf"},{"line_number":43,"context_line":"and add the following line: \u0027net.ipv4.ip_nonlocal_bind\u003d1\u0027"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":".. code-block:: bash"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5201f7_1dd7f4ed","line":43,"in_reply_to":"ba5201f7_d5af0628","updated":"2017-01-04 23:05:13.000000000","message":"Done","commit_id":"9924e732c7d821864047c2ddf62be7bf62ba71fe"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"9fb579b656994572c3ee8530fe09c5dda5486582","unresolved":false,"context_lines":[{"line_number":42,"context_line":"won\u0027t be defined in the interfaces file. To do this, edit /etc/sysctl.conf"},{"line_number":43,"context_line":"and add the following line: \u0027net.ipv4.ip_nonlocal_bind\u003d1\u0027"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":".. code-block:: bash"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"   # net.ipv4.ip_nonlocal_bind\u003d1"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5201f7_354cd29d","line":45,"updated":"2017-01-04 21:37:51.000000000","message":"I assume this is supposed to be INI, not bash.","commit_id":"9924e732c7d821864047c2ddf62be7bf62ba71fe"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"1d7cc0504c568c3c5fcb2fde3d72caf6cb665a29","unresolved":false,"context_lines":[{"line_number":42,"context_line":"won\u0027t be defined in the interfaces file. To do this, edit /etc/sysctl.conf"},{"line_number":43,"context_line":"and add the following line: \u0027net.ipv4.ip_nonlocal_bind\u003d1\u0027"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":".. code-block:: bash"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"   # net.ipv4.ip_nonlocal_bind\u003d1"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5201f7_3d067886","line":45,"in_reply_to":"ba5201f7_354cd29d","updated":"2017-01-04 23:05:13.000000000","message":"Done","commit_id":"9924e732c7d821864047c2ddf62be7bf62ba71fe"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"9fb579b656994572c3ee8530fe09c5dda5486582","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":".. code-block:: bash"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"   # net.ipv4.ip_nonlocal_bind\u003d1"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Make this take effect without rebooting."},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5201f7_7542da69","line":47,"updated":"2017-01-04 21:37:51.000000000","message":"Is it supposed to be commented out?","commit_id":"9924e732c7d821864047c2ddf62be7bf62ba71fe"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"1d7cc0504c568c3c5fcb2fde3d72caf6cb665a29","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":".. code-block:: bash"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"   # net.ipv4.ip_nonlocal_bind\u003d1"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Make this take effect without rebooting."},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5201f7_9d01246d","line":47,"in_reply_to":"ba5201f7_7542da69","updated":"2017-01-04 23:05:13.000000000","message":"No. changed it :)","commit_id":"9924e732c7d821864047c2ddf62be7bf62ba71fe"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"9fb579b656994572c3ee8530fe09c5dda5486582","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"   # sysctl -p"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"On both nodes add the below HAProxy config"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":".. code-block:: bash"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5201f7_b527e2c8","line":55,"updated":"2017-01-04 21:37:51.000000000","message":"nit: add a trailing colon\n\nIt\u0027d also be useful to highlight what parts of this config is actually relevant to the upgrade process, rather than the whole thing. Most likely, users already have their own configs that they\u0027ll be merging this process into, so their goal will be to learn from these docs, not copy/paste entire configs from them.","commit_id":"9924e732c7d821864047c2ddf62be7bf62ba71fe"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"1d7cc0504c568c3c5fcb2fde3d72caf6cb665a29","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"   # sysctl -p"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"On both nodes add the below HAProxy config"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":".. code-block:: bash"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5201f7_bdfa6873","line":55,"in_reply_to":"ba5201f7_b527e2c8","updated":"2017-01-04 23:05:13.000000000","message":"Done","commit_id":"9924e732c7d821864047c2ddf62be7bf62ba71fe"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"9fb579b656994572c3ee8530fe09c5dda5486582","unresolved":false,"context_lines":[{"line_number":99,"context_line":".. note::"},{"line_number":100,"context_line":"   Just change the IP for log in the global section on each node."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"On both nodes add keepalived.conf"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":".. code-block:: bash"},{"line_number":105,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5201f7_87071517","line":102,"updated":"2017-01-04 21:37:51.000000000","message":"nit: double backticks and a trailing colon (there are more instances of this below, so I\u0027ll just stop commenting on these issues here).","commit_id":"9924e732c7d821864047c2ddf62be7bf62ba71fe"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"1d7cc0504c568c3c5fcb2fde3d72caf6cb665a29","unresolved":false,"context_lines":[{"line_number":99,"context_line":".. note::"},{"line_number":100,"context_line":"   Just change the IP for log in the global section on each node."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"On both nodes add keepalived.conf"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":".. code-block:: bash"},{"line_number":105,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5201f7_5d325c60","line":102,"in_reply_to":"ba5201f7_87071517","updated":"2017-01-04 23:05:13.000000000","message":"Done","commit_id":"9924e732c7d821864047c2ddf62be7bf62ba71fe"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"9fb579b656994572c3ee8530fe09c5dda5486582","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":".. code-block:: bash"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"   $ sudo service keepalived restart"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Add ``ENABLED\u003d1`` in /etc/default/haproxy and then restart HAProxy service."},{"line_number":143,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5201f7_672dd194","line":140,"updated":"2017-01-04 21:37:51.000000000","message":"Other commands were done as root, and now there\u0027s a sudo?","commit_id":"9924e732c7d821864047c2ddf62be7bf62ba71fe"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"1d7cc0504c568c3c5fcb2fde3d72caf6cb665a29","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":".. code-block:: bash"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"   $ sudo service keepalived restart"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Add ``ENABLED\u003d1`` in /etc/default/haproxy and then restart HAProxy service."},{"line_number":143,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5201f7_bd4188ab","line":140,"in_reply_to":"ba5201f7_672dd194","updated":"2017-01-04 23:05:13.000000000","message":"Done","commit_id":"9924e732c7d821864047c2ddf62be7bf62ba71fe"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"9fb579b656994572c3ee8530fe09c5dda5486582","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":".. code-block:: bash"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"   # sudo service haproxy restart"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"When both the services have restarted, node with high priority for keepalived"},{"line_number":149,"context_line":"claims the virtual ip. You can check it using:"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5201f7_a72339a6","line":146,"updated":"2017-01-04 21:37:51.000000000","message":"root + sudo is unnecessary","commit_id":"9924e732c7d821864047c2ddf62be7bf62ba71fe"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"1d7cc0504c568c3c5fcb2fde3d72caf6cb665a29","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":".. code-block:: bash"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"   # sudo service haproxy restart"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"When both the services have restarted, node with high priority for keepalived"},{"line_number":149,"context_line":"claims the virtual ip. You can check it using:"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5201f7_dd3e4c27","line":146,"in_reply_to":"ba5201f7_a72339a6","updated":"2017-01-04 23:05:13.000000000","message":"Done","commit_id":"9924e732c7d821864047c2ddf62be7bf62ba71fe"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"9fb579b656994572c3ee8530fe09c5dda5486582","unresolved":false,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":"   # sudo service haproxy restart"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"When both the services have restarted, node with high priority for keepalived"},{"line_number":149,"context_line":"claims the virtual ip. You can check it using:"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":".. code-block:: bash"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5201f7_6754f1fe","line":148,"updated":"2017-01-04 21:37:51.000000000","message":"(grammar) I think you meant s/node with high priority/the node with the highest priority/","commit_id":"9924e732c7d821864047c2ddf62be7bf62ba71fe"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"1d7cc0504c568c3c5fcb2fde3d72caf6cb665a29","unresolved":false,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":"   # sudo service haproxy restart"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"When both the services have restarted, node with high priority for keepalived"},{"line_number":149,"context_line":"claims the virtual ip. You can check it using:"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":".. code-block:: bash"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5201f7_fd4790b9","line":148,"in_reply_to":"ba5201f7_6754f1fe","updated":"2017-01-04 23:05:13.000000000","message":"Done","commit_id":"9924e732c7d821864047c2ddf62be7bf62ba71fe"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"9fb579b656994572c3ee8530fe09c5dda5486582","unresolved":false,"context_lines":[{"line_number":146,"context_line":"   # sudo service haproxy restart"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"When both the services have restarted, node with high priority for keepalived"},{"line_number":149,"context_line":"claims the virtual ip. You can check it using:"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":".. code-block:: bash"},{"line_number":152,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5201f7_2747494c","line":149,"updated":"2017-01-04 21:37:51.000000000","message":"It\u0027d be nice to mention what you\u0027re looking for in the output, exactly.","commit_id":"9924e732c7d821864047c2ddf62be7bf62ba71fe"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"1d7cc0504c568c3c5fcb2fde3d72caf6cb665a29","unresolved":false,"context_lines":[{"line_number":146,"context_line":"   # sudo service haproxy restart"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"When both the services have restarted, node with high priority for keepalived"},{"line_number":149,"context_line":"claims the virtual ip. You can check it using:"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":".. code-block:: bash"},{"line_number":152,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5201f7_1d4534b2","line":149,"in_reply_to":"ba5201f7_2747494c","updated":"2017-01-04 23:05:13.000000000","message":"Done","commit_id":"9924e732c7d821864047c2ddf62be7bf62ba71fe"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"9fb579b656994572c3ee8530fe09c5dda5486582","unresolved":false,"context_lines":[{"line_number":157,"context_line":"Zero down time upgrade process"},{"line_number":158,"context_line":"------------------------------"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"Before Upgrade"},{"line_number":161,"context_line":"\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"* Change nova-api endpoint in keystone to point to the HAProxy virtual IP."}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5201f7_479d2dbb","line":160,"updated":"2017-01-04 21:37:51.000000000","message":"nit: this is the only section title in title case","commit_id":"9924e732c7d821864047c2ddf62be7bf62ba71fe"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"1d7cc0504c568c3c5fcb2fde3d72caf6cb665a29","unresolved":false,"context_lines":[{"line_number":157,"context_line":"Zero down time upgrade process"},{"line_number":158,"context_line":"------------------------------"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"Before Upgrade"},{"line_number":161,"context_line":"\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"* Change nova-api endpoint in keystone to point to the HAProxy virtual IP."}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5201f7_5d809cc0","line":160,"in_reply_to":"ba5201f7_479d2dbb","updated":"2017-01-04 23:05:13.000000000","message":"Should I change this?","commit_id":"9924e732c7d821864047c2ddf62be7bf62ba71fe"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"eb670d53e844aa835286ba31139b76f0bff512e5","unresolved":false,"context_lines":[{"line_number":157,"context_line":"Zero down time upgrade process"},{"line_number":158,"context_line":"------------------------------"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"Before Upgrade"},{"line_number":161,"context_line":"\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"* Change nova-api endpoint in keystone to point to the HAProxy virtual IP."}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5201f7_88153941","line":160,"in_reply_to":"ba5201f7_5d809cc0","updated":"2017-01-05 21:31:04.000000000","message":"Just for the sake of consistency, I\u0027d say yes:\n\n  Before upgrade","commit_id":"9924e732c7d821864047c2ddf62be7bf62ba71fe"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"9fb579b656994572c3ee8530fe09c5dda5486582","unresolved":false,"context_lines":[{"line_number":176,"context_line":"During maintenance window"},{"line_number":177,"context_line":"\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"* Set compute option in upgrade_levels to auto in nova.conf."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":".. code-block:: bash"},{"line_number":182,"context_line":"   [upgrade_levels]"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5201f7_27b58930","line":179,"updated":"2017-01-04 21:37:51.000000000","message":"On both nodes?","commit_id":"9924e732c7d821864047c2ddf62be7bf62ba71fe"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"1d7cc0504c568c3c5fcb2fde3d72caf6cb665a29","unresolved":false,"context_lines":[{"line_number":176,"context_line":"During maintenance window"},{"line_number":177,"context_line":"\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"* Set compute option in upgrade_levels to auto in nova.conf."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":".. code-block:: bash"},{"line_number":182,"context_line":"   [upgrade_levels]"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5201f7_fde310a2","line":179,"in_reply_to":"ba5201f7_27b58930","updated":"2017-01-04 23:05:13.000000000","message":"All the upgrade steps should be done on the node being upgraded. L170 says start the process with controller node.","commit_id":"9924e732c7d821864047c2ddf62be7bf62ba71fe"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"eb670d53e844aa835286ba31139b76f0bff512e5","unresolved":false,"context_lines":[{"line_number":176,"context_line":"During maintenance window"},{"line_number":177,"context_line":"\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"* Set compute option in upgrade_levels to auto in nova.conf."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":".. code-block:: bash"},{"line_number":182,"context_line":"   [upgrade_levels]"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ba5201f7_c832e1f1","line":179,"in_reply_to":"ba5201f7_fde310a2","updated":"2017-01-05 21:31:04.000000000","message":"Ah, that makes sense.","commit_id":"9924e732c7d821864047c2ddf62be7bf62ba71fe"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"759870e7d890cfd74acb4a8f06418c1e6ad9ab3e","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"   # sysctl -p"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Configure HAProxy to add backend servers and assign virtual ip to the frontend."},{"line_number":56,"context_line":"On both nodes add the below HAProxy config:"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":".. code-block:: bash"}],"source_content_type":"text/x-rst","patch_set":10,"id":"ba5201f7_7668a888","line":55,"range":{"start_line":55,"start_character":60,"end_line":55,"end_character":62},"updated":"2017-01-09 10:10:05.000000000","message":"nit: IP","commit_id":"ca077615553c634e323f7c63b4cfa920c11baff2"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"5fba20331b5b30b45b1c26288035af9cb7f332e1","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"   # sysctl -p"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Configure HAProxy to add backend servers and assign virtual ip to the frontend."},{"line_number":56,"context_line":"On both nodes add the below HAProxy config:"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":".. code-block:: bash"}],"source_content_type":"text/x-rst","patch_set":10,"id":"ba5201f7_039b55ca","line":55,"range":{"start_line":55,"start_character":60,"end_line":55,"end_character":62},"in_reply_to":"ba5201f7_7668a888","updated":"2017-01-10 16:20:24.000000000","message":"Done","commit_id":"ca077615553c634e323f7c63b4cfa920c11baff2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"759870e7d890cfd74acb4a8f06418c1e6ad9ab3e","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":".. code-block:: bash"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    # cd /etc/haproxy"},{"line_number":61,"context_line":"    # cat \u003e\u003e haproxy.cfg \u003c\u003cEOF"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"      global"}],"source_content_type":"text/x-rst","patch_set":10,"id":"ba5201f7_566ba485","line":60,"range":{"start_line":60,"start_character":3,"end_line":60,"end_character":4},"updated":"2017-01-09 10:10:05.000000000","message":"nit: this is indented one space too many","commit_id":"ca077615553c634e323f7c63b4cfa920c11baff2"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"5fba20331b5b30b45b1c26288035af9cb7f332e1","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":".. code-block:: bash"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    # cd /etc/haproxy"},{"line_number":61,"context_line":"    # cat \u003e\u003e haproxy.cfg \u003c\u003cEOF"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"      global"}],"source_content_type":"text/x-rst","patch_set":10,"id":"ba5201f7_a36369dc","line":60,"range":{"start_line":60,"start_character":3,"end_line":60,"end_character":4},"in_reply_to":"ba5201f7_566ba485","updated":"2017-01-10 16:20:24.000000000","message":"Done","commit_id":"ca077615553c634e323f7c63b4cfa920c11baff2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"759870e7d890cfd74acb4a8f06418c1e6ad9ab3e","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":".. code-block:: bash"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    # cd /etc/keepalived"},{"line_number":108,"context_line":"    # cat \u003e\u003e keepalived.conf \u003c\u003cEOF"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"      global_defs {"}],"source_content_type":"text/x-rst","patch_set":10,"id":"ba5201f7_f612d808","line":107,"range":{"start_line":107,"start_character":3,"end_line":107,"end_character":4},"updated":"2017-01-09 10:10:05.000000000","message":"ditto","commit_id":"ca077615553c634e323f7c63b4cfa920c11baff2"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"5fba20331b5b30b45b1c26288035af9cb7f332e1","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":".. code-block:: bash"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    # cd /etc/keepalived"},{"line_number":108,"context_line":"    # cat \u003e\u003e keepalived.conf \u003c\u003cEOF"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"      global_defs {"}],"source_content_type":"text/x-rst","patch_set":10,"id":"ba5201f7_63a8a1dc","line":107,"range":{"start_line":107,"start_character":3,"end_line":107,"end_character":4},"in_reply_to":"ba5201f7_f612d808","updated":"2017-01-10 16:20:24.000000000","message":"Done","commit_id":"ca077615553c634e323f7c63b4cfa920c11baff2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"759870e7d890cfd74acb4a8f06418c1e6ad9ab3e","unresolved":false,"context_lines":[{"line_number":132,"context_line":"    EOF"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":".. note::"},{"line_number":135,"context_line":"Change priority on node2 to 100 ( or vice-versa). Add HAProxy virtual IP."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"Restart keepalived service."},{"line_number":138,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"ba5201f7_d624f461","line":135,"updated":"2017-01-09 10:10:05.000000000","message":"This should be separated by a new line and be indented\n\n  .. note::\n\n     Change priority\n\nLikewise for other notes in here","commit_id":"ca077615553c634e323f7c63b4cfa920c11baff2"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"5fba20331b5b30b45b1c26288035af9cb7f332e1","unresolved":false,"context_lines":[{"line_number":132,"context_line":"    EOF"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":".. note::"},{"line_number":135,"context_line":"Change priority on node2 to 100 ( or vice-versa). Add HAProxy virtual IP."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"Restart keepalived service."},{"line_number":138,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"ba5201f7_83af45e2","line":135,"in_reply_to":"ba5201f7_d624f461","updated":"2017-01-10 16:20:24.000000000","message":"Done","commit_id":"ca077615553c634e323f7c63b4cfa920c11baff2"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"4ce2bdb3370652b7e836845d42bdc8b745e2ab65","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"------------------------------"},{"line_number":158,"context_line":"Zero Downtime upgrade process"},{"line_number":159,"context_line":"------------------------------"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"Before Upgrade"},{"line_number":162,"context_line":"\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027"}],"source_content_type":"text/x-rst","patch_set":10,"id":"ba5201f7_88d0d920","line":159,"updated":"2017-01-05 21:40:30.000000000","message":"Perhaps include a link to http://docs.openstack.org/developer/nova/upgrade.html#minimal-downtime-upgrade-process for the general process? You might be able to trim a few redundant bits out of this document by instead referring to the \"parent\" document / general process.","commit_id":"ca077615553c634e323f7c63b4cfa920c11baff2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"759870e7d890cfd74acb4a8f06418c1e6ad9ab3e","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"------------------------------"},{"line_number":158,"context_line":"Zero Downtime upgrade process"},{"line_number":159,"context_line":"------------------------------"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"Before Upgrade"},{"line_number":162,"context_line":"\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027"}],"source_content_type":"text/x-rst","patch_set":10,"id":"ba5201f7_f6e018fd","line":159,"in_reply_to":"ba5201f7_88d0d920","updated":"2017-01-09 10:10:05.000000000","message":"+1","commit_id":"ca077615553c634e323f7c63b4cfa920c11baff2"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"5fba20331b5b30b45b1c26288035af9cb7f332e1","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"------------------------------"},{"line_number":158,"context_line":"Zero Downtime upgrade process"},{"line_number":159,"context_line":"------------------------------"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"Before Upgrade"},{"line_number":162,"context_line":"\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027"}],"source_content_type":"text/x-rst","patch_set":10,"id":"ba5201f7_c3b94d30","line":159,"in_reply_to":"ba5201f7_f6e018fd","updated":"2017-01-10 16:20:24.000000000","message":"Done","commit_id":"ca077615553c634e323f7c63b4cfa920c11baff2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"759870e7d890cfd74acb4a8f06418c1e6ad9ab3e","unresolved":false,"context_lines":[{"line_number":171,"context_line":"* Start the upgrade process with controller node."},{"line_number":172,"context_line":"* Install the code for the next version of nova including all the"},{"line_number":173,"context_line":"  Python dependencies."},{"line_number":174,"context_line":"* Using the newly installed nova code, run the DB sync (nova-manage db sync and"},{"line_number":175,"context_line":"  nova-manage api_db sync)."},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"During maintenance window"},{"line_number":178,"context_line":"\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027"}],"source_content_type":"text/x-rst","patch_set":10,"id":"ba5201f7_b692104a","line":175,"range":{"start_line":174,"start_character":39,"end_line":175,"end_character":27},"updated":"2017-01-09 10:10:05.000000000","message":"Is this documented elsewhere? If so, maybe link to that instead (using \u0027:doc:`link`\u0027 syntax if in the same guide). If not, this should be a code block:\n\n   * Using the newly installed nova code\n\n     .. code-block::\n\n        $ nova-manage db sync\n        $ nova-manage api_db sync","commit_id":"ca077615553c634e323f7c63b4cfa920c11baff2"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"5fba20331b5b30b45b1c26288035af9cb7f332e1","unresolved":false,"context_lines":[{"line_number":171,"context_line":"* Start the upgrade process with controller node."},{"line_number":172,"context_line":"* Install the code for the next version of nova including all the"},{"line_number":173,"context_line":"  Python dependencies."},{"line_number":174,"context_line":"* Using the newly installed nova code, run the DB sync (nova-manage db sync and"},{"line_number":175,"context_line":"  nova-manage api_db sync)."},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"During maintenance window"},{"line_number":178,"context_line":"\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027"}],"source_content_type":"text/x-rst","patch_set":10,"id":"ba5201f7_e3b49136","line":175,"range":{"start_line":174,"start_character":39,"end_line":175,"end_character":27},"in_reply_to":"ba5201f7_b692104a","updated":"2017-01-10 16:20:24.000000000","message":"Done","commit_id":"ca077615553c634e323f7c63b4cfa920c11baff2"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"4ce2bdb3370652b7e836845d42bdc8b745e2ab65","unresolved":false,"context_lines":[{"line_number":179,"context_line":""},{"line_number":180,"context_line":"* Set compute option in upgrade_levels to auto in ``nova.conf``."},{"line_number":181,"context_line":""},{"line_number":182,"context_line":".. code-block:: bash"},{"line_number":183,"context_line":"   [upgrade_levels]"},{"line_number":184,"context_line":"   compute \u003d auto"},{"line_number":185,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"ba5201f7_a81f5d06","line":182,"updated":"2017-01-05 21:40:30.000000000","message":"This needs to be followed by a blank line to render properly:\n\n  http://docs-draft.openstack.org/69/395269/10/check/gate-nova-docs-ubuntu-xenial/535fbf0//doc/build/html/testing/zero-downtime-upgrade.html#during-maintenance-window","commit_id":"ca077615553c634e323f7c63b4cfa920c11baff2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"759870e7d890cfd74acb4a8f06418c1e6ad9ab3e","unresolved":false,"context_lines":[{"line_number":179,"context_line":""},{"line_number":180,"context_line":"* Set compute option in upgrade_levels to auto in ``nova.conf``."},{"line_number":181,"context_line":""},{"line_number":182,"context_line":".. code-block:: bash"},{"line_number":183,"context_line":"   [upgrade_levels]"},{"line_number":184,"context_line":"   compute \u003d auto"},{"line_number":185,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"ba5201f7_f6b3b8e7","line":182,"in_reply_to":"ba5201f7_a81f5d06","updated":"2017-01-09 10:10:05.000000000","message":"It should also be indented to display correctly in the list, like so:\n\n  * Set compute\n\n    .. code-block:: bash\n\n       [upgrade_levels]\n       compute \u003d auto\n\n(there are blank likes above that might not render)","commit_id":"ca077615553c634e323f7c63b4cfa920c11baff2"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"5fba20331b5b30b45b1c26288035af9cb7f332e1","unresolved":false,"context_lines":[{"line_number":179,"context_line":""},{"line_number":180,"context_line":"* Set compute option in upgrade_levels to auto in ``nova.conf``."},{"line_number":181,"context_line":""},{"line_number":182,"context_line":".. code-block:: bash"},{"line_number":183,"context_line":"   [upgrade_levels]"},{"line_number":184,"context_line":"   compute \u003d auto"},{"line_number":185,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"ba5201f7_03827552","line":182,"in_reply_to":"ba5201f7_f6b3b8e7","updated":"2017-01-10 16:20:24.000000000","message":"Done","commit_id":"ca077615553c634e323f7c63b4cfa920c11baff2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"759870e7d890cfd74acb4a8f06418c1e6ad9ab3e","unresolved":false,"context_lines":[{"line_number":190,"context_line":"* Drain connections on n-api while the tempest tests are running."},{"line_number":191,"context_line":"  HAProxy allows you to drain the connections by setting weight to zero:"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":".. code-block:: bash"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"   # echo \"set weight nova-api/\u003c\u003cserver\u003e\u003e 0\" | sudo socat /var/run/haproxy.sock stdio"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"* OR disable service using:"},{"line_number":198,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"ba5201f7_36c6204a","line":195,"range":{"start_line":193,"start_character":0,"end_line":195,"end_character":85},"updated":"2017-01-09 10:10:05.000000000","message":"indent","commit_id":"ca077615553c634e323f7c63b4cfa920c11baff2"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"5fba20331b5b30b45b1c26288035af9cb7f332e1","unresolved":false,"context_lines":[{"line_number":190,"context_line":"* Drain connections on n-api while the tempest tests are running."},{"line_number":191,"context_line":"  HAProxy allows you to drain the connections by setting weight to zero:"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":".. code-block:: bash"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"   # echo \"set weight nova-api/\u003c\u003cserver\u003e\u003e 0\" | sudo socat /var/run/haproxy.sock stdio"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"* OR disable service using:"},{"line_number":198,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"ba5201f7_437c7d72","line":195,"range":{"start_line":193,"start_character":0,"end_line":195,"end_character":85},"in_reply_to":"ba5201f7_36c6204a","updated":"2017-01-10 16:20:24.000000000","message":"Done","commit_id":"ca077615553c634e323f7c63b4cfa920c11baff2"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"4ce2bdb3370652b7e836845d42bdc8b745e2ab65","unresolved":false,"context_lines":[{"line_number":217,"context_line":""},{"line_number":218,"context_line":"* Once all the services are upgraded, remove the configuration for"},{"line_number":219,"context_line":"  ``[upgrade_levels]compute`` in ``nova.conf``."},{"line_number":220,"context_line":"* Send the ``SIG_HUP`` signal(``kill -1``), so all the services clear any cached"},{"line_number":221,"context_line":"  service version data."},{"line_number":222,"context_line":"* Complete all online data migrations using:"},{"line_number":223,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"ba5201f7_0884e95b","line":220,"updated":"2017-01-05 21:40:30.000000000","message":"nit: missing a space after signal","commit_id":"ca077615553c634e323f7c63b4cfa920c11baff2"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"5fba20331b5b30b45b1c26288035af9cb7f332e1","unresolved":false,"context_lines":[{"line_number":217,"context_line":""},{"line_number":218,"context_line":"* Once all the services are upgraded, remove the configuration for"},{"line_number":219,"context_line":"  ``[upgrade_levels]compute`` in ``nova.conf``."},{"line_number":220,"context_line":"* Send the ``SIG_HUP`` signal(``kill -1``), so all the services clear any cached"},{"line_number":221,"context_line":"  service version data."},{"line_number":222,"context_line":"* Complete all online data migrations using:"},{"line_number":223,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"ba5201f7_43f39d0a","line":220,"in_reply_to":"ba5201f7_0884e95b","updated":"2017-01-10 16:20:24.000000000","message":"removed these lines","commit_id":"ca077615553c634e323f7c63b4cfa920c11baff2"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"4ce2bdb3370652b7e836845d42bdc8b745e2ab65","unresolved":false,"context_lines":[{"line_number":223,"context_line":""},{"line_number":224,"context_line":".. code-block:: bash"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"    # nova-manage db online_data_migrations --limit\u003cnumber\u003e"}],"source_content_type":"text/x-rst","patch_set":10,"id":"ba5201f7_487a7178","line":226,"updated":"2017-01-05 21:40:30.000000000","message":"nit: missing a space after --limit","commit_id":"ca077615553c634e323f7c63b4cfa920c11baff2"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"759870e7d890cfd74acb4a8f06418c1e6ad9ab3e","unresolved":false,"context_lines":[{"line_number":223,"context_line":""},{"line_number":224,"context_line":".. code-block:: bash"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"    # nova-manage db online_data_migrations --limit\u003cnumber\u003e"}],"source_content_type":"text/x-rst","patch_set":10,"id":"ba5201f7_56c3a438","line":226,"range":{"start_line":226,"start_character":3,"end_line":226,"end_character":4},"updated":"2017-01-09 10:10:05.000000000","message":"nit: space","commit_id":"ca077615553c634e323f7c63b4cfa920c11baff2"},{"author":{"_account_id":18337,"name":"Sujitha","email":"sujitha.neti@intel.com","username":"Sujitha"},"change_message_id":"5fba20331b5b30b45b1c26288035af9cb7f332e1","unresolved":false,"context_lines":[{"line_number":223,"context_line":""},{"line_number":224,"context_line":".. code-block:: bash"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"    # nova-manage db online_data_migrations --limit\u003cnumber\u003e"}],"source_content_type":"text/x-rst","patch_set":10,"id":"ba5201f7_03d0b552","line":226,"range":{"start_line":226,"start_character":3,"end_line":226,"end_character":4},"in_reply_to":"ba5201f7_56c3a438","updated":"2017-01-10 16:20:24.000000000","message":"removed these lines","commit_id":"ca077615553c634e323f7c63b4cfa920c11baff2"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"5e5285e0f782aa4e84fe17fc306b081012b12161","unresolved":false,"context_lines":[{"line_number":159,"context_line":"------------------------------"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"General rolling upgrade process:"},{"line_number":162,"context_line":"http://docs.openstack.org/developer/nova/upgrade.html#minimal-downtime-upgrade-process"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"Before Upgrade"},{"line_number":165,"context_line":"\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027\u0027"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7a3c09a3_8d865dd9","line":162,"updated":"2017-01-16 21:55:42.000000000","message":"This should really be an RST link, not just a link pasted in as plaintext.","commit_id":"816b1c980019bd205ff412c2eba9012c35500af4"}]}
