)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"acee278538f009301aeec3ee5bf4f9f580486527","unresolved":false,"context_lines":[{"line_number":17,"context_line":"database when we unrescue it."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"APIImpact"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: Ib0b35b9a99a689b27ce1a87a8bec4d0186fc4543"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1a95cdbc_3c5c1b25","line":20,"updated":"2016-10-04 20:18:50.000000000","message":"better to add\n\n Previously-approved: Newton\n\nto get approval again easily.","commit_id":"d6462fdfe9090c809ce9759cae83d60b61935e68"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3d88abb2881b11c16315a46ff9ba41acd652e841","unresolved":false,"context_lines":[{"line_number":14,"context_line":"The spec proposes a way to add support for live-migrating"},{"line_number":15,"context_line":"rescued instances for libvirt driver."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Previously-approved: Newton"},{"line_number":18,"context_line":"APIImpact"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: Ib0b35b9a99a689b27ce1a87a8bec4d0186fc4543"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"3a1ff146_e41f6f59","line":17,"updated":"2017-03-14 17:31:48.000000000","message":"Lets drop this, because this has changed a lot from that spec. I would just note, this is based on the originally approved spec here:\nhttp://specs.openstack.org/openstack/nova-specs/specs/newton/approved/live-migrate-rescued-instances.html","commit_id":"15f7aac193730339e2cb1a2c5de6b175bc61877f"}],"specs/ocata/approved/live-migrate-rescued-instances.rst":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"abed3f9f834168c7a053aab6c89620ab988bb921","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Blueprint:https://blueprints.launchpad.net/nova/+spec/live-migrate-rescued-instances"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba5da102_8b39cbd9","line":8,"updated":"2016-11-02 16:07:47.000000000","message":"Nit: we lost the title here somehow.","commit_id":"d6462fdfe9090c809ce9759cae83d60b61935e68"},{"author":{"_account_id":6804,"name":"bruce-benjamin","email":"bruce.benjamin@jhuapl.edu","username":"bruce-benjamin"},"change_message_id":"67a3082e6ea4d5369c12c4538a5052f628ceb48d","unresolved":false,"context_lines":[{"line_number":15,"context_line":"is used when unrescuing the instance to revert to the original disk"},{"line_number":16,"context_line":"configuration. However, this file is not necessary to restore the"},{"line_number":17,"context_line":"instance\u0027s original configuration. Furthermore the reliance on this"},{"line_number":18,"context_line":"file means we currently cannot live migrate a rescued instance.  Thus"},{"line_number":19,"context_line":"it is proposed that we do not create this file during the rescue"},{"line_number":20,"context_line":"operation and rebuild the instance\u0027s original xml file from the"},{"line_number":21,"context_line":"database when we unrescue it."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Problem description"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa7ab95a_425af251","line":21,"range":{"start_line":18,"start_character":64,"end_line":21,"end_character":29},"updated":"2016-08-30 23:15:41.000000000","message":"Does this rebuild process ever fail, due to having insufficient or corrupted data?  I\u0027d suggest this failure case, with a notification, be called out in the Notifications Impact section below.","commit_id":"d6462fdfe9090c809ce9759cae83d60b61935e68"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"6a2df8b09b45eccc5db2708e248ee9bdd0168cda","unresolved":false,"context_lines":[{"line_number":15,"context_line":"is used when unrescuing the instance to revert to the original disk"},{"line_number":16,"context_line":"configuration. However, this file is not necessary to restore the"},{"line_number":17,"context_line":"instance\u0027s original configuration. Furthermore the reliance on this"},{"line_number":18,"context_line":"file means we currently cannot live migrate a rescued instance.  Thus"},{"line_number":19,"context_line":"it is proposed that we do not create this file during the rescue"},{"line_number":20,"context_line":"operation and rebuild the instance\u0027s original xml file from the"},{"line_number":21,"context_line":"database when we unrescue it."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Problem description"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa7ab95a_975d054b","line":21,"range":{"start_line":18,"start_character":64,"end_line":21,"end_character":29},"in_reply_to":"fa7ab95a_425af251","updated":"2016-09-28 20:31:43.000000000","message":"This is the same process as occurs during initial instance creation, rebuild and hard reboot. Nova builds the domain.xml from the nova database entries and information it obtains from Neutron client and libvirt api calls.  If it fails I\u0027d expect the instance fault warpper around unrescue to handle this in the same way as an error from previous or existing code.","commit_id":"d6462fdfe9090c809ce9759cae83d60b61935e68"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"abed3f9f834168c7a053aab6c89620ab988bb921","unresolved":false,"context_lines":[{"line_number":15,"context_line":"is used when unrescuing the instance to revert to the original disk"},{"line_number":16,"context_line":"configuration. However, this file is not necessary to restore the"},{"line_number":17,"context_line":"instance\u0027s original configuration. Furthermore the reliance on this"},{"line_number":18,"context_line":"file means we currently cannot live migrate a rescued instance.  Thus"},{"line_number":19,"context_line":"it is proposed that we do not create this file during the rescue"},{"line_number":20,"context_line":"operation and rebuild the instance\u0027s original xml file from the"},{"line_number":21,"context_line":"database when we unrescue it."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Problem description"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba5da102_0ba21bfd","line":21,"range":{"start_line":18,"start_character":64,"end_line":21,"end_character":29},"in_reply_to":"fa7ab95a_975d054b","updated":"2016-11-02 16:07:47.000000000","message":"we shouldn\u0027t be adding notifications in this scope of work.","commit_id":"d6462fdfe9090c809ce9759cae83d60b61935e68"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"acee278538f009301aeec3ee5bf4f9f580486527","unresolved":false,"context_lines":[{"line_number":229,"context_line":"     - Description"},{"line_number":230,"context_line":"   * - Newton"},{"line_number":231,"context_line":"     - Introduced"},{"line_number":232,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a95cdbc_5c964795","line":232,"updated":"2016-10-04 20:18:50.000000000","message":"Need to add\n\n   * - Ocata\n     - Re-proposed\n\nlike the other pre-approved specs.","commit_id":"d6462fdfe9090c809ce9759cae83d60b61935e68"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"abed3f9f834168c7a053aab6c89620ab988bb921","unresolved":false,"context_lines":[{"line_number":229,"context_line":"     - Description"},{"line_number":230,"context_line":"   * - Newton"},{"line_number":231,"context_line":"     - Introduced"},{"line_number":232,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba5da102_4b5a532b","line":232,"in_reply_to":"1a95cdbc_5c964795","updated":"2016-11-02 16:07:47.000000000","message":"I guess that should be added.","commit_id":"d6462fdfe9090c809ce9759cae83d60b61935e68"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"c720ca177d3abfeaef0adb3c239b2d9e4f296b72","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"1a430d35_985c827e","updated":"2017-02-08 20:59:06.000000000","message":"Let\u0027s first move this file to Pike dir.","commit_id":"b45706497ad1979608d495633c410091190c031a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7224cf6d2a4cfa75602ad39d6a097ade97cd1d1a","unresolved":false,"context_lines":[{"line_number":15,"context_line":"is used when unrescuing the instance to revert to the original disk"},{"line_number":16,"context_line":"configuration. However, this file is not necessary to restore the"},{"line_number":17,"context_line":"instance\u0027s original configuration. Furthermore the reliance on this"},{"line_number":18,"context_line":"file means we currently cannot live migrate a rescued instance.  Thus"},{"line_number":19,"context_line":"it is proposed that we do not create this file during the rescue"},{"line_number":20,"context_line":"operation and rebuild the instance\u0027s original xml file from the"},{"line_number":21,"context_line":"database when we unrescue it."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Problem description"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_03db5f7d","line":21,"range":{"start_line":18,"start_character":65,"end_line":21,"end_character":29},"updated":"2016-11-15 20:46:42.000000000","message":"This seems to contradict some of the issues that Matt Booth pointed out here:\n\nhttp://lists.openstack.org/pipermail/openstack-dev/2016-September/104617.html\n\nSo when we unrescue the instance the block devices could be in a different order.","commit_id":"b45706497ad1979608d495633c410091190c031a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"21c0c233162aebd93daa0b549e557aeea3773175","unresolved":false,"context_lines":[{"line_number":15,"context_line":"is used when unrescuing the instance to revert to the original disk"},{"line_number":16,"context_line":"configuration. However, this file is not necessary to restore the"},{"line_number":17,"context_line":"instance\u0027s original configuration. Furthermore the reliance on this"},{"line_number":18,"context_line":"file means we currently cannot live migrate a rescued instance.  Thus"},{"line_number":19,"context_line":"it is proposed that we do not create this file during the rescue"},{"line_number":20,"context_line":"operation and rebuild the instance\u0027s original xml file from the"},{"line_number":21,"context_line":"database when we unrescue it."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Problem description"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_f299ba6f","line":21,"range":{"start_line":18,"start_character":65,"end_line":21,"end_character":29},"in_reply_to":"7a77a97e_03db5f7d","updated":"2016-11-16 09:35:26.000000000","message":"I hadn\u0027t linked those two efforts, but you are correct.\n\nIt sounded like we would want to store, at a minimum, the disk PCI ids that get generated by libvirt, so the disk order is more likely to be consistent.\n\nI didn\u0027t really want to serialise those two bits of work, because this is creating a big problem from operators, but I don\u0027t like the idea of adding a nasty throwaway solution in the middle of our live-migration code.","commit_id":"b45706497ad1979608d495633c410091190c031a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"69bea84945ae0443d5eb316c0cfac47a7648d5ee","unresolved":false,"context_lines":[{"line_number":15,"context_line":"is used when unrescuing the instance to revert to the original disk"},{"line_number":16,"context_line":"configuration. However, this file is not necessary to restore the"},{"line_number":17,"context_line":"instance\u0027s original configuration. Furthermore the reliance on this"},{"line_number":18,"context_line":"file means we currently cannot live migrate a rescued instance.  Thus"},{"line_number":19,"context_line":"it is proposed that we do not create this file during the rescue"},{"line_number":20,"context_line":"operation and rebuild the instance\u0027s original xml file from the"},{"line_number":21,"context_line":"database when we unrescue it."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Problem description"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a71b18c_8ecd6187","line":21,"range":{"start_line":18,"start_character":65,"end_line":21,"end_character":29},"in_reply_to":"7a77a97e_8f13025c","updated":"2016-12-06 00:42:40.000000000","message":"To be clear, the potential conflict with mdbooth\u0027s idea of storing the canonical libvirt domain xml in the nova database is not why I\u0027m -1 on this spec, as that idea hasn\u0027t even been fully thought through yet.\n\nI\u0027m -1 on this spec because of the async issue detailed below and needing to resolve that somehow, maybe with an RPC call to get capabilities from the compute, or blocking this feature in the API until all computes are a minimum version to support the functionality.","commit_id":"b45706497ad1979608d495633c410091190c031a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"67fdf12749eae611b895d8bd622d7244ed48d173","unresolved":false,"context_lines":[{"line_number":15,"context_line":"is used when unrescuing the instance to revert to the original disk"},{"line_number":16,"context_line":"configuration. However, this file is not necessary to restore the"},{"line_number":17,"context_line":"instance\u0027s original configuration. Furthermore the reliance on this"},{"line_number":18,"context_line":"file means we currently cannot live migrate a rescued instance.  Thus"},{"line_number":19,"context_line":"it is proposed that we do not create this file during the rescue"},{"line_number":20,"context_line":"operation and rebuild the instance\u0027s original xml file from the"},{"line_number":21,"context_line":"database when we unrescue it."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Problem description"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_8f13025c","line":21,"range":{"start_line":18,"start_character":65,"end_line":21,"end_character":29},"in_reply_to":"7a77a97e_f299ba6f","updated":"2016-11-22 14:31:38.000000000","message":"Do we have a solution to this concern?\n\nIt seems possibly worth moving forward with the consistent fix, rather than depending on an effort that has no chance to start until pike?","commit_id":"b45706497ad1979608d495633c410091190c031a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7224cf6d2a4cfa75602ad39d6a097ade97cd1d1a","unresolved":false,"context_lines":[{"line_number":78,"context_line":"False for drivers that do not support the migration of rescued"},{"line_number":79,"context_line":"instances."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"If the driver supports live migration of instances in a rescued state"},{"line_number":82,"context_line":"the os-migrateLive action API call will return a response code of 202"},{"line_number":83,"context_line":"instead of 409 when an attempt is made to perform a live migration of"},{"line_number":84,"context_line":"an instance in a rescued state so a new API microversion will be"},{"line_number":85,"context_line":"introduced."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"If the driver does not support live migration of instances in a rescued"},{"line_number":88,"context_line":"state then a 400 response will be returned with a message indicating"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_631253b6","line":85,"range":{"start_line":81,"start_character":0,"end_line":85,"end_character":11},"updated":"2016-11-15 20:46:42.000000000","message":"How are you getting the virt driver capability flag value from nova-compute in the REST API? And it\u0027s going to be per-compute. For example, instance A is running on newton compute node X which doesn\u0027t support live migration of a rescued instance. And the virt driver flag doesn\u0027t even exist so you\u0027d get a 409. Instance B is running on ocata compute node Y which has the flag set to True so you can proceed with attempting to live migration the rescued instance.\n\nHowever, without an RPC call to the compute node to get those capabilities flags you can\u0027t return a 202 vs a 409 from the API. This bumps up against the API WG spec on exposing capabilities:\n\nhttps://review.openstack.org/#/c/386555/\n\nBut I think it needs to be pointed out here since you\u0027re sort of glossing over this separation between REST API and nova-compute capabilities.\n\nAlternatively, we could bump the service version on the nova-compute service and the REST API could be checking that and you basically can\u0027t attempt live migration of a rescued server until the minimum nova-compute service version in the deployment is at or above that version. That\u0027s what we did with the get-me-a-network feature and microversion 2.37.","commit_id":"b45706497ad1979608d495633c410091190c031a"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"87e745471e201173f8bcc8d70743275a909790c1","unresolved":false,"context_lines":[{"line_number":78,"context_line":"False for drivers that do not support the migration of rescued"},{"line_number":79,"context_line":"instances."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"If the driver supports live migration of instances in a rescued state"},{"line_number":82,"context_line":"the os-migrateLive action API call will return a response code of 202"},{"line_number":83,"context_line":"instead of 409 when an attempt is made to perform a live migration of"},{"line_number":84,"context_line":"an instance in a rescued state so a new API microversion will be"},{"line_number":85,"context_line":"introduced."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"If the driver does not support live migration of instances in a rescued"},{"line_number":88,"context_line":"state then a 400 response will be returned with a message indicating"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_de313d0d","line":85,"range":{"start_line":81,"start_character":0,"end_line":85,"end_character":11},"updated":"2016-11-15 22:43:47.000000000","message":"could you please explain, what will be in new microversion?","commit_id":"b45706497ad1979608d495633c410091190c031a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dc8cd04b9e46287a612feb16ef11afbabc694952","unresolved":false,"context_lines":[{"line_number":78,"context_line":"False for drivers that do not support the migration of rescued"},{"line_number":79,"context_line":"instances."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"If the driver supports live migration of instances in a rescued state"},{"line_number":82,"context_line":"the os-migrateLive action API call will return a response code of 202"},{"line_number":83,"context_line":"instead of 409 when an attempt is made to perform a live migration of"},{"line_number":84,"context_line":"an instance in a rescued state so a new API microversion will be"},{"line_number":85,"context_line":"introduced."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"If the driver does not support live migration of instances in a rescued"},{"line_number":88,"context_line":"state then a 400 response will be returned with a message indicating"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_1ec5783b","line":85,"range":{"start_line":81,"start_character":0,"end_line":85,"end_character":11},"in_reply_to":"7a77a97e_1e6d7898","updated":"2016-11-15 20:58:40.000000000","message":"OK so the async pre-migration checks with microversion 2.34 are a problem. I was wrong about \u003c2.34, if you don\u0027t provide a destination you do the pre-check here:\n\nhttps://github.com/openstack/nova/blob/cb9300fd37225c0b744f1f85e4c3bb940e402a8b/nova/conductor/tasks/live_migrate.py#L198\n\nIf do provide a destination, it\u0027s pre-checked here:\n\nhttps://github.com/openstack/nova/blob/cb9300fd37225c0b744f1f85e4c3bb940e402a8b/nova/conductor/tasks/live_migrate.py#L56\n\nBut again, that\u0027s for microversions\u003c2.34. If you\u0027re adding a microversion to support live migrating rescued instances it\u0027s going to always be \u003e\u003d2.34 so this is not going to work.","commit_id":"b45706497ad1979608d495633c410091190c031a"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"74e4aa7407d53671156ead91e61fe851035a017a","unresolved":false,"context_lines":[{"line_number":78,"context_line":"False for drivers that do not support the migration of rescued"},{"line_number":79,"context_line":"instances."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"If the driver supports live migration of instances in a rescued state"},{"line_number":82,"context_line":"the os-migrateLive action API call will return a response code of 202"},{"line_number":83,"context_line":"instead of 409 when an attempt is made to perform a live migration of"},{"line_number":84,"context_line":"an instance in a rescued state so a new API microversion will be"},{"line_number":85,"context_line":"introduced."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"If the driver does not support live migration of instances in a rescued"},{"line_number":88,"context_line":"state then a 400 response will be returned with a message indicating"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_fe6bf5b6","line":85,"range":{"start_line":81,"start_character":0,"end_line":85,"end_character":11},"in_reply_to":"7a77a97e_33ccc669","updated":"2016-11-17 15:57:24.000000000","message":"what I\u0027m proposing is to response with 202 as usual, and then from conductor do things in sync manner, so user will check the result over instance-actions, or migrations","commit_id":"b45706497ad1979608d495633c410091190c031a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1d325a246e3a291ce67ad9073a04bb87e8414ded","unresolved":false,"context_lines":[{"line_number":78,"context_line":"False for drivers that do not support the migration of rescued"},{"line_number":79,"context_line":"instances."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"If the driver supports live migration of instances in a rescued state"},{"line_number":82,"context_line":"the os-migrateLive action API call will return a response code of 202"},{"line_number":83,"context_line":"instead of 409 when an attempt is made to perform a live migration of"},{"line_number":84,"context_line":"an instance in a rescued state so a new API microversion will be"},{"line_number":85,"context_line":"introduced."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"If the driver does not support live migration of instances in a rescued"},{"line_number":88,"context_line":"state then a 400 response will be returned with a message indicating"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_b27902ff","line":85,"range":{"start_line":81,"start_character":0,"end_line":85,"end_character":11},"in_reply_to":"7a77a97e_521c2e13","updated":"2016-11-16 09:36:24.000000000","message":"What is in the microversion can be seen in the REST API impact section, as normal.","commit_id":"b45706497ad1979608d495633c410091190c031a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ff8e609d7e93244f768ba9d840005286cc948177","unresolved":false,"context_lines":[{"line_number":78,"context_line":"False for drivers that do not support the migration of rescued"},{"line_number":79,"context_line":"instances."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"If the driver supports live migration of instances in a rescued state"},{"line_number":82,"context_line":"the os-migrateLive action API call will return a response code of 202"},{"line_number":83,"context_line":"instead of 409 when an attempt is made to perform a live migration of"},{"line_number":84,"context_line":"an instance in a rescued state so a new API microversion will be"},{"line_number":85,"context_line":"introduced."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"If the driver does not support live migration of instances in a rescued"},{"line_number":88,"context_line":"state then a 400 response will be returned with a message indicating"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_1e6d7898","line":85,"range":{"start_line":81,"start_character":0,"end_line":85,"end_character":11},"in_reply_to":"7a77a97e_631253b6","updated":"2016-11-15 20:54:09.000000000","message":"Looks like this is trying to do the check here:\n\nhttps://review.openstack.org/#/c/308198/41/nova/compute/rpcapi.py\n\nBut unless I\u0027m mistaken, conductor only calls that before the cast to compute if there is a destination provided.\n\nAnd after microversion 2.34, this is always asynchronous so we\u0027ve already done the RPC cast at this point.","commit_id":"b45706497ad1979608d495633c410091190c031a"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"6641037dc1d92c4ec9148a3913037ba441f6b4b7","unresolved":false,"context_lines":[{"line_number":78,"context_line":"False for drivers that do not support the migration of rescued"},{"line_number":79,"context_line":"instances."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"If the driver supports live migration of instances in a rescued state"},{"line_number":82,"context_line":"the os-migrateLive action API call will return a response code of 202"},{"line_number":83,"context_line":"instead of 409 when an attempt is made to perform a live migration of"},{"line_number":84,"context_line":"an instance in a rescued state so a new API microversion will be"},{"line_number":85,"context_line":"introduced."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"If the driver does not support live migration of instances in a rescued"},{"line_number":88,"context_line":"state then a 400 response will be returned with a message indicating"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_b0d1ac59","line":85,"range":{"start_line":81,"start_character":0,"end_line":85,"end_character":11},"in_reply_to":"7a77a97e_6d4c9dc8","updated":"2016-11-17 15:28:15.000000000","message":"I agree with Matt. I think option 2 is more sensible and scalable. It will cases other than LM as well.","commit_id":"b45706497ad1979608d495633c410091190c031a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5c85edc947fa196dc5f141f9cb48406f92713aca","unresolved":false,"context_lines":[{"line_number":78,"context_line":"False for drivers that do not support the migration of rescued"},{"line_number":79,"context_line":"instances."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"If the driver supports live migration of instances in a rescued state"},{"line_number":82,"context_line":"the os-migrateLive action API call will return a response code of 202"},{"line_number":83,"context_line":"instead of 409 when an attempt is made to perform a live migration of"},{"line_number":84,"context_line":"an instance in a rescued state so a new API microversion will be"},{"line_number":85,"context_line":"introduced."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"If the driver does not support live migration of instances in a rescued"},{"line_number":88,"context_line":"state then a 400 response will be returned with a message indicating"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_33ccc669","line":85,"range":{"start_line":81,"start_character":0,"end_line":85,"end_character":11},"in_reply_to":"7a77a97e_b0328c0e","updated":"2016-11-17 15:48:48.000000000","message":"I\u0027m not crazy about allowing the async call to the compute which may fail and then we just end up logging an instance fault, at least it doesn\u0027t seem like good UX to me when we have these other options to tell you if the capability is even there from the API layer.","commit_id":"b45706497ad1979608d495633c410091190c031a"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"f4bbc119be3c4114348b4640126369042d41c295","unresolved":false,"context_lines":[{"line_number":78,"context_line":"False for drivers that do not support the migration of rescued"},{"line_number":79,"context_line":"instances."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"If the driver supports live migration of instances in a rescued state"},{"line_number":82,"context_line":"the os-migrateLive action API call will return a response code of 202"},{"line_number":83,"context_line":"instead of 409 when an attempt is made to perform a live migration of"},{"line_number":84,"context_line":"an instance in a rescued state so a new API microversion will be"},{"line_number":85,"context_line":"introduced."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"If the driver does not support live migration of instances in a rescued"},{"line_number":88,"context_line":"state then a 400 response will be returned with a message indicating"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_b0328c0e","line":85,"range":{"start_line":81,"start_character":0,"end_line":85,"end_character":11},"in_reply_to":"7a77a97e_b0d1ac59","updated":"2016-11-17 15:40:04.000000000","message":"What about a third option, start accepting such request unconditionally and do things in async manner under the hood?","commit_id":"b45706497ad1979608d495633c410091190c031a"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"23c6cd1fb01ca25898edad6464a40f0ed3c9c914","unresolved":false,"context_lines":[{"line_number":78,"context_line":"False for drivers that do not support the migration of rescued"},{"line_number":79,"context_line":"instances."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"If the driver supports live migration of instances in a rescued state"},{"line_number":82,"context_line":"the os-migrateLive action API call will return a response code of 202"},{"line_number":83,"context_line":"instead of 409 when an attempt is made to perform a live migration of"},{"line_number":84,"context_line":"an instance in a rescued state so a new API microversion will be"},{"line_number":85,"context_line":"introduced."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"If the driver does not support live migration of instances in a rescued"},{"line_number":88,"context_line":"state then a 400 response will be returned with a message indicating"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_fd678de6","line":85,"range":{"start_line":81,"start_character":0,"end_line":85,"end_character":11},"in_reply_to":"7a77a97e_b27902ff","updated":"2016-11-17 10:25:46.000000000","message":"right, but want to be sure that we are not going to reimplement sync live migration pre-checks","commit_id":"b45706497ad1979608d495633c410091190c031a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"21c0c233162aebd93daa0b549e557aeea3773175","unresolved":false,"context_lines":[{"line_number":78,"context_line":"False for drivers that do not support the migration of rescued"},{"line_number":79,"context_line":"instances."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"If the driver supports live migration of instances in a rescued state"},{"line_number":82,"context_line":"the os-migrateLive action API call will return a response code of 202"},{"line_number":83,"context_line":"instead of 409 when an attempt is made to perform a live migration of"},{"line_number":84,"context_line":"an instance in a rescued state so a new API microversion will be"},{"line_number":85,"context_line":"introduced."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"If the driver does not support live migration of instances in a rescued"},{"line_number":88,"context_line":"state then a 400 response will be returned with a message indicating"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_521c2e13","line":85,"range":{"start_line":81,"start_character":0,"end_line":85,"end_character":11},"in_reply_to":"7a77a97e_de313d0d","updated":"2016-11-16 09:35:26.000000000","message":"You are right, this spec is out of date now. It can\u0027t return the different response code.","commit_id":"b45706497ad1979608d495633c410091190c031a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"96265383769f5e9bab32b37995c255bd4c2e4542","unresolved":false,"context_lines":[{"line_number":78,"context_line":"False for drivers that do not support the migration of rescued"},{"line_number":79,"context_line":"instances."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"If the driver supports live migration of instances in a rescued state"},{"line_number":82,"context_line":"the os-migrateLive action API call will return a response code of 202"},{"line_number":83,"context_line":"instead of 409 when an attempt is made to perform a live migration of"},{"line_number":84,"context_line":"an instance in a rescued state so a new API microversion will be"},{"line_number":85,"context_line":"introduced."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"If the driver does not support live migration of instances in a rescued"},{"line_number":88,"context_line":"state then a 400 response will be returned with a message indicating"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_6d4c9dc8","line":85,"range":{"start_line":81,"start_character":0,"end_line":85,"end_character":11},"in_reply_to":"7a77a97e_fd678de6","updated":"2016-11-17 15:22:10.000000000","message":"I see two ways out of this w/o redoing the full synchronized live migration pre-checks:\n\n1. As noted elsewhere in here, we bump the nova-compute service version when the compute changes are made. Then in the REST API when we get the request at the new microversion to live migration a rescued instance, we check the minimum nova-compute service version in the deployment and if it\u0027s not new enough on all compute nodes, we fail. Similar to what we do with 2.32 and 2.37 microversions for virtual device tags and auto-allocated networking.\n\n2. We could add a new compute RPC call to get the capabilities from the compute that\u0027s hosting the targeted rescued instance. We call that from the API (or conductor before casting off to do pre-migration checks) and if the compute doesn\u0027t support the capability to live migrate a rescued instance, we fail. As noted earlier, I think eventually with the discoverable capabilities stuff we\u0027ll need something like this anyway.\n\n--\n\nOption 2 above is arguably better than option 1 because even if all of the computes are at the new enough code level for option 1, unless you\u0027re running the right driver it\u0027s going to fail, vmware for example. At least with option 2 we can have the compute tell the API that it shouldn\u0027t even try to move forward with the request and return the error to the user.","commit_id":"b45706497ad1979608d495633c410091190c031a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7224cf6d2a4cfa75602ad39d6a097ade97cd1d1a","unresolved":false,"context_lines":[{"line_number":85,"context_line":"introduced."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"If the driver does not support live migration of instances in a rescued"},{"line_number":88,"context_line":"state then a 400 response will be returned with a message indicating"},{"line_number":89,"context_line":"that the driver does not support live migration of instances in a"},{"line_number":90,"context_line":"rescued state. The response message will identify the compute node"},{"line_number":91,"context_line":"that does not support live migration of rescued instances, i.e."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_23213bfc","line":88,"range":{"start_line":88,"start_character":13,"end_line":88,"end_character":16},"updated":"2016-11-15 20:46:42.000000000","message":"Why a 400? Why wouldn\u0027t you still continue to return a 409?","commit_id":"b45706497ad1979608d495633c410091190c031a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"21c0c233162aebd93daa0b549e557aeea3773175","unresolved":false,"context_lines":[{"line_number":85,"context_line":"introduced."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"If the driver does not support live migration of instances in a rescued"},{"line_number":88,"context_line":"state then a 400 response will be returned with a message indicating"},{"line_number":89,"context_line":"that the driver does not support live migration of instances in a"},{"line_number":90,"context_line":"rescued state. The response message will identify the compute node"},{"line_number":91,"context_line":"that does not support live migration of rescued instances, i.e."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_12af1695","line":88,"range":{"start_line":88,"start_character":13,"end_line":88,"end_character":16},"in_reply_to":"7a77a97e_23213bfc","updated":"2016-11-16 09:35:26.000000000","message":"Like you say about, this can\u0027t be done and its a mute point now.\n\nAPI-WG say 400 should be used for \"not implemented\":\nhttps://specs.openstack.org/openstack/api-wg/guidelines/http.html#use-of-501-not-implemented\n\nConflict is reserved for state conflicts I think.","commit_id":"b45706497ad1979608d495633c410091190c031a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7224cf6d2a4cfa75602ad39d6a097ade97cd1d1a","unresolved":false,"context_lines":[{"line_number":94,"context_line":"the version that supports the migration of rescued instances."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Live migration already preserves the current instance status whether"},{"line_number":97,"context_line":"the migration successful or rolled back."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Alternatives"},{"line_number":100,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_837e8fe2","line":97,"range":{"start_line":97,"start_character":14,"end_line":97,"end_character":24},"updated":"2016-11-15 20:46:42.000000000","message":"s/successful/was successful/","commit_id":"b45706497ad1979608d495633c410091190c031a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7224cf6d2a4cfa75602ad39d6a097ade97cd1d1a","unresolved":false,"context_lines":[{"line_number":102,"context_line":"One alternative is not doing this, leaving it up to operators to ask"},{"line_number":103,"context_line":"the user to unrescue their instance so it can be migrated."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Another option is to write the original instance state to the database"},{"line_number":106,"context_line":"during the rescue operation so that it can be retrieved by the target"},{"line_number":107,"context_line":"compute node during unrescue. However this is unnecessary and would"},{"line_number":108,"context_line":"require a database schema change to add a table to store this"},{"line_number":109,"context_line":"information."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Data model impact"},{"line_number":112,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_23785bf2","line":109,"range":{"start_line":105,"start_character":0,"end_line":109,"end_character":12},"updated":"2016-11-15 20:46:42.000000000","message":"I think this is basically what mdbooth wants to do:\n\nhttp://lists.openstack.org/pipermail/openstack-dev/2016-September/104617.html","commit_id":"b45706497ad1979608d495633c410091190c031a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"21c0c233162aebd93daa0b549e557aeea3773175","unresolved":false,"context_lines":[{"line_number":102,"context_line":"One alternative is not doing this, leaving it up to operators to ask"},{"line_number":103,"context_line":"the user to unrescue their instance so it can be migrated."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Another option is to write the original instance state to the database"},{"line_number":106,"context_line":"during the rescue operation so that it can be retrieved by the target"},{"line_number":107,"context_line":"compute node during unrescue. However this is unnecessary and would"},{"line_number":108,"context_line":"require a database schema change to add a table to store this"},{"line_number":109,"context_line":"information."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Data model impact"},{"line_number":112,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_f2829aff","line":109,"range":{"start_line":105,"start_character":0,"end_line":109,"end_character":12},"in_reply_to":"7a77a97e_23785bf2","updated":"2016-11-16 09:35:26.000000000","message":"Yeah, that makes a lot of sense.","commit_id":"b45706497ad1979608d495633c410091190c031a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7224cf6d2a4cfa75602ad39d6a097ade97cd1d1a","unresolved":false,"context_lines":[{"line_number":202,"context_line":"New API needs to be documented:"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"* Compute API extensions documentation"},{"line_number":205,"context_line":"  http://developer.openstack.org/api-ref-compute-v2.1.html"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"* nova.compute.api documentation"},{"line_number":208,"context_line":"  http://docs.openstack.org/developer/nova/api/nova.compute.api.html"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_4391d7ef","line":205,"updated":"2016-11-15 20:46:42.000000000","message":"This should be http://developer.openstack.org/api-ref/compute/ now.","commit_id":"b45706497ad1979608d495633c410091190c031a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7224cf6d2a4cfa75602ad39d6a097ade97cd1d1a","unresolved":false,"context_lines":[{"line_number":205,"context_line":"  http://developer.openstack.org/api-ref-compute-v2.1.html"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"* nova.compute.api documentation"},{"line_number":208,"context_line":"  http://docs.openstack.org/developer/nova/api/nova.compute.api.html"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"References"},{"line_number":211,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_a3b62b88","line":208,"updated":"2016-11-15 20:46:42.000000000","message":"This link doesn\u0027t exist...","commit_id":"b45706497ad1979608d495633c410091190c031a"}],"specs/pike/approved/live-migrate-rescued-instances.rst":[{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"8af8b514cffe6437f6893245e03ee68c2dcc287d","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/live-migrate-rescued-instances"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"When an instance is rescued the libvirt driver creates a file unrescue.xml in"},{"line_number":14,"context_line":"the instance directory that contains original instance xml. These files are"},{"line_number":15,"context_line":"used when unrescuing the instance to revert to the original disk"},{"line_number":16,"context_line":"configuration. Currently, nova does not support live migration of rescued"},{"line_number":17,"context_line":"instances."}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa31d9ce_0f9e22b8","line":14,"range":{"start_line":14,"start_character":60,"end_line":14,"end_character":75},"updated":"2017-03-01 12:45:10.000000000","message":"This file is","commit_id":"1448fe46041d15f662ed2c5be531d75707013032"},{"author":{"_account_id":18339,"name":"Sivasathurappan Radhakrishnan","email":"siva.radhakrishnan@intel.com","username":"sivakrishnan"},"change_message_id":"ad2f5b20c15b486b538da19fe30ea71ae5c9e78f","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/live-migrate-rescued-instances"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"When an instance is rescued the libvirt driver creates a file unrescue.xml in"},{"line_number":14,"context_line":"the instance directory that contains original instance xml. These files are"},{"line_number":15,"context_line":"used when unrescuing the instance to revert to the original disk"},{"line_number":16,"context_line":"configuration. Currently, nova does not support live migration of rescued"},{"line_number":17,"context_line":"instances."}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba2be162_f56ee62d","line":14,"range":{"start_line":14,"start_character":60,"end_line":14,"end_character":75},"in_reply_to":"fa31d9ce_0f9e22b8","updated":"2017-03-02 09:45:40.000000000","message":"Done","commit_id":"1448fe46041d15f662ed2c5be531d75707013032"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"8af8b514cffe6437f6893245e03ee68c2dcc287d","unresolved":false,"context_lines":[{"line_number":14,"context_line":"the instance directory that contains original instance xml. These files are"},{"line_number":15,"context_line":"used when unrescuing the instance to revert to the original disk"},{"line_number":16,"context_line":"configuration. Currently, nova does not support live migration of rescued"},{"line_number":17,"context_line":"instances."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"This implementation will allow live migration of rescued instances"},{"line_number":20,"context_line":"for libvirt driver and add driver capabilities flag to check if the driver"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba2be162_195cc94a","line":17,"updated":"2017-03-01 12:45:10.000000000","message":"This description should go under Problem description. Here should be just a summary on what you want to do, Like \"\" Add support to LM rescued instances. Currently operators have to unrescue instance before LM ...\"","commit_id":"1448fe46041d15f662ed2c5be531d75707013032"},{"author":{"_account_id":18339,"name":"Sivasathurappan Radhakrishnan","email":"siva.radhakrishnan@intel.com","username":"sivakrishnan"},"change_message_id":"ad2f5b20c15b486b538da19fe30ea71ae5c9e78f","unresolved":false,"context_lines":[{"line_number":14,"context_line":"the instance directory that contains original instance xml. These files are"},{"line_number":15,"context_line":"used when unrescuing the instance to revert to the original disk"},{"line_number":16,"context_line":"configuration. Currently, nova does not support live migration of rescued"},{"line_number":17,"context_line":"instances."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"This implementation will allow live migration of rescued instances"},{"line_number":20,"context_line":"for libvirt driver and add driver capabilities flag to check if the driver"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba2be162_156a9a1a","line":17,"in_reply_to":"ba2be162_195cc94a","updated":"2017-03-02 09:45:40.000000000","message":"Done","commit_id":"1448fe46041d15f662ed2c5be531d75707013032"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"8af8b514cffe6437f6893245e03ee68c2dcc287d","unresolved":false,"context_lines":[{"line_number":25,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":26,"context_line":"Presently instances in rescued state cannot be live migrated. This might be"},{"line_number":27,"context_line":"an issue during upgrades as all the active instances in the host needs to be"},{"line_number":28,"context_line":"migrated using live-migrate."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Use Cases"},{"line_number":31,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba2be162_bc6e4bc7","line":28,"updated":"2017-03-01 12:45:10.000000000","message":"Elaborate here as why this can\u0027t be LM migrated. Things that you were talking in the summary.","commit_id":"1448fe46041d15f662ed2c5be531d75707013032"},{"author":{"_account_id":18339,"name":"Sivasathurappan Radhakrishnan","email":"siva.radhakrishnan@intel.com","username":"sivakrishnan"},"change_message_id":"ad2f5b20c15b486b538da19fe30ea71ae5c9e78f","unresolved":false,"context_lines":[{"line_number":25,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":26,"context_line":"Presently instances in rescued state cannot be live migrated. This might be"},{"line_number":27,"context_line":"an issue during upgrades as all the active instances in the host needs to be"},{"line_number":28,"context_line":"migrated using live-migrate."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Use Cases"},{"line_number":31,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba2be162_75611639","line":28,"in_reply_to":"ba2be162_bc6e4bc7","updated":"2017-03-02 09:45:40.000000000","message":"Done","commit_id":"1448fe46041d15f662ed2c5be531d75707013032"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"8af8b514cffe6437f6893245e03ee68c2dcc287d","unresolved":false,"context_lines":[{"line_number":36,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Libvirt currently does not support live migration of rescued instances due to"},{"line_number":39,"context_line":"the files that are stored locally on the compute node when an instance is"},{"line_number":40,"context_line":"rescued. Live migration does not copy these files to the target compute node."},{"line_number":41,"context_line":"The proposal is to copy the rescued instance files to destination host during"},{"line_number":42,"context_line":"pre-live migration phase."}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba2be162_fc960393","line":39,"updated":"2017-03-01 12:45:10.000000000","message":"I will explicitly name the files here. In the problem section, you can just say some files are created during rescue operation which are required for unrescue.","commit_id":"1448fe46041d15f662ed2c5be531d75707013032"},{"author":{"_account_id":18339,"name":"Sivasathurappan Radhakrishnan","email":"siva.radhakrishnan@intel.com","username":"sivakrishnan"},"change_message_id":"ad2f5b20c15b486b538da19fe30ea71ae5c9e78f","unresolved":false,"context_lines":[{"line_number":36,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Libvirt currently does not support live migration of rescued instances due to"},{"line_number":39,"context_line":"the files that are stored locally on the compute node when an instance is"},{"line_number":40,"context_line":"rescued. Live migration does not copy these files to the target compute node."},{"line_number":41,"context_line":"The proposal is to copy the rescued instance files to destination host during"},{"line_number":42,"context_line":"pre-live migration phase."}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba2be162_15861ab9","line":39,"in_reply_to":"ba2be162_fc960393","updated":"2017-03-02 09:45:40.000000000","message":"I have mentioned all file names created during rescue operation in the problem description and over here the files which we are copying.","commit_id":"1448fe46041d15f662ed2c5be531d75707013032"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"8af8b514cffe6437f6893245e03ee68c2dcc287d","unresolved":false,"context_lines":[{"line_number":54,"context_line":"In the new microversion, REST API will check for minimum nova-compute service"},{"line_number":55,"context_line":"version in the deployment before attempting to live migrate a rescued instance."},{"line_number":56,"context_line":"However, driver\u0027s capability to live migrate a rescued instance is checked at"},{"line_number":57,"context_line":"pre-live migration phase in compute. If the driver does not support live"},{"line_number":58,"context_line":"migration of instances in a rescued state then a 400 response will be returned"},{"line_number":59,"context_line":"with a message indicating that the driver does not support live migration of"},{"line_number":60,"context_line":"instances in a rescued state. The response message will identify the compute"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba2be162_dc14dff6","line":57,"range":{"start_line":57,"start_character":0,"end_line":57,"end_character":18},"updated":"2017-03-01 12:45:10.000000000","message":"Good to mention that this is async operation.","commit_id":"1448fe46041d15f662ed2c5be531d75707013032"},{"author":{"_account_id":18339,"name":"Sivasathurappan Radhakrishnan","email":"siva.radhakrishnan@intel.com","username":"sivakrishnan"},"change_message_id":"ad2f5b20c15b486b538da19fe30ea71ae5c9e78f","unresolved":false,"context_lines":[{"line_number":54,"context_line":"In the new microversion, REST API will check for minimum nova-compute service"},{"line_number":55,"context_line":"version in the deployment before attempting to live migrate a rescued instance."},{"line_number":56,"context_line":"However, driver\u0027s capability to live migrate a rescued instance is checked at"},{"line_number":57,"context_line":"pre-live migration phase in compute. If the driver does not support live"},{"line_number":58,"context_line":"migration of instances in a rescued state then a 400 response will be returned"},{"line_number":59,"context_line":"with a message indicating that the driver does not support live migration of"},{"line_number":60,"context_line":"instances in a rescued state. The response message will identify the compute"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba2be162_559092ec","line":57,"range":{"start_line":57,"start_character":0,"end_line":57,"end_character":18},"in_reply_to":"ba2be162_dc14dff6","updated":"2017-03-02 09:45:40.000000000","message":"Done","commit_id":"1448fe46041d15f662ed2c5be531d75707013032"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"8af8b514cffe6437f6893245e03ee68c2dcc287d","unresolved":false,"context_lines":[{"line_number":59,"context_line":"with a message indicating that the driver does not support live migration of"},{"line_number":60,"context_line":"instances in a rescued state. The response message will identify the compute"},{"line_number":61,"context_line":"node that does not support live migration of rescued instances, i.e. source"},{"line_number":62,"context_line":"or destination and compute node name. This is useful during upgrade when"},{"line_number":63,"context_line":"some compute nodes may not have been upgraded to the version that supports"},{"line_number":64,"context_line":"the migration of rescued instances."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Alternatives"},{"line_number":67,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba2be162_9cd8a755","line":64,"range":{"start_line":62,"start_character":38,"end_line":64,"end_character":35},"updated":"2017-03-01 12:45:10.000000000","message":"If we check for minimum compute version in REST API only then do we still need this?","commit_id":"1448fe46041d15f662ed2c5be531d75707013032"},{"author":{"_account_id":18339,"name":"Sivasathurappan Radhakrishnan","email":"siva.radhakrishnan@intel.com","username":"sivakrishnan"},"change_message_id":"ad2f5b20c15b486b538da19fe30ea71ae5c9e78f","unresolved":false,"context_lines":[{"line_number":59,"context_line":"with a message indicating that the driver does not support live migration of"},{"line_number":60,"context_line":"instances in a rescued state. The response message will identify the compute"},{"line_number":61,"context_line":"node that does not support live migration of rescued instances, i.e. source"},{"line_number":62,"context_line":"or destination and compute node name. This is useful during upgrade when"},{"line_number":63,"context_line":"some compute nodes may not have been upgraded to the version that supports"},{"line_number":64,"context_line":"the migration of rescued instances."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Alternatives"},{"line_number":67,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba2be162_155b7a55","line":64,"range":{"start_line":62,"start_character":38,"end_line":64,"end_character":35},"in_reply_to":"ba2be162_9cd8a755","updated":"2017-03-02 09:45:40.000000000","message":"Done","commit_id":"1448fe46041d15f662ed2c5be531d75707013032"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"8af8b514cffe6437f6893245e03ee68c2dcc287d","unresolved":false,"context_lines":[{"line_number":72,"context_line":"* Another option is to write the original instance state to the database during"},{"line_number":73,"context_line":"  the rescue operation so that it can be retrieved by the target compute node"},{"line_number":74,"context_line":"  during unrescue. However this is unnecessary and would require a database"},{"line_number":75,"context_line":"  schema change to add a table to store this information."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Data model impact"},{"line_number":78,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba2be162_3caedb85","line":75,"updated":"2017-03-01 12:45:10.000000000","message":"Another option is as suggested by Matt \"We could add a new compute RPC call to get the capabilities from the compute that\u0027s hosting the targeted rescued instance. We call that from the API (or conductor before casting off to do pre-migration checks) and if the compute doesn\u0027t support the capability to live migrate a rescued instance, we fail. \"","commit_id":"1448fe46041d15f662ed2c5be531d75707013032"},{"author":{"_account_id":18339,"name":"Sivasathurappan Radhakrishnan","email":"siva.radhakrishnan@intel.com","username":"sivakrishnan"},"change_message_id":"ad2f5b20c15b486b538da19fe30ea71ae5c9e78f","unresolved":false,"context_lines":[{"line_number":72,"context_line":"* Another option is to write the original instance state to the database during"},{"line_number":73,"context_line":"  the rescue operation so that it can be retrieved by the target compute node"},{"line_number":74,"context_line":"  during unrescue. However this is unnecessary and would require a database"},{"line_number":75,"context_line":"  schema change to add a table to store this information."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Data model impact"},{"line_number":78,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba2be162_20e4be0b","line":75,"in_reply_to":"ba2be162_3caedb85","updated":"2017-03-02 09:45:40.000000000","message":"I think he wanted this to be a part of proposed change. I don\u0027t think so it can be an alternative for the above change.","commit_id":"1448fe46041d15f662ed2c5be531d75707013032"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"044be52103179d3579e812c9b57a7797ed479322","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"When an instance is rescued, libvirt driver creates following set of files in"},{"line_number":21,"context_line":"the instance directory."},{"line_number":22,"context_line":"* unrescue.xml"},{"line_number":23,"context_line":"* disk.rescue"},{"line_number":24,"context_line":"* kernel.rescue"},{"line_number":25,"context_line":"* ramdisk.rescue"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ba2be162_aef00a68","line":22,"updated":"2017-03-06 15:13:11.000000000","message":"Note: this is actually not going to build correctly:\nhttp://docs-draft.openstack.org/61/347161/7/check/gate-nova-specs-docs-ubuntu-xenial/b56a1f2//doc/build/html/specs/pike/approved/live-migrate-rescued-instances.html#problem-description\n\nYou need an empty new line before and after the bullet list block.","commit_id":"e2d31a777c6b55fa79809b11629b5509958e3069"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"8106c50db41051f6a4da9cfacc59eee0c64fd105","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"When an instance is rescued, libvirt driver creates following set of files in"},{"line_number":21,"context_line":"the instance directory."},{"line_number":22,"context_line":"* unrescue.xml"},{"line_number":23,"context_line":"* disk.rescue"},{"line_number":24,"context_line":"* kernel.rescue"},{"line_number":25,"context_line":"* ramdisk.rescue"},{"line_number":26,"context_line":"These files are used when unrescuing the instance to revert to the original"},{"line_number":27,"context_line":"disk configuration. Currently, nova does not support live migration of"},{"line_number":28,"context_line":"rescued instances."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"This implementation will allow live migration of rescued instances"},{"line_number":31,"context_line":"for libvirt driver and add driver capabilities flag to check if the driver"},{"line_number":32,"context_line":"supports live migration of rescued instances."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"NOTE:kernel.rescue and ramdisk.rescue is created if image properties, kernel_id"},{"line_number":35,"context_line":"and ramdisk_id are set."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Use Cases"},{"line_number":38,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ba2be162_27067486","line":35,"range":{"start_line":20,"start_character":0,"end_line":35,"end_character":23},"updated":"2017-03-02 17:53:45.000000000","message":"So I think this needs some refactoring. Start with what issue operators are hitting as:\n1. In case operators want to patch/upgrade a host, they have to manually unrescue a VM and then LM it before they can proceed with maintenance operation. \n2. Then talk about why Nova does not support LM as \"During rescue operation some files like unrescue.xml are created, which are required to successfully unrescue a VM. In LM libvirt only moves files to destination that is knows of and hence unrescue is not moved to destination. This casue unrescue to fail on destination node.\"\n\nSomething along these lines ^","commit_id":"e2d31a777c6b55fa79809b11629b5509958e3069"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"044be52103179d3579e812c9b57a7797ed479322","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"When an instance is rescued, libvirt driver creates following set of files in"},{"line_number":21,"context_line":"the instance directory."},{"line_number":22,"context_line":"* unrescue.xml"},{"line_number":23,"context_line":"* disk.rescue"},{"line_number":24,"context_line":"* kernel.rescue"},{"line_number":25,"context_line":"* ramdisk.rescue"},{"line_number":26,"context_line":"These files are used when unrescuing the instance to revert to the original"},{"line_number":27,"context_line":"disk configuration. Currently, nova does not support live migration of"},{"line_number":28,"context_line":"rescued instances."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"This implementation will allow live migration of rescued instances"},{"line_number":31,"context_line":"for libvirt driver and add driver capabilities flag to check if the driver"},{"line_number":32,"context_line":"supports live migration of rescued instances."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"NOTE:kernel.rescue and ramdisk.rescue is created if image properties, kernel_id"},{"line_number":35,"context_line":"and ramdisk_id are set."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Use Cases"},{"line_number":38,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ba2be162_cec1bee5","line":35,"range":{"start_line":20,"start_character":0,"end_line":35,"end_character":23},"in_reply_to":"ba2be162_27067486","updated":"2017-03-06 15:13:11.000000000","message":"+1\n\nI would leave the technical details largely until to the proposed change, honestly.","commit_id":"e2d31a777c6b55fa79809b11629b5509958e3069"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"044be52103179d3579e812c9b57a7797ed479322","unresolved":false,"context_lines":[{"line_number":38,"context_line":"---------"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"As an operator, I want to live migrate all running instances on a node to"},{"line_number":41,"context_line":"perform maintenance."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Proposed change"},{"line_number":44,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ba2be162_ce361e02","line":41,"updated":"2017-03-06 15:13:11.000000000","message":"Needs more context here.\n\nYou want to empty a host of all the instances, so you can reboot the host without affecting the uptime of any of those VMs. This includes VMs that are currently in the rescue state, you don\u0027t want to unrescue them before live-migrating them, as that will interrupt what the user is doing.","commit_id":"e2d31a777c6b55fa79809b11629b5509958e3069"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"044be52103179d3579e812c9b57a7797ed479322","unresolved":false,"context_lines":[{"line_number":48,"context_line":"rescued instance files unrescue.xml, kernel.rescue and ramdisk.rescue to"},{"line_number":49,"context_line":"the destination host during pre-live migration phase."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"For drivers that do not support live migration of rescued instances, a new"},{"line_number":52,"context_line":"driver capabilities flag called `supports_live_migrate_rescued` will be"},{"line_number":53,"context_line":"added and set to False. This will set to false for Hyper-V, VMware, XenAPI"},{"line_number":54,"context_line":"and Ironic."}],"source_content_type":"text/x-rst","patch_set":7,"id":"ba2be162_29b33499","line":51,"updated":"2017-03-06 15:13:11.000000000","message":"I think you want to invert this statement.\n\nThis will only be allowed for specific drivers that support this operation. This spec will only enable this for libvirt. All other drivers will fail to live-migrate if you attempt to live-migrate an instance in the rescue state.","commit_id":"e2d31a777c6b55fa79809b11629b5509958e3069"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"044be52103179d3579e812c9b57a7797ed479322","unresolved":false,"context_lines":[{"line_number":61,"context_line":"support of live migration of rescued instances else the requests fails at the"},{"line_number":62,"context_line":"API level. This is useful during upgrade when some compute nodes may not"},{"line_number":63,"context_line":"have been upgraded to the version that supports the migration of rescued"},{"line_number":64,"context_line":"instances."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"However, driver\u0027s capability to live migrate a rescued instance is checked at"},{"line_number":67,"context_line":"pre-live migration phase in compute which is an async operation. If the driver"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ba2be162_89526033","line":64,"range":{"start_line":64,"start_character":0,"end_line":64,"end_character":9},"updated":"2017-03-06 15:13:11.000000000","message":"So we return 400 if you try to live-migrate an unrescued instance but not all compute nodes are upgraded. We should add that detail in here.","commit_id":"e2d31a777c6b55fa79809b11629b5509958e3069"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"044be52103179d3579e812c9b57a7797ed479322","unresolved":false,"context_lines":[{"line_number":64,"context_line":"instances."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"However, driver\u0027s capability to live migrate a rescued instance is checked at"},{"line_number":67,"context_line":"pre-live migration phase in compute which is an async operation. If the driver"},{"line_number":68,"context_line":"does not support live migration of instances in a rescued state then a 400"},{"line_number":69,"context_line":"response will be returned with a message indicating that the driver does not"},{"line_number":70,"context_line":"support live migration of instances in a rescued state. The response message"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ba2be162_297a54bd","line":67,"range":{"start_line":67,"start_character":48,"end_line":67,"end_character":63},"updated":"2017-03-06 15:13:11.000000000","message":"Async means it can\u0027t influence the API return value. Async is correct here.","commit_id":"e2d31a777c6b55fa79809b11629b5509958e3069"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"044be52103179d3579e812c9b57a7797ed479322","unresolved":false,"context_lines":[{"line_number":64,"context_line":"instances."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"However, driver\u0027s capability to live migrate a rescued instance is checked at"},{"line_number":67,"context_line":"pre-live migration phase in compute which is an async operation. If the driver"},{"line_number":68,"context_line":"does not support live migration of instances in a rescued state then a 400"},{"line_number":69,"context_line":"response will be returned with a message indicating that the driver does not"},{"line_number":70,"context_line":"support live migration of instances in a rescued state. The response message"},{"line_number":71,"context_line":"will identify the compute node that does not support live migration of"},{"line_number":72,"context_line":"rescued instances, i.e. source or destination and compute node name."},{"line_number":73,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"ba2be162_44112d51","line":70,"range":{"start_line":67,"start_character":65,"end_line":70,"end_character":55},"updated":"2017-03-06 15:13:11.000000000","message":"As it is async, this is not possible right? We have to record a failed migration, and update the instance action with the error message, just as we do for any other failure during pre-live migration.\n\nI think its better to say it is just dealt with in the same way as any pre-live-migration error.","commit_id":"e2d31a777c6b55fa79809b11629b5509958e3069"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"044be52103179d3579e812c9b57a7797ed479322","unresolved":false,"context_lines":[{"line_number":69,"context_line":"response will be returned with a message indicating that the driver does not"},{"line_number":70,"context_line":"support live migration of instances in a rescued state. The response message"},{"line_number":71,"context_line":"will identify the compute node that does not support live migration of"},{"line_number":72,"context_line":"rescued instances, i.e. source or destination and compute node name."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Alternatives"},{"line_number":75,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ba2be162_c91d3874","line":72,"range":{"start_line":72,"start_character":46,"end_line":72,"end_character":68},"updated":"2017-03-06 15:13:11.000000000","message":"we should not expose this to end users, that is a security problem.","commit_id":"e2d31a777c6b55fa79809b11629b5509958e3069"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"044be52103179d3579e812c9b57a7797ed479322","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"* Another option is to write the original instance state to the database during"},{"line_number":81,"context_line":"  the rescue operation so that it can be retrieved by the target compute node"},{"line_number":82,"context_line":"  during unrescue. However this is unnecessary and would require a database"},{"line_number":83,"context_line":"  schema change to add a table to store this information."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"Data model impact"},{"line_number":86,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ba2be162_844fa532","line":83,"range":{"start_line":82,"start_character":18,"end_line":83,"end_character":57},"updated":"2017-03-06 15:13:11.000000000","message":"I think we should do this change to how how unrescue works. I would rather we said:\n\nThe change to how unrescue works is going to be considered in parallel with this work. When the files no longer need to be copied, this means live-migrate will work even when you can\u0027t ssh between compute nodes.","commit_id":"e2d31a777c6b55fa79809b11629b5509958e3069"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"0695c086e302311608d69bf1df5aead55390176a","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"REST API impact"},{"line_number":91,"context_line":"---------------"},{"line_number":92,"context_line":"A new microversion is required because a live migration operation on an"},{"line_number":93,"context_line":"instance in a rescued state will return 202 instead of the current 409"},{"line_number":94,"context_line":"response."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Security impact"},{"line_number":97,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ba2be162_405a9250","line":94,"range":{"start_line":92,"start_character":0,"end_line":94,"end_character":9},"updated":"2017-03-02 09:52:02.000000000","message":"Could you please elaborate this more, especially the thing with check before live-migration to be started, as we discussed this on the PTG, the pattern should be the same as the one used for other checks: for sync versions, it should be sync, for async operator should check migration result using instance-actions or migration-list","commit_id":"e2d31a777c6b55fa79809b11629b5509958e3069"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"044be52103179d3579e812c9b57a7797ed479322","unresolved":false,"context_lines":[{"line_number":92,"context_line":"A new microversion is required because a live migration operation on an"},{"line_number":93,"context_line":"instance in a rescued state will return 202 instead of the current 409"},{"line_number":94,"context_line":"response."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Security impact"},{"line_number":97,"context_line":"---------------"},{"line_number":98,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"ba2be162_c42b5d80","line":95,"updated":"2017-03-06 15:13:11.000000000","message":"I would move the API related details you have in the proposed solution section into here. Its very unclear what the changes are in this section if that is not done.","commit_id":"e2d31a777c6b55fa79809b11629b5509958e3069"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"044be52103179d3579e812c9b57a7797ed479322","unresolved":false,"context_lines":[{"line_number":117,"context_line":"---------------------"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"During upgrade live migrations of rescued instances may fail due to one of the"},{"line_number":120,"context_line":"source or destination nodes not yet being upgraded."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Developer impact"},{"line_number":123,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ba2be162_8445e543","line":120,"updated":"2017-03-06 15:13:11.000000000","message":"Thats bad. We should wait for all host to be upgraded before allowing the API.\n\ni.e. Live-migration of rescued instances will not work until all compute nodes have been upgraded to the code that supports this new feature.","commit_id":"e2d31a777c6b55fa79809b11629b5509958e3069"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"044be52103179d3579e812c9b57a7797ed479322","unresolved":false,"context_lines":[{"line_number":147,"context_line":"* Copy the rescued instance files to destination host prior to migration"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"* Implement a driver capability check to if the driver supports live"},{"line_number":150,"context_line":"  migration of rescued instances."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"Dependencies"},{"line_number":153,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ba2be162_c4635daf","line":150,"updated":"2017-03-06 15:13:11.000000000","message":"This should reflect the dependencies here.","commit_id":"e2d31a777c6b55fa79809b11629b5509958e3069"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"044be52103179d3579e812c9b57a7797ed479322","unresolved":false,"context_lines":[{"line_number":166,"context_line":"Documentation Impact"},{"line_number":167,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"New API needs to be documented:"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"* Compute API extensions documentation"},{"line_number":172,"context_line":"  http://developer.openstack.org/api-ref-compute-v2.1.html"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ba2be162_24b2794c","line":169,"updated":"2017-03-06 15:13:11.000000000","message":"Well, its not really a new API. I Think this is enough:\n\nNeed to document the API changes in the api-ref and the admin guide.","commit_id":"e2d31a777c6b55fa79809b11629b5509958e3069"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"044be52103179d3579e812c9b57a7797ed479322","unresolved":false,"context_lines":[{"line_number":174,"context_line":"References"},{"line_number":175,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"https://review.openstack.org/#/c/308198"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"History"},{"line_number":180,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ba2be162_a484a95d","line":177,"updated":"2017-03-06 15:13:11.000000000","message":"I don\u0027t think you need that link here.","commit_id":"e2d31a777c6b55fa79809b11629b5509958e3069"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"044be52103179d3579e812c9b57a7797ed479322","unresolved":false,"context_lines":[{"line_number":189,"context_line":"   * - Ocata"},{"line_number":190,"context_line":"     - Reproposed"},{"line_number":191,"context_line":"   * - Pike"},{"line_number":192,"context_line":"     - Reproposed"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ba2be162_c487dd5e","line":192,"range":{"start_line":192,"start_character":7,"end_line":192,"end_character":17},"updated":"2017-03-06 15:13:11.000000000","message":"I think this is Reproposed and Updated?","commit_id":"e2d31a777c6b55fa79809b11629b5509958e3069"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"db05699705c09449ae5cfad8570f0db219060c36","unresolved":false,"context_lines":[{"line_number":59,"context_line":"This is useful during upgrade when some compute nodes may not have been"},{"line_number":60,"context_line":"upgraded to the version that supports the migration of rescued instances."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"For drivers that support live migration of rescued instances, a new driver"},{"line_number":63,"context_line":"capabilities flag called `supports_live_migrate_rescued` will be added and"},{"line_number":64,"context_line":"set to True. This spec will only enable this for libvirt. All other drivers"},{"line_number":65,"context_line":"will fail to live-migrate if you attempt to live-migrate an instance in the"},{"line_number":66,"context_line":"rescued state."},{"line_number":67,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a30ddce_e896064b","line":64,"range":{"start_line":62,"start_character":0,"end_line":64,"end_character":12},"updated":"2017-03-08 23:15:08.000000000","message":"So I think this flag will be added to all drivers and set to false if they don\u0027t support it. You are proposing to add this in libvirt so it will be set to true for libvirt driver","commit_id":"87de6b2f5f2e4b4215d1c2d29b6574c7d8e85643"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"db05699705c09449ae5cfad8570f0db219060c36","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"* Another option is to write the original instance state to the database during"},{"line_number":81,"context_line":"  the rescue operation so that it can be retrieved by the target compute node"},{"line_number":82,"context_line":"  during unrescue. However this is unnecessary and would require a database"},{"line_number":83,"context_line":"  schema change to add a table to store this information."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"Data model impact"},{"line_number":86,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a30ddce_a89a4e61","line":83,"range":{"start_line":82,"start_character":19,"end_line":83,"end_character":57},"updated":"2017-03-08 23:15:08.000000000","message":"John\u0027s comment from last patch is not addressed here.","commit_id":"87de6b2f5f2e4b4215d1c2d29b6574c7d8e85643"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3d88abb2881b11c16315a46ff9ba41acd652e841","unresolved":false,"context_lines":[{"line_number":47,"context_line":"Proposed change"},{"line_number":48,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Presently in live migration, files that are created by libvirt driver while"},{"line_number":51,"context_line":"rescuing instance are not copied to the target compute node. The proposal is"},{"line_number":52,"context_line":"to copy the rescued instance files unrescue.xml, kernel.rescue and ramdisk"},{"line_number":53,"context_line":".rescue to the destination host during pre-live migration phase."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"A new API microversion will be introduced to allow live migration of"},{"line_number":56,"context_line":"instances in rescued state. In the new microversion, minimum nova-compute"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3a1ff146_e4f20f06","line":53,"range":{"start_line":50,"start_character":0,"end_line":53,"end_character":64},"updated":"2017-03-14 17:31:48.000000000","message":"I would move this to the bottom of this section please, after we talk about all the other drivers.\n\nWe should also mention the plan around trying to copy those kernel and ramdisk from glance, and fallback to the copy only if they are missing? i.e. to avoid the ssh copy.","commit_id":"15f7aac193730339e2cb1a2c5de6b175bc61877f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3d88abb2881b11c16315a46ff9ba41acd652e841","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"* Another option is to write the original instance state to the database during"},{"line_number":81,"context_line":"  the rescue operation so that it can be retrieved by the target compute node"},{"line_number":82,"context_line":"  during unrescue. However this is unnecessary and would require a database"},{"line_number":83,"context_line":"  schema change to add a table to store this information."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"Data model impact"},{"line_number":86,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3a1ff146_244b472d","line":83,"range":{"start_line":82,"start_character":19,"end_line":83,"end_character":57},"updated":"2017-03-14 17:31:48.000000000","message":"I would rather say, we are considering that idea separately to this spec around live-migration.","commit_id":"15f7aac193730339e2cb1a2c5de6b175bc61877f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3d88abb2881b11c16315a46ff9ba41acd652e841","unresolved":false,"context_lines":[{"line_number":91,"context_line":"---------------"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"A new microversion is required because os-migrateLive action API call will"},{"line_number":94,"context_line":"return a response code of 202 instead of the current 409 response. We return"},{"line_number":95,"context_line":"400 if you try to live-migrate an rescued instance when all the compute nodes"},{"line_number":96,"context_line":"are not upgraded to the minimum compute version that supports this"},{"line_number":97,"context_line":"functionality."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Security impact"},{"line_number":100,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3a1ff146_a40497c6","line":97,"range":{"start_line":94,"start_character":67,"end_line":97,"end_character":14},"updated":"2017-03-14 17:31:48.000000000","message":"Nit:\n\nI would put this in a separate paragraph, and reverse the sentence, so its clear this is talking about upgrades.\n\nWhen not all compute nodes are upgraded to the ... etc.","commit_id":"15f7aac193730339e2cb1a2c5de6b175bc61877f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3d88abb2881b11c16315a46ff9ba41acd652e841","unresolved":false,"context_lines":[{"line_number":119,"context_line":"Other deployer impact"},{"line_number":120,"context_line":"---------------------"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"During upgrade live migration of rescued instance may fail if one of the"},{"line_number":123,"context_line":"source or destination nodes are not upgraded to the minimum compute version"},{"line_number":124,"context_line":"that supports this functionality."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"Developer impact"},{"line_number":127,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3a1ff146_042bab31","line":124,"range":{"start_line":122,"start_character":0,"end_line":124,"end_character":33},"updated":"2017-03-14 17:31:48.000000000","message":"This is the opposite of what we say in the API. This features is only available when all compute nodes are upgraded.","commit_id":"15f7aac193730339e2cb1a2c5de6b175bc61877f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"3d88abb2881b11c16315a46ff9ba41acd652e841","unresolved":false,"context_lines":[{"line_number":190,"context_line":"     - Description"},{"line_number":191,"context_line":"   * - Newton"},{"line_number":192,"context_line":"     - Introduced"},{"line_number":193,"context_line":"   * - Ocata"},{"line_number":194,"context_line":"     - Reproposed"},{"line_number":195,"context_line":"   * - Pike"},{"line_number":196,"context_line":"     - Reproposed and Updated"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3a1ff146_e4dccf48","line":194,"range":{"start_line":193,"start_character":0,"end_line":194,"end_character":17},"updated":"2017-03-14 17:31:48.000000000","message":"Nit: I would drop this bit, as it was never merged.","commit_id":"15f7aac193730339e2cb1a2c5de6b175bc61877f"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"aa55e68f82b09525465083534268df64c4405939","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"This implementation will allow live migration of rescued instances for"},{"line_number":32,"context_line":"libvirt driver and add driver capabilities flag to check if the driver"},{"line_number":33,"context_line":"supports live migration of rescued instances."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Use Cases"},{"line_number":36,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"3a1ff146_d29bdcc7","line":33,"updated":"2017-03-15 19:02:03.000000000","message":"This should be part of Proposed change?","commit_id":"a55b9b239dd6b4e8a797a69a122751e79206c5ae"},{"author":{"_account_id":18339,"name":"Sivasathurappan Radhakrishnan","email":"siva.radhakrishnan@intel.com","username":"sivakrishnan"},"change_message_id":"59391479544d2329fc8f571af8cb1a1348405a63","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"This implementation will allow live migration of rescued instances for"},{"line_number":32,"context_line":"libvirt driver and add driver capabilities flag to check if the driver"},{"line_number":33,"context_line":"supports live migration of rescued instances."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Use Cases"},{"line_number":36,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"3a1ff146_2d64c3e3","line":33,"in_reply_to":"3a1ff146_d29bdcc7","updated":"2017-03-16 07:44:42.000000000","message":"This section describes what problems this spec/blueprint will be addressing. This looks fine for me.","commit_id":"a55b9b239dd6b4e8a797a69a122751e79206c5ae"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"aa55e68f82b09525465083534268df64c4405939","unresolved":false,"context_lines":[{"line_number":60,"context_line":"driver. All other drivers will fail to live-migrate if you attempt to"},{"line_number":61,"context_line":"live-migrate an instance in the rescued state."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"However, driver\u0027s capability to live migrate a rescued instance is checked at"},{"line_number":64,"context_line":"pre-live migration phase which is an async operation. Any failures due to"},{"line_number":65,"context_line":"driver\u0027s capability to support live migration of rescued instance, will be"},{"line_number":66,"context_line":"updated in instance-actions with the error message, just as we do for any other"}],"source_content_type":"text/x-rst","patch_set":11,"id":"3a1ff146_72d94883","line":63,"range":{"start_line":63,"start_character":0,"end_line":63,"end_character":7},"updated":"2017-03-15 19:02:03.000000000","message":"Don\u0027t need this word.","commit_id":"a55b9b239dd6b4e8a797a69a122751e79206c5ae"},{"author":{"_account_id":19590,"name":"Sarafraj Singh","email":"Sarafraj.Singh@intel.com","username":"sarafrajsingh"},"change_message_id":"aa55e68f82b09525465083534268df64c4405939","unresolved":false,"context_lines":[{"line_number":60,"context_line":"driver. All other drivers will fail to live-migrate if you attempt to"},{"line_number":61,"context_line":"live-migrate an instance in the rescued state."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"However, driver\u0027s capability to live migrate a rescued instance is checked at"},{"line_number":64,"context_line":"pre-live migration phase which is an async operation. Any failures due to"},{"line_number":65,"context_line":"driver\u0027s capability to support live migration of rescued instance, will be"},{"line_number":66,"context_line":"updated in instance-actions with the error message, just as we do for any other"},{"line_number":67,"context_line":"pre-live migration error."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Presently in live migration, files that are created by libvirt driver while"},{"line_number":70,"context_line":"rescuing instance are not copied to the target compute node. The proposal is"}],"source_content_type":"text/x-rst","patch_set":11,"id":"3a1ff146_52de0c6e","line":67,"range":{"start_line":63,"start_character":0,"end_line":67,"end_character":25},"updated":"2017-03-15 19:02:03.000000000","message":"This seems like part of the above paragraph.","commit_id":"a55b9b239dd6b4e8a797a69a122751e79206c5ae"},{"author":{"_account_id":18339,"name":"Sivasathurappan Radhakrishnan","email":"siva.radhakrishnan@intel.com","username":"sivakrishnan"},"change_message_id":"59391479544d2329fc8f571af8cb1a1348405a63","unresolved":false,"context_lines":[{"line_number":60,"context_line":"driver. All other drivers will fail to live-migrate if you attempt to"},{"line_number":61,"context_line":"live-migrate an instance in the rescued state."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"However, driver\u0027s capability to live migrate a rescued instance is checked at"},{"line_number":64,"context_line":"pre-live migration phase which is an async operation. Any failures due to"},{"line_number":65,"context_line":"driver\u0027s capability to support live migration of rescued instance, will be"},{"line_number":66,"context_line":"updated in instance-actions with the error message, just as we do for any other"},{"line_number":67,"context_line":"pre-live migration error."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Presently in live migration, files that are created by libvirt driver while"},{"line_number":70,"context_line":"rescuing instance are not copied to the target compute node. The proposal is"}],"source_content_type":"text/x-rst","patch_set":11,"id":"3a1ff146_edf62bf8","line":67,"range":{"start_line":63,"start_character":0,"end_line":67,"end_character":25},"in_reply_to":"3a1ff146_52de0c6e","updated":"2017-03-16 07:44:42.000000000","message":"Yeah you are right. Thought of having separate paras for purpose of the flag and how it works, so that it looks bit cleaner for reviewers.","commit_id":"a55b9b239dd6b4e8a797a69a122751e79206c5ae"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f430e505e0bfe9457202e1a13e10fcd42b9e31df","unresolved":false,"context_lines":[{"line_number":69,"context_line":"to copy unrescue.xml from source to destination host, download kernel.rescue"},{"line_number":70,"context_line":"and ramdisk.rescue if they exist on image service else fallback to copy those"},{"line_number":71,"context_line":"files from source host. These operations are carried out during pre-live"},{"line_number":72,"context_line":"migration phase."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Alternatives"},{"line_number":75,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"1a1ced50_5ee275a0","line":72,"updated":"2017-03-20 16:18:21.000000000","message":"Nit: falling back to copying if missing in glance has been done in the POC patch, would be nice to call that out here, but its largely an implementation detail.","commit_id":"59d99086d79248c7fdea5ae478d425fbfe4db228"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"ce7ea71a852230c3b6ea7efbc4cc7dc3c1540f88","unresolved":false,"context_lines":[{"line_number":78,"context_line":"  their instance so it can be migrated."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"* Another option is to write the original instance state to the database during"},{"line_number":81,"context_line":"  the rescue operation so that it can be retrieved by the target compute node"},{"line_number":82,"context_line":"  during unrescue. We are considering this idea separately to this spec around"},{"line_number":83,"context_line":"  live-migration."},{"line_number":84,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"1a1ced50_434d426b","line":81,"updated":"2017-03-20 15:52:17.000000000","message":"I think you mean to say \"to the database during the *live migration* operation\"","commit_id":"59d99086d79248c7fdea5ae478d425fbfe4db228"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f430e505e0bfe9457202e1a13e10fcd42b9e31df","unresolved":false,"context_lines":[{"line_number":78,"context_line":"  their instance so it can be migrated."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"* Another option is to write the original instance state to the database during"},{"line_number":81,"context_line":"  the rescue operation so that it can be retrieved by the target compute node"},{"line_number":82,"context_line":"  during unrescue. We are considering this idea separately to this spec around"},{"line_number":83,"context_line":"  live-migration."},{"line_number":84,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"1a1ced50_1e6abd1a","line":81,"in_reply_to":"1a1ced50_434d426b","updated":"2017-03-20 16:18:21.000000000","message":"No, no, I think we should go for the general approach to unrescue, independent of live-migration.","commit_id":"59d99086d79248c7fdea5ae478d425fbfe4db228"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f430e505e0bfe9457202e1a13e10fcd42b9e31df","unresolved":false,"context_lines":[{"line_number":80,"context_line":"* Another option is to write the original instance state to the database during"},{"line_number":81,"context_line":"  the rescue operation so that it can be retrieved by the target compute node"},{"line_number":82,"context_line":"  during unrescue. We are considering this idea separately to this spec around"},{"line_number":83,"context_line":"  live-migration."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"Data model impact"},{"line_number":86,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"1a1ced50_1eff1d35","line":83,"updated":"2017-03-20 16:18:21.000000000","message":"Nit: nice to talk about the ssh host key requirements here, and how that restricts things, but thats a detail we could add later.","commit_id":"59d99086d79248c7fdea5ae478d425fbfe4db228"}]}
