)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"dde97bf25b2848e8f1253463824817f66a028cb6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"03312b99_424d2357","updated":"2023-03-31 17:45:17.000000000","message":"The -1 is for (at least) the apparently unlimited scope of the operation.","commit_id":"377947a6c998a366c57d8d6fc132d210a63e69cb"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"cc78a0a684de908a9fa1a5e6618a3faac7e18646","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"88a1e2a1_14fc3ff3","updated":"2023-05-24 16:41:01.000000000","message":"I think we need to be pretty specific about ho detailed we\u0027re going to be here, in light of CVE-2023-2088.","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"80b0c6aa16ce732978dbf99c4fd2777318953ba7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"ba76f8b8_119e61a8","updated":"2023-06-08 07:57:41.000000000","message":"Mostly looking good but I still have a question.","commit_id":"a50d1a21b081a7abfa719a34567902747d053fcd"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"b749e3b9b3eb3fd816afb19887ad7316cb3faf5d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"5942a00f_f0e1ad25","updated":"2023-07-05 08:50:01.000000000","message":"Being a relatively recent contributor to Nova, I find this specification clear, and it has helped me understand the problem. The specification describes the problem and the remediation action well. I cannot \"judge\" the problem with Ironic because I lack context, so I\u0027ll leave it to the specialists to resolve that part. In my opinion, it might be necessary to clarify the preference between the standard change and the alternative. Based on our discussions, it seems that the implementation in nova manage is the preferred choice, although it may not be explicitly stated in the specification. Apart from that, I think this specification appears suitable for validation.","commit_id":"871aa3e4779be7deca9cde9d2a9bf40a5c56d010"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"047054206aaf941c4586add6a88e6a300110d0e0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"bf48664e_c80ac6df","updated":"2023-07-05 16:34:17.000000000","message":"Honestly, while we still some Ironic concerns, I don\u0027t want to have this feature requirement to not be accepted for Bobcat. We know we still also have some implementation questions, but let\u0027s not hold this spec and just try to review the code rather.","commit_id":"871aa3e4779be7deca9cde9d2a9bf40a5c56d010"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4e8f5608d44475bb737143992b6c5bb43651f9d8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"44e2f1e3_3b6f88e0","updated":"2023-07-06 15:23:45.000000000","message":"It looks good to me.","commit_id":"871aa3e4779be7deca9cde9d2a9bf40a5c56d010"}],"specs/2023.2/approved/cleanup-dangling-volume-attachments.rst":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8c5cc5f3c932d00ce41312a9ef7a7d2d4a442b8d","unresolved":true,"context_lines":[{"line_number":8,"context_line":"Cleanup dangling volumes block device mapping"},{"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\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/nova-manage-cleanup-dangling-volume-attachments"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Find out if there are any dangling/unattached volume in nova database"},{"line_number":14,"context_line":"and remove, if they exists."}],"source_content_type":"text/x-rst","patch_set":12,"id":"cd40ddfa_bcd22ec9","line":11,"updated":"2023-05-22 15:09:01.000000000","message":"nit: change the link please","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"335eeda9796ce29cfa281d34959987bd2327b7fe","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Cleanup dangling volumes block device mapping"},{"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\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/nova-manage-cleanup-dangling-volume-attachments"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Find out if there are any dangling/unattached volume in nova database"},{"line_number":14,"context_line":"and remove, if they exists."}],"source_content_type":"text/x-rst","patch_set":12,"id":"502025af_91dd446f","line":11,"in_reply_to":"cd40ddfa_bcd22ec9","updated":"2023-06-07 08:43:47.000000000","message":"Done","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8c5cc5f3c932d00ce41312a9ef7a7d2d4a442b8d","unresolved":true,"context_lines":[{"line_number":24,"context_line":"This can lead to different issues which required volume details from"},{"line_number":25,"context_line":"block device mapping table, such as live miration and resizing of instance."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Steps to reproduce:"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"- Create an Instance and attach a volume to it."},{"line_number":30,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"503cf8b0_553d04ec","line":27,"updated":"2023-05-22 15:09:01.000000000","message":"in general, you don\u0027t need to provide the reproduction steps but here I\u0027m OK","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"335eeda9796ce29cfa281d34959987bd2327b7fe","unresolved":false,"context_lines":[{"line_number":24,"context_line":"This can lead to different issues which required volume details from"},{"line_number":25,"context_line":"block device mapping table, such as live miration and resizing of instance."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Steps to reproduce:"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"- Create an Instance and attach a volume to it."},{"line_number":30,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"94fedf70_21ddc019","line":27,"in_reply_to":"503cf8b0_553d04ec","updated":"2023-06-07 08:43:47.000000000","message":"Ack","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"ab6cf6019ead201001c68c094454c187ae910762","unresolved":true,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"  .. code-block:: shell"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    $ cinder --os-volume-api-version 3.27 attachment-delete \u003cattahcment_id\u003e"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"- Verify using cinder api."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"a796f9dd_53e89823","line":35,"updated":"2023-05-26 06:21:29.000000000","message":"this is fixed on cider side, with patch https://review.opendev.org/c/openstack/cinder/+/882835\nwill remove these steps.","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"335eeda9796ce29cfa281d34959987bd2327b7fe","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"  .. code-block:: shell"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    $ cinder --os-volume-api-version 3.27 attachment-delete \u003cattahcment_id\u003e"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"- Verify using cinder api."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"87a2bb3c_b6fa7371","line":35,"in_reply_to":"a796f9dd_53e89823","updated":"2023-06-07 08:43:47.000000000","message":"Done","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"cc78a0a684de908a9fa1a5e6618a3faac7e18646","unresolved":true,"context_lines":[{"line_number":51,"context_line":"  volume is listed as attached to instance."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"- Verify in nova block device mapping table, volume would be listed as"},{"line_number":54,"context_line":"  attached to instance."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":".. warning::"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"495f4f21_7484c1fd","line":54,"updated":"2023-05-24 16:41:01.000000000","message":"I think we might want to be more specific here and say that we need to specifically correlate our attachments (by id) to those in cinder and remove any that are no longer valid. We also want to be specific that creating an attachment in cinder should not be adopted or integrated into nova, effectively allowing someone to bypass nova\u0027s attachment api by jamming the attachment into cinder and then rebooting the instance.\n\nSo this should be based on attachment_id, as stored in our connector, and we should purge any that don\u0027t exist on the cinder side *and* not import any that we find when listing attachments on the volume.","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"f9bd5bc40f238d070d8db4cacc5bf93f84e6f90c","unresolved":true,"context_lines":[{"line_number":51,"context_line":"  volume is listed as attached to instance."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"- Verify in nova block device mapping table, volume would be listed as"},{"line_number":54,"context_line":"  attached to instance."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":".. warning::"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"cc02c8b5_3de0ec10","line":54,"in_reply_to":"2bd9f03e_167b5756","updated":"2023-06-30 09:50:46.000000000","message":"added use case as per initial comment","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"2ba7922a481bf4194b94c0682e77b4754f191242","unresolved":true,"context_lines":[{"line_number":51,"context_line":"  volume is listed as attached to instance."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"- Verify in nova block device mapping table, volume would be listed as"},{"line_number":54,"context_line":"  attached to instance."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":".. warning::"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"8e29b51b_ead2aa2f","line":54,"in_reply_to":"495f4f21_7484c1fd","updated":"2023-05-24 18:25:17.000000000","message":"Let\u0027s also add that we should delete cinder attachments that we don\u0027t know anything about that are claiming to be for this instance. Meaning, we should list attachments for the volume and then (in pseudocode):\n```\nfor attachment in volume[\u0027attachments\u0027]:\n    if attachment.instance_uuid \u003d\u003d instance.uuid and\n            attachment.id not in bdms:\n        delete_attachment(attachment)\nfor bdm in bdms:\n    if bdm.attachment_id not in volume[\u0027attachments\u0027]:\n        delete_bdm(bdm)\n```\n\nWe very specifically need to be clear that you can\u0027t attach or detach volumes directly with cinder without going through nova\u0027s API.","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"40d1d591d8c3acb314cc0e4a0c04ae80a204e5af","unresolved":true,"context_lines":[{"line_number":51,"context_line":"  volume is listed as attached to instance."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"- Verify in nova block device mapping table, volume would be listed as"},{"line_number":54,"context_line":"  attached to instance."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":".. warning::"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"2bd9f03e_167b5756","line":54,"in_reply_to":"4b6adb3a_07c7d568","updated":"2023-06-21 12:33:21.000000000","message":"i personally would condier the current workflow for ironic bfv to be unsupproted and a security volioation based on the nova desgin.\n\nyour right that we  should avoid outright breaking all ironic users but we shoudl not support the current workflow on a long term basis.\n\njust as ironic cannot bind neutron port on behalf of nova instance it cannot manage volume attachments. \n\nthe only part of ether htat is delegetated to the dirver is the actual configuration on the server/vm\n\nthe interaction with the other openstack services shoudl eb entirly handled in the driver inddepent comptue manager level as much as possibel.","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b4eee7d10205f957a34b1900a9d35ba357ae8ba3","unresolved":true,"context_lines":[{"line_number":51,"context_line":"  volume is listed as attached to instance."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"- Verify in nova block device mapping table, volume would be listed as"},{"line_number":54,"context_line":"  attached to instance."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":".. warning::"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"4b6adb3a_07c7d568","line":54,"in_reply_to":"8e29b51b_ead2aa2f","updated":"2023-05-25 17:22:54.000000000","message":"So deleting any attachments Nova doesn\u0027t explicitly know about will break Ironic\u0027s Boot from Volume support, at least as it stands today and has been used by operators over the past 7 years.\n\nSo, you could just ignore it for nova.virt.ironic users, or we could move record synchronization to be Nova\u0027s responsibility under this proposed model of interaction which is rather similar to what Ironic does already for it\u0027s own data copies of attachment data. We would likely need to have an additional flag or indicator to shift responsibility, and tell Ironic to only go hunt down and ensure all attachments are removed upon the tear down of a physical machine (the instance) in order to prevent another CVE or end-user data loss.\n\nI think the preference on the path forward is a question for the nova contributors on how they want to proceed in this specific case. While the bulk of Bare Metal as a Service users utilize local storage, a portion of BMaaS operators do use Boot from Volume, particularly in larger scale shared resource environments.\n\nRegardless, the overall behavior will need to figured out in terms of upgrade so existing users are not horribly broken upon upgrade if they haven\u0027t had a chance to perform whatever the necessary determined steps are.\n\nTo be clear, I\u0027m not saying \"no\" to the idea. I actually kind of like the idea, but I\u0027m saying \"there be dragons here, lets navigate them!\"","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"047054206aaf941c4586add6a88e6a300110d0e0","unresolved":true,"context_lines":[{"line_number":51,"context_line":"  volume is listed as attached to instance."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"- Verify in nova block device mapping table, volume would be listed as"},{"line_number":54,"context_line":"  attached to instance."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":".. warning::"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"a8aea8f4_41c115b7","line":54,"in_reply_to":"cc02c8b5_3de0ec10","updated":"2023-07-05 16:34:17.000000000","message":"Agreed on the fact we shouldn\u0027t have different behaviours between virt drivers.","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8c5cc5f3c932d00ce41312a9ef7a7d2d4a442b8d","unresolved":true,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"Similarly, when we ask Nova to attach volume to an instance, Nova creates a"},{"line_number":82,"context_line":"BDM of it in the block_device_mapping database and sets source_type and"},{"line_number":83,"context_line":"destination_type as volume."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"While restarting the instance, verify, on the basis of source_type and"},{"line_number":86,"context_line":"volume_type, whether the attached BDM is a volume or not, if it is a volume,"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf03f91b_ccbd2272","line":83,"updated":"2023-05-22 15:09:01.000000000","message":"the two above paragraphs are not the proposed change, just explaining why it won\u0027t work.","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"149cc545c8044fcb60d1d15d6a04ae8f6663dd41","unresolved":true,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"Similarly, when we ask Nova to attach volume to an instance, Nova creates a"},{"line_number":82,"context_line":"BDM of it in the block_device_mapping database and sets source_type and"},{"line_number":83,"context_line":"destination_type as volume."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"While restarting the instance, verify, on the basis of source_type and"},{"line_number":86,"context_line":"volume_type, whether the attached BDM is a volume or not, if it is a volume,"}],"source_content_type":"text/x-rst","patch_set":12,"id":"d20cc8bd_039bcdc6","line":83,"in_reply_to":"bf03f91b_ccbd2272","updated":"2023-06-21 11:39:00.000000000","message":"moved before code chages as Notes.","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"047054206aaf941c4586add6a88e6a300110d0e0","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"Similarly, when we ask Nova to attach volume to an instance, Nova creates a"},{"line_number":82,"context_line":"BDM of it in the block_device_mapping database and sets source_type and"},{"line_number":83,"context_line":"destination_type as volume."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"While restarting the instance, verify, on the basis of source_type and"},{"line_number":86,"context_line":"volume_type, whether the attached BDM is a volume or not, if it is a volume,"}],"source_content_type":"text/x-rst","patch_set":12,"id":"823852b2_a2cfa477","line":83,"in_reply_to":"d20cc8bd_039bcdc6","updated":"2023-07-05 16:34:17.000000000","message":"Done","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8c5cc5f3c932d00ce41312a9ef7a7d2d4a442b8d","unresolved":true,"context_lines":[{"line_number":82,"context_line":"BDM of it in the block_device_mapping database and sets source_type and"},{"line_number":83,"context_line":"destination_type as volume."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"While restarting the instance, verify, on the basis of source_type and"},{"line_number":86,"context_line":"volume_type, whether the attached BDM is a volume or not, if it is a volume,"},{"line_number":87,"context_line":"then verify if this volume exists in Cinder or not. If it exists, verify if"},{"line_number":88,"context_line":"its status is \u0027in-use\u0027 or \u0027available\u0027. If it\u0027s \u0027in-use\u0027, that means the volume"}],"source_content_type":"text/x-rst","patch_set":12,"id":"64fdb0a2_77fb418d","line":85,"range":{"start_line":85,"start_character":0,"end_line":85,"end_character":30},"updated":"2023-05-22 15:09:01.000000000","message":"only when restarting the instances, or should we also verify that when restarting the nova-compute ?","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"149cc545c8044fcb60d1d15d6a04ae8f6663dd41","unresolved":false,"context_lines":[{"line_number":82,"context_line":"BDM of it in the block_device_mapping database and sets source_type and"},{"line_number":83,"context_line":"destination_type as volume."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"While restarting the instance, verify, on the basis of source_type and"},{"line_number":86,"context_line":"volume_type, whether the attached BDM is a volume or not, if it is a volume,"},{"line_number":87,"context_line":"then verify if this volume exists in Cinder or not. If it exists, verify if"},{"line_number":88,"context_line":"its status is \u0027in-use\u0027 or \u0027available\u0027. If it\u0027s \u0027in-use\u0027, that means the volume"}],"source_content_type":"text/x-rst","patch_set":12,"id":"64144001_67d3797b","line":85,"range":{"start_line":85,"start_character":0,"end_line":85,"end_character":30},"in_reply_to":"64fdb0a2_77fb418d","updated":"2023-06-21 11:39:00.000000000","message":"Done","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8c5cc5f3c932d00ce41312a9ef7a7d2d4a442b8d","unresolved":true,"context_lines":[{"line_number":89,"context_line":"attachment is correct, and both Nova and Cinder are aware of this attachment."},{"line_number":90,"context_line":"If it\u0027s \u0027available\u0027 that means the volume is not attached properly to the"},{"line_number":91,"context_line":"instance, so remove or soft delete the BDM from the block_device_mapping"},{"line_number":92,"context_line":"database."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Also log the error or exception of this in Nova logs, so operators can be"},{"line_number":95,"context_line":"aware of the reason for this modification or update in the database."}],"source_content_type":"text/x-rst","patch_set":12,"id":"31a0cfef_02182f76","line":92,"updated":"2023-05-22 15:09:01.000000000","message":"what if the Cinder API isn\u0027t running? Could you explain that then we would continue to support the BDM but providing a log.","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"149cc545c8044fcb60d1d15d6a04ae8f6663dd41","unresolved":true,"context_lines":[{"line_number":89,"context_line":"attachment is correct, and both Nova and Cinder are aware of this attachment."},{"line_number":90,"context_line":"If it\u0027s \u0027available\u0027 that means the volume is not attached properly to the"},{"line_number":91,"context_line":"instance, so remove or soft delete the BDM from the block_device_mapping"},{"line_number":92,"context_line":"database."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Also log the error or exception of this in Nova logs, so operators can be"},{"line_number":95,"context_line":"aware of the reason for this modification or update in the database."}],"source_content_type":"text/x-rst","patch_set":12,"id":"e3e6b18d_7d770008","line":92,"in_reply_to":"31a0cfef_02182f76","updated":"2023-06-21 11:39:00.000000000","message":"from Sean in later comment.\n`if the cinder api is down we will still be able to boot vms using our exisitng bdms form the db`","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b4eee7d10205f957a34b1900a9d35ba357ae8ba3","unresolved":true,"context_lines":[{"line_number":104,"context_line":"Hence, this functionality should be added in the instance reboot process."},{"line_number":105,"context_line":"While rebooting, update the block_device_mapping DB and after instance shutoff"},{"line_number":106,"context_line":"properly, while starting again, at the virt level (such as libvirt) driver"},{"line_number":107,"context_line":"module will generate a new XML domain with updated BDM\u0027s."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Functionality _delete_dangling_bdms() should be added inside ComptuteManager"},{"line_number":110,"context_line":"and called from ComptuteManager.reboot_instance. It should verify whether"}],"source_content_type":"text/x-rst","patch_set":12,"id":"e83c6011_a49eed7f","line":107,"updated":"2023-05-25 17:22:54.000000000","message":"From an Ironic POV, the BDM data doesn\u0027t really need to be \"updated\". We\u0027ll update our representation of the data upon the next power cycle directly from cinder. Basically Ironic already does this, itself, actually. :) It is just not an XML file on our side, but cross syncing volume target and volume connector information (connectors being information about initiators, and targets being BDM records).\n\nTo make it work, the Ironic bare metal node will need to be powered down for the block device mapping (volume target). We might need to add some sort of indicator to say \"Hey, this is the authority for syncing\" indicator, but that is much more an implementation detail.","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"40d1d591d8c3acb314cc0e4a0c04ae80a204e5af","unresolved":true,"context_lines":[{"line_number":104,"context_line":"Hence, this functionality should be added in the instance reboot process."},{"line_number":105,"context_line":"While rebooting, update the block_device_mapping DB and after instance shutoff"},{"line_number":106,"context_line":"properly, while starting again, at the virt level (such as libvirt) driver"},{"line_number":107,"context_line":"module will generate a new XML domain with updated BDM\u0027s."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Functionality _delete_dangling_bdms() should be added inside ComptuteManager"},{"line_number":110,"context_line":"and called from ComptuteManager.reboot_instance. It should verify whether"}],"source_content_type":"text/x-rst","patch_set":12,"id":"40a2f487_6e315794","line":107,"in_reply_to":"e83c6011_a49eed7f","updated":"2023-06-21 12:33:21.000000000","message":"right unfortunetlly ironic was not allowed to do that.\n\nthere have been some other converstaion on this topic that i have not been fully invoeld with but nova has never supported management of cidner attachemnt related to nova instance (vms or baremental) directly via the cidner api so ironic has been silently currpting our db for years by internally updating the cinder attachments.\n\nthe ironic driver shoudl be modifyed to have the info taken form the bdm in the nova db instead fo goign direct to cider ideally \n\nThe conflict for ironic is really that there are two useage models\n\nironic stand alone wherne it would be resaonsble for it to interact with cidner\nand ironic as a virt driver for nova where it is not.","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8c5cc5f3c932d00ce41312a9ef7a7d2d4a442b8d","unresolved":true,"context_lines":[{"line_number":128,"context_line":"  ERROR nova.compute.manager nova.exception.InvalidVolume: Invalid volume: volume \u0027VOLUME-ID\u0027 status must be \u0027in-use\u0027. Currently in \u0027available\u0027 status"},{"line_number":129,"context_line":"  ERROR nova.compute.manager"},{"line_number":130,"context_line":"  INFO nova.compute.manager [None \u0027REQ-ID\u0027 admin admin] Deleting volume \u0027VOLUME-ID\u0027 from nova block device mapping."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Alternatives"},{"line_number":133,"context_line":"------------"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3f4e20d7_8be5fafe","line":131,"updated":"2023-05-22 15:09:01.000000000","message":"not sure you really need to explain your code changes, but OK.","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"ab6cf6019ead201001c68c094454c187ae910762","unresolved":true,"context_lines":[{"line_number":128,"context_line":"  ERROR nova.compute.manager nova.exception.InvalidVolume: Invalid volume: volume \u0027VOLUME-ID\u0027 status must be \u0027in-use\u0027. Currently in \u0027available\u0027 status"},{"line_number":129,"context_line":"  ERROR nova.compute.manager"},{"line_number":130,"context_line":"  INFO nova.compute.manager [None \u0027REQ-ID\u0027 admin admin] Deleting volume \u0027VOLUME-ID\u0027 from nova block device mapping."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Alternatives"},{"line_number":133,"context_line":"------------"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"e805f7aa_c2b537ee","line":131,"in_reply_to":"3f4e20d7_8be5fafe","updated":"2023-05-26 06:21:29.000000000","message":"this is not valid anymore, will remove exception traceback.","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"335eeda9796ce29cfa281d34959987bd2327b7fe","unresolved":false,"context_lines":[{"line_number":128,"context_line":"  ERROR nova.compute.manager nova.exception.InvalidVolume: Invalid volume: volume \u0027VOLUME-ID\u0027 status must be \u0027in-use\u0027. Currently in \u0027available\u0027 status"},{"line_number":129,"context_line":"  ERROR nova.compute.manager"},{"line_number":130,"context_line":"  INFO nova.compute.manager [None \u0027REQ-ID\u0027 admin admin] Deleting volume \u0027VOLUME-ID\u0027 from nova block device mapping."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Alternatives"},{"line_number":133,"context_line":"------------"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"090a060e_939f9ead","line":131,"in_reply_to":"e805f7aa_c2b537ee","updated":"2023-06-07 08:43:47.000000000","message":"Done","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8c5cc5f3c932d00ce41312a9ef7a7d2d4a442b8d","unresolved":true,"context_lines":[{"line_number":171,"context_line":"Performance Impact"},{"line_number":172,"context_line":"------------------"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"  None"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"Other deployer impact"},{"line_number":177,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"ff344a9d_7560317c","line":174,"updated":"2023-05-22 15:09:01.000000000","message":"really ? \n\nI think that we would have some impact given we need to call Cinder everytime we restart an instance, even when restarting nova-compute if by default we restart the instances.\n\nThat\u0027s why I\u0027m a bit afraid. Should we like have an opt-in for that then ?","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"149cc545c8044fcb60d1d15d6a04ae8f6663dd41","unresolved":false,"context_lines":[{"line_number":171,"context_line":"Performance Impact"},{"line_number":172,"context_line":"------------------"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"  None"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"Other deployer impact"},{"line_number":177,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"f8546c7c_b585667f","line":174,"in_reply_to":"6283bed5_b450c6c6","updated":"2023-06-21 11:39:00.000000000","message":"Done","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ebd084304ded2929608a55861bd0fb547fb53834","unresolved":true,"context_lines":[{"line_number":171,"context_line":"Performance Impact"},{"line_number":172,"context_line":"------------------"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"  None"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"Other deployer impact"},{"line_number":177,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"a1844e47_60fd4422","line":174,"in_reply_to":"7e73f4d5_21cd88cc","updated":"2023-05-24 17:10:45.000000000","message":"It\u0027s an extremely tiny impact.. A GET of an attachment by ID. In the scheme of a hard reboot, it\u0027s extremely minor. Considering the fallout from the recent CVE, it\u0027s also very easy to justify such things for safety :)","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"335eeda9796ce29cfa281d34959987bd2327b7fe","unresolved":true,"context_lines":[{"line_number":171,"context_line":"Performance Impact"},{"line_number":172,"context_line":"------------------"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"  None"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"Other deployer impact"},{"line_number":177,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"6283bed5_b450c6c6","line":174,"in_reply_to":"a1844e47_60fd4422","updated":"2023-06-07 08:43:47.000000000","message":"Updated","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"60fe6eb289f95477250e0aacceedf5cc73b2f550","unresolved":true,"context_lines":[{"line_number":171,"context_line":"Performance Impact"},{"line_number":172,"context_line":"------------------"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"  None"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"Other deployer impact"},{"line_number":177,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"7e73f4d5_21cd88cc","line":174,"in_reply_to":"ff344a9d_7560317c","updated":"2023-05-24 17:02:30.000000000","message":"it would have a perfroamce impact yes which is why it was orgianlly an oflien oepration done by the admin vai nova-manage.","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8c5cc5f3c932d00ce41312a9ef7a7d2d4a442b8d","unresolved":true,"context_lines":[{"line_number":176,"context_line":"Other deployer impact"},{"line_number":177,"context_line":"---------------------"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"  None"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"Developer impact"},{"line_number":182,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"27f2f2be_7b13e69f","line":179,"updated":"2023-05-22 15:09:01.000000000","message":"here, we need to make sure that Cinder-API service runs before, right?","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"60fe6eb289f95477250e0aacceedf5cc73b2f550","unresolved":true,"context_lines":[{"line_number":176,"context_line":"Other deployer impact"},{"line_number":177,"context_line":"---------------------"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"  None"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"Developer impact"},{"line_number":182,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"6cff9dd0_fc8e3234","line":179,"in_reply_to":"27f2f2be_7b13e69f","updated":"2023-05-24 17:02:30.000000000","message":"not nessisarly\nthe expectaation here is that if the cinder api is down we will still be able to boot vms using our exisitng bdms form the db\nwe jsut cant heal any deviation","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"149cc545c8044fcb60d1d15d6a04ae8f6663dd41","unresolved":false,"context_lines":[{"line_number":176,"context_line":"Other deployer impact"},{"line_number":177,"context_line":"---------------------"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"  None"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"Developer impact"},{"line_number":182,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"792af416_b33e5a83","line":179,"in_reply_to":"34072f9e_e10557af","updated":"2023-06-21 11:39:00.000000000","message":"Ack","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ebd084304ded2929608a55861bd0fb547fb53834","unresolved":true,"context_lines":[{"line_number":176,"context_line":"Other deployer impact"},{"line_number":177,"context_line":"---------------------"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"  None"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"Developer impact"},{"line_number":182,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"f0aa66fb_02add270","line":179,"in_reply_to":"6cff9dd0_fc8e3234","updated":"2023-05-24 17:10:45.000000000","message":"Yeah, when we discussed this we said that if we can\u0027t refresh the cache because cinder is down, just re-use what we have. It might be worth calling that out specifically just to avoid further confusion.","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b4eee7d10205f957a34b1900a9d35ba357ae8ba3","unresolved":true,"context_lines":[{"line_number":176,"context_line":"Other deployer impact"},{"line_number":177,"context_line":"---------------------"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"  None"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"Developer impact"},{"line_number":182,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"34072f9e_e10557af","line":179,"in_reply_to":"f0aa66fb_02add270","updated":"2023-05-25 17:22:54.000000000","message":"++ This is the same approach we took in Ironic. Ensure ability to recover, but try and have the latest data possible in the event it is also needed to recover.","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b4eee7d10205f957a34b1900a9d35ba357ae8ba3","unresolved":true,"context_lines":[{"line_number":206,"context_line":"Work Items"},{"line_number":207,"context_line":"----------"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"- Create a cleanup functionality and add in instance restart process."},{"line_number":210,"context_line":"- Add unit and functional tests for cleanup."},{"line_number":211,"context_line":""},{"line_number":212,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9d68d92d_6a5accb4","line":209,"updated":"2023-05-25 17:22:54.000000000","message":"Depending on the decision on how attachments are handled in other virt drivers, another item may be needed here since focusing only on the virtualization use case is fine, but we need to explicitly then ignore things for Bare Metal users, or encode the same basic model of interaction into place.","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"047054206aaf941c4586add6a88e6a300110d0e0","unresolved":true,"context_lines":[{"line_number":206,"context_line":"Work Items"},{"line_number":207,"context_line":"----------"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"- Create a cleanup functionality and add in instance restart process."},{"line_number":210,"context_line":"- Add unit and functional tests for cleanup."},{"line_number":211,"context_line":""},{"line_number":212,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"e3942a2d_391b7838","line":209,"in_reply_to":"77be311b_2dba1404","updated":"2023-07-05 16:34:17.000000000","message":"Agreed with Sean here, we shouldn\u0027t have some specific virt verifications for this.\nWhen restarting the instance, we should directly cleanup the BDMs and then ask the virt driver to use the updated BDM if they want.","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"40d1d591d8c3acb314cc0e4a0c04ae80a204e5af","unresolved":true,"context_lines":[{"line_number":206,"context_line":"Work Items"},{"line_number":207,"context_line":"----------"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"- Create a cleanup functionality and add in instance restart process."},{"line_number":210,"context_line":"- Add unit and functional tests for cleanup."},{"line_number":211,"context_line":""},{"line_number":212,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"77be311b_2dba1404","line":209,"in_reply_to":"9d68d92d_6a5accb4","updated":"2023-06-21 12:33:21.000000000","message":"this is not just focusted on the virt usecase.\n\nvolume attachment are not somethng that should vary per driver. im aware that ironic was managing volume attachments when the the server was allocated to a nova instance but that is not somthing that the drver should have been doing.\n\n\nso we will need to change ironic going forward to normalise its behavior.","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8c5cc5f3c932d00ce41312a9ef7a7d2d4a442b8d","unresolved":true,"context_lines":[{"line_number":226,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"Documentation for cleanup dangling volumes while server restart will be added"},{"line_number":229,"context_line":"in nova docs."},{"line_number":230,"context_line":""},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":12,"id":"02331c06_a9d3beb7","line":229,"updated":"2023-05-22 15:09:01.000000000","message":"which ones specifically ?","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"ab6cf6019ead201001c68c094454c187ae910762","unresolved":true,"context_lines":[{"line_number":226,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"Documentation for cleanup dangling volumes while server restart will be added"},{"line_number":229,"context_line":"in nova docs."},{"line_number":230,"context_line":""},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":12,"id":"b3a2c853_fd4569c2","line":229,"in_reply_to":"02331c06_a9d3beb7","updated":"2023-05-26 06:21:29.000000000","message":"will be adding releasenotes.\nplease suggest if any other doc required update.","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"149cc545c8044fcb60d1d15d6a04ae8f6663dd41","unresolved":false,"context_lines":[{"line_number":226,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"Documentation for cleanup dangling volumes while server restart will be added"},{"line_number":229,"context_line":"in nova docs."},{"line_number":230,"context_line":""},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":12,"id":"de40a2d8_33e5dd09","line":229,"in_reply_to":"b3a2c853_fd4569c2","updated":"2023-06-21 11:39:00.000000000","message":"Done","commit_id":"befeb2b945cd58663433afb9b0cf50ba54c64c30"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"80b0c6aa16ce732978dbf99c4fd2777318953ba7","unresolved":true,"context_lines":[{"line_number":38,"context_line":"- As an operator, I want all dangling volume attachments safely removed"},{"line_number":39,"context_line":"  from my instance, so any volume-related operations do not get affected."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"- As an operator, I want all dangling attachments listed at Cinder, safely"},{"line_number":42,"context_line":"  removed from Cinder DB."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Proposed change"},{"line_number":45,"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":13,"id":"4cd1255e_e4009a39","line":42,"range":{"start_line":41,"start_character":0,"end_line":42,"end_character":25},"updated":"2023-06-08 07:57:41.000000000","message":"is this really a nova usecase ?","commit_id":"a50d1a21b081a7abfa719a34567902747d053fcd"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"149cc545c8044fcb60d1d15d6a04ae8f6663dd41","unresolved":true,"context_lines":[{"line_number":38,"context_line":"- As an operator, I want all dangling volume attachments safely removed"},{"line_number":39,"context_line":"  from my instance, so any volume-related operations do not get affected."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"- As an operator, I want all dangling attachments listed at Cinder, safely"},{"line_number":42,"context_line":"  removed from Cinder DB."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Proposed change"},{"line_number":45,"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":13,"id":"b62e0742_beaaee7d","line":42,"range":{"start_line":41,"start_character":0,"end_line":42,"end_character":25},"in_reply_to":"4cd1255e_e4009a39","updated":"2023-06-21 11:39:00.000000000","message":"updated use case.","commit_id":"a50d1a21b081a7abfa719a34567902747d053fcd"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"80b0c6aa16ce732978dbf99c4fd2777318953ba7","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Similarly, when we ask Nova to attach volume to an instance, Nova creates a"},{"line_number":54,"context_line":"BDM of it in the block_device_mapping database and sets source_type and"},{"line_number":55,"context_line":"destination_type as volume."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"While restarting the instance, verify, on the basis of source_type and"},{"line_number":58,"context_line":"volume_type, whether the attached BDM is a volume or not, if it is a volume,"}],"source_content_type":"text/x-rst","patch_set":13,"id":"5d6506ac_8db8dd99","line":55,"updated":"2023-06-08 07:57:41.000000000","message":"again, this is not a proposed change, just *why* we need to verify on the BDMs when restarting.","commit_id":"a50d1a21b081a7abfa719a34567902747d053fcd"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"80b0c6aa16ce732978dbf99c4fd2777318953ba7","unresolved":true,"context_lines":[{"line_number":54,"context_line":"BDM of it in the block_device_mapping database and sets source_type and"},{"line_number":55,"context_line":"destination_type as volume."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"While restarting the instance, verify, on the basis of source_type and"},{"line_number":58,"context_line":"volume_type, whether the attached BDM is a volume or not, if it is a volume,"},{"line_number":59,"context_line":"then verify if this volume exists in Cinder or not. If it exists, verify if"},{"line_number":60,"context_line":"its status is \"in-use\" or \"available\". If it\u0027s \"in-use\", that means the volume"}],"source_content_type":"text/x-rst","patch_set":13,"id":"c45ad220_a42b529f","line":57,"range":{"start_line":57,"start_character":0,"end_line":57,"end_character":29},"updated":"2023-06-08 07:57:41.000000000","message":"fortunately, depending on a config option, we can also verify the BDMs when restarting the compute service if it\u0027s also restarting the instances.\n\nThat said, why couldn\u0027t we be also verifying the BDMs when restarting the nova-compute if the instances are not yet run ?","commit_id":"a50d1a21b081a7abfa719a34567902747d053fcd"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"047054206aaf941c4586add6a88e6a300110d0e0","unresolved":false,"context_lines":[{"line_number":54,"context_line":"BDM of it in the block_device_mapping database and sets source_type and"},{"line_number":55,"context_line":"destination_type as volume."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"While restarting the instance, verify, on the basis of source_type and"},{"line_number":58,"context_line":"volume_type, whether the attached BDM is a volume or not, if it is a volume,"},{"line_number":59,"context_line":"then verify if this volume exists in Cinder or not. If it exists, verify if"},{"line_number":60,"context_line":"its status is \"in-use\" or \"available\". If it\u0027s \"in-use\", that means the volume"}],"source_content_type":"text/x-rst","patch_set":13,"id":"ff4a46c2_072fb268","line":57,"range":{"start_line":57,"start_character":0,"end_line":57,"end_character":29},"in_reply_to":"c45ad220_a42b529f","updated":"2023-07-05 16:34:17.000000000","message":"As said below L76, not necessary. Nevermind it.","commit_id":"a50d1a21b081a7abfa719a34567902747d053fcd"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"149cc545c8044fcb60d1d15d6a04ae8f6663dd41","unresolved":true,"context_lines":[{"line_number":54,"context_line":"BDM of it in the block_device_mapping database and sets source_type and"},{"line_number":55,"context_line":"destination_type as volume."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"While restarting the instance, verify, on the basis of source_type and"},{"line_number":58,"context_line":"volume_type, whether the attached BDM is a volume or not, if it is a volume,"},{"line_number":59,"context_line":"then verify if this volume exists in Cinder or not. If it exists, verify if"},{"line_number":60,"context_line":"its status is \"in-use\" or \"available\". If it\u0027s \"in-use\", that means the volume"}],"source_content_type":"text/x-rst","patch_set":13,"id":"a75653b9_ee1241dc","line":57,"range":{"start_line":57,"start_character":0,"end_line":57,"end_character":29},"in_reply_to":"c45ad220_a42b529f","updated":"2023-06-21 11:39:00.000000000","message":"this was discussed, verifying while rebooting instance is enough.","commit_id":"a50d1a21b081a7abfa719a34567902747d053fcd"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"80b0c6aa16ce732978dbf99c4fd2777318953ba7","unresolved":false,"context_lines":[{"line_number":69,"context_line":"Code Changes"},{"line_number":70,"context_line":"------------"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"To delete the BDM\u0027s from the database, we first must need to shutdown the"},{"line_number":73,"context_line":"instance, so instance domain get redefined at the virt level. We need to make"},{"line_number":74,"context_line":"sure BDM\u0027s updated before generating the new XML."},{"line_number":75,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"a1265b4b_87c1458c","line":72,"range":{"start_line":72,"start_character":39,"end_line":72,"end_character":69},"updated":"2023-06-08 07:57:41.000000000","message":"nit : well, originally I thought you were saying that users need to stop their instances, but OK, I looked at the next paragraph :)","commit_id":"a50d1a21b081a7abfa719a34567902747d053fcd"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"80b0c6aa16ce732978dbf99c4fd2777318953ba7","unresolved":true,"context_lines":[{"line_number":73,"context_line":"instance, so instance domain get redefined at the virt level. We need to make"},{"line_number":74,"context_line":"sure BDM\u0027s updated before generating the new XML."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Hence, this functionality should be added in the instance reboot process."},{"line_number":77,"context_line":"While rebooting, update the block_device_mapping DB at Nova side and"},{"line_number":78,"context_line":"volume_attachment DB at Cinder side via Cinder API call. Once after instance"},{"line_number":79,"context_line":"shutoff properly, while starting again, at the virt level (such as libvirt)"}],"source_content_type":"text/x-rst","patch_set":13,"id":"24c391a7_f6e6f38d","line":76,"range":{"start_line":76,"start_character":26,"end_line":76,"end_character":73},"updated":"2023-06-08 07:57:41.000000000","message":"could we also add this verification when restarting the compute (and before the instances are restarted), like I said above ?","commit_id":"a50d1a21b081a7abfa719a34567902747d053fcd"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"047054206aaf941c4586add6a88e6a300110d0e0","unresolved":false,"context_lines":[{"line_number":73,"context_line":"instance, so instance domain get redefined at the virt level. We need to make"},{"line_number":74,"context_line":"sure BDM\u0027s updated before generating the new XML."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Hence, this functionality should be added in the instance reboot process."},{"line_number":77,"context_line":"While rebooting, update the block_device_mapping DB at Nova side and"},{"line_number":78,"context_line":"volume_attachment DB at Cinder side via Cinder API call. Once after instance"},{"line_number":79,"context_line":"shutoff properly, while starting again, at the virt level (such as libvirt)"}],"source_content_type":"text/x-rst","patch_set":13,"id":"03f6f66f_de8c3a2d","line":76,"range":{"start_line":76,"start_character":26,"end_line":76,"end_character":73},"in_reply_to":"24c391a7_f6e6f38d","updated":"2023-07-05 16:34:17.000000000","message":"After having it discussed and thought more, no, we should just leave the instance be restarted by the user or recycled upon a service restart depending on the config option.\n\nNevermind my comment then.","commit_id":"a50d1a21b081a7abfa719a34567902747d053fcd"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"149cc545c8044fcb60d1d15d6a04ae8f6663dd41","unresolved":false,"context_lines":[{"line_number":73,"context_line":"instance, so instance domain get redefined at the virt level. We need to make"},{"line_number":74,"context_line":"sure BDM\u0027s updated before generating the new XML."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Hence, this functionality should be added in the instance reboot process."},{"line_number":77,"context_line":"While rebooting, update the block_device_mapping DB at Nova side and"},{"line_number":78,"context_line":"volume_attachment DB at Cinder side via Cinder API call. Once after instance"},{"line_number":79,"context_line":"shutoff properly, while starting again, at the virt level (such as libvirt)"}],"source_content_type":"text/x-rst","patch_set":13,"id":"a4514e81_1fca649a","line":76,"range":{"start_line":76,"start_character":26,"end_line":76,"end_character":73},"in_reply_to":"24c391a7_f6e6f38d","updated":"2023-06-21 11:39:00.000000000","message":"Done","commit_id":"a50d1a21b081a7abfa719a34567902747d053fcd"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"80b0c6aa16ce732978dbf99c4fd2777318953ba7","unresolved":true,"context_lines":[{"line_number":134,"context_line":"Server might take more time to reboot, as there will be GET and DELETE"},{"line_number":135,"context_line":"API call(s) towards Cinder service."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"It primarily depends on number of attachments to delete."},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Other deployer impact"},{"line_number":140,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"f6287fcc_ee0c901a","line":137,"updated":"2023-06-08 07:57:41.000000000","message":"thanks for adding it.","commit_id":"a50d1a21b081a7abfa719a34567902747d053fcd"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"149cc545c8044fcb60d1d15d6a04ae8f6663dd41","unresolved":false,"context_lines":[{"line_number":134,"context_line":"Server might take more time to reboot, as there will be GET and DELETE"},{"line_number":135,"context_line":"API call(s) towards Cinder service."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"It primarily depends on number of attachments to delete."},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Other deployer impact"},{"line_number":140,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"cfe33907_c2a9b98b","line":137,"in_reply_to":"f6287fcc_ee0c901a","updated":"2023-06-21 11:39:00.000000000","message":"Done","commit_id":"a50d1a21b081a7abfa719a34567902747d053fcd"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"80b0c6aa16ce732978dbf99c4fd2777318953ba7","unresolved":true,"context_lines":[{"line_number":188,"context_line":"Documentation Impact"},{"line_number":189,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"Releasenote for cleanup dangling volumes while server restart will be added."},{"line_number":192,"context_line":""},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":13,"id":"34501ffd_a9fc734f","line":191,"updated":"2023-06-08 07:57:41.000000000","message":"You could amend https://docs.openstack.org/nova/latest/admin/manage-volumes.html as well.","commit_id":"a50d1a21b081a7abfa719a34567902747d053fcd"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"f9bd5bc40f238d070d8db4cacc5bf93f84e6f90c","unresolved":false,"context_lines":[{"line_number":188,"context_line":"Documentation Impact"},{"line_number":189,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"Releasenote for cleanup dangling volumes while server restart will be added."},{"line_number":192,"context_line":""},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":13,"id":"08a247d6_d6461e42","line":191,"in_reply_to":"34501ffd_a9fc734f","updated":"2023-06-30 09:50:46.000000000","message":"Ack, Done","commit_id":"a50d1a21b081a7abfa719a34567902747d053fcd"}],"specs/2023.2/approved/nova-manage-cleanup-dangling-volume-attachments.rst":[{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"2419bf859178d8e71adc3001bdb4926bb087e3e0","unresolved":true,"context_lines":[{"line_number":63,"context_line":".. code-block:: shell"},{"line_number":64,"context_line":"nova-manage volume_attachment refresh --clean-orphans"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"pre-requisite:"},{"line_number":67,"context_line":"server should be shut-off, else later no other volume will be attached to it"},{"line_number":68,"context_line":"and same volume can not be attached to other instance."},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"f9319cf5_7af5145f","line":66,"updated":"2023-03-28 10:25:18.000000000","message":"Mar 28 07:27:08 devstack-antl-amit nova-compute[83374]: ERROR oslo_messaging.rpc.server libvirt.libvirtError: Requested operation is not valid: target vdb already exists","commit_id":"aa9691f34752ca6f25879f0513efbdc1823ea796"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"ebc26d4804fa4122224edc53270f121b5037b164","unresolved":false,"context_lines":[{"line_number":63,"context_line":".. code-block:: shell"},{"line_number":64,"context_line":"nova-manage volume_attachment refresh --clean-orphans"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"pre-requisite:"},{"line_number":67,"context_line":"server should be shut-off, else later no other volume will be attached to it"},{"line_number":68,"context_line":"and same volume can not be attached to other instance."},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"a258a821_8f5ae636","line":66,"in_reply_to":"4ee14764_edf764bc","updated":"2023-04-03 06:32:12.000000000","message":"Decided in PTG its a valid pre-requisite, operation required locking of instance and server must be shut-off.","commit_id":"aa9691f34752ca6f25879f0513efbdc1823ea796"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"1f3dbe57b58d866c8b885b0459eff1354538e145","unresolved":true,"context_lines":[{"line_number":63,"context_line":".. code-block:: shell"},{"line_number":64,"context_line":"nova-manage volume_attachment refresh --clean-orphans"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"pre-requisite:"},{"line_number":67,"context_line":"server should be shut-off, else later no other volume will be attached to it"},{"line_number":68,"context_line":"and same volume can not be attached to other instance."},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"4ee14764_edf764bc","line":66,"in_reply_to":"f9319cf5_7af5145f","updated":"2023-03-31 13:10:24.000000000","message":"if pre-requisite not satisfied","commit_id":"aa9691f34752ca6f25879f0513efbdc1823ea796"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"7cd680da96765f438724d7fba4959d3d57058d5c","unresolved":true,"context_lines":[{"line_number":72,"context_line":"as well."},{"line_number":73,"context_line":"So, we can have a new functionality, cleanup volumes in same class"},{"line_number":74,"context_line":"VolumeAttachmentCommands."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Might be issue:"},{"line_number":77,"context_line":".. code-block:: shell"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5d5c7021_d1fdb554","line":75,"updated":"2023-03-29 06:45:26.000000000","message":"Is this a issue ?\n```\n  if we cleanup the volume_1 and then later we attach same volume_1 again now in bdm there are 2 entries.\n  one deleted\u003dID and another deleted\u003d0.\n\n  | ec891162-8b65-4726-a16a-3eecf6257435 | 1ce5fc3a-0c28-4c0a-94c0-26cd0746e7f9 | ccb720ea-5d64-465c-9b15-b2b7a3b55cac | volume      | volume           | 097e3bf7-9697-40e6-8fdc-f2eca291e16e | NULL        |      19 |\n  | 0bcdfef7-6af5-44ee-bf21-4955607f5239 | 1ce5fc3a-0c28-4c0a-94c0-26cd0746e7f9 | ccb720ea-5d64-465c-9b15-b2b7a3b55cac | volume      | volume           | 68ef99d4-859b-4dca-b6e4-d2e59db532f0 | NULL        |       0 |\n```\nthough, the UUID for both are different.","commit_id":"5195e23c43fa781847dff06b294ffb4f2e27b820"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e584a0a0311773b867dc9f86a18c62ba4f65cb3d","unresolved":true,"context_lines":[{"line_number":72,"context_line":"as well."},{"line_number":73,"context_line":"So, we can have a new functionality, cleanup volumes in same class"},{"line_number":74,"context_line":"VolumeAttachmentCommands."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Might be issue:"},{"line_number":77,"context_line":".. code-block:: shell"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a299358_e0f0173e","line":75,"in_reply_to":"5d5c7021_d1fdb554","updated":"2023-03-31 11:23:30.000000000","message":"no that is expecte behavior.\n\ndeleted\u003dID is how we mark a row as deleted in the db.\n\nthis is what we refert to as database soft delete.","commit_id":"5195e23c43fa781847dff06b294ffb4f2e27b820"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"1f3dbe57b58d866c8b885b0459eff1354538e145","unresolved":false,"context_lines":[{"line_number":72,"context_line":"as well."},{"line_number":73,"context_line":"So, we can have a new functionality, cleanup volumes in same class"},{"line_number":74,"context_line":"VolumeAttachmentCommands."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Might be issue:"},{"line_number":77,"context_line":".. code-block:: shell"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"2e38f43a_755ce19d","line":75,"in_reply_to":"7a299358_e0f0173e","updated":"2023-03-31 13:10:24.000000000","message":"Ack","commit_id":"5195e23c43fa781847dff06b294ffb4f2e27b820"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"7cd680da96765f438724d7fba4959d3d57058d5c","unresolved":true,"context_lines":[{"line_number":80,"context_line":"  To add cleanup method in VolumeAttachmentCommands."},{"line_number":81,"context_line":"  This will accecpt instance id and clean up nova BDM db if required"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"Alternatives"},{"line_number":86,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1352eb1f_82399294","line":83,"updated":"2023-03-29 06:45:26.000000000","message":"Where to register --cleanup flag, \napi.py ?","commit_id":"c117b9c579185f154bf2a84f14a5b2220e0c78cf"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"1f3dbe57b58d866c8b885b0459eff1354538e145","unresolved":false,"context_lines":[{"line_number":80,"context_line":"  To add cleanup method in VolumeAttachmentCommands."},{"line_number":81,"context_line":"  This will accecpt instance id and clean up nova BDM db if required"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"Alternatives"},{"line_number":86,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"0e1fece0_c3d12cda","line":83,"in_reply_to":"1352eb1f_82399294","updated":"2023-03-31 13:10:24.000000000","message":"Done","commit_id":"c117b9c579185f154bf2a84f14a5b2220e0c78cf"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e584a0a0311773b867dc9f86a18c62ba4f65cb3d","unresolved":true,"context_lines":[{"line_number":31,"context_line":"- Delete volume attachement using cinder, so nova don\u0027t know about deletion."},{"line_number":32,"context_line":"  .. code-block:: shell"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    $ cinder --os-volume-api-version 3.27 attachment-delete \u003cattahcment_id\u003e"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"- Verify using cinder api"},{"line_number":37,"context_line":"  .. code-block:: shell"}],"source_content_type":"text/x-rst","patch_set":6,"id":"77752797_3b025f09","line":34,"updated":"2023-03-31 11:23:30.000000000","message":"so this is really where the problems starts your as an end user are not allowed to actully do this if the volume is attached to a nova insntace.\n\nnova only supproted volume attachmeents to be modifed by nova so this is where the db get currpted.\n\nthe problem is that since cinder allow this because they have to support cinder standalone or cidner with ironic so end users shoudl be able to add and remove attachments.","commit_id":"f39b630c356135e619562205ebcd3dc1118fa3cb"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"1f3dbe57b58d866c8b885b0459eff1354538e145","unresolved":true,"context_lines":[{"line_number":31,"context_line":"- Delete volume attachement using cinder, so nova don\u0027t know about deletion."},{"line_number":32,"context_line":"  .. code-block:: shell"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    $ cinder --os-volume-api-version 3.27 attachment-delete \u003cattahcment_id\u003e"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"- Verify using cinder api"},{"line_number":37,"context_line":"  .. code-block:: shell"}],"source_content_type":"text/x-rst","patch_set":6,"id":"d64d92b3_96ac4176","line":34,"in_reply_to":"77752797_3b025f09","updated":"2023-03-31 13:10:24.000000000","message":"Added note for same.","commit_id":"f39b630c356135e619562205ebcd3dc1118fa3cb"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"ebc26d4804fa4122224edc53270f121b5037b164","unresolved":false,"context_lines":[{"line_number":31,"context_line":"- Delete volume attachement using cinder, so nova don\u0027t know about deletion."},{"line_number":32,"context_line":"  .. code-block:: shell"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    $ cinder --os-volume-api-version 3.27 attachment-delete \u003cattahcment_id\u003e"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"- Verify using cinder api"},{"line_number":37,"context_line":"  .. code-block:: shell"}],"source_content_type":"text/x-rst","patch_set":6,"id":"e1440e56_b6c9da38","line":34,"in_reply_to":"d64d92b3_96ac4176","updated":"2023-04-03 06:32:12.000000000","message":"Done","commit_id":"f39b630c356135e619562205ebcd3dc1118fa3cb"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e584a0a0311773b867dc9f86a18c62ba4f65cb3d","unresolved":true,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    $ openstack server volume list"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"  volume is listed as attached to instance"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"- Verify in nova block device mapping table"},{"line_number":51,"context_line":"  volume would be listed as attached to instance"}],"source_content_type":"text/x-rst","patch_set":6,"id":"cfa862cf_e4b4c450","line":48,"updated":"2023-03-31 11:23:30.000000000","message":"right so we are not currently proposing to fix this.\n\nwe could but we do not support this way of detaching.\n\nwe shoudl be very clear that this spec is providing a tool to allow admins to fix the porblem and we are not actully enabling this workflow","commit_id":"f39b630c356135e619562205ebcd3dc1118fa3cb"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"4dbe5aecfb947ce81c1a7ef0fa7c917ba807efc5","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    $ openstack server volume list"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"  volume is listed as attached to instance"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"- Verify in nova block device mapping table"},{"line_number":51,"context_line":"  volume would be listed as attached to instance"}],"source_content_type":"text/x-rst","patch_set":6,"id":"a99d0e4a_caad44fb","line":48,"in_reply_to":"81bf32b5_5baa90f2","updated":"2023-04-10 07:02:26.000000000","message":"Done","commit_id":"f39b630c356135e619562205ebcd3dc1118fa3cb"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"1f3dbe57b58d866c8b885b0459eff1354538e145","unresolved":true,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    $ openstack server volume list"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"  volume is listed as attached to instance"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"- Verify in nova block device mapping table"},{"line_number":51,"context_line":"  volume would be listed as attached to instance"}],"source_content_type":"text/x-rst","patch_set":6,"id":"81bf32b5_5baa90f2","line":48,"in_reply_to":"cfa862cf_e4b4c450","updated":"2023-03-31 13:10:24.000000000","message":"Added note for same.","commit_id":"f39b630c356135e619562205ebcd3dc1118fa3cb"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e584a0a0311773b867dc9f86a18c62ba4f65cb3d","unresolved":true,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":".. code-block:: shell"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"  nova-manage volume_attachment refresh --clean-orphans"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Using check_attached cinder API, verify if volume is not attached at"},{"line_number":73,"context_line":"cinder side, soft delete at nova side."}],"source_content_type":"text/x-rst","patch_set":6,"id":"65af0c14_b68a44e6","line":70,"updated":"2023-03-31 11:23:30.000000000","message":"im not sure we shoudl reuse this subcommand\n\nthe semantics of nova-manage volume_attachment refresh are\n\nwe fix the attachments in cinder to match the bdms in nova.\n\n--clean-orphans invert the souce of truth\n\nif you just invoked \n\nnova-manage volume_attachment refresh  in this case it woudl reattch the volume to the vm\n\ni would prefer to have \n  \"nova-manage volume_attachment cleanup\"\n  \nfor the usecase where we make cinder the source of truth not nova.","commit_id":"f39b630c356135e619562205ebcd3dc1118fa3cb"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"1f3dbe57b58d866c8b885b0459eff1354538e145","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":".. code-block:: shell"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"  nova-manage volume_attachment refresh --clean-orphans"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Using check_attached cinder API, verify if volume is not attached at"},{"line_number":73,"context_line":"cinder side, soft delete at nova side."}],"source_content_type":"text/x-rst","patch_set":6,"id":"87485017_024a194e","line":70,"in_reply_to":"65af0c14_b68a44e6","updated":"2023-03-31 13:10:24.000000000","message":"Ack","commit_id":"f39b630c356135e619562205ebcd3dc1118fa3cb"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e584a0a0311773b867dc9f86a18c62ba4f65cb3d","unresolved":true,"context_lines":[{"line_number":72,"context_line":"Using check_attached cinder API, verify if volume is not attached at"},{"line_number":73,"context_line":"cinder side, soft delete at nova side."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Pre-requisite, server should be in Shutoff state, else later no other volume"},{"line_number":76,"context_line":"will be attached to it and same volume can not be attached to other instance."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Alternatives"},{"line_number":79,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"b350ebd0_0203197b","line":76,"range":{"start_line":75,"start_character":0,"end_line":76,"end_character":77},"updated":"2023-03-31 11:23:30.000000000","message":"well if the volume is a multi attach volume it can be attached to other instnaces\nso you should support that.","commit_id":"f39b630c356135e619562205ebcd3dc1118fa3cb"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"ebc26d4804fa4122224edc53270f121b5037b164","unresolved":false,"context_lines":[{"line_number":72,"context_line":"Using check_attached cinder API, verify if volume is not attached at"},{"line_number":73,"context_line":"cinder side, soft delete at nova side."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Pre-requisite, server should be in Shutoff state, else later no other volume"},{"line_number":76,"context_line":"will be attached to it and same volume can not be attached to other instance."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Alternatives"},{"line_number":79,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"86aea4a0_60bd7732","line":76,"range":{"start_line":75,"start_character":0,"end_line":76,"end_character":77},"in_reply_to":"b350ebd0_0203197b","updated":"2023-04-03 06:32:12.000000000","message":"Ack","commit_id":"f39b630c356135e619562205ebcd3dc1118fa3cb"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e584a0a0311773b867dc9f86a18c62ba4f65cb3d","unresolved":true,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"- A cron job which check for each instance in the bdm table, if instance has"},{"line_number":82,"context_line":"  dangling volumes, if such volume exists remove entry from table. In this job"},{"line_number":83,"context_line":"  instance UUID is not required."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"Data model impact"},{"line_number":86,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"c923fac7_c603a0cb","line":83,"updated":"2023-03-31 11:23:30.000000000","message":"- we could add a attachment-deleted external event like the network-vif-deleted \none https://github.com/openstack/nova/blob/master/nova/objects/external_event.py#L25\nand detach the volume if we recive it.\n\n- we could ask cinder to provide a way for use to lock the attachment so that if its created by nova only nova can delete it.","commit_id":"f39b630c356135e619562205ebcd3dc1118fa3cb"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e584a0a0311773b867dc9f86a18c62ba4f65cb3d","unresolved":true,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"- Create a cleanup flag for nova-manage volume_attachement refresh utility."},{"line_number":149,"context_line":"- Added unit and functional tests for cleanup flag."},{"line_number":150,"context_line":"- Add tempest tests for cleanup flag."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":6,"id":"c36d2edc_71292bc5","line":150,"updated":"2023-03-31 11:23:30.000000000","message":"-1 to tempest\nthis is not somethng that people should be doing (detaching voluem via cinder)\nso i do not want to have tempest test for unsupproted operations.\n\nyou also cannot invovke nova-mange form tempest.\n\nwe could perhaps have a white box test but we should not mention that in the spec.","commit_id":"f39b630c356135e619562205ebcd3dc1118fa3cb"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"1f3dbe57b58d866c8b885b0459eff1354538e145","unresolved":false,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"- Create a cleanup flag for nova-manage volume_attachement refresh utility."},{"line_number":149,"context_line":"- Added unit and functional tests for cleanup flag."},{"line_number":150,"context_line":"- Add tempest tests for cleanup flag."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":6,"id":"62371872_51489e1c","line":150,"in_reply_to":"c36d2edc_71292bc5","updated":"2023-03-31 13:10:24.000000000","message":"Ack,\n\nthough reason to add tempest was:\n\nhttps://opendev.org/openstack/tempest/src/commit/94649e792e08fcfb3859a4f7cf314070287f985c/tempest/lib/cli/base.py#L148\n\nsure, we can skip it,","commit_id":"f39b630c356135e619562205ebcd3dc1118fa3cb"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e584a0a0311773b867dc9f86a18c62ba4f65cb3d","unresolved":true,"context_lines":[{"line_number":160,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"- Unit and Functional tests will be added."},{"line_number":163,"context_line":"- Tempest test will be added."},{"line_number":164,"context_line":""},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"cbd61cf9_d361cfc8","line":163,"updated":"2023-03-31 11:23:30.000000000","message":"no it should not be","commit_id":"f39b630c356135e619562205ebcd3dc1118fa3cb"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"1f3dbe57b58d866c8b885b0459eff1354538e145","unresolved":false,"context_lines":[{"line_number":160,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"- Unit and Functional tests will be added."},{"line_number":163,"context_line":"- Tempest test will be added."},{"line_number":164,"context_line":""},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1ed13093_9fc37ef2","line":163,"in_reply_to":"cbd61cf9_d361cfc8","updated":"2023-03-31 13:10:24.000000000","message":"Ack","commit_id":"f39b630c356135e619562205ebcd3dc1118fa3cb"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"dde97bf25b2848e8f1253463824817f66a028cb6","unresolved":true,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":".. code-block:: shell"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"  $ nova-manage volume_attachment cleanup"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Using check_attached cinder API, verify if volume is not attached at"},{"line_number":83,"context_line":"cinder side, and soft delete at nova side."}],"source_content_type":"text/x-rst","patch_set":8,"id":"98e434b1_a6f422f2","line":80,"updated":"2023-03-31 17:45:17.000000000","message":"So this is going to enumerate every volume attachment in the database and hit the cinder API for each one? That\u0027s not reasonable, IMHO. This should at least take an instance, but probably also a volume ID.\n\nI guess to me it seems like this is something that needs to be cleaned up during instance lifecycle actions and/or compute host startup. Is there some other reason this needs to be a manual step?","commit_id":"377947a6c998a366c57d8d6fc132d210a63e69cb"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"f504b68fc67592450a14f565c9aac6ce858a0458","unresolved":true,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":".. code-block:: shell"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"  $ nova-manage volume_attachment cleanup"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Using check_attached cinder API, verify if volume is not attached at"},{"line_number":83,"context_line":"cinder side, and soft delete at nova side."}],"source_content_type":"text/x-rst","patch_set":8,"id":"7f516ff1_652868c3","line":80,"in_reply_to":"06a18c66_16d2db35","updated":"2023-04-06 05:10:46.000000000","message":"continuation on IRC discussion with Dan;\nQuestion:\nso let say user don\u0027t know about this dangling volumes, and for some other reason they restarted VM, we would be just removing it without informing anything, but with nova-mange cleanup, they will use it only when they are aware of issue.\n\nalthough in this situation if they restart the VM, and nova do not clean up these volumes VM goes to error state.","commit_id":"377947a6c998a366c57d8d6fc132d210a63e69cb"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"0b548012a458a87e45784541643672694eea3317","unresolved":true,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":".. code-block:: shell"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"  $ nova-manage volume_attachment cleanup"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Using check_attached cinder API, verify if volume is not attached at"},{"line_number":83,"context_line":"cinder side, and soft delete at nova side."}],"source_content_type":"text/x-rst","patch_set":8,"id":"06a18c66_16d2db35","line":80,"in_reply_to":"5fdd3348_c56d428c","updated":"2023-04-03 13:57:07.000000000","message":"No, they should\u0027t *have* to restart compute to fix this. If it was part of the instance lifecycle ops, then it would be a per-instance thing.\n\nWhat\u0027s the symptom here? If the attachment gets deleted from an instance, just rebooting it should check the attachment, notice it\u0027s gone and clean it up during the reboot process, right? You already say the pre-requisite is for it to be off, so shutdown..start or reboot should be all they need to do.","commit_id":"377947a6c998a366c57d8d6fc132d210a63e69cb"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"cbe1f89132089c1e43cc85e2e302aa2ea756106e","unresolved":true,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":".. code-block:: shell"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"  $ nova-manage volume_attachment cleanup"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Using check_attached cinder API, verify if volume is not attached at"},{"line_number":83,"context_line":"cinder side, and soft delete at nova side."}],"source_content_type":"text/x-rst","patch_set":8,"id":"e66bf160_5c7c4ab6","line":80,"in_reply_to":"7f516ff1_652868c3","updated":"2023-04-06 14:00:26.000000000","message":"Right, the instance will self-heal in this case instead of requiring admin intervention. In reality, if the attachment is deleted underneath the instance, it\u0027s likely that the instance will need user intervention anyway. A reboot would be a good first course of action, after which they would realize that the volume is not attached. That would likely lead them to go look at their attachments, realize the volume is not attached, and... reattach it 😊 Since the attachment likely got deleted by them accidentally anyway, it makes sense.\n\nThus, the whole process becomes something the user can resolve themselves, which is a far better experience for the user (and the admin). It\u0027s incredibly frustrating to not be able to fix you own problems (especially after hours), especially on a platform that is supposed to be all about \"self service infrastructure.\"","commit_id":"377947a6c998a366c57d8d6fc132d210a63e69cb"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"ebc26d4804fa4122224edc53270f121b5037b164","unresolved":true,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":".. code-block:: shell"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"  $ nova-manage volume_attachment cleanup"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Using check_attached cinder API, verify if volume is not attached at"},{"line_number":83,"context_line":"cinder side, and soft delete at nova side."}],"source_content_type":"text/x-rst","patch_set":8,"id":"5fdd3348_c56d428c","line":80,"in_reply_to":"98e434b1_a6f422f2","updated":"2023-04-03 06:32:12.000000000","message":"missed the instance-id in cmd, added now, thanks for noticing.\n\nregarding passing volume-id as well.\ndoubt: admin/operator might (or be able to) run this cmd, when they do not really know the issue but aware something is wrong with instance because of attached volumes. If we ask them to provide volume-id as well, that means they first need to check DB and list out all target volume-id\u0027s as well, same thing which we are going/have to check anyway (check_attachment).\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nNo there is no specific reason, for this to be manual from my end, my refrence for this is nova-manage volme_attachement refresh cmd.\n\nyes, its seems better to do this during instance lifecycle actions and/or compute host startup, I am not aware right now, how to do it.\n\nThough, I am not sure in prod env, will it be possible for operator to restart compute, is there any priodic maintenace when they can restart compute.","commit_id":"377947a6c998a366c57d8d6fc132d210a63e69cb"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"f9bd5bc40f238d070d8db4cacc5bf93f84e6f90c","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":".. code-block:: shell"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"  $ nova-manage volume_attachment cleanup"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Using check_attached cinder API, verify if volume is not attached at"},{"line_number":83,"context_line":"cinder side, and soft delete at nova side."}],"source_content_type":"text/x-rst","patch_set":8,"id":"407ebf87_0bf931e6","line":80,"in_reply_to":"b397d2e6_b0847da6","updated":"2023-06-30 09:50:46.000000000","message":"Done","commit_id":"377947a6c998a366c57d8d6fc132d210a63e69cb"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"4dbe5aecfb947ce81c1a7ef0fa7c917ba807efc5","unresolved":true,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":".. code-block:: shell"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"  $ nova-manage volume_attachment cleanup"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Using check_attached cinder API, verify if volume is not attached at"},{"line_number":83,"context_line":"cinder side, and soft delete at nova side."}],"source_content_type":"text/x-rst","patch_set":8,"id":"b397d2e6_b0847da6","line":80,"in_reply_to":"e66bf160_5c7c4ab6","updated":"2023-04-10 07:02:26.000000000","message":"instead of asking I said the use case, and missed to ask, if it\u0027s okay to remove it without informing user?\n\u003e\u003e we will be updating logs, so user can see this action and reason in logs.\n\n\nbut as you already said, we should do self-heal instead of user intervention.\nAlso as per the ancient principles, the first remedy is to restart the machine.\n\nthanks Dan, Updated specs, please have a look.","commit_id":"377947a6c998a366c57d8d6fc132d210a63e69cb"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"44fac48ec2129a55daa05a8c24abf62b946fb8a6","unresolved":true,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"While starting or restarting the instance, check if there are any volumes"},{"line_number":78,"context_line":"which are not attached properly (dangling volumes) and if there are any"},{"line_number":79,"context_line":"remove or soft delete them from block device mapping for the target instance."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"Alternatives"},{"line_number":82,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"c398059b_914dce56","line":79,"updated":"2023-05-12 11:06:29.000000000","message":"as we discussed yesterday, how and where will you check that there are no volumes attached ?","commit_id":"228f40f2fa188f94c5e43b2fccda623c42eea74d"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"96b0dc2ea9784f365c04a1988a28056ce91d3fac","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"While starting or restarting the instance, check if there are any volumes"},{"line_number":78,"context_line":"which are not attached properly (dangling volumes) and if there are any"},{"line_number":79,"context_line":"remove or soft delete them from block device mapping for the target instance."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"Alternatives"},{"line_number":82,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"0ab56fce_accbe11f","line":79,"in_reply_to":"c398059b_914dce56","updated":"2023-05-15 11:33:47.000000000","message":"Done","commit_id":"228f40f2fa188f94c5e43b2fccda623c42eea74d"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"44fac48ec2129a55daa05a8c24abf62b946fb8a6","unresolved":true,"context_lines":[{"line_number":100,"context_line":"REST API impact"},{"line_number":101,"context_line":"---------------"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"  N/A"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Security impact"},{"line_number":106,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"5a482169_79aa3857","line":103,"updated":"2023-05-12 11:06:29.000000000","message":"None, ditto below.","commit_id":"228f40f2fa188f94c5e43b2fccda623c42eea74d"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"96b0dc2ea9784f365c04a1988a28056ce91d3fac","unresolved":false,"context_lines":[{"line_number":100,"context_line":"REST API impact"},{"line_number":101,"context_line":"---------------"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"  N/A"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Security impact"},{"line_number":106,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"a378cc3b_28506efc","line":103,"in_reply_to":"5a482169_79aa3857","updated":"2023-05-15 11:33:47.000000000","message":"Done","commit_id":"228f40f2fa188f94c5e43b2fccda623c42eea74d"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"44fac48ec2129a55daa05a8c24abf62b946fb8a6","unresolved":true,"context_lines":[{"line_number":135,"context_line":"Upgrade impact"},{"line_number":136,"context_line":"--------------"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"  N/A"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Implementation"},{"line_number":141,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":10,"id":"7ccdb1d9_59dc8603","line":138,"updated":"2023-05-12 11:06:29.000000000","message":"None rather","commit_id":"228f40f2fa188f94c5e43b2fccda623c42eea74d"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"96b0dc2ea9784f365c04a1988a28056ce91d3fac","unresolved":false,"context_lines":[{"line_number":135,"context_line":"Upgrade impact"},{"line_number":136,"context_line":"--------------"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"  N/A"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Implementation"},{"line_number":141,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":10,"id":"fc2f3c06_a7a22d88","line":138,"in_reply_to":"7ccdb1d9_59dc8603","updated":"2023-05-15 11:33:47.000000000","message":"Done","commit_id":"228f40f2fa188f94c5e43b2fccda623c42eea74d"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"44fac48ec2129a55daa05a8c24abf62b946fb8a6","unresolved":true,"context_lines":[{"line_number":150,"context_line":"---------------"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"Feature liaison:"},{"line_number":153,"context_line":"  auniyal"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"Work Items"},{"line_number":156,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"6c7556b3_5eab657c","line":153,"updated":"2023-05-12 11:06:29.000000000","message":"nope, s/auniyal/None","commit_id":"228f40f2fa188f94c5e43b2fccda623c42eea74d"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"96b0dc2ea9784f365c04a1988a28056ce91d3fac","unresolved":false,"context_lines":[{"line_number":150,"context_line":"---------------"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"Feature liaison:"},{"line_number":153,"context_line":"  auniyal"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"Work Items"},{"line_number":156,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"ec45fef8_2d8b86a7","line":153,"in_reply_to":"6c7556b3_5eab657c","updated":"2023-05-15 11:33:47.000000000","message":"Done","commit_id":"228f40f2fa188f94c5e43b2fccda623c42eea74d"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"44fac48ec2129a55daa05a8c24abf62b946fb8a6","unresolved":true,"context_lines":[{"line_number":156,"context_line":"----------"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"- Create a cleanup functionality and add in instance start process."},{"line_number":159,"context_line":"- Add unit and functional tests for cleanup."},{"line_number":160,"context_line":""},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9338ec18_379155ca","line":159,"updated":"2023-05-12 11:06:29.000000000","message":"humm, as I said, how ?","commit_id":"228f40f2fa188f94c5e43b2fccda623c42eea74d"}]}
