)]}'
{"specs/queens/bulk-create-vol-in-create-group-api.rst":[{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"23cd7cb8a3c08e56bdfcc5f4de1557c53b485485","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Proposed change"},{"line_number":25,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":26,"context_line":"* A amended create group API will allow bulk volume creation "},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"* Quota will be checked before the request is sent to the scheduler."},{"line_number":29,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_287a75f0","line":26,"range":{"start_line":26,"start_character":60,"end_line":26,"end_character":61},"updated":"2017-11-23 07:16:43.000000000","message":"remove.","commit_id":"f0d83e8fb8252259152f64e7e71f039d15e187fa"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"9539a752bb2df9755df2e0f076f320c383b8e49d","unresolved":false,"context_lines":[{"line_number":39,"context_line":"* The default behavior is creating each volume one after another by calling"},{"line_number":40,"context_line":"  into create volume"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"* Generally, in drivers that support bulk creates, either all or no volumes"},{"line_number":43,"context_line":"  will be created. However, as we still call create volume there still may be"},{"line_number":44,"context_line":"  failures in persisting each volume record. Also, if we support bootable "},{"line_number":45,"context_line":"  volumes errors could occur on the attach/detach processes.  In these"},{"line_number":46,"context_line":"  scenarios we will not rollback all volumes but we must ensure quotas are"},{"line_number":47,"context_line":"  correct, if only a portion of volumes succeed."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"* Rescheduling will not be allowed."},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_8e0a2a23","line":47,"range":{"start_line":42,"start_character":0,"end_line":47,"end_character":48},"updated":"2017-11-06 18:26:49.000000000","message":"Note that this API has to work for drivers that don\u0027t have native support for bulk creation, so the failure semantics have to be clearly defined for this case. The failure semantics are what has caused this proposal to get shot down in the past.","commit_id":"f0d83e8fb8252259152f64e7e71f039d15e187fa"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"c71bb38452170cf7b667432c181944f58fd5425c","unresolved":false,"context_lines":[{"line_number":39,"context_line":"* The default behavior is creating each volume one after another by calling"},{"line_number":40,"context_line":"  into create volume"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"* Generally, in drivers that support bulk creates, either all or no volumes"},{"line_number":43,"context_line":"  will be created. However, as we still call create volume there still may be"},{"line_number":44,"context_line":"  failures in persisting each volume record. Also, if we support bootable "},{"line_number":45,"context_line":"  volumes errors could occur on the attach/detach processes.  In these"},{"line_number":46,"context_line":"  scenarios we will not rollback all volumes but we must ensure quotas are"},{"line_number":47,"context_line":"  correct, if only a portion of volumes succeed."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"* Rescheduling will not be allowed."},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f485f77_96477f1e","line":47,"range":{"start_line":42,"start_character":0,"end_line":47,"end_character":48},"in_reply_to":"3f4b6375_8e0a2a23","updated":"2017-11-13 12:26:33.000000000","message":"Thanks Duncan, I will revisit the scenario where a driver does not have support for bulk creation as it has not been clearly laid out.","commit_id":"f0d83e8fb8252259152f64e7e71f039d15e187fa"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"8228b9a37ceeeef1b8528bbb4ca7155eac904058","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"* Rescheduling will not be allowed."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"* We can support bootable volumes but each volume is attached separately."},{"line_number":52,"context_line":"  Ideally we would like Nova to support multiple attaches also but this is a"},{"line_number":53,"context_line":"  future goal."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"* Because we are leveraging Generic Volume Group functionality we also "},{"line_number":56,"context_line":"  get bulk deletes if the driver supports it."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_805b12f4","line":53,"range":{"start_line":51,"start_character":0,"end_line":53,"end_character":14},"updated":"2017-10-26 14:27:31.000000000","message":"At the PTG we agreed that there should be buy-in from Nova to support the bulk attach.  So, I think this should be updated accordingly and we should also have a reference to the spec proposed to Nova for that functionality.","commit_id":"f0d83e8fb8252259152f64e7e71f039d15e187fa"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"07b0fbfeac0f4b3d18d6629efe36782fbd267432","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"* Rescheduling will not be allowed."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"* We can support bootable volumes but each volume is attached separately."},{"line_number":52,"context_line":"  Ideally we would like Nova to support multiple attaches also but this is a"},{"line_number":53,"context_line":"  future goal."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"* Because we are leveraging Generic Volume Group functionality we also "},{"line_number":56,"context_line":"  get bulk deletes if the driver supports it."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_c6bda2b7","line":53,"range":{"start_line":51,"start_character":0,"end_line":53,"end_character":14},"in_reply_to":"3f4b6375_805b12f4","updated":"2017-10-26 15:37:50.000000000","message":"I will work on trying to get someone from nova to collaborate with me on this effort. Any suggestions welcome.","commit_id":"f0d83e8fb8252259152f64e7e71f039d15e187fa"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"c71bb38452170cf7b667432c181944f58fd5425c","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"* Rescheduling will not be allowed."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"* We can support bootable volumes but each volume is attached separately."},{"line_number":52,"context_line":"  Ideally we would like Nova to support multiple attaches also but this is a"},{"line_number":53,"context_line":"  future goal."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"* Because we are leveraging Generic Volume Group functionality we also "},{"line_number":56,"context_line":"  get bulk deletes if the driver supports it."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f485f77_96241f0f","line":53,"range":{"start_line":51,"start_character":0,"end_line":53,"end_character":14},"in_reply_to":"3f4b6375_8615833f","updated":"2017-11-13 12:26:33.000000000","message":"2. [MR] What is \"the driver\" here? The volume driver?\n\n[HW] - the driver supporting bulk creates, e.g. vmax driver","commit_id":"f0d83e8fb8252259152f64e7e71f039d15e187fa"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"b46bb8957a13ab0d74bb0a1bdaa567332ba0b58e","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"* Rescheduling will not be allowed."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"* We can support bootable volumes but each volume is attached separately."},{"line_number":52,"context_line":"  Ideally we would like Nova to support multiple attaches also but this is a"},{"line_number":53,"context_line":"  future goal."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"* Because we are leveraging Generic Volume Group functionality we also "},{"line_number":56,"context_line":"  get bulk deletes if the driver supports it."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_bf9d8758","line":53,"range":{"start_line":51,"start_character":0,"end_line":53,"end_character":14},"in_reply_to":"3f4b6375_be90ff96","updated":"2017-11-01 08:49:20.000000000","message":"Hi Matt,\nThanks so much for your feedback. They would be root volumes for separate servers. In my PoC, I think what you have suggested above is what I have done and it seems to work quite well.  \n1. I create the volumes in one call in create group\n2. I call create volume for each device, but it returns from the driver as the logic sees that is already created.  \n3. If it has an image id, then it proceeds as it has always done and creates a bootable volume.\n\nIt was decided at the PTG that this functionality is not enough and we should also have to support multiple attaches in one call. If we could support multiple attaches then the design I have proposed in steps 1.to 3. above would have to change as it reuses create volume.","commit_id":"f0d83e8fb8252259152f64e7e71f039d15e187fa"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2701c6fb1f73e0c581eb171d10d4b6641eb77f05","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"* Rescheduling will not be allowed."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"* We can support bootable volumes but each volume is attached separately."},{"line_number":52,"context_line":"  Ideally we would like Nova to support multiple attaches also but this is a"},{"line_number":53,"context_line":"  future goal."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"* Because we are leveraging Generic Volume Group functionality we also "},{"line_number":56,"context_line":"  get bulk deletes if the driver supports it."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_8615833f","line":53,"range":{"start_line":51,"start_character":0,"end_line":53,"end_character":14},"in_reply_to":"3f4b6375_bf9d8758","updated":"2017-11-06 01:09:41.000000000","message":"\u003e 2. I call create volume for each device, but it returns from the driver as the logic sees that is already created.\n\nWhat is \"the driver\" here? The volume driver?\n\n\u003e 3. If it has an image id, then it proceeds as it has always done and creates a bootable volume.\n\nI\u0027m saying we don\u0027t want to rely on this. Create x bootable image-backed volumes in Cinder first, then provide each separate volume_id when creating servers in nova. Then nova won\u0027t create a new volume, it will re-use the ones provided to the compute API.\n\nThe issue I can see with this is I don\u0027t think nova distinguishes between separate block_device_mapping_v2 entries in a multi-create API call, so Nova would try to attach all of those same BDM entries to the x number of servers in the server multi-create call, which isn\u0027t going to work. You could iterate client-side over the created volumes and create one server per volume. That pushes the orchestration to the client (or some services that sits above nova and cinder, like heat), but I don\u0027t have a problem with that given the nova project team\u0027s stance on providing the APIs to perform a single task, not baking native orchestration into nova itself.\n\nKeep in mind that boot from volume and server multi-create are two quite complicated areas of code within nova already, so building additional complexity into that existing debt is not something I think the nova team is going to agree with anytime soon.","commit_id":"f0d83e8fb8252259152f64e7e71f039d15e187fa"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fb6b2b0a7ee82fb171f9eefd867b4c8787856003","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"* Rescheduling will not be allowed."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"* We can support bootable volumes but each volume is attached separately."},{"line_number":52,"context_line":"  Ideally we would like Nova to support multiple attaches also but this is a"},{"line_number":53,"context_line":"  future goal."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"* Because we are leveraging Generic Volume Group functionality we also "},{"line_number":56,"context_line":"  get bulk deletes if the driver supports it."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_be90ff96","line":53,"range":{"start_line":51,"start_character":0,"end_line":53,"end_character":14},"in_reply_to":"3f4b6375_c6bda2b7","updated":"2017-10-31 15:45:03.000000000","message":"https://docs.openstack.org/nova/latest/contributor/project-scope.html#api-scope\n\nWhy can\u0027t you bulk create the volumes in cinder, and then provide those volume IDs as separate entries to the block_device_mapping_v2 structure in the compute server create API request? Would these all be root volumes for separate servers, or just one is a root volume on the server instance and the rest are just additional volumes for the same instance?","commit_id":"f0d83e8fb8252259152f64e7e71f039d15e187fa"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"9539a752bb2df9755df2e0f076f320c383b8e49d","unresolved":false,"context_lines":[{"line_number":52,"context_line":"  Ideally we would like Nova to support multiple attaches also but this is a"},{"line_number":53,"context_line":"  future goal."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"* Because we are leveraging Generic Volume Group functionality we also "},{"line_number":56,"context_line":"  get bulk deletes if the driver supports it."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_492e6c8c","line":56,"range":{"start_line":55,"start_character":2,"end_line":56,"end_character":45},"updated":"2017-11-06 18:26:49.000000000","message":"Again, the API should work independent of driver support. Backed-dependant APIs are a curse for anybody trying to develop cross-cloud apps, appstore apps, scripted deployments and the like","commit_id":"f0d83e8fb8252259152f64e7e71f039d15e187fa"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"c71bb38452170cf7b667432c181944f58fd5425c","unresolved":false,"context_lines":[{"line_number":52,"context_line":"  Ideally we would like Nova to support multiple attaches also but this is a"},{"line_number":53,"context_line":"  future goal."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"* Because we are leveraging Generic Volume Group functionality we also "},{"line_number":56,"context_line":"  get bulk deletes if the driver supports it."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f485f77_564c67c6","line":56,"range":{"start_line":55,"start_character":2,"end_line":56,"end_character":45},"in_reply_to":"3f4b6375_492e6c8c","updated":"2017-11-13 12:26:33.000000000","message":"Generic Volume Group feature handles drivers that do not support consistent groups, we just leverage this code.  If bulk deletes are not supported, then volumes get deleted one by one.","commit_id":"f0d83e8fb8252259152f64e7e71f039d15e187fa"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"8228b9a37ceeeef1b8528bbb4ca7155eac904058","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Alternatives"},{"line_number":60,"context_line":"------------"},{"line_number":61,"context_line":"None at this time"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Data model impact"},{"line_number":64,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_5a062822","line":61,"range":{"start_line":61,"start_character":0,"end_line":61,"end_character":17},"updated":"2017-10-26 14:27:31.000000000","message":"The current solution is just to have external scripting do the creates, right?","commit_id":"f0d83e8fb8252259152f64e7e71f039d15e187fa"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"c912b5018c7f138bb10ecaad327de92d97f71aa4","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Alternatives"},{"line_number":60,"context_line":"------------"},{"line_number":61,"context_line":"None at this time"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Data model impact"},{"line_number":64,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_62befaae","line":61,"updated":"2017-11-04 22:46:11.000000000","message":"The point jay is trying to make is that is an alternative solution if the spec wasn\u0027t accepted.","commit_id":"f0d83e8fb8252259152f64e7e71f039d15e187fa"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"07b0fbfeac0f4b3d18d6629efe36782fbd267432","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Alternatives"},{"line_number":60,"context_line":"------------"},{"line_number":61,"context_line":"None at this time"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Data model impact"},{"line_number":64,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_26c4763f","line":61,"range":{"start_line":61,"start_character":0,"end_line":61,"end_character":17},"in_reply_to":"3f4b6375_5a062822","updated":"2017-10-26 15:37:50.000000000","message":"We do not have a current solution.  Volumes are created one after another.","commit_id":"f0d83e8fb8252259152f64e7e71f039d15e187fa"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"c71bb38452170cf7b667432c181944f58fd5425c","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Alternatives"},{"line_number":60,"context_line":"------------"},{"line_number":61,"context_line":"None at this time"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Data model impact"},{"line_number":64,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f485f77_d63f37d4","line":61,"in_reply_to":"3f4b6375_62befaae","updated":"2017-11-13 12:26:33.000000000","message":"Hi Mike,\nApologies for the confusion, at this point in time we do not have an alternative solution. In a previous spec proposed by Xing Yang, there was a suggestion about pre-creating volumes using the bulk create command(outside of OpenStack) and then \"managing\" them into cinder. While this might be marginally faster than creating volumes one by one, it still requires x API calls, when ideally we would like just one as is proposed by this spec.","commit_id":"f0d83e8fb8252259152f64e7e71f039d15e187fa"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"c912b5018c7f138bb10ecaad327de92d97f71aa4","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Data model impact"},{"line_number":64,"context_line":"-----------------"},{"line_number":65,"context_line":"New Bulk Create Table of key value pairs "},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_42df7e0c","line":65,"updated":"2017-11-04 22:46:11.000000000","message":"Please take the time and do this right. You can do a desc on your table once designed.","commit_id":"f0d83e8fb8252259152f64e7e71f039d15e187fa"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"c71bb38452170cf7b667432c181944f58fd5425c","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Data model impact"},{"line_number":64,"context_line":"-----------------"},{"line_number":65,"context_line":"New Bulk Create Table of key value pairs "},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f485f77_9170a974","line":65,"in_reply_to":"3f4b6375_42df7e0c","updated":"2017-11-13 12:26:33.000000000","message":"Hi Mike,\nThank you for the feedback, any suggestions to improve this spec most welcome.\n\n\nmysql\u003e desc group_bulk_create;\n+------------+--------------+------+-----+---------+----------------+\n| Field      | Type         | Null | Key | Default | Extra          |\n+------------+--------------+------+-----+---------+----------------+\n| created_at | datetime     | YES  |     | NULL    |                |\n| updated_at | datetime     | YES  |     | NULL    |                |\n| deleted_at | datetime     | YES  |     | NULL    |                |\n| deleted    | tinyint(1)   | YES  |     | NULL    |                |\n| id         | int(11)      | NO   | PRI | NULL    | auto_increment |\n| group_id   | varchar(36)  | NO   | MUL | NULL    |                |\n| key        | varchar(255) | YES  |     | NULL    |                |\n| value      | varchar(255) | YES  |     | NULL    |                |\n+------------+--------------+------+-----+---------+----------------+\n\nThe key/value pairs would be the following\n\n+--------------+--------------+\n| Key          | Value        | \n+--------------+--------------+\n| volume_count | 30           |\n| volume_size  | 10           |\n| volume_type  | my_vol_type  |\n| image_id     | \u003cimage_uuid\u003e |\n+--------------+--------------+\n\nUSAGE NON BOOTABLE:\n$cinder group-create --name my_group my_group_type volumetype1, volumetype2 –bulk-create volume_count\u003d30volume_size\u003d13 volume_type\u003dvolumetype1\n\nUSAGE BOOTABLE:\n$cinder group-create --name my_group my_group_type volumetype1, volumetype2 –bulk-create volume_count\u003d30volume_size\u003d13 volume_type\u003dvolumetype1 image_id\u003d\u003cimageUuid\u003e","commit_id":"f0d83e8fb8252259152f64e7e71f039d15e187fa"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"9539a752bb2df9755df2e0f076f320c383b8e49d","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                \"name\": \"my_group\","},{"line_number":83,"context_line":"                \"description\": \"my group description\","},{"line_number":84,"context_line":"                \"group_type\": group_type_uuid,"},{"line_number":85,"context_line":"                \"volume_types\": [volume_type1_uuid, volume_type2_uuid, ...],"},{"line_number":86,"context_line":"                \"bulk_create\": {\"key1\": \"value1\", \"key2\": \"value2\", ...}"},{"line_number":87,"context_line":"                \"availability_zone\": \"az1\""},{"line_number":88,"context_line":"            },"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_8966a4ec","line":85,"range":{"start_line":85,"start_character":0,"end_line":85,"end_character":76},"updated":"2017-11-06 18:26:49.000000000","message":"Why a list of volume types? Are you suggesting that one request could cause volumes of multiple types to be created? The text below suggests not, so I\u0027m confused","commit_id":"f0d83e8fb8252259152f64e7e71f039d15e187fa"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"c71bb38452170cf7b667432c181944f58fd5425c","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                \"name\": \"my_group\","},{"line_number":83,"context_line":"                \"description\": \"my group description\","},{"line_number":84,"context_line":"                \"group_type\": group_type_uuid,"},{"line_number":85,"context_line":"                \"volume_types\": [volume_type1_uuid, volume_type2_uuid, ...],"},{"line_number":86,"context_line":"                \"bulk_create\": {\"key1\": \"value1\", \"key2\": \"value2\", ...}"},{"line_number":87,"context_line":"                \"availability_zone\": \"az1\""},{"line_number":88,"context_line":"            },"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f485f77_d113c10c","line":85,"range":{"start_line":85,"start_character":0,"end_line":85,"end_character":76},"in_reply_to":"3f4b6375_8966a4ec","updated":"2017-11-13 12:26:33.000000000","message":"This is in the existing create group API","commit_id":"f0d83e8fb8252259152f64e7e71f039d15e187fa"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"9539a752bb2df9755df2e0f076f320c383b8e49d","unresolved":false,"context_lines":[{"line_number":83,"context_line":"                \"description\": \"my group description\","},{"line_number":84,"context_line":"                \"group_type\": group_type_uuid,"},{"line_number":85,"context_line":"                \"volume_types\": [volume_type1_uuid, volume_type2_uuid, ...],"},{"line_number":86,"context_line":"                \"bulk_create\": {\"key1\": \"value1\", \"key2\": \"value2\", ...}"},{"line_number":87,"context_line":"                \"availability_zone\": \"az1\""},{"line_number":88,"context_line":"            },"},{"line_number":89,"context_line":"    }"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_49b1cc43","line":86,"range":{"start_line":86,"start_character":16,"end_line":86,"end_character":72},"updated":"2017-11-06 18:26:49.000000000","message":"What are these k/v pairs representing?","commit_id":"f0d83e8fb8252259152f64e7e71f039d15e187fa"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"c71bb38452170cf7b667432c181944f58fd5425c","unresolved":false,"context_lines":[{"line_number":83,"context_line":"                \"description\": \"my group description\","},{"line_number":84,"context_line":"                \"group_type\": group_type_uuid,"},{"line_number":85,"context_line":"                \"volume_types\": [volume_type1_uuid, volume_type2_uuid, ...],"},{"line_number":86,"context_line":"                \"bulk_create\": {\"key1\": \"value1\", \"key2\": \"value2\", ...}"},{"line_number":87,"context_line":"                \"availability_zone\": \"az1\""},{"line_number":88,"context_line":"            },"},{"line_number":89,"context_line":"    }"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f485f77_91f549ce","line":86,"range":{"start_line":86,"start_character":16,"end_line":86,"end_character":72},"in_reply_to":"3f4b6375_49b1cc43","updated":"2017-11-13 12:26:33.000000000","message":"+--------------+--------------+\n| Key          | Value        | \n+--------------+--------------+\n| volume_count | 30           |\n| volume_size  | 10           |\n| volume_type  | my_vol_type  |\n| image_id     | \u003cimage_uuid\u003e |\n+--------------+--------------+","commit_id":"f0d83e8fb8252259152f64e7e71f039d15e187fa"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"c912b5018c7f138bb10ecaad327de92d97f71aa4","unresolved":false,"context_lines":[{"line_number":127,"context_line":"* How do we best integrate with the scheduler?"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* Is it ok that we have to remove the volumes from the GVG before they "},{"line_number":130,"context_line":"  can be deleted?"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Security impact"},{"line_number":133,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_22e242d6","line":130,"updated":"2017-11-04 22:46:11.000000000","message":"Please include potential errors.","commit_id":"f0d83e8fb8252259152f64e7e71f039d15e187fa"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"1c97975658fdd51b3606f0070b7d2469bb37fd30","unresolved":false,"context_lines":[{"line_number":127,"context_line":"* How do we best integrate with the scheduler?"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* Is it ok that we have to remove the volumes from the GVG before they "},{"line_number":130,"context_line":"  can be deleted?"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Security impact"},{"line_number":133,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f485f77_b194c545","line":130,"in_reply_to":"3f4b6375_22e242d6","updated":"2017-11-13 12:34:36.000000000","message":"In the Generic Volume Group feature, a volume must first be removed from the group(consistent or non consistent) before it can be deleted. This is a restriction we must live with if creating volumes in a GVG.","commit_id":"f0d83e8fb8252259152f64e7e71f039d15e187fa"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"c912b5018c7f138bb10ecaad327de92d97f71aa4","unresolved":false,"context_lines":[{"line_number":136,"context_line":"Notifications impact"},{"line_number":137,"context_line":"--------------------"},{"line_number":138,"context_line":"There will be notifications when multiple volumes are created using the"},{"line_number":139,"context_line":"new bulk creation mechanism."},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"Other end user impact"},{"line_number":142,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_02e506dc","line":139,"updated":"2017-11-04 22:46:11.000000000","message":"describe more of what these notifications will look like for reference.","commit_id":"f0d83e8fb8252259152f64e7e71f039d15e187fa"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"9539a752bb2df9755df2e0f076f320c383b8e49d","unresolved":false,"context_lines":[{"line_number":136,"context_line":"Notifications impact"},{"line_number":137,"context_line":"--------------------"},{"line_number":138,"context_line":"There will be notifications when multiple volumes are created using the"},{"line_number":139,"context_line":"new bulk creation mechanism."},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"Other end user impact"},{"line_number":142,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_e9c998ab","line":139,"in_reply_to":"3f4b6375_02e506dc","updated":"2017-11-06 18:26:49.000000000","message":"Won\u0027t they look like every other notification? I can\u0027t find a single spec that finely details the notification.","commit_id":"f0d83e8fb8252259152f64e7e71f039d15e187fa"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"c912b5018c7f138bb10ecaad327de92d97f71aa4","unresolved":false,"context_lines":[{"line_number":153,"context_line":"Developer impact"},{"line_number":154,"context_line":"----------------"},{"line_number":155,"context_line":"Driver maintainers should check their backends to see if they can benefit"},{"line_number":156,"context_line":"from implementing the bulk volume creation in the create group API."},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"Implementation"},{"line_number":159,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_e2e78ae2","line":156,"updated":"2017-11-04 22:46:11.000000000","message":"SDK developers also have to work with these changes once introduced into clients.","commit_id":"f0d83e8fb8252259152f64e7e71f039d15e187fa"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"c912b5018c7f138bb10ecaad327de92d97f71aa4","unresolved":false,"context_lines":[{"line_number":161,"context_line":"Assignee(s)"},{"line_number":162,"context_line":"-----------"},{"line_number":163,"context_line":"Primary assignee:"},{"line_number":164,"context_line":"  TBD"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"Secondary assignee:"},{"line_number":167,"context_line":"  TBD"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_c2d24e00","line":164,"updated":"2017-11-04 22:46:11.000000000","message":"If no one is ready to do the work, likely won\u0027t happen. Would like to see this filled out before approval.","commit_id":"f0d83e8fb8252259152f64e7e71f039d15e187fa"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"c912b5018c7f138bb10ecaad327de92d97f71aa4","unresolved":false,"context_lines":[{"line_number":167,"context_line":"  TBD"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"Work Items"},{"line_number":170,"context_line":"----------"},{"line_number":171,"context_line":"* Implement amended create group API that supports bulk volume creation."},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"* Implement the scheduler changes to handle bulk volume creation within"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f4b6375_a2cd125e","line":170,"updated":"2017-11-04 22:46:11.000000000","message":"Please include work items for clients. This includes cinder client and openstack client now if I\u0027m not mistaken.","commit_id":"f0d83e8fb8252259152f64e7e71f039d15e187fa"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"182359d2c19c12f3c423d81fccfc23c8525fb5dd","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Alternatives"},{"line_number":79,"context_line":"------------"},{"line_number":80,"context_line":"A possible alternative could be pre-creating volumes using the bulk create"},{"line_number":81,"context_line":"command(outside of OpenStack) and then \"managing\" them into cinder. While"},{"line_number":82,"context_line":"this might be marginally faster than creating volumes one by one, it still"},{"line_number":83,"context_line":"requires x API calls, when ideally we would like just one as is proposed"},{"line_number":84,"context_line":"by this spec."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Data model impact"},{"line_number":87,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f485f77_dab10c49","line":84,"range":{"start_line":80,"start_character":0,"end_line":84,"end_character":13},"updated":"2017-11-17 15:46:17.000000000","message":"Also we have the alternative of just creating volumes using scripting repeatedly calling to Cinder.","commit_id":"c9d1a39c3d8116e066e7f8f3a553e1980fd648cf"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"bf812a7db165cac1275188bc8844d45bf97295b0","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Data model impact"},{"line_number":87,"context_line":"-----------------"},{"line_number":88,"context_line":"New Bulk Create Table of key value pairs."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"group_bulk_create::"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"   +------------+--------------+------+-----+---------+----------------+"},{"line_number":93,"context_line":"   | Field      | Type         | Null | Key | Default | Extra          |"},{"line_number":94,"context_line":"   +------------+--------------+------+-----+---------+----------------+"},{"line_number":95,"context_line":"   | created_at | datetime     | YES  |     | NULL    |                |"},{"line_number":96,"context_line":"   | updated_at | datetime     | YES  |     | NULL    |                |"},{"line_number":97,"context_line":"   | deleted_at | datetime     | YES  |     | NULL    |                |"},{"line_number":98,"context_line":"   | deleted    | tinyint(1)   | YES  |     | NULL    |                |"},{"line_number":99,"context_line":"   | id         | int(11)      | NO   | PRI | NULL    | auto_increment |"},{"line_number":100,"context_line":"   | group_id   | varchar(36)  | NO   | MUL | NULL    |                |"},{"line_number":101,"context_line":"   | key        | varchar(255) | YES  |     | NULL    |                |"},{"line_number":102,"context_line":"   | value      | varchar(255) | YES  |     | NULL    |                |"},{"line_number":103,"context_line":"   +------------+--------------+------+-----+---------+----------------+"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f485f77_22a60055","line":103,"range":{"start_line":88,"start_character":0,"end_line":103,"end_character":72},"updated":"2017-11-15 15:58:04.000000000","message":"What is this table for? Scratch space while the create is happening? \n\nIs a bulk-create created group any different to a group created via normal create and added to a group?","commit_id":"c9d1a39c3d8116e066e7f8f3a553e1980fd648cf"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"d8e5c87e4fd10b46b785c7ef80cc64bae9fd5583","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Data model impact"},{"line_number":87,"context_line":"-----------------"},{"line_number":88,"context_line":"New Bulk Create Table of key value pairs."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"group_bulk_create::"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"   +------------+--------------+------+-----+---------+----------------+"},{"line_number":93,"context_line":"   | Field      | Type         | Null | Key | Default | Extra          |"},{"line_number":94,"context_line":"   +------------+--------------+------+-----+---------+----------------+"},{"line_number":95,"context_line":"   | created_at | datetime     | YES  |     | NULL    |                |"},{"line_number":96,"context_line":"   | updated_at | datetime     | YES  |     | NULL    |                |"},{"line_number":97,"context_line":"   | deleted_at | datetime     | YES  |     | NULL    |                |"},{"line_number":98,"context_line":"   | deleted    | tinyint(1)   | YES  |     | NULL    |                |"},{"line_number":99,"context_line":"   | id         | int(11)      | NO   | PRI | NULL    | auto_increment |"},{"line_number":100,"context_line":"   | group_id   | varchar(36)  | NO   | MUL | NULL    |                |"},{"line_number":101,"context_line":"   | key        | varchar(255) | YES  |     | NULL    |                |"},{"line_number":102,"context_line":"   | value      | varchar(255) | YES  |     | NULL    |                |"},{"line_number":103,"context_line":"   +------------+--------------+------+-----+---------+----------------+"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_0edcc872","line":103,"range":{"start_line":88,"start_character":0,"end_line":103,"end_character":72},"in_reply_to":"1f485f77_22a60055","updated":"2017-11-20 14:59:17.000000000","message":"Hi Duncan,\nThanks for the great feedback.\nThe mysql table above holds the key value pair for a specific group e.g. volume_count, volume_size etc. \nThe main difference between a \u0027normal\u0027 GVG create and the bulk create is that as you have the option to create x volumes of x size as well as creating the GVG.\nI believe I may be over-complicating.  If there is only ever going to be a 1-1 relationship between a group and these new attributes, this table is unnecessary.  The volume_count, volume_size, volume_type etc. can possibly added to the group table instead.","commit_id":"c9d1a39c3d8116e066e7f8f3a553e1980fd648cf"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"23cd7cb8a3c08e56bdfcc5f4de1557c53b485485","unresolved":false,"context_lines":[{"line_number":134,"context_line":""},{"line_number":135,"context_line":"* volume_type . the volume type of the volumes"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"* image_id . for bootable volumes"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Examples::"},{"line_number":140,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_9d7e7817","line":137,"range":{"start_line":137,"start_character":2,"end_line":137,"end_character":33},"updated":"2017-11-23 07:16:43.000000000","message":"how about supporting snapshot_id as well here?","commit_id":"c9d1a39c3d8116e066e7f8f3a553e1980fd648cf"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"1f5fe1c644b0bff20d1594d2900ef8949e822531","unresolved":false,"context_lines":[{"line_number":134,"context_line":""},{"line_number":135,"context_line":"* volume_type . the volume type of the volumes"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"* image_id . for bootable volumes"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Examples::"},{"line_number":140,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_fddd0770","line":137,"range":{"start_line":137,"start_character":2,"end_line":137,"end_character":33},"in_reply_to":"ff82abbf_9d7e7817","updated":"2017-11-27 12:07:07.000000000","message":"Hi Tommy, thanks for the feedback.  I will need to test with snapshot id before I can comment","commit_id":"c9d1a39c3d8116e066e7f8f3a553e1980fd648cf"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"23cd7cb8a3c08e56bdfcc5f4de1557c53b485485","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Examples::"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"   +--------------+--------------+"},{"line_number":142,"context_line":"   | Key          | Value        | "},{"line_number":143,"context_line":"   +--------------+--------------+"},{"line_number":144,"context_line":"   | volume_count | 30           |"},{"line_number":145,"context_line":"   | volume_size  | 10           |"},{"line_number":146,"context_line":"   | volume_type  | my_vol_type  |"},{"line_number":147,"context_line":"   | image_id     | \u003cimage_uuid\u003e |"},{"line_number":148,"context_line":"   +--------------+--------------+"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"If bulk create is populated a new volume group is created and count"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_3da5ecb5","line":147,"range":{"start_line":141,"start_character":0,"end_line":147,"end_character":34},"updated":"2017-11-23 07:16:43.000000000","message":"I guess we need considering volume metadata and name as well. For instance we can bulk create volume with parameter:\"--name bulk_volume --volume_count 3\" and either of this results below will make sense.\n```\n1. bulk_volume01, bulk_volume02, bulk_volume03\n2. bulk_volume, bulk_volume, bulk_volume\n```","commit_id":"c9d1a39c3d8116e066e7f8f3a553e1980fd648cf"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"1f5fe1c644b0bff20d1594d2900ef8949e822531","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Examples::"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"   +--------------+--------------+"},{"line_number":142,"context_line":"   | Key          | Value        | "},{"line_number":143,"context_line":"   +--------------+--------------+"},{"line_number":144,"context_line":"   | volume_count | 30           |"},{"line_number":145,"context_line":"   | volume_size  | 10           |"},{"line_number":146,"context_line":"   | volume_type  | my_vol_type  |"},{"line_number":147,"context_line":"   | image_id     | \u003cimage_uuid\u003e |"},{"line_number":148,"context_line":"   +--------------+--------------+"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"If bulk create is populated a new volume group is created and count"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_dd8b6365","line":147,"range":{"start_line":141,"start_character":0,"end_line":147,"end_character":34},"in_reply_to":"ff82abbf_3da5ecb5","updated":"2017-11-27 12:07:07.000000000","message":"Currently the volume name has the uuid, but perhaps we could have a prefix?\nWe could have metadata.","commit_id":"c9d1a39c3d8116e066e7f8f3a553e1980fd648cf"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"4392783cfff754924e876872b2818283afa632d6","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Examples::"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"   +--------------+--------------+"},{"line_number":142,"context_line":"   | Key          | Value        | "},{"line_number":143,"context_line":"   +--------------+--------------+"},{"line_number":144,"context_line":"   | volume_count | 30           |"},{"line_number":145,"context_line":"   | volume_size  | 10           |"},{"line_number":146,"context_line":"   | volume_type  | my_vol_type  |"},{"line_number":147,"context_line":"   | image_id     | \u003cimage_uuid\u003e |"},{"line_number":148,"context_line":"   +--------------+--------------+"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"If bulk create is populated a new volume group is created and count"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_9d0b9bd4","line":147,"range":{"start_line":141,"start_character":0,"end_line":147,"end_character":34},"in_reply_to":"ff82abbf_dd8b6365","updated":"2017-11-27 12:09:32.000000000","message":"Volume id is a uuid\nVolume name is a free-text field. A prefix (i.e. my-volume-1, my-volume-2, etc) might work well?","commit_id":"c9d1a39c3d8116e066e7f8f3a553e1980fd648cf"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"bf812a7db165cac1275188bc8844d45bf97295b0","unresolved":false,"context_lines":[{"line_number":148,"context_line":"   +--------------+--------------+"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"If bulk create is populated a new volume group is created and count"},{"line_number":151,"context_line":"``volume_count`` volumes are created with size ``volume_size``  in one single"},{"line_number":152,"context_line":"call by the implementing driver.  The model update is returned to the manager"},{"line_number":153,"context_line":"containing a ``volume_list``  with driver specific information of each volume"},{"line_number":154,"context_line":"which will be persisted in provider_location.  A volume object is created and"},{"line_number":155,"context_line":"create_volume is called.  The drivers that implement this feature will return"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f485f77_627518cb","line":152,"range":{"start_line":151,"start_character":64,"end_line":152,"end_character":31},"updated":"2017-11-15 15:58:04.000000000","message":"What about drivers that don\u0027t implement bulk create? The API call needs to work on those too","commit_id":"c9d1a39c3d8116e066e7f8f3a553e1980fd648cf"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"d8e5c87e4fd10b46b785c7ef80cc64bae9fd5583","unresolved":false,"context_lines":[{"line_number":148,"context_line":"   +--------------+--------------+"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"If bulk create is populated a new volume group is created and count"},{"line_number":151,"context_line":"``volume_count`` volumes are created with size ``volume_size``  in one single"},{"line_number":152,"context_line":"call by the implementing driver.  The model update is returned to the manager"},{"line_number":153,"context_line":"containing a ``volume_list``  with driver specific information of each volume"},{"line_number":154,"context_line":"which will be persisted in provider_location.  A volume object is created and"},{"line_number":155,"context_line":"create_volume is called.  The drivers that implement this feature will return"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_8e5f78e4","line":152,"range":{"start_line":151,"start_character":64,"end_line":152,"end_character":31},"in_reply_to":"1f485f77_627518cb","updated":"2017-11-20 14:59:17.000000000","message":"It should, create_group calls create_volume in manager.py so the volumes get created one after the other, if the driver has no way of creating the volumes in bulk","commit_id":"c9d1a39c3d8116e066e7f8f3a553e1980fd648cf"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"bf812a7db165cac1275188bc8844d45bf97295b0","unresolved":false,"context_lines":[{"line_number":152,"context_line":"call by the implementing driver.  The model update is returned to the manager"},{"line_number":153,"context_line":"containing a ``volume_list``  with driver specific information of each volume"},{"line_number":154,"context_line":"which will be persisted in provider_location.  A volume object is created and"},{"line_number":155,"context_line":"create_volume is called.  The drivers that implement this feature will return"},{"line_number":156,"context_line":"a model_update early without having to create a new volume, if"},{"line_number":157,"context_line":"provider_location has been populated with the volume details.  If"},{"line_number":158,"context_line":"provider_location has not been populated a new volume is created(default"},{"line_number":159,"context_line":"behaviour)."}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f485f77_2202800c","line":156,"range":{"start_line":155,"start_character":26,"end_line":156,"end_character":58},"updated":"2017-11-15 15:58:04.000000000","message":"I\u0027m not sure why you\u0027re doing it this way.... what\u0027s the point of a model update until the volume exists and you know the connection details you want to put in the model?","commit_id":"c9d1a39c3d8116e066e7f8f3a553e1980fd648cf"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"d8e5c87e4fd10b46b785c7ef80cc64bae9fd5583","unresolved":false,"context_lines":[{"line_number":152,"context_line":"call by the implementing driver.  The model update is returned to the manager"},{"line_number":153,"context_line":"containing a ``volume_list``  with driver specific information of each volume"},{"line_number":154,"context_line":"which will be persisted in provider_location.  A volume object is created and"},{"line_number":155,"context_line":"create_volume is called.  The drivers that implement this feature will return"},{"line_number":156,"context_line":"a model_update early without having to create a new volume, if"},{"line_number":157,"context_line":"provider_location has been populated with the volume details.  If"},{"line_number":158,"context_line":"provider_location has not been populated a new volume is created(default"},{"line_number":159,"context_line":"behaviour)."}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_8ed21834","line":156,"range":{"start_line":155,"start_character":26,"end_line":156,"end_character":58},"in_reply_to":"1f485f77_2202800c","updated":"2017-11-20 14:59:17.000000000","message":"create_group calls create_volume in manager.py.  If the driver has previously created the x volumes of x size in the the drivers own create_group, then the logic in the drivers own create_volume should allow a quick exit if there is no need to create a new volume.","commit_id":"c9d1a39c3d8116e066e7f8f3a553e1980fd648cf"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"182359d2c19c12f3c423d81fccfc23c8525fb5dd","unresolved":false,"context_lines":[{"line_number":159,"context_line":"behaviour)."},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"Usage non bootable::"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"   $cinder group-create --name my_group my_group_type volumetype1, volumetype2 --bulk-create volume_count\u003d30 volume_size\u003d13 volume_type\u003dvolumetype1"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"Usage bootable::"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f485f77_ba48902c","line":162,"updated":"2017-11-17 15:46:17.000000000","message":"Need \u0027.. code-block console:: \u0027 here and remove the previous \u0027::\u0027","commit_id":"c9d1a39c3d8116e066e7f8f3a553e1980fd648cf"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"d8e5c87e4fd10b46b785c7ef80cc64bae9fd5583","unresolved":false,"context_lines":[{"line_number":159,"context_line":"behaviour)."},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"Usage non bootable::"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"   $cinder group-create --name my_group my_group_type volumetype1, volumetype2 --bulk-create volume_count\u003d30 volume_size\u003d13 volume_type\u003dvolumetype1"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"Usage bootable::"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_2ee3cc07","line":162,"in_reply_to":"1f485f77_ba48902c","updated":"2017-11-20 14:59:17.000000000","message":"Will do.","commit_id":"c9d1a39c3d8116e066e7f8f3a553e1980fd648cf"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"182359d2c19c12f3c423d81fccfc23c8525fb5dd","unresolved":false,"context_lines":[{"line_number":162,"context_line":""},{"line_number":163,"context_line":"   $cinder group-create --name my_group my_group_type volumetype1, volumetype2 --bulk-create volume_count\u003d30 volume_size\u003d13 volume_type\u003dvolumetype1"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"Usage bootable::"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"   $cinder group-create --name my_group my_group_type volumetype1, volumetype2 --bulk-create volume_count\u003d30 volume_size\u003d13 volume_type\u003dvolumetype1 image_id\u003d\u003cimageUuid\u003e"},{"line_number":168,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1f485f77_7a4e9838","line":165,"range":{"start_line":165,"start_character":0,"end_line":165,"end_character":16},"updated":"2017-11-17 15:46:17.000000000","message":"Same here.","commit_id":"c9d1a39c3d8116e066e7f8f3a553e1980fd648cf"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"d8e5c87e4fd10b46b785c7ef80cc64bae9fd5583","unresolved":false,"context_lines":[{"line_number":162,"context_line":""},{"line_number":163,"context_line":"   $cinder group-create --name my_group my_group_type volumetype1, volumetype2 --bulk-create volume_count\u003d30 volume_size\u003d13 volume_type\u003dvolumetype1"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"Usage bootable::"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"   $cinder group-create --name my_group my_group_type volumetype1, volumetype2 --bulk-create volume_count\u003d30 volume_size\u003d13 volume_type\u003dvolumetype1 image_id\u003d\u003cimageUuid\u003e"},{"line_number":168,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ff82abbf_ceefc0e7","line":165,"range":{"start_line":165,"start_character":0,"end_line":165,"end_character":16},"in_reply_to":"1f485f77_7a4e9838","updated":"2017-11-20 14:59:17.000000000","message":"Will do.  Thanks","commit_id":"c9d1a39c3d8116e066e7f8f3a553e1980fd648cf"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"cd1524c3c805738d2815474fb41d778609d93b4e","unresolved":false,"context_lines":[{"line_number":30,"context_line":"  Section REST API impact for more details."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* At this time both ``image id`` and ``snapshot_id`` are valid inputs as bulk"},{"line_number":33,"context_line":"  create API\u0027s volume source.  And the rest ``source_volid`` and"},{"line_number":34,"context_line":"  ``source_replica`` will be evaluated in the future."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* Quota will be checked before the request is sent to the scheduler, and will"},{"line_number":37,"context_line":"  not be updated later, that is to say, if cinder failed to create some of the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_b98db732","line":34,"range":{"start_line":33,"start_character":31,"end_line":34,"end_character":53},"updated":"2017-12-05 02:29:08.000000000","message":"Now we have \u0027backup_id\u0027 now:)","commit_id":"dcc724bb4fe4a2fd95365f5a7cdd44637af77a28"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"9cb6603554e0715401e5cd782c75bbd8ceda6b63","unresolved":false,"context_lines":[{"line_number":30,"context_line":"  Section REST API impact for more details."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* At this time both ``image id`` and ``snapshot_id`` are valid inputs as bulk"},{"line_number":33,"context_line":"  create API\u0027s volume source.  And the rest ``source_volid`` and"},{"line_number":34,"context_line":"  ``source_replica`` will be evaluated in the future."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* Quota will be checked before the request is sent to the scheduler, and will"},{"line_number":37,"context_line":"  not be updated later, that is to say, if cinder failed to create some of the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_a33c74bf","line":34,"range":{"start_line":33,"start_character":31,"end_line":34,"end_character":53},"in_reply_to":"df87a7cf_b98db732","updated":"2017-12-06 14:02:25.000000000","message":"Thanks Tommy, should \u0027backup_id\u0027 be added in addition to, or in place of \u0027source_volid\u0027 and \u0027source_replica\u0027?","commit_id":"dcc724bb4fe4a2fd95365f5a7cdd44637af77a28"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"cd1524c3c805738d2815474fb41d778609d93b4e","unresolved":false,"context_lines":[{"line_number":85,"context_line":"  the exception is found during the call to the drivers ``create_volume``"},{"line_number":86,"context_line":"  where bulk creation is not supported, then only the corresponding volume"},{"line_number":87,"context_line":"  will be changed into \u0027error\u0027 status."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"* Changes are needed in the create group API to determine whether"},{"line_number":90,"context_line":"  Group.bulk_create dictionary is populated with the correct key/value pairs."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"* Rescheduling will not be allowed."},{"line_number":93,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_d948bbcd","line":90,"range":{"start_line":88,"start_character":1,"end_line":90,"end_character":77},"updated":"2017-12-05 02:29:08.000000000","message":"What\u0027s the key/value pair here you are referring to, if it\u0027s the user\u0027s input related to bulk create, this is the duplicated as the proposed changed below:\n```\n* An inner dictionary attribute ``bulk_create`` will be added to the group\u0027s\n  create API to allow volume creation, if the API service fails to validate\n  the object, Cinder will raise ``HTTPBadRequest`` directly. Please read\n  Section REST API impact for more details.\n```","commit_id":"dcc724bb4fe4a2fd95365f5a7cdd44637af77a28"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"9cb6603554e0715401e5cd782c75bbd8ceda6b63","unresolved":false,"context_lines":[{"line_number":85,"context_line":"  the exception is found during the call to the drivers ``create_volume``"},{"line_number":86,"context_line":"  where bulk creation is not supported, then only the corresponding volume"},{"line_number":87,"context_line":"  will be changed into \u0027error\u0027 status."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"* Changes are needed in the create group API to determine whether"},{"line_number":90,"context_line":"  Group.bulk_create dictionary is populated with the correct key/value pairs."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"* Rescheduling will not be allowed."},{"line_number":93,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_037760a2","line":90,"range":{"start_line":88,"start_character":1,"end_line":90,"end_character":77},"in_reply_to":"df87a7cf_d948bbcd","updated":"2017-12-06 14:02:25.000000000","message":"Agreed.  I will remove this.","commit_id":"dcc724bb4fe4a2fd95365f5a7cdd44637af77a28"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"cd1524c3c805738d2815474fb41d778609d93b4e","unresolved":false,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Data model impact"},{"line_number":112,"context_line":"-----------------"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"OPTION 1:"},{"line_number":115,"context_line":"New ``bulk_create`` column will be added"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Group::"}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_b9e057ce","line":114,"range":{"start_line":113,"start_character":1,"end_line":114,"end_character":9},"updated":"2017-12-05 02:29:08.000000000","message":"Remove this if you don\u0027t have any other options","commit_id":"dcc724bb4fe4a2fd95365f5a7cdd44637af77a28"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"9cb6603554e0715401e5cd782c75bbd8ceda6b63","unresolved":false,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Data model impact"},{"line_number":112,"context_line":"-----------------"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"OPTION 1:"},{"line_number":115,"context_line":"New ``bulk_create`` column will be added"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Group::"}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_c37098a8","line":114,"range":{"start_line":113,"start_character":1,"end_line":114,"end_character":9},"in_reply_to":"df87a7cf_b9e057ce","updated":"2017-12-06 14:02:25.000000000","message":"Sure","commit_id":"dcc724bb4fe4a2fd95365f5a7cdd44637af77a28"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"14cf93147d5cf906c3ab52221801bc82187c39ba","unresolved":false,"context_lines":[{"line_number":114,"context_line":"OPTION 1:"},{"line_number":115,"context_line":"New ``bulk_create`` column will be added"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Group::"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"   +------------+--------------+------+-----+---------+----------------+"},{"line_number":120,"context_line":"   | Field      | Type         | Null | Key | Default | Extra          |"},{"line_number":121,"context_line":"   +------------+--------------+------+-----+---------+----------------+"},{"line_number":122,"context_line":"   | bulk_create| text         | YES  |     | NULL    |                |"},{"line_number":123,"context_line":"   +------------+--------------+------+-----+---------+----------------+"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"The bulk create key/value pairs will be stored as a json string in the"},{"line_number":126,"context_line":"database and will be converted into a dict when using the group object."}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_79bbaf71","line":123,"range":{"start_line":117,"start_character":0,"end_line":123,"end_character":72},"updated":"2017-12-05 02:42:46.000000000","message":"I think your first proposal will be another OPTION, if some other guys think adding new column will complicate the group table and degrade the db performance.\n```\n   +------------+--------------+------+-----+---------+----------------+\n   | Field      | Type         | Null | Key | Default | Extra          |\n   +------------+--------------+------+-----+---------+----------------+\n   | created_at | datetime     | YES  |     | NULL    |                |\n   | updated_at | datetime     | YES  |     | NULL    |                |\n   | deleted_at | datetime     | YES  |     | NULL    |                |\n   | deleted    | tinyint(1)   | YES  |     | NULL    |                |\n   | id         | int(11)      | NO   | PRI | NULL    | auto_increment |\n   | group_id   | varchar(36)  | NO   | MUL | NULL    |                |\n   | key        | varchar(255) | YES  |     | NULL    |                |\n   | value      | varchar(255) | YES  |     | NULL    |                |\n   +------------+--------------+------+-----+---------+----------------+\n```","commit_id":"dcc724bb4fe4a2fd95365f5a7cdd44637af77a28"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"9cb6603554e0715401e5cd782c75bbd8ceda6b63","unresolved":false,"context_lines":[{"line_number":114,"context_line":"OPTION 1:"},{"line_number":115,"context_line":"New ``bulk_create`` column will be added"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Group::"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"   +------------+--------------+------+-----+---------+----------------+"},{"line_number":120,"context_line":"   | Field      | Type         | Null | Key | Default | Extra          |"},{"line_number":121,"context_line":"   +------------+--------------+------+-----+---------+----------------+"},{"line_number":122,"context_line":"   | bulk_create| text         | YES  |     | NULL    |                |"},{"line_number":123,"context_line":"   +------------+--------------+------+-----+---------+----------------+"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"The bulk create key/value pairs will be stored as a json string in the"},{"line_number":126,"context_line":"database and will be converted into a dict when using the group object."}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_a3aa34cf","line":123,"range":{"start_line":117,"start_character":0,"end_line":123,"end_character":72},"in_reply_to":"df87a7cf_79bbaf71","updated":"2017-12-06 14:02:25.000000000","message":"Sure, I can add it back in for now.","commit_id":"dcc724bb4fe4a2fd95365f5a7cdd44637af77a28"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"cd1524c3c805738d2815474fb41d778609d93b4e","unresolved":false,"context_lines":[{"line_number":249,"context_line":""},{"line_number":250,"context_line":"Implementation"},{"line_number":251,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"Assignee(s)"},{"line_number":254,"context_line":"-----------"},{"line_number":255,"context_line":"Primary assignee:"},{"line_number":256,"context_line":"  TBD"}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_f9a7bfa6","line":253,"range":{"start_line":252,"start_character":1,"end_line":253,"end_character":11},"updated":"2017-12-05 02:29:08.000000000","message":"If no one is going to handle this spec, please add me to the list:)","commit_id":"dcc724bb4fe4a2fd95365f5a7cdd44637af77a28"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"cd1524c3c805738d2815474fb41d778609d93b4e","unresolved":false,"context_lines":[{"line_number":285,"context_line":"Documentation Impact"},{"line_number":286,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":287,"context_line":"We will need to update documentation to describe the amended API."},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"References"},{"line_number":290,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_d9c51b3e","line":290,"range":{"start_line":288,"start_character":1,"end_line":290,"end_character":11},"updated":"2017-12-05 02:29:08.000000000","message":"Add \u0027None\u0027 below.","commit_id":"dcc724bb4fe4a2fd95365f5a7cdd44637af77a28"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"9cb6603554e0715401e5cd782c75bbd8ceda6b63","unresolved":false,"context_lines":[{"line_number":285,"context_line":"Documentation Impact"},{"line_number":286,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":287,"context_line":"We will need to update documentation to describe the amended API."},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"References"},{"line_number":290,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"df87a7cf_c37e586a","line":290,"range":{"start_line":288,"start_character":1,"end_line":290,"end_character":11},"in_reply_to":"df87a7cf_d9c51b3e","updated":"2017-12-06 14:02:25.000000000","message":"Ok. Thank you","commit_id":"dcc724bb4fe4a2fd95365f5a7cdd44637af77a28"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"95f85b6c7d90eae431331c737003e66cacd46a55","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Problem description"},{"line_number":13,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":14,"context_line":"Cinder only allows one volume to be created at a time. For some backends,"},{"line_number":15,"context_line":"creating multiple volumes in one call takes about the same amount of time"},{"line_number":16,"context_line":"as creating one volume. Therefore a way to do bulk volume creation would"},{"line_number":17,"context_line":"improve the performance for them. This spec proposes to amend the existing"},{"line_number":18,"context_line":"create group API to allow bulk creation of volumes."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Use Cases"},{"line_number":21,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df87a7cf_e2051b15","line":18,"range":{"start_line":14,"start_character":0,"end_line":18,"end_character":51},"updated":"2017-12-12 04:14:18.000000000","message":"I get the problem you\u0027re trying to solve and it\u0027s great, but this feature has a lot of side effects and races that are concerning for me.","commit_id":"24336cc180e31ebe8055dbf570d6bbebfa212647"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"f70c60b45ba633b2684637ab022748eea70d5502","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Problem description"},{"line_number":13,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":14,"context_line":"Cinder only allows one volume to be created at a time. For some backends,"},{"line_number":15,"context_line":"creating multiple volumes in one call takes about the same amount of time"},{"line_number":16,"context_line":"as creating one volume. Therefore a way to do bulk volume creation would"},{"line_number":17,"context_line":"improve the performance for them. This spec proposes to amend the existing"},{"line_number":18,"context_line":"create group API to allow bulk creation of volumes."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Use Cases"},{"line_number":21,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df87a7cf_4e0c0442","line":18,"range":{"start_line":14,"start_character":0,"end_line":18,"end_character":51},"in_reply_to":"df87a7cf_e2051b15","updated":"2017-12-13 17:13:43.000000000","message":"Hi John,\nThanks for the feedback. I do understand you have a lot of concerns, but we have more time to trash this out as this spec is being deferred to Rockies, I am hoping we can discuss in greater detail at the next PTG.","commit_id":"24336cc180e31ebe8055dbf570d6bbebfa212647"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"95f85b6c7d90eae431331c737003e66cacd46a55","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Use Cases"},{"line_number":21,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":22,"context_line":"* Allows the user to create multiple volumes in one step."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Proposed change"},{"line_number":25,"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":6,"id":"df87a7cf_bdd7364b","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":57},"updated":"2017-12-12 04:14:18.000000000","message":"This isn\u0027t a \"use case\" really, it\u0027s a statement.  Can you provide a real use case here?\n\nHow often are you creating 10\u0027s or 100\u0027s of volumes at a time and what\u0027s the use case for it from a users perspective?\n\nHow does this solve issues for large multi-tenant environments where it\u0027s not at all uncommon to have 10 cinder-create calls come in at a time from different users?","commit_id":"24336cc180e31ebe8055dbf570d6bbebfa212647"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"f70c60b45ba633b2684637ab022748eea70d5502","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Use Cases"},{"line_number":21,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":22,"context_line":"* Allows the user to create multiple volumes in one step."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Proposed change"},{"line_number":25,"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":6,"id":"df87a7cf_11be21ff","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":57},"in_reply_to":"df87a7cf_bdd7364b","updated":"2017-12-13 17:13:43.000000000","message":"Sure, I will come up with a better use case.\nWe have had requests for 100 or more simultaneous volume creations.  In the VMAX driver one call could service this request, hence the idea for this spec.\nI completely understand this may be an issue for large multi-tenant environments, timeouts etc.","commit_id":"24336cc180e31ebe8055dbf570d6bbebfa212647"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"95f85b6c7d90eae431331c737003e66cacd46a55","unresolved":false,"context_lines":[{"line_number":30,"context_line":"  Section REST API impact for more details."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* At this time both ``image id`` and ``snapshot_id`` are valid inputs as bulk"},{"line_number":33,"context_line":"  create API\u0027s volume source.  And the rest ``source_volid`` and"},{"line_number":34,"context_line":"  ``source_replica`` will be evaluated in the future."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* Quota will be checked before the request is sent to the scheduler, and will"},{"line_number":37,"context_line":"  not be updated later, that is to say, if cinder failed to create some of the"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df87a7cf_fd5cde19","line":34,"range":{"start_line":33,"start_character":31,"end_line":34,"end_character":53},"updated":"2017-12-12 04:14:18.000000000","message":"FWIW this is one of the concerns I have about a bulk create.\nfrom-volume seems like it should be there, even if it means the driver has to queue the calls up and do it itself; but this is going to make a number of backends fall over I suspect when you pass in 100 of these for example.\n\nYou\u0027re also glossing over the fact that having no limits on this means for example a \"create 1K volumes\" can be passed in, how will backends respond to that and still complete within the allotted rpc timeout period?\n\nI\u0027m wondering if there\u0027s a better/safer way to do this.  Like caching or pre-building volumes on your backend? Or maybe we need some sort of a simple pre-create call, I don\u0027t know; but adding this in to the existing API calls I suspect is going to create some challenging conditions.","commit_id":"24336cc180e31ebe8055dbf570d6bbebfa212647"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"f70c60b45ba633b2684637ab022748eea70d5502","unresolved":false,"context_lines":[{"line_number":30,"context_line":"  Section REST API impact for more details."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* At this time both ``image id`` and ``snapshot_id`` are valid inputs as bulk"},{"line_number":33,"context_line":"  create API\u0027s volume source.  And the rest ``source_volid`` and"},{"line_number":34,"context_line":"  ``source_replica`` will be evaluated in the future."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* Quota will be checked before the request is sent to the scheduler, and will"},{"line_number":37,"context_line":"  not be updated later, that is to say, if cinder failed to create some of the"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df87a7cf_f1a4ddbb","line":34,"range":{"start_line":33,"start_character":31,"end_line":34,"end_character":53},"in_reply_to":"df87a7cf_fd5cde19","updated":"2017-12-13 17:13:43.000000000","message":"I understand that users could abuse this feature if we do not set some limits. \nWe definitely need to address rpc timeout period.\nI have thought about pre-building volumes, but unfortunately we never know what size or flavor of volume the user will require.  Changing the size or volume type would take as long as creating the volume from scratch.","commit_id":"24336cc180e31ebe8055dbf570d6bbebfa212647"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"95f85b6c7d90eae431331c737003e66cacd46a55","unresolved":false,"context_lines":[{"line_number":33,"context_line":"  create API\u0027s volume source.  And the rest ``source_volid`` and"},{"line_number":34,"context_line":"  ``source_replica`` will be evaluated in the future."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* Quota will be checked before the request is sent to the scheduler, and will"},{"line_number":37,"context_line":"  not be updated later, that is to say, if cinder failed to create some of the"},{"line_number":38,"context_line":"  volumes in the backend, we will set the volume into \u0027error\u0027 status rather"},{"line_number":39,"context_line":"  than delete the volume and update partial quota."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"* This spec will support bulk creation of multiple volumes of the same"},{"line_number":42,"context_line":"  volume type in the create group API."}],"source_content_type":"text/x-rst","patch_set":6,"id":"df87a7cf_9d86f265","line":39,"range":{"start_line":36,"start_character":2,"end_line":39,"end_character":50},"updated":"2017-12-12 04:14:18.000000000","message":"To be clear, you\u0027ll request the desired quota and then regardless of whether some or all of the creates fail or not you\u0027ll count that quota as committed until the volumes are deleted?  That\u0027s good by me, just checking.","commit_id":"24336cc180e31ebe8055dbf570d6bbebfa212647"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"95f85b6c7d90eae431331c737003e66cacd46a55","unresolved":false,"context_lines":[{"line_number":38,"context_line":"  volumes in the backend, we will set the volume into \u0027error\u0027 status rather"},{"line_number":39,"context_line":"  than delete the volume and update partial quota."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"* This spec will support bulk creation of multiple volumes of the same"},{"line_number":42,"context_line":"  volume type in the create group API."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"* Group table and group object will be updated to store the bulk create"},{"line_number":45,"context_line":"  related parameters."}],"source_content_type":"text/x-rst","patch_set":6,"id":"df87a7cf_1d9ae2b7","line":42,"range":{"start_line":41,"start_character":0,"end_line":42,"end_character":38},"updated":"2017-12-12 04:14:18.000000000","message":"Why make it part of the group API and not a volume API or even part of the existing volume.create API call?","commit_id":"24336cc180e31ebe8055dbf570d6bbebfa212647"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"f70c60b45ba633b2684637ab022748eea70d5502","unresolved":false,"context_lines":[{"line_number":38,"context_line":"  volumes in the backend, we will set the volume into \u0027error\u0027 status rather"},{"line_number":39,"context_line":"  than delete the volume and update partial quota."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"* This spec will support bulk creation of multiple volumes of the same"},{"line_number":42,"context_line":"  volume type in the create group API."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"* Group table and group object will be updated to store the bulk create"},{"line_number":45,"context_line":"  related parameters."}],"source_content_type":"text/x-rst","patch_set":6,"id":"df87a7cf_f1bb7dc1","line":42,"range":{"start_line":41,"start_character":0,"end_line":42,"end_character":38},"in_reply_to":"df87a7cf_1d9ae2b7","updated":"2017-12-13 17:13:43.000000000","message":"This was discussed in Denver and using the Create Group API was deemed a better solution.  I am open to any suggestions as to the best API to use, existing or new.","commit_id":"24336cc180e31ebe8055dbf570d6bbebfa212647"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"95f85b6c7d90eae431331c737003e66cacd46a55","unresolved":false,"context_lines":[{"line_number":44,"context_line":"* Group table and group object will be updated to store the bulk create"},{"line_number":45,"context_line":"  related parameters."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"  1. Group table: new text column ``bulk_create`` will be added."},{"line_number":48,"context_line":"  2. Group object: new ``DictOfDictOfStringsField`` attribute ``bulk_create``"},{"line_number":49,"context_line":"     will be added."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"* Changes are needed in the Cinder scheduler to handle multiple volumes in"},{"line_number":52,"context_line":"  the create group API. The primary changes are:"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df87a7cf_dd8f9a72","line":49,"range":{"start_line":47,"start_character":0,"end_line":49,"end_character":19},"updated":"2017-12-12 04:14:18.000000000","message":"Do we need this relationships stored?  Is there a use-case that we might want these for later?","commit_id":"24336cc180e31ebe8055dbf570d6bbebfa212647"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"912b1bfda339758ea71bf8762894159a58e95e1d","unresolved":false,"context_lines":[{"line_number":44,"context_line":"* Group table and group object will be updated to store the bulk create"},{"line_number":45,"context_line":"  related parameters."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"  1. Group table: new text column ``bulk_create`` will be added."},{"line_number":48,"context_line":"  2. Group object: new ``DictOfDictOfStringsField`` attribute ``bulk_create``"},{"line_number":49,"context_line":"     will be added."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"* Changes are needed in the Cinder scheduler to handle multiple volumes in"},{"line_number":52,"context_line":"  the create group API. The primary changes are:"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df87a7cf_0e8d6fd2","line":49,"range":{"start_line":47,"start_character":0,"end_line":49,"end_character":19},"in_reply_to":"df87a7cf_d1043981","updated":"2017-12-15 02:22:50.000000000","message":"I guess John Griffith\u0027s concern is more about whether we need to store this data in the group record.","commit_id":"24336cc180e31ebe8055dbf570d6bbebfa212647"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"f70c60b45ba633b2684637ab022748eea70d5502","unresolved":false,"context_lines":[{"line_number":44,"context_line":"* Group table and group object will be updated to store the bulk create"},{"line_number":45,"context_line":"  related parameters."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"  1. Group table: new text column ``bulk_create`` will be added."},{"line_number":48,"context_line":"  2. Group object: new ``DictOfDictOfStringsField`` attribute ``bulk_create``"},{"line_number":49,"context_line":"     will be added."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"* Changes are needed in the Cinder scheduler to handle multiple volumes in"},{"line_number":52,"context_line":"  the create group API. The primary changes are:"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df87a7cf_d1043981","line":49,"range":{"start_line":47,"start_character":0,"end_line":49,"end_character":19},"in_reply_to":"df87a7cf_dd8f9a72","updated":"2017-12-13 17:13:43.000000000","message":"We did initially have a separate key/value pair table but it was thought this was unnecessary overhead.  We can introduce it again, but we cannot think of any use case that would require us to use the data later.","commit_id":"24336cc180e31ebe8055dbf570d6bbebfa212647"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"95f85b6c7d90eae431331c737003e66cacd46a55","unresolved":false,"context_lines":[{"line_number":51,"context_line":"* Changes are needed in the Cinder scheduler to handle multiple volumes in"},{"line_number":52,"context_line":"  the create group API. The primary changes are:"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"  1. Capacity on total volume size will be evaluated now."},{"line_number":55,"context_line":"  2. If ``snapshot_id`` is specified, only the snapshot\u0027s backend will be used"},{"line_number":56,"context_line":"     for filtering."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* The request will be scheduled to the volume service as before, and the"},{"line_number":59,"context_line":"  existing driver interface ``create_group`` will be updated as below:"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df87a7cf_5df14a00","line":56,"range":{"start_line":54,"start_character":2,"end_line":56,"end_character":19},"updated":"2017-12-12 04:14:18.000000000","message":"Keep in mind there are also count limits and volume-type quota/limit settings as well.","commit_id":"24336cc180e31ebe8055dbf570d6bbebfa212647"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"912b1bfda339758ea71bf8762894159a58e95e1d","unresolved":false,"context_lines":[{"line_number":51,"context_line":"* Changes are needed in the Cinder scheduler to handle multiple volumes in"},{"line_number":52,"context_line":"  the create group API. The primary changes are:"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"  1. Capacity on total volume size will be evaluated now."},{"line_number":55,"context_line":"  2. If ``snapshot_id`` is specified, only the snapshot\u0027s backend will be used"},{"line_number":56,"context_line":"     for filtering."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* The request will be scheduled to the volume service as before, and the"},{"line_number":59,"context_line":"  existing driver interface ``create_group`` will be updated as below:"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df87a7cf_eeaa8b17","line":56,"range":{"start_line":54,"start_character":2,"end_line":56,"end_character":19},"in_reply_to":"df87a7cf_5df14a00","updated":"2017-12-15 02:22:50.000000000","message":"It should already been done when reserve quota:)","commit_id":"24336cc180e31ebe8055dbf570d6bbebfa212647"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"f70c60b45ba633b2684637ab022748eea70d5502","unresolved":false,"context_lines":[{"line_number":51,"context_line":"* Changes are needed in the Cinder scheduler to handle multiple volumes in"},{"line_number":52,"context_line":"  the create group API. The primary changes are:"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"  1. Capacity on total volume size will be evaluated now."},{"line_number":55,"context_line":"  2. If ``snapshot_id`` is specified, only the snapshot\u0027s backend will be used"},{"line_number":56,"context_line":"     for filtering."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* The request will be scheduled to the volume service as before, and the"},{"line_number":59,"context_line":"  existing driver interface ``create_group`` will be updated as below:"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df87a7cf_91feb169","line":56,"range":{"start_line":54,"start_character":2,"end_line":56,"end_character":19},"in_reply_to":"df87a7cf_5df14a00","updated":"2017-12-13 17:13:43.000000000","message":"Sure. I will keep this in mind","commit_id":"24336cc180e31ebe8055dbf570d6bbebfa212647"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"95f85b6c7d90eae431331c737003e66cacd46a55","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Alternatives"},{"line_number":94,"context_line":"------------"},{"line_number":95,"context_line":"A possible alternative could be pre-creating volumes using the bulk create"},{"line_number":96,"context_line":"command(outside of OpenStack) and then \"managing\" them into cinder. While"},{"line_number":97,"context_line":"this might be marginally faster than creating volumes one by one, it still"},{"line_number":98,"context_line":"requires x API calls, when ideally we would like just one as is proposed"},{"line_number":99,"context_line":"by this spec."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Also we can create multiple volumes using scripting, by repeatedly calling"},{"line_number":102,"context_line":"to Cinder."}],"source_content_type":"text/x-rst","patch_set":6,"id":"df87a7cf_7dcd2eb5","line":99,"range":{"start_line":95,"start_character":0,"end_line":99,"end_character":13},"updated":"2017-12-12 04:14:18.000000000","message":"But IIUC the issue that you\u0027re trying to solve is that you\u0027re backend gets very grumpy when you bombard it with a bunch of create calls at once?  \n\nNow you\u0027re saying you don\u0027t want to many API calls to Cinder either?","commit_id":"24336cc180e31ebe8055dbf570d6bbebfa212647"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"f70c60b45ba633b2684637ab022748eea70d5502","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Alternatives"},{"line_number":94,"context_line":"------------"},{"line_number":95,"context_line":"A possible alternative could be pre-creating volumes using the bulk create"},{"line_number":96,"context_line":"command(outside of OpenStack) and then \"managing\" them into cinder. While"},{"line_number":97,"context_line":"this might be marginally faster than creating volumes one by one, it still"},{"line_number":98,"context_line":"requires x API calls, when ideally we would like just one as is proposed"},{"line_number":99,"context_line":"by this spec."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Also we can create multiple volumes using scripting, by repeatedly calling"},{"line_number":102,"context_line":"to Cinder."}],"source_content_type":"text/x-rst","patch_set":6,"id":"df87a7cf_07c49f3f","line":99,"range":{"start_line":95,"start_character":0,"end_line":99,"end_character":13},"in_reply_to":"df87a7cf_7dcd2eb5","updated":"2017-12-13 17:13:43.000000000","message":"Apologies, I should clarify.  The user would only have to initiate one call. Granted, there are multiple API calls spawned by that API call(create_group).","commit_id":"24336cc180e31ebe8055dbf570d6bbebfa212647"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"95f85b6c7d90eae431331c737003e66cacd46a55","unresolved":false,"context_lines":[{"line_number":98,"context_line":"requires x API calls, when ideally we would like just one as is proposed"},{"line_number":99,"context_line":"by this spec."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Also we can create multiple volumes using scripting, by repeatedly calling"},{"line_number":102,"context_line":"to Cinder."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df87a7cf_ddbd5a02","line":102,"range":{"start_line":101,"start_character":0,"end_line":102,"end_character":10},"updated":"2017-12-12 04:14:18.000000000","message":"Yeah, I\u0027d just like to get a real idea for real-world end user use-cases for this.  It\u0027s a difficult problem with a lot of little *corners* to dig in to and I hate to add it just for the sake of adding it.  There\u0027s not only the initial implementation cost, but a very long term maintenance cost associated with this.","commit_id":"24336cc180e31ebe8055dbf570d6bbebfa212647"},{"author":{"_account_id":12670,"name":"Helen Walsh","email":"helen.walsh@emc.com","username":"walshh2"},"change_message_id":"f70c60b45ba633b2684637ab022748eea70d5502","unresolved":false,"context_lines":[{"line_number":98,"context_line":"requires x API calls, when ideally we would like just one as is proposed"},{"line_number":99,"context_line":"by this spec."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Also we can create multiple volumes using scripting, by repeatedly calling"},{"line_number":102,"context_line":"to Cinder."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"df87a7cf_a7ea93a9","line":102,"range":{"start_line":101,"start_character":0,"end_line":102,"end_character":10},"in_reply_to":"df87a7cf_ddbd5a02","updated":"2017-12-13 17:13:43.000000000","message":"I understand your concerns.","commit_id":"24336cc180e31ebe8055dbf570d6bbebfa212647"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"6fcc700f71fcd29a55ceeb208f6abda69fb5671d","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Problem description"},{"line_number":13,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":14,"context_line":"Cinder only allows one volume to be created at a time. For some backends,"},{"line_number":15,"context_line":"creating multiple volumes in one call takes about the same amount of time"},{"line_number":16,"context_line":"as creating one volume. Therefore a way to do bulk volume creation would"},{"line_number":17,"context_line":"improve the performance for them. This spec proposes to amend the existing"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f9dbf25_874c4977","line":14,"updated":"2018-02-27 16:32:17.000000000","message":"How many backends?","commit_id":"abb5f592244fdc75daf57aa75c69d2431e982f51"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"6fcc700f71fcd29a55ceeb208f6abda69fb5671d","unresolved":false,"context_lines":[{"line_number":71,"context_line":"  both the group and volumes will be updated with the \u0027error\u0027 status. But if"},{"line_number":72,"context_line":"  the exception is found during the call to the drivers ``create_volume``"},{"line_number":73,"context_line":"  where bulk creation is not supported, then only the corresponding volume"},{"line_number":74,"context_line":"  will be changed into \u0027error\u0027 status."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"* Rescheduling will not be allowed."},{"line_number":77,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f9dbf25_e7e2ed2f","line":74,"updated":"2018-02-27 16:32:17.000000000","message":"This can\u0027t be right, because you would then end up with a group that indicates that it was successfully created if not all of the volumes did not successfully create.","commit_id":"abb5f592244fdc75daf57aa75c69d2431e982f51"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"6fcc700f71fcd29a55ceeb208f6abda69fb5671d","unresolved":false,"context_lines":[{"line_number":78,"context_line":"* Because we are leveraging Generic Volume Group functionality we also"},{"line_number":79,"context_line":"  get bulk deletes, if the driver supports it."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"* This design will not facilitate bulk attaches."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Alternatives"},{"line_number":84,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1f9dbf25_879a09c3","line":81,"range":{"start_line":81,"start_character":2,"end_line":81,"end_character":48},"updated":"2018-02-27 16:32:17.000000000","message":"I think it needs to.  This was one of the agreements in Denver about this feature.","commit_id":"abb5f592244fdc75daf57aa75c69d2431e982f51"}]}
