)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9757fa5f95e7a0bee09b817b0bf5e87d84430308","unresolved":false,"context_lines":[{"line_number":14,"context_line":"clusters, the user is currently required to make sure that the image"},{"line_number":15,"context_line":"they are going to use is stored in a backend local to the compute"},{"line_number":16,"context_line":"node they land on, and if they do not (or can not), then nova will"},{"line_number":17,"context_line":"do this non-COW inefficient copy of the image, which is likely not"},{"line_number":18,"context_line":"what the operator expects."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Per the discussion at the Denver PTG, this adds a workaround flag"},{"line_number":21,"context_line":"which allows the operators to direct nova to *not* do this behavior"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7faddb67_817f22aa","line":18,"range":{"start_line":17,"start_character":47,"end_line":18,"end_character":26},"updated":"2019-07-24 13:44:17.000000000","message":"So the workaround option is essentially a way of saying, don\u0027t let me do this even if I don\u0027t know if it\u0027s a problem for me?","commit_id":"064bbfd64a5cd51800b9613cf8a4e76572137160"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d4553969bcd610d4de2e6cb018aa8d1f04064d1a","unresolved":false,"context_lines":[{"line_number":14,"context_line":"clusters, the user is currently required to make sure that the image"},{"line_number":15,"context_line":"they are going to use is stored in a backend local to the compute"},{"line_number":16,"context_line":"node they land on, and if they do not (or can not), then nova will"},{"line_number":17,"context_line":"do this non-COW inefficient copy of the image, which is likely not"},{"line_number":18,"context_line":"what the operator expects."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Per the discussion at the Denver PTG, this adds a workaround flag"},{"line_number":21,"context_line":"which allows the operators to direct nova to *not* do this behavior"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3fa7e38b_3db4b11c","line":18,"range":{"start_line":17,"start_character":47,"end_line":18,"end_character":26},"in_reply_to":"7faddb67_817f22aa","updated":"2020-01-08 18:21:50.000000000","message":"It\u0027s more like \"I as the operator have set up my deployment in a way that will do something dumb and cost me money if a user (which I don\u0027t directly train/control) uploads an image and then tries to boot it. So I\u0027d prefer the system not silently munch storage and instead fail the boot so I have an opportunity to teach them.\"","commit_id":"064bbfd64a5cd51800b9613cf8a4e76572137160"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9757fa5f95e7a0bee09b817b0bf5e87d84430308","unresolved":false,"context_lines":[{"line_number":17,"context_line":"do this non-COW inefficient copy of the image, which is likely not"},{"line_number":18,"context_line":"what the operator expects."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Per the discussion at the Denver PTG, this adds a workaround flag"},{"line_number":21,"context_line":"which allows the operators to direct nova to *not* do this behavior"},{"line_number":22,"context_line":"and instead refuse to boot the instance entirely."},{"line_number":23,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7faddb67_016c9206","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":36},"updated":"2019-07-24 13:44:17.000000000","message":"Too bad we don\u0027t have a public link or summary to this since I\u0027ve mostly forgotten the details by now, but something something multiple conversions of the image from multiple nodes (edge sites) which is bad and stuff.","commit_id":"064bbfd64a5cd51800b9613cf8a4e76572137160"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d4553969bcd610d4de2e6cb018aa8d1f04064d1a","unresolved":false,"context_lines":[{"line_number":17,"context_line":"do this non-COW inefficient copy of the image, which is likely not"},{"line_number":18,"context_line":"what the operator expects."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Per the discussion at the Denver PTG, this adds a workaround flag"},{"line_number":21,"context_line":"which allows the operators to direct nova to *not* do this behavior"},{"line_number":22,"context_line":"and instead refuse to boot the instance entirely."},{"line_number":23,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3fa7e38b_dd5d5dec","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":36},"in_reply_to":"7faddb67_016c9206","updated":"2020-01-08 18:21:50.000000000","message":"No, it\u0027s actually just munching lots of storage when you think you\u0027ve configured nova and glance to do smart CoW. L12-13 above.","commit_id":"064bbfd64a5cd51800b9613cf8a4e76572137160"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9757fa5f95e7a0bee09b817b0bf5e87d84430308","unresolved":false,"context_lines":[{"line_number":20,"context_line":"Per the discussion at the Denver PTG, this adds a workaround flag"},{"line_number":21,"context_line":"which allows the operators to direct nova to *not* do this behavior"},{"line_number":22,"context_line":"and instead refuse to boot the instance entirely."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Change-Id: I069b6b1d28eaf1eee5c7fb8d0fdef9c0c229a1bf"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7faddb67_2cd18558","line":23,"updated":"2019-07-24 13:44:17.000000000","message":"Is there a related bug for this? Clearly it\u0027s an issue for certain edge deployment configurations right? The reason I\u0027m thinking about it is because it\u0027d be good to have a release note for the new option but it\u0027s not a feature, so it could either go in a \u0027fixes\u0027 or \u0027other\u0027 reno (maybe \u0027other\u0027 is more appropriate for a workaround option). If you add an \u0027other\u0027 reno then I don\u0027t think a bug is probably necessary.","commit_id":"064bbfd64a5cd51800b9613cf8a4e76572137160"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d4553969bcd610d4de2e6cb018aa8d1f04064d1a","unresolved":false,"context_lines":[{"line_number":20,"context_line":"Per the discussion at the Denver PTG, this adds a workaround flag"},{"line_number":21,"context_line":"which allows the operators to direct nova to *not* do this behavior"},{"line_number":22,"context_line":"and instead refuse to boot the instance entirely."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Change-Id: I069b6b1d28eaf1eee5c7fb8d0fdef9c0c229a1bf"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3fa7e38b_bd0bc1d1","line":23,"in_reply_to":"7faddb67_2cd18558","updated":"2020-01-08 18:21:50.000000000","message":"There isn\u0027t (that I know of), but it\u0027s also not a supported way of deploying today. When glance grows an image movement API (in the works now) then we can use that to implement a feature and call this an improvement in nova. Right now, this is just a circuit breaker to allow operators to cheat a little bit and not have nova do something pathologically stupid with their storage.\n\nI can add a reno.","commit_id":"064bbfd64a5cd51800b9613cf8a4e76572137160"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2c61224d7310ca6542310d24302c9b9672fca616","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Dan Smith \u003cdansmith@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-01-08 11:09:35 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add a workaround config toggle to refuse ceph image upload"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If a compute node is backed by ceph, and the image is not clone-able"},{"line_number":10,"context_line":"in that same ceph, nova will try to download the image from glance"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3fa7e38b_782314bc","line":7,"range":{"start_line":7,"start_character":6,"end_line":7,"end_character":16},"updated":"2020-01-08 20:21:20.000000000","message":"I thought workaround options were meant to be for known bugs but we don\u0027t have a bug reported for this otherwise I\u0027d expect it to be linked in the commit message.\n\nAre there thoughts on how this would be fixed long-term to avoid the workaround option? If so, we should throw those into a bug report and link the bug here, yeah?","commit_id":"00457d70a88ea66b37a8868877c03025471e771c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"56482c5f8e4ac4be659f80296b97743cdc10e93f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Dan Smith \u003cdansmith@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-01-08 11:09:35 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add a workaround config toggle to refuse ceph image upload"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If a compute node is backed by ceph, and the image is not clone-able"},{"line_number":10,"context_line":"in that same ceph, nova will try to download the image from glance"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3fa7e38b_ab34d8df","line":7,"range":{"start_line":7,"start_character":6,"end_line":7,"end_character":16},"in_reply_to":"3fa7e38b_782314bc","updated":"2020-01-08 20:33:34.000000000","message":"I think I addressed this in replies to the first time you asked about a bug.\n\nNova doesn\u0027t support multiple rbd stores. Fixing that would be a feature/bp, I wouldn\u0027t call it a bug that it doesn\u0027t support something. This is a workaround to help people avoid nova doing the stupid storage-munching thing if they configure their glance to have multiple backends (which glance does support).\n\nIf you think it\u0027s important to have a bug, then I can open one, but it\u0027ll be \"nova does something dumb when you configure it in an unsupported way.\"","commit_id":"00457d70a88ea66b37a8868877c03025471e771c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2c61224d7310ca6542310d24302c9b9672fca616","unresolved":false,"context_lines":[{"line_number":17,"context_line":"do this non-COW inefficient copy of the image, which is likely not"},{"line_number":18,"context_line":"what the operator expects."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Per the discussion at the Denver PTG, this adds a workaround flag"},{"line_number":21,"context_line":"which allows the operators to direct nova to *not* do this behavior"},{"line_number":22,"context_line":"and instead refuse to boot the instance entirely."},{"line_number":23,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3fa7e38b_982290b9","line":20,"range":{"start_line":20,"start_character":26,"end_line":20,"end_character":36},"updated":"2020-01-08 20:21:20.000000000","message":"Link would be nice if we have one - I think the etherpads were trashed but maybe there was a mailing list summary?","commit_id":"00457d70a88ea66b37a8868877c03025471e771c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"56482c5f8e4ac4be659f80296b97743cdc10e93f","unresolved":false,"context_lines":[{"line_number":17,"context_line":"do this non-COW inefficient copy of the image, which is likely not"},{"line_number":18,"context_line":"what the operator expects."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Per the discussion at the Denver PTG, this adds a workaround flag"},{"line_number":21,"context_line":"which allows the operators to direct nova to *not* do this behavior"},{"line_number":22,"context_line":"and instead refuse to boot the instance entirely."},{"line_number":23,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3fa7e38b_cb50340c","line":20,"range":{"start_line":20,"start_character":26,"end_line":20,"end_character":36},"in_reply_to":"3fa7e38b_982290b9","updated":"2020-01-08 20:33:34.000000000","message":"In earlier comments on this patch, which were right after the PTG, You said there wasn\u0027t a summary:\n\nhttps://review.opendev.org/#/c/657078/3//COMMIT_MSG@20\n\nI don\u0027t remember one either, but if it\u0027s in the etherpad notes, I imagine it\u0027s much more terse and less useful than what I\u0027ve added here in the commit message and the reno.","commit_id":"00457d70a88ea66b37a8868877c03025471e771c"}],"nova/conf/workarounds.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9757fa5f95e7a0bee09b817b0bf5e87d84430308","unresolved":false,"context_lines":[{"line_number":215,"context_line":"\"\"\"),"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"    cfg.BoolOpt("},{"line_number":218,"context_line":"        \u0027ensure_libvirt_rbd_instance_dir_cleanup\u0027,"},{"line_number":219,"context_line":"        default\u003dFalse,"},{"line_number":220,"context_line":"        help\u003d\"\"\""},{"line_number":221,"context_line":"Ensure the instance directory is removed during clean up when using rbd."}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_8c18b975","line":218,"range":{"start_line":218,"start_character":24,"end_line":218,"end_character":27},"updated":"2019-07-24 13:44:17.000000000","message":"We might want to use rbd in the option name to match this and the [libvirt]/images_type\u003drbd option.","commit_id":"064bbfd64a5cd51800b9613cf8a4e76572137160"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"bbb45c472a000037dfcf35da26a50c212e9f9ba4","unresolved":false,"context_lines":[{"line_number":215,"context_line":"\"\"\"),"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"    cfg.BoolOpt("},{"line_number":218,"context_line":"        \u0027ensure_libvirt_rbd_instance_dir_cleanup\u0027,"},{"line_number":219,"context_line":"        default\u003dFalse,"},{"line_number":220,"context_line":"        help\u003d\"\"\""},{"line_number":221,"context_line":"Ensure the instance directory is removed during clean up when using rbd."}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_c87a7d74","line":218,"range":{"start_line":218,"start_character":24,"end_line":218,"end_character":27},"in_reply_to":"3fa7e38b_886245d8","updated":"2020-01-08 18:59:23.000000000","message":"Oh, somehow I missed this one. I can change that.","commit_id":"064bbfd64a5cd51800b9613cf8a4e76572137160"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ce7672863218aaecf2bcc69693ce91c094d83b44","unresolved":false,"context_lines":[{"line_number":215,"context_line":"\"\"\"),"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"    cfg.BoolOpt("},{"line_number":218,"context_line":"        \u0027ensure_libvirt_rbd_instance_dir_cleanup\u0027,"},{"line_number":219,"context_line":"        default\u003dFalse,"},{"line_number":220,"context_line":"        help\u003d\"\"\""},{"line_number":221,"context_line":"Ensure the instance directory is removed during clean up when using rbd."}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_886245d8","line":218,"range":{"start_line":218,"start_character":24,"end_line":218,"end_character":27},"in_reply_to":"7faddb67_8c18b975","updated":"2020-01-08 18:56:02.000000000","message":"@Dan, would you please respond to this comment, either making the change or explaining why you didn\u0027t?","commit_id":"064bbfd64a5cd51800b9613cf8a4e76572137160"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6b598cdea87d4d38b05c0e9c0f126f6e0e22560a","unresolved":false,"context_lines":[{"line_number":244,"context_line":"* ``instances_path``"},{"line_number":245,"context_line":"\"\"\"),"},{"line_number":246,"context_line":"    cfg.BoolOpt("},{"line_number":247,"context_line":"        \u0027never_download_image_if_on_ceph\u0027,"},{"line_number":248,"context_line":"        default\u003dFalse,"},{"line_number":249,"context_line":"        help\u003d\"\"\""},{"line_number":250,"context_line":"When booting an image on a ceph-backed compute node, if the image does not"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fb8cfa7_53b4def1","line":247,"range":{"start_line":247,"start_character":9,"end_line":247,"end_character":40},"updated":"2019-06-14 17:23:11.000000000","message":"Any reason this wasn\u0027t \u0027download_image_on_ceph\u0027 and defaults to true?","commit_id":"064bbfd64a5cd51800b9613cf8a4e76572137160"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ce7672863218aaecf2bcc69693ce91c094d83b44","unresolved":false,"context_lines":[{"line_number":244,"context_line":"* ``instances_path``"},{"line_number":245,"context_line":"\"\"\"),"},{"line_number":246,"context_line":"    cfg.BoolOpt("},{"line_number":247,"context_line":"        \u0027never_download_image_if_on_ceph\u0027,"},{"line_number":248,"context_line":"        default\u003dFalse,"},{"line_number":249,"context_line":"        help\u003d\"\"\""},{"line_number":250,"context_line":"When booting an image on a ceph-backed compute node, if the image does not"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_dd60fd0f","line":247,"range":{"start_line":247,"start_character":9,"end_line":247,"end_character":40},"in_reply_to":"7faddb67_a12a5e8d","updated":"2020-01-08 18:56:02.000000000","message":"FWIW, I never don\u0027t find it confusing when a boolean option isn\u0027t named in the positive. IMO maintaining the consistency of \"False means disabled\" isn\u0027t worth not doing that versus having to unwind the double negative when the value is not True. But I won\u0027t stop this from merging on that account.","commit_id":"064bbfd64a5cd51800b9613cf8a4e76572137160"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9757fa5f95e7a0bee09b817b0bf5e87d84430308","unresolved":false,"context_lines":[{"line_number":244,"context_line":"* ``instances_path``"},{"line_number":245,"context_line":"\"\"\"),"},{"line_number":246,"context_line":"    cfg.BoolOpt("},{"line_number":247,"context_line":"        \u0027never_download_image_if_on_ceph\u0027,"},{"line_number":248,"context_line":"        default\u003dFalse,"},{"line_number":249,"context_line":"        help\u003d\"\"\""},{"line_number":250,"context_line":"When booting an image on a ceph-backed compute node, if the image does not"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_a12a5e8d","line":247,"range":{"start_line":247,"start_character":9,"end_line":247,"end_character":40},"in_reply_to":"9fb8cfa7_404c909d","updated":"2019-07-24 13:44:17.000000000","message":"Yeah looks like handle_virt_lifecycle_events is the one exception that defaults to True.\n\nAnother way we could rename this option for consistency with some of the other workaround options is to call it disable_rbd_image_download and default to False so by default we enable ceph image downloads. IOW, I\u0027ve pre-cached images on my cephs and never want nova to download the image and potentially convert it.","commit_id":"064bbfd64a5cd51800b9613cf8a4e76572137160"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"8f8aceb8cb4f8ee80cbed8fc2a9787809813e6b1","unresolved":false,"context_lines":[{"line_number":244,"context_line":"* ``instances_path``"},{"line_number":245,"context_line":"\"\"\"),"},{"line_number":246,"context_line":"    cfg.BoolOpt("},{"line_number":247,"context_line":"        \u0027never_download_image_if_on_ceph\u0027,"},{"line_number":248,"context_line":"        default\u003dFalse,"},{"line_number":249,"context_line":"        help\u003d\"\"\""},{"line_number":250,"context_line":"When booting an image on a ceph-backed compute node, if the image does not"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fb8cfa7_404c909d","line":247,"range":{"start_line":247,"start_character":9,"end_line":247,"end_character":40},"in_reply_to":"9fb8cfa7_53b4def1","updated":"2019-06-21 17:31:51.000000000","message":"When we added workarounds, the goal was for them to all be \"off\" by default. In that, you\u0027re opting into some workaround. Obviously, \u003dtrue for something that is negative is similar, but we were hoping to make the semantics similar for them all. We\u0027ve slipped on that a few times I think, but that\u0027s why I did that here.","commit_id":"064bbfd64a5cd51800b9613cf8a4e76572137160"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9757fa5f95e7a0bee09b817b0bf5e87d84430308","unresolved":false,"context_lines":[{"line_number":247,"context_line":"        \u0027never_download_image_if_on_ceph\u0027,"},{"line_number":248,"context_line":"        default\u003dFalse,"},{"line_number":249,"context_line":"        help\u003d\"\"\""},{"line_number":250,"context_line":"When booting an image on a ceph-backed compute node, if the image does not"},{"line_number":251,"context_line":"already reside on the ceph cluster (as would be the case if glance is"},{"line_number":252,"context_line":"also using the same cluster), nova will download the image from glance and"},{"line_number":253,"context_line":"upload it to ceph itself. If using multiple ceph clusters, this may cause nova"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_2cfe6505","line":250,"range":{"start_line":250,"start_character":16,"end_line":250,"end_character":21},"updated":"2019-07-24 13:44:17.000000000","message":"Either \"booting from an image\" or \"booting an instance\"? I know what you\u0027re saying, but it sounds kind of weird to me since we normally say you\u0027re booting an instance (which has an OS image in it).","commit_id":"064bbfd64a5cd51800b9613cf8a4e76572137160"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9757fa5f95e7a0bee09b817b0bf5e87d84430308","unresolved":false,"context_lines":[{"line_number":254,"context_line":"to unintentionally duplicate the image in a non-COW-able way in the local"},{"line_number":255,"context_line":"ceph deployment, wasting space."},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"Enabling this option will cause nova to *refuse* to boot an instance if it"},{"line_number":258,"context_line":"would require downloading the image from glance and uploading it to ceph"},{"line_number":259,"context_line":"itself."},{"line_number":260,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_6c345ddf","line":257,"range":{"start_line":257,"start_character":52,"end_line":257,"end_character":68},"updated":"2019-07-24 13:44:17.000000000","message":"To my point above.","commit_id":"064bbfd64a5cd51800b9613cf8a4e76572137160"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ce7672863218aaecf2bcc69693ce91c094d83b44","unresolved":false,"context_lines":[{"line_number":254,"context_line":"to unintentionally duplicate the image in a non-COW-able way in the local"},{"line_number":255,"context_line":"ceph deployment, wasting space."},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"Enabling this option will cause nova to *refuse* to boot an instance if it"},{"line_number":258,"context_line":"would require downloading the image from glance and uploading it to ceph"},{"line_number":259,"context_line":"itself."},{"line_number":260,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_bd3741fd","line":257,"range":{"start_line":257,"start_character":52,"end_line":257,"end_character":68},"in_reply_to":"7faddb67_6c345ddf","updated":"2020-01-08 18:56:02.000000000","message":"and mine","commit_id":"064bbfd64a5cd51800b9613cf8a4e76572137160"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9757fa5f95e7a0bee09b817b0bf5e87d84430308","unresolved":false,"context_lines":[{"line_number":259,"context_line":"itself."},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"Related options:"},{"line_number":262,"context_line":"* ``[libvirt]/images_type`` (rbd)"},{"line_number":263,"context_line":"\"\"\"),"},{"line_number":264,"context_line":"]"},{"line_number":265,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_8c46794f","line":262,"updated":"2019-07-24 13:44:17.000000000","message":"You need a blank line before the bullet list for this to format properly in docs.\n\nCould probably also include:\n\n* ``compute_driver`` (libvirt)\n\nSince this only applies to the libvirt driver.","commit_id":"064bbfd64a5cd51800b9613cf8a4e76572137160"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"bbb45c472a000037dfcf35da26a50c212e9f9ba4","unresolved":false,"context_lines":[{"line_number":259,"context_line":"itself."},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"Related options:"},{"line_number":262,"context_line":"* ``[libvirt]/images_type`` (rbd)"},{"line_number":263,"context_line":"\"\"\"),"},{"line_number":264,"context_line":"]"},{"line_number":265,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_68da6979","line":262,"in_reply_to":"3fa7e38b_285d5115","updated":"2020-01-08 18:59:23.000000000","message":"I\u0027m not sure what you mean here because this wouldn\u0027t change with the s/ceph/rbd/ change above. images_type\u003drbd is how it is, and we wouldn\u0027t change that now of course.","commit_id":"064bbfd64a5cd51800b9613cf8a4e76572137160"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"47d4e95a6239aebec97fbb7c1075dfb509550b15","unresolved":false,"context_lines":[{"line_number":259,"context_line":"itself."},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"Related options:"},{"line_number":262,"context_line":"* ``[libvirt]/images_type`` (rbd)"},{"line_number":263,"context_line":"\"\"\"),"},{"line_number":264,"context_line":"]"},{"line_number":265,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_68710977","line":262,"in_reply_to":"3fa7e38b_68da6979","updated":"2020-01-08 19:01:26.000000000","message":"I was referring to adding compute_driver\u003dlibvirt","commit_id":"064bbfd64a5cd51800b9613cf8a4e76572137160"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ce7672863218aaecf2bcc69693ce91c094d83b44","unresolved":false,"context_lines":[{"line_number":259,"context_line":"itself."},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"Related options:"},{"line_number":262,"context_line":"* ``[libvirt]/images_type`` (rbd)"},{"line_number":263,"context_line":"\"\"\"),"},{"line_number":264,"context_line":"]"},{"line_number":265,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_285d5115","line":262,"in_reply_to":"7faddb67_8c46794f","updated":"2020-01-08 18:56:02.000000000","message":"also here (change or explain) please","commit_id":"064bbfd64a5cd51800b9613cf8a4e76572137160"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"b3f8581ddb7592d277b84d99b94d38b498eb876f","unresolved":false,"context_lines":[{"line_number":264,"context_line":""},{"line_number":265,"context_line":"Related options:"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"* ``compute_driver (libvirt)``"},{"line_number":268,"context_line":"* ``[libvirt]/images_type`` (rbd)"},{"line_number":269,"context_line":"\"\"\"),"},{"line_number":270,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_c8b27d05","line":267,"range":{"start_line":267,"start_character":19,"end_line":267,"end_character":28},"updated":"2020-01-08 19:07:15.000000000","message":"could put this outside of the backticks for consistency, like on L221","commit_id":"7e05f5343e8724e6e57ed9d539f6b0c2b7d8b491"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d134a997ba7f0e139703ee39b8e67d1fb0f5dd7e","unresolved":false,"context_lines":[{"line_number":260,"context_line":""},{"line_number":261,"context_line":"For more information, refer to the bug report:"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"  https://bugs.launchpad.net/nova/+bug/1858877"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"Enabling this option will cause nova to *refuse* to boot an instance if it"},{"line_number":266,"context_line":"would require downloading the image from glance and uploading it to ceph"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_24bd75d6","line":263,"updated":"2020-01-09 02:56:16.000000000","message":"Extra space in the link line messes up formatting a bit.","commit_id":"dabc8805c0b4c78fcfddaa9f23d3a69534140039"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cfddd1d07de07f31ddd6a938bbb1a5b4af347621","unresolved":false,"context_lines":[{"line_number":260,"context_line":""},{"line_number":261,"context_line":"For more information, refer to the bug report:"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"  https://bugs.launchpad.net/nova/+bug/1858877"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"Enabling this option will cause nova to *refuse* to boot an instance if it"},{"line_number":266,"context_line":"would require downloading the image from glance and uploading it to ceph"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_2fbea9cd","line":263,"in_reply_to":"3fa7e38b_24bd75d6","updated":"2020-01-09 13:54:10.000000000","message":"Done","commit_id":"dabc8805c0b4c78fcfddaa9f23d3a69534140039"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"30ad4aed07334325d3c49bc789ac2956f12a9226","unresolved":false,"context_lines":[{"line_number":264,"context_line":""},{"line_number":265,"context_line":"Enabling this option will cause nova to *refuse* to boot an instance if it"},{"line_number":266,"context_line":"would require downloading the image from glance and uploading it to ceph"},{"line_number":267,"context_line":"itself."},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"Related options:"},{"line_number":270,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_0053823b","line":267,"updated":"2020-01-09 09:15:38.000000000","message":"this seems like a viable option for EDGE deployments with distributed computes and \"costly\" storage and WAN resources on remote sites.","commit_id":"dabc8805c0b4c78fcfddaa9f23d3a69534140039"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"f26b43fbe9f3d733181a9af6efbcede469feb5ee","unresolved":false,"context_lines":[{"line_number":3630,"context_line":"                        CONF.workarounds.never_download_image_if_on_ceph)"},{"line_number":3631,"context_line":"                    try:"},{"line_number":3632,"context_line":"                        backend.clone(context, disk_images[\u0027image_id\u0027])"},{"line_number":3633,"context_line":"                    except exception.ImageUnacceptable:"},{"line_number":3634,"context_line":"                        if refuse_fetch:"},{"line_number":3635,"context_line":"                            LOG.warning(\u0027Image %s is not on my ceph and \u0027"},{"line_number":3636,"context_line":"                                        \u0027[workarounds]/\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_d19f3763","line":3633,"updated":"2019-07-23 22:28:06.000000000","message":"Should really use save_and_reraise here. But I think I\u0027ve been told recently that LOG.* is guaranteed not to muck with the exception context, so this is probably okay.","commit_id":"064bbfd64a5cd51800b9613cf8a4e76572137160"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9757fa5f95e7a0bee09b817b0bf5e87d84430308","unresolved":false,"context_lines":[{"line_number":3630,"context_line":"                        CONF.workarounds.never_download_image_if_on_ceph)"},{"line_number":3631,"context_line":"                    try:"},{"line_number":3632,"context_line":"                        backend.clone(context, disk_images[\u0027image_id\u0027])"},{"line_number":3633,"context_line":"                    except exception.ImageUnacceptable:"},{"line_number":3634,"context_line":"                        if refuse_fetch:"},{"line_number":3635,"context_line":"                            LOG.warning(\u0027Image %s is not on my ceph and \u0027"},{"line_number":3636,"context_line":"                                        \u0027[workarounds]/\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_8cb43937","line":3633,"in_reply_to":"7faddb67_d19f3763","updated":"2019-07-24 13:44:17.000000000","message":"I still think it\u0027s good form and consistent to use excutils.save_and_reraise_exception here as well.","commit_id":"064bbfd64a5cd51800b9613cf8a4e76572137160"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2c61224d7310ca6542310d24302c9b9672fca616","unresolved":false,"context_lines":[{"line_number":3877,"context_line":"                            # Re-raise the exception from the failed"},{"line_number":3878,"context_line":"                            # ceph clone.  The compute manager expects"},{"line_number":3879,"context_line":"                            # ImageUnacceptable as a possible result"},{"line_number":3880,"context_line":"                            # of spawn(), from which this is called."},{"line_number":3881,"context_line":"                            with excutils.save_and_reraise_exception():"},{"line_number":3882,"context_line":"                                LOG.warning("},{"line_number":3883,"context_line":"                                    \u0027Image %s is not on my ceph and \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_384d9c98","line":3880,"range":{"start_line":3880,"start_character":33,"end_line":3880,"end_character":38},"updated":"2020-01-08 20:21:20.000000000","message":"This is ultimately also called during finish_migration and rescue, are we OK there as well?","commit_id":"00457d70a88ea66b37a8868877c03025471e771c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"56482c5f8e4ac4be659f80296b97743cdc10e93f","unresolved":false,"context_lines":[{"line_number":3877,"context_line":"                            # Re-raise the exception from the failed"},{"line_number":3878,"context_line":"                            # ceph clone.  The compute manager expects"},{"line_number":3879,"context_line":"                            # ImageUnacceptable as a possible result"},{"line_number":3880,"context_line":"                            # of spawn(), from which this is called."},{"line_number":3881,"context_line":"                            with excutils.save_and_reraise_exception():"},{"line_number":3882,"context_line":"                                LOG.warning("},{"line_number":3883,"context_line":"                                    \u0027Image %s is not on my ceph and \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_cb77d48d","line":3880,"range":{"start_line":3880,"start_character":33,"end_line":3880,"end_character":38},"in_reply_to":"3fa7e38b_384d9c98","updated":"2020-01-08 20:33:34.000000000","message":"Rescue should never hit this because it\u0027s not recreating the image. I\u0027m not sure migrate would either. However, this blows up in the same way that the existing code (libvirt_utils.fetch_image() on L 3888) will if the image won\u0027t work on the current node for another reason. So anything in this path has to handle ImageUnacceptable anyway, and the meaing is the same in this case.","commit_id":"00457d70a88ea66b37a8868877c03025471e771c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d134a997ba7f0e139703ee39b8e67d1fb0f5dd7e","unresolved":false,"context_lines":[{"line_number":3880,"context_line":"                            # of spawn(), from which this is called."},{"line_number":3881,"context_line":"                            with excutils.save_and_reraise_exception():"},{"line_number":3882,"context_line":"                                LOG.warning("},{"line_number":3883,"context_line":"                                    \u0027Image %s is not on my ceph and \u0027"},{"line_number":3884,"context_line":"                                    \u0027[workarounds]/\u0027"},{"line_number":3885,"context_line":"                                    \u0027never_download_image_if_on_rbd\u003dTrue;\u0027"},{"line_number":3886,"context_line":"                                    \u0027 refusing to fetch and upload.\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_7fac56ed","line":3883,"range":{"start_line":3883,"start_character":43,"end_line":3883,"end_character":45},"updated":"2020-01-09 02:56:16.000000000","message":"oops, you\u0027re missing disk_images[\u0027image_id\u0027]) for this.","commit_id":"dabc8805c0b4c78fcfddaa9f23d3a69534140039"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cfddd1d07de07f31ddd6a938bbb1a5b4af347621","unresolved":false,"context_lines":[{"line_number":3880,"context_line":"                            # of spawn(), from which this is called."},{"line_number":3881,"context_line":"                            with excutils.save_and_reraise_exception():"},{"line_number":3882,"context_line":"                                LOG.warning("},{"line_number":3883,"context_line":"                                    \u0027Image %s is not on my ceph and \u0027"},{"line_number":3884,"context_line":"                                    \u0027[workarounds]/\u0027"},{"line_number":3885,"context_line":"                                    \u0027never_download_image_if_on_rbd\u003dTrue;\u0027"},{"line_number":3886,"context_line":"                                    \u0027 refusing to fetch and upload.\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_cf9ef567","line":3883,"range":{"start_line":3883,"start_character":43,"end_line":3883,"end_character":45},"in_reply_to":"3fa7e38b_7fac56ed","updated":"2020-01-09 13:54:10.000000000","message":"Done","commit_id":"dabc8805c0b4c78fcfddaa9f23d3a69534140039"}],"releasenotes/notes/avoid_muli_ceph_download-4083decf501dba40.yaml":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ce7672863218aaecf2bcc69693ce91c094d83b44","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Nova now has a workaround config option called"},{"line_number":5,"context_line":"    `never_download_image_if_on_ceph` which helps to avoid"},{"line_number":6,"context_line":"    pathological storage behavior with multiple ceph clusters."},{"line_number":7,"context_line":"    Currently, Nova does *not* support multiple ceph clusters"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"3fa7e38b_883485e0","line":4,"range":{"start_line":4,"start_character":19,"end_line":4,"end_character":29},"updated":"2020-01-08 18:56:02.000000000","message":"The way this is worded, the conf group is implied, but you have to know that workaround config options live in the [workarounds] section. I would prefer that be explicit (though I don\u0027t have a great suggestion for how to reword it).","commit_id":"a8cecdb5c61282fa930a07bfe586aa69df368f0b"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ce7672863218aaecf2bcc69693ce91c094d83b44","unresolved":false,"context_lines":[{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Nova now has a workaround config option called"},{"line_number":5,"context_line":"    `never_download_image_if_on_ceph` which helps to avoid"},{"line_number":6,"context_line":"    pathological storage behavior with multiple ceph clusters."},{"line_number":7,"context_line":"    Currently, Nova does *not* support multiple ceph clusters"},{"line_number":8,"context_line":"    properly, but Glance can be configured with them. If an instance"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"3fa7e38b_482a0d78","line":5,"range":{"start_line":5,"start_character":4,"end_line":5,"end_character":37},"updated":"2020-01-08 18:56:02.000000000","message":"this should be ``double backticks``","commit_id":"a8cecdb5c61282fa930a07bfe586aa69df368f0b"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"b3f8581ddb7592d277b84d99b94d38b498eb876f","unresolved":false,"context_lines":[{"line_number":2,"context_line":"other:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Nova now has a config option called"},{"line_number":5,"context_line":"    ``[workarounds]/never_download_image_if_on_ceph`` which helps to"},{"line_number":6,"context_line":"    avoid pathological storage behavior with multiple ceph clusters."},{"line_number":7,"context_line":"    Currently, Nova does *not* support multiple ceph clusters"},{"line_number":8,"context_line":"    properly, but Glance can be configured with them. If an instance"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"3fa7e38b_a8d62125","line":5,"range":{"start_line":5,"start_character":47,"end_line":5,"end_character":51},"updated":"2020-01-08 19:07:15.000000000","message":"rbd","commit_id":"7e05f5343e8724e6e57ed9d539f6b0c2b7d8b491"}]}
