)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"72273ed32f46f54900630faec48691ab3407e42b","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"APIImpact"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"blueprint force-live-migration"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I733f2f178e6a503918d80524a426c04254f66d35"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a1a9d01_c11aecc5","line":15,"updated":"2015-09-30 13:18:21.000000000","message":"I think this blueprint \u0026 spec should really be named \u0026 titled \"pause-live-migration\" / \"Pause live migration\". There are many ways to force live migration to finish, of which pausing is just one strategy. It is also somewhat misleading, because when you pause the VM it is no longer live migrating - so we should reflect that in naming","commit_id":"97064b6305c04353d413754cf95a1f2df95f7825"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"a06ce6863255ec45c180fe08ecdf8db23bf8fe65","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"APIImpact"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"blueprint force-live-migration"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I733f2f178e6a503918d80524a426c04254f66d35"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a1a9d01_5e0b0a24","line":15,"in_reply_to":"9a1a9d01_c11aecc5","updated":"2015-09-30 16:20:16.000000000","message":"Actually there is no real way to force live migration. There are features to accelerate the process and increase chance of possible success, but there is no way to force it to the end.","commit_id":"97064b6305c04353d413754cf95a1f2df95f7825"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d0d8b0468dc121c5ffd2313002c53c55d1911b13","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"New action will be different from existing pause operation. VM paused"},{"line_number":15,"context_line":"during live migration will be automatically reverted to active state"},{"line_number":16,"context_line":"on destination host. Libvirt preserves VM state before live migration"},{"line_number":17,"context_line":"and reverts vm state to preserved one after transition."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"APIImpact"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"da85f559_0f1ba681","line":16,"updated":"2015-11-16 03:29:33.000000000","message":"don\u0027t you mean *source* host?","commit_id":"c97e541d37632f0c0ccd007f85b75214f7f2d624"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"f23de5ef127cf285b83f26bb60499cf14dcf2939","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"New action will be different from existing pause operation. VM paused"},{"line_number":15,"context_line":"during live migration will be automatically reverted to active state"},{"line_number":16,"context_line":"on destination host. Libvirt preserves VM state before live migration"},{"line_number":17,"context_line":"and reverts vm state to preserved one after transition."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"APIImpact"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"ba8a016a_286eca2f","line":16,"in_reply_to":"ba8a016a_ed1d3767","updated":"2015-11-17 07:00:24.000000000","message":"I got shot down for using \u0027force\u0027 in action name. I\u0027d prefer such name because actually when we freeze VM CPU we force LM to finish (no dirty pages anymore!) but few folks told me that there is no way to force LM.","commit_id":"c97e541d37632f0c0ccd007f85b75214f7f2d624"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"93263f24bbc2dedec17db2f9d6b9e661c288a0b6","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"New action will be different from existing pause operation. VM paused"},{"line_number":15,"context_line":"during live migration will be automatically reverted to active state"},{"line_number":16,"context_line":"on destination host. Libvirt preserves VM state before live migration"},{"line_number":17,"context_line":"and reverts vm state to preserved one after transition."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"APIImpact"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"da85f559_19ba0f0b","line":16,"in_reply_to":"da85f559_0f1ba681","updated":"2015-11-16 08:11:29.000000000","message":"VM is being moved to destination host so libvirt will unpause VM on destination host.","commit_id":"c97e541d37632f0c0ccd007f85b75214f7f2d624"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"283d71e28dfcb5cba046ca5b234df91e3df90d83","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"New action will be different from existing pause operation. VM paused"},{"line_number":15,"context_line":"during live migration will be automatically reverted to active state"},{"line_number":16,"context_line":"on destination host. Libvirt preserves VM state before live migration"},{"line_number":17,"context_line":"and reverts vm state to preserved one after transition."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"APIImpact"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"ba8a016a_ed1d3767","line":16,"in_reply_to":"da85f559_19ba0f0b","updated":"2015-11-17 03:56:04.000000000","message":"Ah, sorry... yeah. it\u0027s a little unclear above. How about saying something like \"In the case of a pausing a VM during live migration, the paused VM is automatically activated when migration to the destination host completes. This is different from the normal pause VM action, which does not activate the VM automatically.\"\n\nBTW, this is why I don\u0027t think the action should be called \"live-migrate-pause-vm\" but rather \"live-migrate-force-complete\".","commit_id":"c97e541d37632f0c0ccd007f85b75214f7f2d624"}],"specs/mitaka/approved/force-live-migration.rst":[{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"bd6ba8c85682375060c87b2889b248ce36248291","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Another use case is imminent host failure where live migration duration might"},{"line_number":30,"context_line":"be crucial to keep VMs running regardless of VMs downtime during transition to"},{"line_number":31,"context_line":"source host."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Currently to force live migration to finish operator needs to pause VM through"},{"line_number":34,"context_line":"libvirt/hypervisor. This pause is transparent for Nova as this is the same that"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9a1a9d01_38952586","line":31,"updated":"2015-09-30 07:29:55.000000000","message":"Should be \u0027transition to destination host\u0027. I\u0027ll wait with a new patch for more reviews.","commit_id":"97064b6305c04353d413754cf95a1f2df95f7825"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"eef614615cae0e8fc4af8677a36ca5977e66b590","unresolved":false,"context_lines":[{"line_number":86,"context_line":"  No response body is needed"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"  Expected error http: `400 Bad Request`"},{"line_number":89,"context_line":"  - the migration has finished or has been aborted"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"  Expected error http response code: `404 Not Found`"},{"line_number":92,"context_line":"  - the migration does not exist"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9a1a9d01_de75f131","line":89,"updated":"2015-09-30 08:52:14.000000000","message":"shouldn\u0027t be a 404 here as well?\nwe ask an action on a resource  which not present anymore.","commit_id":"97064b6305c04353d413754cf95a1f2df95f7825"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"2f14742743084a09c394abe6dbda18452438f9ca","unresolved":false,"context_lines":[{"line_number":86,"context_line":"  No response body is needed"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"  Expected error http: `400 Bad Request`"},{"line_number":89,"context_line":"  - the migration has finished or has been aborted"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"  Expected error http response code: `404 Not Found`"},{"line_number":92,"context_line":"  - the migration does not exist"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9a1a9d01_294399b3","line":89,"in_reply_to":"9a1a9d01_de75f131","updated":"2015-09-30 09:17:04.000000000","message":"All depends on what GET call will return. I mean, if it is possible to query for finished live migration then `400 Bad Request` is a correct error code. However, if GET returns only on-going live migrations then I should change it to `404 Not Found`.","commit_id":"97064b6305c04353d413754cf95a1f2df95f7825"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"72273ed32f46f54900630faec48691ab3407e42b","unresolved":false,"context_lines":[{"line_number":94,"context_line":"  Expected error http response code: `405 Method not supported`"},{"line_number":95,"context_line":"  - it is not possible to pause VM during live migration, because hypervisor"},{"line_number":96,"context_line":"  does not support such operation."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Policy: This does not need a separate policy control. It can be called by"},{"line_number":99,"context_line":"anyone who could have started the live migration, so can inherit that action\u0027s"},{"line_number":100,"context_line":"policy."}],"source_content_type":"text/x-rst","patch_set":1,"id":"9a1a9d01_21e728ad","line":97,"updated":"2015-09-30 13:18:21.000000000","message":"As mentioned on the commit message, I\u0027m not a fan of the \"force-live-migration\" naming as it is rather misleading (it is no longer live migrating) and ill-determined (there are many ways to force live migration of which this is just one).\n\nWe already have an API for pausing an instance. The problem is that it is currnetly blocked during migration. If we just allowed the VM to be paused via existing API that ought to suffice and would give the caller a clear indication of what action is happening to the guest.","commit_id":"97064b6305c04353d413754cf95a1f2df95f7825"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"a06ce6863255ec45c180fe08ecdf8db23bf8fe65","unresolved":false,"context_lines":[{"line_number":94,"context_line":"  Expected error http response code: `405 Method not supported`"},{"line_number":95,"context_line":"  - it is not possible to pause VM during live migration, because hypervisor"},{"line_number":96,"context_line":"  does not support such operation."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Policy: This does not need a separate policy control. It can be called by"},{"line_number":99,"context_line":"anyone who could have started the live migration, so can inherit that action\u0027s"},{"line_number":100,"context_line":"policy."}],"source_content_type":"text/x-rst","patch_set":1,"id":"9a1a9d01_63467b7c","line":97,"in_reply_to":"9a1a9d01_21e728ad","updated":"2015-09-30 16:20:16.000000000","message":"Then what is the longest acceptable downtime for live migration to say that it is \"live\"? We also allow to live migrate PAUSED VMs, so should this action be forbidden because it is no longer live?\n\nAlso pause-live-migration is misleading. It actually does not pause live migration, but a VM.\n\nNormal pause operation is a different operation and there\u0027s no chance to guarantee that there will not be any race conditions (it might, e.g., pause VM after LM, why not?). Also this would hide two different workflows under single pause operation.","commit_id":"97064b6305c04353d413754cf95a1f2df95f7825"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"ed4446b09499ccf98a4854ab61b7a20733686150","unresolved":false,"context_lines":[{"line_number":94,"context_line":"  Expected error http response code: `405 Method not supported`"},{"line_number":95,"context_line":"  - it is not possible to pause VM during live migration, because hypervisor"},{"line_number":96,"context_line":"  does not support such operation."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Policy: This does not need a separate policy control. It can be called by"},{"line_number":99,"context_line":"anyone who could have started the live migration, so can inherit that action\u0027s"},{"line_number":100,"context_line":"policy."}],"source_content_type":"text/x-rst","patch_set":1,"id":"9a1a9d01_e62fd0a5","line":97,"in_reply_to":"9a1a9d01_63467b7c","updated":"2015-10-01 14:00:44.000000000","message":"+1 for re-using the existing pause API action.\n\nFWIW I also think that force is a bad name for this, it\u0027s unintuitive and is not in line with what force means for some other API calls","commit_id":"97064b6305c04353d413754cf95a1f2df95f7825"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"5c3b062d365c803300f32b34b7c416622908b23d","unresolved":false,"context_lines":[{"line_number":94,"context_line":"  Expected error http response code: `405 Method not supported`"},{"line_number":95,"context_line":"  - it is not possible to pause VM during live migration, because hypervisor"},{"line_number":96,"context_line":"  does not support such operation."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Policy: This does not need a separate policy control. It can be called by"},{"line_number":99,"context_line":"anyone who could have started the live migration, so can inherit that action\u0027s"},{"line_number":100,"context_line":"policy."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a2fa921_6f359c44","line":97,"in_reply_to":"9a1a9d01_e62fd0a5","updated":"2015-10-06 15:53:04.000000000","message":"Name changed.\n\nHowever, I don\u0027t like this idea of two different workflows under single operation. Two workflows under single operation mean that I would need to read documentation to understand how pause works in nova which is super bad thing IMO.","commit_id":"97064b6305c04353d413754cf95a1f2df95f7825"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"90ae777e5140730c54c4d76583912c3cc08e4663","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"When using live migrations, an operator might want to force on-going live"},{"line_number":15,"context_line":"migration even at the cost of pausing the guest temporarily. This spec proposes"},{"line_number":16,"context_line":"a new nova API for forcing on-going live migration to finish."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Problem description"},{"line_number":19,"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":"9a1a9d01_e790c997","line":16,"updated":"2015-10-05 11:02:14.000000000","message":"The last sentence is not completely correct, as we can\u0027t guarantee that the live migration finish and, if I correctly understood the specs, we do not force anything but we allow a new call which will pause and instance which could speed up the termination of the migration.","commit_id":"16e7f696e53a3d2add935f73f3a37c933601d6a0"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"9c27254c49ed11be03032bab16837f658d97731a","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"When using live migrations, an operator might want to force on-going live"},{"line_number":15,"context_line":"migration even at the cost of pausing the guest temporarily. This spec proposes"},{"line_number":16,"context_line":"a new nova API for forcing on-going live migration to finish."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Problem description"},{"line_number":19,"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":"7a2fa921_2f6ec42f","line":16,"in_reply_to":"9a1a9d01_e790c997","updated":"2015-10-06 15:52:47.000000000","message":"Done","commit_id":"16e7f696e53a3d2add935f73f3a37c933601d6a0"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"90ae777e5140730c54c4d76583912c3cc08e4663","unresolved":false,"context_lines":[{"line_number":38,"context_line":"----------"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"As an operator of an OpenStack cloud, I would like the ability to force"},{"line_number":41,"context_line":"successful live migration."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Project Priority"},{"line_number":44,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a1a9d01_1d73ca81","line":41,"updated":"2015-10-05 11:02:14.000000000","message":"As I said I\u0027d prefer to rephrase this sentence.\nI wish there was a command to force a successful live migration, but we know that it is a pain :(","commit_id":"16e7f696e53a3d2add935f73f3a37c933601d6a0"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"9c27254c49ed11be03032bab16837f658d97731a","unresolved":false,"context_lines":[{"line_number":38,"context_line":"----------"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"As an operator of an OpenStack cloud, I would like the ability to force"},{"line_number":41,"context_line":"successful live migration."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Project Priority"},{"line_number":44,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_0f1e68ba","line":41,"in_reply_to":"9a1a9d01_1d73ca81","updated":"2015-10-06 15:52:47.000000000","message":"Done","commit_id":"16e7f696e53a3d2add935f73f3a37c933601d6a0"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"90ae777e5140730c54c4d76583912c3cc08e4663","unresolved":false,"context_lines":[{"line_number":48,"context_line":"Proposed change"},{"line_number":49,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"A new API method for pausing VM during live migration."},{"line_number":52,"context_line":"The Migration object and MigrationList object will be used to establish which"},{"line_number":53,"context_line":"migrations exist, with additional optional data provided by the compute driver."},{"line_number":54,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a1a9d01_dd76b23d","line":51,"updated":"2015-10-05 11:02:14.000000000","message":"I think that the idea of having a new API makes sense to me as the new api will behave differently from the nova PAUSE one. The latter will keep the instance in PAUSE state until the user decide to UNPAUSE it, the new one is just used for giving more chance to live migration to terminate and once the migration is done the instance is put back to the original state it was before the migration started.","commit_id":"16e7f696e53a3d2add935f73f3a37c933601d6a0"}],"specs/mitaka/approved/pause-vm-during-live-migration.rst":[{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"cff8b8ec13ee70276d545672b931daa7f2319458","unresolved":false,"context_lines":[{"line_number":58,"context_line":"------------"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Alternative is not doing this and let operator pause VM manually through"},{"line_number":61,"context_line":"hypervisor."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"This also will be suitable for Tasks API."},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a2fa921_a513ac0c","line":61,"updated":"2015-10-07 12:13:54.000000000","message":"In general our goal is to make live migration as transparent as possible to tenant users. From that POV, we\u0027d like to allow many existing APIs to work while migration is taking place. This would suggest using the normal pause API.\n\nI have just realized one issue with doing this. When doing live migration, libvirt preserves the running state that was in effect when migration first started. ie, if the guest was initially running, then migration starts, then it is paused, then when migration completes libvirt will set the guest to running once again. ie the pause state is only temporary.\n\nThis would violate the expectations of the current OpenStack pause API, so would be a reason to justify having a separate API as described in this spec.\n\nCould you expand the Alternatives text to mention what I describe here.","commit_id":"46a05fc17bd88c27ce2c10158e609af6aab8f1e1"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"84c59d5b5c8622c7470f8c33f3c8f64070e36e71","unresolved":false,"context_lines":[{"line_number":58,"context_line":"------------"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Alternative is not doing this and let operator pause VM manually through"},{"line_number":61,"context_line":"hypervisor."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"This also will be suitable for Tasks API."},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a2fa921_b822a750","line":61,"in_reply_to":"7a2fa921_a513ac0c","updated":"2015-10-08 19:03:21.000000000","message":"Done","commit_id":"46a05fc17bd88c27ce2c10158e609af6aab8f1e1"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"f38cf9ea7ce76cf6510d2f5817f200caf5a2f927","unresolved":false,"context_lines":[{"line_number":58,"context_line":"------------"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Alternative is not doing this and let operator pause VM manually through"},{"line_number":61,"context_line":"hypervisor."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"This also will be suitable for Tasks API."},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a2fa921_885b2787","line":61,"in_reply_to":"7a2fa921_a513ac0c","updated":"2015-10-07 12:45:09.000000000","message":"I will extend proposed change also. Would be nice to describe whole operation here as it might be confusing.","commit_id":"46a05fc17bd88c27ce2c10158e609af6aab8f1e1"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"a02fad45791b11ca1c5a3fff7f84538e3be7cb55","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Policy: This does not need a separate policy control. It can be called by"},{"line_number":99,"context_line":"anyone who could have started the live migration, so can inherit that action\u0027s"},{"line_number":100,"context_line":"policy."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Security impact"},{"line_number":103,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a2fa921_f4317bed","line":100,"updated":"2015-10-06 17:48:18.000000000","message":"it would be useful to allow a normal user to use this API to pause any instance belonging to a tenant they are a member of.  This would mean that normal users could hasten the completion of the migration of their instance.","commit_id":"46a05fc17bd88c27ce2c10158e609af6aab8f1e1"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"ee287f2a21d1c3273b5c312f7b0be215c01624d9","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Policy: This does not need a separate policy control. It can be called by"},{"line_number":99,"context_line":"anyone who could have started the live migration, so can inherit that action\u0027s"},{"line_number":100,"context_line":"policy."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Security impact"},{"line_number":103,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a2fa921_072d7da7","line":100,"in_reply_to":"7a2fa921_f4317bed","updated":"2015-10-08 17:15:36.000000000","message":"I\u0027m not sure about that. Live migration should be as transparent to end user as possible. It means to me that normal user shouldn\u0027t be aware that his VM is moving to another host.\n\nI\u0027ll wait for more opinions on that - I\u0027ll raise a question in another patch set to be sure that we have more answers.","commit_id":"46a05fc17bd88c27ce2c10158e609af6aab8f1e1"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"547fc53699377f2a69150c585ff128938d04db87","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"As an operator of an OpenStack cloud, I would like the ability to pause VM"},{"line_number":41,"context_line":"during live migration to prevent VM from dirtying memory."},{"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"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a26ad4f_67df9e69","line":42,"updated":"2015-11-02 14:05:16.000000000","message":"Project priority section is missing.\nProject priorities are decided, this should be: Live Migration","commit_id":"274229ac4e758ee947cbfd5f6a9e0fa1b04ff179"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"8b5af103ac0a1e40f758d8d9ac2923c0252952a1","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"As an operator of an OpenStack cloud, I would like the ability to pause VM"},{"line_number":41,"context_line":"during live migration to prevent VM from dirtying memory."},{"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"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a26ad4f_e7ef2e85","line":42,"in_reply_to":"1a26ad4f_67df9e69","updated":"2015-11-02 14:18:05.000000000","message":"My mistake - that section is no longer used. Please ignore above comment.","commit_id":"274229ac4e758ee947cbfd5f6a9e0fa1b04ff179"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"1318fd7f1e34edc63262fb8feb34be9442102421","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Policy: This does not need a separate policy control. It can be called by"},{"line_number":110,"context_line":"anyone who could have started the live migration, so can inherit that action\u0027s"},{"line_number":111,"context_line":"policy."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"Security impact"},{"line_number":114,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a2fa921_58327360","line":111,"updated":"2015-10-08 19:11:41.000000000","message":"Should normal user be able to pause his VM during live migration through the new API call (regardless of policy control)?\n\nI\u0027m not sure about it, because LM should be as transparent as possible for normal users, however, I would like to see some more thoughts about this.","commit_id":"274229ac4e758ee947cbfd5f6a9e0fa1b04ff179"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"976a2f93f6129392de57d66e3e95d7a46739aa08","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Policy: This does not need a separate policy control. It can be called by"},{"line_number":110,"context_line":"anyone who could have started the live migration, so can inherit that action\u0027s"},{"line_number":111,"context_line":"policy."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"Security impact"},{"line_number":114,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a2fa921_0871f343","line":111,"in_reply_to":"7a2fa921_58327360","updated":"2015-10-09 07:51:49.000000000","message":"\u003e  \nI too would like live migration to be transparent to the user, i.e.\nthey could continue to use and manage their instance oblivious\nto the migration operation.\n\nHowever this is not the case, for one thing we update the task\nstate to \u0027MIGRATING\u0027 so they are aware that a migration is in\nprogress.\n\nMore significantly they are unable to perform most management\noperations on their instance during the migration.  There is work\nproposed (https://review.openstack.org/#/c/226199/) to address\nthis but as mentioned by reviewer there this may take a lot of\neffort to achieve and there are some operations that it is probably\nimpossible to perform during a live migration without aborting the\nmigration process.\n\nWith this in mind, in  https://review.openstack.org/#/c/228828/ I\nproposed providing normal users some insight into the progress of\nthe migration of their instance and based on policy setting the\noption to cancel it. \n\nProviding access to up to date information about the progress of\ntheir instance\u0027s migration is reasonable given the restrictions we\ncurrently place on their management of the instance and the\nlow likelihood that we will be able to remove all these restrictions.\n\nProviding the facility to cancel the ongoing migration of their\ninstance is more controversial but my thinking is that if a user\nhas an urgent need to perform and operation that would\ndisrupt the migration (like boot, stop or detach/attach a volume)\nthen they would need to request that the cloud administrator\ncancel the migration so that they can perform the desired\noperation.  Making a support request introduces delays for\nthe user and increases costs for the cloud operator.  Thus my\nproposal that we extend the facility to cancel a migration\nrelating to their own instance to those users the cloud operator\ntrusts to use it responsibly.\n\nBased on this premise, it seems reasonable to offer users the\nopportunity to use the facility being proposed in this spec to\npause their instance until the migration is complete to allow\nthe migration to progress more swiftly. Indeed the cloud\noperator would surely prefer this to them cancelling the\nmigration so it has to be restarted from the beginning! On\nthat bases we might even want to make this pause operation\navailable to all users since it does not impede the progress of\nthe instance migration (quite the opposite).","commit_id":"274229ac4e758ee947cbfd5f6a9e0fa1b04ff179"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7811b7af2b637e3d12ed85bb273d0e4457a8ec6a","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"  {"},{"line_number":94,"context_line":"    \"pause-vm\": bool"},{"line_number":95,"context_line":"  }"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"  Normal http response code: `204 No Content`"},{"line_number":98,"context_line":"  No response body is needed"}],"source_content_type":"text/x-rst","patch_set":8,"id":"da85f559_9453d8e1","line":95,"updated":"2015-11-11 16:46:36.000000000","message":"Or we could just send a regular server action called \"live-migrate-pause-vm\"?\n\nThat feels better to me somehow.\n\nYou get a 409 conflict if you do it on something that is not live-migrating, not in the correct stage of live-migration.","commit_id":"0806d04d24640fa4b07630ef58c0f95426ac93a9"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"873ed05966d6657cca68467cb10ed3d06645cf80","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"  {"},{"line_number":94,"context_line":"    \"pause-vm\": bool"},{"line_number":95,"context_line":"  }"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"  Normal http response code: `204 No Content`"},{"line_number":98,"context_line":"  No response body is needed"}],"source_content_type":"text/x-rst","patch_set":8,"id":"da85f559_e280548d","line":95,"in_reply_to":"da85f559_9453d8e1","updated":"2015-11-11 22:31:39.000000000","message":"Agree with you there, haven\u0027t managed to change it yet.","commit_id":"0806d04d24640fa4b07630ef58c0f95426ac93a9"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7811b7af2b637e3d12ed85bb273d0e4457a8ec6a","unresolved":false,"context_lines":[{"line_number":120,"context_line":"Policy: The PUT can be used by admin users. Also users assigned a specific"},{"line_number":121,"context_line":"role will be able to cancel migrations relating to instances belonging to"},{"line_number":122,"context_line":"tenants they are members of. Users not assigned the required role will get"},{"line_number":123,"context_line":"an \u0027403\u0027 if they try to cancel the migration"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Security impact"},{"line_number":126,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"da85f559_b4713c46","line":123,"updated":"2015-11-11 16:46:36.000000000","message":"Does this changes the task_state? from live-migrating to live-migrating-vm-paused? hidden by an API microversion?\n\nI guess there will be an instance action for this operation, that is separate to the live-migrate one?","commit_id":"0806d04d24640fa4b07630ef58c0f95426ac93a9"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"ccb928d442fbc975e2273b6b0d8932ed9dafe323","unresolved":false,"context_lines":[{"line_number":120,"context_line":"Policy: The PUT can be used by admin users. Also users assigned a specific"},{"line_number":121,"context_line":"role will be able to cancel migrations relating to instances belonging to"},{"line_number":122,"context_line":"tenants they are members of. Users not assigned the required role will get"},{"line_number":123,"context_line":"an \u0027403\u0027 if they try to cancel the migration"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Security impact"},{"line_number":126,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"da85f559_90b97fce","line":123,"in_reply_to":"da85f559_b4713c46","updated":"2015-11-12 08:47:30.000000000","message":"I\u0027m not a fan of a new task state. I can\u0027t see a case where new task state - live_migrating_vm_paused - will be different than just \u0027live_migrating\u0027. Moreover, it adds complexity and it needs to be handled in every live migration related action, e.g., canceling LM.","commit_id":"0806d04d24640fa4b07630ef58c0f95426ac93a9"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"92347ce9e806cab62f76717089c1f534676ca53e","unresolved":false,"context_lines":[{"line_number":38,"context_line":"----------"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"As an operator of an OpenStack cloud, I would like the ability to pause VM"},{"line_number":41,"context_line":"during live migration to prevent VM from dirtying memory."},{"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":9,"id":"da85f559_b516ec49","line":41,"updated":"2015-11-12 11:02:00.000000000","message":"Nit: we should include that the aim is to force the live-migrate to complete, by choosing to pause the VM so it no longer keeps dirtying the memory that is being coped.","commit_id":"9d10481fc4e488295d1327c7512b5ab7f8424e64"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"50d6c78606eae1e49c7758597b37e01d2816ccc3","unresolved":false,"context_lines":[{"line_number":38,"context_line":"----------"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"As an operator of an OpenStack cloud, I would like the ability to pause VM"},{"line_number":41,"context_line":"during live migration to prevent VM from dirtying memory."},{"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":9,"id":"da85f559_d824050e","line":41,"in_reply_to":"da85f559_b516ec49","updated":"2015-11-12 12:41:13.000000000","message":"Done","commit_id":"9d10481fc4e488295d1327c7512b5ab7f8424e64"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"92347ce9e806cab62f76717089c1f534676ca53e","unresolved":false,"context_lines":[{"line_number":98,"context_line":"  No response body is needed"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"  Expected error http: `400 Bad Request`"},{"line_number":101,"context_line":"  - the migration has finished or has been aborted"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"  Expected error http response code: `403 Forbidden`"},{"line_number":104,"context_line":"  - the migration exists but the user is not authorized to cancel it"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da85f559_b5fb4d46","line":101,"updated":"2015-11-12 11:02:00.000000000","message":"What is that different to the 409?","commit_id":"9d10481fc4e488295d1327c7512b5ab7f8424e64"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"50d6c78606eae1e49c7758597b37e01d2816ccc3","unresolved":false,"context_lines":[{"line_number":98,"context_line":"  No response body is needed"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"  Expected error http: `400 Bad Request`"},{"line_number":101,"context_line":"  - the migration has finished or has been aborted"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"  Expected error http response code: `403 Forbidden`"},{"line_number":104,"context_line":"  - the migration exists but the user is not authorized to cancel it"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da85f559_b857c156","line":101,"in_reply_to":"da85f559_b5fb4d46","updated":"2015-11-12 12:41:13.000000000","message":"No difference right now. My preference is to keep 409 rather than 400.","commit_id":"9d10481fc4e488295d1327c7512b5ab7f8424e64"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"92347ce9e806cab62f76717089c1f534676ca53e","unresolved":false,"context_lines":[{"line_number":104,"context_line":"  - the migration exists but the user is not authorized to cancel it"},{"line_number":105,"context_line":"  - this would only be returned in the case where a non admin user has"},{"line_number":106,"context_line":"  management authority over the instance but has not been granted the"},{"line_number":107,"context_line":"  authority to cancel live migrations of their instances."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"  Expected error http response code: `404 Not Found`"},{"line_number":110,"context_line":"  - the migration does not exist"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da85f559_951e496e","line":107,"updated":"2015-11-12 11:02:00.000000000","message":"lets just say policy violation causes the 403, and drop the extra policy bit below?","commit_id":"9d10481fc4e488295d1327c7512b5ab7f8424e64"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"50d6c78606eae1e49c7758597b37e01d2816ccc3","unresolved":false,"context_lines":[{"line_number":104,"context_line":"  - the migration exists but the user is not authorized to cancel it"},{"line_number":105,"context_line":"  - this would only be returned in the case where a non admin user has"},{"line_number":106,"context_line":"  management authority over the instance but has not been granted the"},{"line_number":107,"context_line":"  authority to cancel live migrations of their instances."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"  Expected error http response code: `404 Not Found`"},{"line_number":110,"context_line":"  - the migration does not exist"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da85f559_9e6665b9","line":107,"in_reply_to":"da85f559_951e496e","updated":"2015-11-12 12:41:13.000000000","message":"Done","commit_id":"9d10481fc4e488295d1327c7512b5ab7f8424e64"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"92347ce9e806cab62f76717089c1f534676ca53e","unresolved":false,"context_lines":[{"line_number":107,"context_line":"  authority to cancel live migrations of their instances."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"  Expected error http response code: `404 Not Found`"},{"line_number":110,"context_line":"  - the migration does not exist"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"  Expected error http response code: `405 Method not supported`"},{"line_number":113,"context_line":"  - it is not possible to even attempt to force the live migration. Likely to"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da85f559_35d0bdc8","line":110,"updated":"2015-11-12 11:02:00.000000000","message":"I think you mean the instance does not exist?","commit_id":"9d10481fc4e488295d1327c7512b5ab7f8424e64"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"50d6c78606eae1e49c7758597b37e01d2816ccc3","unresolved":false,"context_lines":[{"line_number":107,"context_line":"  authority to cancel live migrations of their instances."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"  Expected error http response code: `404 Not Found`"},{"line_number":110,"context_line":"  - the migration does not exist"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"  Expected error http response code: `405 Method not supported`"},{"line_number":113,"context_line":"  - it is not possible to even attempt to force the live migration. Likely to"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da85f559_e911f952","line":110,"in_reply_to":"da85f559_35d0bdc8","updated":"2015-11-12 12:41:13.000000000","message":"Exactly, missed that one.","commit_id":"9d10481fc4e488295d1327c7512b5ab7f8424e64"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"92347ce9e806cab62f76717089c1f534676ca53e","unresolved":false,"context_lines":[{"line_number":112,"context_line":"  Expected error http response code: `405 Method not supported`"},{"line_number":113,"context_line":"  - it is not possible to even attempt to force the live migration. Likely to"},{"line_number":114,"context_line":"  be because the hypervisor does not support pausing of a VM during live"},{"line_number":115,"context_line":"  migration."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"  Expected error http response code: `409 Conflict`"},{"line_number":118,"context_line":"  - the instance state is invalid for pausing vm"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da85f559_d571310d","line":115,"updated":"2015-11-12 11:02:00.000000000","message":"We do not want this post to call down to the Compute node and return when it is a success, it should by an async call.\n\nI would drop this case for now, I think?","commit_id":"9d10481fc4e488295d1327c7512b5ab7f8424e64"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"50d6c78606eae1e49c7758597b37e01d2816ccc3","unresolved":false,"context_lines":[{"line_number":112,"context_line":"  Expected error http response code: `405 Method not supported`"},{"line_number":113,"context_line":"  - it is not possible to even attempt to force the live migration. Likely to"},{"line_number":114,"context_line":"  be because the hypervisor does not support pausing of a VM during live"},{"line_number":115,"context_line":"  migration."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"  Expected error http response code: `409 Conflict`"},{"line_number":118,"context_line":"  - the instance state is invalid for pausing vm"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da85f559_38f1916b","line":115,"in_reply_to":"da85f559_d571310d","updated":"2015-11-12 12:41:13.000000000","message":"Sounds reasonable to make it async and drop that error. Done.","commit_id":"9d10481fc4e488295d1327c7512b5ab7f8424e64"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"92347ce9e806cab62f76717089c1f534676ca53e","unresolved":false,"context_lines":[{"line_number":115,"context_line":"  migration."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"  Expected error http response code: `409 Conflict`"},{"line_number":118,"context_line":"  - the instance state is invalid for pausing vm"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Policy: The PUT can be used by admin users. Also users assigned a specific"},{"line_number":121,"context_line":"role will be able to cancel migrations relating to instances belonging to"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da85f559_f58c75db","line":118,"updated":"2015-11-12 11:02:00.000000000","message":"lets give an example, for example if the server is not currently being live-migrated?","commit_id":"9d10481fc4e488295d1327c7512b5ab7f8424e64"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"50d6c78606eae1e49c7758597b37e01d2816ccc3","unresolved":false,"context_lines":[{"line_number":115,"context_line":"  migration."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"  Expected error http response code: `409 Conflict`"},{"line_number":118,"context_line":"  - the instance state is invalid for pausing vm"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Policy: The PUT can be used by admin users. Also users assigned a specific"},{"line_number":121,"context_line":"role will be able to cancel migrations relating to instances belonging to"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da85f559_d8008536","line":118,"in_reply_to":"da85f559_f58c75db","updated":"2015-11-12 12:41:13.000000000","message":"Done","commit_id":"9d10481fc4e488295d1327c7512b5ab7f8424e64"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"92347ce9e806cab62f76717089c1f534676ca53e","unresolved":false,"context_lines":[{"line_number":117,"context_line":"  Expected error http response code: `409 Conflict`"},{"line_number":118,"context_line":"  - the instance state is invalid for pausing vm"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Policy: The PUT can be used by admin users. Also users assigned a specific"},{"line_number":121,"context_line":"role will be able to cancel migrations relating to instances belonging to"},{"line_number":122,"context_line":"tenants they are members of. Users not assigned the required role will get"},{"line_number":123,"context_line":"an \u0027403\u0027 if they try to cancel the migration"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da85f559_f54235ad","line":120,"updated":"2015-11-12 11:02:00.000000000","message":"Its a post. now.","commit_id":"9d10481fc4e488295d1327c7512b5ab7f8424e64"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"50d6c78606eae1e49c7758597b37e01d2816ccc3","unresolved":false,"context_lines":[{"line_number":117,"context_line":"  Expected error http response code: `409 Conflict`"},{"line_number":118,"context_line":"  - the instance state is invalid for pausing vm"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Policy: The PUT can be used by admin users. Also users assigned a specific"},{"line_number":121,"context_line":"role will be able to cancel migrations relating to instances belonging to"},{"line_number":122,"context_line":"tenants they are members of. Users not assigned the required role will get"},{"line_number":123,"context_line":"an \u0027403\u0027 if they try to cancel the migration"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da85f559_c93d15c5","line":120,"in_reply_to":"da85f559_f54235ad","updated":"2015-11-12 12:41:13.000000000","message":"Dropped this policy.","commit_id":"9d10481fc4e488295d1327c7512b5ab7f8424e64"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"92347ce9e806cab62f76717089c1f534676ca53e","unresolved":false,"context_lines":[{"line_number":121,"context_line":"role will be able to cancel migrations relating to instances belonging to"},{"line_number":122,"context_line":"tenants they are members of. Users not assigned the required role will get"},{"line_number":123,"context_line":"an \u0027403\u0027 if they try to cancel the migration"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Security impact"},{"line_number":126,"context_line":"---------------"},{"line_number":127,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"da85f559_7566452b","line":124,"updated":"2015-11-12 11:02:00.000000000","message":"I think we need to make sure we add an server action is registered for the cancel request, so a user can check if this action was successful or not, because we want this to be an async API.","commit_id":"9d10481fc4e488295d1327c7512b5ab7f8424e64"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"50d6c78606eae1e49c7758597b37e01d2816ccc3","unresolved":false,"context_lines":[{"line_number":121,"context_line":"role will be able to cancel migrations relating to instances belonging to"},{"line_number":122,"context_line":"tenants they are members of. Users not assigned the required role will get"},{"line_number":123,"context_line":"an \u0027403\u0027 if they try to cancel the migration"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Security impact"},{"line_number":126,"context_line":"---------------"},{"line_number":127,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"da85f559_a91451e8","line":124,"in_reply_to":"da85f559_7566452b","updated":"2015-11-12 12:41:13.000000000","message":"Added this to proposed changes. Should I also add this as an impact to REST API?","commit_id":"9d10481fc4e488295d1327c7512b5ab7f8424e64"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"92347ce9e806cab62f76717089c1f534676ca53e","unresolved":false,"context_lines":[{"line_number":130,"context_line":"Notifications impact"},{"line_number":131,"context_line":"--------------------"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"None"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Other end user impact"},{"line_number":136,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da85f559_b53d8cc5","line":133,"updated":"2015-11-12 11:02:00.000000000","message":"I assume there would be notifications relating to the new operation, to match the existing live-migrate notifications?","commit_id":"9d10481fc4e488295d1327c7512b5ab7f8424e64"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"50d6c78606eae1e49c7758597b37e01d2816ccc3","unresolved":false,"context_lines":[{"line_number":130,"context_line":"Notifications impact"},{"line_number":131,"context_line":"--------------------"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"None"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Other end user impact"},{"line_number":136,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da85f559_e95c994c","line":133,"in_reply_to":"da85f559_b53d8cc5","updated":"2015-11-12 12:41:13.000000000","message":"Added information about notifications","commit_id":"9d10481fc4e488295d1327c7512b5ab7f8424e64"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"92347ce9e806cab62f76717089c1f534676ca53e","unresolved":false,"context_lines":[{"line_number":135,"context_line":"Other end user impact"},{"line_number":136,"context_line":"---------------------"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"None"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Performance Impact"},{"line_number":141,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da85f559_552c6098","line":138,"updated":"2015-11-12 11:02:00.000000000","message":"This is where you talk about the python-novaclient change, only needs a sentence adding here.","commit_id":"9d10481fc4e488295d1327c7512b5ab7f8424e64"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"50d6c78606eae1e49c7758597b37e01d2816ccc3","unresolved":false,"context_lines":[{"line_number":135,"context_line":"Other end user impact"},{"line_number":136,"context_line":"---------------------"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"None"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Performance Impact"},{"line_number":141,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da85f559_693749ff","line":138,"in_reply_to":"da85f559_552c6098","updated":"2015-11-12 12:41:13.000000000","message":"Done","commit_id":"9d10481fc4e488295d1327c7512b5ab7f8424e64"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"bd1940978fca1b2780c119b5f3c02145a2caf8e7","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"As an operator of an OpenStack cloud, I would like the ability to pause VM"},{"line_number":41,"context_line":"during live migration. This operation prevents VM from dirtying memory and"},{"line_number":42,"context_line":"therefore it forces live migration to complete."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Proposed change"},{"line_number":45,"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":11,"id":"da85f559_f26b1def","line":42,"updated":"2015-11-12 14:22:59.000000000","message":"nit: as I said I wish we could force the live migration to complete, we can just reduce the load on the vm giving more chances to complete","commit_id":"c5961691ff6d3589c9d9e58cbb0fbb8aebade714"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"cb5ad9a335d3ee435933edd40480c3f268d5167a","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"As an operator of an OpenStack cloud, I would like the ability to pause VM"},{"line_number":41,"context_line":"during live migration. This operation prevents VM from dirtying memory and"},{"line_number":42,"context_line":"therefore it forces live migration to complete."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Proposed change"},{"line_number":45,"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":11,"id":"da85f559_a861a206","line":42,"in_reply_to":"da85f559_f26b1def","updated":"2015-11-12 14:39:18.000000000","message":"Actually it does not reduce load, it halts CPU so there is no load at all. I can\u0027t see any reason why this would fail at this point. Do we really want to consider, e.g., networking problems as a possible failure? Going this way \u0027force-delete\u0027 also does not force anything.","commit_id":"c5961691ff6d3589c9d9e58cbb0fbb8aebade714"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"bd1940978fca1b2780c119b5f3c02145a2caf8e7","unresolved":false,"context_lines":[{"line_number":101,"context_line":"  No response body is needed"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"  Expected error http response code: `403 Forbidden`"},{"line_number":104,"context_line":"  - the migration exists but the user is not authorized to cancel it."},{"line_number":105,"context_line":"  For instance, non admin user has management authority over the instance, but"},{"line_number":106,"context_line":"  has not been granted the authority to pause their instances during live"},{"line_number":107,"context_line":"  migrations."}],"source_content_type":"text/x-rst","patch_set":11,"id":"da85f559_8d5cf019","line":104,"updated":"2015-11-12 14:22:59.000000000","message":"why \u0027cancel\u0027?","commit_id":"c5961691ff6d3589c9d9e58cbb0fbb8aebade714"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"a6d2120e1101a24af5c3f986a75d67fa3262c8bd","unresolved":false,"context_lines":[{"line_number":101,"context_line":"  No response body is needed"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"  Expected error http response code: `403 Forbidden`"},{"line_number":104,"context_line":"  - the migration exists but the user is not authorized to cancel it."},{"line_number":105,"context_line":"  For instance, non admin user has management authority over the instance, but"},{"line_number":106,"context_line":"  has not been granted the authority to pause their instances during live"},{"line_number":107,"context_line":"  migrations."}],"source_content_type":"text/x-rst","patch_set":11,"id":"da85f559_e8f1ea01","line":104,"in_reply_to":"da85f559_8d5cf019","updated":"2015-11-12 14:30:22.000000000","message":"Missed that one. Too many live migration stuff these days. Will change.","commit_id":"c5961691ff6d3589c9d9e58cbb0fbb8aebade714"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d0d8b0468dc121c5ffd2313002c53c55d1911b13","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"* Pause VM during live migration"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"  `POST /servers/{server_id}/{action}`"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Body::"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"da85f559_0a92b44b","line":92,"updated":"2015-11-16 03:29:33.000000000","message":"-1. IMHO, this is acting on the wrong resource entirely. The thing that is described in this spec is really only tangentially related to the virtual machine itself. Really, what this spec is doing is attempting to add a sort of \"throttling\" for the migration activity itself. The pause of the source guest is just an implementation detail and IMO, we should not add implementation details into the public API for /servers in this way.\n\nI would prefer to not have a new \"server action\" for this at all, and instead have an API microversion that would add an attribute to the existing live-migration server action [1] request payload that would essentially say \"OK, for this live migration, if the live migration has not completed by some timeout value, then pause the source guest to allow pages to be transferred to the target host and the target guest to become active.\n\nSo, basically, enhance the request from this:\n\n {\n    \"os-migrateLive\": {\n        \"host\": \"0443e9a1254044d8b99f35eace132080\",\n        \"block_migration\": false,\n        \"disk_over_commit\": false\n    }\n }\n\nto this:\n\n {\n    \"os-migrateLive\": {\n        \"host\": \"0443e9a1254044d8b99f35eace132080\",\n        \"block_migration\": false,\n        \"disk_over_commit\": false,\n        \"pause_source_instance_after_seconds\": 360\n    }\n }\n\n\n[1] http://developer.openstack.org/api-ref-compute-v2-ext.html#os-migrateLive","commit_id":"c97e541d37632f0c0ccd007f85b75214f7f2d624"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f4029237e2a8c38a31badb10836994ff0fba4c81","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"* Pause VM during live migration"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"  `POST /servers/{server_id}/{action}`"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Body::"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"ba8a016a_91cfd67e","line":92,"in_reply_to":"ba8a016a_2bbebdd4","updated":"2015-11-17 10:53:01.000000000","message":"Agreed there are many ways, but I do like \"force-complete\" expressing the correct intent.\n\nWe can have method: \"pause\" in the body if we end up with two options.\n\nAs an aside, should we not consider turning on auto-converge on by default? Is that something you can only do at the start of the live-migration, or can you apply it to an existing live-migration like the pause?\n\n@Jay, I am partially with you, but I would rather we wait till we have a proper task resource, on which you can perform additional actions, rather than hacking onto that current migration status stuff, which I hope dies and gets replaces by a more general task API that can deal with all that.","commit_id":"c97e541d37632f0c0ccd007f85b75214f7f2d624"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"736af24d389788968cf1c815e72737e506f03dd2","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"* Pause VM during live migration"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"  `POST /servers/{server_id}/{action}`"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Body::"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"ba8a016a_bc6e7194","line":92,"in_reply_to":"ba8a016a_2bbebdd4","updated":"2015-11-17 11:11:16.000000000","message":"What do you think of using something like \"force-complete\" and if a future alternative to pause (e.g. switch to aggressive algorithm X) is added this same API is used to invoke it using a different option? \n\nIf this will only ever use pause it should be called pause, if it could be something else it should have a different name.","commit_id":"c97e541d37632f0c0ccd007f85b75214f7f2d624"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"8fa9043e4b3c4e2d835f3a7921a3394b0d9b70bc","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"* Pause VM during live migration"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"  `POST /servers/{server_id}/{action}`"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Body::"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"ba8a016a_d3ad8932","line":92,"in_reply_to":"ba8a016a_6468b2bb","updated":"2015-11-16 18:32:40.000000000","message":"I think we have been back and forward on this and settled on having a new action on the instance.\n\nI entirely agree with Jay that the operation is about throttling. the fact is that it is the instance that is being throttled, by affecting its performance - absolutely in this case. It is not the same as a user pausing the instance, which is still not supported with this change.\n\nI think it is a useful operation. We could speculate that in the future the user actions pause and unpause become supported, in which case this is still a useful feature and would be used for different reasons. We could also imagine this live-migrate-pause-vm being changed to include an alternative implementation that does not absolutely pause the VM, which would also make sense.","commit_id":"c97e541d37632f0c0ccd007f85b75214f7f2d624"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"f23de5ef127cf285b83f26bb60499cf14dcf2939","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"* Pause VM during live migration"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"  `POST /servers/{server_id}/{action}`"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Body::"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"ba8a016a_685a9285","line":92,"in_reply_to":"ba8a016a_723b62ec","updated":"2015-11-17 07:00:24.000000000","message":"Thanks Jay. IMO both are correct, depends what you love more - live migration or instance! ;)\n\nAnd agree to the name, but I was unable to force \u0027force\u0027 in action name.","commit_id":"c97e541d37632f0c0ccd007f85b75214f7f2d624"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"74ecf80dfd1bb0061a6e158c7bff7a5739119225","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"* Pause VM during live migration"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"  `POST /servers/{server_id}/{action}`"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Body::"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"ba8a016a_2bbebdd4","line":92,"in_reply_to":"ba8a016a_723b62ec","updated":"2015-11-17 10:16:00.000000000","message":"The possible issue with naming it \u0027force-complete\u0027 is that even in KVM there are at least 3 different ways we can force live migration to complete, of which pausing the VM is just one option.  QEMU has an \"autoconverge\" flag which will throttle guest CPUs to force live migration to complete.  QEMU thatr\u0027s about to release has post-copy migration which will also force live migration to complete. Each approach  has its own pluses \u0026 minuses and varying effects on the guest OS workload. Pausing is the most drastic approach to completion and guarantees the shortest possible time to completion. The other approaches are kinder to guest workloads but take longer.","commit_id":"c97e541d37632f0c0ccd007f85b75214f7f2d624"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"f31a95afdb2729005c1d8407fffe8e73c8570937","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"* Pause VM during live migration"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"  `POST /servers/{server_id}/{action}`"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Body::"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"ba8a016a_31086a91","line":92,"in_reply_to":"ba8a016a_91cfd67e","updated":"2015-11-17 10:57:04.000000000","message":"+1 for auto converge to be turned on by default. Also we should remember to bump libvirt version soon and remove tunneling which is terrible for LM performance (and for NBD block live migration).","commit_id":"c97e541d37632f0c0ccd007f85b75214f7f2d624"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"33e2b56f5cc9123930a9941d85466809b1917cc7","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"* Pause VM during live migration"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"  `POST /servers/{server_id}/{action}`"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Body::"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"ba8a016a_723b62ec","line":92,"in_reply_to":"ba8a016a_d3ad8932","updated":"2015-11-17 03:51:32.000000000","message":"OK, thanks guys for the discussion, appreciated. I guess I don\u0027t agree that it is the instance that is being throttled. It\u0027s the migration that is being forced by pausing the source guest, but whatevs, that\u0027s probably just my pedantry getting in the way. :)\n\nPerhaps we can name the action \"live-migration-force-complete\" instead of \"live-migrate-pause-vm\"? My point on the name of the action here is that what if some (non-libvirt) hypervisor manager\u0027s migration functionality in the future happens to do something different than pausing the source VM in order to force the migration to complete? In that case, naming the action \"live-migration-force-complete\" (or even better \"migration-force-complete\") would be future-proof whereas naming this \"live-migrate-pause-vm\" would encode an implementation detail of how one currently needs to throttle a live migration that is handled specifically by libvirt.","commit_id":"c97e541d37632f0c0ccd007f85b75214f7f2d624"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"86b9ceeed8520a879cbe851e0f284808add7a948","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"* Pause VM during live migration"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"  `POST /servers/{server_id}/{action}`"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Body::"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"ba8a016a_6468b2bb","line":92,"in_reply_to":"da85f559_0a92b44b","updated":"2015-11-16 10:21:44.000000000","message":"I don\u0027t think that setting a pause timeout upfront is really an adequate solution to the general problem. I can see that it can be useful to a use case where you just want to fire-and-forget the migration and guarantee it completes, but I feel the need for pausing migration is more general. In particular the person who decides the migration needs to be paused may not be the person who actually pauses it. Second, it may not be desirable / reasonable to predict the amount of time we must wait before switching to a paused state upfront. The migration code now has various heuristics to help it succeed, that will be at play here, and the admin may wish to allow them a chance to take effect before finally deciding to pause, and since these heuristics are dynamically changing it makes it rather hard to predict time we should wait upfront. There may also be external factors involved which would suddenly hasten the need to pause a guest, or conversely require that we wait longer. For example, a need to urgently evacuate a source host may force us to suddenly need to switch to pause mode - we can\u0027t predict this upfront.\n\nAll this is to say we really need to have an explicit API action  to pause the guest that is separate from the API action that starts migration. A \u0027pause_after_seconds\u0027 parameter is really a usability enhancement that I think should be a phase 2 thing to consider, only once we have solved the general problem here.","commit_id":"c97e541d37632f0c0ccd007f85b75214f7f2d624"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"e94477cfe1c6210084ece94c78de0374d31de4b4","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"* Pause VM during live migration"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"  `POST /servers/{server_id}/{action}`"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Body::"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"da85f559_ab4a8981","line":92,"in_reply_to":"da85f559_0a92b44b","updated":"2015-11-16 07:29:58.000000000","message":"Jay,\n\nthanks for your comments. I get your point about this action, but this action that you proposed is completely different than the action that I proposed. Both are valid use cases usable in different situations.\n\nLet\u0027s start with LM monitoring. Currently it supports only one action which is performed when there is no progress in VM transition - cancel LM. However, operator might want that our monitoring tool will not cancel LM, but will pause VM instead. And such pause can be triggered in two different cases:\n\n1. When there is no progress in VM transition, so it will be done automatically without operator/user action, just like cancellation is done.\n2. Some kind of a hard stop for iterative copy phase - when LM takes longer than N seconds - pause VM and continue migration - which is your use case.\n\nHowever, LM time varies from couple of seconds for small, idling VMs to couple of hours for memory-intensive VMs and to even a day for big VMs with heavy workload. Because I don\u0027t even think of these small, idling VMs in datacenter I still need a way to finish LM now, not after another 20183 seconds in case of big VMs that are block live migrating all the stuff to destination host. And here is where this specification fits.\n\nI don\u0027t have any preference how API should work, but I\u0027d like to stick to this use case. Let\u0027s start with manual knob and then make automatic as an enhancement to LM monitor.","commit_id":"c97e541d37632f0c0ccd007f85b75214f7f2d624"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"7a43e65a09dc9e7b536a5fe9bee7afa6ecccd76f","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"* Pause VM during live migration"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"  `POST /servers/{server_id}/{action}`"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Body::"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"ba8a016a_d67834fb","line":92,"in_reply_to":"da85f559_ab4a8981","updated":"2015-11-16 09:56:01.000000000","message":"I am with Pawel, I think we need a way to give a chance to the LM to complete \"now\" and the change proposed here enable that feature.\nWith a new API for pausing a live migration operators can still implement the use valid use case proposed by Jay with a simple script which can call the pause action after a timeout.","commit_id":"c97e541d37632f0c0ccd007f85b75214f7f2d624"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"8a1fae8e1164869bc4ab63cf836c8ad5f1dbc201","unresolved":false,"context_lines":[{"line_number":79,"context_line":"Data model impact"},{"line_number":80,"context_line":"-----------------"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"None. The Migration objects used are already created and tracked by nova."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":13,"id":"ba8a016a_3856ed5c","line":82,"updated":"2015-11-17 20:49:30.000000000","message":"nit: remove the None.","commit_id":"c65a94118decf4fcf8a40b104d0fa4d7d6de3d70"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"5413035989bee62080f3c7a6bc80ca25b7ba27d6","unresolved":false,"context_lines":[{"line_number":79,"context_line":"Data model impact"},{"line_number":80,"context_line":"-----------------"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"None. The Migration objects used are already created and tracked by nova."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":13,"id":"ba8a016a_22e1c1fe","line":82,"in_reply_to":"ba8a016a_3856ed5c","updated":"2015-11-18 09:46:36.000000000","message":"This none is not redundant. It explicitly says that there will be no impact to data model.","commit_id":"c65a94118decf4fcf8a40b104d0fa4d7d6de3d70"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5d07d0a906de70c8bde3d24ed03c39cb1e35ede3","unresolved":false,"context_lines":[{"line_number":94,"context_line":"Body::"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"  {"},{"line_number":97,"context_line":"    \"live-migrate-pause-vm\": null"},{"line_number":98,"context_line":"  }"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"  Normal http response code: `204 No Content`"}],"source_content_type":"text/x-rst","patch_set":13,"id":"ba8a016a_914036a7","line":97,"updated":"2015-11-17 10:57:44.000000000","message":"So live-migrate-force-complete does seem really attractive.\n\nIn the alternatives section, we can talk about there being multiple force methods in the future, so the API could be extended to give hints to do things other than pause the VM during the live-migrate.","commit_id":"c65a94118decf4fcf8a40b104d0fa4d7d6de3d70"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"8637f17e6e225d211b73b193ebebbd9c534be548","unresolved":false,"context_lines":[{"line_number":94,"context_line":"Body::"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"  {"},{"line_number":97,"context_line":"    \"live-migrate-pause-vm\": null"},{"line_number":98,"context_line":"  }"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"  Normal http response code: `204 No Content`"}],"source_content_type":"text/x-rst","patch_set":13,"id":"ba8a016a_b1853aae","line":97,"in_reply_to":"ba8a016a_914036a7","updated":"2015-11-17 11:01:10.000000000","message":"hmm, given the error thing, maybe its better to have:\n\nlive-migrate-force-end","commit_id":"c65a94118decf4fcf8a40b104d0fa4d7d6de3d70"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"38d43a3e3501b0db070f355e8dce2fa7fab5cbad","unresolved":false,"context_lines":[{"line_number":94,"context_line":"Body::"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"  {"},{"line_number":97,"context_line":"    \"live-migrate-pause-vm\": null"},{"line_number":98,"context_line":"  }"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"  Normal http response code: `204 No Content`"}],"source_content_type":"text/x-rst","patch_set":13,"id":"ba8a016a_e292d99e","line":97,"in_reply_to":"ba8a016a_b1853aae","updated":"2015-11-18 09:43:14.000000000","message":"Done","commit_id":"c65a94118decf4fcf8a40b104d0fa4d7d6de3d70"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"55e4e9e5a88f2122b0a0a9e24be44d976bd68a64","unresolved":false,"context_lines":[{"line_number":97,"context_line":"    \"live-migrate-pause-vm\": null"},{"line_number":98,"context_line":"  }"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"  Normal http response code: `204 No Content`"},{"line_number":101,"context_line":"  No response body is needed"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"  Expected error http response code: `403 Forbidden`"}],"source_content_type":"text/x-rst","patch_set":13,"id":"ba8a016a_dd3bfecf","line":100,"updated":"2015-11-18 06:18:20.000000000","message":"I think we should return 202. This will tell user, this is async call. It is more useful than 204","commit_id":"c65a94118decf4fcf8a40b104d0fa4d7d6de3d70"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"38d43a3e3501b0db070f355e8dce2fa7fab5cbad","unresolved":false,"context_lines":[{"line_number":97,"context_line":"    \"live-migrate-pause-vm\": null"},{"line_number":98,"context_line":"  }"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"  Normal http response code: `204 No Content`"},{"line_number":101,"context_line":"  No response body is needed"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"  Expected error http response code: `403 Forbidden`"}],"source_content_type":"text/x-rst","patch_set":13,"id":"ba8a016a_42eac510","line":100,"in_reply_to":"ba8a016a_dd3bfecf","updated":"2015-11-18 09:43:14.000000000","message":"Done","commit_id":"c65a94118decf4fcf8a40b104d0fa4d7d6de3d70"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4a79663ec3de573aca26ccf684e249ab8976da7b","unresolved":false,"context_lines":[{"line_number":112,"context_line":"  Expected error http response code: `409 Conflict`"},{"line_number":113,"context_line":"  - the instance state is invalid for pausing vm, e.g., instance is"},{"line_number":114,"context_line":"  not currently being live migrated."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Security impact"},{"line_number":117,"context_line":"---------------"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"ba8a016a_714a72ae","line":115,"updated":"2015-11-17 10:59:35.000000000","message":"We should describe that there could still be errors (imagine loss of network connection). At least that moves from an infinite loop to a failure after calling the force-complete API.","commit_id":"c65a94118decf4fcf8a40b104d0fa4d7d6de3d70"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"133b65c84234232d6995a50ae3383f0fd0758e33","unresolved":false,"context_lines":[{"line_number":112,"context_line":"  Expected error http response code: `409 Conflict`"},{"line_number":113,"context_line":"  - the instance state is invalid for pausing vm, e.g., instance is"},{"line_number":114,"context_line":"  not currently being live migrated."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Security impact"},{"line_number":117,"context_line":"---------------"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"ba8a016a_b05662d0","line":115,"in_reply_to":"ba8a016a_34f84649","updated":"2015-11-18 06:13:45.000000000","message":"yea, there needn\u0027t any more for migration itself. There need error report for pause vm, one of failure cases is hypervisor didn\u0027t implement it which reported from compute node side. Better write this down.","commit_id":"c65a94118decf4fcf8a40b104d0fa4d7d6de3d70"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"c289831d32f0764d9c6550cd3c01f66701ee680f","unresolved":false,"context_lines":[{"line_number":112,"context_line":"  Expected error http response code: `409 Conflict`"},{"line_number":113,"context_line":"  - the instance state is invalid for pausing vm, e.g., instance is"},{"line_number":114,"context_line":"  not currently being live migrated."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Security impact"},{"line_number":117,"context_line":"---------------"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"ba8a016a_34f84649","line":115,"in_reply_to":"ba8a016a_69927ba1","updated":"2015-11-17 16:25:16.000000000","message":"Sorry John, I think I left a confusing comment above. I meant nothing additional needs to be defined here to report the failure of the migration itself because it is already being reported by existing code. The failure to initiate the pause would need to be reported as you say.\n\nIf the live migration itself does not have good error reporting (or if it needs something like an instance action added) that can be done outside the scope of this spec. It can also be done independently of this spec unless this pause feature explicitly needs it.","commit_id":"c65a94118decf4fcf8a40b104d0fa4d7d6de3d70"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"e5d7230b3a0392eda56b898678faa045183b6ef2","unresolved":false,"context_lines":[{"line_number":112,"context_line":"  Expected error http response code: `409 Conflict`"},{"line_number":113,"context_line":"  - the instance state is invalid for pausing vm, e.g., instance is"},{"line_number":114,"context_line":"  not currently being live migrated."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Security impact"},{"line_number":117,"context_line":"---------------"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"ba8a016a_9796e64a","line":115,"in_reply_to":"ba8a016a_714a72ae","updated":"2015-11-17 11:28:39.000000000","message":"I can image two cases here:\n\n1) fail to do pause - which should be reported, but may not cause the migration to fail (see question below). Note also async call so this is not an error return on the API.\n\n2) the migration fails - this is covered by existing error reporting for the migration (which might be improved but is out of scope for this spec)\n\nQuestion: in the case of 1, we could say the attempt to make the migration complete has failed, so the migration should be killed. We could equally say the attempt to pause has failed, but the migration can continue - the user/operator may try to pause it again or explicitly cancel it (we are adding cancel). What is preferred?","commit_id":"c65a94118decf4fcf8a40b104d0fa4d7d6de3d70"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"11e76d37b15c89131fd0d21eaf2a53cdc78955dc","unresolved":false,"context_lines":[{"line_number":112,"context_line":"  Expected error http response code: `409 Conflict`"},{"line_number":113,"context_line":"  - the instance state is invalid for pausing vm, e.g., instance is"},{"line_number":114,"context_line":"  not currently being live migrated."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Security impact"},{"line_number":117,"context_line":"---------------"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"ba8a016a_bede5e6b","line":115,"in_reply_to":"ba8a016a_970d8640","updated":"2015-11-17 13:48:30.000000000","message":"that is my preference too - so need to define how the error is reported.","commit_id":"c65a94118decf4fcf8a40b104d0fa4d7d6de3d70"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"2b218cfade573b5ab7e10656c7a6045c877859dc","unresolved":false,"context_lines":[{"line_number":112,"context_line":"  Expected error http response code: `409 Conflict`"},{"line_number":113,"context_line":"  - the instance state is invalid for pausing vm, e.g., instance is"},{"line_number":114,"context_line":"  not currently being live migrated."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Security impact"},{"line_number":117,"context_line":"---------------"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"ba8a016a_970d8640","line":115,"in_reply_to":"ba8a016a_9796e64a","updated":"2015-11-17 11:36:13.000000000","message":"I don\u0027t like this assumption that we should kill migration when attempt to make the migration complete has failed. It can continue to migrate active instance, it should be operator decision to cancel it if needed.","commit_id":"c65a94118decf4fcf8a40b104d0fa4d7d6de3d70"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"38d43a3e3501b0db070f355e8dce2fa7fab5cbad","unresolved":false,"context_lines":[{"line_number":112,"context_line":"  Expected error http response code: `409 Conflict`"},{"line_number":113,"context_line":"  - the instance state is invalid for pausing vm, e.g., instance is"},{"line_number":114,"context_line":"  not currently being live migrated."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Security impact"},{"line_number":117,"context_line":"---------------"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"ba8a016a_62ed8924","line":115,"in_reply_to":"ba8a016a_b05662d0","updated":"2015-11-18 09:43:14.000000000","message":"Done","commit_id":"c65a94118decf4fcf8a40b104d0fa4d7d6de3d70"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"73f1d5ff24f782969ab68f75c2a8f72cdc31b947","unresolved":false,"context_lines":[{"line_number":112,"context_line":"  Expected error http response code: `409 Conflict`"},{"line_number":113,"context_line":"  - the instance state is invalid for pausing vm, e.g., instance is"},{"line_number":114,"context_line":"  not currently being live migrated."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Security impact"},{"line_number":117,"context_line":"---------------"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"ba8a016a_69927ba1","line":115,"in_reply_to":"ba8a016a_bede5e6b","updated":"2015-11-17 16:02:16.000000000","message":"I think the error must be reported in the standard way using instance actions:\nhttp://developer.openstack.org/api-ref-compute-v2.1.html#os-instance-actions-v2.1\n\nThere should be an instance action for both live-migrate and live-migrate-force-end (or whatever we call it).\n\nThe status of those individual operations can reflect if the pause failed, and independently, if the live-migrate operation has failed, or completed.\n\nWe should add this detail here I guess.","commit_id":"c65a94118decf4fcf8a40b104d0fa4d7d6de3d70"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"8a1fae8e1164869bc4ab63cf836c8ad5f1dbc201","unresolved":false,"context_lines":[{"line_number":155,"context_line":"Pawel Koniszewski (irc: pkoniszewski)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"Other assignees:"},{"line_number":158,"context_line":"-"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"Work Items"},{"line_number":161,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"ba8a016a_58adf12f","line":158,"updated":"2015-11-17 20:49:30.000000000","message":"what is this dash means?","commit_id":"c65a94118decf4fcf8a40b104d0fa4d7d6de3d70"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"38d43a3e3501b0db070f355e8dce2fa7fab5cbad","unresolved":false,"context_lines":[{"line_number":155,"context_line":"Pawel Koniszewski (irc: pkoniszewski)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"Other assignees:"},{"line_number":158,"context_line":"-"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"Work Items"},{"line_number":161,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"ba8a016a_02f4bdef","line":158,"in_reply_to":"ba8a016a_58adf12f","updated":"2015-11-18 09:43:14.000000000","message":"Done","commit_id":"c65a94118decf4fcf8a40b104d0fa4d7d6de3d70"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"8a1fae8e1164869bc4ab63cf836c8ad5f1dbc201","unresolved":false,"context_lines":[{"line_number":180,"context_line":""},{"line_number":181,"context_line":"New API needs to be documented:"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"* Compute API extensions documentation."},{"line_number":184,"context_line":"  http://developer.openstack.org/api-ref-compute-v2.1.html"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"* nova.compute.api documentation"}],"source_content_type":"text/x-rst","patch_set":13,"id":"ba8a016a_380eed3b","line":183,"updated":"2015-11-17 20:49:30.000000000","message":"Nit, dot \".\" is needed? \n the next item without dot.","commit_id":"c65a94118decf4fcf8a40b104d0fa4d7d6de3d70"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"38d43a3e3501b0db070f355e8dce2fa7fab5cbad","unresolved":false,"context_lines":[{"line_number":180,"context_line":""},{"line_number":181,"context_line":"New API needs to be documented:"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"* Compute API extensions documentation."},{"line_number":184,"context_line":"  http://developer.openstack.org/api-ref-compute-v2.1.html"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"* nova.compute.api documentation"}],"source_content_type":"text/x-rst","patch_set":13,"id":"ba8a016a_22f781f6","line":183,"in_reply_to":"ba8a016a_380eed3b","updated":"2015-11-18 09:43:14.000000000","message":"Done","commit_id":"c65a94118decf4fcf8a40b104d0fa4d7d6de3d70"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"def5f0af215f04cc375106d9bd655b8b902fb85e","unresolved":false,"context_lines":[{"line_number":44,"context_line":"Proposed change"},{"line_number":45,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"A new API method for pausing VM during live migration. This will make"},{"line_number":48,"context_line":"asynchronous RPC call to compute node to pause a VM through libvirt."},{"line_number":49,"context_line":"Also this will introduce new instance action \u0027live-migration-paused-vm\u0027."},{"line_number":50,"context_line":"The Migration object and MigrationList object will be used to establish which"}],"source_content_type":"text/x-rst","patch_set":14,"id":"ba8a016a_d2ef1c1c","line":47,"updated":"2015-11-19 12:47:12.000000000","message":"The libvirt org: \nhttp://libvirt.org/html/libvirt-libvirt-domain.html#virDomainMigrateToURI\n\nDo not pause the VM during migration VIR_MIGRATE_PEER2PEER.\n\nSo I think the Pause API does not apply any  type of migration.","commit_id":"c547d9ad71d6a0fcb2f5188167284ae1323c1468"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"def5f0af215f04cc375106d9bd655b8b902fb85e","unresolved":false,"context_lines":[{"line_number":45,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"A new API method for pausing VM during live migration. This will make"},{"line_number":48,"context_line":"asynchronous RPC call to compute node to pause a VM through libvirt."},{"line_number":49,"context_line":"Also this will introduce new instance action \u0027live-migration-paused-vm\u0027."},{"line_number":50,"context_line":"The Migration object and MigrationList object will be used to establish which"},{"line_number":51,"context_line":"migrations exist, with additional optional data provided by the compute driver."}],"source_content_type":"text/x-rst","patch_set":14,"id":"ba8a016a_1215a4e3","line":48,"updated":"2015-11-19 12:47:12.000000000","message":"which libvirt call?\n can you add the libvirt link call here?\n \n the libvirt call is time consume?","commit_id":"c547d9ad71d6a0fcb2f5188167284ae1323c1468"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"1689e25bede3409797bb617c42e4c683f65ae149","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"* Pause VM during live migration"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"  `POST /servers/{server_id}/{action}`"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Body::"},{"line_number":99,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"9a8ffd7b_ae7e2568","line":96,"updated":"2015-12-01 18:13:40.000000000","message":"Suggested update per discussion in API call\n\n* Obtain details of live migration operations on an instance that have\n  a status of running.  There should only be one migration per instance\n  in this state but the API call supports returning more than one.\n\n  The operation will return the id of the active migration operation\n  for the instance.\n\n  `GET /servers/{id}/migrations`\n\nBody::\n\n  None\n\n  Normal http response code: `200 OK`\n\n  Body::\n\n  {\n   \"migrations\": [\n      {\n        \"created_at\": \"2013-10-29T13:42:02.000000\",\n        \"dest_compute\": \"compute3\",\n        \"dest_host\": \"1.2.3.5\",\n        \"dest_node\": \"node3\",\n        \"id\": 6789,\n        \"instance_uuid\": \"instance_id_123\",\n        \"new_instance_type_id\": 2,\n        \"old_instance_type_id\": 1,\n        \"source_compute\": \"compute2\",\n        \"source_node\": \"node2\",\n        \"status\": \"running\",\n        \"updated_at\": \"2013-10-29T14:42:02.000000\",\n      }\n    ]\n  }\n\n  Note that if the caller is not a cloud admin then source and dest\n  fields will be ommitted from the response.\n\n  Expected error http response code: `404 Not Found`\n  - the instance does not exist or no running migrations for instance\n\n  Expected error http response code: `403 Forbidden`\n  - Policy violation.\n\n* modify an in-progress live migration\n\n  The operation will return the instance task state to none.\n\n  `POST /servers/{id}/migrations/{id}`\n\nBody::\n\n  {\n    \"pause-instance\": null\n  }\n\n\n  Normal http response code: `202 Accepted`\n  No response body is needed\n\n  Expected error http response code: `404 Not Found`\n  - the instance does not exist\n\n  Expected error http response code: `403 Forbidden`\n  - Policy violation.\n\n  Expected error http response code: `400 Bad Request`\n  - the instance state is invalid for modification, i.e. the task\n  state is not \u0027migrating\u0027 or the migration id is not in a running\n  state.","commit_id":"c547d9ad71d6a0fcb2f5188167284ae1323c1468"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"019cdea667181fbf102869a4b8ed2edfa510d65c","unresolved":false,"context_lines":[{"line_number":136,"context_line":"---------------------"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"python-novaclient will be extended by new operation to pause a VM during live"},{"line_number":139,"context_line":"migration."},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"Performance Impact"},{"line_number":142,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":14,"id":"ba8a016a_f84d5ec4","line":139,"updated":"2015-11-19 14:00:52.000000000","message":"Nit, the naming changed, but thats fine, I know what you mean here.","commit_id":"c547d9ad71d6a0fcb2f5188167284ae1323c1468"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"1689e25bede3409797bb617c42e4c683f65ae149","unresolved":false,"context_lines":[{"line_number":136,"context_line":"---------------------"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"python-novaclient will be extended by new operation to pause a VM during live"},{"line_number":139,"context_line":"migration."},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"Performance Impact"},{"line_number":142,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":14,"id":"9a8ffd7b_eebe6d63","line":139,"in_reply_to":"ba8a016a_f84d5ec4","updated":"2015-12-01 18:13:40.000000000","message":"suggest\n\nlive-migration-modify --pause-instance","commit_id":"c547d9ad71d6a0fcb2f5188167284ae1323c1468"}]}
