)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f4ab7c7c87404d862e84fc38b363f22152b028bc","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The spec is describing the operation of recue the volume-backed"},{"line_number":10,"context_line":"server."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I5a5466ee5b80f44ae96c4555843800ae93a08c5d"},{"line_number":13,"context_line":"Implements:blueprint volume-backed-server-rescue"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bf659307_12c6e79b","line":11,"updated":"2018-03-27 18:09:18.000000000","message":"Add the \"APIImpact\" tag to the commit message.","commit_id":"5d4f0d4f660c88b80fae9a4eeb403d6cb4477233"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4dd7aeb25316aa337a36703744b5e4d8f8acd9f4","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Support volume-backed server rescue"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The spec is describing the operation of recue the volume-backed"},{"line_number":10,"context_line":"server."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I5a5466ee5b80f44ae96c4555843800ae93a08c5d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3f79a3b5_fee67849","line":9,"range":{"start_line":9,"start_character":40,"end_line":9,"end_character":45},"updated":"2018-10-23 15:22:26.000000000","message":"rescue","commit_id":"874b5664c83ad8c9ebc10d8a56f2e22986d69177"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4dd7aeb25316aa337a36703744b5e4d8f8acd9f4","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The spec is describing the operation of recue the volume-backed"},{"line_number":10,"context_line":"server."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I5a5466ee5b80f44ae96c4555843800ae93a08c5d"},{"line_number":13,"context_line":"Implements:blueprint volume-backed-server-rescue"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3f79a3b5_bef000fe","line":11,"updated":"2018-10-23 15:22:26.000000000","message":"Add the APIImpact tag (as requested in PS4).","commit_id":"874b5664c83ad8c9ebc10d8a56f2e22986d69177"}],"specs/rocky/approved/volume-backed-server-rescue.rst":[{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"ed50a0adfe0c3c31a2c6454e2fefe7b99702d9e0","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Currently Nova rescue is only support instances which are booted from images."},{"line_number":21,"context_line":"The volume-backed instance cannot be rescue.Trying to create a volume-backed"},{"line_number":22,"context_line":"instance\u0027s rescue will raise a invalidrequest exception."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9f91af0f_0672b7ad","line":21,"range":{"start_line":21,"start_character":37,"end_line":21,"end_character":43},"updated":"2018-01-10 06:21:00.000000000","message":"rescued","commit_id":"6b44eb79c173132a0df007ed086c1c7bfc414449"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"ed50a0adfe0c3c31a2c6454e2fefe7b99702d9e0","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Currently Nova rescue is only support instances which are booted from images."},{"line_number":21,"context_line":"The volume-backed instance cannot be rescue.Trying to create a volume-backed"},{"line_number":22,"context_line":"instance\u0027s rescue will raise a invalidrequest exception."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Use Cases"},{"line_number":25,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9f91af0f_6662a3da","line":22,"range":{"start_line":22,"start_character":31,"end_line":22,"end_character":45},"updated":"2018-01-10 06:21:00.000000000","message":"InvalidRequest","commit_id":"6b44eb79c173132a0df007ed086c1c7bfc414449"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"ed50a0adfe0c3c31a2c6454e2fefe7b99702d9e0","unresolved":false,"context_lines":[{"line_number":24,"context_line":"Use Cases"},{"line_number":25,"context_line":"---------"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"When user delete system files need to rescue the volume backed server."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Proposed change"},{"line_number":30,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9f91af0f_865d6716","line":27,"range":{"start_line":27,"start_character":49,"end_line":27,"end_character":62},"updated":"2018-01-10 06:21:00.000000000","message":"volume-backed","commit_id":"6b44eb79c173132a0df007ed086c1c7bfc414449"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"ed50a0adfe0c3c31a2c6454e2fefe7b99702d9e0","unresolved":false,"context_lines":[{"line_number":53,"context_line":"REST API impact"},{"line_number":54,"context_line":"---------------"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Now nova rescue the volume backed instance as make it a fast failure"},{"line_number":57,"context_line":"in the API.If achieve this,we will change the rescue request \u0027s response "},{"line_number":58,"context_line":"code to 200."},{"line_number":59,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"9f91af0f_468aff69","line":56,"range":{"start_line":56,"start_character":20,"end_line":56,"end_character":33},"updated":"2018-01-10 06:21:00.000000000","message":"ditto","commit_id":"6b44eb79c173132a0df007ed086c1c7bfc414449"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"ed50a0adfe0c3c31a2c6454e2fefe7b99702d9e0","unresolved":false,"context_lines":[{"line_number":70,"context_line":"Other end user impact"},{"line_number":71,"context_line":"---------------------"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"User have to provide a available image which ths size is greater than 0 to "},{"line_number":74,"context_line":"rescue the volume backed server."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9f91af0f_86b24748","line":73,"range":{"start_line":73,"start_character":5,"end_line":73,"end_character":9},"updated":"2018-01-10 06:21:00.000000000","message":"has","commit_id":"6b44eb79c173132a0df007ed086c1c7bfc414449"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"ed50a0adfe0c3c31a2c6454e2fefe7b99702d9e0","unresolved":false,"context_lines":[{"line_number":71,"context_line":"---------------------"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"User have to provide a available image which ths size is greater than 0 to "},{"line_number":74,"context_line":"rescue the volume backed server."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Performance Impact"},{"line_number":77,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9f91af0f_2631fba3","line":74,"range":{"start_line":74,"start_character":11,"end_line":74,"end_character":24},"updated":"2018-01-10 06:21:00.000000000","message":"volume-backed","commit_id":"6b44eb79c173132a0df007ed086c1c7bfc414449"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"ed50a0adfe0c3c31a2c6454e2fefe7b99702d9e0","unresolved":false,"context_lines":[{"line_number":107,"context_line":"----------"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"* Change existing API and verify the rescue image"},{"line_number":110,"context_line":"* get original root volume information and put it to guest xml"},{"line_number":111,"context_line":"* Mount the before root volume and boot system"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"9f91af0f_c6f60fd8","line":110,"range":{"start_line":110,"start_character":2,"end_line":110,"end_character":5},"updated":"2018-01-10 06:21:00.000000000","message":"Get the","commit_id":"6b44eb79c173132a0df007ed086c1c7bfc414449"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"ed50a0adfe0c3c31a2c6454e2fefe7b99702d9e0","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"* Change existing API and verify the rescue image"},{"line_number":110,"context_line":"* get original root volume information and put it to guest xml"},{"line_number":111,"context_line":"* Mount the before root volume and boot system"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9f91af0f_a6fbcbbe","line":111,"range":{"start_line":111,"start_character":12,"end_line":111,"end_character":18},"updated":"2018-01-10 06:21:00.000000000","message":"previous","commit_id":"6b44eb79c173132a0df007ed086c1c7bfc414449"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"ed50a0adfe0c3c31a2c6454e2fefe7b99702d9e0","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"* Nova unit tests"},{"line_number":126,"context_line":"* Provide image which the size equal 0 to rescue"},{"line_number":127,"context_line":"* Rescue the volume backed server not provide password"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Documentation Impact"},{"line_number":130,"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":1,"id":"9f91af0f_06115704","line":127,"range":{"start_line":127,"start_character":13,"end_line":127,"end_character":26},"updated":"2018-01-10 06:21:00.000000000","message":"volume-backed","commit_id":"6b44eb79c173132a0df007ed086c1c7bfc414449"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"ed50a0adfe0c3c31a2c6454e2fefe7b99702d9e0","unresolved":false,"context_lines":[{"line_number":130,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"We will have to update the documentations to remind user provide a available"},{"line_number":133,"context_line":"image which ths size is greater than 0 to rescue the volume backed server."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"The following document is updated."},{"line_number":136,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"9f91af0f_46ef5f1d","line":133,"range":{"start_line":133,"start_character":12,"end_line":133,"end_character":15},"updated":"2018-01-10 06:21:00.000000000","message":"typo","commit_id":"6b44eb79c173132a0df007ed086c1c7bfc414449"},{"author":{"_account_id":27594,"name":"Jie Li","email":"lijie@unitedstack.com","username":"ramboman"},"change_message_id":"bc766551711fe9a91ce7dabaca9919243d6dc3a3","unresolved":false,"context_lines":[{"line_number":130,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"We will have to update the documentations to remind user provide a available"},{"line_number":133,"context_line":"image which ths size is greater than 0 to rescue the volume backed server."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"The following document is updated."},{"line_number":136,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"9f91af0f_492e9092","line":133,"range":{"start_line":133,"start_character":12,"end_line":133,"end_character":15},"in_reply_to":"9f91af0f_46ef5f1d","updated":"2018-01-10 07:13:51.000000000","message":"Thank you","commit_id":"6b44eb79c173132a0df007ed086c1c7bfc414449"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b017568dd2b71f2829a99fcb5af2fde13d9fefdf","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Currently Nova rescue is only support instances which are booted from images."},{"line_number":21,"context_line":"The volume-backed instance cannot be rescued.Trying to create a volume-backed"},{"line_number":22,"context_line":"instance\u0027s rescue will raise a InvalidRequest exception."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Use Cases"},{"line_number":25,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf659307_d2bf0ff9","line":22,"range":{"start_line":20,"start_character":0,"end_line":22,"end_character":56},"updated":"2018-03-27 18:20:26.000000000","message":"if you specify a rescue image as part of the nova recuse command can you work around this or will it still fail?\n\nif you set a rescue image you would actully boot form an image and wyou would just need to mount the volume as a disk.","commit_id":"5d4f0d4f660c88b80fae9a4eeb403d6cb4477233"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b017568dd2b71f2829a99fcb5af2fde13d9fefdf","unresolved":false,"context_lines":[{"line_number":24,"context_line":"Use Cases"},{"line_number":25,"context_line":"---------"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"When user delete system files need to rescue the volume-backed server."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Proposed change"},{"line_number":30,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf659307_f24fb331","line":27,"range":{"start_line":27,"start_character":0,"end_line":27,"end_character":70},"updated":"2018-03-27 18:20:26.000000000","message":"can you expand on this.\nthis is not a complete usecase.\nit could be read as \"you need to do this because the use delete the kernel or systemd so we need to rescue the instance\" but im not sure thats what you ment.","commit_id":"5d4f0d4f660c88b80fae9a4eeb403d6cb4477233"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f4ab7c7c87404d862e84fc38b363f22152b028bc","unresolved":false,"context_lines":[{"line_number":30,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Change existing API for rescue the volume-backed server firstly.Then verify"},{"line_number":33,"context_line":"the rescue_image if is provide and the size is greater than 0,otherwise,it"},{"line_number":34,"context_line":"returns 400 error.Then go through the original rescue the image-backed"},{"line_number":35,"context_line":"server \u0027s process.Until we get guest xml,we gain the block_device_info"},{"line_number":36,"context_line":"for the guest xml."}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf659307_d2914f9b","line":33,"range":{"start_line":33,"start_character":35,"end_line":33,"end_character":61},"updated":"2018-03-27 18:09:18.000000000","message":"What size? The size of the rescue image?","commit_id":"5d4f0d4f660c88b80fae9a4eeb403d6cb4477233"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b017568dd2b71f2829a99fcb5af2fde13d9fefdf","unresolved":false,"context_lines":[{"line_number":29,"context_line":"Proposed change"},{"line_number":30,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Change existing API for rescue the volume-backed server firstly.Then verify"},{"line_number":33,"context_line":"the rescue_image if is provide and the size is greater than 0,otherwise,it"},{"line_number":34,"context_line":"returns 400 error.Then go through the original rescue the image-backed"},{"line_number":35,"context_line":"server \u0027s process.Until we get guest xml,we gain the block_device_info"},{"line_number":36,"context_line":"for the guest xml."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"A new method \u0027_get_volume_config_rescue\u0027 is added to the virt driver."},{"line_number":39,"context_line":"The method is to get original root volume information.Then put the original"},{"line_number":40,"context_line":"information to guest xml.Now go through the image-backed server \u0027s rescue"},{"line_number":41,"context_line":"process until finish rescue."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Alternatives"},{"line_number":44,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf659307_928af718","line":41,"range":{"start_line":32,"start_character":0,"end_line":41,"end_character":28},"updated":"2018-03-27 18:20:26.000000000","message":"Draft\n7:17 PM\n\nam how can you rescue the server first before any of the verification of the user input?\n\ni think you wanted to say something like this.\n\nWhen rescuing a volume-backed server first verify a rescue_image has been provided and the image is not empty.\nnext retrive the volume info for the root disk and subsituet with the rescue image. next attach the root volume as an addtional driver an contiue teh normal image-backed server rescue process.\n\nTo enable this workflow A new method \u0027_get_volume_config_rescue\u0027 will be added to the virt driver.\nThe method will provided the original root volume information.","commit_id":"5d4f0d4f660c88b80fae9a4eeb403d6cb4477233"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f4ab7c7c87404d862e84fc38b363f22152b028bc","unresolved":false,"context_lines":[{"line_number":53,"context_line":"REST API impact"},{"line_number":54,"context_line":"---------------"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Now nova rescue the volume-backed instance as make it a fast failure"},{"line_number":57,"context_line":"in the API.If achieve this,we will change the rescue request \u0027s response"},{"line_number":58,"context_line":"code to 200."},{"line_number":59,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf659307_7281634a","line":56,"updated":"2018-03-27 18:09:18.000000000","message":"This would require a compute REST API microversion bump along with changing the compute RPC API version to indicate which compute services support the level of code to handle this, along with probably a compute driver capability flag for which compute drivers support this.","commit_id":"5d4f0d4f660c88b80fae9a4eeb403d6cb4477233"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f4ab7c7c87404d862e84fc38b363f22152b028bc","unresolved":false,"context_lines":[{"line_number":70,"context_line":"Other end user impact"},{"line_number":71,"context_line":"---------------------"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"User has to provide a available image which ths size is greater than 0 to"},{"line_number":74,"context_line":"rescue the volume-backed server."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Performance Impact"},{"line_number":77,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf659307_d2e62f45","line":74,"range":{"start_line":73,"start_character":0,"end_line":74,"end_character":32},"updated":"2018-03-27 18:09:18.000000000","message":"What does the image size have to do with this? Please explain in the proposed change section above.","commit_id":"5d4f0d4f660c88b80fae9a4eeb403d6cb4477233"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b017568dd2b71f2829a99fcb5af2fde13d9fefdf","unresolved":false,"context_lines":[{"line_number":70,"context_line":"Other end user impact"},{"line_number":71,"context_line":"---------------------"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"User has to provide a available image which ths size is greater than 0 to"},{"line_number":74,"context_line":"rescue the volume-backed server."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Performance Impact"},{"line_number":77,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf659307_72872311","line":74,"range":{"start_line":73,"start_character":0,"end_line":74,"end_character":32},"updated":"2018-03-27 18:20:26.000000000","message":"tecnically this should also work if the user does not provide an image but the recuse image is set in the compute node libvirt section in the nova.conf.\n\nthat said we cant know if that is set at the api level so i guess we could restrict this to requre the user to specify the image always for boot form volume guests.","commit_id":"5d4f0d4f660c88b80fae9a4eeb403d6cb4477233"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f4ab7c7c87404d862e84fc38b363f22152b028bc","unresolved":false,"context_lines":[{"line_number":140,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"* This is the patch about rescue:"},{"line_number":143,"context_line":"  https://review.openstack.org/#/c/531524/"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"* This is the blueprint about rescue:"},{"line_number":146,"context_line":"  https://blueprints.launchpad.net/nova/+spec/volume-backed-server-rescue"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf659307_72cf23b0","line":143,"updated":"2018-03-27 18:09:18.000000000","message":"This is linked in launchpad so you don\u0027t need to link it into the spec.","commit_id":"5d4f0d4f660c88b80fae9a4eeb403d6cb4477233"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f4ab7c7c87404d862e84fc38b363f22152b028bc","unresolved":false,"context_lines":[{"line_number":142,"context_line":"* This is the patch about rescue:"},{"line_number":143,"context_line":"  https://review.openstack.org/#/c/531524/"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"* This is the blueprint about rescue:"},{"line_number":146,"context_line":"  https://blueprints.launchpad.net/nova/+spec/volume-backed-server-rescue"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"History"},{"line_number":149,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf659307_b2d5bb45","line":146,"range":{"start_line":145,"start_character":0,"end_line":146,"end_character":73},"updated":"2018-03-27 18:09:18.000000000","message":"This is linked at the top of the spec so you can remove it.","commit_id":"5d4f0d4f660c88b80fae9a4eeb403d6cb4477233"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4dd7aeb25316aa337a36703744b5e4d8f8acd9f4","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Currently Nova rescue is only supports instances which are booted from images."},{"line_number":21,"context_line":"The volume-backed instance cannot be rescued when a new image is supplied or"},{"line_number":22,"context_line":"not. Trying to rescue a volume-backed instance will raise a HTTPBadRequest"},{"line_number":23,"context_line":"exception."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_fe02f8b8","line":20,"range":{"start_line":20,"start_character":22,"end_line":20,"end_character":24},"updated":"2018-10-23 15:22:26.000000000","message":"Remove \"is\".","commit_id":"874b5664c83ad8c9ebc10d8a56f2e22986d69177"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4dd7aeb25316aa337a36703744b5e4d8f8acd9f4","unresolved":false,"context_lines":[{"line_number":21,"context_line":"The volume-backed instance cannot be rescued when a new image is supplied or"},{"line_number":22,"context_line":"not. Trying to rescue a volume-backed instance will raise a HTTPBadRequest"},{"line_number":23,"context_line":"exception."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Use Cases"},{"line_number":26,"context_line":"---------"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_9e22e453","line":24,"updated":"2018-10-23 15:22:26.000000000","message":"It would be nice to explain *why* it\u0027s not supported today. Are there limitations in the compute service for that scenario?","commit_id":"874b5664c83ad8c9ebc10d8a56f2e22986d69177"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4dd7aeb25316aa337a36703744b5e4d8f8acd9f4","unresolved":false,"context_lines":[{"line_number":25,"context_line":"Use Cases"},{"line_number":26,"context_line":"---------"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"When user delete the kernel or systemd so we need to rescue the instance."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Proposed change"},{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_beb5607f","line":28,"range":{"start_line":28,"start_character":0,"end_line":28,"end_character":73},"updated":"2018-10-23 15:22:26.000000000","message":"This isn\u0027t very clear to me. I mean, in general this is just a feature parity use case for the API, which is probably good enough.","commit_id":"874b5664c83ad8c9ebc10d8a56f2e22986d69177"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4dd7aeb25316aa337a36703744b5e4d8f8acd9f4","unresolved":false,"context_lines":[{"line_number":30,"context_line":"Proposed change"},{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Change existing API for rescue the volume-backed server firstly. Then verify"},{"line_number":34,"context_line":"the rescue_image if has been provided and the rescue image\u0027s size is greater"},{"line_number":35,"context_line":"than 0, otherwise, it will returns 400 error. Next retrive the volume info"},{"line_number":36,"context_line":"for the root disk and subsituet with the rescue image. Then attach the root"},{"line_number":37,"context_line":"volume as an addtional driver an contiue teh normal image-backed server rescue"},{"line_number":38,"context_line":"process."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_fe2e78a8","line":35,"range":{"start_line":33,"start_character":65,"end_line":35,"end_character":45},"updated":"2018-10-23 15:22:26.000000000","message":"Why does the API need to check the rescue image size?\n\nAlternatively, would simply calling the _check_requested_image() method work?","commit_id":"874b5664c83ad8c9ebc10d8a56f2e22986d69177"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4dd7aeb25316aa337a36703744b5e4d8f8acd9f4","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Change existing API for rescue the volume-backed server firstly. Then verify"},{"line_number":34,"context_line":"the rescue_image if has been provided and the rescue image\u0027s size is greater"},{"line_number":35,"context_line":"than 0, otherwise, it will returns 400 error. Next retrive the volume info"},{"line_number":36,"context_line":"for the root disk and subsituet with the rescue image. Then attach the root"},{"line_number":37,"context_line":"volume as an addtional driver an contiue teh normal image-backed server rescue"},{"line_number":38,"context_line":"process."},{"line_number":39,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_e4ffcafd","line":36,"range":{"start_line":35,"start_character":46,"end_line":36,"end_character":54},"updated":"2018-10-23 15:22:26.000000000","message":"I\u0027m not sure what you mean by substitute the root volume info with the rescue image. Do you mean update the \"volume_image_metadata\" information within the root volume in Cinder? Is that even possible? Or do you mean replace that in the instance.image_meta (or system_metadata) with the rescue image info?","commit_id":"874b5664c83ad8c9ebc10d8a56f2e22986d69177"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4dd7aeb25316aa337a36703744b5e4d8f8acd9f4","unresolved":false,"context_lines":[{"line_number":33,"context_line":"Change existing API for rescue the volume-backed server firstly. Then verify"},{"line_number":34,"context_line":"the rescue_image if has been provided and the rescue image\u0027s size is greater"},{"line_number":35,"context_line":"than 0, otherwise, it will returns 400 error. Next retrive the volume info"},{"line_number":36,"context_line":"for the root disk and subsituet with the rescue image. Then attach the root"},{"line_number":37,"context_line":"volume as an addtional driver an contiue teh normal image-backed server rescue"},{"line_number":38,"context_line":"process."},{"line_number":39,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_5e08cc2c","line":36,"range":{"start_line":36,"start_character":22,"end_line":36,"end_character":31},"updated":"2018-10-23 15:22:26.000000000","message":"substitute","commit_id":"874b5664c83ad8c9ebc10d8a56f2e22986d69177"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4dd7aeb25316aa337a36703744b5e4d8f8acd9f4","unresolved":false,"context_lines":[{"line_number":34,"context_line":"the rescue_image if has been provided and the rescue image\u0027s size is greater"},{"line_number":35,"context_line":"than 0, otherwise, it will returns 400 error. Next retrive the volume info"},{"line_number":36,"context_line":"for the root disk and subsituet with the rescue image. Then attach the root"},{"line_number":37,"context_line":"volume as an addtional driver an contiue teh normal image-backed server rescue"},{"line_number":38,"context_line":"process."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"To enable this workflow, a new method \u0027_get_volume_config_rescue\u0027 will be"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_84005601","line":37,"range":{"start_line":37,"start_character":13,"end_line":37,"end_character":22},"updated":"2018-10-23 15:22:26.000000000","message":"additional","commit_id":"874b5664c83ad8c9ebc10d8a56f2e22986d69177"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4dd7aeb25316aa337a36703744b5e4d8f8acd9f4","unresolved":false,"context_lines":[{"line_number":34,"context_line":"the rescue_image if has been provided and the rescue image\u0027s size is greater"},{"line_number":35,"context_line":"than 0, otherwise, it will returns 400 error. Next retrive the volume info"},{"line_number":36,"context_line":"for the root disk and subsituet with the rescue image. Then attach the root"},{"line_number":37,"context_line":"volume as an addtional driver an contiue teh normal image-backed server rescue"},{"line_number":38,"context_line":"process."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"To enable this workflow, a new method \u0027_get_volume_config_rescue\u0027 will be"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_640bba21","line":37,"range":{"start_line":37,"start_character":30,"end_line":37,"end_character":44},"updated":"2018-10-23 15:22:26.000000000","message":"and continue the","commit_id":"874b5664c83ad8c9ebc10d8a56f2e22986d69177"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4dd7aeb25316aa337a36703744b5e4d8f8acd9f4","unresolved":false,"context_lines":[{"line_number":34,"context_line":"the rescue_image if has been provided and the rescue image\u0027s size is greater"},{"line_number":35,"context_line":"than 0, otherwise, it will returns 400 error. Next retrive the volume info"},{"line_number":36,"context_line":"for the root disk and subsituet with the rescue image. Then attach the root"},{"line_number":37,"context_line":"volume as an addtional driver an contiue teh normal image-backed server rescue"},{"line_number":38,"context_line":"process."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"To enable this workflow, a new method \u0027_get_volume_config_rescue\u0027 will be"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_a4055211","line":37,"range":{"start_line":37,"start_character":23,"end_line":37,"end_character":29},"updated":"2018-10-23 15:22:26.000000000","message":"s/driver/disk/?","commit_id":"874b5664c83ad8c9ebc10d8a56f2e22986d69177"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4dd7aeb25316aa337a36703744b5e4d8f8acd9f4","unresolved":false,"context_lines":[{"line_number":35,"context_line":"than 0, otherwise, it will returns 400 error. Next retrive the volume info"},{"line_number":36,"context_line":"for the root disk and subsituet with the rescue image. Then attach the root"},{"line_number":37,"context_line":"volume as an addtional driver an contiue teh normal image-backed server rescue"},{"line_number":38,"context_line":"process."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"To enable this workflow, a new method \u0027_get_volume_config_rescue\u0027 will be"},{"line_number":41,"context_line":"added to the virt driver. The method will provide the original root volume"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_64341ae0","line":38,"updated":"2018-10-23 15:22:26.000000000","message":"So if I\u0027m understanding correctly, you want to swap out the image metadata in the root volume and attach the original root volume as a secondary bdm attachment where boot_index\u003e0? Does this happen in the API or the compute and what happens if something fails along the way - how do you plan on rolling back?","commit_id":"874b5664c83ad8c9ebc10d8a56f2e22986d69177"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4dd7aeb25316aa337a36703744b5e4d8f8acd9f4","unresolved":false,"context_lines":[{"line_number":44,"context_line":"Alternatives"},{"line_number":45,"context_line":"------------"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"None"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Data model impact"},{"line_number":50,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_44931ea5","line":47,"updated":"2018-10-23 15:22:26.000000000","message":"Could the detach/attach root volume spec be leveraged as a dependency for this rescue use case?\n\nhttps://review.openstack.org/#/c/600628/\n\nIf that spec is implemented to support detaching the root volume from a stopped instance, it seems it could be used with the rescue workflow. Something like this:\n\n1. stop the instance\n2. detach the root volume\n3. attach a new rescue image-backed root volume (you could even tag it to mention it\u0027s a rescue volume)\n4. attach the original root volume as a secondary volume attachment (you could even attach it with a tag to show it\u0027s the original root volume)\n5. rescue the instance\n6. unrescue the instance - for a volume-backed instance, we would then swap the root volume from the rescue image-backed volume to the secondary (original) boot volume","commit_id":"874b5664c83ad8c9ebc10d8a56f2e22986d69177"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4dd7aeb25316aa337a36703744b5e4d8f8acd9f4","unresolved":false,"context_lines":[{"line_number":55,"context_line":"---------------"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Change the rescue request\u0027s response code from 400 to 202."},{"line_number":58,"context_line":"The REST API and compute RPC versoins will also be incremented to"},{"line_number":59,"context_line":"indicate the new support and mention it only the libvirt driver"},{"line_number":60,"context_line":"support it."},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_e4e90a19","line":58,"range":{"start_line":58,"start_character":29,"end_line":58,"end_character":37},"updated":"2018-10-23 15:22:26.000000000","message":"versions","commit_id":"874b5664c83ad8c9ebc10d8a56f2e22986d69177"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4dd7aeb25316aa337a36703744b5e4d8f8acd9f4","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Change the rescue request\u0027s response code from 400 to 202."},{"line_number":58,"context_line":"The REST API and compute RPC versoins will also be incremented to"},{"line_number":59,"context_line":"indicate the new support and mention it only the libvirt driver"},{"line_number":60,"context_line":"support it."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_a4ef921a","line":59,"range":{"start_line":59,"start_character":37,"end_line":59,"end_character":39},"updated":"2018-10-23 15:22:26.000000000","message":"that","commit_id":"874b5664c83ad8c9ebc10d8a56f2e22986d69177"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4dd7aeb25316aa337a36703744b5e4d8f8acd9f4","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Change the rescue request\u0027s response code from 400 to 202."},{"line_number":58,"context_line":"The REST API and compute RPC versoins will also be incremented to"},{"line_number":59,"context_line":"indicate the new support and mention it only the libvirt driver"},{"line_number":60,"context_line":"support it."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Security impact"},{"line_number":63,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_044c463e","line":60,"range":{"start_line":59,"start_character":49,"end_line":60,"end_character":11},"updated":"2018-10-23 15:22:26.000000000","message":"Why would this be restricted to the libvirt driver? It looks except for the powervm driver, all of the other in-tree drivers support rescue operations. Also, if it were orchestrated generically using the detach/attach root volume flow I described above, it should be totally virt driver agnostic.","commit_id":"874b5664c83ad8c9ebc10d8a56f2e22986d69177"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4dd7aeb25316aa337a36703744b5e4d8f8acd9f4","unresolved":false,"context_lines":[{"line_number":72,"context_line":"Other end user impact"},{"line_number":73,"context_line":"---------------------"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"User has to provide a available image which the image always for"},{"line_number":76,"context_line":"volume backed server to rescue the volume-backed server."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Performance Impact"},{"line_number":79,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_04fa06ba","line":76,"range":{"start_line":75,"start_character":0,"end_line":76,"end_character":56},"updated":"2018-10-23 15:22:26.000000000","message":"This is confusing and should be re-worded. I think you\u0027re just saying that a rescue image, which is normally optional, would always have to be provided to rescue a volume-backed server, but why?","commit_id":"874b5664c83ad8c9ebc10d8a56f2e22986d69177"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4dd7aeb25316aa337a36703744b5e4d8f8acd9f4","unresolved":false,"context_lines":[{"line_number":93,"context_line":"Upgrade impact"},{"line_number":94,"context_line":"--------------"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"None"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_641ada18","line":96,"updated":"2018-10-23 15:22:26.000000000","message":"The API would have to check the nova-compute service version for service hosting the instance to see if it is new enough to perform a volume-backed rescue and fail with a 409 response if the compute service version is too old.","commit_id":"874b5664c83ad8c9ebc10d8a56f2e22986d69177"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4dd7aeb25316aa337a36703744b5e4d8f8acd9f4","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"   * - Release Name"},{"line_number":153,"context_line":"     - Description"},{"line_number":154,"context_line":"   * - Rocky"},{"line_number":155,"context_line":"     - Introduced"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_04e8c6dd","line":155,"range":{"start_line":154,"start_character":3,"end_line":155,"end_character":17},"updated":"2018-10-23 15:22:26.000000000","message":"The spec needs to be updated for stein and moved to the specs/stein/approved directory.","commit_id":"874b5664c83ad8c9ebc10d8a56f2e22986d69177"}]}
