)]}'
{"specs/juno/multi-attach-volume.rst":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f810704f3e670f8361daab7b9f537a16a56d82f2","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Support Cinder Volume Multi-attach"},{"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"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad blueprint:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://blueprints.launchpad.net/nova/+spec/multi-attach-volume"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ad9bd40_67f914e9","line":11,"updated":"2014-05-01 19:23:49.000000000","message":"This should be snipped out.","commit_id":"3073add4220adac54a58d2b8ad2abdc61fa3b2db"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"0605986cfefd39ed328693e1f4ceaeaa4420ca8a","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"At attach time, nova has to remove the assumption that it can only attach"},{"line_number":39,"context_line":"a volume if it\u0027s not \u0027in-use\u0027.  A Cinder volume can now be attached if it\u0027s"},{"line_number":40,"context_line":"\u0027available\u0027 and/or \u0027in-use\u0027."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"At detach time, nova needs to pass a new parameter to the cinderclient"},{"line_number":43,"context_line":"to tell cinder which specific attachment it\u0027s requesting cinder to detach."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7adec928_895e0144","line":40,"updated":"2014-05-23 13:00:19.000000000","message":"It still feels that there should be some level of checking in here, since attaching a volume multiple times by accident would lead to data corruption.   So I think there needs to be an explicit Volume property set by the user on a volume to say that its OK to be attached multiple times, that can then be checked in the Nova API.","commit_id":"3073add4220adac54a58d2b8ad2abdc61fa3b2db"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"8ab57cd55ea43fec5163188eb1365674ff92dce0","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"At attach time, nova has to remove the assumption that it can only attach"},{"line_number":39,"context_line":"a volume if it\u0027s not \u0027in-use\u0027.  A Cinder volume can now be attached if it\u0027s"},{"line_number":40,"context_line":"\u0027available\u0027 and/or \u0027in-use\u0027."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"At detach time, nova needs to pass a new parameter to the cinderclient"},{"line_number":43,"context_line":"to tell cinder which specific attachment it\u0027s requesting cinder to detach."}],"source_content_type":"text/x-rst","patch_set":3,"id":"1ae5cdf2_659a0370","line":40,"in_reply_to":"7adec928_895e0144","updated":"2014-06-16 14:37:05.000000000","message":"Agreed, we should default to only allowing a volume to be attached read-write to 1 single VM. Attaching to multiple VMs should require explicit opt-in at the API level.  At the libvirt level we have 3 possible sharing modes for virtual disks\n\n - read/write exclusive - this is the default\n - read-only shared - by adding \u003creadonly/\u003e flag\n - read/write shared - by adding \u003cshareable/\u003e flag\n\nIf a libvirt lock manager is turned on the host, libvirt can to told to enforce this across hosts\n\nI feel that Nova should really also have these same three sharing modes as explicit options when attaching volumes, and default to current behaviour.","commit_id":"3073add4220adac54a58d2b8ad2abdc61fa3b2db"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"a6549c285d9a19a077bb11fc70722284d1ae9f43","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"At attach time, nova has to remove the assumption that it can only attach"},{"line_number":39,"context_line":"a volume if it\u0027s not \u0027in-use\u0027.  A Cinder volume can now be attached if it\u0027s"},{"line_number":40,"context_line":"\u0027available\u0027 and/or \u0027in-use\u0027."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"At detach time, nova needs to pass a new parameter to the cinderclient"},{"line_number":43,"context_line":"to tell cinder which specific attachment it\u0027s requesting cinder to detach."}],"source_content_type":"text/x-rst","patch_set":3,"id":"baada198_9f121408","line":40,"in_reply_to":"7adec928_895e0144","updated":"2014-07-16 18:32:12.000000000","message":"Updated to talk about the shareable flag on the cinder volume.","commit_id":"3073add4220adac54a58d2b8ad2abdc61fa3b2db"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f810704f3e670f8361daab7b9f537a16a56d82f2","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"The only alternative is for a user to clone a volume and attach the clone"},{"line_number":52,"context_line":"to the second instance.   The downside to this is any changes to the original"},{"line_number":53,"context_line":"volume don\u0027t show up in the mounted clone."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Data model impact"},{"line_number":56,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ad9bd40_e769a48c","line":53,"updated":"2014-05-01 19:23:49.000000000","message":"Not that I suggest it being the right way, but you could argue that cinder could expose an \"alias\" function that would provide new \"attachment points\" for a single backing volume so that consumers of cinder (nova included) don\u0027t have to worry about multi-attach semantics.","commit_id":"3073add4220adac54a58d2b8ad2abdc61fa3b2db"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f810704f3e670f8361daab7b9f537a16a56d82f2","unresolved":false,"context_lines":[{"line_number":60,"context_line":"REST API impact"},{"line_number":61,"context_line":"---------------"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"None"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Security impact"},{"line_number":66,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ad9bd40_070688ce","line":63,"updated":"2014-05-01 19:23:49.000000000","message":"This will definitely affect our REST API, right? A call that fails with EBUSY today will not fail after this is added. Presumably this will come with a dummy extension that (a) allows the admin to disable this ability and retain support for the old paradigm and (b) allow the user to detect if multi-attach is supported.\n\nAlso, does this change what nova users provide during a detach operation? Or will nova take the existing inputs and determine the appropriate attachment id? If the latter, do we cache those attachments somewhere or do we make extra calls over to cinder each time to get the list before we calculate?\n\nFinally, I assume that this will actually change how our /volumes APIs look to the users as the changes cinder adopts will effectively look like nova/volumes changes, right?","commit_id":"3073add4220adac54a58d2b8ad2abdc61fa3b2db"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"a6549c285d9a19a077bb11fc70722284d1ae9f43","unresolved":false,"context_lines":[{"line_number":60,"context_line":"REST API impact"},{"line_number":61,"context_line":"---------------"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"None"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Security impact"},{"line_number":66,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"baada198_bb47bdbb","line":63,"in_reply_to":"7adec928_590ddd8f","updated":"2014-07-16 18:32:12.000000000","message":"This change won\u0027t change how volumes look to users, assuming you mean users of the nova api to attach and detach volumes.\n\nThere aren\u0027t any changes needed to the nova volume-attach or nova volume-detach calls.","commit_id":"3073add4220adac54a58d2b8ad2abdc61fa3b2db"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"5dab0a1e8e8f82b6937bf0070805407729fd0311","unresolved":false,"context_lines":[{"line_number":60,"context_line":"REST API impact"},{"line_number":61,"context_line":"---------------"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"None"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Security impact"},{"line_number":66,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7adec928_590ddd8f","line":63,"in_reply_to":"9ad9bd40_070688ce","updated":"2014-05-09 02:46:02.000000000","message":"I\u0027m unfamiliar with the EBUSY issue.\n\nThe nova api for attach will get a new attachmentId that cinder will create at volume_api.attach() time.  The user won\u0027t have to use this or worry about it.\n\nWhen nova calls volume_api.detach() it has to now pass in the correct attachmentId to tell cinder which instance to detach from.   Since cinder can attach to an instance or a host, we have to use an attachmentId to uniquely identify the specific attachment for that volume we want to remove.\n\nThe nova API for detaching a volume won\u0027t need to change.  the internals of nova fetches the volume from cinder prior to calling detach.  The volume includes all of it\u0027s attachments, which includes it\u0027s attachmentId and instance uuid.  nova just has to find the right attachmentID for the instance uuid.  I have this code already done in a patchset I\u0027m about to upload to my code review.","commit_id":"3073add4220adac54a58d2b8ad2abdc61fa3b2db"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f810704f3e670f8361daab7b9f537a16a56d82f2","unresolved":false,"context_lines":[{"line_number":84,"context_line":"None"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Other deployer impact"},{"line_number":87,"context_line":"---------------------"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"None"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ad9bd40_c703c0b6","line":87,"updated":"2014-05-01 19:23:49.000000000","message":"What happens if a deployer upgrades nova without a corresponding cinder? Does the proposed nova code have some way of handling this gracefully, or will the error we get from cinder allow us to keep the same behavior until cinder is upgraded?","commit_id":"3073add4220adac54a58d2b8ad2abdc61fa3b2db"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"3d8aaf72a37002260a38655475926998a8cff402","unresolved":false,"context_lines":[{"line_number":94,"context_line":"Any time new code is added to Nova that requires a call to detach"},{"line_number":95,"context_line":"a volume, the developer must get the volume attachment uuid for"},{"line_number":96,"context_line":"the instance.  This information is embedded in the cinder volume"},{"line_number":97,"context_line":"volume_attachments list."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ad9bd40_dc8d537d","line":97,"updated":"2014-05-01 18:32:13.000000000","message":"What about upgrading? How do existing volume attachments get handled? Will the code continue to allow passing in the volume UUID or device name in the detach_volume call, and provide the legacy behavior when an attachment_uuid value is not present in the call request body?","commit_id":"3073add4220adac54a58d2b8ad2abdc61fa3b2db"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"0605986cfefd39ed328693e1f4ceaeaa4420ca8a","unresolved":false,"context_lines":[{"line_number":94,"context_line":"Any time new code is added to Nova that requires a call to detach"},{"line_number":95,"context_line":"a volume, the developer must get the volume attachment uuid for"},{"line_number":96,"context_line":"the instance.  This information is embedded in the cinder volume"},{"line_number":97,"context_line":"volume_attachments list."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7adec928_d44b4057","line":97,"in_reply_to":"7adec928_24c65617","updated":"2014-05-23 13:00:19.000000000","message":"+1 to Jay, defiantly much better handle all of the possible Nova/Cinder version combinations in the code if possible.  \n\nIf not then there needs to be very explict instructions here on upgrade sequence (but keep in mid that an upgrade can include may changes besides yours, and some of those may have thier own sequence constraints as well.","commit_id":"3073add4220adac54a58d2b8ad2abdc61fa3b2db"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d921e48ab7650a591454a62515940f2fa70ae437","unresolved":false,"context_lines":[{"line_number":94,"context_line":"Any time new code is added to Nova that requires a call to detach"},{"line_number":95,"context_line":"a volume, the developer must get the volume attachment uuid for"},{"line_number":96,"context_line":"the instance.  This information is embedded in the cinder volume"},{"line_number":97,"context_line":"volume_attachments list."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7adec928_24c65617","line":97,"in_reply_to":"7adec928_b9d8a1f0","updated":"2014-05-20 17:01:09.000000000","message":"Sorry for delay in getting back to you, Walter!\n\nI would definitely prefer code that can handle either version of Cinder API without failing -- i.e. with as many fallback possibilities as is feasible to write in the code.","commit_id":"3073add4220adac54a58d2b8ad2abdc61fa3b2db"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"a6549c285d9a19a077bb11fc70722284d1ae9f43","unresolved":false,"context_lines":[{"line_number":94,"context_line":"Any time new code is added to Nova that requires a call to detach"},{"line_number":95,"context_line":"a volume, the developer must get the volume attachment uuid for"},{"line_number":96,"context_line":"the instance.  This information is embedded in the cinder volume"},{"line_number":97,"context_line":"volume_attachments list."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":3,"id":"baada198_7b6b651f","line":97,"in_reply_to":"7adec928_d44b4057","updated":"2014-07-16 18:32:12.000000000","message":"I will make the detach instance_uuid optional.   Cinder will fail if it\u0027s not passed in and there are multiple attachments made as Cinder won\u0027t know which attachment is being made.","commit_id":"3073add4220adac54a58d2b8ad2abdc61fa3b2db"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"5dab0a1e8e8f82b6937bf0070805407729fd0311","unresolved":false,"context_lines":[{"line_number":94,"context_line":"Any time new code is added to Nova that requires a call to detach"},{"line_number":95,"context_line":"a volume, the developer must get the volume attachment uuid for"},{"line_number":96,"context_line":"the instance.  This information is embedded in the cinder volume"},{"line_number":97,"context_line":"volume_attachments list."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7adec928_b9d8a1f0","line":97,"in_reply_to":"9ad9bd40_dc8d537d","updated":"2014-05-09 02:46:02.000000000","message":"In my current WIP code for nova/cinder, cinder requires the attachment uuid.  Nova fetches the volume and looks for the attachment in the list of attachments returned as part of the volume.   The attachment has the attachment uuid in it.   \nIf cinder isn\u0027t upgraded and nova is, then nova won\u0027t find the attachment uuid and will most likely fail.  \n\nThe existing cinder API for detach doesn\u0027t have an attachment uuid requirement.  So, if nova is upgraded and cinder isn\u0027t, they are out of sync.  \n\nSuggestions?","commit_id":"3073add4220adac54a58d2b8ad2abdc61fa3b2db"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f810704f3e670f8361daab7b9f537a16a56d82f2","unresolved":false,"context_lines":[{"line_number":107,"context_line":"throwing it out there to see who picks it up?"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"If more than one person is working on the implementation, please designate the"},{"line_number":110,"context_line":"primary author and contact."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Primary assignee:"},{"line_number":113,"context_line":"  walter-boring"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ad9bd40_072da846","line":110,"updated":"2014-05-01 19:23:49.000000000","message":"Snip these out.","commit_id":"3073add4220adac54a58d2b8ad2abdc61fa3b2db"},{"author":{"_account_id":9847,"name":"ricky.bo","email":"boh.ricky@gmail.com","username":"boh.ricky"},"change_message_id":"64f5b469dbd086766dc7367427304bf4b56118fa","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"Work Items"},{"line_number":119,"context_line":"----------"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"1. Update the use of cinderclient to extract the new list of volume"},{"line_number":122,"context_line":"   attachments when Nova fetches a volume."},{"line_number":123,"context_line":"2. Update all calls to cinderclient.detac() to include the attachment uuid."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7adec928_ca582959","line":120,"updated":"2014-05-09 07:30:48.000000000","message":"Whether there is a blueprint about this in cinder?\nMaybe there is something need to consider in cinder:\n\n1. \na property to identify whether the volume is allowed to attached to multiple instances.\nAllow any volume attached to multiple instances arbitrary maybe is not proper.\n\n2. \nA configuration about the max attachment limit.","commit_id":"3073add4220adac54a58d2b8ad2abdc61fa3b2db"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"29aa22bdebb80c929db70bc59324c97872d67455","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"Work Items"},{"line_number":119,"context_line":"----------"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"1. Update the use of cinderclient to extract the new list of volume"},{"line_number":122,"context_line":"   attachments when Nova fetches a volume."},{"line_number":123,"context_line":"2. Update all calls to cinderclient.detac() to include the attachment uuid."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7adec928_628c8380","line":120,"in_reply_to":"7adec928_ca582959","updated":"2014-05-11 05:05:16.000000000","message":"There is already an extensive blueprint for this in Cinder as well as an extensive Wiki page describing the thoughts about the shareable flag.\n\nThe links for the cinder BP is in this page on line 135.  \nThe wiki page is here\n\nhttps://wiki.openstack.org/wiki/Cinder/blueprints/multi-attach-volume","commit_id":"3073add4220adac54a58d2b8ad2abdc61fa3b2db"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f810704f3e670f8361daab7b9f537a16a56d82f2","unresolved":false,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"1. Update the use of cinderclient to extract the new list of volume"},{"line_number":122,"context_line":"   attachments when Nova fetches a volume."},{"line_number":123,"context_line":"2. Update all calls to cinderclient.detac() to include the attachment uuid."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ad9bd40_672cb448","line":123,"updated":"2014-05-01 19:23:49.000000000","message":"s/c(/ch(/","commit_id":"3073add4220adac54a58d2b8ad2abdc61fa3b2db"}]}
