)]}'
{"specs/pike/bulk-create-volume-api.rst":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"1c718fc5bf2dcc8a0d82a7c3a602df404c6fbb49","unresolved":false,"context_lines":[{"line_number":26,"context_line":"Proposed change"},{"line_number":27,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":28,"context_line":"* A new bulk volume creation API will be added that takes multiple volumes"},{"line_number":29,"context_line":"  and their associated volume types."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"* Changes are needed in the Cinder scheduler to handle multiple volumes."},{"line_number":32,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"da36d5c6_ecfdbfb1","line":29,"range":{"start_line":29,"start_character":30,"end_line":29,"end_character":34},"updated":"2017-02-25 16:59:08.000000000","message":"So this will allow a mix of volume types, and therefore possibly a mix of volume backends? Depending on the answer to the answer below about failure and the need to rollback, I wonder if it would be simpler to just restrict this to a single volume type? Just thinking out loud for now. I need to think about this some more.","commit_id":"9cd527d19110be034ca719181ecdc8ec6caff7e9"},{"author":{"_account_id":22583,"name":"Cheng Yong Zhao","email":"zhaochy@cn.ibm.com","username":"zhaochy"},"change_message_id":"6f80ba1047783441a7b456c43221b1ffeceb1aca","unresolved":false,"context_lines":[{"line_number":26,"context_line":"Proposed change"},{"line_number":27,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":28,"context_line":"* A new bulk volume creation API will be added that takes multiple volumes"},{"line_number":29,"context_line":"  and their associated volume types."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"* Changes are needed in the Cinder scheduler to handle multiple volumes."},{"line_number":32,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"da36d5c6_192f80f7","line":29,"range":{"start_line":29,"start_character":30,"end_line":29,"end_character":34},"in_reply_to":"da36d5c6_d26b3683","updated":"2017-02-28 02:35:28.000000000","message":"+1, agree to start with single volume type support first","commit_id":"9cd527d19110be034ca719181ecdc8ec6caff7e9"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ce0b1d0a31f7449eaa2c56eb94e8b278ca1c796e","unresolved":false,"context_lines":[{"line_number":26,"context_line":"Proposed change"},{"line_number":27,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":28,"context_line":"* A new bulk volume creation API will be added that takes multiple volumes"},{"line_number":29,"context_line":"  and their associated volume types."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"* Changes are needed in the Cinder scheduler to handle multiple volumes."},{"line_number":32,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"da36d5c6_d26b3683","line":29,"range":{"start_line":29,"start_character":30,"end_line":29,"end_character":34},"in_reply_to":"da36d5c6_ecfdbfb1","updated":"2017-02-25 21:43:48.000000000","message":"The scheduler will choose one backend that supports all volume types.  I\u0027m not particular worried about the scheduler because it will be similar to the existing groups code in the scheduler.  However, taskflow in API and manager makes the code more complicated.  It\u0027s going to be difficult to share code between the handling of one volume and bulk volumes.\n\nLimiting it to a single volume type for now but designing it in a way to allow future support of multiple volume types may be a good way to start it.","commit_id":"9cd527d19110be034ca719181ecdc8ec6caff7e9"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"fc1d09ed0e9b751ea2f99093d78bfe2489a64634","unresolved":false,"context_lines":[{"line_number":28,"context_line":"* A new bulk volume creation API will be added that takes multiple volumes"},{"line_number":29,"context_line":"  and their associated volume types."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"* Changes are needed in the Cinder scheduler to handle multiple volumes."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"* Changes are needed in the Cinder volume manager to handle multiple volumes."},{"line_number":34,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"da36d5c6_c2d3c302","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":72},"updated":"2017-02-22 20:52:40.000000000","message":"Can we get here some details about how it\u0027s planned to be implemented? This is one of critical pieces IMO - scheduler has it\u0027s own performance problems, so we need to do it right.","commit_id":"9cd527d19110be034ca719181ecdc8ec6caff7e9"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ce0b1d0a31f7449eaa2c56eb94e8b278ca1c796e","unresolved":false,"context_lines":[{"line_number":28,"context_line":"* A new bulk volume creation API will be added that takes multiple volumes"},{"line_number":29,"context_line":"  and their associated volume types."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"* Changes are needed in the Cinder scheduler to handle multiple volumes."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"* Changes are needed in the Cinder volume manager to handle multiple volumes."},{"line_number":34,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"da36d5c6_f24f5a31","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":72},"in_reply_to":"da36d5c6_c2d3c302","updated":"2017-02-25 21:43:48.000000000","message":"Sure, I\u0027ll add more details.  Actually this will be very similar to what we already do to create a CG or generic volume group.  A group can have multiple volume types.  The scheduler will choose one backend that supports all volume types.","commit_id":"9cd527d19110be034ca719181ecdc8ec6caff7e9"},{"author":{"_account_id":23602,"name":"Michael Dovgal","email":"dovgalmichael@gmail.com","username":"mdovgal"},"change_message_id":"bcad99a193679b30f9f21aac75fb2636e35d2707","unresolved":false,"context_lines":[{"line_number":36,"context_line":"  driver to create multiple volumes through the backend API."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"* A default method will be provided for drivers that do not override the bulk"},{"line_number":39,"context_line":"  volume creation method. The default method will create one volume at a time"},{"line_number":40,"context_line":"  in a loop."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Alternatives"},{"line_number":43,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"da36d5c6_00096f31","line":40,"range":{"start_line":39,"start_character":26,"end_line":40,"end_character":12},"updated":"2017-02-22 11:22:36.000000000","message":"In such a case will these volume be available after the end of the creation loop or after an each creation? \nI mean, if there is a failure during chain creation, will we have rollback to the beginning state to reschedule creation to other host? I think we can have some problems because of it","commit_id":"9cd527d19110be034ca719181ecdc8ec6caff7e9"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"fc1d09ed0e9b751ea2f99093d78bfe2489a64634","unresolved":false,"context_lines":[{"line_number":36,"context_line":"  driver to create multiple volumes through the backend API."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"* A default method will be provided for drivers that do not override the bulk"},{"line_number":39,"context_line":"  volume creation method. The default method will create one volume at a time"},{"line_number":40,"context_line":"  in a loop."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Alternatives"},{"line_number":43,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"da36d5c6_22c49f5d","line":40,"range":{"start_line":39,"start_character":26,"end_line":40,"end_character":12},"in_reply_to":"da36d5c6_00096f31","updated":"2017-02-22 20:52:40.000000000","message":"+1, we need failures modes in the spec, so we\u0027ll have documented what\u0027s the outcome that user can expect from the API.","commit_id":"9cd527d19110be034ca719181ecdc8ec6caff7e9"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ce0b1d0a31f7449eaa2c56eb94e8b278ca1c796e","unresolved":false,"context_lines":[{"line_number":36,"context_line":"  driver to create multiple volumes through the backend API."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"* A default method will be provided for drivers that do not override the bulk"},{"line_number":39,"context_line":"  volume creation method. The default method will create one volume at a time"},{"line_number":40,"context_line":"  in a loop."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Alternatives"},{"line_number":43,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"da36d5c6_b2f7a2d1","line":40,"range":{"start_line":39,"start_character":26,"end_line":40,"end_character":12},"in_reply_to":"da36d5c6_22c49f5d","updated":"2017-02-25 21:43:48.000000000","message":"This is definitely something we need to think through.  All volumes should be created on the same host, so we can\u0027t allow it to be retried and end up on a different host.  The volume statuses should not become available until all volumes are created.","commit_id":"9cd527d19110be034ca719181ecdc8ec6caff7e9"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"1c718fc5bf2dcc8a0d82a7c3a602df404c6fbb49","unresolved":false,"context_lines":[{"line_number":38,"context_line":"* A default method will be provided for drivers that do not override the bulk"},{"line_number":39,"context_line":"  volume creation method. The default method will create one volume at a time"},{"line_number":40,"context_line":"  in a loop."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Alternatives"},{"line_number":43,"context_line":"------------"},{"line_number":44,"context_line":"Create one volume at a time in a loop. This does not address the performance"}],"source_content_type":"text/x-rst","patch_set":3,"id":"da36d5c6_ecebffd9","line":41,"updated":"2017-02-25 16:59:08.000000000","message":"I\u0027m assuming we will do an up front quota check for all volumes before proceeding.","commit_id":"9cd527d19110be034ca719181ecdc8ec6caff7e9"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ce0b1d0a31f7449eaa2c56eb94e8b278ca1c796e","unresolved":false,"context_lines":[{"line_number":38,"context_line":"* A default method will be provided for drivers that do not override the bulk"},{"line_number":39,"context_line":"  volume creation method. The default method will create one volume at a time"},{"line_number":40,"context_line":"  in a loop."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Alternatives"},{"line_number":43,"context_line":"------------"},{"line_number":44,"context_line":"Create one volume at a time in a loop. This does not address the performance"}],"source_content_type":"text/x-rst","patch_set":3,"id":"da36d5c6_d20256b3","line":41,"in_reply_to":"da36d5c6_ecebffd9","updated":"2017-02-25 21:43:48.000000000","message":"Yes.","commit_id":"9cd527d19110be034ca719181ecdc8ec6caff7e9"},{"author":{"_account_id":23602,"name":"Michael Dovgal","email":"dovgalmichael@gmail.com","username":"mdovgal"},"change_message_id":"bcad99a193679b30f9f21aac75fb2636e35d2707","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Open questions:"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"* Should volume manager allow reschedule if it fails to create some or all"},{"line_number":112,"context_line":"  of the volumes?"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"* How to handle partial failure?"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Security impact"},{"line_number":117,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"da36d5c6_00c7af45","line":114,"range":{"start_line":111,"start_character":0,"end_line":114,"end_character":32},"updated":"2017-02-22 11:22:36.000000000","message":"Agree with Jay. \nAnd I think without at least a suggestion how to handle failures this spec is in an unfinished state.","commit_id":"9cd527d19110be034ca719181ecdc8ec6caff7e9"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"7d1966c310210a7847284580899f0e8175742ab3","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Open questions:"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"* Should volume manager allow reschedule if it fails to create some or all"},{"line_number":112,"context_line":"  of the volumes?"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"* How to handle partial failure?"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Security impact"},{"line_number":117,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"da36d5c6_d317724f","line":114,"range":{"start_line":111,"start_character":0,"end_line":114,"end_character":32},"updated":"2017-02-20 19:43:01.000000000","message":"So, I think this is the scary part of this proposal.  We need to decide how to handle failures with both the bulk create where the backend is creating the volumes simultaneously as well as handling failures when it is during serial creation.  I think the end result needs to be consistent.","commit_id":"9cd527d19110be034ca719181ecdc8ec6caff7e9"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"1c718fc5bf2dcc8a0d82a7c3a602df404c6fbb49","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Open questions:"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"* Should volume manager allow reschedule if it fails to create some or all"},{"line_number":112,"context_line":"  of the volumes?"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"* How to handle partial failure?"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Security impact"},{"line_number":117,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"da36d5c6_4cdc0b46","line":114,"range":{"start_line":111,"start_character":0,"end_line":114,"end_character":32},"in_reply_to":"da36d5c6_00c7af45","updated":"2017-02-25 16:59:08.000000000","message":"+1\n\nInitial thought is I think we need to rollback and delete any successfully created volumes prior to the failure.","commit_id":"9cd527d19110be034ca719181ecdc8ec6caff7e9"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ce0b1d0a31f7449eaa2c56eb94e8b278ca1c796e","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Open questions:"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"* Should volume manager allow reschedule if it fails to create some or all"},{"line_number":112,"context_line":"  of the volumes?"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"* How to handle partial failure?"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Security impact"},{"line_number":117,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"da36d5c6_12d6ae27","line":114,"range":{"start_line":111,"start_character":0,"end_line":114,"end_character":32},"in_reply_to":"da36d5c6_4cdc0b46","updated":"2017-02-25 21:43:48.000000000","message":"All of your suggestions make sense.  I think it is better not to allow retries.  If we fail to create one volume, the whole operation should fail and created volumes should be deleted.","commit_id":"9cd527d19110be034ca719181ecdc8ec6caff7e9"},{"author":{"_account_id":20140,"name":"Karthik Prabhu Vinod","email":"karthik.prabhu.vinod@intel.com","username":"kprabhuv"},"change_message_id":"5fe6f0f8975a3a3617f504d81b7898399d294615","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"1a1ced50_ed548b55","updated":"2017-03-17 20:59:43.000000000","message":"Is there no need for a config option in cinder.conf  like support_buk_create..so that we can pull that up in the manager code to check and decide whether to create volumes sequentially or in bulk?","commit_id":"e62251b8f6916b699f9d2b29d0632e0c03ff49a6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7fe94b960eac689916e8d49dc5fbb8c0e85baa9e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"1a1ced50_cc903f46","in_reply_to":"1a1ced50_ed548b55","updated":"2017-03-21 21:12:08.000000000","message":"For drivers that can support bulk create, there\u0027s no benefit of doing it sequentially.  For other drivers that cannot support bulk create, there\u0027s no choice.","commit_id":"e62251b8f6916b699f9d2b29d0632e0c03ff49a6"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"b4379ca0076eaa10eb703237885048bd662c18a0","unresolved":false,"context_lines":[{"line_number":18,"context_line":"a bulk volume creation API will improve the performance for them. This spec"},{"line_number":19,"context_line":"proposes to add a new volume creation API that allows multiple volumes to"},{"line_number":20,"context_line":"be created in one API call."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Use Cases"},{"line_number":23,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":24,"context_line":"* Allows the user to create multiple volumes in one step."}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ff52f3f_5d913c52","line":21,"updated":"2017-04-13 14:36:38.000000000","message":"I don\u0027t see why it\u0027s necessary to add a bulk-volume create API to handle backends that can\u0027t create volumes efficiently.  It really doesn\u0027t fit into our normal API model, and there are easier ways to accomplish this:\n\nBackends that have issues creating volumes efficiently can solve this by pre-creating volumes and managing a cache in the driver.  i.e. when a volume creation request is accepted, do 10 of the slow create operations (that are faster as a batch), return one volume, and save the other 9 for later requests.","commit_id":"e62251b8f6916b699f9d2b29d0632e0c03ff49a6"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"2c4fcd1006d105ff6ae7e02ca595417d880033fc","unresolved":false,"context_lines":[{"line_number":18,"context_line":"a bulk volume creation API will improve the performance for them. This spec"},{"line_number":19,"context_line":"proposes to add a new volume creation API that allows multiple volumes to"},{"line_number":20,"context_line":"be created in one API call."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Use Cases"},{"line_number":23,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":24,"context_line":"* Allows the user to create multiple volumes in one step."}],"source_content_type":"text/x-rst","patch_set":4,"id":"5ff73747_d6283835","line":21,"in_reply_to":"9ff52f3f_5d913c52","updated":"2017-04-26 15:26:45.000000000","message":"Part of this isn\u0027t about the backends though.  If someone wants to create 1000 volumes today, that\u0027s 1000 calls to the API, when it could be one.   \n\nNova has the ability to create N VMs in it\u0027s API.   \nhttps://github.com/openstack/python-novaclient/blob/master/novaclient/v2/shell.py#L527-L532","commit_id":"e62251b8f6916b699f9d2b29d0632e0c03ff49a6"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"b4379ca0076eaa10eb703237885048bd662c18a0","unresolved":false,"context_lines":[{"line_number":60,"context_line":"Alternatives"},{"line_number":61,"context_line":"------------"},{"line_number":62,"context_line":"Create one volume at a time in a loop. This does not address the performance"},{"line_number":63,"context_line":"issues for the backends that support bulk volume creation."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Data model impact"},{"line_number":66,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ff52f3f_3d77983d","line":63,"updated":"2017-04-13 14:36:38.000000000","message":"Alternative: batch things in the driver rather than requiring a different API for this.","commit_id":"e62251b8f6916b699f9d2b29d0632e0c03ff49a6"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"5d847179e552a46e9da26c1d5c94e0771120c651","unresolved":false,"context_lines":[{"line_number":78,"context_line":"* JSON schema definition for V3::"},{"line_number":79,"context_line":"{"},{"line_number":80,"context_line":"    \"volumes\":"},{"line_number":81,"context_line":"    ["},{"line_number":82,"context_line":"        {"},{"line_number":83,"context_line":"            \"display_name\": \"vol-001\","},{"line_number":84,"context_line":"            \"display_description\": \"Volume 1.\","}],"source_content_type":"text/x-rst","patch_set":4,"id":"df140735_49517662","line":81,"updated":"2017-06-07 10:02:40.000000000","message":"This will create 2 different volumes. It\u0027s not obviously from the spec. I thought that new API will allow to create N similar volumes with one size and, name, description and volume type","commit_id":"e62251b8f6916b699f9d2b29d0632e0c03ff49a6"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"5d847179e552a46e9da26c1d5c94e0771120c651","unresolved":false,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"New driver interface:"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"def create_volumes(self, volumes)"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"* volumes is a list of volume objects."},{"line_number":126,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"df140735_c9ca2619","line":123,"updated":"2017-06-07 10:02:40.000000000","message":"Why not just to add \u0027count\u0027 param?","commit_id":"e62251b8f6916b699f9d2b29d0632e0c03ff49a6"}]}
