)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"557db450fb1abbc8848e0bc4963102a5655ae001","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Consistency Groups Kilo Update"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This spec proposes some enhancements to the Consistency Groups support."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Iba5664608a7c59f180e1e60539a0a3905a5beae2"},{"line_number":12,"context_line":"blueprint: consistency-groups-kilo-update"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3a961159_9c536a38","line":9,"updated":"2014-12-11 05:09:57.000000000","message":"Would be nice to get quick bullet list of the things proposed in this spec.","commit_id":"4ec4996ca7929d0ecc4d76adddb9c0927fa7f64a"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"8bd3b2904214b42983725fe38c3689111f66d9c9","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Consistency Groups Kilo Update"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This spec proposes some enhancements to the Consistency Groups support."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Iba5664608a7c59f180e1e60539a0a3905a5beae2"},{"line_number":12,"context_line":"blueprint: consistency-groups-kilo-update"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3a961159_e388ff72","line":9,"in_reply_to":"3a961159_9c536a38","updated":"2014-12-13 03:25:11.000000000","message":"Done","commit_id":"4ec4996ca7929d0ecc4d76adddb9c0927fa7f64a"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"dc6d96408dab532e1f36aa82dcd67d94917106bc","unresolved":false,"context_lines":[{"line_number":26,"context_line":"  The following changes are proposed:"},{"line_number":27,"context_line":"  * A new cg_volumetypes table will be created."},{"line_number":28,"context_line":"  * This new table will contain 3 columns:"},{"line_number":29,"context_line":"    * Uuid of an cg_volumetype entry"},{"line_number":30,"context_line":"    * Uuid of a consistencygroup"},{"line_number":31,"context_line":"    * Uuid of a volume type"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3a961159_5748a92c","line":29,"updated":"2014-12-23 15:46:48.000000000","message":"An -?a","commit_id":"df746313e114af500a1aba0f3d5c55ae7e10f335"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"833390d0d427b0aec156bd8c3295a2cda1b545f6","unresolved":false,"context_lines":[{"line_number":26,"context_line":"  The following changes are proposed:"},{"line_number":27,"context_line":"  * A new cg_volumetypes table will be created."},{"line_number":28,"context_line":"  * This new table will contain 3 columns:"},{"line_number":29,"context_line":"    * Uuid of an cg_volumetype entry"},{"line_number":30,"context_line":"    * Uuid of a consistencygroup"},{"line_number":31,"context_line":"    * Uuid of a volume type"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3a961159_f307a616","line":29,"in_reply_to":"3a961159_5748a92c","updated":"2014-12-29 04:23:52.000000000","message":"Done","commit_id":"df746313e114af500a1aba0f3d5c55ae7e10f335"}],"specs/kilo/consistency-groups-kilo-update.rst":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"862f13f4de0897a8373bd6531819d1237cc54500","unresolved":false,"context_lines":[{"line_number":27,"context_line":"  There\u0027s no single API that allows a user to create a Consistency Group from"},{"line_number":28,"context_line":"  a Cgsnapshot."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"* After a CG is created and volumes are created and added to CG, you can"},{"line_number":31,"context_line":"  delete the entire CG with all volumes in it, but there\u0027s no API to add an"},{"line_number":32,"context_line":"  existing volume to the CG or remove a volume from it."},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_c3fb2879","line":30,"updated":"2014-11-24 18:54:12.000000000","message":"Should add a summary line here to be consistent with the other problem descriptions.  I.E. Modify Consistency Group to match up with below.","commit_id":"fc39d3e0d3d175974eacddd58f7d138b85949fd8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"41924943430ea8a13a98ae09a96e9772ddd85b31","unresolved":false,"context_lines":[{"line_number":27,"context_line":"  There\u0027s no single API that allows a user to create a Consistency Group from"},{"line_number":28,"context_line":"  a Cgsnapshot."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"* After a CG is created and volumes are created and added to CG, you can"},{"line_number":31,"context_line":"  delete the entire CG with all volumes in it, but there\u0027s no API to add an"},{"line_number":32,"context_line":"  existing volume to the CG or remove a volume from it."},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_1f239705","line":30,"in_reply_to":"5a890539_c3fb2879","updated":"2014-11-25 21:01:23.000000000","message":"Done","commit_id":"fc39d3e0d3d175974eacddd58f7d138b85949fd8"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"862f13f4de0897a8373bd6531819d1237cc54500","unresolved":false,"context_lines":[{"line_number":151,"context_line":"python-cinderclient needs to be changed to support the new APIs."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"* Create CG from CG snapshot"},{"line_number":154,"context_line":"  cinder consisgroup-create --name \u003cname\u003e --description \u003cdescription\u003e"},{"line_number":155,"context_line":"  --cgsnapshot \u003ccgsnapshot uuid or name\u003e"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"* Modify CG"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_c39c0811","line":154,"updated":"2014-11-24 18:54:12.000000000","message":"consisgroup-create seems really awkward.  Why not cg-create?","commit_id":"fc39d3e0d3d175974eacddd58f7d138b85949fd8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"41924943430ea8a13a98ae09a96e9772ddd85b31","unresolved":false,"context_lines":[{"line_number":151,"context_line":"python-cinderclient needs to be changed to support the new APIs."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"* Create CG from CG snapshot"},{"line_number":154,"context_line":"  cinder consisgroup-create --name \u003cname\u003e --description \u003cdescription\u003e"},{"line_number":155,"context_line":"  --cgsnapshot \u003ccgsnapshot uuid or name\u003e"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"* Modify CG"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_ff6ecb2d","line":154,"in_reply_to":"5a890539_c39c0811","updated":"2014-11-25 21:01:23.000000000","message":"Sorry! Too late for the name change. \"consisgroup-create\" is already in released python-cinderclient for Juno.  I was given suggestions to rename \"consistencygroup-create\" to \"cgroup-create\" or \"consisgroup-create\" because the former was too long.  \"cgroup\" is a linux concept so I didn\u0027t choose it.  I like \"cg-create\" but it was not a suggestion given at that time.","commit_id":"fc39d3e0d3d175974eacddd58f7d138b85949fd8"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"862f13f4de0897a8373bd6531819d1237cc54500","unresolved":false,"context_lines":[{"line_number":155,"context_line":"  --cgsnapshot \u003ccgsnapshot uuid or name\u003e"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"* Modify CG"},{"line_number":158,"context_line":"  cinder consisgroup-modify \u003ccg uuid or name\u003e --name \u003cnew name\u003e"},{"line_number":159,"context_line":"  --description \u003cnew description\u003e --volumes"},{"line_number":160,"context_line":"  \u003cvolume uuid\u003e [\u003cvolume uuid\u003e ...]"},{"line_number":161,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_439018ed","line":158,"updated":"2014-11-24 18:54:12.000000000","message":"cg-modify?","commit_id":"fc39d3e0d3d175974eacddd58f7d138b85949fd8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"41924943430ea8a13a98ae09a96e9772ddd85b31","unresolved":false,"context_lines":[{"line_number":155,"context_line":"  --cgsnapshot \u003ccgsnapshot uuid or name\u003e"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"* Modify CG"},{"line_number":158,"context_line":"  cinder consisgroup-modify \u003ccg uuid or name\u003e --name \u003cnew name\u003e"},{"line_number":159,"context_line":"  --description \u003cnew description\u003e --volumes"},{"line_number":160,"context_line":"  \u003cvolume uuid\u003e [\u003cvolume uuid\u003e ...]"},{"line_number":161,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_ff032b3f","line":158,"in_reply_to":"5a890539_439018ed","updated":"2014-11-25 21:01:23.000000000","message":"Same as above.","commit_id":"fc39d3e0d3d175974eacddd58f7d138b85949fd8"},{"author":{"_account_id":11079,"name":"TaoBai","email":"baitao5@huawei.com","username":"TaoBai"},"change_message_id":"0144d0372b7d9e51e27f3ef09ef5f496cffbccd6","unresolved":false,"context_lines":[{"line_number":157,"context_line":"* Modify CG"},{"line_number":158,"context_line":"  cinder consisgroup-modify \u003ccg uuid or name\u003e --name \u003cnew name\u003e"},{"line_number":159,"context_line":"  --description \u003cnew description\u003e --volumes"},{"line_number":160,"context_line":"  \u003cvolume uuid\u003e [\u003cvolume uuid\u003e ...]"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"Performance Impact"},{"line_number":163,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_77fc363f","line":160,"updated":"2014-11-21 08:46:10.000000000","message":"Hi Xing\n\nJust not quite sure how to distinguish add volume and remove volume with option \"--volumes\", should I list all the volumes which should be in the consist group?\n\nWhether could it be \"--addvolumes\" and \"--delvolumes\"?\n\nThanks\nTao","commit_id":"fc39d3e0d3d175974eacddd58f7d138b85949fd8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"41924943430ea8a13a98ae09a96e9772ddd85b31","unresolved":false,"context_lines":[{"line_number":157,"context_line":"* Modify CG"},{"line_number":158,"context_line":"  cinder consisgroup-modify \u003ccg uuid or name\u003e --name \u003cnew name\u003e"},{"line_number":159,"context_line":"  --description \u003cnew description\u003e --volumes"},{"line_number":160,"context_line":"  \u003cvolume uuid\u003e [\u003cvolume uuid\u003e ...]"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"Performance Impact"},{"line_number":163,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_3ffa1343","line":160,"in_reply_to":"5a890539_6348b4b3","updated":"2014-11-25 21:01:23.000000000","message":"Done","commit_id":"fc39d3e0d3d175974eacddd58f7d138b85949fd8"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"2aad8e19922305774c258d835752c9629ffe6eb2","unresolved":false,"context_lines":[{"line_number":157,"context_line":"* Modify CG"},{"line_number":158,"context_line":"  cinder consisgroup-modify \u003ccg uuid or name\u003e --name \u003cnew name\u003e"},{"line_number":159,"context_line":"  --description \u003cnew description\u003e --volumes"},{"line_number":160,"context_line":"  \u003cvolume uuid\u003e [\u003cvolume uuid\u003e ...]"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"Performance Impact"},{"line_number":163,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_e3ecbbbd","line":160,"in_reply_to":"5a890539_77fc363f","updated":"2014-11-24 04:54:40.000000000","message":"Hi Tao,\n\nMy initial thought was to list all volumes in the CG.  I\u0027ll be comparing the new list with the original list and determine whether to add or remove volumes.\n\nOn a second thought, it is probably better to use \u0027--add_volumes\u0027  and \u0027--remove_volumes\u0027.  Thanks for your suggestion!\n\nI\u0027ll update the spec with this change.\n\nBy the way, do you still have problems implementing the existing CG APIs?  Let me know if you still have problems and I\u0027m happy to help. My email is xing.yang@emc.com.","commit_id":"fc39d3e0d3d175974eacddd58f7d138b85949fd8"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"862f13f4de0897a8373bd6531819d1237cc54500","unresolved":false,"context_lines":[{"line_number":157,"context_line":"* Modify CG"},{"line_number":158,"context_line":"  cinder consisgroup-modify \u003ccg uuid or name\u003e --name \u003cnew name\u003e"},{"line_number":159,"context_line":"  --description \u003cnew description\u003e --volumes"},{"line_number":160,"context_line":"  \u003cvolume uuid\u003e [\u003cvolume uuid\u003e ...]"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"Performance Impact"},{"line_number":163,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_6348b4b3","line":160,"in_reply_to":"5a890539_e3ecbbbd","updated":"2014-11-24 18:54:12.000000000","message":"+1, I think this is a better approach.","commit_id":"fc39d3e0d3d175974eacddd58f7d138b85949fd8"},{"author":{"_account_id":11079,"name":"TaoBai","email":"baitao5@huawei.com","username":"TaoBai"},"change_message_id":"350ade7116f6d9724f33ee49d731d294a4cdf74c","unresolved":false,"context_lines":[{"line_number":157,"context_line":"* Modify CG"},{"line_number":158,"context_line":"  cinder consisgroup-modify \u003ccg uuid or name\u003e --name \u003cnew name\u003e"},{"line_number":159,"context_line":"  --description \u003cnew description\u003e --volumes"},{"line_number":160,"context_line":"  \u003cvolume uuid\u003e [\u003cvolume uuid\u003e ...]"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"Performance Impact"},{"line_number":163,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a890539_01553e1d","line":160,"in_reply_to":"5a890539_e3ecbbbd","updated":"2014-11-24 09:10:52.000000000","message":"Hi Xing\n\nThanks for you still remember my questions for CG. I am handing on the code of it, I will let you know once I meet any problem.As least right now, so far so good :\u003d)\n\n\nTao","commit_id":"fc39d3e0d3d175974eacddd58f7d138b85949fd8"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"dc6d96408dab532e1f36aa82dcd67d94917106bc","unresolved":false,"context_lines":[{"line_number":62,"context_line":"* DB Schema Changes"},{"line_number":63,"context_line":"  The following changes are proposed:"},{"line_number":64,"context_line":"  * A new cg_volumetypes table will be created."},{"line_number":65,"context_line":"  * This new table will contain 3 columns:"},{"line_number":66,"context_line":"    * Uuid of an cg_volumetype entry"},{"line_number":67,"context_line":"    * Uuid of a consistencygroup"},{"line_number":68,"context_line":"    * Uuid of a volume type"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a961159_57e4290c","line":65,"updated":"2014-12-23 15:46:48.000000000","message":"An-?a","commit_id":"df746313e114af500a1aba0f3d5c55ae7e10f335"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"833390d0d427b0aec156bd8c3295a2cda1b545f6","unresolved":false,"context_lines":[{"line_number":62,"context_line":"* DB Schema Changes"},{"line_number":63,"context_line":"  The following changes are proposed:"},{"line_number":64,"context_line":"  * A new cg_volumetypes table will be created."},{"line_number":65,"context_line":"  * This new table will contain 3 columns:"},{"line_number":66,"context_line":"    * Uuid of an cg_volumetype entry"},{"line_number":67,"context_line":"    * Uuid of a consistencygroup"},{"line_number":68,"context_line":"    * Uuid of a volume type"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a961159_b3fd1e0b","line":65,"in_reply_to":"3a961159_57e4290c","updated":"2014-12-29 04:23:52.000000000","message":"Done","commit_id":"df746313e114af500a1aba0f3d5c55ae7e10f335"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"dc6d96408dab532e1f36aa82dcd67d94917106bc","unresolved":false,"context_lines":[{"line_number":79,"context_line":"  The following changes are proposed:"},{"line_number":80,"context_line":"  * A new cg_volumetypes table will be created."},{"line_number":81,"context_line":"  * This new table will contain 3 columns:"},{"line_number":82,"context_line":"    * Uuid of an cg_volumetype entry"},{"line_number":83,"context_line":"    * Uuid of a consistencygroup"},{"line_number":84,"context_line":"    * Uuid of a volume type"},{"line_number":85,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a961159_f7b27504","line":82,"updated":"2014-12-23 15:46:48.000000000","message":"An-?a","commit_id":"df746313e114af500a1aba0f3d5c55ae7e10f335"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"833390d0d427b0aec156bd8c3295a2cda1b545f6","unresolved":false,"context_lines":[{"line_number":79,"context_line":"  The following changes are proposed:"},{"line_number":80,"context_line":"  * A new cg_volumetypes table will be created."},{"line_number":81,"context_line":"  * This new table will contain 3 columns:"},{"line_number":82,"context_line":"    * Uuid of an cg_volumetype entry"},{"line_number":83,"context_line":"    * Uuid of a consistencygroup"},{"line_number":84,"context_line":"    * Uuid of a volume type"},{"line_number":85,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a961159_d302aa08","line":82,"in_reply_to":"3a961159_f7b27504","updated":"2014-12-29 04:23:52.000000000","message":"Done","commit_id":"df746313e114af500a1aba0f3d5c55ae7e10f335"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"dc6d96408dab532e1f36aa82dcd67d94917106bc","unresolved":false,"context_lines":[{"line_number":126,"context_line":"            }"},{"line_number":127,"context_line":"        }"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"  * This method can update name, description, as well as volumes in the"},{"line_number":130,"context_line":"    consistency group. The list after \"addvolumes\" will contain UUIDs of"},{"line_number":131,"context_line":"    volumes to be added to the group and the list after \"removevolumes\""},{"line_number":132,"context_line":"    will contain UUIDs of volumes to be removed from the group."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a961159_779da565","line":129,"updated":"2014-12-23 15:46:48.000000000","message":"How does the update happen?  Catches that the name or description is different in the request?","commit_id":"df746313e114af500a1aba0f3d5c55ae7e10f335"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"833390d0d427b0aec156bd8c3295a2cda1b545f6","unresolved":false,"context_lines":[{"line_number":126,"context_line":"            }"},{"line_number":127,"context_line":"        }"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"  * This method can update name, description, as well as volumes in the"},{"line_number":130,"context_line":"    consistency group. The list after \"addvolumes\" will contain UUIDs of"},{"line_number":131,"context_line":"    volumes to be added to the group and the list after \"removevolumes\""},{"line_number":132,"context_line":"    will contain UUIDs of volumes to be removed from the group."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a961159_5007901d","line":129,"in_reply_to":"3a961159_779da565","updated":"2014-12-29 04:23:52.000000000","message":"The existing name and description are already in Cinder db.  So we can compare them and make a change if they are different. The validation will be done in API.","commit_id":"df746313e114af500a1aba0f3d5c55ae7e10f335"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"dc6d96408dab532e1f36aa82dcd67d94917106bc","unresolved":false,"context_lines":[{"line_number":169,"context_line":"Other deployer impact"},{"line_number":170,"context_line":"---------------------"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"Developer impact"},{"line_number":174,"context_line":"----------------"},{"line_number":175,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a961159_57a0a98f","line":172,"updated":"2014-12-23 15:46:48.000000000","message":"what is the impact on users who are already using CG groups? How do they upgrade with the new database tables being added?","commit_id":"df746313e114af500a1aba0f3d5c55ae7e10f335"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"833390d0d427b0aec156bd8c3295a2cda1b545f6","unresolved":false,"context_lines":[{"line_number":169,"context_line":"Other deployer impact"},{"line_number":170,"context_line":"---------------------"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"Developer impact"},{"line_number":174,"context_line":"----------------"},{"line_number":175,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a961159_9001f808","line":172,"in_reply_to":"3a961159_57a0a98f","updated":"2014-12-29 04:23:52.000000000","message":"upgrade and downgrade functions will be provided for db migrations.  This is added to the Proposed Change section. The db schema changes are internal and should be transparent to end users.","commit_id":"df746313e114af500a1aba0f3d5c55ae7e10f335"},{"author":{"_account_id":11538,"name":"Zhang Ni","email":"zhangni@huawei.com","username":"zhangni"},"change_message_id":"2468db075524651c953ff24bad714eaf46cea970","unresolved":false,"context_lines":[{"line_number":36,"context_line":"  Volume types are required when creating a Consistency Group.  Currently"},{"line_number":37,"context_line":"  volume types are stored in a field in the consistencygroups table in the"},{"line_number":38,"context_line":"  Cinder database.  There\u0027s a limitation to this approach, however, because"},{"line_number":39,"context_line":"  the size of the column is fixed."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Proposed change"},{"line_number":42,"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":"3a961159_c631785a","line":39,"updated":"2015-01-07 05:03:26.000000000","message":"I have a question, why there is multiple volume type in Consistency Group create API, but not in volume create API, is there any historical reason?","commit_id":"0038fff716a598a6dd9e4067ae58298bedbc57cf"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"7f6309f10fbba756762513119e2ad460e45474f9","unresolved":false,"context_lines":[{"line_number":36,"context_line":"  Volume types are required when creating a Consistency Group.  Currently"},{"line_number":37,"context_line":"  volume types are stored in a field in the consistencygroups table in the"},{"line_number":38,"context_line":"  Cinder database.  There\u0027s a limitation to this approach, however, because"},{"line_number":39,"context_line":"  the size of the column is fixed."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Proposed change"},{"line_number":42,"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":"3a961159_a13c5694","line":39,"in_reply_to":"3a961159_c631785a","updated":"2015-01-07 06:02:57.000000000","message":"A consistency group is designed to support more than one volume types. Actually this was one review comment I got during the CG cinder spec review phase. A volume of course can only belong to one volume type.","commit_id":"0038fff716a598a6dd9e4067ae58298bedbc57cf"},{"author":{"_account_id":11036,"name":"Jason Ni","email":"xinni@cn.ibm.com","username":"jason_ni"},"change_message_id":"366411034a2a8d330c867ed19121e2fc2dcacd81","unresolved":false,"context_lines":[{"line_number":37,"context_line":"  volume types are stored in a field in the consistencygroups table in the"},{"line_number":38,"context_line":"  Cinder database.  There\u0027s a limitation to this approach, however, because"},{"line_number":39,"context_line":"  the size of the column is fixed."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Proposed change"},{"line_number":42,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a961159_36cf5c59","line":40,"updated":"2014-12-29 04:43:52.000000000","message":"I suggest we add a prepare_snapshot API for database application point-in-time backup. For some storage array products like IBM Storwize and IBM DS8000, users need to do a preparation for a consistency group based snapshot. The snapshot target volumes and copy relationships should be created explicitly. And it\u0027s the copy relationship not the source volume that as a consistency unit added to the consistency group. It\u0027s better to have a prepare_snapshot API that can be invoked before we suspend database or quiesce vm. So that we can minimize the snapshot critical window.","commit_id":"0038fff716a598a6dd9e4067ae58298bedbc57cf"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"d7afe769d770036a16439d46341415ad04e1961d","unresolved":false,"context_lines":[{"line_number":37,"context_line":"  volume types are stored in a field in the consistencygroups table in the"},{"line_number":38,"context_line":"  Cinder database.  There\u0027s a limitation to this approach, however, because"},{"line_number":39,"context_line":"  the size of the column is fixed."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Proposed change"},{"line_number":42,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a961159_ee9591e4","line":40,"in_reply_to":"3a961159_105a04f2","updated":"2015-01-06 03:47:44.000000000","message":"Thanks Jay.  I have been thinking about it as well but couldn\u0027t determine what should be achieved in the prepare API vs the create API at the API and manager level.  I also want to be backward compatible and don\u0027t want to force everyone to implement the prepare API. It is going to essentially break up the existing create API into two APIs.\n\nSo I\u0027d prefer to address that in a different blueprint or bug fix if we\u0027ve determined to add it.","commit_id":"0038fff716a598a6dd9e4067ae58298bedbc57cf"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"426d7edfa9be6da8970a0882ff8c2ca8ae787426","unresolved":false,"context_lines":[{"line_number":37,"context_line":"  volume types are stored in a field in the consistencygroups table in the"},{"line_number":38,"context_line":"  Cinder database.  There\u0027s a limitation to this approach, however, because"},{"line_number":39,"context_line":"  the size of the column is fixed."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Proposed change"},{"line_number":42,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a961159_45e645b1","line":40,"in_reply_to":"3a961159_3138d8ed","updated":"2015-01-07 22:11:20.000000000","message":"I have been working with Jason to better flesh out his idea.  Regardless it is going to be something that requires more thought and another blue print.","commit_id":"0038fff716a598a6dd9e4067ae58298bedbc57cf"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"03ae9e7bf5bbdaf5dea28f6ad878a9485a83d9a5","unresolved":false,"context_lines":[{"line_number":37,"context_line":"  volume types are stored in a field in the consistencygroups table in the"},{"line_number":38,"context_line":"  Cinder database.  There\u0027s a limitation to this approach, however, because"},{"line_number":39,"context_line":"  the size of the column is fixed."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Proposed change"},{"line_number":42,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a961159_105a04f2","line":40,"in_reply_to":"3a961159_36cf5c59","updated":"2015-01-05 20:47:35.000000000","message":"Jason, As I noted in my note to you, I need to better understand what you are proposing here.  I see it being a good idea to add the ability to call prepare , but don\u0027t fully understand the intended benefits.","commit_id":"0038fff716a598a6dd9e4067ae58298bedbc57cf"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"4419f45bec37592733958a3208f63c2e44191bcc","unresolved":false,"context_lines":[{"line_number":37,"context_line":"  volume types are stored in a field in the consistencygroups table in the"},{"line_number":38,"context_line":"  Cinder database.  There\u0027s a limitation to this approach, however, because"},{"line_number":39,"context_line":"  the size of the column is fixed."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Proposed change"},{"line_number":42,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a961159_28cb6d1f","line":40,"in_reply_to":"3a961159_36cf5c59","updated":"2014-12-29 22:58:37.000000000","message":"Let me give this some thought.  Thanks.","commit_id":"0038fff716a598a6dd9e4067ae58298bedbc57cf"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e401f2b5cc4e09c7ac54a03e61f5b886a4ebafb2","unresolved":false,"context_lines":[{"line_number":37,"context_line":"  volume types are stored in a field in the consistencygroups table in the"},{"line_number":38,"context_line":"  Cinder database.  There\u0027s a limitation to this approach, however, because"},{"line_number":39,"context_line":"  the size of the column is fixed."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Proposed change"},{"line_number":42,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a961159_ab24a260","line":40,"in_reply_to":"3a961159_45e645b1","updated":"2015-01-13 06:08:24.000000000","message":"Thanks Jay!","commit_id":"0038fff716a598a6dd9e4067ae58298bedbc57cf"},{"author":{"_account_id":11036,"name":"Jason Ni","email":"xinni@cn.ibm.com","username":"jason_ni"},"change_message_id":"c8a109da76a3c1c775a29815675b750062d54ce8","unresolved":false,"context_lines":[{"line_number":37,"context_line":"  volume types are stored in a field in the consistencygroups table in the"},{"line_number":38,"context_line":"  Cinder database.  There\u0027s a limitation to this approach, however, because"},{"line_number":39,"context_line":"  the size of the column is fixed."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Proposed change"},{"line_number":42,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a961159_3138d8ed","line":40,"in_reply_to":"3a961159_ee9591e4","updated":"2015-01-06 04:35:24.000000000","message":"The prepare API should be optional indeed. We can think it as an optimization for minimizing service interruption. I fully agree that we can address this optimization in another blueprint. Thank you.","commit_id":"0038fff716a598a6dd9e4067ae58298bedbc57cf"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"bcc130403f6283094fdb2bdcb36e8f0d5fc9cf25","unresolved":false,"context_lines":[{"line_number":72,"context_line":"  The following changes are proposed:"},{"line_number":73,"context_line":"  * A new cg_volumetypes table will be created."},{"line_number":74,"context_line":"  * This new table will contain 3 columns:"},{"line_number":75,"context_line":"    * Uuid of a cg_volumetype entry"},{"line_number":76,"context_line":"    * Uuid of a consistencygroup"},{"line_number":77,"context_line":"    * Uuid of a volume type"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a961159_4a29a29a","line":75,"updated":"2015-01-12 05:46:33.000000000","message":"Do we really need a uuid for the entry itself? I didn\u0027t see anything in this spec that mentions what that would be used for. Seems like making sure the uuid of the cg and uuid of volume type are unique in an entry is enough?","commit_id":"0038fff716a598a6dd9e4067ae58298bedbc57cf"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e401f2b5cc4e09c7ac54a03e61f5b886a4ebafb2","unresolved":false,"context_lines":[{"line_number":72,"context_line":"  The following changes are proposed:"},{"line_number":73,"context_line":"  * A new cg_volumetypes table will be created."},{"line_number":74,"context_line":"  * This new table will contain 3 columns:"},{"line_number":75,"context_line":"    * Uuid of a cg_volumetype entry"},{"line_number":76,"context_line":"    * Uuid of a consistencygroup"},{"line_number":77,"context_line":"    * Uuid of a volume type"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a961159_2befd2ea","line":75,"in_reply_to":"3a961159_4a29a29a","updated":"2015-01-13 06:08:24.000000000","message":"uuid is probably not needed.  An Integer should work.  I\u0027ll update the spec.","commit_id":"0038fff716a598a6dd9e4067ae58298bedbc57cf"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"da6cc4e4c142a040bc306e13efe561cb7f1e1381","unresolved":false,"context_lines":[{"line_number":207,"context_line":"Documentation Impact"},{"line_number":208,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"Documentation changes are needed."},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"References"},{"line_number":213,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a961159_887aa123","line":210,"updated":"2014-12-29 22:33:05.000000000","message":"This is not really fair...currently there is zero documentation on consistency groups. :( Can we make that part of the update?","commit_id":"0038fff716a598a6dd9e4067ae58298bedbc57cf"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0fbc67fd27ab483a3edf2d701168ef4379792ceb","unresolved":false,"context_lines":[{"line_number":207,"context_line":"Documentation Impact"},{"line_number":208,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"Documentation changes are needed."},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"References"},{"line_number":213,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3a961159_287d2de8","line":210,"in_reply_to":"3a961159_887aa123","updated":"2014-12-29 22:54:24.000000000","message":"Sorry about that!  It\u0027s been on my TO-DO list for a while now. Will submit a doc patch before next Monday.","commit_id":"0038fff716a598a6dd9e4067ae58298bedbc57cf"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"73ed18c7dc2d9ed4e654e27bcb1092591e3f318c","unresolved":false,"context_lines":[{"line_number":55,"context_line":"  The following changes are proposed:"},{"line_number":56,"context_line":"  * A new cg_volumetypes table will be created."},{"line_number":57,"context_line":"  * This new table will contain 3 columns:"},{"line_number":58,"context_line":"    * id of a cg_volumetype entry (Integer)"},{"line_number":59,"context_line":"    * uuid of a consistencygroup"},{"line_number":60,"context_line":"    * uuid of a volume type"},{"line_number":61,"context_line":"    * The combination of the uuid of the CG and the uuid of the volume"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a961159_838fa975","line":58,"updated":"2015-01-14 00:47:28.000000000","message":"Continuing from ps6, Xing I\u0027m fine with this being a uuid. I was mainly asking to understand why we needed it when we could just set the uuid of cg and uui of volume type as a primary key. I now understand we\u0027re avoid this because of soft deletes and primary keys being set to columns that have values not generated like uuids can lead to bugs such as https://bugs.launchpad.net/cinder/+bug/1316540\n\nGoing with the use case of soft deletes, do we plan to allow restoring a consistency group? If not, we\u0027re just working around a problem with soft deletes. Also yes, this out of the scope of this spec.","commit_id":"3e534d11752d21a89222ed020a2c6a59d8880703"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"051331d3ea983942db2d6c80c14f213c338a74c4","unresolved":false,"context_lines":[{"line_number":55,"context_line":"  The following changes are proposed:"},{"line_number":56,"context_line":"  * A new cg_volumetypes table will be created."},{"line_number":57,"context_line":"  * This new table will contain 3 columns:"},{"line_number":58,"context_line":"    * id of a cg_volumetype entry (Integer)"},{"line_number":59,"context_line":"    * uuid of a consistencygroup"},{"line_number":60,"context_line":"    * uuid of a volume type"},{"line_number":61,"context_line":"    * The combination of the uuid of the CG and the uuid of the volume"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a961159_9d8c61d9","line":58,"in_reply_to":"3a961159_838fa975","updated":"2015-01-14 04:29:18.000000000","message":"Thanks Mike. I\u0027ll change it back to uuid.\n\nI don\u0027t have plans to allow restoring a CG in the scope of this spec, however, that is something I\u0027d like to do in the future (backup and restore CG).  If we allow restoring a CG, it will be restoring on top of a CG that is not deleted yet.  So I believe we\u0027ll still have the problem of soft delete.","commit_id":"3e534d11752d21a89222ed020a2c6a59d8880703"}]}
