)]}'
{"specs/xena/approved/nova-manage-commands-to-manage-connection_info.rst":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"26a5c61a4435c4b65b56fefc01ac1bfa80481ee1","unresolved":true,"context_lines":[{"line_number":23,"context_line":"Problem description"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"As suggested above the connection_info of a given volume attachment is stashed"},{"line_number":27,"context_line":"within the block device mapping record associated with an attached volume"},{"line_number":28,"context_line":"within Nova. Over time this connection_info can become stale if changes are"},{"line_number":29,"context_line":"made in the environment, the most common example of which being the changing of"}],"source_content_type":"text/x-rst","patch_set":1,"id":"e085883d_92fc6d64","line":26,"range":{"start_line":26,"start_character":71,"end_line":26,"end_character":78},"updated":"2021-07-06 12:12:56.000000000","message":"I know this is a bit tangential. Do we have a good reason to stash the connection info in nova? Why don\u0027t we always ask the cinder, the source of truth, about the connection info?","commit_id":"57573cb0c5bb366a20deaff7ee423258debe159d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"db219754115d1a1a701b10022aa871b34e4cc952","unresolved":false,"context_lines":[{"line_number":23,"context_line":"Problem description"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"As suggested above the connection_info of a given volume attachment is stashed"},{"line_number":27,"context_line":"within the block device mapping record associated with an attached volume"},{"line_number":28,"context_line":"within Nova. Over time this connection_info can become stale if changes are"},{"line_number":29,"context_line":"made in the environment, the most common example of which being the changing of"}],"source_content_type":"text/x-rst","patch_set":1,"id":"22fc8467_9e448260","line":26,"range":{"start_line":26,"start_character":71,"end_line":26,"end_character":78},"in_reply_to":"19758edc_60526985","updated":"2021-07-09 11:12:41.000000000","message":"thanks for the explanation.","commit_id":"57573cb0c5bb366a20deaff7ee423258debe159d"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"9406915cc4ec95eaab14f63c47010542fc2e1418","unresolved":false,"context_lines":[{"line_number":23,"context_line":"Problem description"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"As suggested above the connection_info of a given volume attachment is stashed"},{"line_number":27,"context_line":"within the block device mapping record associated with an attached volume"},{"line_number":28,"context_line":"within Nova. Over time this connection_info can become stale if changes are"},{"line_number":29,"context_line":"made in the environment, the most common example of which being the changing of"}],"source_content_type":"text/x-rst","patch_set":1,"id":"19758edc_60526985","line":26,"range":{"start_line":26,"start_character":71,"end_line":26,"end_character":78},"in_reply_to":"3b47f68f_ad91e230","updated":"2021-07-06 17:25:15.000000000","message":"I think it was stashed historically as the cinderv2 flow only allowed you to map (initialize_connection) and unmap (terminate_connection) there was no way of just GET\u0027ing the connection again. It\u0027s also an obvious optimisation to avoid reaching out to Cinder during instance or host restarts.\n\nGiven the cinderv3 flow and our ability to GET an attachment and the stored connection_info I\u0027d like to move away from stashing connection_info in the future but it\u0027s never got enough traction as it would have to happen atomically across all flows within the codebase at once.\n\nAnyway as you say this is tangential as regardless of what we should be doing with connection_info it\u0027s stashed at present.","commit_id":"57573cb0c5bb366a20deaff7ee423258debe159d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a562a4aaa2ef23028fa07f60aaef51b85dac7c0d","unresolved":true,"context_lines":[{"line_number":23,"context_line":"Problem description"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"As suggested above the connection_info of a given volume attachment is stashed"},{"line_number":27,"context_line":"within the block device mapping record associated with an attached volume"},{"line_number":28,"context_line":"within Nova. Over time this connection_info can become stale if changes are"},{"line_number":29,"context_line":"made in the environment, the most common example of which being the changing of"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3b47f68f_ad91e230","line":26,"range":{"start_line":26,"start_character":71,"end_line":26,"end_character":78},"in_reply_to":"e085883d_92fc6d64","updated":"2021-07-06 16:07:01.000000000","message":"Good question. I personally don\u0027t know enough about this to say either.","commit_id":"57573cb0c5bb366a20deaff7ee423258debe159d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a562a4aaa2ef23028fa07f60aaef51b85dac7c0d","unresolved":true,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"In both cases until now the only way to force a refresh of the connection_info"},{"line_number":38,"context_line":"was through another migration or shelve/unshelve that could also fail during"},{"line_number":39,"context_line":"the initial disconnect of the volume."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"As such providing operators with a reliable means with which to refresh this"},{"line_number":42,"context_line":"connection_info would be extremely useful."}],"source_content_type":"text/x-rst","patch_set":1,"id":"c3c90ac4_573cbaef","line":39,"updated":"2021-07-06 16:07:01.000000000","message":"Because I\u0027m dumb, could you expand on why these steps are necessary versus nova updating the information itself as part of the \u0027start\u0027 action?","commit_id":"57573cb0c5bb366a20deaff7ee423258debe159d"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"f8bda798265ace6f2ffd529fbb92e2bcce4272fc","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"In both cases until now the only way to force a refresh of the connection_info"},{"line_number":38,"context_line":"was through another migration or shelve/unshelve that could also fail during"},{"line_number":39,"context_line":"the initial disconnect of the volume."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"As such providing operators with a reliable means with which to refresh this"},{"line_number":42,"context_line":"connection_info would be extremely useful."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ce1a573b_f72327bf","line":39,"in_reply_to":"0c974a3a_5baf4a84","updated":"2021-07-09 11:40:09.000000000","message":".","commit_id":"57573cb0c5bb366a20deaff7ee423258debe159d"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"9406915cc4ec95eaab14f63c47010542fc2e1418","unresolved":true,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"In both cases until now the only way to force a refresh of the connection_info"},{"line_number":38,"context_line":"was through another migration or shelve/unshelve that could also fail during"},{"line_number":39,"context_line":"the initial disconnect of the volume."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"As such providing operators with a reliable means with which to refresh this"},{"line_number":42,"context_line":"connection_info would be extremely useful."}],"source_content_type":"text/x-rst","patch_set":1,"id":"0c974a3a_5baf4a84","line":39,"in_reply_to":"c3c90ac4_573cbaef","updated":"2021-07-06 17:25:15.000000000","message":"That would be tricky unless we did it directly in the libvirt virt driver. Basically today power_on calls _hard_reboot that disconnect and then reconnects the volume to the compute using the stashed connection_info. The compute layer can\u0027t update the connection_info prior to the libvirt driver calling disconnect so we\u0027d have to do that directly in the driver. It\u0027s possible but wouldn\u0027t be a universal behaviour across the virt drivers at that point.\n\nWe\u0027ve spoken at length about introducing some form of repair API in the past that could do stuff like this in the compute layer with multiple virt driver calls to cleanup and remount volumes etc.","commit_id":"57573cb0c5bb366a20deaff7ee423258debe159d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"26a5c61a4435c4b65b56fefc01ac1bfa80481ee1","unresolved":true,"context_lines":[{"line_number":48,"context_line":"  block device mapping."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"* As an operator I want to refresh the connection_info of block device mappings"},{"line_number":51,"context_line":"  attached to a users STOPPED instance without shelving and unshelving."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Proposed change"},{"line_number":54,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"f047af6d_4a376bfd","line":51,"range":{"start_line":51,"start_character":16,"end_line":51,"end_character":22},"updated":"2021-07-06 12:12:56.000000000","message":"nit:user\u0027s","commit_id":"57573cb0c5bb366a20deaff7ee423258debe159d"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"9406915cc4ec95eaab14f63c47010542fc2e1418","unresolved":false,"context_lines":[{"line_number":48,"context_line":"  block device mapping."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"* As an operator I want to refresh the connection_info of block device mappings"},{"line_number":51,"context_line":"  attached to a users STOPPED instance without shelving and unshelving."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Proposed change"},{"line_number":54,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"047740de_cb18dae8","line":51,"range":{"start_line":51,"start_character":16,"end_line":51,"end_character":22},"in_reply_to":"f047af6d_4a376bfd","updated":"2021-07-06 17:25:15.000000000","message":"Ack","commit_id":"57573cb0c5bb366a20deaff7ee423258debe159d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"26a5c61a4435c4b65b56fefc01ac1bfa80481ee1","unresolved":true,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"* As an operator I want to refresh the connection_info of block device mappings"},{"line_number":51,"context_line":"  attached to a users STOPPED instance without shelving and unshelving."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Proposed change"},{"line_number":54,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"8c7e9ab9_4420fe14","line":52,"updated":"2021-07-06 12:12:56.000000000","message":"Again a bit tangential but I think the operators doesn\u0027t really want a check and update operations, they want simply that: I as an operator want that nova always use an up-to-date connection info whenever it needs to do something with the given block device.\n\nSure if nova cannot provide that then a check and update nova-manage command still useful.","commit_id":"57573cb0c5bb366a20deaff7ee423258debe159d"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"9406915cc4ec95eaab14f63c47010542fc2e1418","unresolved":true,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"* As an operator I want to refresh the connection_info of block device mappings"},{"line_number":51,"context_line":"  attached to a users STOPPED instance without shelving and unshelving."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Proposed change"},{"line_number":54,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"feb2c88b_d400ad9f","line":52,"in_reply_to":"1200138e_e0e9ec0c","updated":"2021-07-06 17:25:15.000000000","message":"I can reiterate above some more but this spec isn\u0027t really for \u003e\u003d Xena it\u0027s for providing tooling to existing deployments where we can\u0027t rework how connection_info is used. What you\u0027re talking about with regards to connection_info isn\u0027t a simple thing and isn\u0027t something that\u0027s going to land in Xena, while stale connection_info and an inability to even see what connection_info Nova has is something operators are facing today.\n\nI can write up a backlog spec detailing what I think would be required for us to move away from stashing connection_info but that shouldn\u0027t hold up this tooling IMHO.","commit_id":"57573cb0c5bb366a20deaff7ee423258debe159d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a562a4aaa2ef23028fa07f60aaef51b85dac7c0d","unresolved":true,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"* As an operator I want to refresh the connection_info of block device mappings"},{"line_number":51,"context_line":"  attached to a users STOPPED instance without shelving and unshelving."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Proposed change"},{"line_number":54,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1200138e_e0e9ec0c","line":52,"in_reply_to":"8c7e9ab9_4420fe14","updated":"2021-07-06 16:07:01.000000000","message":"I assume the point you\u0027re making is that adding the ability to refresh this info isn\u0027t the goal here. The goal here is to ensure the information is never out-of-date and we\u0027re simply choosing this mechanism to achieve that?","commit_id":"57573cb0c5bb366a20deaff7ee423258debe159d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"db219754115d1a1a701b10022aa871b34e4cc952","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"* As an operator I want to refresh the connection_info of block device mappings"},{"line_number":51,"context_line":"  attached to a users STOPPED instance without shelving and unshelving."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Proposed change"},{"line_number":54,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"8207c864_b37a40d7","line":52,"in_reply_to":"feb2c88b_d400ad9f","updated":"2021-07-09 11:12:41.000000000","message":"@Stephen: yes, that is what I meant\n\n@Lee: thanks for the explanation. Sure, no need to hold this spec up.","commit_id":"57573cb0c5bb366a20deaff7ee423258debe159d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a562a4aaa2ef23028fa07f60aaef51b85dac7c0d","unresolved":true,"context_lines":[{"line_number":61,"context_line":"   ``$bdm_uuid`` below refers to the UUID of the block device mapping record"},{"line_number":62,"context_line":"    within Nova and not the volume attachment UUID within Cinder. Block device"},{"line_number":63,"context_line":"    mapping UUIDs for attached volumes can be obtained using the ``openstack"},{"line_number":64,"context_line":"    server volume list $instance_uuid`` openstackclient command with"},{"line_number":65,"context_line":"    \u003e\u003d 5.5.0 or ``nova volume-attachments $instance_uuid`` novaclient command."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Add a command to show the connection_info of a given block device mapping"},{"line_number":68,"context_line":"-------------------------------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"109d0236_01c911df","line":65,"range":{"start_line":64,"start_character":40,"end_line":65,"end_character":12},"updated":"2021-07-06 16:07:01.000000000","message":"nit:\n\n  openstackclient command with openstackclient \u003e\u003d 5.5.0","commit_id":"57573cb0c5bb366a20deaff7ee423258debe159d"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"9406915cc4ec95eaab14f63c47010542fc2e1418","unresolved":false,"context_lines":[{"line_number":61,"context_line":"   ``$bdm_uuid`` below refers to the UUID of the block device mapping record"},{"line_number":62,"context_line":"    within Nova and not the volume attachment UUID within Cinder. Block device"},{"line_number":63,"context_line":"    mapping UUIDs for attached volumes can be obtained using the ``openstack"},{"line_number":64,"context_line":"    server volume list $instance_uuid`` openstackclient command with"},{"line_number":65,"context_line":"    \u003e\u003d 5.5.0 or ``nova volume-attachments $instance_uuid`` novaclient command."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Add a command to show the connection_info of a given block device mapping"},{"line_number":68,"context_line":"-------------------------------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"a506a57e_80ea8db1","line":65,"range":{"start_line":64,"start_character":40,"end_line":65,"end_character":12},"in_reply_to":"109d0236_01c911df","updated":"2021-07-06 17:25:15.000000000","message":"Ack","commit_id":"57573cb0c5bb366a20deaff7ee423258debe159d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a562a4aaa2ef23028fa07f60aaef51b85dac7c0d","unresolved":true,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":".. note::"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"   This should also be accomplished within ``os-volume_attachments`` the"},{"line_number":78,"context_line":"   API under a microversion but for the sake of this spec we will only focus on"},{"line_number":79,"context_line":"   the above backportable ``nova-manage`` command."},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"199d7875_833ee115","line":77,"range":{"start_line":77,"start_character":43,"end_line":77,"end_character":72},"updated":"2021-07-06 16:07:01.000000000","message":"nit: the ``os-volume_attachments`` API ?","commit_id":"57573cb0c5bb366a20deaff7ee423258debe159d"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"9406915cc4ec95eaab14f63c47010542fc2e1418","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":".. note::"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"   This should also be accomplished within ``os-volume_attachments`` the"},{"line_number":78,"context_line":"   API under a microversion but for the sake of this spec we will only focus on"},{"line_number":79,"context_line":"   the above backportable ``nova-manage`` command."},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"b0661007_490779e5","line":77,"range":{"start_line":77,"start_character":43,"end_line":77,"end_character":72},"in_reply_to":"199d7875_833ee115","updated":"2021-07-06 17:25:15.000000000","message":"Ack","commit_id":"57573cb0c5bb366a20deaff7ee423258debe159d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a562a4aaa2ef23028fa07f60aaef51b85dac7c0d","unresolved":true,"context_lines":[{"line_number":87,"context_line":"block device mapping record within Nova."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Prerequisites"},{"line_number":90,"context_line":"^^^^^^^^^^^^^"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"- The block device mapping refers to an attached volume or volume snapshot."},{"line_number":93,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ce561d06_d7e9aab5","line":90,"range":{"start_line":90,"start_character":0,"end_line":90,"end_character":13},"updated":"2021-07-06 16:07:01.000000000","message":"nit:\n\n  ~~~~~~~~~~~~~~~","commit_id":"57573cb0c5bb366a20deaff7ee423258debe159d"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"9406915cc4ec95eaab14f63c47010542fc2e1418","unresolved":false,"context_lines":[{"line_number":87,"context_line":"block device mapping record within Nova."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Prerequisites"},{"line_number":90,"context_line":"^^^^^^^^^^^^^"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"- The block device mapping refers to an attached volume or volume snapshot."},{"line_number":93,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"298c2ea6_2a029bdc","line":90,"range":{"start_line":90,"start_character":0,"end_line":90,"end_character":13},"in_reply_to":"ce561d06_d7e9aab5","updated":"2021-07-06 17:25:15.000000000","message":"Ack","commit_id":"57573cb0c5bb366a20deaff7ee423258debe159d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"26a5c61a4435c4b65b56fefc01ac1bfa80481ee1","unresolved":true,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"- The libvirt virt driver is used by the compute hosting the instance."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"- The command must be called from the compute currently hosting the instance."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"When these prerequisites are met the command will start by disconnecting the"},{"line_number":102,"context_line":"original volume connection from the compute host using the existing logic"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bb9d9ef6_d23fd065","line":99,"updated":"2021-07-06 12:12:56.000000000","message":"I think that is a special thing for nova-manage. So far nova-manage was usable from the controller nodes. I\u0027m not saying it is bad, I just say that we need to be careful as assumptions in the current nova-manage code might be broken when we run it on a compute. E.g. does nova-manage and especially this command needs DB access? If yes then nova-manage need to access the DB via RPC and a running conductor service as the DB is not accessible from compute nodes.","commit_id":"57573cb0c5bb366a20deaff7ee423258debe159d"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"9406915cc4ec95eaab14f63c47010542fc2e1418","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"- The libvirt virt driver is used by the compute hosting the instance."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"- The command must be called from the compute currently hosting the instance."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"When these prerequisites are met the command will start by disconnecting the"},{"line_number":102,"context_line":"original volume connection from the compute host using the existing logic"}],"source_content_type":"text/x-rst","patch_set":1,"id":"a1230fcd_c9dadfda","line":99,"in_reply_to":"02076b9f_4a5a8119","updated":"2021-07-06 17:25:15.000000000","message":"Ah so I thought we couldn\u0027t orchestrate this from the controllers via RPC to the computes but reading over remove_volume_connection this might actually work. I\u0027ll work this into this section now.","commit_id":"57573cb0c5bb366a20deaff7ee423258debe159d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"db219754115d1a1a701b10022aa871b34e4cc952","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"- The libvirt virt driver is used by the compute hosting the instance."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"- The command must be called from the compute currently hosting the instance."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"When these prerequisites are met the command will start by disconnecting the"},{"line_number":102,"context_line":"original volume connection from the compute host using the existing logic"}],"source_content_type":"text/x-rst","patch_set":1,"id":"121919d1_6989a7ba","line":99,"in_reply_to":"a1230fcd_c9dadfda","updated":"2021-07-09 11:12:41.000000000","message":"thanks","commit_id":"57573cb0c5bb366a20deaff7ee423258debe159d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a562a4aaa2ef23028fa07f60aaef51b85dac7c0d","unresolved":true,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"- The libvirt virt driver is used by the compute hosting the instance."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"- The command must be called from the compute currently hosting the instance."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"When these prerequisites are met the command will start by disconnecting the"},{"line_number":102,"context_line":"original volume connection from the compute host using the existing logic"}],"source_content_type":"text/x-rst","patch_set":1,"id":"02076b9f_4a5a8119","line":99,"in_reply_to":"bb9d9ef6_d23fd065","updated":"2021-07-06 16:07:01.000000000","message":"Yeah, good point. I don\u0027t think we\u0027ve ever supported this configuration before.","commit_id":"57573cb0c5bb366a20deaff7ee423258debe159d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"26a5c61a4435c4b65b56fefc01ac1bfa80481ee1","unresolved":true,"context_lines":[{"line_number":97,"context_line":"- The libvirt virt driver is used by the compute hosting the instance."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"- The command must be called from the compute currently hosting the instance."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"When these prerequisites are met the command will start by disconnecting the"},{"line_number":102,"context_line":"original volume connection from the compute host using the existing logic"},{"line_number":103,"context_line":"within the libvirt virt driver volume drivers. Any errors raised during this"}],"source_content_type":"text/x-rst","patch_set":1,"id":"85ceb8b5_5b496a0c","line":100,"updated":"2021-07-06 12:12:56.000000000","message":"Do we have additional prerequisit that \ni) the compute service is not running, to avoid racing with the service also managing this instance and volume connection\nor at least that\nii) the server being repaired with nova-manage are somehow freezed from the perspective of the owner of the instance, to avoid races?\n\ni.e. what will happen if while the admin running this nova-manage command the owner of the server issues e.g. a resize?","commit_id":"57573cb0c5bb366a20deaff7ee423258debe159d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"db219754115d1a1a701b10022aa871b34e4cc952","unresolved":false,"context_lines":[{"line_number":97,"context_line":"- The libvirt virt driver is used by the compute hosting the instance."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"- The command must be called from the compute currently hosting the instance."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"When these prerequisites are met the command will start by disconnecting the"},{"line_number":102,"context_line":"original volume connection from the compute host using the existing logic"},{"line_number":103,"context_line":"within the libvirt virt driver volume drivers. Any errors raised during this"}],"source_content_type":"text/x-rst","patch_set":1,"id":"e14edcca_91d58408","line":100,"in_reply_to":"785ed4d3_8401df2a","updated":"2021-07-09 11:12:41.000000000","message":"yeah, locking the instance make sense.","commit_id":"57573cb0c5bb366a20deaff7ee423258debe159d"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"9406915cc4ec95eaab14f63c47010542fc2e1418","unresolved":false,"context_lines":[{"line_number":97,"context_line":"- The libvirt virt driver is used by the compute hosting the instance."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"- The command must be called from the compute currently hosting the instance."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"When these prerequisites are met the command will start by disconnecting the"},{"line_number":102,"context_line":"original volume connection from the compute host using the existing logic"},{"line_number":103,"context_line":"within the libvirt virt driver volume drivers. Any errors raised during this"}],"source_content_type":"text/x-rst","patch_set":1,"id":"785ed4d3_8401df2a","line":100,"in_reply_to":"85ceb8b5_5b496a0c","updated":"2021-07-06 17:25:15.000000000","message":"Given the above use of RPC calls to the compute it\u0027s going to need to be running so I guess we will need to lock the instance first, then refresh and then unlock.","commit_id":"57573cb0c5bb366a20deaff7ee423258debe159d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"26a5c61a4435c4b65b56fefc01ac1bfa80481ee1","unresolved":true,"context_lines":[{"line_number":106,"context_line":"The command will then unmap the volume from the compute host on the Cinder side"},{"line_number":107,"context_line":"by either calling the terminate_connection Cinder API for volumes attached"},{"line_number":108,"context_line":"using the cinderv2 attachment flow or by deleting the Cinder volume attachment"},{"line_number":109,"context_line":"for volumes using the cinderv3 attachment flow."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":".. note::"},{"line_number":112,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"8e72b162_bf10eea0","line":109,"updated":"2021-07-06 12:12:56.000000000","message":"Does this flow keeps the volume state in-use?","commit_id":"57573cb0c5bb366a20deaff7ee423258debe159d"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"9406915cc4ec95eaab14f63c47010542fc2e1418","unresolved":false,"context_lines":[{"line_number":106,"context_line":"The command will then unmap the volume from the compute host on the Cinder side"},{"line_number":107,"context_line":"by either calling the terminate_connection Cinder API for volumes attached"},{"line_number":108,"context_line":"using the cinderv2 attachment flow or by deleting the Cinder volume attachment"},{"line_number":109,"context_line":"for volumes using the cinderv3 attachment flow."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":".. note::"},{"line_number":112,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"f0b5e165_bda5a6e4","line":109,"in_reply_to":"8e72b162_bf10eea0","updated":"2021-07-06 17:25:15.000000000","message":"If it\u0027s not a multi-attached volume then it\u0027s going to move from in-use to available and back to in-use again. We can\u0027t keep it in-use as we can\u0027t have duplicate connectors associated with the same attachment as I\u0027ve tried to explain in the note below.","commit_id":"57573cb0c5bb366a20deaff7ee423258debe159d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"db219754115d1a1a701b10022aa871b34e4cc952","unresolved":false,"context_lines":[{"line_number":106,"context_line":"The command will then unmap the volume from the compute host on the Cinder side"},{"line_number":107,"context_line":"by either calling the terminate_connection Cinder API for volumes attached"},{"line_number":108,"context_line":"using the cinderv2 attachment flow or by deleting the Cinder volume attachment"},{"line_number":109,"context_line":"for volumes using the cinderv3 attachment flow."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":".. note::"},{"line_number":112,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"617837b3_d20f89a8","line":109,"in_reply_to":"f0b5e165_bda5a6e4","updated":"2021-07-09 11:12:41.000000000","message":"OK I see now. I assume the state transition time window will be sort so no real race expected to use the volume for something else while the update is going.","commit_id":"57573cb0c5bb366a20deaff7ee423258debe159d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a562a4aaa2ef23028fa07f60aaef51b85dac7c0d","unresolved":true,"context_lines":[{"line_number":242,"context_line":"History"},{"line_number":243,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"Optional section intended to be used each time the spec is updated to describe"},{"line_number":246,"context_line":"new design, API or any database schema updated. Useful to let reader understand"},{"line_number":247,"context_line":"what\u0027s happened along the time."},{"line_number":248,"context_line":""},{"line_number":249,"context_line":".. list-table:: Revisions"},{"line_number":250,"context_line":"   :header-rows: 1"}],"source_content_type":"text/x-rst","patch_set":1,"id":"57903ee5_09ac8c56","line":247,"range":{"start_line":245,"start_character":0,"end_line":247,"end_character":31},"updated":"2021-07-06 16:07:01.000000000","message":"nit: drop","commit_id":"57573cb0c5bb366a20deaff7ee423258debe159d"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"9406915cc4ec95eaab14f63c47010542fc2e1418","unresolved":false,"context_lines":[{"line_number":242,"context_line":"History"},{"line_number":243,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"Optional section intended to be used each time the spec is updated to describe"},{"line_number":246,"context_line":"new design, API or any database schema updated. Useful to let reader understand"},{"line_number":247,"context_line":"what\u0027s happened along the time."},{"line_number":248,"context_line":""},{"line_number":249,"context_line":".. list-table:: Revisions"},{"line_number":250,"context_line":"   :header-rows: 1"}],"source_content_type":"text/x-rst","patch_set":1,"id":"6ecce5bd_fbeedce0","line":247,"range":{"start_line":245,"start_character":0,"end_line":247,"end_character":31},"in_reply_to":"57903ee5_09ac8c56","updated":"2021-07-06 17:25:15.000000000","message":"Ack","commit_id":"57573cb0c5bb366a20deaff7ee423258debe159d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"db219754115d1a1a701b10022aa871b34e4cc952","unresolved":true,"context_lines":[{"line_number":240,"context_line":"History"},{"line_number":241,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"Optional section intended to be used each time the spec is updated to describe"},{"line_number":244,"context_line":"new design, API or any database schema updated. Useful to let reader understand"},{"line_number":245,"context_line":"what\u0027s happened along the time."},{"line_number":246,"context_line":""},{"line_number":247,"context_line":".. list-table:: Revisions"},{"line_number":248,"context_line":"   :header-rows: 1"}],"source_content_type":"text/x-rst","patch_set":2,"id":"31ef3d72_0656f205","line":245,"range":{"start_line":243,"start_character":0,"end_line":245,"end_character":31},"updated":"2021-07-09 11:12:41.000000000","message":"nit: you can delete this.","commit_id":"cdd3d1e98bbb8ac370b1f4bc1abce7cf0d98c228"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"f8bda798265ace6f2ffd529fbb92e2bcce4272fc","unresolved":false,"context_lines":[{"line_number":240,"context_line":"History"},{"line_number":241,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"Optional section intended to be used each time the spec is updated to describe"},{"line_number":244,"context_line":"new design, API or any database schema updated. Useful to let reader understand"},{"line_number":245,"context_line":"what\u0027s happened along the time."},{"line_number":246,"context_line":""},{"line_number":247,"context_line":".. list-table:: Revisions"},{"line_number":248,"context_line":"   :header-rows: 1"}],"source_content_type":"text/x-rst","patch_set":2,"id":"b38879f7_154a233f","line":245,"range":{"start_line":243,"start_character":0,"end_line":245,"end_character":31},"in_reply_to":"31ef3d72_0656f205","updated":"2021-07-09 11:40:09.000000000","message":"Done","commit_id":"cdd3d1e98bbb8ac370b1f4bc1abce7cf0d98c228"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b01481354d9381058c0fd262743a95e9e6a0e5ab","unresolved":true,"context_lines":[{"line_number":99,"context_line":"When these prerequisites are met the command will start by locking the instance"},{"line_number":100,"context_line":"to ensure no user requests will be accepted and potentially race the refresh"},{"line_number":101,"context_line":"of the connection_info."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Then the command will make an RPC call to ``remove_volume_connection`` on the"},{"line_number":104,"context_line":"compute hosting the instance disconnecting the original volume connection from"},{"line_number":105,"context_line":"the compute host using the existing logic within the libvirt virt driver volume"}],"source_content_type":"text/x-rst","patch_set":3,"id":"020655a2_af5abcd5","line":102,"updated":"2021-07-09 13:17:20.000000000","message":"+1 this will help protect from nova initiated actions.\ncould there be a race or issue with say deleting a volume in cinder in parallel.\n\ni assume that should be blocked by cinder since the volume state will be in use but just said i would ask.","commit_id":"19f411a07dc99f71f788e6c518482ea1f8e8cebd"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"bba686e7d5d57dc15234c65ab182524ec0060498","unresolved":false,"context_lines":[{"line_number":99,"context_line":"When these prerequisites are met the command will start by locking the instance"},{"line_number":100,"context_line":"to ensure no user requests will be accepted and potentially race the refresh"},{"line_number":101,"context_line":"of the connection_info."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Then the command will make an RPC call to ``remove_volume_connection`` on the"},{"line_number":104,"context_line":"compute hosting the instance disconnecting the original volume connection from"},{"line_number":105,"context_line":"the compute host using the existing logic within the libvirt virt driver volume"}],"source_content_type":"text/x-rst","patch_set":3,"id":"719155ff_1c96aa94","line":102,"in_reply_to":"020655a2_af5abcd5","updated":"2021-07-09 13:29:07.000000000","message":"Yeah c-api will block attempts to delete it while it\u0027s in-use or reserved.","commit_id":"19f411a07dc99f71f788e6c518482ea1f8e8cebd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b01481354d9381058c0fd262743a95e9e6a0e5ab","unresolved":true,"context_lines":[{"line_number":100,"context_line":"to ensure no user requests will be accepted and potentially race the refresh"},{"line_number":101,"context_line":"of the connection_info."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Then the command will make an RPC call to ``remove_volume_connection`` on the"},{"line_number":104,"context_line":"compute hosting the instance disconnecting the original volume connection from"},{"line_number":105,"context_line":"the compute host using the existing logic within the libvirt virt driver volume"},{"line_number":106,"context_line":"drivers."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"The call to ``remove_volume_connection`` will also unmap the volume from the"},{"line_number":109,"context_line":"compute host via Cinder by either calling the ``terminate_connection`` API for"},{"line_number":110,"context_line":"volumes attached using the cinderv2 attachment flow or by deleting the volume"},{"line_number":111,"context_line":"attachment for volumes using the cinderv3 attachment flow."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":".. note::"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3509f557_63c5ad42","line":111,"range":{"start_line":103,"start_character":0,"end_line":111,"end_character":58},"updated":"2021-07-09 13:17:20.000000000","message":"this is why the instnace must be stopped i take it.\nhum i had orginally assume refresh woudl only update the db info and you would have to hard reboot afterward to have\nthe chagne take affect.","commit_id":"19f411a07dc99f71f788e6c518482ea1f8e8cebd"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"bba686e7d5d57dc15234c65ab182524ec0060498","unresolved":false,"context_lines":[{"line_number":100,"context_line":"to ensure no user requests will be accepted and potentially race the refresh"},{"line_number":101,"context_line":"of the connection_info."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Then the command will make an RPC call to ``remove_volume_connection`` on the"},{"line_number":104,"context_line":"compute hosting the instance disconnecting the original volume connection from"},{"line_number":105,"context_line":"the compute host using the existing logic within the libvirt virt driver volume"},{"line_number":106,"context_line":"drivers."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"The call to ``remove_volume_connection`` will also unmap the volume from the"},{"line_number":109,"context_line":"compute host via Cinder by either calling the ``terminate_connection`` API for"},{"line_number":110,"context_line":"volumes attached using the cinderv2 attachment flow or by deleting the volume"},{"line_number":111,"context_line":"attachment for volumes using the cinderv3 attachment flow."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":".. note::"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"c21f1de8_f063f1c5","line":111,"range":{"start_line":103,"start_character":0,"end_line":111,"end_character":58},"in_reply_to":"3509f557_63c5ad42","updated":"2021-07-09 13:29:07.000000000","message":"We can\u0027t update the DB with new connection_info and later reboot as the original is still required to disconnect the underlying volumes during the reboot.","commit_id":"19f411a07dc99f71f788e6c518482ea1f8e8cebd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"800348d13afd6e5c4fff0d77a9f916a7b29ea987","unresolved":false,"context_lines":[{"line_number":100,"context_line":"to ensure no user requests will be accepted and potentially race the refresh"},{"line_number":101,"context_line":"of the connection_info."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Then the command will make an RPC call to ``remove_volume_connection`` on the"},{"line_number":104,"context_line":"compute hosting the instance disconnecting the original volume connection from"},{"line_number":105,"context_line":"the compute host using the existing logic within the libvirt virt driver volume"},{"line_number":106,"context_line":"drivers."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"The call to ``remove_volume_connection`` will also unmap the volume from the"},{"line_number":109,"context_line":"compute host via Cinder by either calling the ``terminate_connection`` API for"},{"line_number":110,"context_line":"volumes attached using the cinderv2 attachment flow or by deleting the volume"},{"line_number":111,"context_line":"attachment for volumes using the cinderv3 attachment flow."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":".. note::"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"f7611004_9e90027b","line":111,"range":{"start_line":103,"start_character":0,"end_line":111,"end_character":58},"in_reply_to":"c21f1de8_f063f1c5","updated":"2021-07-12 10:13:16.000000000","message":"ah yes that very true thanks.","commit_id":"19f411a07dc99f71f788e6c518482ea1f8e8cebd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b01481354d9381058c0fd262743a95e9e6a0e5ab","unresolved":true,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":".. note::"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"   We cannot precreate a fresh volume attachment for the cinderv3"},{"line_number":116,"context_line":"   attachment flow as the provided connector would conflict with the existing"},{"line_number":117,"context_line":"   attachment and thus result in a failure. This differs to the live migration"},{"line_number":118,"context_line":"   case where the source and destination connectors differ allowing us to have"},{"line_number":119,"context_line":"   two active volume attachments at once within Cinder."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"Once the RPC call returns the command we create a fresh cinderv3 volume"},{"line_number":122,"context_line":"attachment using the compute connector with the resulting attachment_id and"}],"source_content_type":"text/x-rst","patch_set":3,"id":"42dd509f_9606950d","line":119,"range":{"start_line":115,"start_character":0,"end_line":119,"end_character":55},"updated":"2021-07-09 13:17:20.000000000","message":"cant we jsut get teh new conenction info with a get to cinderv3 os-attachments api /v3/{project_id}/attachments/{attachment_id}\nhttps://docs.openstack.org/api-ref/block-storage/v3/?expanded\u003dshow-attachment-details-detail#show-attachment-details\n\nthis will give us the current connection info acording to cinder.\n\nthis is what i orginally tought we would get since cinder should always provide the correct info in that call or its a pretty serious cinder bug.","commit_id":"19f411a07dc99f71f788e6c518482ea1f8e8cebd"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"bba686e7d5d57dc15234c65ab182524ec0060498","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":".. note::"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"   We cannot precreate a fresh volume attachment for the cinderv3"},{"line_number":116,"context_line":"   attachment flow as the provided connector would conflict with the existing"},{"line_number":117,"context_line":"   attachment and thus result in a failure. This differs to the live migration"},{"line_number":118,"context_line":"   case where the source and destination connectors differ allowing us to have"},{"line_number":119,"context_line":"   two active volume attachments at once within Cinder."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"Once the RPC call returns the command we create a fresh cinderv3 volume"},{"line_number":122,"context_line":"attachment using the compute connector with the resulting attachment_id and"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fe66d5c8_8d579f6c","line":119,"range":{"start_line":115,"start_character":0,"end_line":119,"end_character":55},"in_reply_to":"42dd509f_9606950d","updated":"2021-07-09 13:29:07.000000000","message":"So I need to tighten up the language here a little. We should precreate an empty volume attachment without a connector before calling remove_volume_connection to ensure the volume remains `reserved`. We can\u0027t precate a volume attachment with a connector because of the existing attachment using the same connector.\n\nWe can\u0027t just GET the attachment to update the connection_info as that doesn\u0027t actually force a remapping of the volume to the compute by c-vol and the storage backend ensuring a full refresh. For that we need to tear down the existing attachment and then create.","commit_id":"19f411a07dc99f71f788e6c518482ea1f8e8cebd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b01481354d9381058c0fd262743a95e9e6a0e5ab","unresolved":true,"context_lines":[{"line_number":125,"context_line":"This has the added benefit of migrating some volume attachments from the"},{"line_number":126,"context_line":"cinderv2 to cinderv3 flow. While much more work is required outside of this"},{"line_number":127,"context_line":"spec for Nova to migrate every volume attachment to the newer flow this is at"},{"line_number":128,"context_line":"least a start on that journey."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Finally, the instance will be unlocked allowing the user to now power on the"},{"line_number":131,"context_line":"instance that will in turn connect the volume to the compute host using the"}],"source_content_type":"text/x-rst","patch_set":3,"id":"14bf8ca4_3ae56f44","line":128,"updated":"2021-07-09 13:17:20.000000000","message":"ya its a nice side benifit i guess.\n\ncinder are finally droping v2 support this cycle https://review.opendev.org/c/openstack/cinder/+/792299\ndo we need to activlly complete that journy as a result.\n---\nasked on irc and apprenetly no it wont affefct this.","commit_id":"19f411a07dc99f71f788e6c518482ea1f8e8cebd"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"bba686e7d5d57dc15234c65ab182524ec0060498","unresolved":false,"context_lines":[{"line_number":125,"context_line":"This has the added benefit of migrating some volume attachments from the"},{"line_number":126,"context_line":"cinderv2 to cinderv3 flow. While much more work is required outside of this"},{"line_number":127,"context_line":"spec for Nova to migrate every volume attachment to the newer flow this is at"},{"line_number":128,"context_line":"least a start on that journey."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Finally, the instance will be unlocked allowing the user to now power on the"},{"line_number":131,"context_line":"instance that will in turn connect the volume to the compute host using the"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9f9af9d2_6bac5b1e","line":128,"in_reply_to":"14bf8ca4_3ae56f44","updated":"2021-07-09 13:29:07.000000000","message":"We don\u0027t thankfully no, eventually we will want to migrate people over but there\u0027s a load of work required for that both on our side on cinder.","commit_id":"19f411a07dc99f71f788e6c518482ea1f8e8cebd"}]}
