)]}'
{"doc/source/upgrade.rst":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"0726b4a5b8ec9cbd3c9fb9d902d62f1948ae295e","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Once we have introduced the key concepts relating to upgrade, we will"},{"line_number":30,"context_line":"introduce the process needed for a no downtime upgrade of nova."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Current Database Upgrade Types"},{"line_number":34,"context_line":"------------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a8bc5a2_5a2574c0","line":31,"updated":"2016-09-22 10:30:26.000000000","message":"I think your text should go up here, under a sub heading of: \"Minimal Downtime Upgrade Process\"","commit_id":"302aa9806dd64ebaa92edda7f44c7fb886ce64fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"0726b4a5b8ec9cbd3c9fb9d902d62f1948ae295e","unresolved":false,"context_lines":[{"line_number":207,"context_line":"* Prepare your new configuration files, including ``nova.conf``,"},{"line_number":208,"context_line":"  ``nova-dhcpbridge.conf``, ``rootwrap.conf``, ``policy.json``, and"},{"line_number":209,"context_line":"  ``api-paste.ini`` from ``/etc/nova`` by customizing and removing deprecated"},{"line_number":210,"context_line":"  features, configuration options from the next release."},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"* Make a backup of your database. Nova does not support downgrading of database."},{"line_number":213,"context_line":"  Hence, In case of upgrade failure, restoring database from backup is the only"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a8bc5a2_ba69188e","line":210,"updated":"2016-09-22 10:30:26.000000000","message":"This is strictly not required until after the upgrade, assuming it was done on the last upgrade.\n\nWe should really just say something like:\n\nYou should ensure all required steps from the previous upgrade have been completed, such as stopping using deprecated configuration options. It is recommended you re-read the release notes for the release you are currently running to confirm what is required.","commit_id":"302aa9806dd64ebaa92edda7f44c7fb886ce64fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"0726b4a5b8ec9cbd3c9fb9d902d62f1948ae295e","unresolved":false,"context_lines":[{"line_number":214,"context_line":"  choice."},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"* Ensure there is sufficient nova-conductor capacity for the extra upgrade"},{"line_number":217,"context_line":"  related load."},{"line_number":218,"context_line":""},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"Rolling upgrade process"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a8bc5a2_9ac8dc76","line":217,"updated":"2016-09-22 10:30:26.000000000","message":"We should probably reword this, something like, we are not really helping folks know what to do. Maybe something like:\n\nDuring the upgrade be aware there will be additional load on nova-conductor. You may find you need to add extra nova-conductor workers to deal with the additional upgrade related load.","commit_id":"302aa9806dd64ebaa92edda7f44c7fb886ce64fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"0726b4a5b8ec9cbd3c9fb9d902d62f1948ae295e","unresolved":false,"context_lines":[{"line_number":216,"context_line":"* Ensure there is sufficient nova-conductor capacity for the extra upgrade"},{"line_number":217,"context_line":"  related load."},{"line_number":218,"context_line":""},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"Rolling upgrade process"},{"line_number":221,"context_line":"-----------------------"},{"line_number":222,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a8bc5a2_95626fd7","line":219,"updated":"2016-09-22 10:30:26.000000000","message":"Probably need to talk about only support N to N+1 upgrades.","commit_id":"302aa9806dd64ebaa92edda7f44c7fb886ce64fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"0726b4a5b8ec9cbd3c9fb9d902d62f1948ae295e","unresolved":false,"context_lines":[{"line_number":218,"context_line":""},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"Rolling upgrade process"},{"line_number":221,"context_line":"-----------------------"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"This is upgrade process without downtime."},{"line_number":224,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a8bc5a2_9077dd01","line":221,"updated":"2016-09-22 10:30:26.000000000","message":"This should be split into three phases:\n\n* before maintenance window\n* during maintenance window\n* after maintenance window\n\nWhere a maintenance window is the period of time where users will notice a small amount of control plane downtime.","commit_id":"302aa9806dd64ebaa92edda7f44c7fb886ce64fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"0726b4a5b8ec9cbd3c9fb9d902d62f1948ae295e","unresolved":false,"context_lines":[{"line_number":222,"context_line":""},{"line_number":223,"context_line":"This is upgrade process without downtime."},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"#. Start the process with the controller node. Upgrade your node to new"},{"line_number":226,"context_line":"   release. Upgrade includes updating source code from nova repository and"},{"line_number":227,"context_line":"   installing missing dependencies, if any."},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"#. Run DB expansion (``nova-manage db sync``; ``nova-manage api_db sync``)."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a8bc5a2_7a231006","line":226,"range":{"start_line":225,"start_character":47,"end_line":226,"end_character":11},"updated":"2016-09-22 10:30:26.000000000","message":"I think thats miss leading. Maybe this bullet should read:\n\nInstall the code for the next version of Nova, either in a venv or a separate control plane node, including all the python dependencies.","commit_id":"302aa9806dd64ebaa92edda7f44c7fb886ce64fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"0726b4a5b8ec9cbd3c9fb9d902d62f1948ae295e","unresolved":false,"context_lines":[{"line_number":226,"context_line":"   release. Upgrade includes updating source code from nova repository and"},{"line_number":227,"context_line":"   installing missing dependencies, if any."},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"#. Run DB expansion (``nova-manage db sync``; ``nova-manage api_db sync``)."},{"line_number":230,"context_line":"   Its possible this may affect performance, but it should not cause any"},{"line_number":231,"context_line":"   operations to fail."},{"line_number":232,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a8bc5a2_1a5a0c84","line":229,"range":{"start_line":229,"start_character":3,"end_line":229,"end_character":75},"updated":"2016-09-22 10:30:26.000000000","message":"Using the newly installed nova code, run the DB sync. (``nova-manage db sync``; ``nova-manage api_db sync``)","commit_id":"302aa9806dd64ebaa92edda7f44c7fb886ce64fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"0726b4a5b8ec9cbd3c9fb9d902d62f1948ae295e","unresolved":false,"context_lines":[{"line_number":227,"context_line":"   installing missing dependencies, if any."},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"#. Run DB expansion (``nova-manage db sync``; ``nova-manage api_db sync``)."},{"line_number":230,"context_line":"   Its possible this may affect performance, but it should not cause any"},{"line_number":231,"context_line":"   operations to fail."},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"   * At this point, new columns and tables may exist in the database, but will"},{"line_number":234,"context_line":"     not all be populated in such a way that the next release will be able to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a8bc5a2_355c3b25","line":231,"range":{"start_line":230,"start_character":3,"end_line":231,"end_character":22},"updated":"2016-09-22 10:30:26.000000000","message":"These scheme change operations should have minimal or no affect on performance, and should not cause any operations to fail.","commit_id":"302aa9806dd64ebaa92edda7f44c7fb886ce64fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"0726b4a5b8ec9cbd3c9fb9d902d62f1948ae295e","unresolved":false,"context_lines":[{"line_number":230,"context_line":"   Its possible this may affect performance, but it should not cause any"},{"line_number":231,"context_line":"   operations to fail."},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"   * At this point, new columns and tables may exist in the database, but will"},{"line_number":234,"context_line":"     not all be populated in such a way that the next release will be able to"},{"line_number":235,"context_line":"     function normally."},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"   * As the previous release continues to write to the old schema, database"},{"line_number":238,"context_line":"     triggers will live migrate the data to the new schema so it can be read"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a8bc5a2_f5d49348","line":235,"range":{"start_line":233,"start_character":70,"end_line":235,"end_character":23},"updated":"2016-09-22 10:30:26.000000000","message":"These db schema changes are done in a way that both the N and N+1 release can run against the same schema.","commit_id":"302aa9806dd64ebaa92edda7f44c7fb886ce64fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"0726b4a5b8ec9cbd3c9fb9d902d62f1948ae295e","unresolved":false,"context_lines":[{"line_number":234,"context_line":"     not all be populated in such a way that the next release will be able to"},{"line_number":235,"context_line":"     function normally."},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"   * As the previous release continues to write to the old schema, database"},{"line_number":238,"context_line":"     triggers will live migrate the data to the new schema so it can be read"},{"line_number":239,"context_line":"     by the next release."},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"#. Update your configuration files on the node (``/etc/nova/``) with those"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a8bc5a2_f509f3de","line":238,"range":{"start_line":237,"start_character":67,"end_line":238,"end_character":13},"updated":"2016-09-22 10:30:26.000000000","message":"Nova doesn\u0027t use and DB triggers, I guess this is a cut and paste from keystone.\n\nWe can drop this bullet point.","commit_id":"302aa9806dd64ebaa92edda7f44c7fb886ce64fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"0726b4a5b8ec9cbd3c9fb9d902d62f1948ae295e","unresolved":false,"context_lines":[{"line_number":238,"context_line":"     triggers will live migrate the data to the new schema so it can be read"},{"line_number":239,"context_line":"     by the next release."},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"#. Update your configuration files on the node (``/etc/nova/``) with those"},{"line_number":242,"context_line":"   corresponding to the latest release."},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"#. For maximum safety (no failed API operations), drain connections to API"},{"line_number":245,"context_line":"   nodes, then gracefully shutdown all the services (i.e. SIG_TERM) except"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a8bc5a2_95034fb8","line":242,"range":{"start_line":241,"start_character":0,"end_line":242,"end_character":39},"updated":"2016-09-22 10:30:26.000000000","message":"No, this is not required here. Please move to the very end of the process.","commit_id":"302aa9806dd64ebaa92edda7f44c7fb886ce64fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"0726b4a5b8ec9cbd3c9fb9d902d62f1948ae295e","unresolved":false,"context_lines":[{"line_number":241,"context_line":"#. Update your configuration files on the node (``/etc/nova/``) with those"},{"line_number":242,"context_line":"   corresponding to the latest release."},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"#. For maximum safety (no failed API operations), drain connections to API"},{"line_number":245,"context_line":"   nodes, then gracefully shutdown all the services (i.e. SIG_TERM) except"},{"line_number":246,"context_line":"   nova-compute."},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"#. Start all services, with ``[upgrade_pin]compute\u003dauto``. It is safest to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a8bc5a2_5502a73f","line":245,"range":{"start_line":244,"start_character":50,"end_line":245,"end_character":8},"updated":"2016-09-22 10:30:26.000000000","message":"we should probably say, \"(using a load balancer).","commit_id":"302aa9806dd64ebaa92edda7f44c7fb886ce64fd"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"5b11d8a181373e880c12e697ddf38461f6be9223","unresolved":false,"context_lines":[{"line_number":254,"context_line":"   API actions, and to ensure there is enough capacity online to service any"},{"line_number":255,"context_line":"   boot requests that happen during this time."},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"#. Note there is no upgrade of the hypervisor here, this is just upgrading the"},{"line_number":258,"context_line":"   nova services."},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"#. Once all services are running the new code, double check in the DB that"},{"line_number":261,"context_line":"   there are no old orphaned service records."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a8ec9b2_68901644","line":258,"range":{"start_line":257,"start_character":3,"end_line":258,"end_character":16},"updated":"2016-09-21 16:41:54.000000000","message":"Shouldn\u0027t we mention this in the beginning? This seems like explaining what will be upgraded and what not.","commit_id":"302aa9806dd64ebaa92edda7f44c7fb886ce64fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"0726b4a5b8ec9cbd3c9fb9d902d62f1948ae295e","unresolved":false,"context_lines":[{"line_number":254,"context_line":"   API actions, and to ensure there is enough capacity online to service any"},{"line_number":255,"context_line":"   boot requests that happen during this time."},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"#. Note there is no upgrade of the hypervisor here, this is just upgrading the"},{"line_number":258,"context_line":"   nova services."},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"#. Once all services are running the new code, double check in the DB that"},{"line_number":261,"context_line":"   there are no old orphaned service records."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a8bc5a2_faf2c06e","line":258,"range":{"start_line":257,"start_character":3,"end_line":258,"end_character":16},"in_reply_to":"7a8ec9b2_68901644","updated":"2016-09-22 10:30:26.000000000","message":"+1 this should in the intro.","commit_id":"302aa9806dd64ebaa92edda7f44c7fb886ce64fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"0726b4a5b8ec9cbd3c9fb9d902d62f1948ae295e","unresolved":false,"context_lines":[{"line_number":257,"context_line":"#. Note there is no upgrade of the hypervisor here, this is just upgrading the"},{"line_number":258,"context_line":"   nova services."},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"#. Once all services are running the new code, double check in the DB that"},{"line_number":261,"context_line":"   there are no old orphaned service records."},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"#. Now SIG_HUP all services, to reset the ``min_service_version`` cache,"},{"line_number":264,"context_line":"   to make new features available."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a8bc5a2_f0866164","line":261,"range":{"start_line":260,"start_character":3,"end_line":261,"end_character":45},"updated":"2016-09-22 10:30:26.000000000","message":"We probably need to tell folks how to do that. We could add a TODO for now","commit_id":"302aa9806dd64ebaa92edda7f44c7fb886ce64fd"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"5b11d8a181373e880c12e697ddf38461f6be9223","unresolved":false,"context_lines":[{"line_number":260,"context_line":"#. Once all services are running the new code, double check in the DB that"},{"line_number":261,"context_line":"   there are no old orphaned service records."},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"#. Now SIG_HUP all services, to reset the ``min_service_version`` cache,"},{"line_number":264,"context_line":"   to make new features available."},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"#. Complete all online data migrations using:"},{"line_number":267,"context_line":"   ``nova-manage db online_data_migrations --limit \u003cnumber\u003e``. Note that you"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a8ec9b2_a8577e58","line":264,"range":{"start_line":263,"start_character":3,"end_line":264,"end_character":34},"updated":"2016-09-21 16:41:54.000000000","message":"Can you elaborate a little more on this. What version queues are pinned before and what exactly happens after this?","commit_id":"302aa9806dd64ebaa92edda7f44c7fb886ce64fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"0726b4a5b8ec9cbd3c9fb9d902d62f1948ae295e","unresolved":false,"context_lines":[{"line_number":260,"context_line":"#. Once all services are running the new code, double check in the DB that"},{"line_number":261,"context_line":"   there are no old orphaned service records."},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"#. Now SIG_HUP all services, to reset the ``min_service_version`` cache,"},{"line_number":264,"context_line":"   to make new features available."},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"#. Complete all online data migrations using:"},{"line_number":267,"context_line":"   ``nova-manage db online_data_migrations --limit \u003cnumber\u003e``. Note that you"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a8bc5a2_f093c14d","line":264,"range":{"start_line":263,"start_character":3,"end_line":264,"end_character":34},"in_reply_to":"7a8ec9b2_a8577e58","updated":"2016-09-22 10:30:26.000000000","message":"Right, this needs more detail. Something like...\n\nNow all services are upgraded, we need to send the SIG_HUP signal, so all the services clear any cached service version data. When a new service starts, it automatically detects which version of the compute RPC protocol to use, and it can decide if it is safe to do any online data migrations. Now all the services are upgraded, the system is able to use the latest version of the RPC protocol and so get access to all the new features in the new release.","commit_id":"302aa9806dd64ebaa92edda7f44c7fb886ce64fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"0726b4a5b8ec9cbd3c9fb9d902d62f1948ae295e","unresolved":false,"context_lines":[{"line_number":263,"context_line":"#. Now SIG_HUP all services, to reset the ``min_service_version`` cache,"},{"line_number":264,"context_line":"   to make new features available."},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"#. Complete all online data migrations using:"},{"line_number":267,"context_line":"   ``nova-manage db online_data_migrations --limit \u003cnumber\u003e``. Note that you"},{"line_number":268,"context_line":"   can use the limit argument to reduce the load this operation will place on"},{"line_number":269,"context_line":"   the database."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a8bc5a2_f0c021e3","line":266,"updated":"2016-09-22 10:30:26.000000000","message":"We should add more context here.\n\nNow all the services are running the lest version of the code, and all the services are aware they have all been upgraded, it is safe to transform the data in the database into its new format. While this happens on demand when the system reads a database row that needs updating, we must get all the data transformed into the current version before we next upgrade. This process can also put significant extra write load on the database. As such, it is best to use ``nova-manage db online_data_migrations --limit \u003cnumber\u003e`` to force the online data migrations to happen now.","commit_id":"302aa9806dd64ebaa92edda7f44c7fb886ce64fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"0726b4a5b8ec9cbd3c9fb9d902d62f1948ae295e","unresolved":false,"context_lines":[{"line_number":268,"context_line":"   can use the limit argument to reduce the load this operation will place on"},{"line_number":269,"context_line":"   the database."},{"line_number":270,"context_line":""},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"Testing"},{"line_number":273,"context_line":"-------"},{"line_number":274,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a8bc5a2_d09405ea","line":271,"updated":"2016-09-22 10:30:26.000000000","message":"At this point, you must also ensure you update the configuration, to stop using any deprecated features or options, and perform any required work to transition to alternative features. This needs to be done before you can perform you next upgrade. Please see the release notes for more details.\n\nWe should add a TODO about describing how you tell what options have been deprecated.","commit_id":"302aa9806dd64ebaa92edda7f44c7fb886ce64fd"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"385078d82fb0f4b8dd09b5421b465993aee3472b","unresolved":false,"context_lines":[{"line_number":40,"context_line":"* Read and ensure you understand the release notes for the next release."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"* You should ensure all required steps from the previous upgrade have been"},{"line_number":43,"context_line":"  completed, such as stopping using deprecated options."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"* Make a backup of your database. Nova does not support downgrading of database."},{"line_number":46,"context_line":"  Hence, In case of upgrade failure, restoring database from backup is the only"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a8bc5a2_c1e1b92b","line":43,"range":{"start_line":43,"start_character":13,"end_line":43,"end_character":55},"updated":"2016-09-27 14:51:23.000000000","message":"That is not required before upgrade.\n\nThe things that matter here are running \"nova-manage db online_data_migrations\" on the previous release.","commit_id":"21eb714e811a51717c535f1ca8929f58e93acdcb"},{"author":{"_account_id":18339,"name":"Sivasathurappan Radhakrishnan","email":"siva.radhakrishnan@intel.com","username":"sivakrishnan"},"change_message_id":"8909e3388f1196ac4a322dbf43768f2315895b5e","unresolved":false,"context_lines":[{"line_number":40,"context_line":"* Read and ensure you understand the release notes for the next release."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"* You should ensure all required steps from the previous upgrade have been"},{"line_number":43,"context_line":"  completed, such as stopping using deprecated options."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"* Make a backup of your database. Nova does not support downgrading of database."},{"line_number":46,"context_line":"  Hence, In case of upgrade failure, restoring database from backup is the only"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a8bc5a2_ff3f1285","line":43,"range":{"start_line":43,"start_character":13,"end_line":43,"end_character":55},"in_reply_to":"5a8bc5a2_c1e1b92b","updated":"2016-09-27 21:36:55.000000000","message":"Done","commit_id":"21eb714e811a51717c535f1ca8929f58e93acdcb"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"385078d82fb0f4b8dd09b5421b465993aee3472b","unresolved":false,"context_lines":[{"line_number":43,"context_line":"  completed, such as stopping using deprecated options."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"* Make a backup of your database. Nova does not support downgrading of database."},{"line_number":46,"context_line":"  Hence, In case of upgrade failure, restoring database from backup is the only"},{"line_number":47,"context_line":"  choice."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"* During the upgrade be aware that there will be additional load on"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a8bc5a2_c1b8d913","line":46,"range":{"start_line":46,"start_character":9,"end_line":46,"end_character":16},"updated":"2016-09-27 14:51:23.000000000","message":"Nit: \"in case\"","commit_id":"21eb714e811a51717c535f1ca8929f58e93acdcb"},{"author":{"_account_id":18339,"name":"Sivasathurappan Radhakrishnan","email":"siva.radhakrishnan@intel.com","username":"sivakrishnan"},"change_message_id":"8909e3388f1196ac4a322dbf43768f2315895b5e","unresolved":false,"context_lines":[{"line_number":43,"context_line":"  completed, such as stopping using deprecated options."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"* Make a backup of your database. Nova does not support downgrading of database."},{"line_number":46,"context_line":"  Hence, In case of upgrade failure, restoring database from backup is the only"},{"line_number":47,"context_line":"  choice."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"* During the upgrade be aware that there will be additional load on"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a8bc5a2_3f4a5a28","line":46,"range":{"start_line":46,"start_character":9,"end_line":46,"end_character":16},"in_reply_to":"5a8bc5a2_c1b8d913","updated":"2016-09-27 21:36:55.000000000","message":"Done","commit_id":"21eb714e811a51717c535f1ca8929f58e93acdcb"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"385078d82fb0f4b8dd09b5421b465993aee3472b","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"To eliminate downtime, the services can be upgraded in a rolling fashion. It"},{"line_number":58,"context_line":"means upgrading a few services at a time. This results in a condition where"},{"line_number":59,"context_line":"both old (N-1) and new (N) services co-exist for a certain time period. Note"},{"line_number":60,"context_line":"that, There is no upgrade of the hypervisor here, this is just upgrading the"},{"line_number":61,"context_line":"nova services."},{"line_number":62,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a8bc5a2_81f7b1d1","line":59,"range":{"start_line":59,"start_character":24,"end_line":59,"end_character":25},"updated":"2016-09-27 14:51:23.000000000","message":"Lets say N and N+1 to be consistent with later on on line 75","commit_id":"21eb714e811a51717c535f1ca8929f58e93acdcb"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"385078d82fb0f4b8dd09b5421b465993aee3472b","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"To eliminate downtime, the services can be upgraded in a rolling fashion. It"},{"line_number":58,"context_line":"means upgrading a few services at a time. This results in a condition where"},{"line_number":59,"context_line":"both old (N-1) and new (N) services co-exist for a certain time period. Note"},{"line_number":60,"context_line":"that, There is no upgrade of the hypervisor here, this is just upgrading the"},{"line_number":61,"context_line":"nova services."},{"line_number":62,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a8bc5a2_614e253c","line":59,"range":{"start_line":59,"start_character":27,"end_line":59,"end_character":35},"updated":"2016-09-27 14:51:23.000000000","message":"nova-compute services","commit_id":"21eb714e811a51717c535f1ca8929f58e93acdcb"},{"author":{"_account_id":18339,"name":"Sivasathurappan Radhakrishnan","email":"siva.radhakrishnan@intel.com","username":"sivakrishnan"},"change_message_id":"8909e3388f1196ac4a322dbf43768f2315895b5e","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"To eliminate downtime, the services can be upgraded in a rolling fashion. It"},{"line_number":58,"context_line":"means upgrading a few services at a time. This results in a condition where"},{"line_number":59,"context_line":"both old (N-1) and new (N) services co-exist for a certain time period. Note"},{"line_number":60,"context_line":"that, There is no upgrade of the hypervisor here, this is just upgrading the"},{"line_number":61,"context_line":"nova services."},{"line_number":62,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a8bc5a2_7f54e2c9","line":59,"range":{"start_line":59,"start_character":27,"end_line":59,"end_character":35},"in_reply_to":"5a8bc5a2_614e253c","updated":"2016-09-27 21:36:55.000000000","message":"Done","commit_id":"21eb714e811a51717c535f1ca8929f58e93acdcb"},{"author":{"_account_id":18339,"name":"Sivasathurappan Radhakrishnan","email":"siva.radhakrishnan@intel.com","username":"sivakrishnan"},"change_message_id":"8909e3388f1196ac4a322dbf43768f2315895b5e","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"To eliminate downtime, the services can be upgraded in a rolling fashion. It"},{"line_number":58,"context_line":"means upgrading a few services at a time. This results in a condition where"},{"line_number":59,"context_line":"both old (N-1) and new (N) services co-exist for a certain time period. Note"},{"line_number":60,"context_line":"that, There is no upgrade of the hypervisor here, this is just upgrading the"},{"line_number":61,"context_line":"nova services."},{"line_number":62,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a8bc5a2_9f51aedb","line":59,"range":{"start_line":59,"start_character":24,"end_line":59,"end_character":25},"in_reply_to":"5a8bc5a2_81f7b1d1","updated":"2016-09-27 21:36:55.000000000","message":"Done","commit_id":"21eb714e811a51717c535f1ca8929f58e93acdcb"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"385078d82fb0f4b8dd09b5421b465993aee3472b","unresolved":false,"context_lines":[{"line_number":57,"context_line":"To eliminate downtime, the services can be upgraded in a rolling fashion. It"},{"line_number":58,"context_line":"means upgrading a few services at a time. This results in a condition where"},{"line_number":59,"context_line":"both old (N-1) and new (N) services co-exist for a certain time period. Note"},{"line_number":60,"context_line":"that, There is no upgrade of the hypervisor here, this is just upgrading the"},{"line_number":61,"context_line":"nova services."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"#. Before maintenance window:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a8bc5a2_2157bdca","line":60,"range":{"start_line":60,"start_character":6,"end_line":60,"end_character":11},"updated":"2016-09-27 14:51:23.000000000","message":"Nit: there","commit_id":"21eb714e811a51717c535f1ca8929f58e93acdcb"},{"author":{"_account_id":18339,"name":"Sivasathurappan Radhakrishnan","email":"siva.radhakrishnan@intel.com","username":"sivakrishnan"},"change_message_id":"8909e3388f1196ac4a322dbf43768f2315895b5e","unresolved":false,"context_lines":[{"line_number":57,"context_line":"To eliminate downtime, the services can be upgraded in a rolling fashion. It"},{"line_number":58,"context_line":"means upgrading a few services at a time. This results in a condition where"},{"line_number":59,"context_line":"both old (N-1) and new (N) services co-exist for a certain time period. Note"},{"line_number":60,"context_line":"that, There is no upgrade of the hypervisor here, this is just upgrading the"},{"line_number":61,"context_line":"nova services."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"#. Before maintenance window:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a8bc5a2_bf5caaf1","line":60,"range":{"start_line":60,"start_character":6,"end_line":60,"end_character":11},"in_reply_to":"5a8bc5a2_2157bdca","updated":"2016-09-27 21:36:55.000000000","message":"Done","commit_id":"21eb714e811a51717c535f1ca8929f58e93acdcb"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"385078d82fb0f4b8dd09b5421b465993aee3472b","unresolved":false,"context_lines":[{"line_number":72,"context_line":"     should not cause any operations to fail."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"   * At this point, new columns and tables may exist in the database. These"},{"line_number":75,"context_line":"     db schema changes are done in a way that both the N and N\u003d1 release can"},{"line_number":76,"context_line":"     against the same schema."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"#. During maintenance window:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a8bc5a2_a16bcd83","line":75,"range":{"start_line":75,"start_character":61,"end_line":75,"end_character":64},"updated":"2016-09-27 14:51:23.000000000","message":"N+1","commit_id":"21eb714e811a51717c535f1ca8929f58e93acdcb"},{"author":{"_account_id":18339,"name":"Sivasathurappan Radhakrishnan","email":"siva.radhakrishnan@intel.com","username":"sivakrishnan"},"change_message_id":"8909e3388f1196ac4a322dbf43768f2315895b5e","unresolved":false,"context_lines":[{"line_number":72,"context_line":"     should not cause any operations to fail."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"   * At this point, new columns and tables may exist in the database. These"},{"line_number":75,"context_line":"     db schema changes are done in a way that both the N and N\u003d1 release can"},{"line_number":76,"context_line":"     against the same schema."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"#. During maintenance window:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a8bc5a2_3f717a78","line":75,"range":{"start_line":75,"start_character":61,"end_line":75,"end_character":64},"in_reply_to":"5a8bc5a2_a16bcd83","updated":"2016-09-27 21:36:55.000000000","message":"Done","commit_id":"21eb714e811a51717c535f1ca8929f58e93acdcb"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"385078d82fb0f4b8dd09b5421b465993aee3472b","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"#. During maintenance window:"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"   * For maximum safety (no failed API operations), use a load balancer and"},{"line_number":81,"context_line":"     drain connections to API nodes, then gracefully shutdown all the"},{"line_number":82,"context_line":"     services (i.e. SIG_TERM) except nova-compute. Load balancer should only"},{"line_number":83,"context_line":"     redirect new connections to newer API nodes."},{"line_number":84,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a8bc5a2_a1c3cd36","line":81,"range":{"start_line":80,"start_character":52,"end_line":81,"end_character":35},"updated":"2016-09-27 14:51:23.000000000","message":"I think we can drop this bit. This is really only needed for the zero downtime way, which we haven\u0027t tested yet.","commit_id":"21eb714e811a51717c535f1ca8929f58e93acdcb"},{"author":{"_account_id":18339,"name":"Sivasathurappan Radhakrishnan","email":"siva.radhakrishnan@intel.com","username":"sivakrishnan"},"change_message_id":"8909e3388f1196ac4a322dbf43768f2315895b5e","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"#. During maintenance window:"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"   * For maximum safety (no failed API operations), use a load balancer and"},{"line_number":81,"context_line":"     drain connections to API nodes, then gracefully shutdown all the"},{"line_number":82,"context_line":"     services (i.e. SIG_TERM) except nova-compute. Load balancer should only"},{"line_number":83,"context_line":"     redirect new connections to newer API nodes."},{"line_number":84,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a8bc5a2_7f6b0286","line":81,"range":{"start_line":80,"start_character":52,"end_line":81,"end_character":35},"in_reply_to":"5a8bc5a2_a1c3cd36","updated":"2016-09-27 21:36:55.000000000","message":"Done","commit_id":"21eb714e811a51717c535f1ca8929f58e93acdcb"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"385078d82fb0f4b8dd09b5421b465993aee3472b","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"   * For maximum safety (no failed API operations), use a load balancer and"},{"line_number":81,"context_line":"     drain connections to API nodes, then gracefully shutdown all the"},{"line_number":82,"context_line":"     services (i.e. SIG_TERM) except nova-compute. Load balancer should only"},{"line_number":83,"context_line":"     redirect new connections to newer API nodes."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"   * Start all services, with ``[upgrade_pin]compute\u003dauto``. It is safest to"},{"line_number":86,"context_line":"     start nova-conductor first and nova-api last."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a8bc5a2_01e3a1d9","line":83,"range":{"start_line":82,"start_character":51,"end_line":83,"end_character":49},"updated":"2016-09-27 14:51:23.000000000","message":"as above, drop this bit.","commit_id":"21eb714e811a51717c535f1ca8929f58e93acdcb"},{"author":{"_account_id":18339,"name":"Sivasathurappan Radhakrishnan","email":"siva.radhakrishnan@intel.com","username":"sivakrishnan"},"change_message_id":"8909e3388f1196ac4a322dbf43768f2315895b5e","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"   * For maximum safety (no failed API operations), use a load balancer and"},{"line_number":81,"context_line":"     drain connections to API nodes, then gracefully shutdown all the"},{"line_number":82,"context_line":"     services (i.e. SIG_TERM) except nova-compute. Load balancer should only"},{"line_number":83,"context_line":"     redirect new connections to newer API nodes."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"   * Start all services, with ``[upgrade_pin]compute\u003dauto``. It is safest to"},{"line_number":86,"context_line":"     start nova-conductor first and nova-api last."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a8bc5a2_9f68ce89","line":83,"range":{"start_line":82,"start_character":51,"end_line":83,"end_character":49},"in_reply_to":"5a8bc5a2_01e3a1d9","updated":"2016-09-27 21:36:55.000000000","message":"Done","commit_id":"21eb714e811a51717c535f1ca8929f58e93acdcb"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"cb4f66746fc0d8ffd8c600c14ad3c5b674ac9f4c","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"To eliminate downtime, the services can be upgraded in a rolling fashion. It"},{"line_number":58,"context_line":"means upgrading a few services at a time. This results in a condition where"},{"line_number":59,"context_line":"both old (N) and new (N+1) nova-compute services co-exist for a certain time "},{"line_number":60,"context_line":"period. Note that, there is no upgrade of the hypervisor here, this is just"},{"line_number":61,"context_line":"upgrading the nova services."},{"line_number":62,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a98d1f4_b0164bef","line":59,"range":{"start_line":59,"start_character":76,"end_line":59,"end_character":77},"updated":"2016-09-29 20:40:31.000000000","message":"nit: remove blank space","commit_id":"dfc95b7f5409ebb98ce8a29d16f396f5c29cf14a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f6a074a01be65f7a6d84ce8f5afed68f384de121","unresolved":false,"context_lines":[{"line_number":67,"context_line":"     including all the python dependencies."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"   * Using the newly installed nova code, run the DB sync."},{"line_number":70,"context_line":"     (``nova-manage db sync``; ``nova-manage api_db sync``). These scheme"},{"line_number":71,"context_line":"     change operations should have minimal or no effect on performance, and"},{"line_number":72,"context_line":"     should not cause any operations to fail."},{"line_number":73,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a8bc5a2_3fafba2c","line":70,"range":{"start_line":70,"start_character":67,"end_line":70,"end_character":73},"updated":"2016-09-27 21:48:24.000000000","message":"\"schema\"","commit_id":"dfc95b7f5409ebb98ce8a29d16f396f5c29cf14a"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"cb4f66746fc0d8ffd8c600c14ad3c5b674ac9f4c","unresolved":false,"context_lines":[{"line_number":72,"context_line":"     should not cause any operations to fail."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"   * At this point, new columns and tables may exist in the database. These"},{"line_number":75,"context_line":"     DB schema changes are done in a way that both the N and N+1 release can"},{"line_number":76,"context_line":"     against the same schema."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"#. During maintenance window:"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a98d1f4_30eb1bb2","line":76,"range":{"start_line":75,"start_character":65,"end_line":76,"end_character":12},"updated":"2016-09-29 20:40:31.000000000","message":"sed \u0027/release can against/ releases can perform db operations using/g\u0027","commit_id":"dfc95b7f5409ebb98ce8a29d16f396f5c29cf14a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f6a074a01be65f7a6d84ce8f5afed68f384de121","unresolved":false,"context_lines":[{"line_number":80,"context_line":"   * For maximum safety (no failed API operations), gracefully shutdown all"},{"line_number":81,"context_line":"     the services (i.e. SIG_TERM) except nova-compute."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"   * Start all services, with ``[upgrade_pin]compute\u003dauto``. It is safest to"},{"line_number":84,"context_line":"     start nova-conductor first and nova-api last."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"   * In small batches gracefully shutdown nova-compute (i.e. SIG_TERM), then"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a8bc5a2_1f711ee1","line":83,"range":{"start_line":83,"start_character":33,"end_line":83,"end_character":44},"updated":"2016-09-27 21:48:24.000000000","message":"\"upgrade_levels\"","commit_id":"dfc95b7f5409ebb98ce8a29d16f396f5c29cf14a"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"cb4f66746fc0d8ffd8c600c14ad3c5b674ac9f4c","unresolved":false,"context_lines":[{"line_number":80,"context_line":"   * For maximum safety (no failed API operations), gracefully shutdown all"},{"line_number":81,"context_line":"     the services (i.e. SIG_TERM) except nova-compute."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"   * Start all services, with ``[upgrade_pin]compute\u003dauto``. It is safest to"},{"line_number":84,"context_line":"     start nova-conductor first and nova-api last."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"   * In small batches gracefully shutdown nova-compute (i.e. SIG_TERM), then"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a98d1f4_a6729547","line":83,"range":{"start_line":83,"start_character":56,"end_line":83,"end_character":60},"updated":"2016-09-29 20:40:31.000000000","message":"Add text \u0027in nova.conf file\u0027","commit_id":"dfc95b7f5409ebb98ce8a29d16f396f5c29cf14a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"a59a42bc3b1c022a5bd0654faf7d103e80960453","unresolved":false,"context_lines":[{"line_number":80,"context_line":"   * For maximum safety (no failed API operations), gracefully shutdown all"},{"line_number":81,"context_line":"     the services (i.e. SIG_TERM) except nova-compute."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"   * Start all services, with ``[upgrade_pin]compute\u003dauto``. It is safest to"},{"line_number":84,"context_line":"     start nova-conductor first and nova-api last."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"   * In small batches gracefully shutdown nova-compute (i.e. SIG_TERM), then"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a98d1f4_effe3b6a","line":83,"range":{"start_line":83,"start_character":33,"end_line":83,"end_character":44},"in_reply_to":"5a8bc5a2_1f711ee1","updated":"2016-09-29 16:39:24.000000000","message":"dang I missed that, +1","commit_id":"dfc95b7f5409ebb98ce8a29d16f396f5c29cf14a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f6a074a01be65f7a6d84ce8f5afed68f384de121","unresolved":false,"context_lines":[{"line_number":81,"context_line":"     the services (i.e. SIG_TERM) except nova-compute."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"   * Start all services, with ``[upgrade_pin]compute\u003dauto``. It is safest to"},{"line_number":84,"context_line":"     start nova-conductor first and nova-api last."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"   * In small batches gracefully shutdown nova-compute (i.e. SIG_TERM), then"},{"line_number":87,"context_line":"     start the new version of the code with: ``[upgrade_pin]compute\u003dauto``"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a8bc5a2_ff39d2f3","line":84,"updated":"2016-09-27 21:48:24.000000000","message":"So, auto probably works, but we might want to mention the aliases as well. That reminds me, we need to do one for newton.\n\n upgrade_levels/compute \u003d mitaka","commit_id":"dfc95b7f5409ebb98ce8a29d16f396f5c29cf14a"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"cb4f66746fc0d8ffd8c600c14ad3c5b674ac9f4c","unresolved":false,"context_lines":[{"line_number":81,"context_line":"     the services (i.e. SIG_TERM) except nova-compute."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"   * Start all services, with ``[upgrade_pin]compute\u003dauto``. It is safest to"},{"line_number":84,"context_line":"     start nova-conductor first and nova-api last."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"   * In small batches gracefully shutdown nova-compute (i.e. SIG_TERM), then"},{"line_number":87,"context_line":"     start the new version of the code with: ``[upgrade_pin]compute\u003dauto``"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a98d1f4_e177279d","line":84,"in_reply_to":"3a98d1f4_1ab1e38f","updated":"2016-09-29 20:40:31.000000000","message":"I like the idea of adding a note for \"Before Newton Release\"","commit_id":"dfc95b7f5409ebb98ce8a29d16f396f5c29cf14a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"a59a42bc3b1c022a5bd0654faf7d103e80960453","unresolved":false,"context_lines":[{"line_number":81,"context_line":"     the services (i.e. SIG_TERM) except nova-compute."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"   * Start all services, with ``[upgrade_pin]compute\u003dauto``. It is safest to"},{"line_number":84,"context_line":"     start nova-conductor first and nova-api last."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"   * In small batches gracefully shutdown nova-compute (i.e. SIG_TERM), then"},{"line_number":87,"context_line":"     start the new version of the code with: ``[upgrade_pin]compute\u003dauto``"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a98d1f4_1ab1e38f","line":84,"in_reply_to":"5a8bc5a2_ff39d2f3","updated":"2016-09-29 16:39:24.000000000","message":"I did wonder about that, but it seems odd to give people two ways of doing it.\n\nI guess we could add a note saying in old releases you needed to use the alias, in the days before we got auto working? Not sure.","commit_id":"dfc95b7f5409ebb98ce8a29d16f396f5c29cf14a"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"5a252ed91c00c0c1735c38242465c61cecc3a2c3","unresolved":false,"context_lines":[{"line_number":83,"context_line":"   * Start all services, with ``[upgrade_pin]compute\u003dauto``. It is safest to"},{"line_number":84,"context_line":"     start nova-conductor first and nova-api last."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"   * In small batches gracefully shutdown nova-compute (i.e. SIG_TERM), then"},{"line_number":87,"context_line":"     start the new version of the code with: ``[upgrade_pin]compute\u003dauto``"},{"line_number":88,"context_line":"     Note this is done in batches so only a few compute nodes will have any"},{"line_number":89,"context_line":"     delayed API actions, and to ensure there is enough capacity online to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a98d1f4_5e641f48","line":86,"range":{"start_line":86,"start_character":5,"end_line":86,"end_character":70},"updated":"2016-09-30 07:36:39.000000000","message":"So we should disable the nova-compute services from the API first, otherwise, the new request still may schedule to the node it already down. There is delay for server_group to update the status of nova-compute service.","commit_id":"dfc95b7f5409ebb98ce8a29d16f396f5c29cf14a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c019bf9759dcfd63fb7d960e2ddc91c0ac522493","unresolved":false,"context_lines":[{"line_number":83,"context_line":"   * Start all services, with ``[upgrade_pin]compute\u003dauto``. It is safest to"},{"line_number":84,"context_line":"     start nova-conductor first and nova-api last."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"   * In small batches gracefully shutdown nova-compute (i.e. SIG_TERM), then"},{"line_number":87,"context_line":"     start the new version of the code with: ``[upgrade_pin]compute\u003dauto``"},{"line_number":88,"context_line":"     Note this is done in batches so only a few compute nodes will have any"},{"line_number":89,"context_line":"     delayed API actions, and to ensure there is enough capacity online to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a98d1f4_6a6f52c5","line":86,"range":{"start_line":86,"start_character":5,"end_line":86,"end_character":70},"in_reply_to":"3a98d1f4_5e641f48","updated":"2016-09-30 09:34:21.000000000","message":"-1, we should be able to restart fast enough in most cases, and messages will just gets queued in the RPC bus for when we start back up.\n\nYou could disable for more safety, but if we want to disable, we should do that automatically for deployers when you do a graceful shutdown.","commit_id":"dfc95b7f5409ebb98ce8a29d16f396f5c29cf14a"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"92963335f09e635ea5f10ebb54d35536568729ad","unresolved":false,"context_lines":[{"line_number":83,"context_line":"   * Start all services, with ``[upgrade_pin]compute\u003dauto``. It is safest to"},{"line_number":84,"context_line":"     start nova-conductor first and nova-api last."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"   * In small batches gracefully shutdown nova-compute (i.e. SIG_TERM), then"},{"line_number":87,"context_line":"     start the new version of the code with: ``[upgrade_pin]compute\u003dauto``"},{"line_number":88,"context_line":"     Note this is done in batches so only a few compute nodes will have any"},{"line_number":89,"context_line":"     delayed API actions, and to ensure there is enough capacity online to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a98d1f4_a0b25292","line":86,"range":{"start_line":86,"start_character":5,"end_line":86,"end_character":70},"in_reply_to":"3a98d1f4_6a6f52c5","updated":"2016-09-30 12:03:19.000000000","message":"yea, agree with you, it is super-fast. I just thought it is more safe for avoid if there are something unexpected exception happened.\n\nand yes, if we do that automatically, it will be great.","commit_id":"dfc95b7f5409ebb98ce8a29d16f396f5c29cf14a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f6a074a01be65f7a6d84ce8f5afed68f384de121","unresolved":false,"context_lines":[{"line_number":84,"context_line":"     start nova-conductor first and nova-api last."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"   * In small batches gracefully shutdown nova-compute (i.e. SIG_TERM), then"},{"line_number":87,"context_line":"     start the new version of the code with: ``[upgrade_pin]compute\u003dauto``"},{"line_number":88,"context_line":"     Note this is done in batches so only a few compute nodes will have any"},{"line_number":89,"context_line":"     delayed API actions, and to ensure there is enough capacity online to"},{"line_number":90,"context_line":"     service any boot requests that happen during this time."}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a8bc5a2_7f05c212","line":87,"updated":"2016-09-27 21:48:24.000000000","message":"Same comments on this line.","commit_id":"dfc95b7f5409ebb98ce8a29d16f396f5c29cf14a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f6a074a01be65f7a6d84ce8f5afed68f384de121","unresolved":false,"context_lines":[{"line_number":101,"context_line":""},{"line_number":102,"context_line":"   * Now all the services are upgraded, the system is able to use the latest"},{"line_number":103,"context_line":"     version of the RPC protocol and so get access to all the new features in"},{"line_number":104,"context_line":"     the new release."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"   * Now all the services are running the latest version of the code, and all"},{"line_number":107,"context_line":"     the services are aware that have all been upgraded, it is safe to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a8bc5a2_5a12d459","line":104,"updated":"2016-09-27 21:48:24.000000000","message":"Drop the pin, if set to a static alias above.","commit_id":"dfc95b7f5409ebb98ce8a29d16f396f5c29cf14a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f6a074a01be65f7a6d84ce8f5afed68f384de121","unresolved":false,"context_lines":[{"line_number":114,"context_line":"     Complete all online data migrations using:"},{"line_number":115,"context_line":"     ``nova-manage db online_data_migrations --limit \u003cnumber\u003e``. Note that you"},{"line_number":116,"context_line":"     can use the limit argument to reduce the load this operation will place"},{"line_number":117,"context_line":"     on the database."},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"   * At this point, you must also ensure you update the configuration, to stop"},{"line_number":120,"context_line":"     using any deprecated features or options, and perform any required work"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a8bc5a2_1a1f6c5c","line":117,"updated":"2016-09-27 21:48:24.000000000","message":"Say something here about having to run it many times, as the limit just does a piece of the whole thing.","commit_id":"dfc95b7f5409ebb98ce8a29d16f396f5c29cf14a"},{"author":{"_account_id":17716,"name":"Luz Cazares","email":"luz.cazares@intel.com","username":"luzcazares"},"change_message_id":"cb4f66746fc0d8ffd8c600c14ad3c5b674ac9f4c","unresolved":false,"context_lines":[{"line_number":114,"context_line":"     Complete all online data migrations using:"},{"line_number":115,"context_line":"     ``nova-manage db online_data_migrations --limit \u003cnumber\u003e``. Note that you"},{"line_number":116,"context_line":"     can use the limit argument to reduce the load this operation will place"},{"line_number":117,"context_line":"     on the database."},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"   * At this point, you must also ensure you update the configuration, to stop"},{"line_number":120,"context_line":"     using any deprecated features or options, and perform any required work"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a98d1f4_41cb7b53","line":117,"in_reply_to":"3a98d1f4_da5a1b83","updated":"2016-09-29 20:40:31.000000000","message":"Also is there any tips BKM about the limit number? which would be the appropriate limit to use? are there factors to consider?","commit_id":"dfc95b7f5409ebb98ce8a29d16f396f5c29cf14a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"a59a42bc3b1c022a5bd0654faf7d103e80960453","unresolved":false,"context_lines":[{"line_number":114,"context_line":"     Complete all online data migrations using:"},{"line_number":115,"context_line":"     ``nova-manage db online_data_migrations --limit \u003cnumber\u003e``. Note that you"},{"line_number":116,"context_line":"     can use the limit argument to reduce the load this operation will place"},{"line_number":117,"context_line":"     on the database."},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"   * At this point, you must also ensure you update the configuration, to stop"},{"line_number":120,"context_line":"     using any deprecated features or options, and perform any required work"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a98d1f4_da5a1b83","line":117,"in_reply_to":"5a8bc5a2_1a1f6c5c","updated":"2016-09-29 16:39:24.000000000","message":"Very good point, we should really tell folks how you use the limit param here.","commit_id":"dfc95b7f5409ebb98ce8a29d16f396f5c29cf14a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1cb254e7bf9a1681d1a66c28f1cf79fd610e2092","unresolved":false,"context_lines":[{"line_number":54,"context_line":"Rolling upgrade process"},{"line_number":55,"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"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"To eliminate downtime, the services can be upgraded in a rolling fashion. It"},{"line_number":58,"context_line":"means upgrading a few services at a time. This results in a condition where"},{"line_number":59,"context_line":"both old (N) and new (N+1) nova-compute services co-exist for a certain time"},{"line_number":60,"context_line":"period. Note that, there is no upgrade of the hypervisor here, this is just"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa6399be_01721e7b","line":57,"range":{"start_line":57,"start_character":0,"end_line":57,"end_character":21},"updated":"2016-10-13 14:56:59.000000000","message":"Its more \"reduce downtime\".","commit_id":"dc27fb2c3547a6fc5575dccbcbe3931e6cf0d4d5"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1cb254e7bf9a1681d1a66c28f1cf79fd610e2092","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"   * Start all services, with ``[upgrade_levels]compute\u003dauto`` in nova.conf."},{"line_number":84,"context_line":"     It is safest to start nova-conductor first and nova-api last. Note that,"},{"line_number":85,"context_line":"     for older releases, before Liberty, you need to use static alias name"},{"line_number":86,"context_line":"     instead of ``auto``."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"   * In small batches gracefully shutdown nova-compute (i.e. SIG_TERM), then"},{"line_number":89,"context_line":"     start the new version of the code with: ``[upgrade_levels]compute\u003dauto``"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa6399be_0154de50","line":86,"range":{"start_line":85,"start_character":5,"end_line":86,"end_character":25},"updated":"2016-10-13 14:56:59.000000000","message":"Need more details here on how static works, I guess.","commit_id":"dc27fb2c3547a6fc5575dccbcbe3931e6cf0d4d5"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1cb254e7bf9a1681d1a66c28f1cf79fd610e2092","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"   * Now all the services are upgraded, the system is able to use the latest"},{"line_number":105,"context_line":"     version of the RPC protocol and so get access to all the new features in"},{"line_number":106,"context_line":"     the new release. Latest version of RPC is only used when upgrade_levels"},{"line_number":107,"context_line":"     ia set to ``auto``."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"   * Now all the services are running the latest version of the code, and all"},{"line_number":110,"context_line":"     the services are aware that have all been upgraded, it is safe to"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa6399be_e1044a4b","line":107,"range":{"start_line":106,"start_character":21,"end_line":107,"end_character":24},"updated":"2016-10-13 14:56:59.000000000","message":"Thats not correct.\n\nIf using a static upgrade_level, this needs to be reset here. The default is using the latest version, thats not what \"auto\" means.","commit_id":"dc27fb2c3547a6fc5575dccbcbe3931e6cf0d4d5"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1cb254e7bf9a1681d1a66c28f1cf79fd610e2092","unresolved":false,"context_lines":[{"line_number":123,"context_line":"     of upgrades until all of the work is done. Each time it is run, it will"},{"line_number":124,"context_line":"     show summary of completed and remaining records. You run this command"},{"line_number":125,"context_line":"     until you see completed and remaining records as zeros. The size of"},{"line_number":126,"context_line":"     chunks you should use depend on infrastructure."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"   * At this point, you must also ensure you update the configuration, to stop"},{"line_number":129,"context_line":"     using any deprecated features or options, and perform any required work"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa6399be_417df6af","line":126,"range":{"start_line":126,"start_character":34,"end_line":126,"end_character":36},"updated":"2016-10-13 14:56:59.000000000","message":"Nit: on your","commit_id":"dc27fb2c3547a6fc5575dccbcbe3931e6cf0d4d5"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"a38019e6865c74fd4a23bff109de391ad4ad339a","unresolved":false,"context_lines":[{"line_number":109,"context_line":"     the new release."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"   * Now all the services are running the latest version of the code, and all"},{"line_number":112,"context_line":"     the services are aware that have all been upgraded, it is safe to"},{"line_number":113,"context_line":"     transform the data in the database into its new format. While this"},{"line_number":114,"context_line":"     happens on demand when the system reads a database row that needs"},{"line_number":115,"context_line":"     updating, we must get all the data transformed into the current version"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa6399be_ccddbde1","line":112,"range":{"start_line":112,"start_character":28,"end_line":112,"end_character":37},"updated":"2016-10-13 15:15:06.000000000","message":"they all have?","commit_id":"777cf6d1a4faefe0c14167c582dca4cd4efe5df1"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"a38019e6865c74fd4a23bff109de391ad4ad339a","unresolved":false,"context_lines":[{"line_number":121,"context_line":"     can use the limit argument to reduce the load this operation will place"},{"line_number":122,"context_line":"     on the database."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"   * Limit argument in online data migrations alllows you to run small chunk"},{"line_number":125,"context_line":"     of upgrades until all of the work is done. Each time it is run, it will"},{"line_number":126,"context_line":"     show summary of completed and remaining records. You run this command"},{"line_number":127,"context_line":"     until you see completed and remaining records as zeros. The size of"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa6399be_acd409bd","line":124,"range":{"start_line":124,"start_character":5,"end_line":124,"end_character":53},"updated":"2016-10-13 15:15:06.000000000","message":"\"the limit\" and \"allows\"","commit_id":"777cf6d1a4faefe0c14167c582dca4cd4efe5df1"}]}
