)]}'
{"specs/liberty/approved/refresh-abort-live-migration.rst":[{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"1d3c5124dead33180b7ff7b4a85f0bbece079379","unresolved":false,"context_lines":[{"line_number":52,"context_line":"A new API method for listing, querying and cancelling ongoing live migrations."},{"line_number":53,"context_line":"The Migration Object and MigrationList object will be used to establish which"},{"line_number":54,"context_line":"migrations exist, with additional optional data provided by the compute driver."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Alternatives"},{"line_number":57,"context_line":"------------"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a016987_f3a15795","line":55,"updated":"2015-05-28 20:29:53.000000000","message":"Would it also be worth including the changes to nova.compute.rpcapi? Since this feature will increment the rpcapi version?","commit_id":"ad191bd298a64fd5f9c4f59fb20a72b142f8c2a2"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"ee3d3e5ef6a95292c4464a8a66050b537413c8dd","unresolved":false,"context_lines":[{"line_number":52,"context_line":"A new API method for listing, querying and cancelling ongoing live migrations."},{"line_number":53,"context_line":"The Migration Object and MigrationList object will be used to establish which"},{"line_number":54,"context_line":"migrations exist, with additional optional data provided by the compute driver."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Alternatives"},{"line_number":57,"context_line":"------------"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5afe65bd_92f57d58","line":55,"in_reply_to":"7a016987_f3a15795","updated":"2015-06-04 12:56:41.000000000","message":"Done","commit_id":"ad191bd298a64fd5f9c4f59fb20a72b142f8c2a2"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"d2fd551bca87f85cb461ac8ffb3ae02f1a3c16e6","unresolved":false,"context_lines":[{"line_number":118,"context_line":"  is able to provide about the progress of the migration. For example, the"},{"line_number":119,"context_line":"  libvirt driver is able to show how much memory has been migrated and how much"},{"line_number":120,"context_line":"  is remaining. This would allow an operator to provide tooling to monitor the"},{"line_number":121,"context_line":"  progress of a live migration, to detect if it is unlikely to complete."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"* Stop an in-progress live migration"},{"line_number":124,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a016987_5a602c01","line":121,"updated":"2015-05-29 09:05:17.000000000","message":"I\u0027m not really a fan of the idea of the \u0027hypervisor-data .. additional fields as supported by the hypervisor\" section - this feels like we\u0027re just abdicating from our job as API designers.  I like it even less when you suggest this is data that people should use to building tooling around migration, as this means they have to change their tools for every hypervisor.\n\nI\u0027m all for providing status information in the API, but we really must define a standard format for that information. This doesn\u0027t mean that every hypervisor has to support the information we define - each can provide the subset of fields that make sense. The key is that we don\u0027t want 2 hypervisors providing the same exact data in different format, which is what will happen with this unspecied \u0027hypervisor-data\u0027 dict.","commit_id":"ad191bd298a64fd5f9c4f59fb20a72b142f8c2a2"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"1d3c5124dead33180b7ff7b4a85f0bbece079379","unresolved":false,"context_lines":[{"line_number":118,"context_line":"  is able to provide about the progress of the migration. For example, the"},{"line_number":119,"context_line":"  libvirt driver is able to show how much memory has been migrated and how much"},{"line_number":120,"context_line":"  is remaining. This would allow an operator to provide tooling to monitor the"},{"line_number":121,"context_line":"  progress of a live migration, to detect if it is unlikely to complete."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"* Stop an in-progress live migration"},{"line_number":124,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a016987_c052ff34","line":121,"updated":"2015-05-28 20:29:53.000000000","message":"So, if the hypervisor is not able or not yet able to provide any info about the migration, will hypervisor-data be empty, or will it contain an error / warning, telling the user that the hypervisor cannot provide any information about the migration?","commit_id":"ad191bd298a64fd5f9c4f59fb20a72b142f8c2a2"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"ee3d3e5ef6a95292c4464a8a66050b537413c8dd","unresolved":false,"context_lines":[{"line_number":118,"context_line":"  is able to provide about the progress of the migration. For example, the"},{"line_number":119,"context_line":"  libvirt driver is able to show how much memory has been migrated and how much"},{"line_number":120,"context_line":"  is remaining. This would allow an operator to provide tooling to monitor the"},{"line_number":121,"context_line":"  progress of a live migration, to detect if it is unlikely to complete."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"* Stop an in-progress live migration"},{"line_number":124,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5afe65bd_12dbcded","line":121,"in_reply_to":"7a016987_5a602c01","updated":"2015-06-04 12:56:41.000000000","message":"Done","commit_id":"ad191bd298a64fd5f9c4f59fb20a72b142f8c2a2"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"1d3c5124dead33180b7ff7b4a85f0bbece079379","unresolved":false,"context_lines":[{"line_number":132,"context_line":"  Expected error http response code: `404 Not Found`"},{"line_number":133,"context_line":"  - the migration does not exist, perhaps it has finished"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"  Expected error http response code: `405 Method not supported`"},{"line_number":136,"context_line":"  - it is not possible to even attempt to cancel the live migration. Likely to"},{"line_number":137,"context_line":"  be because the hypervisor does not support cancellation of live migrations."},{"line_number":138,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a016987_e0905bef","line":135,"updated":"2015-05-28 20:29:53.000000000","message":"HTTPNotImplemented is also a good alternative. Did a search on the api, it seems more common than this error code.","commit_id":"ad191bd298a64fd5f9c4f59fb20a72b142f8c2a2"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"8a73caab048de899216136c3ba4d56fa73ded7e6","unresolved":false,"context_lines":[{"line_number":132,"context_line":"  Expected error http response code: `404 Not Found`"},{"line_number":133,"context_line":"  - the migration does not exist, perhaps it has finished"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"  Expected error http response code: `405 Method not supported`"},{"line_number":136,"context_line":"  - it is not possible to even attempt to cancel the live migration. Likely to"},{"line_number":137,"context_line":"  be because the hypervisor does not support cancellation of live migrations."},{"line_number":138,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5afe65bd_66d47ebc","line":135,"in_reply_to":"5afe65bd_32dec9dd","updated":"2015-06-04 14:40:11.000000000","message":"You can see that in this review, btw: https://review.openstack.org/#/c/183456/","commit_id":"ad191bd298a64fd5f9c4f59fb20a72b142f8c2a2"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"ee3d3e5ef6a95292c4464a8a66050b537413c8dd","unresolved":false,"context_lines":[{"line_number":132,"context_line":"  Expected error http response code: `404 Not Found`"},{"line_number":133,"context_line":"  - the migration does not exist, perhaps it has finished"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"  Expected error http response code: `405 Method not supported`"},{"line_number":136,"context_line":"  - it is not possible to even attempt to cancel the live migration. Likely to"},{"line_number":137,"context_line":"  be because the hypervisor does not support cancellation of live migrations."},{"line_number":138,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5afe65bd_32dec9dd","line":135,"in_reply_to":"7a016987_e0905bef","updated":"2015-06-04 12:56:41.000000000","message":"I think this is right. There\u0027s a lot of discussion about NotImplemented in the API WG at the moment - 501 seems to have been misused in the past.","commit_id":"ad191bd298a64fd5f9c4f59fb20a72b142f8c2a2"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"fea650a560ebc5eb062a281ff57e6e404a15eaee","unresolved":false,"context_lines":[{"line_number":83,"context_line":"  This returns a list of migrations, for example::"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    {"},{"line_number":86,"context_line":"      \"live-migrations\" :"},{"line_number":87,"context_line":"        ["},{"line_number":88,"context_line":"          { \"id\" : ..."},{"line_number":89,"context_line":"            \"instance-uuid\" : ..."}],"source_content_type":"text/x-rst","patch_set":8,"id":"3afb71cf_32771e3c","line":86,"updated":"2015-06-08 10:59:56.000000000","message":"s/live-migrations/live_migrations/ for snake_case parameters for consistency.","commit_id":"3bcc5dcc879b1b69d4f51ecca46373882970cb98"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"6abbf859190da90aae55a7fe221f1450597b6a5e","unresolved":false,"context_lines":[{"line_number":83,"context_line":"  This returns a list of migrations, for example::"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    {"},{"line_number":86,"context_line":"      \"live-migrations\" :"},{"line_number":87,"context_line":"        ["},{"line_number":88,"context_line":"          { \"id\" : ..."},{"line_number":89,"context_line":"            \"instance-uuid\" : ..."}],"source_content_type":"text/x-rst","patch_set":8,"id":"3afb71cf_f231860c","line":86,"in_reply_to":"3afb71cf_32771e3c","updated":"2015-06-08 11:14:39.000000000","message":"Done","commit_id":"3bcc5dcc879b1b69d4f51ecca46373882970cb98"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"fea650a560ebc5eb062a281ff57e6e404a15eaee","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    {"},{"line_number":86,"context_line":"      \"live-migrations\" :"},{"line_number":87,"context_line":"        ["},{"line_number":88,"context_line":"          { \"id\" : ..."},{"line_number":89,"context_line":"            \"instance-uuid\" : ..."},{"line_number":90,"context_line":"            \"source-compute\" : ..."},{"line_number":91,"context_line":"            \"dest-compute\" : ..."}],"source_content_type":"text/x-rst","patch_set":8,"id":"3afb71cf_920ff287","line":88,"updated":"2015-06-08 10:59:56.000000000","message":"How to generate this \"id\"?\nCurrently os-migrateLive API doesn\u0027t return body and client cannot know its id.\n\nSo maybe I feel we need to implement live-migrate API also in this resource and it needs to return body including \"id\".","commit_id":"3bcc5dcc879b1b69d4f51ecca46373882970cb98"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"b4d84f2a613b368d672997d92b7f8e790ba54d3f","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    {"},{"line_number":86,"context_line":"      \"live-migrations\" :"},{"line_number":87,"context_line":"        ["},{"line_number":88,"context_line":"          { \"id\" : ..."},{"line_number":89,"context_line":"            \"instance-uuid\" : ..."},{"line_number":90,"context_line":"            \"source-compute\" : ..."},{"line_number":91,"context_line":"            \"dest-compute\" : ..."}],"source_content_type":"text/x-rst","patch_set":8,"id":"3afb71cf_4d22ff02","line":88,"in_reply_to":"3afb71cf_8d123708","updated":"2015-06-08 11:22:24.000000000","message":"Hi Matthew,\n\nThanks for your response.\n\n \u003e Returning the id when the user starts the migration\n \u003e is also possible to do in this change.\n\nThat seems nice idea for me for avoiding a single big change.\n\n \u003e Do you mean we should use this API for creating\n \u003e live-migration resources as well (ie for starting live\n \u003e migrations?). Then would we be deprecating the old\n \u003e endpoint as well?\n\nYeah, I did think that is better in long term for consistent interfaces. but previous solution(adding \"id\" to the existing API) is good for me in short term.","commit_id":"3bcc5dcc879b1b69d4f51ecca46373882970cb98"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"6abbf859190da90aae55a7fe221f1450597b6a5e","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    {"},{"line_number":86,"context_line":"      \"live-migrations\" :"},{"line_number":87,"context_line":"        ["},{"line_number":88,"context_line":"          { \"id\" : ..."},{"line_number":89,"context_line":"            \"instance-uuid\" : ..."},{"line_number":90,"context_line":"            \"source-compute\" : ..."},{"line_number":91,"context_line":"            \"dest-compute\" : ..."}],"source_content_type":"text/x-rst","patch_set":8,"id":"3afb71cf_8d123708","line":88,"in_reply_to":"3afb71cf_920ff287","updated":"2015-06-08 11:14:39.000000000","message":"I figured that we could generate uuids for the migration objects, although the db object already has an \u0027id\u0027 so I\u0027d need to check what format that is. User would be able to find the right one by filtering the list `?instance-uuid\u003dxxxxxxxxxxxxxxxxxxx`.\n\nReturning the id when the user starts the migration is also possible to do in this change.\n\nDo you mean we should use this API for creating live-migration resources as well (ie for starting live migrations?). Then would we be deprecating the old endpoint as well?","commit_id":"3bcc5dcc879b1b69d4f51ecca46373882970cb98"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"fea650a560ebc5eb062a281ff57e6e404a15eaee","unresolved":false,"context_lines":[{"line_number":86,"context_line":"      \"live-migrations\" :"},{"line_number":87,"context_line":"        ["},{"line_number":88,"context_line":"          { \"id\" : ..."},{"line_number":89,"context_line":"            \"instance-uuid\" : ..."},{"line_number":90,"context_line":"            \"source-compute\" : ..."},{"line_number":91,"context_line":"            \"dest-compute\" : ..."},{"line_number":92,"context_line":"            \"status\" : ..."}],"source_content_type":"text/x-rst","patch_set":8,"id":"3afb71cf_b299ce70","line":89,"updated":"2015-06-08 10:59:56.000000000","message":"instance_uuid","commit_id":"3bcc5dcc879b1b69d4f51ecca46373882970cb98"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"6abbf859190da90aae55a7fe221f1450597b6a5e","unresolved":false,"context_lines":[{"line_number":86,"context_line":"      \"live-migrations\" :"},{"line_number":87,"context_line":"        ["},{"line_number":88,"context_line":"          { \"id\" : ..."},{"line_number":89,"context_line":"            \"instance-uuid\" : ..."},{"line_number":90,"context_line":"            \"source-compute\" : ..."},{"line_number":91,"context_line":"            \"dest-compute\" : ..."},{"line_number":92,"context_line":"            \"status\" : ..."}],"source_content_type":"text/x-rst","patch_set":8,"id":"3afb71cf_ed264bb9","line":89,"in_reply_to":"3afb71cf_b299ce70","updated":"2015-06-08 11:14:39.000000000","message":"Done","commit_id":"3bcc5dcc879b1b69d4f51ecca46373882970cb98"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"fea650a560ebc5eb062a281ff57e6e404a15eaee","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        ["},{"line_number":88,"context_line":"          { \"id\" : ..."},{"line_number":89,"context_line":"            \"instance-uuid\" : ..."},{"line_number":90,"context_line":"            \"source-compute\" : ..."},{"line_number":91,"context_line":"            \"dest-compute\" : ..."},{"line_number":92,"context_line":"            \"status\" : ..."},{"line_number":93,"context_line":"          },"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3afb71cf_929c925e","line":90,"updated":"2015-06-08 10:59:56.000000000","message":"ditto and current os-migrateLive API uses \"host\" as compute node meaning.\n\nSo how about source_host?","commit_id":"3bcc5dcc879b1b69d4f51ecca46373882970cb98"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"6abbf859190da90aae55a7fe221f1450597b6a5e","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        ["},{"line_number":88,"context_line":"          { \"id\" : ..."},{"line_number":89,"context_line":"            \"instance-uuid\" : ..."},{"line_number":90,"context_line":"            \"source-compute\" : ..."},{"line_number":91,"context_line":"            \"dest-compute\" : ..."},{"line_number":92,"context_line":"            \"status\" : ..."},{"line_number":93,"context_line":"          },"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3afb71cf_2d4c636f","line":90,"in_reply_to":"3afb71cf_929c925e","updated":"2015-06-08 11:14:39.000000000","message":"Done (these names were copied from the rpc object field names, btw)","commit_id":"3bcc5dcc879b1b69d4f51ecca46373882970cb98"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"fea650a560ebc5eb062a281ff57e6e404a15eaee","unresolved":false,"context_lines":[{"line_number":88,"context_line":"          { \"id\" : ..."},{"line_number":89,"context_line":"            \"instance-uuid\" : ..."},{"line_number":90,"context_line":"            \"source-compute\" : ..."},{"line_number":91,"context_line":"            \"dest-compute\" : ..."},{"line_number":92,"context_line":"            \"status\" : ..."},{"line_number":93,"context_line":"          },"},{"line_number":94,"context_line":"          ..."}],"source_content_type":"text/x-rst","patch_set":8,"id":"3afb71cf_32aefe85","line":91,"updated":"2015-06-08 10:59:56.000000000","message":"how about destination_host?","commit_id":"3bcc5dcc879b1b69d4f51ecca46373882970cb98"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"6abbf859190da90aae55a7fe221f1450597b6a5e","unresolved":false,"context_lines":[{"line_number":88,"context_line":"          { \"id\" : ..."},{"line_number":89,"context_line":"            \"instance-uuid\" : ..."},{"line_number":90,"context_line":"            \"source-compute\" : ..."},{"line_number":91,"context_line":"            \"dest-compute\" : ..."},{"line_number":92,"context_line":"            \"status\" : ..."},{"line_number":93,"context_line":"          },"},{"line_number":94,"context_line":"          ..."}],"source_content_type":"text/x-rst","patch_set":8,"id":"3afb71cf_ed740b9d","line":91,"in_reply_to":"3afb71cf_32aefe85","updated":"2015-06-08 11:14:39.000000000","message":"Done","commit_id":"3bcc5dcc879b1b69d4f51ecca46373882970cb98"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"fea650a560ebc5eb062a281ff57e6e404a15eaee","unresolved":false,"context_lines":[{"line_number":128,"context_line":"  No request body is necessary"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"  Normal http response code: `204 No Content`"},{"line_number":131,"context_line":"  No response body is needed"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"  Expected error http response code: `404 Not Found`"},{"line_number":134,"context_line":"  - the migration does not exist, perhaps it has finished"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3afb71cf_679f1a51","line":131,"updated":"2015-06-08 10:59:56.000000000","message":"Is this cancelling method synchronous?\n\nI guess nova-compute might need some backend works even after returning a response, right?","commit_id":"3bcc5dcc879b1b69d4f51ecca46373882970cb98"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"7d636e70cefd1e2447f1333157f341a05f4076c8","unresolved":false,"context_lines":[{"line_number":128,"context_line":"  No request body is necessary"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"  Normal http response code: `204 No Content`"},{"line_number":131,"context_line":"  No response body is needed"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"  Expected error http response code: `404 Not Found`"},{"line_number":134,"context_line":"  - the migration does not exist, perhaps it has finished"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3afb71cf_af7040dd","line":131,"in_reply_to":"3afb71cf_679f1a51","updated":"2015-06-08 14:48:41.000000000","message":"Sorry I missed this comment earlier.  Good question! I would hope it can be synchronous. AFAIK live migrations can be canceled quickly because the VM is still running at the source until the final switchover (at which point canceling becomes impossible), and this is true of any hypervisor which supports LM.","commit_id":"3bcc5dcc879b1b69d4f51ecca46373882970cb98"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"8b319c61dd81438376c66cf98068ddf12be200fe","unresolved":false,"context_lines":[{"line_number":128,"context_line":"  No request body is necessary"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"  Normal http response code: `204 No Content`"},{"line_number":131,"context_line":"  No response body is needed"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"  Expected error http response code: `404 Not Found`"},{"line_number":134,"context_line":"  - the migration does not exist, perhaps it has finished"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3afb71cf_e9d73cbd","line":131,"in_reply_to":"3afb71cf_af7040dd","updated":"2015-06-09 01:27:18.000000000","message":"Thanks for clarifying, and that is really nice.\n204 is fine for the situation, as you know :)","commit_id":"3bcc5dcc879b1b69d4f51ecca46373882970cb98"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"28c4369066725f5becfb5848e3dc1657a89debb4","unresolved":false,"context_lines":[{"line_number":80,"context_line":"  At the moment the response to that request is empty, but we will return"},{"line_number":81,"context_line":"  the id of the created Migration object."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"* Fetch a list of in-progress live migrations"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"  `GET /live-migrations`"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"3afb71cf_446103d3","line":83,"updated":"2015-06-11 17:22:28.000000000","message":"I have a few thoughts here.  This API is very specific to the task of canceling a live-migration, but could benefit from being a bit more general.  How about GET /migrations and then expose the type of the migration, and make that a filterable field.  I don\u0027t see a reason to restrict this to just in-progress or live-migrations.","commit_id":"4522664f7a1892b68362c4c7acfd3f030cf35bae"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"681bc20320f1b2fa75447e50bfca97cb35509d5a","unresolved":false,"context_lines":[{"line_number":80,"context_line":"  At the moment the response to that request is empty, but we will return"},{"line_number":81,"context_line":"  the id of the created Migration object."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"* Fetch a list of in-progress live migrations"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"  `GET /live-migrations`"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa32b979_bd57b158","line":83,"in_reply_to":"3afb71cf_446103d3","updated":"2015-06-25 14:36:15.000000000","message":"This is a big change to the intended purpose of this API. I\u0027m happy to expand the different types of migration, but to also include finished/cancelled/otherwise-not-ongoing migrations is not in line with the intended use of the API and changes the semantics of other parts quite a lot.","commit_id":"4522664f7a1892b68362c4c7acfd3f030cf35bae"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"b6f036a81109986427a33d9ff3ae3b1a288c1dc7","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"* Fetch a list of in-progress live migrations"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"  `GET /live-migrations`"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"  This returns a list of migrations, for example::"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa32b979_7094c736","line":85,"updated":"2015-06-15 00:54:34.000000000","message":"Can we use the existing \"os-migrations\" instead of adding a new resource ?\n\nCurrent \"os-migrations\" can provide necessary info and it seems enough to implement cancelling feature:\n\n $ curl  -X GET http://192.168.11.62:8774/v2/25b43efa4c674bff8ccb85fb5938fd86/os-migrations [..]","commit_id":"4522664f7a1892b68362c4c7acfd3f030cf35bae"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"681bc20320f1b2fa75447e50bfca97cb35509d5a","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"* Fetch a list of in-progress live migrations"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"  `GET /live-migrations`"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"  This returns a list of migrations, for example::"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa32b979_dd5ab581","line":85,"in_reply_to":"fa32b979_7094c736","updated":"2015-06-25 14:36:15.000000000","message":"Done","commit_id":"4522664f7a1892b68362c4c7acfd3f030cf35bae"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"28c4369066725f5becfb5848e3dc1657a89debb4","unresolved":false,"context_lines":[{"line_number":116,"context_line":"      \"source_compute\" : ..."},{"line_number":117,"context_line":"      \"dest_compute\" : ..."},{"line_number":118,"context_line":"      \"status\" : ..."},{"line_number":119,"context_line":"      \"progress\" : ...         # percentage completion, 0-100"},{"line_number":120,"context_line":"    }"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"  The \"progress\" field is intended to allow an operator to provide tooling for"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3afb71cf_c1e605b0","line":119,"updated":"2015-06-11 17:22:28.000000000","message":"This should be left out of this spec since there is currently nowhere to pull this data from.  Adding that will either be a hook or new data model somewhere and would be best discussed elsewhere.","commit_id":"4522664f7a1892b68362c4c7acfd3f030cf35bae"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"07f66cfe6089b9e6e4eefa7298bf463879beaf8d","unresolved":false,"context_lines":[{"line_number":116,"context_line":"      \"source_compute\" : ..."},{"line_number":117,"context_line":"      \"dest_compute\" : ..."},{"line_number":118,"context_line":"      \"status\" : ..."},{"line_number":119,"context_line":"      \"progress\" : ...         # percentage completion, 0-100"},{"line_number":120,"context_line":"    }"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"  The \"progress\" field is intended to allow an operator to provide tooling for"}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa32b979_39aeea85","line":119,"in_reply_to":"3afb71cf_c1e605b0","updated":"2015-06-16 09:40:51.000000000","message":"FYI, libvirt now provides the percentage completion data for live migration by setting the \u0027progress\u0027 attribute on the Instance, so we can provide this data.","commit_id":"4522664f7a1892b68362c4c7acfd3f030cf35bae"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"681bc20320f1b2fa75447e50bfca97cb35509d5a","unresolved":false,"context_lines":[{"line_number":116,"context_line":"      \"source_compute\" : ..."},{"line_number":117,"context_line":"      \"dest_compute\" : ..."},{"line_number":118,"context_line":"      \"status\" : ..."},{"line_number":119,"context_line":"      \"progress\" : ...         # percentage completion, 0-100"},{"line_number":120,"context_line":"    }"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"  The \"progress\" field is intended to allow an operator to provide tooling for"}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa32b979_9d742dcf","line":119,"in_reply_to":"fa32b979_39aeea85","updated":"2015-06-25 14:36:15.000000000","message":"AFAIK libvirt supports 85% or more of openstack clouds so I think it\u0027s worth leaving in.","commit_id":"4522664f7a1892b68362c4c7acfd3f030cf35bae"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"28c4369066725f5becfb5848e3dc1657a89debb4","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"* Stop an in-progress live migration"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"  `DELETE /live-migrations/{id}`"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"  No request body is necessary"},{"line_number":133,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"3afb71cf_e4ec6f2b","line":130,"updated":"2015-06-11 17:22:28.000000000","message":"I don\u0027t think DELETE is the semantic we want to use here.  The migration isn\u0027t being removed, it\u0027s status is changing.  I would think of this as a POST where the status is updated to stopped or something along those lines.","commit_id":"4522664f7a1892b68362c4c7acfd3f030cf35bae"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"681bc20320f1b2fa75447e50bfca97cb35509d5a","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"* Stop an in-progress live migration"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"  `DELETE /live-migrations/{id}`"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"  No request body is necessary"},{"line_number":133,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa32b979_889389a2","line":130,"in_reply_to":"3afb71cf_e4ec6f2b","updated":"2015-06-25 14:36:15.000000000","message":"This API is specifically exposing information about existing migrations.  ie The resource type here is \"ongoing migration\", so to cancel the migration is to remove the resource, is to DELETE it.  This reification of an action in order to fit the \"resource-oriented\" REST model is a typical approach, I believe, and I imagine this is how the tasks API would work as well.","commit_id":"4522664f7a1892b68362c4c7acfd3f030cf35bae"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"28c4369066725f5becfb5848e3dc1657a89debb4","unresolved":false,"context_lines":[{"line_number":137,"context_line":"  Expected error http response code: `404 Not Found`"},{"line_number":138,"context_line":"  - the migration does not exist, perhaps it has finished"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"  Expected error http response code: `405 Method not supported`"},{"line_number":141,"context_line":"  - it is not possible to even attempt to cancel the live migration. Likely to"},{"line_number":142,"context_line":"  be because the hypervisor does not support cancellation of live migrations."},{"line_number":143,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"3afb71cf_64475f1e","line":140,"updated":"2015-06-11 17:22:28.000000000","message":"I\u0027m not sure where we\u0027ve landed on the usage of 405, but my understanding is that the real intent of it is to indicate that the HTTP method is not supported.  So in this case a DELETE(or POST) is not supported at all.\n\nOf course I always understood its meaning as what you have here, as I think a lot of people do.  So I have no strong opinion, just pointing it out.","commit_id":"4522664f7a1892b68362c4c7acfd3f030cf35bae"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"681bc20320f1b2fa75447e50bfca97cb35509d5a","unresolved":false,"context_lines":[{"line_number":137,"context_line":"  Expected error http response code: `404 Not Found`"},{"line_number":138,"context_line":"  - the migration does not exist, perhaps it has finished"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"  Expected error http response code: `405 Method not supported`"},{"line_number":141,"context_line":"  - it is not possible to even attempt to cancel the live migration. Likely to"},{"line_number":142,"context_line":"  be because the hypervisor does not support cancellation of live migrations."},{"line_number":143,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"fa32b979_08877961","line":140,"in_reply_to":"3afb71cf_64475f1e","updated":"2015-06-25 14:36:15.000000000","message":"The outcome here depends on the previous comment, I suppose. If we\u0027re trying to DELETE something (as I believe we are) and the server thinks it\u0027s unDELETEable (but it exists and we otherwise have access to it) then 405 is the appropriate response.","commit_id":"4522664f7a1892b68362c4c7acfd3f030cf35bae"}],"specs/liberty/approved/stop-live-migration.rst":[{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"0485ddf0c0cf4c0135c45e537eda7b930c105170","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"  Policy: This does not need a separate policy control. It can be called by"},{"line_number":84,"context_line":"  anyone who could have started the live migration, so can inherit that"},{"line_number":85,"context_line":"  action\u0027s policy."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"Security impact"},{"line_number":88,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3acd31a7_521611a8","line":85,"updated":"2015-05-01 14:33:33.000000000","message":"When the topic of stopping live migration has come up in the past, the conversation has usually ended up with a push to use the generic tasks API (which does not yet exist). Personally, unless there\u0027s credible sign of the tasks API appearing in Liberty, I\u0027d say we should go for this special case migrate API, as we\u0027ve waited waaaaay too long for this feature.  This should probably be mentioned under the alternatives section though.","commit_id":"25798cd9b9e67e9bedc7307da1f435d2cf24b73b"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"9c84517e776da1500b00f0a27788d87f86b38865","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad blueprint:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"TBC: https://blueprints.launchpad.net/nova/+spec/example"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"After starting live migration, it may be that an operator wishes to cancel the"},{"line_number":16,"context_line":"migration before it finishes. Currently this requires intervention at the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9af37de9_9e93aafa","line":13,"updated":"2015-05-11 14:32:56.000000000","message":"Need to create this before we merge the spec, as you know.","commit_id":"f214c7a4fe2b4afbcbacf02fae27b98a5e894aec"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"92a3c1753c7dc8fa61b1c90c24faf7bdca30f157","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad blueprint:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"TBC: https://blueprints.launchpad.net/nova/+spec/example"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"After starting live migration, it may be that an operator wishes to cancel the"},{"line_number":16,"context_line":"migration before it finishes. Currently this requires intervention at the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9af37de9_b909e833","line":13,"in_reply_to":"9af37de9_9e93aafa","updated":"2015-05-11 15:09:32.000000000","message":"Ack, will do. Just waiting for some more feedback on the spec before I do.","commit_id":"f214c7a4fe2b4afbcbacf02fae27b98a5e894aec"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"6d794d6e5e80a84b5c5e75bb55171f80e5fc84ab","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad blueprint:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"TBC: https://blueprints.launchpad.net/nova/+spec/example"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"After starting live migration, it may be that an operator wishes to cancel the"},{"line_number":16,"context_line":"migration before it finishes. Currently this requires intervention at the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a016987_1393215d","line":13,"in_reply_to":"9af37de9_b909e833","updated":"2015-05-15 10:29:54.000000000","message":"Blueprint that aims this problem is open for a long time already:\n\nhttps://blueprints.launchpad.net/nova/+spec/refresh-abort-live-migration\n\nThis specification aims only one of two things that are described in reported bp.","commit_id":"f214c7a4fe2b4afbcbacf02fae27b98a5e894aec"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"c9f0fc432937471c3069eff6ad22e66e1d566c8a","unresolved":false,"context_lines":[{"line_number":27,"context_line":"discovered with the target node. As the set of operations that can be performed"},{"line_number":28,"context_line":"on an instance during live migration is restricted (only delete is currently"},{"line_number":29,"context_line":"allowed), it may be that an instance owner has requested that their instance be"},{"line_number":30,"context_line":"made available urgently."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Currently aborting a live migration requires intervention at the hypervisor"},{"line_number":33,"context_line":"level then waiting for Nova to rediscover the correct state for the instance"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a0c5dc1_355f5310","line":30,"updated":"2015-05-12 10:32:23.000000000","message":"is it possible that we live migrate and the RPC message is later than the cancel live-migration RPC message? \nhow to handle this kind of situation?","commit_id":"f214c7a4fe2b4afbcbacf02fae27b98a5e894aec"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"ab90e166374683a35f9b766a85020bbb637653ff","unresolved":false,"context_lines":[{"line_number":27,"context_line":"discovered with the target node. As the set of operations that can be performed"},{"line_number":28,"context_line":"on an instance during live migration is restricted (only delete is currently"},{"line_number":29,"context_line":"allowed), it may be that an instance owner has requested that their instance be"},{"line_number":30,"context_line":"made available urgently."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Currently aborting a live migration requires intervention at the hypervisor"},{"line_number":33,"context_line":"level then waiting for Nova to rediscover the correct state for the instance"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a0c5dc1_55c88774","line":30,"in_reply_to":"9a0c5dc1_355f5310","updated":"2015-05-12 10:38:49.000000000","message":"IIUC, this kind of question is an example of what the generic tasks API was intended to address. Each task that is started would get a unique task ID, and the cancel API call would have to pass the task ID. That way you can be sure you are not cancelling the wrong task when race conditions occurr.","commit_id":"f214c7a4fe2b4afbcbacf02fae27b98a5e894aec"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"cfa7adcbf10ced57f72daeda434e70da57b9ea91","unresolved":false,"context_lines":[{"line_number":27,"context_line":"discovered with the target node. As the set of operations that can be performed"},{"line_number":28,"context_line":"on an instance during live migration is restricted (only delete is currently"},{"line_number":29,"context_line":"allowed), it may be that an instance owner has requested that their instance be"},{"line_number":30,"context_line":"made available urgently."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Currently aborting a live migration requires intervention at the hypervisor"},{"line_number":33,"context_line":"level then waiting for Nova to rediscover the correct state for the instance"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a0c5dc1_3163d9b3","line":30,"in_reply_to":"9a0c5dc1_55c88774","updated":"2015-05-12 15:03:58.000000000","message":"+1.  I think there needs to be an answer here for how a stop/cancel action will only affect the intended action.","commit_id":"f214c7a4fe2b4afbcbacf02fae27b98a5e894aec"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"6d794d6e5e80a84b5c5e75bb55171f80e5fc84ab","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Currently aborting a live migration requires intervention at the hypervisor"},{"line_number":33,"context_line":"level then waiting for Nova to rediscover the correct state for the instance"},{"line_number":34,"context_line":"during its periodic tasks."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a016987_13c8c154","line":34,"updated":"2015-05-15 10:29:54.000000000","message":"I think mitigation is a bit different. You can abort LM through virsh and live migration monitor will clean up destination host, change VM state and VM will continue to run on source node. Periodic task is not needed.","commit_id":"f214c7a4fe2b4afbcbacf02fae27b98a5e894aec"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"659821f7622dc39f4abef56cc13f42fb6f8d8d1b","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Currently aborting a live migration requires intervention at the hypervisor"},{"line_number":33,"context_line":"level then waiting for Nova to rediscover the correct state for the instance"},{"line_number":34,"context_line":"during its periodic tasks."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a016987_4854d1fd","line":34,"in_reply_to":"7a016987_13c8c154","updated":"2015-05-20 20:22:04.000000000","message":"Done","commit_id":"f214c7a4fe2b4afbcbacf02fae27b98a5e894aec"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"9c84517e776da1500b00f0a27788d87f86b38865","unresolved":false,"context_lines":[{"line_number":60,"context_line":"Nova, and has been thought of as being suitable for a \"Tasks API\" for"},{"line_number":61,"context_line":"managing long-running tasks [#]_. There is not currently any Tasks API, but if"},{"line_number":62,"context_line":"one"},{"line_number":63,"context_line":"were to be added to Nova, it would be suitable."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Data model impact"},{"line_number":66,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9af37de9_196eb4c9","line":63,"updated":"2015-05-11 14:32:56.000000000","message":"Can we not just add enough of the tasks APIs to support this feature?","commit_id":"f214c7a4fe2b4afbcbacf02fae27b98a5e894aec"},{"author":{"_account_id":15424,"name":"javeme","email":"javaloveme@gmail.com","username":"javeme"},"change_message_id":"9bc966818bc9aea39cce67fdb582ef231d76f922","unresolved":false,"context_lines":[{"line_number":60,"context_line":"Nova, and has been thought of as being suitable for a \"Tasks API\" for"},{"line_number":61,"context_line":"managing long-running tasks [#]_. There is not currently any Tasks API, but if"},{"line_number":62,"context_line":"one"},{"line_number":63,"context_line":"were to be added to Nova, it would be suitable."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Data model impact"},{"line_number":66,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a016987_971e64b9","line":63,"in_reply_to":"9a0c5dc1_75a02b91","updated":"2015-05-21 03:09:14.000000000","message":"+1, may you add API cancel_task(task_id) like VCenter.","commit_id":"f214c7a4fe2b4afbcbacf02fae27b98a5e894aec"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"92a3c1753c7dc8fa61b1c90c24faf7bdca30f157","unresolved":false,"context_lines":[{"line_number":60,"context_line":"Nova, and has been thought of as being suitable for a \"Tasks API\" for"},{"line_number":61,"context_line":"managing long-running tasks [#]_. There is not currently any Tasks API, but if"},{"line_number":62,"context_line":"one"},{"line_number":63,"context_line":"were to be added to Nova, it would be suitable."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Data model impact"},{"line_number":66,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9af37de9_b43e8fb6","line":63,"in_reply_to":"9af37de9_196eb4c9","updated":"2015-05-11 15:09:32.000000000","message":"Do we have any other potential use-cases for tasks API? I\u0027m wary of trying to extrapolate a general-purpose framework from a single example.","commit_id":"f214c7a4fe2b4afbcbacf02fae27b98a5e894aec"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"ab90e166374683a35f9b766a85020bbb637653ff","unresolved":false,"context_lines":[{"line_number":60,"context_line":"Nova, and has been thought of as being suitable for a \"Tasks API\" for"},{"line_number":61,"context_line":"managing long-running tasks [#]_. There is not currently any Tasks API, but if"},{"line_number":62,"context_line":"one"},{"line_number":63,"context_line":"were to be added to Nova, it would be suitable."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Data model impact"},{"line_number":66,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a0c5dc1_75a02b91","line":63,"in_reply_to":"9af37de9_b43e8fb6","updated":"2015-05-12 10:38:49.000000000","message":"Basically any API call that is long running should be cancellable. For example, swap volume, snapshot, migrate, block migrate, rescue, even boot.","commit_id":"f214c7a4fe2b4afbcbacf02fae27b98a5e894aec"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"c9f0fc432937471c3069eff6ad22e66e1d566c8a","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"* Stop an in-progress live migration"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"  `POST /servers/{server_id}/action`"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"  specify the `os-migrateLive-cancel` action in the request body::"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a0c5dc1_9ab06c8d","line":75,"updated":"2015-05-12 10:32:23.000000000","message":"maybe a PUT is better? my understanding is PUT is for update?","commit_id":"f214c7a4fe2b4afbcbacf02fae27b98a5e894aec"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"6d794d6e5e80a84b5c5e75bb55171f80e5fc84ab","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"* Stop an in-progress live migration"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"  `POST /servers/{server_id}/action`"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"  specify the `os-migrateLive-cancel` action in the request body::"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a016987_f3e525a8","line":75,"in_reply_to":"9a0c5dc1_9ab06c8d","updated":"2015-05-15 10:29:54.000000000","message":"Whole action API looks like RPC. So +1 from for POST.\n\nIt provides completely new method, os-migrateLive-cancel, so in my opinion POST is better.","commit_id":"f214c7a4fe2b4afbcbacf02fae27b98a5e894aec"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"6d794d6e5e80a84b5c5e75bb55171f80e5fc84ab","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"  `POST /servers/{server_id}/action`"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"  specify the `os-migrateLive-cancel` action in the request body::"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    {"},{"line_number":80,"context_line":"      \"os-migrateLive-cancel\": null"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a016987_137561ca","line":77,"range":{"start_line":77,"start_character":18,"end_line":77,"end_character":29},"updated":"2015-05-15 10:29:54.000000000","message":"Can we change this to \u0027os-migrateLive-abort\u0027? In libvirt it is called \u0027domain job abort\u0027 so we can keep some consistency.","commit_id":"f214c7a4fe2b4afbcbacf02fae27b98a5e894aec"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"659821f7622dc39f4abef56cc13f42fb6f8d8d1b","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":"  `POST /servers/{server_id}/action`"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"  specify the `os-migrateLive-cancel` action in the request body::"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    {"},{"line_number":80,"context_line":"      \"os-migrateLive-cancel\": null"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a016987_a8490562","line":77,"range":{"start_line":77,"start_character":18,"end_line":77,"end_character":29},"in_reply_to":"7a016987_137561ca","updated":"2015-05-20 20:22:04.000000000","message":"Done","commit_id":"f214c7a4fe2b4afbcbacf02fae27b98a5e894aec"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"9c84517e776da1500b00f0a27788d87f86b38865","unresolved":false,"context_lines":[{"line_number":84,"context_line":"  No response body is needed"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"  Expected error http response code: `409 Conflict` - instance is not currently"},{"line_number":87,"context_line":"  in task_state.MIGRATING"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"  Policy: This does not need a separate policy control. It can be called by"},{"line_number":90,"context_line":"  anyone who could have started the live migration, so can inherit that"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9af37de9_be09ce33","line":87,"updated":"2015-05-11 14:32:56.000000000","message":"What do we return if the virt driver doesn\u0027t support cancel?\n\nI think we have to have that concept here, sadly.","commit_id":"f214c7a4fe2b4afbcbacf02fae27b98a5e894aec"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"92a3c1753c7dc8fa61b1c90c24faf7bdca30f157","unresolved":false,"context_lines":[{"line_number":84,"context_line":"  No response body is needed"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"  Expected error http response code: `409 Conflict` - instance is not currently"},{"line_number":87,"context_line":"  in task_state.MIGRATING"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"  Policy: This does not need a separate policy control. It can be called by"},{"line_number":90,"context_line":"  anyone who could have started the live migration, so can inherit that"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9af37de9_944b8b59","line":87,"in_reply_to":"9af37de9_be09ce33","updated":"2015-05-11 15:09:32.000000000","message":"Done","commit_id":"f214c7a4fe2b4afbcbacf02fae27b98a5e894aec"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"9c84517e776da1500b00f0a27788d87f86b38865","unresolved":false,"context_lines":[{"line_number":89,"context_line":"  Policy: This does not need a separate policy control. It can be called by"},{"line_number":90,"context_line":"  anyone who could have started the live migration, so can inherit that"},{"line_number":91,"context_line":"  action\u0027s policy."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Security impact"},{"line_number":94,"context_line":"---------------"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9af37de9_9934e4de","line":92,"updated":"2015-05-11 14:32:56.000000000","message":"I do wonder if we can add it as experimental, with a view to removing it when we add the Task API.\n\nAlso I wonder if we can add enough of the task API just to support this operation. It should be easier now we have microversions.","commit_id":"f214c7a4fe2b4afbcbacf02fae27b98a5e894aec"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"92a3c1753c7dc8fa61b1c90c24faf7bdca30f157","unresolved":false,"context_lines":[{"line_number":89,"context_line":"  Policy: This does not need a separate policy control. It can be called by"},{"line_number":90,"context_line":"  anyone who could have started the live migration, so can inherit that"},{"line_number":91,"context_line":"  action\u0027s policy."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Security impact"},{"line_number":94,"context_line":"---------------"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9af37de9_d4f8f37e","line":92,"in_reply_to":"9af37de9_9934e4de","updated":"2015-05-11 15:09:32.000000000","message":"Experimental? I didn\u0027t think we really supported features in that way. Anyway, I\u0027d need more detail about the tasks API question because I\u0027m not familiar with the back story there.","commit_id":"f214c7a4fe2b4afbcbacf02fae27b98a5e894aec"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"c9f0fc432937471c3069eff6ad22e66e1d566c8a","unresolved":false,"context_lines":[{"line_number":98,"context_line":"Notifications impact"},{"line_number":99,"context_line":"--------------------"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"None"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Other end user impact"},{"line_number":104,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a0c5dc1_ba71f0e2","line":101,"updated":"2015-05-12 10:32:23.000000000","message":"should this be updated ? cancel live migration notification should be added?","commit_id":"f214c7a4fe2b4afbcbacf02fae27b98a5e894aec"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"9c84517e776da1500b00f0a27788d87f86b38865","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"* API microversion increment"},{"line_number":137,"context_line":"* Implementation in compute manager."},{"line_number":138,"context_line":"* Implementation in each virt driver."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Dependencies"},{"line_number":141,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9af37de9_b9ac48ee","line":138,"updated":"2015-05-11 14:32:56.000000000","message":"Really, you are committing to implement this in every virt driver.","commit_id":"f214c7a4fe2b4afbcbacf02fae27b98a5e894aec"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"92a3c1753c7dc8fa61b1c90c24faf7bdca30f157","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"* API microversion increment"},{"line_number":137,"context_line":"* Implementation in compute manager."},{"line_number":138,"context_line":"* Implementation in each virt driver."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Dependencies"},{"line_number":141,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9af37de9_74f9474d","line":138,"in_reply_to":"9af37de9_b9ac48ee","updated":"2015-05-11 15:09:32.000000000","message":"It must be possible to indicate a \"not implemented\" response. Not every hypervisor will even make this possible.\n\nWould it be better to have \"Implementation in libvirt driver\" and \"other drivers as/when possible\" as separate items?","commit_id":"f214c7a4fe2b4afbcbacf02fae27b98a5e894aec"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"9c84517e776da1500b00f0a27788d87f86b38865","unresolved":false,"context_lines":[{"line_number":154,"context_line":"  quickly, so it may be necessary to use a fake virt driver to simulate a live"},{"line_number":155,"context_line":"  migration slow enough that cancelling it reliably is possible. Ideally we"},{"line_number":156,"context_line":"  would use a live migration which never completes.  If this is not feasible in"},{"line_number":157,"context_line":"  tempest then we are limited to in-tree unit and functional tests in Nova."},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"Documentation Impact"},{"line_number":160,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9af37de9_19ca34a2","line":157,"updated":"2015-05-11 14:32:56.000000000","message":"This is hard to test, I would like us to come up with a concrete test strategy here?\n\nIs it worth adding an API that adds a delay into the process just for testing? Maybe?","commit_id":"f214c7a4fe2b4afbcbacf02fae27b98a5e894aec"},{"author":{"_account_id":9420,"name":"Matthew Gilliard","email":"matthew.gilliard@hp.com","username":"gilliard"},"change_message_id":"92a3c1753c7dc8fa61b1c90c24faf7bdca30f157","unresolved":false,"context_lines":[{"line_number":154,"context_line":"  quickly, so it may be necessary to use a fake virt driver to simulate a live"},{"line_number":155,"context_line":"  migration slow enough that cancelling it reliably is possible. Ideally we"},{"line_number":156,"context_line":"  would use a live migration which never completes.  If this is not feasible in"},{"line_number":157,"context_line":"  tempest then we are limited to in-tree unit and functional tests in Nova."},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"Documentation Impact"},{"line_number":160,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9af37de9_2f048a13","line":157,"in_reply_to":"9af37de9_19ca34a2","updated":"2015-05-11 15:09:32.000000000","message":"I really prefer the idea of writing a fake virt driver to test this thoroughly, and I\u0027m happy to work on it. It would be a great help in other live migration tests too. However, I don\u0027t know the mechanics of devstack/tempest well enough to know how feasible it is. I will clear this up with the QA teams at the summit - Live Migration _needs_ more robust testing, IMO.","commit_id":"f214c7a4fe2b4afbcbacf02fae27b98a5e894aec"}],"specs/mitaka/approved/refresh-abort-live-migration.rst":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"051c301ec8f88233081f05171e6cb6d54abeb8d8","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            \"source_compute\" : ..."},{"line_number":95,"context_line":"            \"dest_compute\" : ..."},{"line_number":96,"context_line":"            \"status\" : ..."},{"line_number":97,"context_line":"            \"type\" : ...      # \"live-migration\" or \"migration\""},{"line_number":98,"context_line":"          },"},{"line_number":99,"context_line":"          ..."},{"line_number":100,"context_line":"        ]"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a1a9d01_8290ce44","line":97,"updated":"2015-09-28 17:28:28.000000000","message":"We don\u0027t expose type now currently. Maybe you realize that, but the above looks like it\u0027s showing the current state of things. I had a patch up to add that but it was blocked on a few other things. I\u0027m very keen to have you just add exposing type as part of your microversion for this instead of doing two.\n\nhttps://github.com/openstack/nova/blob/master/nova/api/openstack/compute/migrations.py#L37","commit_id":"86b26bcbeaf607b128a1f4d3591b2079af863b06"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"051c301ec8f88233081f05171e6cb6d54abeb8d8","unresolved":false,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":"* Fetch details of an individual live migration"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"  `GET /os-migrations/{id}`"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"  This returns as much detail as is available about a live migration, for"},{"line_number":111,"context_line":"  example::"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a1a9d01_824bee86","line":108,"updated":"2015-09-28 17:28:28.000000000","message":"The id is a DB integer right now, which lives at the cell level, right? That means you won\u0027t be able to honor this in a cellsv2 world. You probably need a uuid for migrations, which means a data model change.\n\nAlso or alternately, it would be very helpful if you scoped calls like this to the instance to avoid needing to index migration ids at the API layer for cellsv2. So something like:\n\n GET /os-migrations/{instance_uuid}/{id}","commit_id":"86b26bcbeaf607b128a1f4d3591b2079af863b06"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"051c301ec8f88233081f05171e6cb6d54abeb8d8","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    {"},{"line_number":114,"context_line":"      \"id\" : ..."},{"line_number":115,"context_line":"      \"start\" : ...            # iso8601 formatted date/time"},{"line_number":116,"context_line":"      \"instance-uuid\" : ..."},{"line_number":117,"context_line":"      \"source_compute\" : ..."},{"line_number":118,"context_line":"      \"dest_compute\" : ..."}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a1a9d01_42e9567f","line":115,"updated":"2015-09-28 17:28:28.000000000","message":"Are you going to get this as part of the created_at of the migration record? If the hypervisor or compute is throttling a storm of migrations (as nova-compute can now do), this will be wildly inaccurate.","commit_id":"86b26bcbeaf607b128a1f4d3591b2079af863b06"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"051c301ec8f88233081f05171e6cb6d54abeb8d8","unresolved":false,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"* Stop an in-progress live migration"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"  `DELETE /os-migrations/{id}`"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"  No request body is necessary"},{"line_number":135,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a1a9d01_a2e152d2","line":132,"updated":"2015-09-28 17:28:28.000000000","message":"I\u0027m not sure this is the right thing to do. Migration records currently don\u0027t go away, nor should they after such a call, IMHO. I\u0027ll defer to some REST/API expert as to whether DELETE is the right thing to do when we expect to just cancel a migration.","commit_id":"86b26bcbeaf607b128a1f4d3591b2079af863b06"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"00354b330ed50f445e194b24eb97679038880f67","unresolved":false,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"* Stop an in-progress live migration"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"  `DELETE /os-migrations/{id}`"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"  No request body is necessary"},{"line_number":135,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a1a9d01_4f1fa8b7","line":132,"in_reply_to":"9a1a9d01_a2e152d2","updated":"2015-10-01 16:28:44.000000000","message":"Done","commit_id":"86b26bcbeaf607b128a1f4d3591b2079af863b06"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"051c301ec8f88233081f05171e6cb6d54abeb8d8","unresolved":false,"context_lines":[{"line_number":137,"context_line":"  No response body is needed"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"  Expected error http response code: `404 Not Found`"},{"line_number":140,"context_line":"  - the migration does not exist, perhaps it has finished"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"  Expected error http response code: `405 Method not supported`"},{"line_number":143,"context_line":"  - it is not possible to even attempt to cancel the live migration. Likely to"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a1a9d01_02fa7e75","line":140,"updated":"2015-09-28 17:28:28.000000000","message":"The migration always exists once created, so 404 should never be returned unless it is purged from the DB, AFAIK.","commit_id":"86b26bcbeaf607b128a1f4d3591b2079af863b06"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"00354b330ed50f445e194b24eb97679038880f67","unresolved":false,"context_lines":[{"line_number":137,"context_line":"  No response body is needed"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"  Expected error http response code: `404 Not Found`"},{"line_number":140,"context_line":"  - the migration does not exist, perhaps it has finished"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"  Expected error http response code: `405 Method not supported`"},{"line_number":143,"context_line":"  - it is not possible to even attempt to cancel the live migration. Likely to"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a1a9d01_af9f644f","line":140,"in_reply_to":"9a1a9d01_02fa7e75","updated":"2015-10-01 16:28:44.000000000","message":"but operators may clear down db","commit_id":"86b26bcbeaf607b128a1f4d3591b2079af863b06"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"051c301ec8f88233081f05171e6cb6d54abeb8d8","unresolved":false,"context_lines":[{"line_number":141,"context_line":""},{"line_number":142,"context_line":"  Expected error http response code: `405 Method not supported`"},{"line_number":143,"context_line":"  - it is not possible to even attempt to cancel the live migration. Likely to"},{"line_number":144,"context_line":"  be because the hypervisor does not support cancellation of live migrations."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Policy: This does not need a separate policy control. It can be called by"},{"line_number":147,"context_line":"anyone who could have started the live migration, so can inherit that action\u0027s"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a1a9d01_e2450ab3","line":144,"updated":"2015-09-28 17:28:28.000000000","message":"So this will be a blocking RPC call to the compute node to initiate the cancel and/or report back that it\u0027s not possible?","commit_id":"86b26bcbeaf607b128a1f4d3591b2079af863b06"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"00354b330ed50f445e194b24eb97679038880f67","unresolved":false,"context_lines":[{"line_number":141,"context_line":""},{"line_number":142,"context_line":"  Expected error http response code: `405 Method not supported`"},{"line_number":143,"context_line":"  - it is not possible to even attempt to cancel the live migration. Likely to"},{"line_number":144,"context_line":"  be because the hypervisor does not support cancellation of live migrations."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Policy: This does not need a separate policy control. It can be called by"},{"line_number":147,"context_line":"anyone who could have started the live migration, so can inherit that action\u0027s"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a1a9d01_cf6c18d3","line":144,"in_reply_to":"9a1a9d01_e2450ab3","updated":"2015-10-01 16:28:44.000000000","message":"Yes, shouldn\u0027t be too long a wait since roll back should be pretty quick.  If it took too long a timeout would occur","commit_id":"86b26bcbeaf607b128a1f4d3591b2079af863b06"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"051c301ec8f88233081f05171e6cb6d54abeb8d8","unresolved":false,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Policy: This does not need a separate policy control. It can be called by"},{"line_number":147,"context_line":"anyone who could have started the live migration, so can inherit that action\u0027s"},{"line_number":148,"context_line":"policy."},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"Security impact"},{"line_number":151,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a1a9d01_02283ee1","line":148,"updated":"2015-09-28 17:28:28.000000000","message":"Is that really desirable? I can see ops wanting to delegate migration abilities to a script, but require a human to decide to cancel one.","commit_id":"86b26bcbeaf607b128a1f4d3591b2079af863b06"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"00354b330ed50f445e194b24eb97679038880f67","unresolved":false,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Policy: This does not need a separate policy control. It can be called by"},{"line_number":147,"context_line":"anyone who could have started the live migration, so can inherit that action\u0027s"},{"line_number":148,"context_line":"policy."},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"Security impact"},{"line_number":151,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a1a9d01_947635d7","line":148,"in_reply_to":"9a1a9d01_02283ee1","updated":"2015-10-01 16:28:44.000000000","message":"Not sure I agree, given data indicating that the migration is not progressing a script may decide to cancel it and move on to the next instance to be migrated.  Cancellation has no impact on the instance so is not a destructive action","commit_id":"86b26bcbeaf607b128a1f4d3591b2079af863b06"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"051c301ec8f88233081f05171e6cb6d54abeb8d8","unresolved":false,"context_lines":[{"line_number":155,"context_line":"Notifications impact"},{"line_number":156,"context_line":"--------------------"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"None"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"Other end user impact"},{"line_number":161,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a1a9d01_a264f248","line":158,"updated":"2015-09-28 17:28:28.000000000","message":"Surely you want to emit a notification that a migration has been canceled, separate from the eventual completion, right?","commit_id":"86b26bcbeaf607b128a1f4d3591b2079af863b06"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"00354b330ed50f445e194b24eb97679038880f67","unresolved":false,"context_lines":[{"line_number":155,"context_line":"Notifications impact"},{"line_number":156,"context_line":"--------------------"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"None"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"Other end user impact"},{"line_number":161,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a1a9d01_34f2c970","line":158,"in_reply_to":"9a1a9d01_a264f248","updated":"2015-10-01 16:28:44.000000000","message":"incorporated in https://review.openstack.org/#/c/228828/","commit_id":"86b26bcbeaf607b128a1f4d3591b2079af863b06"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"051c301ec8f88233081f05171e6cb6d54abeb8d8","unresolved":false,"context_lines":[{"line_number":166,"context_line":"------------------"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"Rolling back a live migration should be very quick, as the source host is still"},{"line_number":169,"context_line":"active until the migration finishes."},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"Other deployer impact"},{"line_number":172,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a1a9d01_026fde2b","line":169,"updated":"2015-09-28 17:28:28.000000000","message":"I don\u0027t think you can say this in a general sense. If KVM implements the proposed precopy mechanism, then rolling back may be as intense as a live migration.","commit_id":"86b26bcbeaf607b128a1f4d3591b2079af863b06"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"00354b330ed50f445e194b24eb97679038880f67","unresolved":false,"context_lines":[{"line_number":166,"context_line":"------------------"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"Rolling back a live migration should be very quick, as the source host is still"},{"line_number":169,"context_line":"active until the migration finishes."},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"Other deployer impact"},{"line_number":172,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9a1a9d01_b4fed936","line":169,"in_reply_to":"9a1a9d01_026fde2b","updated":"2015-10-01 16:28:44.000000000","message":"incorporated in https://review.openstack.org/#/c/228828/","commit_id":"86b26bcbeaf607b128a1f4d3591b2079af863b06"}]}
