)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"fd11700a594bcc451ea9d870bf53d0dd11430f1b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"78129a15_7787ad38","updated":"2021-11-04 12:14:07.000000000","message":"I wasn\u0027t part of the original spec review so apologies but I\u0027ve got a few questions.\n\nAlso we don\u0027t move previously approved specs around like this within the tree. Instead can you please reinstate the original copy and have this new version treated as a fresh copy of the spec for review with your changes documented in the commit message.","commit_id":"a38eed5675b07557470b382e6af960cb8d163881"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"72f7f789db7282168c5c4fc8907ad62c63237fff","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"93103781_a18106ea","in_reply_to":"78129a15_7787ad38","updated":"2021-11-08 07:02:04.000000000","message":"Thanks Lee for the review.\nI\u0027ve reproposed the spec with the changes mentioned in commit message.","commit_id":"a38eed5675b07557470b382e6af960cb8d163881"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"79a8e1fb048b22c5f79f58d264dea6aa0a831f30","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"d28f3b36_bdcec916","updated":"2021-11-11 08:11:53.000000000","message":"Thanks Lee, please find my replies inline. Just need confirmation on the reimage_volume flag and feedback on if the attachment_update should be done by cinder or nova.","commit_id":"99a8e5c4073b6ce7ade56b529dd8d171a34b7421"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"074b3f4088a2fd68fe7f3167d07c5f781d1215c2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"d4b57a31_d3196a00","updated":"2021-11-10 13:45:48.000000000","message":"Thanks Rajat, more comments and nits. I\u0027ll head over to the cinder spec now and also review that.","commit_id":"99a8e5c4073b6ce7ade56b529dd8d171a34b7421"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"9e7dc14273bb40ecc8265f22433ac294b9a80e6f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"19c6a7db_43fc152c","updated":"2021-11-11 09:45:16.000000000","message":"recheck","commit_id":"f685d069a6f3ddb7a5099117f2973bf586eccaf0"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c8b1053bb8f93665b42292357a99fc6cd30affc4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"c87b7253_ef9aa0d2","updated":"2021-11-16 15:02:21.000000000","message":"I have a few nits but nothing I think we should hold this spec. @Rajat, please just provide a new follow-up change for discussing about my nits, if you want.","commit_id":"4f6898d155f9a4ee70e7ea6c5281e3656b40b1d0"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"aafbff3fad5e4971a1f8d597fac39e4097d42cc5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"4bf23dbe_66b7241a","updated":"2021-11-16 11:57:36.000000000","message":"OK PS6 fixed my comments so this looks good to me.","commit_id":"4f6898d155f9a4ee70e7ea6c5281e3656b40b1d0"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"1ef41b9c9152b8332e9a52712ef25d37f19170f6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"f5bb330f_88406aa3","updated":"2021-11-16 11:53:46.000000000","message":"Thanks for the reviews Lee and Gibi. Updated the spec.","commit_id":"4f6898d155f9a4ee70e7ea6c5281e3656b40b1d0"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"101acaff14de88ba7cb546adf19bef6e8223649d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"737ec011_edce7cf4","updated":"2021-11-17 11:39:29.000000000","message":"Some more nits and yes I\u0027m still standing on that hill about the connector.","commit_id":"d3fd71d0d2c78e3d666d312b83a8874d035a76eb"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"d820c80af53f27f17a5f3bd6d5efc7e5f7680264","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"6856de3c_91e45b79","updated":"2021-11-17 06:27:55.000000000","message":"Thanks Sylvian for the review. replies inline.","commit_id":"d3fd71d0d2c78e3d666d312b83a8874d035a76eb"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9959119f9293ff6e53c869942da49756b9b7ad33","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"5044aa0b_07d31cf9","updated":"2021-11-18 17:00:38.000000000","message":"It still looks good","commit_id":"e303111ec91e439dc6ac8fc177655d31ded3d36f"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"e3cf1564de0975011764dd585af5eb67e29ae4c0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"962a1069_046f209e","updated":"2021-11-18 11:56:19.000000000","message":"LGTM now, thanks for updating this and dropping the connector passing to the reimage API 😊","commit_id":"e303111ec91e439dc6ac8fc177655d31ded3d36f"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"54b702a256a8a30fe48cafb61e646598f63a324e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"305c87af_a3053d37","updated":"2021-11-18 15:28:18.000000000","message":"Marking review comments as resolved as patch looks incomplete on the gerrit interface.","commit_id":"e303111ec91e439dc6ac8fc177655d31ded3d36f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"620293f69aabaf43d9315b8147427b7110772bea","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"ea7470a2_00620b3d","updated":"2021-12-03 11:03:13.000000000","message":"Sorry for joining the review late","commit_id":"e303111ec91e439dc6ac8fc177655d31ded3d36f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"754975a61fe550da8330a18c96a0fe4d8e13297d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"c0a97878_40dfc1d1","updated":"2021-12-03 12:46:42.000000000","message":"Thanks Lee for schooling me. :-)\nThe spec looks good to me, and the nits are not important enough to submit a new patchset.","commit_id":"e303111ec91e439dc6ac8fc177655d31ded3d36f"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"867d70f494e0d04c5ddc0f75926b1de01bca9f1d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"6c98ddd8_4a96e116","updated":"2021-11-18 10:33:39.000000000","message":"Thanks Lee for the review.","commit_id":"e303111ec91e439dc6ac8fc177655d31ded3d36f"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"62e099f02202186d5a2c695e317c902ac2ef23e1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"12cf0fa6_b48eb22e","updated":"2021-12-22 03:19:55.000000000","message":"recheck cinder spec merged","commit_id":"e303111ec91e439dc6ac8fc177655d31ded3d36f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"0b89236e24c0ee9e9e537202d3358d05457bfe05","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"84545625_665bca21","updated":"2021-12-14 10:07:29.000000000","message":"the cinder spec is still open :/","commit_id":"e303111ec91e439dc6ac8fc177655d31ded3d36f"}],"specs/yoga/approved/volume-backed-server-rebuild.rst":[{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"fd11700a594bcc451ea9d870bf53d0dd11430f1b","unresolved":true,"context_lines":[{"line_number":27,"context_line":"---------"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"* As a user, I would like to rebuild my volume-backed server with a new image."},{"line_number":30,"context_line":"  so that I can upgrade the guest OS in my volume backed server."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* As a nova developer, I would like to have feature parity in the compute API"},{"line_number":33,"context_line":"  for volume-backed and image-backed servers."}],"source_content_type":"text/x-rst","patch_set":3,"id":"efa152d6_07dfa9af","line":30,"range":{"start_line":30,"start_character":2,"end_line":30,"end_character":64},"updated":"2021-11-04 12:14:07.000000000","message":"I\u0027m not sure this is valid, you\u0027re replacing the contents of the volume so this isn\u0027t an upgrade it\u0027s a full change no?","commit_id":"a38eed5675b07557470b382e6af960cb8d163881"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"54b702a256a8a30fe48cafb61e646598f63a324e","unresolved":false,"context_lines":[{"line_number":27,"context_line":"---------"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"* As a user, I would like to rebuild my volume-backed server with a new image."},{"line_number":30,"context_line":"  so that I can upgrade the guest OS in my volume backed server."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* As a nova developer, I would like to have feature parity in the compute API"},{"line_number":33,"context_line":"  for volume-backed and image-backed servers."}],"source_content_type":"text/x-rst","patch_set":3,"id":"62a4f4f7_8657eeb4","line":30,"range":{"start_line":30,"start_character":2,"end_line":30,"end_character":64},"in_reply_to":"221e4c57_16e48d0f","updated":"2021-11-18 15:28:18.000000000","message":"Done","commit_id":"a38eed5675b07557470b382e6af960cb8d163881"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"72f7f789db7282168c5c4fc8907ad62c63237fff","unresolved":true,"context_lines":[{"line_number":27,"context_line":"---------"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"* As a user, I would like to rebuild my volume-backed server with a new image."},{"line_number":30,"context_line":"  so that I can upgrade the guest OS in my volume backed server."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* As a nova developer, I would like to have feature parity in the compute API"},{"line_number":33,"context_line":"  for volume-backed and image-backed servers."}],"source_content_type":"text/x-rst","patch_set":3,"id":"221e4c57_16e48d0f","line":30,"range":{"start_line":30,"start_character":2,"end_line":30,"end_character":64},"in_reply_to":"efa152d6_07dfa9af","updated":"2021-11-08 07:02:04.000000000","message":"Yeah, not exactly an upgrade. I don\u0027t exactly remember the reason behind adding this line. will remove it.","commit_id":"a38eed5675b07557470b382e6af960cb8d163881"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"fd11700a594bcc451ea9d870bf53d0dd11430f1b","unresolved":true,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Then the nova-compute manager will perform the following steps:"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"#. Create an empty (no connector) volume attachment for the volume and"},{"line_number":53,"context_line":"   server. This ensures the volume remains ``reserved`` through the next"},{"line_number":54,"context_line":"   step."},{"line_number":55,"context_line":"#. Delete the existing volume attachment (the old one)."},{"line_number":56,"context_line":"#. Call the new ``os-reimage`` cinder API and pass connector information."},{"line_number":57,"context_line":"#. Add a new \u0027volume-reimaged\u0027 external event to wait for cinder to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"327a32c0_1b593d1b","line":54,"range":{"start_line":52,"start_character":0,"end_line":54,"end_character":8},"updated":"2021-11-04 12:14:07.000000000","message":"What\u0027s the justification for doing this btw? Will certain c-vol backends need to export the re-imaged volume differently?","commit_id":"a38eed5675b07557470b382e6af960cb8d163881"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"54b702a256a8a30fe48cafb61e646598f63a324e","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Then the nova-compute manager will perform the following steps:"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"#. Create an empty (no connector) volume attachment for the volume and"},{"line_number":53,"context_line":"   server. This ensures the volume remains ``reserved`` through the next"},{"line_number":54,"context_line":"   step."},{"line_number":55,"context_line":"#. Delete the existing volume attachment (the old one)."},{"line_number":56,"context_line":"#. Call the new ``os-reimage`` cinder API and pass connector information."},{"line_number":57,"context_line":"#. Add a new \u0027volume-reimaged\u0027 external event to wait for cinder to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"342d6e87_38544735","line":54,"range":{"start_line":52,"start_character":0,"end_line":54,"end_character":8},"in_reply_to":"254fe28e_4bef9c4a","updated":"2021-11-18 15:28:18.000000000","message":"Done","commit_id":"a38eed5675b07557470b382e6af960cb8d163881"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"72f7f789db7282168c5c4fc8907ad62c63237fff","unresolved":true,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Then the nova-compute manager will perform the following steps:"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"#. Create an empty (no connector) volume attachment for the volume and"},{"line_number":53,"context_line":"   server. This ensures the volume remains ``reserved`` through the next"},{"line_number":54,"context_line":"   step."},{"line_number":55,"context_line":"#. Delete the existing volume attachment (the old one)."},{"line_number":56,"context_line":"#. Call the new ``os-reimage`` cinder API and pass connector information."},{"line_number":57,"context_line":"#. Add a new \u0027volume-reimaged\u0027 external event to wait for cinder to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"254fe28e_4bef9c4a","line":54,"range":{"start_line":52,"start_character":0,"end_line":54,"end_character":8},"in_reply_to":"327a32c0_1b593d1b","updated":"2021-11-08 07:02:04.000000000","message":"The idea is to keep the volume in reserved state during the re-image operation so end users couldn\u0027t perform data path operations on that volume during reimaging.\nThis is basically used as an intermediate state.","commit_id":"a38eed5675b07557470b382e6af960cb8d163881"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"fd11700a594bcc451ea9d870bf53d0dd11430f1b","unresolved":true,"context_lines":[{"line_number":52,"context_line":"#. Create an empty (no connector) volume attachment for the volume and"},{"line_number":53,"context_line":"   server. This ensures the volume remains ``reserved`` through the next"},{"line_number":54,"context_line":"   step."},{"line_number":55,"context_line":"#. Delete the existing volume attachment (the old one)."},{"line_number":56,"context_line":"#. Call the new ``os-reimage`` cinder API and pass connector information."},{"line_number":57,"context_line":"#. Add a new \u0027volume-reimaged\u0027 external event to wait for cinder to"},{"line_number":58,"context_line":"   complete the reimage. Like we use for volume-extend."}],"source_content_type":"text/x-rst","patch_set":3,"id":"8d371062_3b91a3b8","line":55,"range":{"start_line":55,"start_character":0,"end_line":55,"end_character":55},"updated":"2021-11-04 12:14:07.000000000","message":"Shouldn\u0027t we wait until os-reimage has at least returned 202 or something before we do this?","commit_id":"a38eed5675b07557470b382e6af960cb8d163881"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"72f7f789db7282168c5c4fc8907ad62c63237fff","unresolved":true,"context_lines":[{"line_number":52,"context_line":"#. Create an empty (no connector) volume attachment for the volume and"},{"line_number":53,"context_line":"   server. This ensures the volume remains ``reserved`` through the next"},{"line_number":54,"context_line":"   step."},{"line_number":55,"context_line":"#. Delete the existing volume attachment (the old one)."},{"line_number":56,"context_line":"#. Call the new ``os-reimage`` cinder API and pass connector information."},{"line_number":57,"context_line":"#. Add a new \u0027volume-reimaged\u0027 external event to wait for cinder to"},{"line_number":58,"context_line":"   complete the reimage. Like we use for volume-extend."}],"source_content_type":"text/x-rst","patch_set":3,"id":"a6d3cdbe_70f2e6d6","line":55,"range":{"start_line":55,"start_character":0,"end_line":55,"end_character":55},"in_reply_to":"8d371062_3b91a3b8","updated":"2021-11-08 07:02:04.000000000","message":"That might lead to unexpected cases because after the re-image, cinder will update the empty attachment with connection information and might cause a race with this delete and updating the new attachment.\nAlso we are already checking (on L#46-48) if cinder microversion is new enough, to perform this operation, as a precondition which was the main concern of failure during PTG discussion.","commit_id":"a38eed5675b07557470b382e6af960cb8d163881"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"54b702a256a8a30fe48cafb61e646598f63a324e","unresolved":false,"context_lines":[{"line_number":52,"context_line":"#. Create an empty (no connector) volume attachment for the volume and"},{"line_number":53,"context_line":"   server. This ensures the volume remains ``reserved`` through the next"},{"line_number":54,"context_line":"   step."},{"line_number":55,"context_line":"#. Delete the existing volume attachment (the old one)."},{"line_number":56,"context_line":"#. Call the new ``os-reimage`` cinder API and pass connector information."},{"line_number":57,"context_line":"#. Add a new \u0027volume-reimaged\u0027 external event to wait for cinder to"},{"line_number":58,"context_line":"   complete the reimage. Like we use for volume-extend."}],"source_content_type":"text/x-rst","patch_set":3,"id":"92db1cc6_503bed3e","line":55,"range":{"start_line":55,"start_character":0,"end_line":55,"end_character":55},"in_reply_to":"a6d3cdbe_70f2e6d6","updated":"2021-11-18 15:28:18.000000000","message":"Done","commit_id":"a38eed5675b07557470b382e6af960cb8d163881"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"fd11700a594bcc451ea9d870bf53d0dd11430f1b","unresolved":true,"context_lines":[{"line_number":53,"context_line":"   server. This ensures the volume remains ``reserved`` through the next"},{"line_number":54,"context_line":"   step."},{"line_number":55,"context_line":"#. Delete the existing volume attachment (the old one)."},{"line_number":56,"context_line":"#. Call the new ``os-reimage`` cinder API and pass connector information."},{"line_number":57,"context_line":"#. Add a new \u0027volume-reimaged\u0027 external event to wait for cinder to"},{"line_number":58,"context_line":"   complete the reimage. Like we use for volume-extend."},{"line_number":59,"context_line":"   See `perform_resize_volume_online`_ for details."}],"source_content_type":"text/x-rst","patch_set":3,"id":"106b481b_c1fda407","line":56,"range":{"start_line":56,"start_character":3,"end_line":56,"end_character":73},"updated":"2021-11-04 12:14:07.000000000","message":"Why does Cinder need the compute host connector information here?","commit_id":"a38eed5675b07557470b382e6af960cb8d163881"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"72f7f789db7282168c5c4fc8907ad62c63237fff","unresolved":true,"context_lines":[{"line_number":53,"context_line":"   server. This ensures the volume remains ``reserved`` through the next"},{"line_number":54,"context_line":"   step."},{"line_number":55,"context_line":"#. Delete the existing volume attachment (the old one)."},{"line_number":56,"context_line":"#. Call the new ``os-reimage`` cinder API and pass connector information."},{"line_number":57,"context_line":"#. Add a new \u0027volume-reimaged\u0027 external event to wait for cinder to"},{"line_number":58,"context_line":"   complete the reimage. Like we use for volume-extend."},{"line_number":59,"context_line":"   See `perform_resize_volume_online`_ for details."}],"source_content_type":"text/x-rst","patch_set":3,"id":"f7092853_b73ac5ce","line":56,"range":{"start_line":56,"start_character":3,"end_line":56,"end_character":73},"in_reply_to":"106b481b_c1fda407","updated":"2021-11-08 07:02:04.000000000","message":"This was an optimization discussed during PTG, rather than nova calling cinder to first create empty attachment (attachment-create) and after getting the re-image complete event, calling cinder again to update attachment (attachment-update), we can directly pass the connector info in the reimage call and cinder will update attachment after the re-image is complete avoiding the back and forth dance between cinder and nova.","commit_id":"a38eed5675b07557470b382e6af960cb8d163881"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"54b702a256a8a30fe48cafb61e646598f63a324e","unresolved":false,"context_lines":[{"line_number":53,"context_line":"   server. This ensures the volume remains ``reserved`` through the next"},{"line_number":54,"context_line":"   step."},{"line_number":55,"context_line":"#. Delete the existing volume attachment (the old one)."},{"line_number":56,"context_line":"#. Call the new ``os-reimage`` cinder API and pass connector information."},{"line_number":57,"context_line":"#. Add a new \u0027volume-reimaged\u0027 external event to wait for cinder to"},{"line_number":58,"context_line":"   complete the reimage. Like we use for volume-extend."},{"line_number":59,"context_line":"   See `perform_resize_volume_online`_ for details."}],"source_content_type":"text/x-rst","patch_set":3,"id":"ef3227ea_db9564b8","line":56,"range":{"start_line":56,"start_character":3,"end_line":56,"end_character":73},"in_reply_to":"f7092853_b73ac5ce","updated":"2021-11-18 15:28:18.000000000","message":"Done","commit_id":"a38eed5675b07557470b382e6af960cb8d163881"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"fd11700a594bcc451ea9d870bf53d0dd11430f1b","unresolved":true,"context_lines":[{"line_number":57,"context_line":"#. Add a new \u0027volume-reimaged\u0027 external event to wait for cinder to"},{"line_number":58,"context_line":"   complete the reimage. Like we use for volume-extend."},{"line_number":59,"context_line":"   See `perform_resize_volume_online`_ for details."},{"line_number":60,"context_line":"#. After successful completion of the re-image operation, update the empty"},{"line_number":61,"context_line":"   volume attchment in Cinder with the connector info passed during re-image"},{"line_number":62,"context_line":"   call and return connection info to Nova, then do the attachment on the"},{"line_number":63,"context_line":"   Nova host when spawning the (rebuilt) guest VM and \"complete\" the"},{"line_number":64,"context_line":"   attachment which will make the volume ``in-use`` again."},{"line_number":65,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9294a45f_35dee0be","line":62,"range":{"start_line":60,"start_character":0,"end_line":62,"end_character":43},"updated":"2021-11-04 12:14:07.000000000","message":"You\u0027ve dropped the need to complete the attachment from this section, that\u0027s still required to mark the volume as `in-use`.","commit_id":"a38eed5675b07557470b382e6af960cb8d163881"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"54b702a256a8a30fe48cafb61e646598f63a324e","unresolved":false,"context_lines":[{"line_number":57,"context_line":"#. Add a new \u0027volume-reimaged\u0027 external event to wait for cinder to"},{"line_number":58,"context_line":"   complete the reimage. Like we use for volume-extend."},{"line_number":59,"context_line":"   See `perform_resize_volume_online`_ for details."},{"line_number":60,"context_line":"#. After successful completion of the re-image operation, update the empty"},{"line_number":61,"context_line":"   volume attchment in Cinder with the connector info passed during re-image"},{"line_number":62,"context_line":"   call and return connection info to Nova, then do the attachment on the"},{"line_number":63,"context_line":"   Nova host when spawning the (rebuilt) guest VM and \"complete\" the"},{"line_number":64,"context_line":"   attachment which will make the volume ``in-use`` again."},{"line_number":65,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"2c7fa86a_c8ed16dd","line":62,"range":{"start_line":60,"start_character":0,"end_line":62,"end_character":43},"in_reply_to":"91892dee_80837de4","updated":"2021-11-18 15:28:18.000000000","message":"Done","commit_id":"a38eed5675b07557470b382e6af960cb8d163881"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"72f7f789db7282168c5c4fc8907ad62c63237fff","unresolved":true,"context_lines":[{"line_number":57,"context_line":"#. Add a new \u0027volume-reimaged\u0027 external event to wait for cinder to"},{"line_number":58,"context_line":"   complete the reimage. Like we use for volume-extend."},{"line_number":59,"context_line":"   See `perform_resize_volume_online`_ for details."},{"line_number":60,"context_line":"#. After successful completion of the re-image operation, update the empty"},{"line_number":61,"context_line":"   volume attchment in Cinder with the connector info passed during re-image"},{"line_number":62,"context_line":"   call and return connection info to Nova, then do the attachment on the"},{"line_number":63,"context_line":"   Nova host when spawning the (rebuilt) guest VM and \"complete\" the"},{"line_number":64,"context_line":"   attachment which will make the volume ``in-use`` again."},{"line_number":65,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"91892dee_80837de4","line":62,"range":{"start_line":60,"start_character":0,"end_line":62,"end_character":43},"in_reply_to":"9294a45f_35dee0be","updated":"2021-11-08 07:02:04.000000000","message":"Ack, will update the current wording.\nMy thought was that the existing wording stated that and i didn\u0027t want to make much changes to the existing approved spec.","commit_id":"a38eed5675b07557470b382e6af960cb8d163881"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"fd11700a594bcc451ea9d870bf53d0dd11430f1b","unresolved":true,"context_lines":[{"line_number":59,"context_line":"   See `perform_resize_volume_online`_ for details."},{"line_number":60,"context_line":"#. After successful completion of the re-image operation, update the empty"},{"line_number":61,"context_line":"   volume attchment in Cinder with the connector info passed during re-image"},{"line_number":62,"context_line":"   call and return connection info to Nova, then do the attachment on the"},{"line_number":63,"context_line":"   Nova host when spawning the (rebuilt) guest VM and \"complete\" the"},{"line_number":64,"context_line":"   attachment which will make the volume ``in-use`` again."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":".. _perform_resize_volume_online: https://review.opendev.org/c/openstack/nova/+/454322"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"f3cada1c_08deae01","line":64,"range":{"start_line":62,"start_character":43,"end_line":64,"end_character":58},"updated":"2021-11-04 12:14:07.000000000","message":"This will already happen when the instance spawns, there shouldn\u0027t be anything new to do here.","commit_id":"a38eed5675b07557470b382e6af960cb8d163881"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"54b702a256a8a30fe48cafb61e646598f63a324e","unresolved":false,"context_lines":[{"line_number":59,"context_line":"   See `perform_resize_volume_online`_ for details."},{"line_number":60,"context_line":"#. After successful completion of the re-image operation, update the empty"},{"line_number":61,"context_line":"   volume attchment in Cinder with the connector info passed during re-image"},{"line_number":62,"context_line":"   call and return connection info to Nova, then do the attachment on the"},{"line_number":63,"context_line":"   Nova host when spawning the (rebuilt) guest VM and \"complete\" the"},{"line_number":64,"context_line":"   attachment which will make the volume ``in-use`` again."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":".. _perform_resize_volume_online: https://review.opendev.org/c/openstack/nova/+/454322"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"778c6ac1_38259646","line":64,"range":{"start_line":62,"start_character":43,"end_line":64,"end_character":58},"in_reply_to":"2f8dead8_30fccd2d","updated":"2021-11-18 15:28:18.000000000","message":"Done","commit_id":"a38eed5675b07557470b382e6af960cb8d163881"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"72f7f789db7282168c5c4fc8907ad62c63237fff","unresolved":true,"context_lines":[{"line_number":59,"context_line":"   See `perform_resize_volume_online`_ for details."},{"line_number":60,"context_line":"#. After successful completion of the re-image operation, update the empty"},{"line_number":61,"context_line":"   volume attchment in Cinder with the connector info passed during re-image"},{"line_number":62,"context_line":"   call and return connection info to Nova, then do the attachment on the"},{"line_number":63,"context_line":"   Nova host when spawning the (rebuilt) guest VM and \"complete\" the"},{"line_number":64,"context_line":"   attachment which will make the volume ``in-use`` again."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":".. _perform_resize_volume_online: https://review.opendev.org/c/openstack/nova/+/454322"},{"line_number":67,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"2f8dead8_30fccd2d","line":64,"range":{"start_line":62,"start_character":43,"end_line":64,"end_character":58},"in_reply_to":"f3cada1c_08deae01","updated":"2021-11-08 07:02:04.000000000","message":"Ack, will remove it.","commit_id":"a38eed5675b07557470b382e6af960cb8d163881"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"074b3f4088a2fd68fe7f3167d07c5f781d1215c2","unresolved":true,"context_lines":[{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"volume-backed server rebuild"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":"https://blueprints.launchpad.net/nova/+spec/volume-backed-server-rebuild"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Currently, the compute API will `fail`_ if a user tries to rebuild"},{"line_number":13,"context_line":"a volume-backed server with a new image. This spec proposes to add"}],"source_content_type":"text/x-rst","patch_set":4,"id":"47f8949d_21e8279c","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":72},"updated":"2021-11-10 13:45:48.000000000","message":"nit - Need a space before this.","commit_id":"99a8e5c4073b6ce7ade56b529dd8d171a34b7421"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"79a8e1fb048b22c5f79f58d264dea6aa0a831f30","unresolved":false,"context_lines":[{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"volume-backed server rebuild"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":"https://blueprints.launchpad.net/nova/+spec/volume-backed-server-rebuild"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Currently, the compute API will `fail`_ if a user tries to rebuild"},{"line_number":13,"context_line":"a volume-backed server with a new image. This spec proposes to add"}],"source_content_type":"text/x-rst","patch_set":4,"id":"6e337a05_38dc2bcc","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":72},"in_reply_to":"47f8949d_21e8279c","updated":"2021-11-11 08:11:53.000000000","message":"Done","commit_id":"99a8e5c4073b6ce7ade56b529dd8d171a34b7421"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"074b3f4088a2fd68fe7f3167d07c5f781d1215c2","unresolved":true,"context_lines":[{"line_number":36,"context_line":"First, change the existing API for rebuilding a volume-backed server."},{"line_number":37,"context_line":"Then the API flow would be:"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"#. Has the new API microversion been requested. If it is old API microversion"},{"line_number":40,"context_line":"   request, then it should be 400 returned."},{"line_number":41,"context_line":"#. Provide a COMPUTE_REBUILD_BFV trait for knowing if the compute node can"},{"line_number":42,"context_line":"   support rebuild."},{"line_number":43,"context_line":"   if not, will raise RebuildVolumeBackedServerNotSupport exception."},{"line_number":44,"context_line":"#. If the cinder microversion is new enough to support reimage"},{"line_number":45,"context_line":"   the root volume. If not, will raise CinderAPIVersionNotAvailable"},{"line_number":46,"context_line":"   exception."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Then the nova-compute manager will perform the following steps:"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"4513e576_c9adbf1e","line":46,"range":{"start_line":39,"start_character":0,"end_line":46,"end_character":13},"updated":"2021-11-10 13:45:48.000000000","message":"What about multiattach volumes? Should n-api reject requests early or wait until c-api rejects them later?\n\nAdditionally this UX isn\u0027t great for users IMHO as they would automatically reimage their volumes when these requirements are met. I can definitely see a user accidentally doing this if they are using the `2.latest` microversion so IMHO it would be nice to add a request param to avoid that. Something like reimage_volume\u003dTrue?","commit_id":"99a8e5c4073b6ce7ade56b529dd8d171a34b7421"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"7dfc4bcf8277fa54dc1bb91ec4532bce6024bd14","unresolved":true,"context_lines":[{"line_number":36,"context_line":"First, change the existing API for rebuilding a volume-backed server."},{"line_number":37,"context_line":"Then the API flow would be:"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"#. Has the new API microversion been requested. If it is old API microversion"},{"line_number":40,"context_line":"   request, then it should be 400 returned."},{"line_number":41,"context_line":"#. Provide a COMPUTE_REBUILD_BFV trait for knowing if the compute node can"},{"line_number":42,"context_line":"   support rebuild."},{"line_number":43,"context_line":"   if not, will raise RebuildVolumeBackedServerNotSupport exception."},{"line_number":44,"context_line":"#. If the cinder microversion is new enough to support reimage"},{"line_number":45,"context_line":"   the root volume. If not, will raise CinderAPIVersionNotAvailable"},{"line_number":46,"context_line":"   exception."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Then the nova-compute manager will perform the following steps:"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9253e429_11f58d9a","line":46,"range":{"start_line":39,"start_character":0,"end_line":46,"end_character":13},"in_reply_to":"018b8c4e_cf281483","updated":"2021-11-11 10:26:23.000000000","message":"My issue is really with the introduction of a change in behaviour that destroys user data that\u0027s only toggled on by a new microversion. It\u0027s super super easy for end users to miss this if they are using 2.latest (they might not even be aware which microversion they are using in some envs tbh) and suddenly end up reimaging their volumes IMHO.","commit_id":"99a8e5c4073b6ce7ade56b529dd8d171a34b7421"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"79a8e1fb048b22c5f79f58d264dea6aa0a831f30","unresolved":true,"context_lines":[{"line_number":36,"context_line":"First, change the existing API for rebuilding a volume-backed server."},{"line_number":37,"context_line":"Then the API flow would be:"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"#. Has the new API microversion been requested. If it is old API microversion"},{"line_number":40,"context_line":"   request, then it should be 400 returned."},{"line_number":41,"context_line":"#. Provide a COMPUTE_REBUILD_BFV trait for knowing if the compute node can"},{"line_number":42,"context_line":"   support rebuild."},{"line_number":43,"context_line":"   if not, will raise RebuildVolumeBackedServerNotSupport exception."},{"line_number":44,"context_line":"#. If the cinder microversion is new enough to support reimage"},{"line_number":45,"context_line":"   the root volume. If not, will raise CinderAPIVersionNotAvailable"},{"line_number":46,"context_line":"   exception."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Then the nova-compute manager will perform the following steps:"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"018b8c4e_cf281483","line":46,"range":{"start_line":39,"start_character":0,"end_line":46,"end_character":13},"in_reply_to":"4513e576_c9adbf1e","updated":"2021-11-11 08:11:53.000000000","message":"The attachment management will be trickier for multiattach volumes and the benefit will not be worth the effort. I think it\u0027s better if n-api rejects it directly so we don\u0027t go into an async call to c-api that will again require an external event from cinder and a user message notifying user of the failure which seems extra work. I will add a point about it.\n\nI thought the idea behind implementing this is to not differentiate between rebuilding an ephemeral or volume backed instance and both should work same without much interference from user. If it\u0027s intended to be treated as a different operation, we can add the reimage_volume flag and a command line optional argument in novaclient to pass it for volume backed instances.\nI will wait for confirmation before upating this part.","commit_id":"99a8e5c4073b6ce7ade56b529dd8d171a34b7421"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"71d32f404505199e536b0f6bcfbb4641b1da50d2","unresolved":true,"context_lines":[{"line_number":36,"context_line":"First, change the existing API for rebuilding a volume-backed server."},{"line_number":37,"context_line":"Then the API flow would be:"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"#. Has the new API microversion been requested. If it is old API microversion"},{"line_number":40,"context_line":"   request, then it should be 400 returned."},{"line_number":41,"context_line":"#. Provide a COMPUTE_REBUILD_BFV trait for knowing if the compute node can"},{"line_number":42,"context_line":"   support rebuild."},{"line_number":43,"context_line":"   if not, will raise RebuildVolumeBackedServerNotSupport exception."},{"line_number":44,"context_line":"#. If the cinder microversion is new enough to support reimage"},{"line_number":45,"context_line":"   the root volume. If not, will raise CinderAPIVersionNotAvailable"},{"line_number":46,"context_line":"   exception."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Then the nova-compute manager will perform the following steps:"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"ac5a5841_2e7cd5fa","line":46,"range":{"start_line":39,"start_character":0,"end_line":46,"end_character":13},"in_reply_to":"9253e429_11f58d9a","updated":"2021-11-16 09:30:16.000000000","message":"I tend to agree with Lee. Nova did not destroy the user data on the volume before but now it will. We need to be extra cautious as it is really destructive now but it wasn\u0027t before. So users has existing assumptions about it. \n\nAnother option would be to infer the destructive intention from the delete_on_terminate flag on the BDM. But overall I think a new flag on the API would be a lot more explicit and safe.","commit_id":"99a8e5c4073b6ce7ade56b529dd8d171a34b7421"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"1ef41b9c9152b8332e9a52712ef25d37f19170f6","unresolved":false,"context_lines":[{"line_number":36,"context_line":"First, change the existing API for rebuilding a volume-backed server."},{"line_number":37,"context_line":"Then the API flow would be:"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"#. Has the new API microversion been requested. If it is old API microversion"},{"line_number":40,"context_line":"   request, then it should be 400 returned."},{"line_number":41,"context_line":"#. Provide a COMPUTE_REBUILD_BFV trait for knowing if the compute node can"},{"line_number":42,"context_line":"   support rebuild."},{"line_number":43,"context_line":"   if not, will raise RebuildVolumeBackedServerNotSupport exception."},{"line_number":44,"context_line":"#. If the cinder microversion is new enough to support reimage"},{"line_number":45,"context_line":"   the root volume. If not, will raise CinderAPIVersionNotAvailable"},{"line_number":46,"context_line":"   exception."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Then the nova-compute manager will perform the following steps:"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1e06dfb7_313a89d0","line":46,"range":{"start_line":39,"start_character":0,"end_line":46,"end_character":13},"in_reply_to":"ac5a5841_2e7cd5fa","updated":"2021-11-16 11:53:46.000000000","message":"Done","commit_id":"99a8e5c4073b6ce7ade56b529dd8d171a34b7421"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"074b3f4088a2fd68fe7f3167d07c5f781d1215c2","unresolved":true,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Then the nova-compute manager will perform the following steps:"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"#. Create an empty (no connector) volume attachment for the volume and"},{"line_number":51,"context_line":"   server. This ensures the volume remains ``reserved`` through the next"},{"line_number":52,"context_line":"   step."},{"line_number":53,"context_line":"#. Delete the existing volume attachment (the old one)."},{"line_number":54,"context_line":"#. Call the new ``os-reimage`` cinder API and pass connector information."},{"line_number":55,"context_line":"#. Add a new \u0027volume-reimaged\u0027 external event to wait for cinder to"},{"line_number":56,"context_line":"   complete the reimage. Like we use for volume-extend."}],"source_content_type":"text/x-rst","patch_set":4,"id":"dc32e456_1d953436","line":53,"range":{"start_line":50,"start_character":0,"end_line":53,"end_character":55},"updated":"2021-11-10 13:45:48.000000000","message":"Continuing on with this discussion, is this due to the reimage API not allowing in-use volumes to be reimaged? If so it would be good to reference that requirement here.","commit_id":"99a8e5c4073b6ce7ade56b529dd8d171a34b7421"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"7dfc4bcf8277fa54dc1bb91ec4532bce6024bd14","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Then the nova-compute manager will perform the following steps:"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"#. Create an empty (no connector) volume attachment for the volume and"},{"line_number":51,"context_line":"   server. This ensures the volume remains ``reserved`` through the next"},{"line_number":52,"context_line":"   step."},{"line_number":53,"context_line":"#. Delete the existing volume attachment (the old one)."},{"line_number":54,"context_line":"#. Call the new ``os-reimage`` cinder API and pass connector information."},{"line_number":55,"context_line":"#. Add a new \u0027volume-reimaged\u0027 external event to wait for cinder to"},{"line_number":56,"context_line":"   complete the reimage. Like we use for volume-extend."}],"source_content_type":"text/x-rst","patch_set":4,"id":"5b060a4c_14b3ee24","line":53,"range":{"start_line":50,"start_character":0,"end_line":53,"end_character":55},"in_reply_to":"5d25cd24_b86fc71d","updated":"2021-11-11 10:26:23.000000000","message":"Ack","commit_id":"99a8e5c4073b6ce7ade56b529dd8d171a34b7421"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"f00d72e36b6d29b7a6e8164cb1935976ca344dd1","unresolved":true,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Then the nova-compute manager will perform the following steps:"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"#. Create an empty (no connector) volume attachment for the volume and"},{"line_number":51,"context_line":"   server. This ensures the volume remains ``reserved`` through the next"},{"line_number":52,"context_line":"   step."},{"line_number":53,"context_line":"#. Delete the existing volume attachment (the old one)."},{"line_number":54,"context_line":"#. Call the new ``os-reimage`` cinder API and pass connector information."},{"line_number":55,"context_line":"#. Add a new \u0027volume-reimaged\u0027 external event to wait for cinder to"},{"line_number":56,"context_line":"   complete the reimage. Like we use for volume-extend."}],"source_content_type":"text/x-rst","patch_set":4,"id":"5d25cd24_b86fc71d","line":53,"range":{"start_line":50,"start_character":0,"end_line":53,"end_character":55},"in_reply_to":"9c2c6a31_1d85e370","updated":"2021-11-11 08:18:50.000000000","message":"Also considering the case of multiattached volumes, while reimaging, a volume could be in in-use state and some instance can have an ongoing IO operation on it which might have unexpected results. Since we are avoiding the case of multiattached volumes, the reserved state makes the most sense here to keep this operation safe.","commit_id":"99a8e5c4073b6ce7ade56b529dd8d171a34b7421"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"79a8e1fb048b22c5f79f58d264dea6aa0a831f30","unresolved":true,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Then the nova-compute manager will perform the following steps:"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"#. Create an empty (no connector) volume attachment for the volume and"},{"line_number":51,"context_line":"   server. This ensures the volume remains ``reserved`` through the next"},{"line_number":52,"context_line":"   step."},{"line_number":53,"context_line":"#. Delete the existing volume attachment (the old one)."},{"line_number":54,"context_line":"#. Call the new ``os-reimage`` cinder API and pass connector information."},{"line_number":55,"context_line":"#. Add a new \u0027volume-reimaged\u0027 external event to wait for cinder to"},{"line_number":56,"context_line":"   complete the reimage. Like we use for volume-extend."}],"source_content_type":"text/x-rst","patch_set":4,"id":"9c2c6a31_1d85e370","line":53,"range":{"start_line":50,"start_character":0,"end_line":53,"end_character":55},"in_reply_to":"dc32e456_1d953436","updated":"2021-11-11 08:11:53.000000000","message":"The idea is to keep the volume in reserved state as the reserved state seems suitable for management operations on the volume and hence it will be implemented on the cinder side in the same way. The in-use state usually signifies that the volume is ready to use so doesn\u0027t make sense to execute this operation on it. I will add a point here.","commit_id":"99a8e5c4073b6ce7ade56b529dd8d171a34b7421"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"074b3f4088a2fd68fe7f3167d07c5f781d1215c2","unresolved":true,"context_lines":[{"line_number":51,"context_line":"   server. This ensures the volume remains ``reserved`` through the next"},{"line_number":52,"context_line":"   step."},{"line_number":53,"context_line":"#. Delete the existing volume attachment (the old one)."},{"line_number":54,"context_line":"#. Call the new ``os-reimage`` cinder API and pass connector information."},{"line_number":55,"context_line":"#. Add a new \u0027volume-reimaged\u0027 external event to wait for cinder to"},{"line_number":56,"context_line":"   complete the reimage. Like we use for volume-extend."},{"line_number":57,"context_line":"   See `perform_resize_volume_online`_ for details."},{"line_number":58,"context_line":"#. After successful completion of the re-image operation, update the empty"},{"line_number":59,"context_line":"   volume attchment in Cinder with the connector info passed during re-image"},{"line_number":60,"context_line":"   call and return connection info to Nova."},{"line_number":61,"context_line":"#. After Nova completes the connection with brick, complete the attachment"},{"line_number":62,"context_line":"   marking the volume ``in-use``."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":".. _perform_resize_volume_online: https://review.opendev.org/c/openstack/nova/+/454322"},{"line_number":65,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"d0c6cd8c_dcf33654","line":62,"range":{"start_line":54,"start_character":0,"end_line":62,"end_character":33},"updated":"2021-11-10 13:45:48.000000000","message":"Again continuing here, I don\u0027t like this even if it is trying to optimise the flow.\n\nHow does the updated connection_info get back to n-cpu? Through the external event payload?\n\nI\u0027d rather reuse existing logic in the rebuild flow and nova.virt.block_device etc to have n-cpu update the volume attachment etc rather than yet another unicorn codepath.","commit_id":"99a8e5c4073b6ce7ade56b529dd8d171a34b7421"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"54b702a256a8a30fe48cafb61e646598f63a324e","unresolved":false,"context_lines":[{"line_number":51,"context_line":"   server. This ensures the volume remains ``reserved`` through the next"},{"line_number":52,"context_line":"   step."},{"line_number":53,"context_line":"#. Delete the existing volume attachment (the old one)."},{"line_number":54,"context_line":"#. Call the new ``os-reimage`` cinder API and pass connector information."},{"line_number":55,"context_line":"#. Add a new \u0027volume-reimaged\u0027 external event to wait for cinder to"},{"line_number":56,"context_line":"   complete the reimage. Like we use for volume-extend."},{"line_number":57,"context_line":"   See `perform_resize_volume_online`_ for details."},{"line_number":58,"context_line":"#. After successful completion of the re-image operation, update the empty"},{"line_number":59,"context_line":"   volume attchment in Cinder with the connector info passed during re-image"},{"line_number":60,"context_line":"   call and return connection info to Nova."},{"line_number":61,"context_line":"#. After Nova completes the connection with brick, complete the attachment"},{"line_number":62,"context_line":"   marking the volume ``in-use``."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":".. _perform_resize_volume_online: https://review.opendev.org/c/openstack/nova/+/454322"},{"line_number":65,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5905c9cd_07a46772","line":62,"range":{"start_line":54,"start_character":0,"end_line":62,"end_character":33},"in_reply_to":"373d4c7f_7b62faff","updated":"2021-11-18 15:28:18.000000000","message":"Done","commit_id":"99a8e5c4073b6ce7ade56b529dd8d171a34b7421"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"79a8e1fb048b22c5f79f58d264dea6aa0a831f30","unresolved":true,"context_lines":[{"line_number":51,"context_line":"   server. This ensures the volume remains ``reserved`` through the next"},{"line_number":52,"context_line":"   step."},{"line_number":53,"context_line":"#. Delete the existing volume attachment (the old one)."},{"line_number":54,"context_line":"#. Call the new ``os-reimage`` cinder API and pass connector information."},{"line_number":55,"context_line":"#. Add a new \u0027volume-reimaged\u0027 external event to wait for cinder to"},{"line_number":56,"context_line":"   complete the reimage. Like we use for volume-extend."},{"line_number":57,"context_line":"   See `perform_resize_volume_online`_ for details."},{"line_number":58,"context_line":"#. After successful completion of the re-image operation, update the empty"},{"line_number":59,"context_line":"   volume attchment in Cinder with the connector info passed during re-image"},{"line_number":60,"context_line":"   call and return connection info to Nova."},{"line_number":61,"context_line":"#. After Nova completes the connection with brick, complete the attachment"},{"line_number":62,"context_line":"   marking the volume ``in-use``."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":".. _perform_resize_volume_online: https://review.opendev.org/c/openstack/nova/+/454322"},{"line_number":65,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"373d4c7f_7b62faff","line":62,"range":{"start_line":54,"start_character":0,"end_line":62,"end_character":33},"in_reply_to":"d0c6cd8c_dcf33654","updated":"2021-11-11 08:11:53.000000000","message":"Yes, the current idea is to return connection_info as event payload.\nThat\u0027s a good point if the nova team wants to keep consistency between operations and call the attachment_update itself rather than cinder doing that update. I will wait for feedback before updating this part.","commit_id":"99a8e5c4073b6ce7ade56b529dd8d171a34b7421"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"074b3f4088a2fd68fe7f3167d07c5f781d1215c2","unresolved":true,"context_lines":[{"line_number":179,"context_line":"* Adopt the new compute version."},{"line_number":180,"context_line":"* Adopt the new microversion in python-novaclient."},{"line_number":181,"context_line":"* Adopt the new microversion in python-openstackclient."},{"line_number":182,"context_line":"* Change the nova API documents."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Dependencies"},{"line_number":185,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"69486368_ea05f09d","line":182,"range":{"start_line":182,"start_character":0,"end_line":182,"end_character":32},"updated":"2021-11-10 13:45:48.000000000","message":"FWIW this needs to happen with the changes to the rebuild API and new microversion etc. You might want to reorder things so that API change is done after the compute changes etc.","commit_id":"99a8e5c4073b6ce7ade56b529dd8d171a34b7421"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"79a8e1fb048b22c5f79f58d264dea6aa0a831f30","unresolved":true,"context_lines":[{"line_number":179,"context_line":"* Adopt the new compute version."},{"line_number":180,"context_line":"* Adopt the new microversion in python-novaclient."},{"line_number":181,"context_line":"* Adopt the new microversion in python-openstackclient."},{"line_number":182,"context_line":"* Change the nova API documents."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Dependencies"},{"line_number":185,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"837b8cd1_9261c602","line":182,"range":{"start_line":182,"start_character":0,"end_line":182,"end_character":32},"in_reply_to":"69486368_ea05f09d","updated":"2021-11-11 08:11:53.000000000","message":"I think this point isn\u0027t telling much as we already have a documentation impact section, will remove it.","commit_id":"99a8e5c4073b6ce7ade56b529dd8d171a34b7421"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"7dfc4bcf8277fa54dc1bb91ec4532bce6024bd14","unresolved":false,"context_lines":[{"line_number":179,"context_line":"* Adopt the new compute version."},{"line_number":180,"context_line":"* Adopt the new microversion in python-novaclient."},{"line_number":181,"context_line":"* Adopt the new microversion in python-openstackclient."},{"line_number":182,"context_line":"* Change the nova API documents."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Dependencies"},{"line_number":185,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"d66ac26d_f3e83a4d","line":182,"range":{"start_line":182,"start_character":0,"end_line":182,"end_character":32},"in_reply_to":"837b8cd1_9261c602","updated":"2021-11-11 10:26:23.000000000","message":"ACK sure, just making the point that this will need to land in tree in the same change that introduces the new microversion, param etc.","commit_id":"99a8e5c4073b6ce7ade56b529dd8d171a34b7421"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"074b3f4088a2fd68fe7f3167d07c5f781d1215c2","unresolved":true,"context_lines":[{"line_number":181,"context_line":"* Adopt the new microversion in python-openstackclient."},{"line_number":182,"context_line":"* Change the nova API documents."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Dependencies"},{"line_number":185,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"Depends on the cinder blueprint for re-imaging a volume, see"},{"line_number":188,"context_line":"more detail information in References."},{"line_number":189,"context_line":""},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"Testing"},{"line_number":192,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"e119de75_4f8a1d3a","line":189,"range":{"start_line":184,"start_character":0,"end_line":189,"end_character":0},"updated":"2021-11-10 13:45:48.000000000","message":"IMHO this change should have a Depends-On: https://review.opendev.org/c/openstack/cinder-specs/+/809622 as we can\u0027t commit to anything in Nova until the actual API design is agreed to in Cinder.","commit_id":"99a8e5c4073b6ce7ade56b529dd8d171a34b7421"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"79a8e1fb048b22c5f79f58d264dea6aa0a831f30","unresolved":false,"context_lines":[{"line_number":181,"context_line":"* Adopt the new microversion in python-openstackclient."},{"line_number":182,"context_line":"* Change the nova API documents."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Dependencies"},{"line_number":185,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"Depends on the cinder blueprint for re-imaging a volume, see"},{"line_number":188,"context_line":"more detail information in References."},{"line_number":189,"context_line":""},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"Testing"},{"line_number":192,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"c4af8378_04af385a","line":189,"range":{"start_line":184,"start_character":0,"end_line":189,"end_character":0},"in_reply_to":"e119de75_4f8a1d3a","updated":"2021-11-11 08:11:53.000000000","message":"Done","commit_id":"99a8e5c4073b6ce7ade56b529dd8d171a34b7421"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"074b3f4088a2fd68fe7f3167d07c5f781d1215c2","unresolved":true,"context_lines":[{"line_number":193,"context_line":""},{"line_number":194,"context_line":"The following tests are added."},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"* Nova unit tests for negative scenarios"},{"line_number":197,"context_line":"* Nova functional tests for \"happy path\" testing"},{"line_number":198,"context_line":"* Tempest integration tests to make sure the nova/cinder integration"},{"line_number":199,"context_line":"  works properly"},{"line_number":200,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"c2c91f02_eb038e3f","line":197,"range":{"start_line":196,"start_character":0,"end_line":197,"end_character":48},"updated":"2021-11-10 13:45:48.000000000","message":"We tend to cover both positive and negative paths in unit and functional, the latter just allows us to make actual API calls and assert behaviour without a full deployment.\n\n(Yes our functional tests aren\u0027t real functional tests, essentially a greybox tests).","commit_id":"99a8e5c4073b6ce7ade56b529dd8d171a34b7421"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"79a8e1fb048b22c5f79f58d264dea6aa0a831f30","unresolved":false,"context_lines":[{"line_number":193,"context_line":""},{"line_number":194,"context_line":"The following tests are added."},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"* Nova unit tests for negative scenarios"},{"line_number":197,"context_line":"* Nova functional tests for \"happy path\" testing"},{"line_number":198,"context_line":"* Tempest integration tests to make sure the nova/cinder integration"},{"line_number":199,"context_line":"  works properly"},{"line_number":200,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"f569b771_ebb4ed8a","line":197,"range":{"start_line":196,"start_character":0,"end_line":197,"end_character":48},"in_reply_to":"c2c91f02_eb038e3f","updated":"2021-11-11 08:11:53.000000000","message":"Ack","commit_id":"99a8e5c4073b6ce7ade56b529dd8d171a34b7421"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"074b3f4088a2fd68fe7f3167d07c5f781d1215c2","unresolved":true,"context_lines":[{"line_number":211,"context_line":""},{"line_number":212,"context_line":".. _note in the API reference: https://developer.openstack.org/api-ref/compute/?expanded\u003d#rebuild-server-rebuild-action"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"* We also need to mention in the documentation that when the volume"},{"line_number":215,"context_line":"  is re-imaged, all current content on the volume will be *destroyed*."},{"line_number":216,"context_line":"  This is important as cinder volumes are considered to be persistent,"},{"line_number":217,"context_line":"  which is not the case with this operation."},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"References"},{"line_number":220,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"d9a46ddf_53a884da","line":217,"range":{"start_line":214,"start_character":0,"end_line":217,"end_character":44},"updated":"2021-11-10 13:45:48.000000000","message":"As above, I\u0027d like to guard against accidents by including a request param to ensure users are opting into this behaviour. That should allow us to document this clearly in the API ref and elsewhere.","commit_id":"99a8e5c4073b6ce7ade56b529dd8d171a34b7421"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"54b702a256a8a30fe48cafb61e646598f63a324e","unresolved":false,"context_lines":[{"line_number":211,"context_line":""},{"line_number":212,"context_line":".. _note in the API reference: https://developer.openstack.org/api-ref/compute/?expanded\u003d#rebuild-server-rebuild-action"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"* We also need to mention in the documentation that when the volume"},{"line_number":215,"context_line":"  is re-imaged, all current content on the volume will be *destroyed*."},{"line_number":216,"context_line":"  This is important as cinder volumes are considered to be persistent,"},{"line_number":217,"context_line":"  which is not the case with this operation."},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"References"},{"line_number":220,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ef7521ba_2b97567d","line":217,"range":{"start_line":214,"start_character":0,"end_line":217,"end_character":44},"in_reply_to":"25e822dc_a4738cf2","updated":"2021-11-18 15:28:18.000000000","message":"Done","commit_id":"99a8e5c4073b6ce7ade56b529dd8d171a34b7421"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"79a8e1fb048b22c5f79f58d264dea6aa0a831f30","unresolved":true,"context_lines":[{"line_number":211,"context_line":""},{"line_number":212,"context_line":".. _note in the API reference: https://developer.openstack.org/api-ref/compute/?expanded\u003d#rebuild-server-rebuild-action"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"* We also need to mention in the documentation that when the volume"},{"line_number":215,"context_line":"  is re-imaged, all current content on the volume will be *destroyed*."},{"line_number":216,"context_line":"  This is important as cinder volumes are considered to be persistent,"},{"line_number":217,"context_line":"  which is not the case with this operation."},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"References"},{"line_number":220,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"25e822dc_a4738cf2","line":217,"range":{"start_line":214,"start_character":0,"end_line":217,"end_character":44},"in_reply_to":"d9a46ddf_53a884da","updated":"2021-11-11 08:11:53.000000000","message":"Ack, just need confirmation that my understanding makes sense on L#46 and will update that part.","commit_id":"99a8e5c4073b6ce7ade56b529dd8d171a34b7421"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"074b3f4088a2fd68fe7f3167d07c5f781d1215c2","unresolved":true,"context_lines":[{"line_number":230,"context_line":""},{"line_number":231,"context_line":"  http://lists.openstack.org/pipermail/openstack-operators/2018-March/014952.html"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"* The cinder blueprint for re-imaging a volume:"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"  https://blueprints.launchpad.net/cinder/+spec/add-volume-re-image-api"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"History"},{"line_number":238,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"f2d4a2c0_1821e6c9","line":235,"range":{"start_line":233,"start_character":0,"end_line":235,"end_character":71},"updated":"2021-11-10 13:45:48.000000000","message":"As above this really depends on the cinder spec and I\u0027d like to see a link to the committed rendered Cinder spec referenced throughout this Nova spec before we commit.","commit_id":"99a8e5c4073b6ce7ade56b529dd8d171a34b7421"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"79a8e1fb048b22c5f79f58d264dea6aa0a831f30","unresolved":false,"context_lines":[{"line_number":230,"context_line":""},{"line_number":231,"context_line":"  http://lists.openstack.org/pipermail/openstack-operators/2018-March/014952.html"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"* The cinder blueprint for re-imaging a volume:"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"  https://blueprints.launchpad.net/cinder/+spec/add-volume-re-image-api"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"History"},{"line_number":238,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ac8303aa_ac4560cb","line":235,"range":{"start_line":233,"start_character":0,"end_line":235,"end_character":71},"in_reply_to":"f2d4a2c0_1821e6c9","updated":"2021-11-11 08:11:53.000000000","message":"Ack","commit_id":"99a8e5c4073b6ce7ade56b529dd8d171a34b7421"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"71d32f404505199e536b0f6bcfbb4641b1da50d2","unresolved":true,"context_lines":[{"line_number":63,"context_line":"   complete the reimage. Like we use for volume-extend."},{"line_number":64,"context_line":"   See `perform_resize_volume_online`_ for details."},{"line_number":65,"context_line":"#. After successful completion of the re-image operation, update the empty"},{"line_number":66,"context_line":"   volume attchment in Cinder with the connector info passed during re-image"},{"line_number":67,"context_line":"   call and return connection info to Nova."},{"line_number":68,"context_line":"#. After Nova completes the connection with brick, complete the attachment"},{"line_number":69,"context_line":"   marking the volume ``in-use``."}],"source_content_type":"text/x-rst","patch_set":5,"id":"bb2fe36b_29495b38","line":66,"range":{"start_line":66,"start_character":10,"end_line":66,"end_character":19},"updated":"2021-11-16 09:30:16.000000000","message":"nit: attachment","commit_id":"f685d069a6f3ddb7a5099117f2973bf586eccaf0"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"1ef41b9c9152b8332e9a52712ef25d37f19170f6","unresolved":false,"context_lines":[{"line_number":63,"context_line":"   complete the reimage. Like we use for volume-extend."},{"line_number":64,"context_line":"   See `perform_resize_volume_online`_ for details."},{"line_number":65,"context_line":"#. After successful completion of the re-image operation, update the empty"},{"line_number":66,"context_line":"   volume attchment in Cinder with the connector info passed during re-image"},{"line_number":67,"context_line":"   call and return connection info to Nova."},{"line_number":68,"context_line":"#. After Nova completes the connection with brick, complete the attachment"},{"line_number":69,"context_line":"   marking the volume ``in-use``."}],"source_content_type":"text/x-rst","patch_set":5,"id":"92fb9b72_391c8769","line":66,"range":{"start_line":66,"start_character":10,"end_line":66,"end_character":19},"in_reply_to":"bb2fe36b_29495b38","updated":"2021-11-16 11:53:46.000000000","message":"Done","commit_id":"f685d069a6f3ddb7a5099117f2973bf586eccaf0"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"71d32f404505199e536b0f6bcfbb4641b1da50d2","unresolved":true,"context_lines":[{"line_number":79,"context_line":"  will *not* attempt to update the volume attachment records with the host"},{"line_number":80,"context_line":"  connector again on the volume in error status."},{"line_number":81,"context_line":"* If the cinder API itself returns a \u003e\u003d400 error, nothing changed about the"},{"line_number":82,"context_line":"  root volume and in that case the migration status can be \u0027failed\u0027 but the"},{"line_number":83,"context_line":"  instance status should go back to what it was (we can see how"},{"line_number":84,"context_line":"  _error_out_instance_on_exception is used)."},{"line_number":85,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"c47acba9_14b22221","line":82,"range":{"start_line":82,"start_character":35,"end_line":82,"end_character":67},"updated":"2021-11-16 09:30:16.000000000","message":"do we have migration object for a rebuild operation? I guess you mean the instance action should be failed.","commit_id":"f685d069a6f3ddb7a5099117f2973bf586eccaf0"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"54b702a256a8a30fe48cafb61e646598f63a324e","unresolved":false,"context_lines":[{"line_number":79,"context_line":"  will *not* attempt to update the volume attachment records with the host"},{"line_number":80,"context_line":"  connector again on the volume in error status."},{"line_number":81,"context_line":"* If the cinder API itself returns a \u003e\u003d400 error, nothing changed about the"},{"line_number":82,"context_line":"  root volume and in that case the migration status can be \u0027failed\u0027 but the"},{"line_number":83,"context_line":"  instance status should go back to what it was (we can see how"},{"line_number":84,"context_line":"  _error_out_instance_on_exception is used)."},{"line_number":85,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"4174a7f5_0168aac2","line":82,"range":{"start_line":82,"start_character":35,"end_line":82,"end_character":67},"in_reply_to":"2025576c_80ec250f","updated":"2021-11-18 15:28:18.000000000","message":"Done","commit_id":"f685d069a6f3ddb7a5099117f2973bf586eccaf0"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"54b702a256a8a30fe48cafb61e646598f63a324e","unresolved":false,"context_lines":[{"line_number":79,"context_line":"  will *not* attempt to update the volume attachment records with the host"},{"line_number":80,"context_line":"  connector again on the volume in error status."},{"line_number":81,"context_line":"* If the cinder API itself returns a \u003e\u003d400 error, nothing changed about the"},{"line_number":82,"context_line":"  root volume and in that case the migration status can be \u0027failed\u0027 but the"},{"line_number":83,"context_line":"  instance status should go back to what it was (we can see how"},{"line_number":84,"context_line":"  _error_out_instance_on_exception is used)."},{"line_number":85,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"42e1ea39_1446f701","line":82,"range":{"start_line":82,"start_character":35,"end_line":82,"end_character":67},"in_reply_to":"2025576c_80ec250f","updated":"2021-11-18 15:28:18.000000000","message":"Done","commit_id":"f685d069a6f3ddb7a5099117f2973bf586eccaf0"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"1ef41b9c9152b8332e9a52712ef25d37f19170f6","unresolved":true,"context_lines":[{"line_number":79,"context_line":"  will *not* attempt to update the volume attachment records with the host"},{"line_number":80,"context_line":"  connector again on the volume in error status."},{"line_number":81,"context_line":"* If the cinder API itself returns a \u003e\u003d400 error, nothing changed about the"},{"line_number":82,"context_line":"  root volume and in that case the migration status can be \u0027failed\u0027 but the"},{"line_number":83,"context_line":"  instance status should go back to what it was (we can see how"},{"line_number":84,"context_line":"  _error_out_instance_on_exception is used)."},{"line_number":85,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"2025576c_80ec250f","line":82,"range":{"start_line":82,"start_character":35,"end_line":82,"end_character":67},"in_reply_to":"c47acba9_14b22221","updated":"2021-11-16 11:53:46.000000000","message":"I think it was referring to volume\u0027s migration status to be \u0027failed\u0027 but i don\u0027t see much reasoning behind it. Updated in next PS.","commit_id":"f685d069a6f3ddb7a5099117f2973bf586eccaf0"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c8b1053bb8f93665b42292357a99fc6cd30affc4","unresolved":true,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"* As a user, I would like to rebuild my volume-backed server with a new image."},{"line_number":31,"context_line":"* As a nova developer, I would like to have feature parity in the compute API"},{"line_number":32,"context_line":"  for volume-backed and image-backed servers."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Proposed change"},{"line_number":35,"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":6,"id":"2f6da2f6_31561428","line":32,"updated":"2021-11-16 15:02:21.000000000","message":"indeed.","commit_id":"4f6898d155f9a4ee70e7ea6c5281e3656b40b1d0"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"54b702a256a8a30fe48cafb61e646598f63a324e","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"* As a user, I would like to rebuild my volume-backed server with a new image."},{"line_number":31,"context_line":"* As a nova developer, I would like to have feature parity in the compute API"},{"line_number":32,"context_line":"  for volume-backed and image-backed servers."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Proposed change"},{"line_number":35,"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":6,"id":"e8382ff2_6873c77e","line":32,"in_reply_to":"2f6da2f6_31561428","updated":"2021-11-18 15:28:18.000000000","message":"Done","commit_id":"4f6898d155f9a4ee70e7ea6c5281e3656b40b1d0"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c8b1053bb8f93665b42292357a99fc6cd30affc4","unresolved":true,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"#. A new request parameter, ``reimage_volume`` (boolean), will be added to the"},{"line_number":41,"context_line":"   existing reimage API call which, if ``True``, will indicate if the user"},{"line_number":42,"context_line":"   wants to reimage a volume backed instance. By default, it will be ``False``."},{"line_number":43,"context_line":"#. Has the new API microversion been requested. If it is old API microversion"},{"line_number":44,"context_line":"   request, then it should be 400 returned."},{"line_number":45,"context_line":"#. Provide a COMPUTE_REBUILD_BFV trait for knowing if the compute node can"}],"source_content_type":"text/x-rst","patch_set":6,"id":"6fa037b5_979b62b9","line":42,"range":{"start_line":42,"start_character":46,"end_line":42,"end_character":79},"updated":"2021-11-16 15:02:21.000000000","message":"cool, so we don\u0027t change the behaviour by default.","commit_id":"4f6898d155f9a4ee70e7ea6c5281e3656b40b1d0"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"54b702a256a8a30fe48cafb61e646598f63a324e","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"#. A new request parameter, ``reimage_volume`` (boolean), will be added to the"},{"line_number":41,"context_line":"   existing reimage API call which, if ``True``, will indicate if the user"},{"line_number":42,"context_line":"   wants to reimage a volume backed instance. By default, it will be ``False``."},{"line_number":43,"context_line":"#. Has the new API microversion been requested. If it is old API microversion"},{"line_number":44,"context_line":"   request, then it should be 400 returned."},{"line_number":45,"context_line":"#. Provide a COMPUTE_REBUILD_BFV trait for knowing if the compute node can"}],"source_content_type":"text/x-rst","patch_set":6,"id":"864cfe90_374c7d55","line":42,"range":{"start_line":42,"start_character":46,"end_line":42,"end_character":79},"in_reply_to":"6fa037b5_979b62b9","updated":"2021-11-18 15:28:18.000000000","message":"Done","commit_id":"4f6898d155f9a4ee70e7ea6c5281e3656b40b1d0"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c8b1053bb8f93665b42292357a99fc6cd30affc4","unresolved":true,"context_lines":[{"line_number":43,"context_line":"#. Has the new API microversion been requested. If it is old API microversion"},{"line_number":44,"context_line":"   request, then it should be 400 returned."},{"line_number":45,"context_line":"#. Provide a COMPUTE_REBUILD_BFV trait for knowing if the compute node can"},{"line_number":46,"context_line":"   support rebuild."},{"line_number":47,"context_line":"   if not, will raise RebuildVolumeBackedServerNotSupport exception."},{"line_number":48,"context_line":"#. If the cinder microversion is new enough to support reimage"},{"line_number":49,"context_line":"   the root volume. If not, will raise CinderAPIVersionNotAvailable"}],"source_content_type":"text/x-rst","patch_set":6,"id":"77ba139a_49acb977","line":46,"range":{"start_line":46,"start_character":11,"end_line":46,"end_character":19},"updated":"2021-11-16 15:02:21.000000000","message":"nit: can support volume-backed server rebuid, but meh.","commit_id":"4f6898d155f9a4ee70e7ea6c5281e3656b40b1d0"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"d820c80af53f27f17a5f3bd6d5efc7e5f7680264","unresolved":false,"context_lines":[{"line_number":43,"context_line":"#. Has the new API microversion been requested. If it is old API microversion"},{"line_number":44,"context_line":"   request, then it should be 400 returned."},{"line_number":45,"context_line":"#. Provide a COMPUTE_REBUILD_BFV trait for knowing if the compute node can"},{"line_number":46,"context_line":"   support rebuild."},{"line_number":47,"context_line":"   if not, will raise RebuildVolumeBackedServerNotSupport exception."},{"line_number":48,"context_line":"#. If the cinder microversion is new enough to support reimage"},{"line_number":49,"context_line":"   the root volume. If not, will raise CinderAPIVersionNotAvailable"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ff3afccb_3c2e2711","line":46,"range":{"start_line":46,"start_character":11,"end_line":46,"end_character":19},"in_reply_to":"77ba139a_49acb977","updated":"2021-11-17 06:27:55.000000000","message":"Done","commit_id":"4f6898d155f9a4ee70e7ea6c5281e3656b40b1d0"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c8b1053bb8f93665b42292357a99fc6cd30affc4","unresolved":true,"context_lines":[{"line_number":44,"context_line":"   request, then it should be 400 returned."},{"line_number":45,"context_line":"#. Provide a COMPUTE_REBUILD_BFV trait for knowing if the compute node can"},{"line_number":46,"context_line":"   support rebuild."},{"line_number":47,"context_line":"   if not, will raise RebuildVolumeBackedServerNotSupport exception."},{"line_number":48,"context_line":"#. If the cinder microversion is new enough to support reimage"},{"line_number":49,"context_line":"   the root volume. If not, will raise CinderAPIVersionNotAvailable"},{"line_number":50,"context_line":"   exception."}],"source_content_type":"text/x-rst","patch_set":6,"id":"1e540ec0_88128510","line":47,"updated":"2021-11-16 15:02:21.000000000","message":"follow-up ask : who will raise this exception ? I guess the nova-compute service ?\nWhen this exception could be raised ? When rebuilding, I guess, in case we eventually end up here ?","commit_id":"4f6898d155f9a4ee70e7ea6c5281e3656b40b1d0"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"d820c80af53f27f17a5f3bd6d5efc7e5f7680264","unresolved":true,"context_lines":[{"line_number":44,"context_line":"   request, then it should be 400 returned."},{"line_number":45,"context_line":"#. Provide a COMPUTE_REBUILD_BFV trait for knowing if the compute node can"},{"line_number":46,"context_line":"   support rebuild."},{"line_number":47,"context_line":"   if not, will raise RebuildVolumeBackedServerNotSupport exception."},{"line_number":48,"context_line":"#. If the cinder microversion is new enough to support reimage"},{"line_number":49,"context_line":"   the root volume. If not, will raise CinderAPIVersionNotAvailable"},{"line_number":50,"context_line":"   exception."}],"source_content_type":"text/x-rst","patch_set":6,"id":"bd7382bf_6e55b4e5","line":47,"in_reply_to":"1e540ec0_88128510","updated":"2021-11-17 06:27:55.000000000","message":"I assume this should be raised when the compute node version is not new enough to support the rebuild. I\u0027m not very well aware about the nova implementation of it but maybe we can improve on it during implementation.","commit_id":"4f6898d155f9a4ee70e7ea6c5281e3656b40b1d0"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"54b702a256a8a30fe48cafb61e646598f63a324e","unresolved":false,"context_lines":[{"line_number":44,"context_line":"   request, then it should be 400 returned."},{"line_number":45,"context_line":"#. Provide a COMPUTE_REBUILD_BFV trait for knowing if the compute node can"},{"line_number":46,"context_line":"   support rebuild."},{"line_number":47,"context_line":"   if not, will raise RebuildVolumeBackedServerNotSupport exception."},{"line_number":48,"context_line":"#. If the cinder microversion is new enough to support reimage"},{"line_number":49,"context_line":"   the root volume. If not, will raise CinderAPIVersionNotAvailable"},{"line_number":50,"context_line":"   exception."}],"source_content_type":"text/x-rst","patch_set":6,"id":"602f5f76_90d25898","line":47,"in_reply_to":"bd7382bf_6e55b4e5","updated":"2021-11-18 15:28:18.000000000","message":"Done","commit_id":"4f6898d155f9a4ee70e7ea6c5281e3656b40b1d0"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c8b1053bb8f93665b42292357a99fc6cd30affc4","unresolved":true,"context_lines":[{"line_number":48,"context_line":"#. If the cinder microversion is new enough to support reimage"},{"line_number":49,"context_line":"   the root volume. If not, will raise CinderAPIVersionNotAvailable"},{"line_number":50,"context_line":"   exception."},{"line_number":51,"context_line":"#. Incase of multiattach volumes, n-api will reject the request since"},{"line_number":52,"context_line":"   rebuilding multiattach volumes require complex attachment handling and"},{"line_number":53,"context_line":"   the effort would outweigh the benefit."},{"line_number":54,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"6e88ee44_39af8552","line":51,"range":{"start_line":51,"start_character":3,"end_line":51,"end_character":9},"updated":"2021-11-16 15:02:21.000000000","message":"nit: in case","commit_id":"4f6898d155f9a4ee70e7ea6c5281e3656b40b1d0"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"d820c80af53f27f17a5f3bd6d5efc7e5f7680264","unresolved":false,"context_lines":[{"line_number":48,"context_line":"#. If the cinder microversion is new enough to support reimage"},{"line_number":49,"context_line":"   the root volume. If not, will raise CinderAPIVersionNotAvailable"},{"line_number":50,"context_line":"   exception."},{"line_number":51,"context_line":"#. Incase of multiattach volumes, n-api will reject the request since"},{"line_number":52,"context_line":"   rebuilding multiattach volumes require complex attachment handling and"},{"line_number":53,"context_line":"   the effort would outweigh the benefit."},{"line_number":54,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"0cc83c76_88fb8f72","line":51,"range":{"start_line":51,"start_character":3,"end_line":51,"end_character":9},"in_reply_to":"6e88ee44_39af8552","updated":"2021-11-17 06:27:55.000000000","message":"Done","commit_id":"4f6898d155f9a4ee70e7ea6c5281e3656b40b1d0"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c8b1053bb8f93665b42292357a99fc6cd30affc4","unresolved":true,"context_lines":[{"line_number":50,"context_line":"   exception."},{"line_number":51,"context_line":"#. Incase of multiattach volumes, n-api will reject the request since"},{"line_number":52,"context_line":"   rebuilding multiattach volumes require complex attachment handling and"},{"line_number":53,"context_line":"   the effort would outweigh the benefit."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Then the nova-compute manager will perform the following steps:"},{"line_number":56,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"fe55d4c8_792c7faf","line":53,"updated":"2021-11-16 15:02:21.000000000","message":"++","commit_id":"4f6898d155f9a4ee70e7ea6c5281e3656b40b1d0"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"54b702a256a8a30fe48cafb61e646598f63a324e","unresolved":false,"context_lines":[{"line_number":50,"context_line":"   exception."},{"line_number":51,"context_line":"#. Incase of multiattach volumes, n-api will reject the request since"},{"line_number":52,"context_line":"   rebuilding multiattach volumes require complex attachment handling and"},{"line_number":53,"context_line":"   the effort would outweigh the benefit."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Then the nova-compute manager will perform the following steps:"},{"line_number":56,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"4900add8_d9d92b0b","line":53,"in_reply_to":"fe55d4c8_792c7faf","updated":"2021-11-18 15:28:18.000000000","message":"Done","commit_id":"4f6898d155f9a4ee70e7ea6c5281e3656b40b1d0"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c8b1053bb8f93665b42292357a99fc6cd30affc4","unresolved":true,"context_lines":[{"line_number":69,"context_line":"   volume attachment in Cinder with the connector info passed during re-image"},{"line_number":70,"context_line":"   call and return connection info to Nova."},{"line_number":71,"context_line":"#. After Nova completes the connection with brick, complete the attachment"},{"line_number":72,"context_line":"   marking the volume ``in-use``."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":".. _perform_resize_volume_online: https://review.opendev.org/c/openstack/nova/+/454322"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"bbf4f823_ec4e650e","line":72,"updated":"2021-11-16 15:02:21.000000000","message":"we agreed this flow at the PTG.","commit_id":"4f6898d155f9a4ee70e7ea6c5281e3656b40b1d0"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"54b702a256a8a30fe48cafb61e646598f63a324e","unresolved":false,"context_lines":[{"line_number":69,"context_line":"   volume attachment in Cinder with the connector info passed during re-image"},{"line_number":70,"context_line":"   call and return connection info to Nova."},{"line_number":71,"context_line":"#. After Nova completes the connection with brick, complete the attachment"},{"line_number":72,"context_line":"   marking the volume ``in-use``."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":".. _perform_resize_volume_online: https://review.opendev.org/c/openstack/nova/+/454322"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"cbc6e4f4_15104076","line":72,"in_reply_to":"bbf4f823_ec4e650e","updated":"2021-11-18 15:28:18.000000000","message":"Done","commit_id":"4f6898d155f9a4ee70e7ea6c5281e3656b40b1d0"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c8b1053bb8f93665b42292357a99fc6cd30affc4","unresolved":true,"context_lines":[{"line_number":155,"context_line":"---------------------"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"The python-novaclient and python-openstackclient will be updated"},{"line_number":158,"context_line":"to support the new microversion."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"Performance Impact"},{"line_number":161,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"a06f35aa_dd2e00f8","line":158,"updated":"2021-11-16 15:02:21.000000000","message":".... and the SDK, right?\nhttps://github.com/openstack/openstacksdk/blob/c186df9/openstack/compute/v2/server.py#L276","commit_id":"4f6898d155f9a4ee70e7ea6c5281e3656b40b1d0"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"d820c80af53f27f17a5f3bd6d5efc7e5f7680264","unresolved":false,"context_lines":[{"line_number":155,"context_line":"---------------------"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"The python-novaclient and python-openstackclient will be updated"},{"line_number":158,"context_line":"to support the new microversion."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"Performance Impact"},{"line_number":161,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"f2468590_9d822bc3","line":158,"in_reply_to":"a06f35aa_dd2e00f8","updated":"2021-11-17 06:27:55.000000000","message":"Done","commit_id":"4f6898d155f9a4ee70e7ea6c5281e3656b40b1d0"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c8b1053bb8f93665b42292357a99fc6cd30affc4","unresolved":true,"context_lines":[{"line_number":160,"context_line":"Performance Impact"},{"line_number":161,"context_line":"------------------"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"The operation will take longer because of the orchestration"},{"line_number":164,"context_line":"involved and the work that needs to happen in Cinder."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Other deployer impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"07458457_b15fb207","line":163,"range":{"start_line":163,"start_character":46,"end_line":163,"end_character":59},"updated":"2021-11-16 15:02:21.000000000","message":"shhhhhhht...\nNah, this is not orchestration, per se, it\u0027s rather an external dependency ask.","commit_id":"4f6898d155f9a4ee70e7ea6c5281e3656b40b1d0"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"d820c80af53f27f17a5f3bd6d5efc7e5f7680264","unresolved":false,"context_lines":[{"line_number":160,"context_line":"Performance Impact"},{"line_number":161,"context_line":"------------------"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"The operation will take longer because of the orchestration"},{"line_number":164,"context_line":"involved and the work that needs to happen in Cinder."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Other deployer impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f040643_6837efb6","line":163,"range":{"start_line":163,"start_character":46,"end_line":163,"end_character":59},"in_reply_to":"07458457_b15fb207","updated":"2021-11-17 06:27:55.000000000","message":"Done","commit_id":"4f6898d155f9a4ee70e7ea6c5281e3656b40b1d0"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c8b1053bb8f93665b42292357a99fc6cd30affc4","unresolved":true,"context_lines":[{"line_number":181,"context_line":"The API microversion and compute service version will also be incremented"},{"line_number":182,"context_line":"to indicate the new support, therefore users will not be able to leverage"},{"line_number":183,"context_line":"the feature until the nova-compute service hosting a volume-backed instance"},{"line_number":184,"context_line":"is upgraded."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"Implementation"},{"line_number":187,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"46c3c9cc_4a238b92","line":184,"updated":"2021-11-16 15:02:21.000000000","message":"works for me. Another alternative could have been to wait until all computes are fully upgraded, but I think this is a reasonable rolling upgrade case.\n\nMy only concern could be that some bad guy could get whether the related compute is not upgraded by the exception leak, but I think it could be difficult to very find this.","commit_id":"4f6898d155f9a4ee70e7ea6c5281e3656b40b1d0"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"54b702a256a8a30fe48cafb61e646598f63a324e","unresolved":false,"context_lines":[{"line_number":181,"context_line":"The API microversion and compute service version will also be incremented"},{"line_number":182,"context_line":"to indicate the new support, therefore users will not be able to leverage"},{"line_number":183,"context_line":"the feature until the nova-compute service hosting a volume-backed instance"},{"line_number":184,"context_line":"is upgraded."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"Implementation"},{"line_number":187,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1057ec6e_76b9129b","line":184,"in_reply_to":"135ab8f9_dcb0cdb2","updated":"2021-11-18 15:28:18.000000000","message":"Done","commit_id":"4f6898d155f9a4ee70e7ea6c5281e3656b40b1d0"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"d820c80af53f27f17a5f3bd6d5efc7e5f7680264","unresolved":true,"context_lines":[{"line_number":181,"context_line":"The API microversion and compute service version will also be incremented"},{"line_number":182,"context_line":"to indicate the new support, therefore users will not be able to leverage"},{"line_number":183,"context_line":"the feature until the nova-compute service hosting a volume-backed instance"},{"line_number":184,"context_line":"is upgraded."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"Implementation"},{"line_number":187,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"135ab8f9_dcb0cdb2","line":184,"in_reply_to":"46c3c9cc_4a238b92","updated":"2021-11-17 06:27:55.000000000","message":"Ack, I\u0027m not sure how to achieve this sync since the compute node receiving the request can have compute version check but not sure about checking other computes.\nBut i agree this might create a mismatch since some computes will be able to do the reimage whereas others won\u0027t but depends on how common this scenario is.","commit_id":"4f6898d155f9a4ee70e7ea6c5281e3656b40b1d0"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"101acaff14de88ba7cb546adf19bef6e8223649d","unresolved":true,"context_lines":[{"line_number":37,"context_line":"First, change the existing API for rebuilding a volume-backed server."},{"line_number":38,"context_line":"Then the API flow would be:"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"#. A new request parameter, ``reimage_volume`` (boolean), will be added to the"},{"line_number":41,"context_line":"   existing reimage API call which, if ``True``, will indicate if the user"},{"line_number":42,"context_line":"   wants to reimage a volume backed instance. By default, it will be ``False``."},{"line_number":43,"context_line":"#. Has the new API microversion been requested. If it is old API microversion"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a7a4fd9_47d6459e","line":40,"range":{"start_line":40,"start_character":30,"end_line":40,"end_character":44},"updated":"2021-11-17 11:39:29.000000000","message":"supernit - I wonder if we need to name this `reimage_boot_volume` to be explicit about the volume being reimaged here?\n\nI don\u0027t think you\u0027ve highlighted anywhere that *only* the boot volume is reimaged btw, all other attachments are left alone.","commit_id":"d3fd71d0d2c78e3d666d312b83a8874d035a76eb"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"867d70f494e0d04c5ddc0f75926b1de01bca9f1d","unresolved":false,"context_lines":[{"line_number":37,"context_line":"First, change the existing API for rebuilding a volume-backed server."},{"line_number":38,"context_line":"Then the API flow would be:"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"#. A new request parameter, ``reimage_volume`` (boolean), will be added to the"},{"line_number":41,"context_line":"   existing reimage API call which, if ``True``, will indicate if the user"},{"line_number":42,"context_line":"   wants to reimage a volume backed instance. By default, it will be ``False``."},{"line_number":43,"context_line":"#. Has the new API microversion been requested. If it is old API microversion"}],"source_content_type":"text/x-rst","patch_set":7,"id":"bdf6b08f_2e05a90b","line":40,"range":{"start_line":40,"start_character":30,"end_line":40,"end_character":44},"in_reply_to":"9a7a4fd9_47d6459e","updated":"2021-11-18 10:33:39.000000000","message":"Done","commit_id":"d3fd71d0d2c78e3d666d312b83a8874d035a76eb"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"101acaff14de88ba7cb546adf19bef6e8223649d","unresolved":true,"context_lines":[{"line_number":46,"context_line":"   support volume-backed server rebuild."},{"line_number":47,"context_line":"   if not, will raise RebuildVolumeBackedServerNotSupport exception."},{"line_number":48,"context_line":"#. If the cinder microversion is new enough to support reimage"},{"line_number":49,"context_line":"   the root volume. If not, will raise CinderAPIVersionNotAvailable"},{"line_number":50,"context_line":"   exception."},{"line_number":51,"context_line":"#. In case of multiattach volumes, n-api will reject the request since"},{"line_number":52,"context_line":"   rebuilding multiattach volumes require complex attachment handling and"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ad70ea0a_287e791f","line":49,"range":{"start_line":49,"start_character":7,"end_line":49,"end_character":11},"updated":"2021-11-17 11:39:29.000000000","message":"nit - if we go with boot above you might want to change this as well.","commit_id":"d3fd71d0d2c78e3d666d312b83a8874d035a76eb"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"867d70f494e0d04c5ddc0f75926b1de01bca9f1d","unresolved":false,"context_lines":[{"line_number":46,"context_line":"   support volume-backed server rebuild."},{"line_number":47,"context_line":"   if not, will raise RebuildVolumeBackedServerNotSupport exception."},{"line_number":48,"context_line":"#. If the cinder microversion is new enough to support reimage"},{"line_number":49,"context_line":"   the root volume. If not, will raise CinderAPIVersionNotAvailable"},{"line_number":50,"context_line":"   exception."},{"line_number":51,"context_line":"#. In case of multiattach volumes, n-api will reject the request since"},{"line_number":52,"context_line":"   rebuilding multiattach volumes require complex attachment handling and"}],"source_content_type":"text/x-rst","patch_set":7,"id":"f5086dd3_e58a3644","line":49,"range":{"start_line":49,"start_character":7,"end_line":49,"end_character":11},"in_reply_to":"ad70ea0a_287e791f","updated":"2021-11-18 10:33:39.000000000","message":"Done","commit_id":"d3fd71d0d2c78e3d666d312b83a8874d035a76eb"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"101acaff14de88ba7cb546adf19bef6e8223649d","unresolved":true,"context_lines":[{"line_number":51,"context_line":"#. In case of multiattach volumes, n-api will reject the request since"},{"line_number":52,"context_line":"   rebuilding multiattach volumes require complex attachment handling and"},{"line_number":53,"context_line":"   the effort would outweigh the benefit."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Then the nova-compute manager will perform the following steps:"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"#. Create an empty (no connector) volume attachment for the volume and"}],"source_content_type":"text/x-rst","patch_set":7,"id":"df3cb0a3_cf6821a4","line":54,"updated":"2021-11-17 11:39:29.000000000","message":"Now that we have the request param should we also reject the request if the instance isn\u0027t booting from a volume?","commit_id":"d3fd71d0d2c78e3d666d312b83a8874d035a76eb"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"867d70f494e0d04c5ddc0f75926b1de01bca9f1d","unresolved":false,"context_lines":[{"line_number":51,"context_line":"#. In case of multiattach volumes, n-api will reject the request since"},{"line_number":52,"context_line":"   rebuilding multiattach volumes require complex attachment handling and"},{"line_number":53,"context_line":"   the effort would outweigh the benefit."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Then the nova-compute manager will perform the following steps:"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"#. Create an empty (no connector) volume attachment for the volume and"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7f3a59a0_87a5a3f6","line":54,"in_reply_to":"df3cb0a3_cf6821a4","updated":"2021-11-18 10:33:39.000000000","message":"Done","commit_id":"d3fd71d0d2c78e3d666d312b83a8874d035a76eb"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"101acaff14de88ba7cb546adf19bef6e8223649d","unresolved":true,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Then the nova-compute manager will perform the following steps:"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"#. Create an empty (no connector) volume attachment for the volume and"},{"line_number":58,"context_line":"   server. This ensures the volume remains ``reserved`` through the next"},{"line_number":59,"context_line":"   step."},{"line_number":60,"context_line":"#. Delete the existing volume attachment (the old one)."},{"line_number":61,"context_line":"#. The above two steps are needed to keep the volume in ``reserved`` state"},{"line_number":62,"context_line":"   as a management state which is required by cinder to perform re-image"},{"line_number":63,"context_line":"   operation on it."}],"source_content_type":"text/x-rst","patch_set":7,"id":"78e22cbe_01383d01","line":60,"range":{"start_line":57,"start_character":0,"end_line":60,"end_character":55},"updated":"2021-11-17 11:39:29.000000000","message":"It\u0027s worth highlighting in this Nova spec that we should save the new volume attachment UUID to the bdm record at this point.","commit_id":"d3fd71d0d2c78e3d666d312b83a8874d035a76eb"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"867d70f494e0d04c5ddc0f75926b1de01bca9f1d","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Then the nova-compute manager will perform the following steps:"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"#. Create an empty (no connector) volume attachment for the volume and"},{"line_number":58,"context_line":"   server. This ensures the volume remains ``reserved`` through the next"},{"line_number":59,"context_line":"   step."},{"line_number":60,"context_line":"#. Delete the existing volume attachment (the old one)."},{"line_number":61,"context_line":"#. The above two steps are needed to keep the volume in ``reserved`` state"},{"line_number":62,"context_line":"   as a management state which is required by cinder to perform re-image"},{"line_number":63,"context_line":"   operation on it."}],"source_content_type":"text/x-rst","patch_set":7,"id":"ba85e170_8df211d4","line":60,"range":{"start_line":57,"start_character":0,"end_line":60,"end_character":55},"in_reply_to":"78e22cbe_01383d01","updated":"2021-11-18 10:33:39.000000000","message":"Done","commit_id":"d3fd71d0d2c78e3d666d312b83a8874d035a76eb"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"101acaff14de88ba7cb546adf19bef6e8223649d","unresolved":true,"context_lines":[{"line_number":61,"context_line":"#. The above two steps are needed to keep the volume in ``reserved`` state"},{"line_number":62,"context_line":"   as a management state which is required by cinder to perform re-image"},{"line_number":63,"context_line":"   operation on it."},{"line_number":64,"context_line":"#. Call the new ``os-reimage`` cinder API and pass connector information."},{"line_number":65,"context_line":"#. Add a new \u0027volume-reimaged\u0027 external event to wait for cinder to"},{"line_number":66,"context_line":"   complete the reimage. Like we use for volume-extend."},{"line_number":67,"context_line":"   See `perform_resize_volume_online`_ for details."}],"source_content_type":"text/x-rst","patch_set":7,"id":"1d6acea5_61b1e805","line":64,"range":{"start_line":64,"start_character":0,"end_line":64,"end_character":73},"updated":"2021-11-17 11:39:29.000000000","message":"Apologies I\u0027ve been out sick for a few days. Returning to this hill that I appear to be dying alone on I\u0027m still against passing the connector here. FWIW you would also need to pass the volume attachment UUID for this to work, something that is missing from the cinder spec.\n\nIMHO it\u0027s easier and more maintainable for both parties if the os-reimage API just reimages the volume and fires off the external event to Nova. Nova can then update the attachment and continue with the rebuild as normal.","commit_id":"d3fd71d0d2c78e3d666d312b83a8874d035a76eb"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"867d70f494e0d04c5ddc0f75926b1de01bca9f1d","unresolved":false,"context_lines":[{"line_number":61,"context_line":"#. The above two steps are needed to keep the volume in ``reserved`` state"},{"line_number":62,"context_line":"   as a management state which is required by cinder to perform re-image"},{"line_number":63,"context_line":"   operation on it."},{"line_number":64,"context_line":"#. Call the new ``os-reimage`` cinder API and pass connector information."},{"line_number":65,"context_line":"#. Add a new \u0027volume-reimaged\u0027 external event to wait for cinder to"},{"line_number":66,"context_line":"   complete the reimage. Like we use for volume-extend."},{"line_number":67,"context_line":"   See `perform_resize_volume_online`_ for details."}],"source_content_type":"text/x-rst","patch_set":7,"id":"0398e8e5_62f95f64","line":64,"range":{"start_line":64,"start_character":0,"end_line":64,"end_character":73},"in_reply_to":"1d6acea5_61b1e805","updated":"2021-11-18 10:33:39.000000000","message":"Done","commit_id":"d3fd71d0d2c78e3d666d312b83a8874d035a76eb"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"101acaff14de88ba7cb546adf19bef6e8223649d","unresolved":true,"context_lines":[{"line_number":65,"context_line":"#. Add a new \u0027volume-reimaged\u0027 external event to wait for cinder to"},{"line_number":66,"context_line":"   complete the reimage. Like we use for volume-extend."},{"line_number":67,"context_line":"   See `perform_resize_volume_online`_ for details."},{"line_number":68,"context_line":"#. After successful completion of the re-image operation, update the empty"},{"line_number":69,"context_line":"   volume attachment in Cinder with the connector info passed during re-image"},{"line_number":70,"context_line":"   call and return connection info to Nova."},{"line_number":71,"context_line":"#. After Nova completes the connection with brick, complete the attachment"},{"line_number":72,"context_line":"   marking the volume ``in-use``."},{"line_number":73,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"e0ef995f_8ccb9bc1","line":70,"range":{"start_line":68,"start_character":3,"end_line":70,"end_character":43},"updated":"2021-11-17 11:39:29.000000000","message":"Again if c-api/c-vol did this you would still need to get the connection_info back to Nova somehow and the way you\u0027ve listed things here suggests this is either async or after the external event is fired to Nova?","commit_id":"d3fd71d0d2c78e3d666d312b83a8874d035a76eb"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"54b702a256a8a30fe48cafb61e646598f63a324e","unresolved":false,"context_lines":[{"line_number":65,"context_line":"#. Add a new \u0027volume-reimaged\u0027 external event to wait for cinder to"},{"line_number":66,"context_line":"   complete the reimage. Like we use for volume-extend."},{"line_number":67,"context_line":"   See `perform_resize_volume_online`_ for details."},{"line_number":68,"context_line":"#. After successful completion of the re-image operation, update the empty"},{"line_number":69,"context_line":"   volume attachment in Cinder with the connector info passed during re-image"},{"line_number":70,"context_line":"   call and return connection info to Nova."},{"line_number":71,"context_line":"#. After Nova completes the connection with brick, complete the attachment"},{"line_number":72,"context_line":"   marking the volume ``in-use``."},{"line_number":73,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"8916c54e_52e2a5b2","line":70,"range":{"start_line":68,"start_character":3,"end_line":70,"end_character":43},"in_reply_to":"daf97424_d544b168","updated":"2021-11-18 15:28:18.000000000","message":"Done","commit_id":"d3fd71d0d2c78e3d666d312b83a8874d035a76eb"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"867d70f494e0d04c5ddc0f75926b1de01bca9f1d","unresolved":true,"context_lines":[{"line_number":65,"context_line":"#. Add a new \u0027volume-reimaged\u0027 external event to wait for cinder to"},{"line_number":66,"context_line":"   complete the reimage. Like we use for volume-extend."},{"line_number":67,"context_line":"   See `perform_resize_volume_online`_ for details."},{"line_number":68,"context_line":"#. After successful completion of the re-image operation, update the empty"},{"line_number":69,"context_line":"   volume attachment in Cinder with the connector info passed during re-image"},{"line_number":70,"context_line":"   call and return connection info to Nova."},{"line_number":71,"context_line":"#. After Nova completes the connection with brick, complete the attachment"},{"line_number":72,"context_line":"   marking the volume ``in-use``."},{"line_number":73,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"daf97424_d544b168","line":70,"range":{"start_line":68,"start_character":3,"end_line":70,"end_character":43},"in_reply_to":"e0ef995f_8ccb9bc1","updated":"2021-11-18 10:33:39.000000000","message":"I\u0027ve changed the design as suggested on L#64 and now Nova will call attachment update.","commit_id":"d3fd71d0d2c78e3d666d312b83a8874d035a76eb"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"101acaff14de88ba7cb546adf19bef6e8223649d","unresolved":true,"context_lines":[{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    {"},{"line_number":133,"context_line":"        \"rebuild\": {"},{"line_number":134,"context_line":"            \"reimage_volume\": \"False\""},{"line_number":135,"context_line":"        }"},{"line_number":136,"context_line":"    }"},{"line_number":137,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"8389c409_00940c00","line":134,"range":{"start_line":134,"start_character":31,"end_line":134,"end_character":36},"updated":"2021-11-17 11:39:29.000000000","message":"supernit - Shouldn\u0027t the example here actually enable a reimage of the boot volume?","commit_id":"d3fd71d0d2c78e3d666d312b83a8874d035a76eb"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"867d70f494e0d04c5ddc0f75926b1de01bca9f1d","unresolved":false,"context_lines":[{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    {"},{"line_number":133,"context_line":"        \"rebuild\": {"},{"line_number":134,"context_line":"            \"reimage_volume\": \"False\""},{"line_number":135,"context_line":"        }"},{"line_number":136,"context_line":"    }"},{"line_number":137,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"03020fcd_dc8b326f","line":134,"range":{"start_line":134,"start_character":31,"end_line":134,"end_character":36},"in_reply_to":"8389c409_00940c00","updated":"2021-11-18 10:33:39.000000000","message":"Done","commit_id":"d3fd71d0d2c78e3d666d312b83a8874d035a76eb"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"620293f69aabaf43d9315b8147427b7110772bea","unresolved":true,"context_lines":[{"line_number":37,"context_line":"First, change the existing API for rebuilding a volume-backed server."},{"line_number":38,"context_line":"Then the API flow would be:"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"#. A new request parameter, ``reimage_boot_volume`` (boolean), will be added"},{"line_number":41,"context_line":"   to the existing reimage API call which, if ``True``, will indicate if the"},{"line_number":42,"context_line":"   user wants to reimage a volume backed instance. By default, it will be"},{"line_number":43,"context_line":"   ``False``."}],"source_content_type":"text/x-rst","patch_set":8,"id":"9235b3e3_d5ac3066","line":40,"range":{"start_line":40,"start_character":30,"end_line":40,"end_character":49},"updated":"2021-12-03 11:03:13.000000000","message":"What is the need for this parameter?  As a user I don\u0027t think this should be relevant.  If I want to reimage a boot volume I most likely wouldn\u0027t care if it\u0027s ephemeral or volume-backed, right?","commit_id":"e303111ec91e439dc6ac8fc177655d31ded3d36f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"754975a61fe550da8330a18c96a0fe4d8e13297d","unresolved":false,"context_lines":[{"line_number":37,"context_line":"First, change the existing API for rebuilding a volume-backed server."},{"line_number":38,"context_line":"Then the API flow would be:"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"#. A new request parameter, ``reimage_boot_volume`` (boolean), will be added"},{"line_number":41,"context_line":"   to the existing reimage API call which, if ``True``, will indicate if the"},{"line_number":42,"context_line":"   user wants to reimage a volume backed instance. By default, it will be"},{"line_number":43,"context_line":"   ``False``."}],"source_content_type":"text/x-rst","patch_set":8,"id":"0f02539c_7b88ed4e","line":40,"range":{"start_line":40,"start_character":30,"end_line":40,"end_character":49},"in_reply_to":"06436b48_2b84faa1","updated":"2021-12-03 12:46:42.000000000","message":"Thank you for the clarification.  I think adding your explaining paragraph would be beneficial here.","commit_id":"e303111ec91e439dc6ac8fc177655d31ded3d36f"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"d2243f5abe6788139a73797fadaadffeedaa495d","unresolved":true,"context_lines":[{"line_number":37,"context_line":"First, change the existing API for rebuilding a volume-backed server."},{"line_number":38,"context_line":"Then the API flow would be:"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"#. A new request parameter, ``reimage_boot_volume`` (boolean), will be added"},{"line_number":41,"context_line":"   to the existing reimage API call which, if ``True``, will indicate if the"},{"line_number":42,"context_line":"   user wants to reimage a volume backed instance. By default, it will be"},{"line_number":43,"context_line":"   ``False``."}],"source_content_type":"text/x-rst","patch_set":8,"id":"06436b48_2b84faa1","line":40,"range":{"start_line":40,"start_character":30,"end_line":40,"end_character":49},"in_reply_to":"9235b3e3_d5ac3066","updated":"2021-12-03 11:32:37.000000000","message":"https://docs.openstack.org/api-ref/compute/?expanded\u003drebuild-server-rebuild-action-detail#rebuild-server-rebuild-action\n\nThe previous behaviour of the API would retain the contents of the boot volume. Without this new parameter a user could request a rebuild with the newly introduced microversion (or more likely the 2.latest alias) and suddenly see their boot volume reimaged.  With this new parameter they now need to opt into the new behaviour by passing True *and* the new microversion.","commit_id":"e303111ec91e439dc6ac8fc177655d31ded3d36f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"620293f69aabaf43d9315b8147427b7110772bea","unresolved":true,"context_lines":[{"line_number":47,"context_line":"   request, then it should be 400 returned."},{"line_number":48,"context_line":"#. Provide a COMPUTE_REBUILD_BFV trait for knowing if the compute node can"},{"line_number":49,"context_line":"   support volume-backed server rebuild."},{"line_number":50,"context_line":"   if not, will raise RebuildVolumeBackedServerNotSupport exception."},{"line_number":51,"context_line":"#. If the cinder microversion is new enough to support reimage"},{"line_number":52,"context_line":"   the boot volume. If not, will raise CinderAPIVersionNotAvailable"},{"line_number":53,"context_line":"   exception."}],"source_content_type":"text/x-rst","patch_set":8,"id":"58deff00_60b34c11","line":50,"range":{"start_line":50,"start_character":3,"end_line":50,"end_character":5},"updated":"2021-12-03 11:03:13.000000000","message":"nit: If","commit_id":"e303111ec91e439dc6ac8fc177655d31ded3d36f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"620293f69aabaf43d9315b8147427b7110772bea","unresolved":true,"context_lines":[{"line_number":51,"context_line":"#. If the cinder microversion is new enough to support reimage"},{"line_number":52,"context_line":"   the boot volume. If not, will raise CinderAPIVersionNotAvailable"},{"line_number":53,"context_line":"   exception."},{"line_number":54,"context_line":"#. In case of multiattach volumes, n-api will reject the request since"},{"line_number":55,"context_line":"   rebuilding multiattach volumes require complex attachment handling and"},{"line_number":56,"context_line":"   the effort would outweigh the benefit."},{"line_number":57,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"f6b586da_2335bf93","line":54,"range":{"start_line":54,"start_character":3,"end_line":54,"end_character":35},"updated":"2021-12-03 11:03:13.000000000","message":"?: Will this reject volumes that support multi-attach, or volumes that are currently attached to more than 1 instance?  We should be explicit here.","commit_id":"e303111ec91e439dc6ac8fc177655d31ded3d36f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"754975a61fe550da8330a18c96a0fe4d8e13297d","unresolved":false,"context_lines":[{"line_number":51,"context_line":"#. If the cinder microversion is new enough to support reimage"},{"line_number":52,"context_line":"   the boot volume. If not, will raise CinderAPIVersionNotAvailable"},{"line_number":53,"context_line":"   exception."},{"line_number":54,"context_line":"#. In case of multiattach volumes, n-api will reject the request since"},{"line_number":55,"context_line":"   rebuilding multiattach volumes require complex attachment handling and"},{"line_number":56,"context_line":"   the effort would outweigh the benefit."},{"line_number":57,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"09660660_ca109e46","line":54,"range":{"start_line":54,"start_character":3,"end_line":54,"end_character":35},"in_reply_to":"ea768ecd_80bf0206","updated":"2021-12-03 12:46:42.000000000","message":"Sounds reasonable, since users using read-only multiattach boot volumes is an unlikely scenario and the check is easier this way.","commit_id":"e303111ec91e439dc6ac8fc177655d31ded3d36f"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"d2243f5abe6788139a73797fadaadffeedaa495d","unresolved":true,"context_lines":[{"line_number":51,"context_line":"#. If the cinder microversion is new enough to support reimage"},{"line_number":52,"context_line":"   the boot volume. If not, will raise CinderAPIVersionNotAvailable"},{"line_number":53,"context_line":"   exception."},{"line_number":54,"context_line":"#. In case of multiattach volumes, n-api will reject the request since"},{"line_number":55,"context_line":"   rebuilding multiattach volumes require complex attachment handling and"},{"line_number":56,"context_line":"   the effort would outweigh the benefit."},{"line_number":57,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"ea768ecd_80bf0206","line":54,"range":{"start_line":54,"start_character":3,"end_line":54,"end_character":35},"in_reply_to":"f6b586da_2335bf93","updated":"2021-12-03 11:32:37.000000000","message":"I believe this check will be on the multiattach attribute of the volume, so multiattach capable without checking for actual attachments. As we are talking about boot volumes I\u0027m not sure this matters either way.","commit_id":"e303111ec91e439dc6ac8fc177655d31ded3d36f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"620293f69aabaf43d9315b8147427b7110772bea","unresolved":true,"context_lines":[{"line_number":65,"context_line":"#. The above two steps are needed to keep the volume in ``reserved`` state"},{"line_number":66,"context_line":"   as a management state which is required by cinder to perform re-image"},{"line_number":67,"context_line":"   operation on it."},{"line_number":68,"context_line":"#. Call the new ``os-reimage`` cinder API."},{"line_number":69,"context_line":"#. Add a new \u0027volume-reimaged\u0027 external event to wait for cinder to"},{"line_number":70,"context_line":"   complete the reimage. Like we use for volume-extend."},{"line_number":71,"context_line":"   See `perform_resize_volume_online`_ for details."}],"source_content_type":"text/x-rst","patch_set":8,"id":"8ccdeb68_e12fa179","line":68,"range":{"start_line":68,"start_character":0,"end_line":68,"end_character":42},"updated":"2021-12-03 11:03:13.000000000","message":"I think we should be clear about nova\u0027s expectations on this operation on the cinder spec and mention it here.\n\nDoes Nova expect the WWID of the volume to be preserved or not?  If cinder just attaches and copies data then the WWID will be preserved, but it may also change, since Cinder may decide to  clone the volume from cache or glance image.\n\nI don\u0027t know if these WWID that are present at the host level are propagated inside the VM, but if they are then there could be cases where this change can be problematic.  Software that locks a license on a server fingerprint that includes disks\u0027 IDs.\n\nShould we add an option in the ``os-reimage`` operation to tell cinder that creating a new physical disk is not an option?\n\nThe cinder volume ID will be preserved regardless of how cinder does the operation.","commit_id":"e303111ec91e439dc6ac8fc177655d31ded3d36f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"754975a61fe550da8330a18c96a0fe4d8e13297d","unresolved":false,"context_lines":[{"line_number":65,"context_line":"#. The above two steps are needed to keep the volume in ``reserved`` state"},{"line_number":66,"context_line":"   as a management state which is required by cinder to perform re-image"},{"line_number":67,"context_line":"   operation on it."},{"line_number":68,"context_line":"#. Call the new ``os-reimage`` cinder API."},{"line_number":69,"context_line":"#. Add a new \u0027volume-reimaged\u0027 external event to wait for cinder to"},{"line_number":70,"context_line":"   complete the reimage. Like we use for volume-extend."},{"line_number":71,"context_line":"   See `perform_resize_volume_online`_ for details."}],"source_content_type":"text/x-rst","patch_set":8,"id":"7ed940e0_bdd862c8","line":68,"range":{"start_line":68,"start_character":0,"end_line":68,"end_character":42},"in_reply_to":"53ad9572_f728eb85","updated":"2021-12-03 12:46:42.000000000","message":"Yes the flow is clear, and if the volume\u0027s ID doesn\u0027t propagate into the guest then we are safe and it\u0027s irrelevant how Cinder performs the operation.","commit_id":"e303111ec91e439dc6ac8fc177655d31ded3d36f"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"d2243f5abe6788139a73797fadaadffeedaa495d","unresolved":true,"context_lines":[{"line_number":65,"context_line":"#. The above two steps are needed to keep the volume in ``reserved`` state"},{"line_number":66,"context_line":"   as a management state which is required by cinder to perform re-image"},{"line_number":67,"context_line":"   operation on it."},{"line_number":68,"context_line":"#. Call the new ``os-reimage`` cinder API."},{"line_number":69,"context_line":"#. Add a new \u0027volume-reimaged\u0027 external event to wait for cinder to"},{"line_number":70,"context_line":"   complete the reimage. Like we use for volume-extend."},{"line_number":71,"context_line":"   See `perform_resize_volume_online`_ for details."}],"source_content_type":"text/x-rst","patch_set":8,"id":"53ad9572_f728eb85","line":68,"range":{"start_line":68,"start_character":0,"end_line":68,"end_character":42},"in_reply_to":"8ccdeb68_e12fa179","updated":"2021-12-03 11:32:37.000000000","message":"The WWIDs are not guest visable, the volume UUID is so we\u0027d expect that to stay the same.\n\nNova should disconnect the original volume either way at the start of the rebuild before calling os-reimage and then reconnect with the fresh connection_info below.","commit_id":"e303111ec91e439dc6ac8fc177655d31ded3d36f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"620293f69aabaf43d9315b8147427b7110772bea","unresolved":true,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Performance Impact"},{"line_number":167,"context_line":"------------------"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"The operation will take longer because of the external dependency"},{"line_number":170,"context_line":"involved and the work that needs to happen in Cinder."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"Other deployer impact"},{"line_number":173,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9d5ced42_524a7617","line":170,"range":{"start_line":168,"start_character":0,"end_line":170,"end_character":53},"updated":"2021-12-03 11:03:13.000000000","message":"Not necessarily. If cinder has the new image in its cache and just clones it then it will be faster.","commit_id":"e303111ec91e439dc6ac8fc177655d31ded3d36f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"754975a61fe550da8330a18c96a0fe4d8e13297d","unresolved":false,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Performance Impact"},{"line_number":167,"context_line":"------------------"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"The operation will take longer because of the external dependency"},{"line_number":170,"context_line":"involved and the work that needs to happen in Cinder."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"Other deployer impact"},{"line_number":173,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"58c6f8a3_799b0f2a","line":170,"range":{"start_line":168,"start_character":0,"end_line":170,"end_character":53},"in_reply_to":"3d4ca1cc_03fc5648","updated":"2021-12-03 12:46:42.000000000","message":"Oh, I see, thanks.","commit_id":"e303111ec91e439dc6ac8fc177655d31ded3d36f"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"d2243f5abe6788139a73797fadaadffeedaa495d","unresolved":true,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Performance Impact"},{"line_number":167,"context_line":"------------------"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"The operation will take longer because of the external dependency"},{"line_number":170,"context_line":"involved and the work that needs to happen in Cinder."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"Other deployer impact"},{"line_number":173,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"3d4ca1cc_03fc5648","line":170,"range":{"start_line":168,"start_character":0,"end_line":170,"end_character":53},"in_reply_to":"9d5ced42_524a7617","updated":"2021-12-03 11:32:37.000000000","message":"I think the point here is that\u0027s slower than the previous behaviour of not re-imaging the volume.","commit_id":"e303111ec91e439dc6ac8fc177655d31ded3d36f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"620293f69aabaf43d9315b8147427b7110772bea","unresolved":true,"context_lines":[{"line_number":172,"context_line":"Other deployer impact"},{"line_number":173,"context_line":"---------------------"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"If the cinder volume ``reimage`` API operation fails and the volume goes to"},{"line_number":176,"context_line":"``error`` status, an admin will likely need to investigate and resolve the"},{"line_number":177,"context_line":"issue in cinder and then reset the volume status to ``reserved``."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"Developer impact"},{"line_number":180,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"a2b706bc_c8795ad6","line":177,"range":{"start_line":175,"start_character":0,"end_line":177,"end_character":65},"updated":"2021-12-03 11:03:13.000000000","message":"nit: mention that cinder will add user messages to help in this process.","commit_id":"e303111ec91e439dc6ac8fc177655d31ded3d36f"}]}
