)]}'
{"api-ref/source/server-migrations.inc":[{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"fffa4b13a30ab32228e4c091249d8e0e0df33fc9","unresolved":false,"context_lines":[{"line_number":193,"context_line":""},{"line_number":194,"context_line":"The server OS-EXT-STS:task_state value must be ``migrating``."},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"If the server is locked, you must have administrator privileges to force the"},{"line_number":197,"context_line":"completion of the server migration."},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"The migration status must be ``running``."},{"line_number":200,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":1,"id":"7a77a97e_dfc5de5b","line":197,"range":{"start_line":196,"start_character":0,"end_line":197,"end_character":35},"updated":"2016-11-15 09:10:41.000000000","message":"isn\u0027t it an admin action in any case?","commit_id":"dc090e23d45ba864abe19d23eaebeea91342ede8"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"dfd4e885bb16e35fcd385b9d150a018985fabe00","unresolved":false,"context_lines":[{"line_number":193,"context_line":""},{"line_number":194,"context_line":"The server OS-EXT-STS:task_state value must be ``migrating``."},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"If the server is locked, you must have administrator privileges to force the"},{"line_number":197,"context_line":"completion of the server migration."},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"The migration status must be ``running``."},{"line_number":200,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":1,"id":"7a77a97e_e6fcbf40","line":197,"range":{"start_line":196,"start_character":0,"end_line":197,"end_character":35},"in_reply_to":"7a77a97e_dfc5de5b","updated":"2016-11-15 16:16:56.000000000","message":"it is but as noted above the cloud operator can change the policy file to allow this operation to be performed by non admin users.  If the server is locked then you can only perform operations on it if you are an admin user so in this context this note makes sense although could be re-worded to make it clear that this is only an issue if the cloud operator allows non admin users to abort live migrations","commit_id":"dc090e23d45ba864abe19d23eaebeea91342ede8"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"dfd4e885bb16e35fcd385b9d150a018985fabe00","unresolved":false,"context_lines":[{"line_number":196,"context_line":"If the server is locked, you must have administrator privileges to force the"},{"line_number":197,"context_line":"completion of the server migration."},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"The migration status must be ``running``."},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"**Asynchronous Postconditions**"},{"line_number":202,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":1,"id":"7a77a97e_4bbf3bfb","line":199,"updated":"2016-11-15 16:16:56.000000000","message":"I believe abort is prohibited if a migration has switched to post copy mode, i.e. if migration status is \u0027running (post-copy)\u0027","commit_id":"dc090e23d45ba864abe19d23eaebeea91342ede8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f6721c5947174c724f596bc60c4b14f667f6a2dd","unresolved":false,"context_lines":[{"line_number":196,"context_line":"If the server is locked, you must have administrator privileges to force the"},{"line_number":197,"context_line":"completion of the server migration."},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"The migration status must be ``running``."},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"**Asynchronous Postconditions**"},{"line_number":202,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":1,"id":"7a77a97e_2ea12d95","line":199,"in_reply_to":"7a77a97e_4bbf3bfb","updated":"2016-11-15 16:37:41.000000000","message":"This is based on this code specifically in the compute API:\n\nhttps://github.com/openstack/nova/blob/925dc7aa128d060e0d0f9275a3b1fcdc98eecbf3/nova/compute/api.py#L3771\n\nBefore we cast off to the compute. The post-copy part is a libvirt-specific detail that we shouldn\u0027t surface in the API reference.","commit_id":"dc090e23d45ba864abe19d23eaebeea91342ede8"},{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"dfd4e885bb16e35fcd385b9d150a018985fabe00","unresolved":false,"context_lines":[{"line_number":201,"context_line":"**Asynchronous Postconditions**"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"After you make this request, you typically must keep polling the server status"},{"line_number":204,"context_line":"to determine whether the request succeeded."},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"**Troubleshooting**"},{"line_number":207,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":1,"id":"7a77a97e_c8b0b1e0","line":204,"updated":"2016-11-15 16:16:56.000000000","message":"and/or doing s GET /servers/{server_id}/migrations/{migration_id} to determine status of migration","commit_id":"dc090e23d45ba864abe19d23eaebeea91342ede8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"16f5854bc3fb1a1c5d37c07136ca698a40e8527e","unresolved":false,"context_lines":[{"line_number":194,"context_line":"The server OS-EXT-STS:task_state value must be ``migrating``."},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"If the server is locked, you must have administrator privileges to force the"},{"line_number":197,"context_line":"completion of the server migration. Thus if permission is granted to non"},{"line_number":198,"context_line":"admin users to abort a live migration the operation will be rejected if the"},{"line_number":199,"context_line":"server is locked."},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"The migration status must be ``running``. Note that aborting a migration"},{"line_number":202,"context_line":"that is running in post-copy mode is not permitted so is if migration status"}],"source_content_type":"text/x-c++src","patch_set":2,"id":"7a77a97e_2ecf6d57","line":199,"range":{"start_line":197,"start_character":36,"end_line":199,"end_character":17},"updated":"2016-11-15 16:40:33.000000000","message":"This is unnecessary IMO. The wording before this is boilerplate in other server actions API refs. If the server is locked, you need admin privileges to perform an action on it, period.","commit_id":"f019f30ced0da42fa3c4be0bb5a2d688f64367d3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"16f5854bc3fb1a1c5d37c07136ca698a40e8527e","unresolved":false,"context_lines":[{"line_number":198,"context_line":"admin users to abort a live migration the operation will be rejected if the"},{"line_number":199,"context_line":"server is locked."},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"The migration status must be ``running``. Note that aborting a migration"},{"line_number":202,"context_line":"that is running in post-copy mode is not permitted so is if migration status"},{"line_number":203,"context_line":"is ``running (post-copy)`` then the operation will be rejected."},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"**Asynchronous Postconditions**"},{"line_number":206,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":2,"id":"7a77a97e_6ef08591","line":203,"range":{"start_line":201,"start_character":42,"end_line":203,"end_character":63},"updated":"2016-11-15 16:40:33.000000000","message":"As noted in PS1, the compute API is checking for migration.status \u003d\u003d \u0027running\u0027 only, the post-copy part is a libvirt-specific implementation detail that shouldn\u0027t be exposed in the API reference.","commit_id":"f019f30ced0da42fa3c4be0bb5a2d688f64367d3"},{"author":{"_account_id":15293,"name":"Karen Bradshaw","email":"kbhawkey@gmail.com","username":"karenb"},"change_message_id":"0f47f2ca5b0caa18db276bc05a3232be467b496b","unresolved":false,"context_lines":[{"line_number":133,"context_line":""},{"line_number":134,"context_line":"The server OS-EXT-STS:vm_state value must be ``active`` and the server"},{"line_number":135,"context_line":"OS-EXT-STS:task_state value must be ``migrating``."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"If the server is locked, you must have administrator privileges to force the"},{"line_number":138,"context_line":"completion of the server migration."},{"line_number":139,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":3,"id":"7a77a97e_72606336","line":136,"updated":"2016-11-15 19:28:40.000000000","message":"Again, minor pt: Emphasize the parameters/variables.","commit_id":"e65ed29864e2f3ad0a45845d993e8645e863d9ac"},{"author":{"_account_id":15293,"name":"Karen Bradshaw","email":"kbhawkey@gmail.com","username":"karenb"},"change_message_id":"0f47f2ca5b0caa18db276bc05a3232be467b496b","unresolved":false,"context_lines":[{"line_number":192,"context_line":"**Preconditions**"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"The server OS-EXT-STS:task_state value must be ``migrating``."},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"If the server is locked, you must have administrator privileges to force the"},{"line_number":197,"context_line":"completion of the server migration."},{"line_number":198,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":3,"id":"7a77a97e_324a6bc6","line":195,"updated":"2016-11-15 19:28:40.000000000","message":"minor pt:\nOS-EXT-STS:task_state is a parameter, bold or emphasize?","commit_id":"e65ed29864e2f3ad0a45845d993e8645e863d9ac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ea0d3d3eeee3ab46d91c3c9171b414cdeab89aa4","unresolved":false,"context_lines":[{"line_number":192,"context_line":"**Preconditions**"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"The server OS-EXT-STS:task_state value must be ``migrating``."},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"If the server is locked, you must have administrator privileges to force the"},{"line_number":197,"context_line":"completion of the server migration."},{"line_number":198,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":3,"id":"7a77a97e_0b8b51c4","line":195,"in_reply_to":"7a77a97e_324a6bc6","updated":"2016-11-16 14:33:38.000000000","message":"I don\u0027t know if that\u0027s helpful or not, we don\u0027t seem to do that anywhere else.","commit_id":"e65ed29864e2f3ad0a45845d993e8645e863d9ac"},{"author":{"_account_id":15293,"name":"Karen Bradshaw","email":"kbhawkey@gmail.com","username":"karenb"},"change_message_id":"0f47f2ca5b0caa18db276bc05a3232be467b496b","unresolved":false,"context_lines":[{"line_number":197,"context_line":"completion of the server migration."},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"The migration status must be ``running``."},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"**Asynchronous Postconditions**"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"After you make this request, you typically must keep polling the server status"}],"source_content_type":"text/x-c++src","patch_set":3,"id":"7a77a97e_32218bfc","line":200,"updated":"2016-11-15 19:28:40.000000000","message":"status is a parameter?","commit_id":"e65ed29864e2f3ad0a45845d993e8645e863d9ac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ea0d3d3eeee3ab46d91c3c9171b414cdeab89aa4","unresolved":false,"context_lines":[{"line_number":197,"context_line":"completion of the server migration."},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"The migration status must be ``running``."},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"**Asynchronous Postconditions**"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"After you make this request, you typically must keep polling the server status"}],"source_content_type":"text/x-c++src","patch_set":3,"id":"7a77a97e_0bb27194","line":200,"in_reply_to":"7a77a97e_32218bfc","updated":"2016-11-16 14:33:38.000000000","message":"status is an attribute on the server migration resource you can get back from querying the specific migration for a given server, i.e. GET /servers/{server_id}/migrations/{migration_id}","commit_id":"e65ed29864e2f3ad0a45845d993e8645e863d9ac"},{"author":{"_account_id":15293,"name":"Karen Bradshaw","email":"kbhawkey@gmail.com","username":"karenb"},"change_message_id":"0f47f2ca5b0caa18db276bc05a3232be467b496b","unresolved":false,"context_lines":[{"line_number":203,"context_line":"After you make this request, you typically must keep polling the server status"},{"line_number":204,"context_line":"to determine whether the request succeeded. You may also monitor the migration"},{"line_number":205,"context_line":"using GET /servers/{server_id}/migrations/{migration_id}."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"**Troubleshooting**"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"If the server task_state remains ``migrating`` for an inordinate amount of"}],"source_content_type":"text/x-c++src","patch_set":3,"id":"7a77a97e_126baf1f","line":206,"updated":"2016-11-15 19:28:40.000000000","message":"minor pt: You may want to put the GET call example in a code block?","commit_id":"e65ed29864e2f3ad0a45845d993e8645e863d9ac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ea0d3d3eeee3ab46d91c3c9171b414cdeab89aa4","unresolved":false,"context_lines":[{"line_number":203,"context_line":"After you make this request, you typically must keep polling the server status"},{"line_number":204,"context_line":"to determine whether the request succeeded. You may also monitor the migration"},{"line_number":205,"context_line":"using GET /servers/{server_id}/migrations/{migration_id}."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"**Troubleshooting**"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"If the server task_state remains ``migrating`` for an inordinate amount of"}],"source_content_type":"text/x-c++src","patch_set":3,"id":"7a77a97e_4b838998","line":206,"in_reply_to":"7a77a97e_126baf1f","updated":"2016-11-16 14:33:38.000000000","message":"Yeah I can do that.","commit_id":"e65ed29864e2f3ad0a45845d993e8645e863d9ac"},{"author":{"_account_id":15293,"name":"Karen Bradshaw","email":"kbhawkey@gmail.com","username":"karenb"},"change_message_id":"f13e8897ba195a063d71352312a61052532614f4","unresolved":false,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":".. rest_method:: POST /servers/{server_id}/migrations/{migration_id}/action"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"Force an in-progress live migration for a given server to complete."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"Specify the ``force_complete`` action in the request body."},{"line_number":122,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":4,"id":"7a77a97e_49e46e3a","line":119,"updated":"2016-11-16 15:49:17.000000000","message":"Just an fyi: There is an option in os-api-ref to tack on a bit of data to the rest_method directive about min_version/max_version. The info is not used yet in the published html, but could do in the future.\nI think the parameter is min_version: 2.23\nand would appear just below \u0026 under the rest_method.\n.. rest_method:: GET /tags\n   min_version: 2.17\n   max_version: 2.19","commit_id":"e975603b881d357853bb4c5288d30fcfce7ad751"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"be672ecaccad776c71e23580b6b1f83227c8ad3a","unresolved":false,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":".. rest_method:: POST /servers/{server_id}/migrations/{migration_id}/action"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"Force an in-progress live migration for a given server to complete."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"Specify the ``force_complete`` action in the request body."},{"line_number":122,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":4,"id":"7a77a97e_908bd067","line":119,"in_reply_to":"7a77a97e_49e46e3a","updated":"2016-11-17 15:27:29.000000000","message":"OK that would be nice, let me play with that a bit.","commit_id":"e975603b881d357853bb4c5288d30fcfce7ad751"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"28d04a68bb29f72273196a85910825626e760318","unresolved":false,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":".. rest_method:: POST /servers/{server_id}/migrations/{migration_id}/action"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"Force an in-progress live migration for a given server to complete."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"Specify the ``force_complete`` action in the request body."},{"line_number":122,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":4,"id":"5a74a57a_3022b5a3","line":119,"in_reply_to":"7a77a97e_7947ffbb","updated":"2016-11-29 09:22:16.000000000","message":"yes, just the UI of os-api-ref didn\u0027t support that yet. It will be great we have that metadata. Then after os-api-ref support that, we needn\u0027t add it again.","commit_id":"e975603b881d357853bb4c5288d30fcfce7ad751"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f4c2ad65aa4759dd96a6c4d968dbd5c301943540","unresolved":false,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":".. rest_method:: POST /servers/{server_id}/migrations/{migration_id}/action"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"Force an in-progress live migration for a given server to complete."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"Specify the ``force_complete`` action in the request body."},{"line_number":122,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":4,"id":"7a77a97e_7947ffbb","line":119,"in_reply_to":"7a77a97e_908bd067","updated":"2016-11-17 16:21:09.000000000","message":"I made this change but didn\u0027t see any difference in the page:\n\nuser@xubuntu:~/git/nova$ git diff\ndiff --git a/api-ref/source/server-migrations.inc b/api-ref/source/server-migrations.inc\nindex 476bf76..8d4ad5e 100644\n--- a/api-ref/source/server-migrations.inc\n+++ b/api-ref/source/server-migrations.inc\n@@ -177,6 +177,7 @@ Delete (Abort) Migration\n \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n \n .. rest_method:: DELETE /servers/{server_id}/migrations/{migration_id}\n+   min_version: 2.24\n \n Abort an in-progress live migration.\n \nuser@xubuntu:~/git/nova$","commit_id":"e975603b881d357853bb4c5288d30fcfce7ad751"}]}
