)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15905,"name":"Cao Xuan Hoang","email":"xuanhoangqb@gmail.com","username":"hoangcx"},"change_message_id":"bda7af1a7868fa81e6219078dc100b8be3d5c43b","unresolved":false,"context_lines":[{"line_number":10,"context_line":"not deal with how this is supported/implemented on the consumer side,"},{"line_number":11,"context_line":"but only proposes steps to enable it on the Cinder side and suggested"},{"line_number":12,"context_line":"policy additions for a cloud operator to control it\u0027s use."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ib2bfd98106a9edd6f3152e9e3078b9be3f4bbc43"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"ff82abbf_3e4e8dc1","line":13,"updated":"2017-12-01 08:22:36.000000000","message":"Partial-Implements: bp multi-attach-v3-attach","commit_id":"5bcbda114b25b785e120508703782139a18defb2"}],"specs/queens/enable-multiattach.rst":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"298fc48269516455b5235d1e7bfb8e8115c53eea","unresolved":false,"context_lines":[{"line_number":27,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Currently we refuse to attach a volume that is already attached (in-use)."},{"line_number":30,"context_line":"There are situations where a cloud user may have deployed a clustered"},{"line_number":31,"context_line":"file-system on a Cinder volume and they would like the ability to attach"},{"line_number":32,"context_line":"a volume to multiple hosts/servers at the same time."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Note that Cinder is not providing any sort of Filesystem checks or sharing"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_8301b507","line":31,"range":{"start_line":30,"start_character":60,"end_line":31,"end_character":11},"updated":"2017-11-29 15:17:05.000000000","message":"+1 Glad you are calling this out here. :)","commit_id":"c1acacbc3ae9cca56c80aeb36581833b7a20873c"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"298fc48269516455b5235d1e7bfb8e8115c53eea","unresolved":false,"context_lines":[{"line_number":36,"context_line":"determine if they can in fact attach a volume to multiple locations without"},{"line_number":37,"context_line":"incurring filesystem/data corruption."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"The problem that we are proposing to solve with ths spec is simply to enable"},{"line_number":40,"context_line":"the ability to attach a volume to multiple locations, and provide the cloud"},{"line_number":41,"context_line":"operator with policies to enable/disable the functionality for the cloud.  We"},{"line_number":42,"context_line":"do NOT offer any mechanism to keep a user from corrupting their data or doing"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_0315a53f","line":39,"range":{"start_line":39,"start_character":48,"end_line":39,"end_character":51},"updated":"2017-11-29 15:17:05.000000000","message":"this","commit_id":"c1acacbc3ae9cca56c80aeb36581833b7a20873c"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"1cd7323844b9ec769847a74804264c60863bb990","unresolved":false,"context_lines":[{"line_number":36,"context_line":"determine if they can in fact attach a volume to multiple locations without"},{"line_number":37,"context_line":"incurring filesystem/data corruption."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"The problem that we are proposing to solve with ths spec is simply to enable"},{"line_number":40,"context_line":"the ability to attach a volume to multiple locations, and provide the cloud"},{"line_number":41,"context_line":"operator with policies to enable/disable the functionality for the cloud.  We"},{"line_number":42,"context_line":"do NOT offer any mechanism to keep a user from corrupting their data or doing"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_21c8e1a3","line":39,"range":{"start_line":39,"start_character":48,"end_line":39,"end_character":51},"in_reply_to":"ff82abbf_0315a53f","updated":"2017-11-29 16:22:32.000000000","message":"Done","commit_id":"c1acacbc3ae9cca56c80aeb36581833b7a20873c"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"298fc48269516455b5235d1e7bfb8e8115c53eea","unresolved":false,"context_lines":[{"line_number":82,"context_line":"------------------"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"Create a Cinder policy that enables/disables the ability to multi-attach"},{"line_number":85,"context_line":"a volume.  This policy is a global policy for the cloud and simple either"},{"line_number":86,"context_line":"enables or disables the capability.  There\u0027s no need for any granularity around"},{"line_number":87,"context_line":"RO and RW policies, mostly as these can\u0027t be enforced from the Cinder side"},{"line_number":88,"context_line":"anyway.  Things like RO and RW will have to be handled by the cosuming service"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_c3333df5","line":85,"range":{"start_line":85,"start_character":60,"end_line":85,"end_character":66},"updated":"2017-11-29 15:17:05.000000000","message":"simply","commit_id":"c1acacbc3ae9cca56c80aeb36581833b7a20873c"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"1cd7323844b9ec769847a74804264c60863bb990","unresolved":false,"context_lines":[{"line_number":82,"context_line":"------------------"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"Create a Cinder policy that enables/disables the ability to multi-attach"},{"line_number":85,"context_line":"a volume.  This policy is a global policy for the cloud and simple either"},{"line_number":86,"context_line":"enables or disables the capability.  There\u0027s no need for any granularity around"},{"line_number":87,"context_line":"RO and RW policies, mostly as these can\u0027t be enforced from the Cinder side"},{"line_number":88,"context_line":"anyway.  Things like RO and RW will have to be handled by the cosuming service"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_e1bd1902","line":85,"range":{"start_line":85,"start_character":60,"end_line":85,"end_character":66},"in_reply_to":"ff82abbf_c3333df5","updated":"2017-11-29 16:22:32.000000000","message":"Done","commit_id":"c1acacbc3ae9cca56c80aeb36581833b7a20873c"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"298fc48269516455b5235d1e7bfb8e8115c53eea","unresolved":false,"context_lines":[{"line_number":85,"context_line":"a volume.  This policy is a global policy for the cloud and simple either"},{"line_number":86,"context_line":"enables or disables the capability.  There\u0027s no need for any granularity around"},{"line_number":87,"context_line":"RO and RW policies, mostly as these can\u0027t be enforced from the Cinder side"},{"line_number":88,"context_line":"anyway.  Things like RO and RW will have to be handled by the cosuming service"},{"line_number":89,"context_line":"(Nova)."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"MultiAttach capable volume type"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_2339c9d5","line":88,"range":{"start_line":88,"start_character":62,"end_line":88,"end_character":70},"updated":"2017-11-29 15:17:05.000000000","message":"consuming","commit_id":"c1acacbc3ae9cca56c80aeb36581833b7a20873c"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"1cd7323844b9ec769847a74804264c60863bb990","unresolved":false,"context_lines":[{"line_number":85,"context_line":"a volume.  This policy is a global policy for the cloud and simple either"},{"line_number":86,"context_line":"enables or disables the capability.  There\u0027s no need for any granularity around"},{"line_number":87,"context_line":"RO and RW policies, mostly as these can\u0027t be enforced from the Cinder side"},{"line_number":88,"context_line":"anyway.  Things like RO and RW will have to be handled by the cosuming service"},{"line_number":89,"context_line":"(Nova)."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"MultiAttach capable volume type"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_613fc986","line":88,"range":{"start_line":88,"start_character":62,"end_line":88,"end_character":70},"in_reply_to":"ff82abbf_2339c9d5","updated":"2017-11-29 16:22:32.000000000","message":"Done","commit_id":"c1acacbc3ae9cca56c80aeb36581833b7a20873c"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"298fc48269516455b5235d1e7bfb8e8115c53eea","unresolved":false,"context_lines":[{"line_number":94,"context_line":"In order to ensure that a volume is created on a backend that supports multiple"},{"line_number":95,"context_line":"attachments, it will need to be created on a backend that allows this.  The"},{"line_number":96,"context_line":"only way to safely control this is be requiring that a type of"},{"line_number":97,"context_line":"\"supports_multiattach\" is created and used on volume creation."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"If an additional attach request is made to a volume that is NOT of the type"},{"line_number":100,"context_line":"multi-attach enabled the request should fail as the volumes already in-use, and"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_c3001dae","line":97,"updated":"2017-11-29 15:17:05.000000000","message":"So, just to be clear, the plan is to only enable mutliattach for a volume if its volume type has this set, right? So even though a backend is capable, we will not allow a second attachment to be created unless this was present in the type.","commit_id":"c1acacbc3ae9cca56c80aeb36581833b7a20873c"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"1cd7323844b9ec769847a74804264c60863bb990","unresolved":false,"context_lines":[{"line_number":94,"context_line":"In order to ensure that a volume is created on a backend that supports multiple"},{"line_number":95,"context_line":"attachments, it will need to be created on a backend that allows this.  The"},{"line_number":96,"context_line":"only way to safely control this is be requiring that a type of"},{"line_number":97,"context_line":"\"supports_multiattach\" is created and used on volume creation."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"If an additional attach request is made to a volume that is NOT of the type"},{"line_number":100,"context_line":"multi-attach enabled the request should fail as the volumes already in-use, and"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_a1d5d11d","line":97,"in_reply_to":"ff82abbf_c3001dae","updated":"2017-11-29 16:22:32.000000000","message":"Yeah, that\u0027s where I landed; but I\u0027m open to discussing it.  I didn\u0027t like the idea of using a Volume Type for this or requiring anything special to be done on create (and I still don\u0027t).\n\nIt might be worth just providing the type to guarantee that volume is multi-attach, and in any case if policy allows it go ahead and check capabilities and respond appropriately?  This would certainly be much nicer IMO than requiring a type, thoughts?","commit_id":"c1acacbc3ae9cca56c80aeb36581833b7a20873c"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"298fc48269516455b5235d1e7bfb8e8115c53eea","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"If an additional attach request is made to a volume that is NOT of the type"},{"line_number":100,"context_line":"multi-attach enabled the request should fail as the volumes already in-use, and"},{"line_number":101,"context_line":"either a new volume should be create of the correct type, or the volume should"},{"line_number":102,"context_line":"be retyped.  Of course if the policy allows and the type is correct the"},{"line_number":103,"context_line":"additional attachment request should be processed and the existing"},{"line_number":104,"context_line":"attachment(s) are left active and NOT interrupted."}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_236789eb","line":101,"range":{"start_line":101,"start_character":30,"end_line":101,"end_character":36},"updated":"2017-11-29 15:17:05.000000000","message":"created","commit_id":"c1acacbc3ae9cca56c80aeb36581833b7a20873c"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"1cd7323844b9ec769847a74804264c60863bb990","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"If an additional attach request is made to a volume that is NOT of the type"},{"line_number":100,"context_line":"multi-attach enabled the request should fail as the volumes already in-use, and"},{"line_number":101,"context_line":"either a new volume should be create of the correct type, or the volume should"},{"line_number":102,"context_line":"be retyped.  Of course if the policy allows and the type is correct the"},{"line_number":103,"context_line":"additional attachment request should be processed and the existing"},{"line_number":104,"context_line":"attachment(s) are left active and NOT interrupted."}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_21e9c1e4","line":101,"range":{"start_line":101,"start_character":30,"end_line":101,"end_character":36},"in_reply_to":"ff82abbf_236789eb","updated":"2017-11-29 16:22:32.000000000","message":"Done","commit_id":"c1acacbc3ae9cca56c80aeb36581833b7a20873c"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"298fc48269516455b5235d1e7bfb8e8115c53eea","unresolved":false,"context_lines":[{"line_number":102,"context_line":"be retyped.  Of course if the policy allows and the type is correct the"},{"line_number":103,"context_line":"additional attachment request should be processed and the existing"},{"line_number":104,"context_line":"attachment(s) are left active and NOT interrupted."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Alternatives"},{"line_number":108,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_034da53c","line":105,"updated":"2017-11-29 15:17:05.000000000","message":"I think to be safe, we should default the backend to \"support-multiattach: False\" until each driver maintainer explicitly enables it. We should call out that here to be explicit.","commit_id":"c1acacbc3ae9cca56c80aeb36581833b7a20873c"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"1cd7323844b9ec769847a74804264c60863bb990","unresolved":false,"context_lines":[{"line_number":102,"context_line":"be retyped.  Of course if the policy allows and the type is correct the"},{"line_number":103,"context_line":"additional attachment request should be processed and the existing"},{"line_number":104,"context_line":"attachment(s) are left active and NOT interrupted."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Alternatives"},{"line_number":108,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_61a9098e","line":105,"in_reply_to":"ff82abbf_034da53c","updated":"2017-11-29 16:22:32.000000000","message":"Good point, will do","commit_id":"c1acacbc3ae9cca56c80aeb36581833b7a20873c"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"298fc48269516455b5235d1e7bfb8e8115c53eea","unresolved":false,"context_lines":[{"line_number":104,"context_line":"attachment(s) are left active and NOT interrupted."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Alternatives"},{"line_number":108,"context_line":"------------"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"* Don\u0027t support standard over-provisioning calculations."}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_e3b1a145","line":107,"range":{"start_line":107,"start_character":0,"end_line":107,"end_character":12},"updated":"2017-11-29 15:17:05.000000000","message":"These alternatives don\u0027t really tie in to the changes detailed above. Can you elaborate a little to explain how these alternatives would change the suggested implementation?","commit_id":"c1acacbc3ae9cca56c80aeb36581833b7a20873c"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"1cd7323844b9ec769847a74804264c60863bb990","unresolved":false,"context_lines":[{"line_number":104,"context_line":"attachment(s) are left active and NOT interrupted."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Alternatives"},{"line_number":108,"context_line":"------------"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"* Don\u0027t support standard over-provisioning calculations."}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_e19c396b","line":107,"range":{"start_line":107,"start_character":0,"end_line":107,"end_character":12},"in_reply_to":"ff82abbf_e3b1a145","updated":"2017-11-29 16:22:32.000000000","message":"Aww crap, you caught me copy/pasting :)","commit_id":"c1acacbc3ae9cca56c80aeb36581833b7a20873c"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"298fc48269516455b5235d1e7bfb8e8115c53eea","unresolved":false,"context_lines":[{"line_number":195,"context_line":""},{"line_number":196,"context_line":"New unit tests will be added to test the changed code and funtional testing"},{"line_number":197,"context_line":"will need to be added as well."},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"Documentation Impact"},{"line_number":200,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":201,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_03dfe568","line":198,"updated":"2017-11-29 15:17:05.000000000","message":"Maybe add something about volume driver maintainers needing to test this capability?\n\nI guess we should probably add a tempest test that at least does this to two instances on the same host, or skips if no backend is capable.","commit_id":"c1acacbc3ae9cca56c80aeb36581833b7a20873c"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"ea45511bee6da010eb7d47442ce0707565e9f2f6","unresolved":false,"context_lines":[{"line_number":74,"context_line":"would make things like H/A databases via a shared Block device possible which"},{"line_number":75,"context_line":"is something of interest.  The other use case that\u0027s been proposed is the"},{"line_number":76,"context_line":"ability to have things like passive stand-by servers/volumes."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Proposed change"},{"line_number":79,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff82abbf_e14679c0","line":77,"updated":"2017-11-29 16:29:55.000000000","message":"One use case for multi-attach RO is analyzing/fleecing an instance from another instance or host.","commit_id":"9a5663780c6bed7f409aac7fb614a3f72f066e8d"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"eded3e2b6011027ae0ed505e7595bb3737fbea4f","unresolved":false,"context_lines":[{"line_number":74,"context_line":"would make things like H/A databases via a shared Block device possible which"},{"line_number":75,"context_line":"is something of interest.  The other use case that\u0027s been proposed is the"},{"line_number":76,"context_line":"ability to have things like passive stand-by servers/volumes."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Proposed change"},{"line_number":79,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff82abbf_b78f5328","line":77,"in_reply_to":"ff82abbf_e14679c0","updated":"2017-11-29 17:42:02.000000000","message":"Done","commit_id":"9a5663780c6bed7f409aac7fb614a3f72f066e8d"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"e4d66de426d34463fc37097c5e1cf2cbbd52d409","unresolved":false,"context_lines":[{"line_number":97,"context_line":"\"supports_multiattach\" is created and used on volume creation."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"If an additional attach request is made to a volume that is NOT of the type"},{"line_number":100,"context_line":"multi-attach enabled the request should fail as the volumes already in-use, and"},{"line_number":101,"context_line":"either a new volume should be created of the correct type, or the volume should"},{"line_number":102,"context_line":"be retyped.  Of course if the policy allows and the type is correct the"},{"line_number":103,"context_line":"additional attachment request should be processed and the existing"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff82abbf_97d48f49","line":100,"range":{"start_line":100,"start_character":52,"end_line":100,"end_character":59},"updated":"2017-11-29 17:34:51.000000000","message":"volume is","commit_id":"9a5663780c6bed7f409aac7fb614a3f72f066e8d"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"eded3e2b6011027ae0ed505e7595bb3737fbea4f","unresolved":false,"context_lines":[{"line_number":97,"context_line":"\"supports_multiattach\" is created and used on volume creation."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"If an additional attach request is made to a volume that is NOT of the type"},{"line_number":100,"context_line":"multi-attach enabled the request should fail as the volumes already in-use, and"},{"line_number":101,"context_line":"either a new volume should be created of the correct type, or the volume should"},{"line_number":102,"context_line":"be retyped.  Of course if the policy allows and the type is correct the"},{"line_number":103,"context_line":"additional attachment request should be processed and the existing"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff82abbf_77854b06","line":100,"range":{"start_line":100,"start_character":52,"end_line":100,"end_character":59},"in_reply_to":"ff82abbf_97d48f49","updated":"2017-11-29 17:42:02.000000000","message":"Done","commit_id":"9a5663780c6bed7f409aac7fb614a3f72f066e8d"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"e4d66de426d34463fc37097c5e1cf2cbbd52d409","unresolved":false,"context_lines":[{"line_number":103,"context_line":"additional attachment request should be processed and the existing"},{"line_number":104,"context_line":"attachment(s) are left active and NOT interrupted."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"NOTE that the default will be multiattach:False"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff82abbf_17c87fa3","line":106,"range":{"start_line":106,"start_character":30,"end_line":106,"end_character":41},"updated":"2017-11-29 17:34:51.000000000","message":"should this be supports_multiattach to be consistent with the type you note above or are you referring to the flag that is already out there for multiattach?","commit_id":"9a5663780c6bed7f409aac7fb614a3f72f066e8d"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"eded3e2b6011027ae0ed505e7595bb3737fbea4f","unresolved":false,"context_lines":[{"line_number":103,"context_line":"additional attachment request should be processed and the existing"},{"line_number":104,"context_line":"attachment(s) are left active and NOT interrupted."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"NOTE that the default will be multiattach:False"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff82abbf_b7943338","line":106,"range":{"start_line":106,"start_character":30,"end_line":106,"end_character":41},"in_reply_to":"ff82abbf_17c87fa3","updated":"2017-11-29 17:42:02.000000000","message":"Done","commit_id":"9a5663780c6bed7f409aac7fb614a3f72f066e8d"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"e4d66de426d34463fc37097c5e1cf2cbbd52d409","unresolved":false,"context_lines":[{"line_number":112,"context_line":"* Be cloudy and write clustered apps"},{"line_number":113,"context_line":"* Use things like independent data instances"},{"line_number":114,"context_line":"* Get over it, you probably don\u0027t really need this"},{"line_number":115,"context_line":"Data model impact"},{"line_number":116,"context_line":"-----------------"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"N/A"},{"line_number":119,"context_line":"All of the needed changes to the data model should already be in place."}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff82abbf_17763f71","line":116,"range":{"start_line":115,"start_character":0,"end_line":116,"end_character":17},"updated":"2017-11-29 17:34:51.000000000","message":"Need a space before this to be rendered properly.","commit_id":"9a5663780c6bed7f409aac7fb614a3f72f066e8d"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"eded3e2b6011027ae0ed505e7595bb3737fbea4f","unresolved":false,"context_lines":[{"line_number":112,"context_line":"* Be cloudy and write clustered apps"},{"line_number":113,"context_line":"* Use things like independent data instances"},{"line_number":114,"context_line":"* Get over it, you probably don\u0027t really need this"},{"line_number":115,"context_line":"Data model impact"},{"line_number":116,"context_line":"-----------------"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"N/A"},{"line_number":119,"context_line":"All of the needed changes to the data model should already be in place."}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff82abbf_779a2b62","line":116,"range":{"start_line":115,"start_character":0,"end_line":116,"end_character":17},"in_reply_to":"ff82abbf_17763f71","updated":"2017-11-29 17:42:02.000000000","message":"Done","commit_id":"9a5663780c6bed7f409aac7fb614a3f72f066e8d"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"e4d66de426d34463fc37097c5e1cf2cbbd52d409","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"This has a number of impacts on the API, the most obvious of which is the fact"},{"line_number":125,"context_line":"that you can attach a volume multiple times.  The other changes that may not be"},{"line_number":126,"context_line":"so obvious are things like representing a volumes attachment status, and"},{"line_number":127,"context_line":"managing state changes when a secondary attachment is processed or removed."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"The current representation of volume-status is likely to be insufficent once"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff82abbf_37710377","line":126,"range":{"start_line":126,"start_character":41,"end_line":126,"end_character":49},"updated":"2017-11-29 17:34:51.000000000","message":"volume\u0027s","commit_id":"9a5663780c6bed7f409aac7fb614a3f72f066e8d"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"eded3e2b6011027ae0ed505e7595bb3737fbea4f","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"This has a number of impacts on the API, the most obvious of which is the fact"},{"line_number":125,"context_line":"that you can attach a volume multiple times.  The other changes that may not be"},{"line_number":126,"context_line":"so obvious are things like representing a volumes attachment status, and"},{"line_number":127,"context_line":"managing state changes when a secondary attachment is processed or removed."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"The current representation of volume-status is likely to be insufficent once"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff82abbf_d7aa176f","line":126,"range":{"start_line":126,"start_character":41,"end_line":126,"end_character":49},"in_reply_to":"ff82abbf_37710377","updated":"2017-11-29 17:42:02.000000000","message":"Done","commit_id":"9a5663780c6bed7f409aac7fb614a3f72f066e8d"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"e4d66de426d34463fc37097c5e1cf2cbbd52d409","unresolved":false,"context_lines":[{"line_number":153,"context_line":"Developer impact"},{"line_number":154,"context_line":"----------------"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"Drivers will need to add a capabilities field \"multi-attach: True/False\", and"},{"line_number":157,"context_line":"do any special handling on their end for connecting/disconnecting volumes in"},{"line_number":158,"context_line":"this category."},{"line_number":159,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff82abbf_b70af3ce","line":156,"range":{"start_line":156,"start_character":47,"end_line":156,"end_character":71},"updated":"2017-11-29 17:34:51.000000000","message":"Need to converge on one naming for the field here.","commit_id":"9a5663780c6bed7f409aac7fb614a3f72f066e8d"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"eded3e2b6011027ae0ed505e7595bb3737fbea4f","unresolved":false,"context_lines":[{"line_number":153,"context_line":"Developer impact"},{"line_number":154,"context_line":"----------------"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"Drivers will need to add a capabilities field \"multi-attach: True/False\", and"},{"line_number":157,"context_line":"do any special handling on their end for connecting/disconnecting volumes in"},{"line_number":158,"context_line":"this category."},{"line_number":159,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff82abbf_97ba4fbe","line":156,"range":{"start_line":156,"start_character":47,"end_line":156,"end_character":71},"in_reply_to":"ff82abbf_b70af3ce","updated":"2017-11-29 17:42:02.000000000","message":"Done","commit_id":"9a5663780c6bed7f409aac7fb614a3f72f066e8d"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"e4d66de426d34463fc37097c5e1cf2cbbd52d409","unresolved":false,"context_lines":[{"line_number":164,"context_line":"-----------"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Primary assignee:"},{"line_number":167,"context_line":"  None"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"Other contributors:"},{"line_number":170,"context_line":"  None"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff82abbf_17fb9fc0","line":167,"range":{"start_line":167,"start_character":1,"end_line":167,"end_character":6},"updated":"2017-11-29 17:34:51.000000000","message":"You ?  :)","commit_id":"9a5663780c6bed7f409aac7fb614a3f72f066e8d"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"e4d66de426d34463fc37097c5e1cf2cbbd52d409","unresolved":false,"context_lines":[{"line_number":167,"context_line":"  None"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"Other contributors:"},{"line_number":170,"context_line":"  None"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"Work Items"},{"line_number":173,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff82abbf_37f6e3d8","line":170,"range":{"start_line":170,"start_character":2,"end_line":170,"end_character":6},"updated":"2017-11-29 17:34:51.000000000","message":"Ildiko ?","commit_id":"9a5663780c6bed7f409aac7fb614a3f72f066e8d"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"e4d66de426d34463fc37097c5e1cf2cbbd52d409","unresolved":false,"context_lines":[{"line_number":176,"context_line":"* Implement changes to API to allow/ignore existing attachments on"},{"line_number":177,"context_line":"  attachment-create calls."},{"line_number":178,"context_line":"* Update the attach/detach volume-status transitions to be multi-attach aware"},{"line_number":179,"context_line":"  and make sure the reflect the correct values."},{"line_number":180,"context_line":"* Update the detail volume view and possibly the summary view to clearly inform"},{"line_number":181,"context_line":"  the user when a volume is attached to multiple servers."},{"line_number":182,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff82abbf_97300fa1","line":179,"range":{"start_line":179,"start_character":16,"end_line":179,"end_character":19},"updated":"2017-11-29 17:34:51.000000000","message":"they","commit_id":"9a5663780c6bed7f409aac7fb614a3f72f066e8d"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"eded3e2b6011027ae0ed505e7595bb3737fbea4f","unresolved":false,"context_lines":[{"line_number":176,"context_line":"* Implement changes to API to allow/ignore existing attachments on"},{"line_number":177,"context_line":"  attachment-create calls."},{"line_number":178,"context_line":"* Update the attach/detach volume-status transitions to be multi-attach aware"},{"line_number":179,"context_line":"  and make sure the reflect the correct values."},{"line_number":180,"context_line":"* Update the detail volume view and possibly the summary view to clearly inform"},{"line_number":181,"context_line":"  the user when a volume is attached to multiple servers."},{"line_number":182,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff82abbf_17d39f05","line":179,"range":{"start_line":179,"start_character":16,"end_line":179,"end_character":19},"in_reply_to":"ff82abbf_97300fa1","updated":"2017-11-29 17:42:02.000000000","message":"Done","commit_id":"9a5663780c6bed7f409aac7fb614a3f72f066e8d"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"e4d66de426d34463fc37097c5e1cf2cbbd52d409","unresolved":false,"context_lines":[{"line_number":184,"context_line":"Dependencies"},{"line_number":185,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"N/A"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"Testing"},{"line_number":190,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff82abbf_57db674d","line":187,"range":{"start_line":187,"start_character":0,"end_line":187,"end_character":3},"updated":"2017-11-29 17:34:51.000000000","message":"There will be changes needed in Horizon as well based on this, especially if we are updating the detailed info output to indicate multi-attach status.","commit_id":"9a5663780c6bed7f409aac7fb614a3f72f066e8d"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"eded3e2b6011027ae0ed505e7595bb3737fbea4f","unresolved":false,"context_lines":[{"line_number":184,"context_line":"Dependencies"},{"line_number":185,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"N/A"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"Testing"},{"line_number":190,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff82abbf_f7be3bac","line":187,"range":{"start_line":187,"start_character":0,"end_line":187,"end_character":3},"in_reply_to":"ff82abbf_57db674d","updated":"2017-11-29 17:42:02.000000000","message":"Yeah, probably but fortunately that\u0027s not a dependency to do the cinder side of the work.","commit_id":"9a5663780c6bed7f409aac7fb614a3f72f066e8d"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"e4d66de426d34463fc37097c5e1cf2cbbd52d409","unresolved":false,"context_lines":[{"line_number":189,"context_line":"Testing"},{"line_number":190,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"New unit tests will be added to test the changed code and funtional testing"},{"line_number":193,"context_line":"will need to be added as well."},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff82abbf_5726076a","line":192,"range":{"start_line":192,"start_character":58,"end_line":192,"end_character":67},"updated":"2017-11-29 17:34:51.000000000","message":"functional","commit_id":"9a5663780c6bed7f409aac7fb614a3f72f066e8d"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"eded3e2b6011027ae0ed505e7595bb3737fbea4f","unresolved":false,"context_lines":[{"line_number":189,"context_line":"Testing"},{"line_number":190,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"New unit tests will be added to test the changed code and funtional testing"},{"line_number":193,"context_line":"will need to be added as well."},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff82abbf_37c90358","line":192,"range":{"start_line":192,"start_character":58,"end_line":192,"end_character":67},"in_reply_to":"ff82abbf_5726076a","updated":"2017-11-29 17:42:02.000000000","message":"Done","commit_id":"9a5663780c6bed7f409aac7fb614a3f72f066e8d"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"f61160287409b7815c18205dfbca28ffadccf98c","unresolved":false,"context_lines":[{"line_number":169,"context_line":"  jgriffith"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"Other contributors:"},{"line_number":172,"context_line":"  None"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"Work Items"},{"line_number":175,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ff82abbf_5297f53a","line":172,"range":{"start_line":172,"start_character":2,"end_line":172,"end_character":6},"updated":"2017-11-29 18:22:55.000000000","message":"I can be added as a contributor here. I wonder whether we have anyone in mind for the policy work item?","commit_id":"6957e28a9cd8d33e87a7031aeedc5fdcb48fc89d"},{"author":{"_account_id":15905,"name":"Cao Xuan Hoang","email":"xuanhoangqb@gmail.com","username":"hoangcx"},"change_message_id":"bda7af1a7868fa81e6219078dc100b8be3d5c43b","unresolved":false,"context_lines":[{"line_number":17,"context_line":"of the Attach workflow in Cinder however made this somewhat difficult and"},{"line_number":18,"context_line":"less than robust."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"With the new Cinder Attahcment API\u0027s [1]_ this is"},{"line_number":21,"context_line":"a bit easier because Attachments are treated as independent objects."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"This spec proposes a set of changes to enable and control the use of"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ff82abbf_1c039411","line":20,"range":{"start_line":20,"start_character":20,"end_line":20,"end_character":30},"updated":"2017-12-01 08:22:36.000000000","message":"Attachment","commit_id":"5bcbda114b25b785e120508703782139a18defb2"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"d111c9291c17a1a9a3149b929c38ddaef39f4b7e","unresolved":false,"context_lines":[{"line_number":17,"context_line":"of the Attach workflow in Cinder however made this somewhat difficult and"},{"line_number":18,"context_line":"less than robust."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"With the new Cinder Attahcment API\u0027s [1]_ this is"},{"line_number":21,"context_line":"a bit easier because Attachments are treated as independent objects."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"This spec proposes a set of changes to enable and control the use of"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df87a7cf_457928fa","line":20,"range":{"start_line":20,"start_character":20,"end_line":20,"end_character":30},"in_reply_to":"ff82abbf_1c039411","updated":"2017-12-04 19:36:31.000000000","message":"Done","commit_id":"5bcbda114b25b785e120508703782139a18defb2"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"fd070bb7be63aebb53e88926d758b89fa2fa5596","unresolved":false,"context_lines":[{"line_number":102,"context_line":"either a new volume should be created of the correct type, or the volume should"},{"line_number":103,"context_line":"be retyped.  Of course if the policy allows and the type is correct the"},{"line_number":104,"context_line":"additional attachment request should be processed and the existing"},{"line_number":105,"context_line":"attachment(s) are left active and NOT interrupted."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"NOTE that the default will be multiattach:False"},{"line_number":108,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"ff82abbf_4207071a","line":105,"updated":"2017-11-30 16:29:28.000000000","message":"We need to make sure you can\u0027t change the type when there is already an attachment, because libvirt needs to be told the correct value of multiattach for all attachments. i.e. attach one volume non-multiattach, you need to remote it and re-attach with multi-attach:true before the second multi-attach:true attachment is added.","commit_id":"5bcbda114b25b785e120508703782139a18defb2"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"d111c9291c17a1a9a3149b929c38ddaef39f4b7e","unresolved":false,"context_lines":[{"line_number":102,"context_line":"either a new volume should be created of the correct type, or the volume should"},{"line_number":103,"context_line":"be retyped.  Of course if the policy allows and the type is correct the"},{"line_number":104,"context_line":"additional attachment request should be processed and the existing"},{"line_number":105,"context_line":"attachment(s) are left active and NOT interrupted."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"NOTE that the default will be multiattach:False"},{"line_number":108,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"df87a7cf_05356046","line":105,"in_reply_to":"ff82abbf_4207071a","updated":"2017-12-04 19:36:31.000000000","message":"Done","commit_id":"5bcbda114b25b785e120508703782139a18defb2"},{"author":{"_account_id":15905,"name":"Cao Xuan Hoang","email":"xuanhoangqb@gmail.com","username":"hoangcx"},"change_message_id":"bda7af1a7868fa81e6219078dc100b8be3d5c43b","unresolved":false,"context_lines":[{"line_number":175,"context_line":"----------"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"* Update Cinder attach/detach to accomodate shared targets"},{"line_number":178,"context_line":"  (most of this is being done independtly, see dependencies section for more"},{"line_number":179,"context_line":"  info)"},{"line_number":180,"context_line":"* Implement policy changes"},{"line_number":181,"context_line":"* Implement changes to API to allow/ignore existing attachments on"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ff82abbf_3e01adb0","line":178,"range":{"start_line":178,"start_character":30,"end_line":178,"end_character":41},"updated":"2017-12-01 08:22:36.000000000","message":"independently","commit_id":"5bcbda114b25b785e120508703782139a18defb2"},{"author":{"_account_id":15905,"name":"Cao Xuan Hoang","email":"xuanhoangqb@gmail.com","username":"hoangcx"},"change_message_id":"bda7af1a7868fa81e6219078dc100b8be3d5c43b","unresolved":false,"context_lines":[{"line_number":175,"context_line":"----------"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"* Update Cinder attach/detach to accomodate shared targets"},{"line_number":178,"context_line":"  (most of this is being done independtly, see dependencies section for more"},{"line_number":179,"context_line":"  info)"},{"line_number":180,"context_line":"* Implement policy changes"},{"line_number":181,"context_line":"* Implement changes to API to allow/ignore existing attachments on"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ff82abbf_9e1d5911","line":178,"range":{"start_line":178,"start_character":47,"end_line":178,"end_character":59},"updated":"2017-12-01 08:22:36.000000000","message":"should be: `Dependencies`_ ?","commit_id":"5bcbda114b25b785e120508703782139a18defb2"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"d111c9291c17a1a9a3149b929c38ddaef39f4b7e","unresolved":false,"context_lines":[{"line_number":175,"context_line":"----------"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"* Update Cinder attach/detach to accomodate shared targets"},{"line_number":178,"context_line":"  (most of this is being done independtly, see dependencies section for more"},{"line_number":179,"context_line":"  info)"},{"line_number":180,"context_line":"* Implement policy changes"},{"line_number":181,"context_line":"* Implement changes to API to allow/ignore existing attachments on"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df87a7cf_6519ccd5","line":178,"range":{"start_line":178,"start_character":30,"end_line":178,"end_character":41},"in_reply_to":"ff82abbf_3e01adb0","updated":"2017-12-04 19:36:31.000000000","message":"Done","commit_id":"5bcbda114b25b785e120508703782139a18defb2"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"d111c9291c17a1a9a3149b929c38ddaef39f4b7e","unresolved":false,"context_lines":[{"line_number":175,"context_line":"----------"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"* Update Cinder attach/detach to accomodate shared targets"},{"line_number":178,"context_line":"  (most of this is being done independtly, see dependencies section for more"},{"line_number":179,"context_line":"  info)"},{"line_number":180,"context_line":"* Implement policy changes"},{"line_number":181,"context_line":"* Implement changes to API to allow/ignore existing attachments on"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df87a7cf_050ec08c","line":178,"range":{"start_line":178,"start_character":47,"end_line":178,"end_character":59},"in_reply_to":"ff82abbf_9e1d5911","updated":"2017-12-04 19:36:31.000000000","message":"Done","commit_id":"5bcbda114b25b785e120508703782139a18defb2"},{"author":{"_account_id":15905,"name":"Cao Xuan Hoang","email":"xuanhoangqb@gmail.com","username":"hoangcx"},"change_message_id":"bda7af1a7868fa81e6219078dc100b8be3d5c43b","unresolved":false,"context_lines":[{"line_number":189,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"* Handling of disconnects for devices using shared targets"},{"line_number":192,"context_line":"  Initial work is under review here:  https://review.openstack.org/#/c/520676/"},{"line_number":193,"context_line":"  Additionally, the API will need a micro version bump and additions to the"},{"line_number":194,"context_line":"  response views for volumes."},{"line_number":195,"context_line":"* Required patches for service-uuid have already merged"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ff82abbf_5ec5915a","line":192,"range":{"start_line":192,"start_character":15,"end_line":192,"end_character":30},"updated":"2017-12-01 08:22:36.000000000","message":"this work has just been merged.","commit_id":"5bcbda114b25b785e120508703782139a18defb2"},{"author":{"_account_id":15905,"name":"Cao Xuan Hoang","email":"xuanhoangqb@gmail.com","username":"hoangcx"},"change_message_id":"bda7af1a7868fa81e6219078dc100b8be3d5c43b","unresolved":false,"context_lines":[{"line_number":192,"context_line":"  Initial work is under review here:  https://review.openstack.org/#/c/520676/"},{"line_number":193,"context_line":"  Additionally, the API will need a micro version bump and additions to the"},{"line_number":194,"context_line":"  response views for volumes."},{"line_number":195,"context_line":"* Required patches for service-uuid have already merged"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"Testing"},{"line_number":198,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ff82abbf_de03e172","line":195,"range":{"start_line":195,"start_character":49,"end_line":195,"end_character":55},"updated":"2017-12-01 08:22:36.000000000","message":"I think It worth to mention the work [1] to this.\n\n[1] https://review.openstack.org/#/c/519025/","commit_id":"5bcbda114b25b785e120508703782139a18defb2"},{"author":{"_account_id":15905,"name":"Cao Xuan Hoang","email":"xuanhoangqb@gmail.com","username":"hoangcx"},"change_message_id":"bda7af1a7868fa81e6219078dc100b8be3d5c43b","unresolved":false,"context_lines":[{"line_number":192,"context_line":"  Initial work is under review here:  https://review.openstack.org/#/c/520676/"},{"line_number":193,"context_line":"  Additionally, the API will need a micro version bump and additions to the"},{"line_number":194,"context_line":"  response views for volumes."},{"line_number":195,"context_line":"* Required patches for service-uuid have already merged"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"Testing"},{"line_number":198,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ff82abbf_3ec44d40","line":195,"range":{"start_line":195,"start_character":11,"end_line":195,"end_character":18},"updated":"2017-12-01 08:22:36.000000000","message":"patches -\u003e patch?","commit_id":"5bcbda114b25b785e120508703782139a18defb2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7d4ff1bb064b3b68347e922fe1ee63c83ea12b63","unresolved":false,"context_lines":[{"line_number":48,"context_line":"Multi-Attach RO:"},{"line_number":49,"context_line":"  The ability to attach a volume as one would normally do (Read Write access)"},{"line_number":50,"context_line":"  and then to attach that volume to another host(s)/server(s) in Read Only"},{"line_number":51,"context_line":"  mode.  Note, this is actually tricky because this typically will require that"},{"line_number":52,"context_line":"  the consumer (ie Nova/KVM) knows how to set and enforce Read Only on an"},{"line_number":53,"context_line":"  attached volume."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Multi-Attach RW:"},{"line_number":56,"context_line":"  The ability to attach a volume as one would normally do (Read Write access)"}],"source_content_type":"text/x-rst","patch_set":7,"id":"df87a7cf_f98c9fd8","line":53,"range":{"start_line":51,"start_character":9,"end_line":53,"end_character":18},"updated":"2017-12-14 20:17:32.000000000","message":"The os-attach volume action API had a \u0027mode\u0027 parameter for this but there isn\u0027t anything like that in the new attachments API is there? Or is this not talking about the Cinder API but the guest config for the VM?","commit_id":"f1e250bcbe8ea6d42c70ba74ebf3185903f7cd34"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"ceb27c71278879796634912283dec3a7fc393de6","unresolved":false,"context_lines":[{"line_number":48,"context_line":"Multi-Attach RO:"},{"line_number":49,"context_line":"  The ability to attach a volume as one would normally do (Read Write access)"},{"line_number":50,"context_line":"  and then to attach that volume to another host(s)/server(s) in Read Only"},{"line_number":51,"context_line":"  mode.  Note, this is actually tricky because this typically will require that"},{"line_number":52,"context_line":"  the consumer (ie Nova/KVM) knows how to set and enforce Read Only on an"},{"line_number":53,"context_line":"  attached volume."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Multi-Attach RW:"},{"line_number":56,"context_line":"  The ability to attach a volume as one would normally do (Read Write access)"}],"source_content_type":"text/x-rst","patch_set":7,"id":"df87a7cf_9cef8186","line":53,"range":{"start_line":51,"start_character":9,"end_line":53,"end_character":18},"in_reply_to":"df87a7cf_f98c9fd8","updated":"2017-12-14 20:39:48.000000000","message":"Should also note, that many cinder backends ignore the mode entirely.","commit_id":"f1e250bcbe8ea6d42c70ba74ebf3185903f7cd34"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"1db37f84d45b7a856c4d76d87a0f7aa85d1fb2cc","unresolved":false,"context_lines":[{"line_number":48,"context_line":"Multi-Attach RO:"},{"line_number":49,"context_line":"  The ability to attach a volume as one would normally do (Read Write access)"},{"line_number":50,"context_line":"  and then to attach that volume to another host(s)/server(s) in Read Only"},{"line_number":51,"context_line":"  mode.  Note, this is actually tricky because this typically will require that"},{"line_number":52,"context_line":"  the consumer (ie Nova/KVM) knows how to set and enforce Read Only on an"},{"line_number":53,"context_line":"  attached volume."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Multi-Attach RW:"},{"line_number":56,"context_line":"  The ability to attach a volume as one would normally do (Read Write access)"}],"source_content_type":"text/x-rst","patch_set":7,"id":"df87a7cf_bc912549","line":53,"range":{"start_line":51,"start_character":9,"end_line":53,"end_character":18},"in_reply_to":"df87a7cf_f98c9fd8","updated":"2017-12-14 20:39:17.000000000","message":"The mode parameter is still in the connection response, but you\u0027re correct there\u0027s nothing on the Cinder API side that would align with this.\n\nThe approach proposed here doesn\u0027t actually change anything in the user facing API\u0027s or the command sets but instead relies on all of that being a part of the volume-type.\n\nSo the volume type might have extra-specs that look something like this:\n{\n    Name: MultiAttach-RO,\n    extra_specs {\u0027multiattach\u0027: True,\n        \u0027mode\u0027: \u0027ReadOnly\u0027}\n }   \n\nIt would then be up to the scheduler to find/select a backend that supports these capabilities.  When an attach request is made it will be up to the volume manager to check this type information and update the connection data appropriately","commit_id":"f1e250bcbe8ea6d42c70ba74ebf3185903f7cd34"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"f21b42fca5566342bd6cdbe1a0b7d348a5c397b1","unresolved":false,"context_lines":[{"line_number":74,"context_line":"  is something of interest."},{"line_number":75,"context_line":"* The other use case that\u0027s been proposed is the"},{"line_number":76,"context_line":"  ability to have things like passive stand-by servers/volumes."},{"line_number":77,"context_line":"* Analyzing/Fleecing an Instance from another Intance or host"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Proposed change"},{"line_number":80,"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":7,"id":"df87a7cf_cd655ae3","line":77,"range":{"start_line":77,"start_character":46,"end_line":77,"end_character":53},"updated":"2017-12-14 16:43:17.000000000","message":"Instance","commit_id":"f1e250bcbe8ea6d42c70ba74ebf3185903f7cd34"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7d4ff1bb064b3b68347e922fe1ee63c83ea12b63","unresolved":false,"context_lines":[{"line_number":83,"context_line":"------------------"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"Create a Cinder policy that enables/disables the ability to multi-attach"},{"line_number":86,"context_line":"a volume.  This policy is a global policy for the cloud and simply either"},{"line_number":87,"context_line":"enables or disables the capability.  There\u0027s no need for any granularity around"},{"line_number":88,"context_line":"RO and RW policies, mostly as these can\u0027t be enforced from the Cinder side"},{"line_number":89,"context_line":"anyway.  Things like RO and RW will have to be handled by the consuming service"}],"source_content_type":"text/x-rst","patch_set":7,"id":"df87a7cf_39ac4734","line":86,"range":{"start_line":86,"start_character":50,"end_line":86,"end_character":55},"updated":"2017-12-14 20:17:32.000000000","message":"Well, for the given block storage API endpoint in the service catalog, of which there could be multiple (in multiple regions). But details...","commit_id":"f1e250bcbe8ea6d42c70ba74ebf3185903f7cd34"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"1db37f84d45b7a856c4d76d87a0f7aa85d1fb2cc","unresolved":false,"context_lines":[{"line_number":83,"context_line":"------------------"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"Create a Cinder policy that enables/disables the ability to multi-attach"},{"line_number":86,"context_line":"a volume.  This policy is a global policy for the cloud and simply either"},{"line_number":87,"context_line":"enables or disables the capability.  There\u0027s no need for any granularity around"},{"line_number":88,"context_line":"RO and RW policies, mostly as these can\u0027t be enforced from the Cinder side"},{"line_number":89,"context_line":"anyway.  Things like RO and RW will have to be handled by the consuming service"}],"source_content_type":"text/x-rst","patch_set":7,"id":"df87a7cf_7cb4fdd1","line":86,"range":{"start_line":86,"start_character":50,"end_line":86,"end_character":55},"in_reply_to":"df87a7cf_39ac4734","updated":"2017-12-14 20:39:17.000000000","message":"Good point, I can reword that to make it clear.","commit_id":"f1e250bcbe8ea6d42c70ba74ebf3185903f7cd34"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"ceb27c71278879796634912283dec3a7fc393de6","unresolved":false,"context_lines":[{"line_number":87,"context_line":"enables or disables the capability.  There\u0027s no need for any granularity around"},{"line_number":88,"context_line":"RO and RW policies, mostly as these can\u0027t be enforced from the Cinder side"},{"line_number":89,"context_line":"anyway.  Things like RO and RW will have to be handled by the consuming service"},{"line_number":90,"context_line":"(Nova)."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"MultiAttach capable volume type"},{"line_number":93,"context_line":"-------------------------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"df87a7cf_7ca15d46","line":90,"updated":"2017-12-14 20:39:48.000000000","message":"and Ironic","commit_id":"f1e250bcbe8ea6d42c70ba74ebf3185903f7cd34"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"ceb27c71278879796634912283dec3a7fc393de6","unresolved":false,"context_lines":[{"line_number":90,"context_line":"(Nova)."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"MultiAttach capable volume type"},{"line_number":93,"context_line":"-------------------------------"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"In order to ensure that a volume is created on a backend that supports multiple"},{"line_number":96,"context_line":"attachments, it will need to be created on a backend that allows this.  The"}],"source_content_type":"text/x-rst","patch_set":7,"id":"df87a7cf_9c30e109","line":93,"updated":"2017-12-14 20:39:48.000000000","message":"what about the existing CLI option of --allow-multiattach ?\n\nIt was put in place to have an explicit option that a user has to enter when creating the volume.","commit_id":"f1e250bcbe8ea6d42c70ba74ebf3185903f7cd34"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"76432fa90e80c11f8aaf84ee5cc0374a52801653","unresolved":false,"context_lines":[{"line_number":90,"context_line":"(Nova)."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"MultiAttach capable volume type"},{"line_number":93,"context_line":"-------------------------------"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"In order to ensure that a volume is created on a backend that supports multiple"},{"line_number":96,"context_line":"attachments, it will need to be created on a backend that allows this.  The"}],"source_content_type":"text/x-rst","patch_set":7,"id":"df87a7cf_daf72e59","line":93,"in_reply_to":"df87a7cf_9c30e109","updated":"2017-12-15 21:36:21.000000000","message":"Well beside the fact that putting something in the user facing API before it\u0027s even supported being kind of a bad idea?  So there are a number od downsides to using the create flag, the most significant of which is not scheduling (that can be hacked in) but never being able to change that volume again in the future.\n\nAlso for those clouds that choose (wisely perhaps?) to NOT support/implement multiattach, the flag just creates confusion and a non-deterministic failure case.  Any user can issue create with the flag regardless of whether any device supports it or not, or if the cloud admin wants it supported.\n\nBy using types you have the flexibility of ONLY exposing what you want to the user, and the ability to retype/change volumes in the future.  Based on experience I\u0027m pretty sure the \"update/change\" feature will come up, and while I tried for years to stick to the \"that\u0027s what clones are for\" argument, that battle has been lost.\n\nWe\u0027ve had a number of conversations about this and I thought we finally had an agreement.  Perhaps I\u0027m mistaken though, I\u0027m certainly happy to change this if everybody hates it (and it seems like they do), but I do think in the long run it\u0027s going to be a much better/robust way of going about this.","commit_id":"f1e250bcbe8ea6d42c70ba74ebf3185903f7cd34"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"bc13a5ff897a68fba904887b7e942e0ab5848215","unresolved":false,"context_lines":[{"line_number":90,"context_line":"(Nova)."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"MultiAttach capable volume type"},{"line_number":93,"context_line":"-------------------------------"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"In order to ensure that a volume is created on a backend that supports multiple"},{"line_number":96,"context_line":"attachments, it will need to be created on a backend that allows this.  The"}],"source_content_type":"text/x-rst","patch_set":7,"id":"df87a7cf_d23b89c5","line":93,"in_reply_to":"df87a7cf_daf72e59","updated":"2017-12-17 17:39:16.000000000","message":"My understanding is that using types gives more flexibility and better user experience and that\u0027s I think what we agreed on the past two weekly meetings as well.\n\nAs we have the --allow-multiattach CLI option existing too, we should remove that indeed to avoid confusions on it.","commit_id":"f1e250bcbe8ea6d42c70ba74ebf3185903f7cd34"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"f21b42fca5566342bd6cdbe1a0b7d348a5c397b1","unresolved":false,"context_lines":[{"line_number":104,"context_line":"additional attachment request should be processed and the existing"},{"line_number":105,"context_line":"attachment(s) are left active and NOT interrupted."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"In addition, we disallow retyping an in-use volume from non-multiattach to"},{"line_number":108,"context_line":"multiattach."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"NOTE that the default will be multiattach:False"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"df87a7cf_eda37eff","line":108,"range":{"start_line":107,"start_character":0,"end_line":108,"end_character":12},"updated":"2017-12-14 16:43:17.000000000","message":"Could clarify here when this could and couldn\u0027t work.","commit_id":"f1e250bcbe8ea6d42c70ba74ebf3185903f7cd34"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"bc13a5ff897a68fba904887b7e942e0ab5848215","unresolved":false,"context_lines":[{"line_number":104,"context_line":"additional attachment request should be processed and the existing"},{"line_number":105,"context_line":"attachment(s) are left active and NOT interrupted."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"In addition, we disallow retyping an in-use volume from non-multiattach to"},{"line_number":108,"context_line":"multiattach."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"NOTE that the default will be multiattach:False"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"df87a7cf_327675a6","line":108,"range":{"start_line":107,"start_character":0,"end_line":108,"end_character":12},"in_reply_to":"df87a7cf_5ce6d9ea","updated":"2017-12-17 17:39:16.000000000","message":"+1","commit_id":"f1e250bcbe8ea6d42c70ba74ebf3185903f7cd34"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"1db37f84d45b7a856c4d76d87a0f7aa85d1fb2cc","unresolved":false,"context_lines":[{"line_number":104,"context_line":"additional attachment request should be processed and the existing"},{"line_number":105,"context_line":"attachment(s) are left active and NOT interrupted."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"In addition, we disallow retyping an in-use volume from non-multiattach to"},{"line_number":108,"context_line":"multiattach."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"NOTE that the default will be multiattach:False"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"df87a7cf_5ce6d9ea","line":108,"range":{"start_line":107,"start_character":0,"end_line":108,"end_character":12},"in_reply_to":"df87a7cf_793defdb","updated":"2017-12-14 20:39:17.000000000","message":"Yeah, I think that\u0027s best.  I\u0027ll add wording to make that explicit.","commit_id":"f1e250bcbe8ea6d42c70ba74ebf3185903f7cd34"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7d4ff1bb064b3b68347e922fe1ee63c83ea12b63","unresolved":false,"context_lines":[{"line_number":104,"context_line":"additional attachment request should be processed and the existing"},{"line_number":105,"context_line":"attachment(s) are left active and NOT interrupted."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"In addition, we disallow retyping an in-use volume from non-multiattach to"},{"line_number":108,"context_line":"multiattach."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"NOTE that the default will be multiattach:False"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"df87a7cf_793defdb","line":108,"range":{"start_line":107,"start_character":0,"end_line":108,"end_character":12},"in_reply_to":"df87a7cf_eda37eff","updated":"2017-12-14 20:17:32.000000000","message":"\"from non-multiattach to multiattach and vice-versa\" yes?","commit_id":"f1e250bcbe8ea6d42c70ba74ebf3185903f7cd34"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"1db37f84d45b7a856c4d76d87a0f7aa85d1fb2cc","unresolved":false,"context_lines":[{"line_number":104,"context_line":"additional attachment request should be processed and the existing"},{"line_number":105,"context_line":"attachment(s) are left active and NOT interrupted."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"In addition, we disallow retyping an in-use volume from non-multiattach to"},{"line_number":108,"context_line":"multiattach."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"NOTE that the default will be multiattach:False"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"df87a7cf_3cc6754b","line":108,"range":{"start_line":107,"start_character":0,"end_line":108,"end_character":12},"in_reply_to":"df87a7cf_eda37eff","updated":"2017-12-14 20:39:17.000000000","message":"Will do","commit_id":"f1e250bcbe8ea6d42c70ba74ebf3185903f7cd34"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7d4ff1bb064b3b68347e922fe1ee63c83ea12b63","unresolved":false,"context_lines":[{"line_number":108,"context_line":"multiattach."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"NOTE that the default will be multiattach:False"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"Alternatives"},{"line_number":114,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"df87a7cf_9c2781b7","line":111,"updated":"2017-12-14 20:17:32.000000000","message":"Another question that\u0027s now coming up in this change https://review.openstack.org/#/c/528028/ - what about force detach of a multi-attach volume? Does that work the same as before?\n\nForce seems fine.\n\nThe thing in that patch that worries me is if the storage drivers assume that \"no connector\" means it\u0027s a force detach, regardless of the force flag to driver.terminate_connection, then that could likely screw up a multiattach volume where it\u0027s attached to one instance running on a host normally and it\u0027s attached to another instance that is shelved offloaded. In the latter case, there is no host connector because there is no host, but nova is going to call attachment_delete anyway since we\u0027re detaching the volume from the shelved offloaded instance. Will cinder tell the driver \u0027no connector, so just delete all the connections because we assume it\u0027s a force\u0027?\n\nLong-term the compute API for attaching a volume to a shelved offloaded instance either needs to not create an attachment and just reserve the volume, and call roll_detach on detach of the volume, or some other trick has to happen, but that\u0027s a behavior change in the compute API and something we\u0027d need to change with a compute API microversion bump to signal the difference.","commit_id":"f1e250bcbe8ea6d42c70ba74ebf3185903f7cd34"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"bc13a5ff897a68fba904887b7e942e0ab5848215","unresolved":false,"context_lines":[{"line_number":108,"context_line":"multiattach."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"NOTE that the default will be multiattach:False"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"Alternatives"},{"line_number":114,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"df87a7cf_72b87d29","line":111,"in_reply_to":"df87a7cf_3c675554","updated":"2017-12-17 17:39:16.000000000","message":"So for the long term comment, if we crate an attachment with no connector for reserving the volume if we call attachment_delete on that one it will just delete the attachment here: https://github.com/openstack/cinder/blob/master/cinder/volume/api.py#L2093\n\nSo it doesn\u0027t go down to the manager.py and trying to terminate any non existing connection. We only need to be careful to have the volume state right in case of a \u0027multiattach\u0027 volume with other existing attachments.\n\nI think we should get the API microversion bump in soon rather than later.","commit_id":"f1e250bcbe8ea6d42c70ba74ebf3185903f7cd34"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"1db37f84d45b7a856c4d76d87a0f7aa85d1fb2cc","unresolved":false,"context_lines":[{"line_number":108,"context_line":"multiattach."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"NOTE that the default will be multiattach:False"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"Alternatives"},{"line_number":114,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"df87a7cf_3c675554","line":111,"in_reply_to":"df87a7cf_9c2781b7","updated":"2017-12-14 20:39:17.000000000","message":"I\u0027ll have to look at that; the incorrect behavior of shelved attached volumes is going to need special handling, including here.  I think we can add some logic to look for things like multiple attachments and deal with that, but I\u0027d have to spend some time poking at it to have a definitive answer on how to deal with it.","commit_id":"f1e250bcbe8ea6d42c70ba74ebf3185903f7cd34"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7d4ff1bb064b3b68347e922fe1ee63c83ea12b63","unresolved":false,"context_lines":[{"line_number":124,"context_line":"All of the needed changes to the data model should already be in place."},{"line_number":125,"context_line":"Inparticular the existing `multiattach` column on the volume object, which"},{"line_number":126,"context_line":"will signal the consumer that they\u0027re working with a multiattach capable"},{"line_number":127,"context_line":"volume.  So, if a volume of type multiattach:True is requested/created,"},{"line_number":128,"context_line":"it\u0027s multiattach column is set to True, else False."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"REST API impact"},{"line_number":131,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"df87a7cf_5c56d908","line":128,"range":{"start_line":127,"start_character":9,"end_line":128,"end_character":51},"updated":"2017-12-14 20:17:32.000000000","message":"And if I try to create a volume with multiattach\u003dTrue but the volume type is multiattach:False, the volume create just flat out fails, right?","commit_id":"f1e250bcbe8ea6d42c70ba74ebf3185903f7cd34"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"1db37f84d45b7a856c4d76d87a0f7aa85d1fb2cc","unresolved":false,"context_lines":[{"line_number":124,"context_line":"All of the needed changes to the data model should already be in place."},{"line_number":125,"context_line":"Inparticular the existing `multiattach` column on the volume object, which"},{"line_number":126,"context_line":"will signal the consumer that they\u0027re working with a multiattach capable"},{"line_number":127,"context_line":"volume.  So, if a volume of type multiattach:True is requested/created,"},{"line_number":128,"context_line":"it\u0027s multiattach column is set to True, else False."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"REST API impact"},{"line_number":131,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"df87a7cf_7cecfd8e","line":128,"range":{"start_line":127,"start_character":9,"end_line":128,"end_character":51},"in_reply_to":"df87a7cf_5c56d908","updated":"2017-12-14 20:39:17.000000000","message":"That\u0027s the nice thing IMO, you don\u0027t actually get to make that distinction.  You just have a standard `cinder create --volume-typ xxxx`\n\nIf you\u0027re cloud-admin setup a type for multiattach\u003dTrue and allows you to use it then you use that for the type.  The create call does not change from what it is today, none of the API calls themseleves should change form the user perspective.","commit_id":"f1e250bcbe8ea6d42c70ba74ebf3185903f7cd34"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"bc13a5ff897a68fba904887b7e942e0ab5848215","unresolved":false,"context_lines":[{"line_number":124,"context_line":"All of the needed changes to the data model should already be in place."},{"line_number":125,"context_line":"Inparticular the existing `multiattach` column on the volume object, which"},{"line_number":126,"context_line":"will signal the consumer that they\u0027re working with a multiattach capable"},{"line_number":127,"context_line":"volume.  So, if a volume of type multiattach:True is requested/created,"},{"line_number":128,"context_line":"it\u0027s multiattach column is set to True, else False."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"REST API impact"},{"line_number":131,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"df87a7cf_f27d6d6e","line":128,"range":{"start_line":127,"start_character":9,"end_line":128,"end_character":51},"in_reply_to":"df87a7cf_7cecfd8e","updated":"2017-12-17 17:39:16.000000000","message":"I guess the question here is whether the driver capabilities have \u0027multiattach\u0027:True or not?","commit_id":"f1e250bcbe8ea6d42c70ba74ebf3185903f7cd34"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"fcfae265b72768e9d7522debad7fa64e12347d07","unresolved":false,"context_lines":[{"line_number":124,"context_line":"All of the needed changes to the data model should already be in place."},{"line_number":125,"context_line":"Inparticular the existing `multiattach` column on the volume object, which"},{"line_number":126,"context_line":"will signal the consumer that they\u0027re working with a multiattach capable"},{"line_number":127,"context_line":"volume.  So, if a volume of type multiattach:True is requested/created,"},{"line_number":128,"context_line":"it\u0027s multiattach column is set to True, else False."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"REST API impact"},{"line_number":131,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"bf8cb3f7_b1cde65e","line":128,"range":{"start_line":127,"start_character":9,"end_line":128,"end_character":51},"in_reply_to":"df87a7cf_f27d6d6e","updated":"2017-12-21 20:33:10.000000000","message":"That\u0027s how the scheduler works yes, so that capability is added as part of this spec and as a result we can fail fast if there are no devices supporting multi-attach.","commit_id":"f1e250bcbe8ea6d42c70ba74ebf3185903f7cd34"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7d4ff1bb064b3b68347e922fe1ee63c83ea12b63","unresolved":false,"context_lines":[{"line_number":127,"context_line":"volume.  So, if a volume of type multiattach:True is requested/created,"},{"line_number":128,"context_line":"it\u0027s multiattach column is set to True, else False."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"REST API impact"},{"line_number":131,"context_line":"---------------"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"This has a number of impacts on the API, the most obvious of which is the fact"}],"source_content_type":"text/x-rst","patch_set":7,"id":"df87a7cf_fc448d49","line":130,"updated":"2017-12-14 20:17:32.000000000","message":"Not sure if you want to mention the shared_targets microversion that was added to help support with the detach flow.","commit_id":"f1e250bcbe8ea6d42c70ba74ebf3185903f7cd34"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"306974050574361b07e33ba51c67778ee01ff904","unresolved":false,"context_lines":[{"line_number":127,"context_line":"volume.  So, if a volume of type multiattach:True is requested/created,"},{"line_number":128,"context_line":"it\u0027s multiattach column is set to True, else False."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"REST API impact"},{"line_number":131,"context_line":"---------------"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"This has a number of impacts on the API, the most obvious of which is the fact"}],"source_content_type":"text/x-rst","patch_set":7,"id":"df87a7cf_ed6cd59d","line":130,"in_reply_to":"df87a7cf_dc9189f3","updated":"2017-12-14 22:17:02.000000000","message":"Shared targets is mentioned in work items and dependencies below so it\u0027s fine.","commit_id":"f1e250bcbe8ea6d42c70ba74ebf3185903f7cd34"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"1db37f84d45b7a856c4d76d87a0f7aa85d1fb2cc","unresolved":false,"context_lines":[{"line_number":127,"context_line":"volume.  So, if a volume of type multiattach:True is requested/created,"},{"line_number":128,"context_line":"it\u0027s multiattach column is set to True, else False."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"REST API impact"},{"line_number":131,"context_line":"---------------"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"This has a number of impacts on the API, the most obvious of which is the fact"}],"source_content_type":"text/x-rst","patch_set":7,"id":"df87a7cf_dc9189f3","line":130,"in_reply_to":"df87a7cf_fc448d49","updated":"2017-12-14 20:39:17.000000000","message":"Sure, you mean like point out that it\u0027s required?  I guess my thought was that it landed already and is in place, so it would be assumed that one must have \u0027v++\u0027 for support of this.  But I suspect you\u0027re thinking of a detail I\u0027m missing here and that\u0027s not actually what you\u0027re getting at.","commit_id":"f1e250bcbe8ea6d42c70ba74ebf3185903f7cd34"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7d4ff1bb064b3b68347e922fe1ee63c83ea12b63","unresolved":false,"context_lines":[{"line_number":189,"context_line":"  attachment-create calls."},{"line_number":190,"context_line":"* Update the attach/detach volume-status transitions to be multiattach aware"},{"line_number":191,"context_line":"  and make sure they reflect the correct values."},{"line_number":192,"context_line":"* Update the detail volume view and possibly the summary view to clearly inform"},{"line_number":193,"context_line":"  the user when a volume is attached to multiple servers."},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"Dependencies"},{"line_number":196,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"df87a7cf_7ca71d0d","line":193,"range":{"start_line":192,"start_character":2,"end_line":193,"end_character":57},"updated":"2017-12-14 20:17:32.000000000","message":"GET /volumes/{id} already shows a list of attachments - has been that way forever, isn\u0027t that sufficient?","commit_id":"f1e250bcbe8ea6d42c70ba74ebf3185903f7cd34"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"306974050574361b07e33ba51c67778ee01ff904","unresolved":false,"context_lines":[{"line_number":189,"context_line":"  attachment-create calls."},{"line_number":190,"context_line":"* Update the attach/detach volume-status transitions to be multiattach aware"},{"line_number":191,"context_line":"  and make sure they reflect the correct values."},{"line_number":192,"context_line":"* Update the detail volume view and possibly the summary view to clearly inform"},{"line_number":193,"context_line":"  the user when a volume is attached to multiple servers."},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"Dependencies"},{"line_number":196,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"df87a7cf_8d118907","line":193,"range":{"start_line":192,"start_character":2,"end_line":193,"end_character":57},"in_reply_to":"df87a7cf_5c45796f","updated":"2017-12-14 22:17:02.000000000","message":"The CLI just dumps the big list from the response, so yeah that\u0027s not very clear, but that could also be cleaned up client side in the CLI if we wanted to, like change the CLI to just write out \"attachments: 3\" or something, idk.","commit_id":"f1e250bcbe8ea6d42c70ba74ebf3185903f7cd34"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"1db37f84d45b7a856c4d76d87a0f7aa85d1fb2cc","unresolved":false,"context_lines":[{"line_number":189,"context_line":"  attachment-create calls."},{"line_number":190,"context_line":"* Update the attach/detach volume-status transitions to be multiattach aware"},{"line_number":191,"context_line":"  and make sure they reflect the correct values."},{"line_number":192,"context_line":"* Update the detail volume view and possibly the summary view to clearly inform"},{"line_number":193,"context_line":"  the user when a volume is attached to multiple servers."},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"Dependencies"},{"line_number":196,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"df87a7cf_5c45796f","line":193,"range":{"start_line":192,"start_character":2,"end_line":193,"end_character":57},"in_reply_to":"df87a7cf_7ca71d0d","updated":"2017-12-14 20:39:17.000000000","message":"Yeah, it\u0027s the view in places like the CLI that I\u0027m worried about.  Representing the data there isn\u0027t as easy I don\u0027t think?\n\nI suppose I should clarify that.","commit_id":"f1e250bcbe8ea6d42c70ba74ebf3185903f7cd34"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7d4ff1bb064b3b68347e922fe1ee63c83ea12b63","unresolved":false,"context_lines":[{"line_number":203,"context_line":"  https://review.openstack.org/#/c/519025/"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"Testing"},{"line_number":207,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"New unit tests will be added to test the changed code and functional testing"}],"source_content_type":"text/x-rst","patch_set":7,"id":"df87a7cf_7c807d47","line":206,"updated":"2017-12-14 20:17:32.000000000","message":"We also have:\n\nhttps://review.openstack.org/#/c/266605/\n\nI just restored that today, needs to be dusted off.","commit_id":"f1e250bcbe8ea6d42c70ba74ebf3185903f7cd34"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"1db37f84d45b7a856c4d76d87a0f7aa85d1fb2cc","unresolved":false,"context_lines":[{"line_number":203,"context_line":"  https://review.openstack.org/#/c/519025/"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"Testing"},{"line_number":207,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"New unit tests will be added to test the changed code and functional testing"}],"source_content_type":"text/x-rst","patch_set":7,"id":"df87a7cf_bc336513","line":206,"in_reply_to":"df87a7cf_7c807d47","updated":"2017-12-14 20:39:17.000000000","message":"Oh awesome!  I\u0027ll add that here","commit_id":"f1e250bcbe8ea6d42c70ba74ebf3185903f7cd34"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7d4ff1bb064b3b68347e922fe1ee63c83ea12b63","unresolved":false,"context_lines":[{"line_number":214,"context_line":""},{"line_number":215,"context_line":"This will require updates to both deployment guides as well as end-user guides."},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"References"},{"line_number":218,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":".. [1] https://specs.openstack.org/openstack/cinder-specs/specs/ocata/add-new-attach-apis.html"}],"source_content_type":"text/x-rst","patch_set":7,"id":"df87a7cf_d97f5ba9","line":217,"updated":"2017-12-14 20:17:32.000000000","message":"Probably worth linking to the nova multiattach spec which also covers some of this content:\n\nhttps://specs.openstack.org/openstack/nova-specs/specs/queens/approved/cinder-volume-multi-attach.html","commit_id":"f1e250bcbe8ea6d42c70ba74ebf3185903f7cd34"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"1db37f84d45b7a856c4d76d87a0f7aa85d1fb2cc","unresolved":false,"context_lines":[{"line_number":214,"context_line":""},{"line_number":215,"context_line":"This will require updates to both deployment guides as well as end-user guides."},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"References"},{"line_number":218,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":".. [1] https://specs.openstack.org/openstack/cinder-specs/specs/ocata/add-new-attach-apis.html"}],"source_content_type":"text/x-rst","patch_set":7,"id":"df87a7cf_dcaae917","line":217,"in_reply_to":"df87a7cf_d97f5ba9","updated":"2017-12-14 20:39:17.000000000","message":"Great!","commit_id":"f1e250bcbe8ea6d42c70ba74ebf3185903f7cd34"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"408c0616c9b5bd44caacb496996e6ba28b9326b8","unresolved":false,"context_lines":[{"line_number":80,"context_line":"  }"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"  # Also accept explicit request if so desired"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"  {"},{"line_number":85,"context_line":"  \u0027multiattach\u0027: \u0027\u003cis True\u003e\u0027,"},{"line_number":86,"context_line":"  \u0027mode\u0027: \u0027RW\u0027"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bf8cb3f7_e6e89317","line":83,"updated":"2017-12-21 21:58:25.000000000","message":"nit: remove the blank line","commit_id":"d0b3adb071abd6a6489909007a610aa4aa18ff1f"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"8eccd446b046657e13b0a02a6d0282c9447af03b","unresolved":false,"context_lines":[{"line_number":80,"context_line":"  }"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"  # Also accept explicit request if so desired"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"  {"},{"line_number":85,"context_line":"  \u0027multiattach\u0027: \u0027\u003cis True\u003e\u0027,"},{"line_number":86,"context_line":"  \u0027mode\u0027: \u0027RW\u0027"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bf8cb3f7_6621e34d","line":83,"in_reply_to":"bf8cb3f7_e6e89317","updated":"2017-12-21 22:08:26.000000000","message":"Done","commit_id":"d0b3adb071abd6a6489909007a610aa4aa18ff1f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"408c0616c9b5bd44caacb496996e6ba28b9326b8","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"  It will be up to the Cinder scheduler to determine if the policy allows these"},{"line_number":90,"context_line":"  types of volumes to be created, and it will then be up to the driver to form"},{"line_number":91,"context_line":"  the cooresponding Connection and Volume attributes appropriately in it\u0027s"},{"line_number":92,"context_line":"  model returns."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"  Again NOTE we will NOT allow retype of attachment setting for an `in-use`"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bf8cb3f7_26919b9a","line":91,"range":{"start_line":91,"start_character":6,"end_line":91,"end_character":19},"updated":"2017-12-21 21:58:25.000000000","message":"corresponding","commit_id":"d0b3adb071abd6a6489909007a610aa4aa18ff1f"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"8eccd446b046657e13b0a02a6d0282c9447af03b","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"  It will be up to the Cinder scheduler to determine if the policy allows these"},{"line_number":90,"context_line":"  types of volumes to be created, and it will then be up to the driver to form"},{"line_number":91,"context_line":"  the cooresponding Connection and Volume attributes appropriately in it\u0027s"},{"line_number":92,"context_line":"  model returns."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"  Again NOTE we will NOT allow retype of attachment setting for an `in-use`"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bf8cb3f7_861e670a","line":91,"range":{"start_line":91,"start_character":6,"end_line":91,"end_character":19},"in_reply_to":"bf8cb3f7_26919b9a","updated":"2017-12-21 22:08:26.000000000","message":"Done","commit_id":"d0b3adb071abd6a6489909007a610aa4aa18ff1f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"408c0616c9b5bd44caacb496996e6ba28b9326b8","unresolved":false,"context_lines":[{"line_number":133,"context_line":"attachment(s) are left active and NOT interrupted."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"To avoid various corner cases and confusion for users in what\u0027s allowed and"},{"line_number":136,"context_line":"what\u0027s not, this spec proposes we set a blanket policy that disallows the"},{"line_number":137,"context_line":"retyping of attachemnt parameters of an `in-use` volume.  Regardless of what"},{"line_number":138,"context_line":"those changes are; multi--\u003enon-multi, non-multi--\u003emulti, RO, RW etc etc."},{"line_number":139,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"bf8cb3f7_86d98784","line":136,"range":{"start_line":136,"start_character":48,"end_line":136,"end_character":54},"updated":"2017-12-21 21:58:25.000000000","message":"nit: this could be confused with the actual policy file, which implies this could be configured different to allow changing multiattach on an attached volume during retype. I think you just mean like a \"development policy\" or something like that. Not sure how to reword this to make that more obvious.\n\nMaybe \"hard-coded rule\" instead of \"blanket policy\"?","commit_id":"d0b3adb071abd6a6489909007a610aa4aa18ff1f"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"8eccd446b046657e13b0a02a6d0282c9447af03b","unresolved":false,"context_lines":[{"line_number":133,"context_line":"attachment(s) are left active and NOT interrupted."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"To avoid various corner cases and confusion for users in what\u0027s allowed and"},{"line_number":136,"context_line":"what\u0027s not, this spec proposes we set a blanket policy that disallows the"},{"line_number":137,"context_line":"retyping of attachemnt parameters of an `in-use` volume.  Regardless of what"},{"line_number":138,"context_line":"those changes are; multi--\u003enon-multi, non-multi--\u003emulti, RO, RW etc etc."},{"line_number":139,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"bf8cb3f7_06d81751","line":136,"range":{"start_line":136,"start_character":48,"end_line":136,"end_character":54},"in_reply_to":"bf8cb3f7_86d98784","updated":"2017-12-21 22:08:26.000000000","message":"Done","commit_id":"d0b3adb071abd6a6489909007a610aa4aa18ff1f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"408c0616c9b5bd44caacb496996e6ba28b9326b8","unresolved":false,"context_lines":[{"line_number":134,"context_line":""},{"line_number":135,"context_line":"To avoid various corner cases and confusion for users in what\u0027s allowed and"},{"line_number":136,"context_line":"what\u0027s not, this spec proposes we set a blanket policy that disallows the"},{"line_number":137,"context_line":"retyping of attachemnt parameters of an `in-use` volume.  Regardless of what"},{"line_number":138,"context_line":"those changes are; multi--\u003enon-multi, non-multi--\u003emulti, RO, RW etc etc."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Any retype command should inspect the multiattach keys and if there is any"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bf8cb3f7_a6f28b05","line":137,"range":{"start_line":137,"start_character":12,"end_line":137,"end_character":22},"updated":"2017-12-21 21:58:25.000000000","message":"attachment","commit_id":"d0b3adb071abd6a6489909007a610aa4aa18ff1f"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"8eccd446b046657e13b0a02a6d0282c9447af03b","unresolved":false,"context_lines":[{"line_number":134,"context_line":""},{"line_number":135,"context_line":"To avoid various corner cases and confusion for users in what\u0027s allowed and"},{"line_number":136,"context_line":"what\u0027s not, this spec proposes we set a blanket policy that disallows the"},{"line_number":137,"context_line":"retyping of attachemnt parameters of an `in-use` volume.  Regardless of what"},{"line_number":138,"context_line":"those changes are; multi--\u003enon-multi, non-multi--\u003emulti, RO, RW etc etc."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Any retype command should inspect the multiattach keys and if there is any"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bf8cb3f7_66e6c319","line":137,"range":{"start_line":137,"start_character":12,"end_line":137,"end_character":22},"in_reply_to":"bf8cb3f7_a6f28b05","updated":"2017-12-21 22:08:26.000000000","message":"Done","commit_id":"d0b3adb071abd6a6489909007a610aa4aa18ff1f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"408c0616c9b5bd44caacb496996e6ba28b9326b8","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":"NOTE that the default will be multiattach:False"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"There is an additional required task required.  The `--allow-multiattach`"},{"line_number":147,"context_line":"parameter included with volume create needs to be deprecated and it needs to be"},{"line_number":148,"context_line":"very explicit that that flag is NOT relevant to the implementation fo"},{"line_number":149,"context_line":"multi-attach that is being proposed in this spec and implemented in Cinder API"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bf8cb3f7_26e67b46","line":146,"range":{"start_line":146,"start_character":37,"end_line":146,"end_character":45},"updated":"2017-12-21 21:58:25.000000000","message":"nit: saying required multiple times is not required :)","commit_id":"d0b3adb071abd6a6489909007a610aa4aa18ff1f"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"8eccd446b046657e13b0a02a6d0282c9447af03b","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":"NOTE that the default will be multiattach:False"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"There is an additional required task required.  The `--allow-multiattach`"},{"line_number":147,"context_line":"parameter included with volume create needs to be deprecated and it needs to be"},{"line_number":148,"context_line":"very explicit that that flag is NOT relevant to the implementation fo"},{"line_number":149,"context_line":"multi-attach that is being proposed in this spec and implemented in Cinder API"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bf8cb3f7_26f0bbc9","line":146,"range":{"start_line":146,"start_character":37,"end_line":146,"end_character":45},"in_reply_to":"bf8cb3f7_26e67b46","updated":"2017-12-21 22:08:26.000000000","message":"Done","commit_id":"d0b3adb071abd6a6489909007a610aa4aa18ff1f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"408c0616c9b5bd44caacb496996e6ba28b9326b8","unresolved":false,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":"There is an additional required task required.  The `--allow-multiattach`"},{"line_number":147,"context_line":"parameter included with volume create needs to be deprecated and it needs to be"},{"line_number":148,"context_line":"very explicit that that flag is NOT relevant to the implementation fo"},{"line_number":149,"context_line":"multi-attach that is being proposed in this spec and implemented in Cinder API"},{"line_number":150,"context_line":"microversion xyz."},{"line_number":151,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"bf8cb3f7_46e37f34","line":148,"range":{"start_line":148,"start_character":67,"end_line":148,"end_character":69},"updated":"2017-12-21 21:58:25.000000000","message":"of","commit_id":"d0b3adb071abd6a6489909007a610aa4aa18ff1f"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"8eccd446b046657e13b0a02a6d0282c9447af03b","unresolved":false,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":"There is an additional required task required.  The `--allow-multiattach`"},{"line_number":147,"context_line":"parameter included with volume create needs to be deprecated and it needs to be"},{"line_number":148,"context_line":"very explicit that that flag is NOT relevant to the implementation fo"},{"line_number":149,"context_line":"multi-attach that is being proposed in this spec and implemented in Cinder API"},{"line_number":150,"context_line":"microversion xyz."},{"line_number":151,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"bf8cb3f7_e6bbb3e2","line":148,"range":{"start_line":148,"start_character":67,"end_line":148,"end_character":69},"in_reply_to":"bf8cb3f7_46e37f34","updated":"2017-12-21 22:08:26.000000000","message":"Done","commit_id":"d0b3adb071abd6a6489909007a610aa4aa18ff1f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"408c0616c9b5bd44caacb496996e6ba28b9326b8","unresolved":false,"context_lines":[{"line_number":154,"context_line":"operations.  This should be fine in a multi-attach scenario because the force"},{"line_number":155,"context_line":"detach is ONLY issued against that instantiation of an attachment.  In other"},{"line_number":156,"context_line":"words the only thing force detach does is ignore state checks and disconnects"},{"line_number":157,"context_line":"the specified session, leaving others in tact.  The process on the Cinder side"},{"line_number":158,"context_line":"should follow the standard multi-attach detach process with the exception of"},{"line_number":159,"context_line":"ignorning the status of the volume."},{"line_number":160,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"bf8cb3f7_e63653b5","line":157,"range":{"start_line":157,"start_character":38,"end_line":157,"end_character":45},"updated":"2017-12-21 21:58:25.000000000","message":"intact","commit_id":"d0b3adb071abd6a6489909007a610aa4aa18ff1f"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"8eccd446b046657e13b0a02a6d0282c9447af03b","unresolved":false,"context_lines":[{"line_number":154,"context_line":"operations.  This should be fine in a multi-attach scenario because the force"},{"line_number":155,"context_line":"detach is ONLY issued against that instantiation of an attachment.  In other"},{"line_number":156,"context_line":"words the only thing force detach does is ignore state checks and disconnects"},{"line_number":157,"context_line":"the specified session, leaving others in tact.  The process on the Cinder side"},{"line_number":158,"context_line":"should follow the standard multi-attach detach process with the exception of"},{"line_number":159,"context_line":"ignorning the status of the volume."},{"line_number":160,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"bf8cb3f7_c6ba2fdd","line":157,"range":{"start_line":157,"start_character":38,"end_line":157,"end_character":45},"in_reply_to":"bf8cb3f7_e63653b5","updated":"2017-12-21 22:08:26.000000000","message":"Done","commit_id":"d0b3adb071abd6a6489909007a610aa4aa18ff1f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"408c0616c9b5bd44caacb496996e6ba28b9326b8","unresolved":false,"context_lines":[{"line_number":156,"context_line":"words the only thing force detach does is ignore state checks and disconnects"},{"line_number":157,"context_line":"the specified session, leaving others in tact.  The process on the Cinder side"},{"line_number":158,"context_line":"should follow the standard multi-attach detach process with the exception of"},{"line_number":159,"context_line":"ignorning the status of the volume."},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"FWIW that call rarely works as users expect anyway, so maybe this will be"},{"line_number":162,"context_line":"a good time to revisit it.  Perhaps deprecate it, and include a force parameter"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bf8cb3f7_063c9791","line":159,"range":{"start_line":159,"start_character":0,"end_line":159,"end_character":9},"updated":"2017-12-21 21:58:25.000000000","message":"ignoring","commit_id":"d0b3adb071abd6a6489909007a610aa4aa18ff1f"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"8eccd446b046657e13b0a02a6d0282c9447af03b","unresolved":false,"context_lines":[{"line_number":156,"context_line":"words the only thing force detach does is ignore state checks and disconnects"},{"line_number":157,"context_line":"the specified session, leaving others in tact.  The process on the Cinder side"},{"line_number":158,"context_line":"should follow the standard multi-attach detach process with the exception of"},{"line_number":159,"context_line":"ignorning the status of the volume."},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"FWIW that call rarely works as users expect anyway, so maybe this will be"},{"line_number":162,"context_line":"a good time to revisit it.  Perhaps deprecate it, and include a force parameter"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bf8cb3f7_46c61f6a","line":159,"range":{"start_line":159,"start_character":0,"end_line":159,"end_character":9},"in_reply_to":"bf8cb3f7_063c9791","updated":"2017-12-21 22:08:26.000000000","message":"Done","commit_id":"d0b3adb071abd6a6489909007a610aa4aa18ff1f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"408c0616c9b5bd44caacb496996e6ba28b9326b8","unresolved":false,"context_lines":[{"line_number":194,"context_line":"will fail.  Unfortunatly this process includes the task-flow retries and the"},{"line_number":195,"context_line":"object will be created, the caller will get a 202 response, but after taskflow"},{"line_number":196,"context_line":"and the scheduler finish retries and fail to find a backend the volume status"},{"line_number":197,"context_line":"will be set to error.  It may be possible to speed this up if wee need to and"},{"line_number":198,"context_line":"put capability checks into the API layer so that we could respond immediately"},{"line_number":199,"context_line":"with an Invalid Request. We do provide an API call now that pulls capabilities"},{"line_number":200,"context_line":"form the system, so we could make that check upon receipt of the create request"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bf8cb3f7_26543bca","line":197,"range":{"start_line":197,"start_character":62,"end_line":197,"end_character":65},"updated":"2017-12-21 21:58:25.000000000","message":"like, wee wee?","commit_id":"d0b3adb071abd6a6489909007a610aa4aa18ff1f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"408c0616c9b5bd44caacb496996e6ba28b9326b8","unresolved":false,"context_lines":[{"line_number":193,"context_line":"If there are NO backends reporting `multiattach: \u003cis True\u003e` then scheduling"},{"line_number":194,"context_line":"will fail.  Unfortunatly this process includes the task-flow retries and the"},{"line_number":195,"context_line":"object will be created, the caller will get a 202 response, but after taskflow"},{"line_number":196,"context_line":"and the scheduler finish retries and fail to find a backend the volume status"},{"line_number":197,"context_line":"will be set to error.  It may be possible to speed this up if wee need to and"},{"line_number":198,"context_line":"put capability checks into the API layer so that we could respond immediately"},{"line_number":199,"context_line":"with an Invalid Request. We do provide an API call now that pulls capabilities"},{"line_number":200,"context_line":"form the system, so we could make that check upon receipt of the create request"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bf8cb3f7_8647471e","line":197,"range":{"start_line":196,"start_character":64,"end_line":197,"end_character":21},"updated":"2017-12-21 21:58:25.000000000","message":"oh nice, like NoValidHost - muwahahaha it\u0027s not just nova","commit_id":"d0b3adb071abd6a6489909007a610aa4aa18ff1f"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"8eccd446b046657e13b0a02a6d0282c9447af03b","unresolved":false,"context_lines":[{"line_number":194,"context_line":"will fail.  Unfortunatly this process includes the task-flow retries and the"},{"line_number":195,"context_line":"object will be created, the caller will get a 202 response, but after taskflow"},{"line_number":196,"context_line":"and the scheduler finish retries and fail to find a backend the volume status"},{"line_number":197,"context_line":"will be set to error.  It may be possible to speed this up if wee need to and"},{"line_number":198,"context_line":"put capability checks into the API layer so that we could respond immediately"},{"line_number":199,"context_line":"with an Invalid Request. We do provide an API call now that pulls capabilities"},{"line_number":200,"context_line":"form the system, so we could make that check upon receipt of the create request"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bf8cb3f7_66948345","line":197,"range":{"start_line":197,"start_character":62,"end_line":197,"end_character":65},"in_reply_to":"bf8cb3f7_26543bca","updated":"2017-12-21 22:08:26.000000000","message":"Done","commit_id":"d0b3adb071abd6a6489909007a610aa4aa18ff1f"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"8eccd446b046657e13b0a02a6d0282c9447af03b","unresolved":false,"context_lines":[{"line_number":193,"context_line":"If there are NO backends reporting `multiattach: \u003cis True\u003e` then scheduling"},{"line_number":194,"context_line":"will fail.  Unfortunatly this process includes the task-flow retries and the"},{"line_number":195,"context_line":"object will be created, the caller will get a 202 response, but after taskflow"},{"line_number":196,"context_line":"and the scheduler finish retries and fail to find a backend the volume status"},{"line_number":197,"context_line":"will be set to error.  It may be possible to speed this up if wee need to and"},{"line_number":198,"context_line":"put capability checks into the API layer so that we could respond immediately"},{"line_number":199,"context_line":"with an Invalid Request. We do provide an API call now that pulls capabilities"},{"line_number":200,"context_line":"form the system, so we could make that check upon receipt of the create request"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bf8cb3f7_c6af8f92","line":197,"range":{"start_line":196,"start_character":64,"end_line":197,"end_character":21},"in_reply_to":"bf8cb3f7_8647471e","updated":"2017-12-21 22:08:26.000000000","message":"Sadly we\u0027re kindred projects! :)","commit_id":"d0b3adb071abd6a6489909007a610aa4aa18ff1f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"408c0616c9b5bd44caacb496996e6ba28b9326b8","unresolved":false,"context_lines":[{"line_number":197,"context_line":"will be set to error.  It may be possible to speed this up if wee need to and"},{"line_number":198,"context_line":"put capability checks into the API layer so that we could respond immediately"},{"line_number":199,"context_line":"with an Invalid Request. We do provide an API call now that pulls capabilities"},{"line_number":200,"context_line":"form the system, so we could make that check upon receipt of the create request"},{"line_number":201,"context_line":"and make sure it\u0027s possible to fulfill the request.  It would probably be wise"},{"line_number":202,"context_line":"to cache this info based on the periodic capability reporting instead of"},{"line_number":203,"context_line":"fetching it each time."}],"source_content_type":"text/x-rst","patch_set":9,"id":"bf8cb3f7_46513fd8","line":200,"range":{"start_line":200,"start_character":0,"end_line":200,"end_character":4},"updated":"2017-12-21 21:58:25.000000000","message":"from","commit_id":"d0b3adb071abd6a6489909007a610aa4aa18ff1f"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"8eccd446b046657e13b0a02a6d0282c9447af03b","unresolved":false,"context_lines":[{"line_number":197,"context_line":"will be set to error.  It may be possible to speed this up if wee need to and"},{"line_number":198,"context_line":"put capability checks into the API layer so that we could respond immediately"},{"line_number":199,"context_line":"with an Invalid Request. We do provide an API call now that pulls capabilities"},{"line_number":200,"context_line":"form the system, so we could make that check upon receipt of the create request"},{"line_number":201,"context_line":"and make sure it\u0027s possible to fulfill the request.  It would probably be wise"},{"line_number":202,"context_line":"to cache this info based on the periodic capability reporting instead of"},{"line_number":203,"context_line":"fetching it each time."}],"source_content_type":"text/x-rst","patch_set":9,"id":"bf8cb3f7_86918755","line":200,"range":{"start_line":200,"start_character":0,"end_line":200,"end_character":4},"in_reply_to":"bf8cb3f7_46513fd8","updated":"2017-12-21 22:08:26.000000000","message":"Done","commit_id":"d0b3adb071abd6a6489909007a610aa4aa18ff1f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"408c0616c9b5bd44caacb496996e6ba28b9326b8","unresolved":false,"context_lines":[{"line_number":278,"context_line":"  https://review.openstack.org/#/c/519025/"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"Testing"},{"line_number":282,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"New unit tests will be added to test the changed code and functional testing"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bf8cb3f7_66732382","line":281,"range":{"start_line":281,"start_character":0,"end_line":281,"end_character":7},"updated":"2017-12-21 21:58:25.000000000","message":"Could also link this in:\n\nhttps://review.openstack.org/#/c/266605/","commit_id":"d0b3adb071abd6a6489909007a610aa4aa18ff1f"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"8eccd446b046657e13b0a02a6d0282c9447af03b","unresolved":false,"context_lines":[{"line_number":278,"context_line":"  https://review.openstack.org/#/c/519025/"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"Testing"},{"line_number":282,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"New unit tests will be added to test the changed code and functional testing"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bf8cb3f7_068fb72a","line":281,"range":{"start_line":281,"start_character":0,"end_line":281,"end_character":7},"in_reply_to":"bf8cb3f7_66732382","updated":"2017-12-21 22:08:26.000000000","message":"Done","commit_id":"d0b3adb071abd6a6489909007a610aa4aa18ff1f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"408c0616c9b5bd44caacb496996e6ba28b9326b8","unresolved":false,"context_lines":[{"line_number":289,"context_line":""},{"line_number":290,"context_line":"This will require updates to both deployment guides as well as end-user guides."},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"References"},{"line_number":293,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":".. [1] https://specs.openstack.org/openstack/cinder-specs/specs/ocata/add-new-attach-apis.html"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bf8cb3f7_c65eafe5","line":292,"range":{"start_line":292,"start_character":0,"end_line":292,"end_character":10},"updated":"2017-12-21 21:58:25.000000000","message":"For got link this in:\n\nhttps://specs.openstack.org/openstack/nova-specs/specs/queens/approved/cinder-volume-multi-attach.html","commit_id":"d0b3adb071abd6a6489909007a610aa4aa18ff1f"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"8eccd446b046657e13b0a02a6d0282c9447af03b","unresolved":false,"context_lines":[{"line_number":289,"context_line":""},{"line_number":290,"context_line":"This will require updates to both deployment guides as well as end-user guides."},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"References"},{"line_number":293,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":".. [1] https://specs.openstack.org/openstack/cinder-specs/specs/ocata/add-new-attach-apis.html"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bf8cb3f7_667d631b","line":292,"range":{"start_line":292,"start_character":0,"end_line":292,"end_character":10},"in_reply_to":"bf8cb3f7_c65eafe5","updated":"2017-12-21 22:08:26.000000000","message":"Done","commit_id":"d0b3adb071abd6a6489909007a610aa4aa18ff1f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"57b1bb4ba7b7e5b280841330bddaf2b36fdaf941","unresolved":false,"context_lines":[{"line_number":294,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":".. [1] https://specs.openstack.org/openstack/cinder-specs/specs/ocata/add-new-attach-apis.html"},{"line_number":297,"context_line":".. [2] https://specs.openstack.org/openstack/nova-specs/specs/queens/approved/cinder-volume-multi-attach.html"}],"source_content_type":"text/x-rst","patch_set":10,"id":"bf8cb3f7_46a93f79","line":297,"range":{"start_line":297,"start_character":3,"end_line":297,"end_character":6},"updated":"2017-12-21 22:11:55.000000000","message":"Nothing actually references this footnote so this might make the docs build fail.","commit_id":"d7872e8c8c684f8ac562e28ef2b7eb7560196c0b"}]}
