)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":32345,"name":"Suman","email":"Suman.Shaw1@ibm.com","username":"sumanshaw1"},"change_message_id":"88d13d037b8c2912f6ad1baf6262184208b1bc8c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"b8c6cf85_b6587f64","updated":"2021-12-13 11:34:15.000000000","message":"recheck","commit_id":"d5296c4201095466168ed4d77586b79e2ebc605f"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"5fadad1ca0d264d8668d4501654eef71e807eba7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"113350b9_81a8afef","updated":"2021-12-14 04:23:13.000000000","message":"See specific comments inline.  Additionally, I have one general question I\u0027d like you to address: do we have to worry about a volume being placed into two groups that have competing requirements?  What I mean is, is it possible that by putting some volume in Group A and Group B, the user will bring about a condition such that it\u0027s impossible to use both A and B?  (We haven\u0027t had to worry about that before because it couldn\u0027t happen.)  Your proposal is focused on how we can keep track of a volume being in multiple groups in the database, but are there other issues we need to worry about?","commit_id":"f30a0227ecd2058b2bc915e7fc586877d8977ccd"},{"author":{"_account_id":14806,"name":"Chhavi Agarwal","email":"chhagarw@in.ibm.com","username":"chhagarw"},"change_message_id":"bb226dc5f741cc60ab7d16cced4186c334693632","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"4b9722ae_d20eab6b","in_reply_to":"113350b9_81a8afef","updated":"2022-01-16 13:10:09.000000000","message":"Thanks, Brian for taking the time to review, and sorry for the delayed response.\n\nVolume can be part of multiple groups if the groups are of a different group type. This means We can have the same volume to be part of snapshot-enabled and replication-enabled at a time, and both groups can be used for the requested operations. But if the volume is part of replication-enabled group1, then it cannot belong to another replication-enabled group2. \nSo GroupMapping APIs have to take care that volume is added to the allowed individual groups.\nAgree, apart from making changes in the database to associate volume to be part of multiple groups. There are other changes like Block device mapping group API\u0027s, which also need to be modified to take this into account.","commit_id":"f30a0227ecd2058b2bc915e7fc586877d8977ccd"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"8b859a1fef9c15cefc7e6be08b46e8a4202ddcfe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"ff9fbb7d_410780e0","updated":"2021-12-19 22:20:23.000000000","message":"Most of my questions/comments from PS7 still require responses.\n\nAdditionally, you need to explain whether this proposal has any impact on mv 3.38 (\"Tiramisu\", or end-user facing replication groups).","commit_id":"916e01e937cf5b224783e5e317c5c4a2833bf2b2"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"bd055c33ad3b388fcda0a9bfa7d1312423274c56","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"90ee4401_403e7864","updated":"2022-01-18 17:43:29.000000000","message":"Check out the Zuul failure and resolve please","commit_id":"af6f958e583f244ecfb4c5ab89327580cf33fb3b"},{"author":{"_account_id":14806,"name":"Chhavi Agarwal","email":"chhagarw@in.ibm.com","username":"chhagarw"},"change_message_id":"dd7d9dfebbace40db422a4b4dc856c1ff5505bdd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"12f7d44c_6a16d98e","updated":"2022-01-25 04:32:58.000000000","message":"recheck","commit_id":"76621c1853789a6eb44e594eae15ce2c85a4a4d1"},{"author":{"_account_id":24005,"name":"prashkre","email":"prashkre@in.ibm.com","username":"prashkre"},"change_message_id":"8c8330b0bfb91f9c8055cd9cc7d27ecebaed78be","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":19,"id":"b48b9a99_6a0b79f1","updated":"2022-01-24 19:14:16.000000000","message":"recheck","commit_id":"76621c1853789a6eb44e594eae15ce2c85a4a4d1"},{"author":{"_account_id":14806,"name":"Chhavi Agarwal","email":"chhagarw@in.ibm.com","username":"chhagarw"},"change_message_id":"28b861d444208f81a48867fb28ef19bf5ca816e6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"ec3966eb_65093e5b","in_reply_to":"b48b9a99_6a0b79f1","updated":"2022-02-02 04:10:09.000000000","message":"Done","commit_id":"76621c1853789a6eb44e594eae15ce2c85a4a4d1"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"0c61aeefdbabf1f7864f428dad1726855d25c159","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"f41c7112_90dcbccc","updated":"2022-01-25 15:05:18.000000000","message":"Please add this PS as a dependency https://review.opendev.org/c/openstack/cinder-specs/+/826302/\nuntil we can resolve the build issue.\nThis will give you built docs to check formatting.","commit_id":"c359290daeda2ac325e1746318be2c2939bf5328"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"3b4540a86a3d7122c28623a10a0df1b8fdfd91d0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"91499b89_e2223c10","updated":"2022-01-25 15:33:30.000000000","message":"Needed you to have a depends on in the commit message to that PS.\nBy adding your own test-requirements to the patch you would force this to merge on approval. \nThis is not what we want to do.\nWe are working on a larger fix.\nJust add the depends on in the commit message","commit_id":"207dce4b20cc7639f377e248ab7299e3bcee5396"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"2db6ca875d03fa441464b2500c36a031e42f8a11","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"02240e00_aebb0c36","updated":"2022-03-03 17:37:52.000000000","message":"Please move to Zed directory","commit_id":"65302b319d05bf9ea94a2fb2955c06b5c309b9d1"}],"specs/yoga/multiple-volume-groups.rst":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"5fadad1ca0d264d8668d4501654eef71e807eba7","unresolved":true,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Allow volume to be part of multiple volume groups"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9530962f_05b50d4c","line":7,"range":{"start_line":7,"start_character":49,"end_line":7,"end_character":51},"updated":"2021-12-14 04:23:13.000000000","message":"nit: should be the same length as the title (same thing for line 9)","commit_id":"f30a0227ecd2058b2bc915e7fc586877d8977ccd"},{"author":{"_account_id":14806,"name":"Chhavi Agarwal","email":"chhagarw@in.ibm.com","username":"chhagarw"},"change_message_id":"dd7d9dfebbace40db422a4b4dc856c1ff5505bdd","unresolved":false,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Allow volume to be part of multiple volume groups"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"d74297bf_59ac92c4","line":7,"range":{"start_line":7,"start_character":49,"end_line":7,"end_character":51},"in_reply_to":"9530962f_05b50d4c","updated":"2022-01-25 04:32:58.000000000","message":"Done","commit_id":"f30a0227ecd2058b2bc915e7fc586877d8977ccd"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"5fadad1ca0d264d8668d4501654eef71e807eba7","unresolved":true,"context_lines":[{"line_number":16,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Most of the storage vendors like PureStorage, IBM Storwize etc allow"},{"line_number":19,"context_line":"volumes to be part of multiple consistency groups. For eg if the volume"},{"line_number":20,"context_line":"is consistent replication enabled, storages allow volumes to be part of"},{"line_number":21,"context_line":"replicated consistency group for disaster recovery. At the same time it also"},{"line_number":22,"context_line":"allows user to perform consistent snapshot for any copy request on these"}],"source_content_type":"text/x-rst","patch_set":7,"id":"6f832224_823981c2","line":19,"range":{"start_line":19,"start_character":55,"end_line":19,"end_character":57},"updated":"2021-12-14 04:23:13.000000000","message":"s/eg/example/","commit_id":"f30a0227ecd2058b2bc915e7fc586877d8977ccd"},{"author":{"_account_id":14806,"name":"Chhavi Agarwal","email":"chhagarw@in.ibm.com","username":"chhagarw"},"change_message_id":"dd7d9dfebbace40db422a4b4dc856c1ff5505bdd","unresolved":false,"context_lines":[{"line_number":16,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Most of the storage vendors like PureStorage, IBM Storwize etc allow"},{"line_number":19,"context_line":"volumes to be part of multiple consistency groups. For eg if the volume"},{"line_number":20,"context_line":"is consistent replication enabled, storages allow volumes to be part of"},{"line_number":21,"context_line":"replicated consistency group for disaster recovery. At the same time it also"},{"line_number":22,"context_line":"allows user to perform consistent snapshot for any copy request on these"}],"source_content_type":"text/x-rst","patch_set":7,"id":"e0151559_4ee09de8","line":19,"range":{"start_line":19,"start_character":55,"end_line":19,"end_character":57},"in_reply_to":"6f832224_823981c2","updated":"2022-01-25 04:32:58.000000000","message":"Done","commit_id":"f30a0227ecd2058b2bc915e7fc586877d8977ccd"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"5fadad1ca0d264d8668d4501654eef71e807eba7","unresolved":true,"context_lines":[{"line_number":26,"context_line":"if the user needs to preserve and take snapshots of subsets of volumes"},{"line_number":27,"context_line":"for a VM at different time intervals."},{"line_number":28,"context_line":"Timestamp1 (v1, v2): Create the group and then group snapshot."},{"line_number":29,"context_line":"Timestamp2:(v2, v3, v4) Not allowed:"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"However current openstack DB schema does not allow volume to be part of"},{"line_number":32,"context_line":"multiple volume groups. This restricts consistent snapshot and volume group"}],"source_content_type":"text/x-rst","patch_set":7,"id":"4425800a_aa775ac9","line":29,"range":{"start_line":29,"start_character":24,"end_line":29,"end_character":36},"updated":"2021-12-14 04:23:13.000000000","message":"You point out that this isn\u0027t allowed in the next paragraph.  Here you\u0027re describing the use case you want to support, so say something like \"Create group 2 and then the group snapshot\"","commit_id":"f30a0227ecd2058b2bc915e7fc586877d8977ccd"},{"author":{"_account_id":14806,"name":"Chhavi Agarwal","email":"chhagarw@in.ibm.com","username":"chhagarw"},"change_message_id":"dd7d9dfebbace40db422a4b4dc856c1ff5505bdd","unresolved":false,"context_lines":[{"line_number":26,"context_line":"if the user needs to preserve and take snapshots of subsets of volumes"},{"line_number":27,"context_line":"for a VM at different time intervals."},{"line_number":28,"context_line":"Timestamp1 (v1, v2): Create the group and then group snapshot."},{"line_number":29,"context_line":"Timestamp2:(v2, v3, v4) Not allowed:"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"However current openstack DB schema does not allow volume to be part of"},{"line_number":32,"context_line":"multiple volume groups. This restricts consistent snapshot and volume group"}],"source_content_type":"text/x-rst","patch_set":7,"id":"14c268fd_37020331","line":29,"range":{"start_line":29,"start_character":24,"end_line":29,"end_character":36},"in_reply_to":"4425800a_aa775ac9","updated":"2022-01-25 04:32:58.000000000","message":"Done","commit_id":"f30a0227ecd2058b2bc915e7fc586877d8977ccd"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"5fadad1ca0d264d8668d4501654eef71e807eba7","unresolved":true,"context_lines":[{"line_number":37,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"User needs to create multiple snapshots of a VM with subset of volumes."},{"line_number":40,"context_line":"User has a volumes in the replicated CG, and now would like to perform consistent"},{"line_number":41,"context_line":"copy operations on some of the volumes which are part of a single workload."},{"line_number":42,"context_line":"For storage vendors Replicted consistency groups are critical resources which are"},{"line_number":43,"context_line":"limited and they need to be preserved. Replicated Consistency groups roles are for"}],"source_content_type":"text/x-rst","patch_set":7,"id":"6e840fc4_6779876b","line":40,"updated":"2021-12-14 04:23:13.000000000","message":"I think line 40 is a different point from line 39?  If so, leave a blank line between lines 39 and 40.","commit_id":"f30a0227ecd2058b2bc915e7fc586877d8977ccd"},{"author":{"_account_id":14806,"name":"Chhavi Agarwal","email":"chhagarw@in.ibm.com","username":"chhagarw"},"change_message_id":"dd7d9dfebbace40db422a4b4dc856c1ff5505bdd","unresolved":false,"context_lines":[{"line_number":37,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"User needs to create multiple snapshots of a VM with subset of volumes."},{"line_number":40,"context_line":"User has a volumes in the replicated CG, and now would like to perform consistent"},{"line_number":41,"context_line":"copy operations on some of the volumes which are part of a single workload."},{"line_number":42,"context_line":"For storage vendors Replicted consistency groups are critical resources which are"},{"line_number":43,"context_line":"limited and they need to be preserved. Replicated Consistency groups roles are for"}],"source_content_type":"text/x-rst","patch_set":7,"id":"16f673c8_fc97c689","line":40,"in_reply_to":"6e840fc4_6779876b","updated":"2022-01-25 04:32:58.000000000","message":"Done","commit_id":"f30a0227ecd2058b2bc915e7fc586877d8977ccd"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"5fadad1ca0d264d8668d4501654eef71e807eba7","unresolved":true,"context_lines":[{"line_number":42,"context_line":"For storage vendors Replicted consistency groups are critical resources which are"},{"line_number":43,"context_line":"limited and they need to be preserved. Replicated Consistency groups roles are for"},{"line_number":44,"context_line":"to perform disaster recovery, and they are capable of holding more than 1000 volumes"},{"line_number":45,"context_line":"across multiple VMs."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Proposed change"},{"line_number":48,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"c8ed97c4_73161edd","line":45,"updated":"2021-12-14 04:23:13.000000000","message":"It\u0027s not clear how lines 42-45 relate to lines 40-41.","commit_id":"f30a0227ecd2058b2bc915e7fc586877d8977ccd"},{"author":{"_account_id":14806,"name":"Chhavi Agarwal","email":"chhagarw@in.ibm.com","username":"chhagarw"},"change_message_id":"dd7d9dfebbace40db422a4b4dc856c1ff5505bdd","unresolved":false,"context_lines":[{"line_number":42,"context_line":"For storage vendors Replicted consistency groups are critical resources which are"},{"line_number":43,"context_line":"limited and they need to be preserved. Replicated Consistency groups roles are for"},{"line_number":44,"context_line":"to perform disaster recovery, and they are capable of holding more than 1000 volumes"},{"line_number":45,"context_line":"across multiple VMs."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Proposed change"},{"line_number":48,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3b66ac99_22608278","line":45,"in_reply_to":"c8ed97c4_73161edd","updated":"2022-01-25 04:32:58.000000000","message":"It\u0027s not an use case, was just trying to explain, how storage vendors use groups of different group types. and each volume group has different lifecycle. Replicated volume groups has a longer lifecycle, and can contain volumes which are part of multiple VMs. On the other side, consistent snapshot groups has a shorter lifecycle and are used to just create consistent point  in time snapshot and destroyed.","commit_id":"f30a0227ecd2058b2bc915e7fc586877d8977ccd"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"5fadad1ca0d264d8668d4501654eef71e807eba7","unresolved":true,"context_lines":[{"line_number":50,"context_line":"Proposed changes is to allow volume instances to be associated to multiple"},{"line_number":51,"context_line":"volume groups."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Create a new DB schema VolumeGroup for each volume and group relationship, each"},{"line_number":54,"context_line":"volume can have multiple VolumeGroup instances and single Group will contain"},{"line_number":55,"context_line":"the list of volumes with matching VolumeGroup.id\u003d\u003dGroup.id"},{"line_number":56,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3122a094_05d542b2","line":53,"range":{"start_line":53,"start_character":23,"end_line":53,"end_character":34},"updated":"2021-12-14 04:23:13.000000000","message":"I think we want to follow the example of the group_volume_type_mapping table and name this \u0027VolumeGroupMapping\u0027.","commit_id":"f30a0227ecd2058b2bc915e7fc586877d8977ccd"},{"author":{"_account_id":14806,"name":"Chhavi Agarwal","email":"chhagarw@in.ibm.com","username":"chhagarw"},"change_message_id":"28b861d444208f81a48867fb28ef19bf5ca816e6","unresolved":false,"context_lines":[{"line_number":50,"context_line":"Proposed changes is to allow volume instances to be associated to multiple"},{"line_number":51,"context_line":"volume groups."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Create a new DB schema VolumeGroup for each volume and group relationship, each"},{"line_number":54,"context_line":"volume can have multiple VolumeGroup instances and single Group will contain"},{"line_number":55,"context_line":"the list of volumes with matching VolumeGroup.id\u003d\u003dGroup.id"},{"line_number":56,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5704b586_6fc60677","line":53,"range":{"start_line":53,"start_character":23,"end_line":53,"end_character":34},"in_reply_to":"3122a094_05d542b2","updated":"2022-02-02 04:10:09.000000000","message":"Done","commit_id":"f30a0227ecd2058b2bc915e7fc586877d8977ccd"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"5fadad1ca0d264d8668d4501654eef71e807eba7","unresolved":true,"context_lines":[{"line_number":77,"context_line":"- Introduce new VolumeGroup to hold per volume group relationship."},{"line_number":78,"context_line":"- Modify Volume Schema to point to VolumeGroup"},{"line_number":79,"context_line":"- Modify Group Schema to fetch the volumes from VolumeGroup."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"REST API impact"},{"line_number":82,"context_line":"---------------"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9b168fe4_6dd9a9fe","line":80,"updated":"2021-12-14 04:23:13.000000000","message":"You will also have to modify the cinder.objects.volume.Volume object.  It currently has a \u0027group_id\u0027 and a \u0027group\u0027 field.","commit_id":"f30a0227ecd2058b2bc915e7fc586877d8977ccd"},{"author":{"_account_id":14806,"name":"Chhavi Agarwal","email":"chhagarw@in.ibm.com","username":"chhagarw"},"change_message_id":"dd7d9dfebbace40db422a4b4dc856c1ff5505bdd","unresolved":false,"context_lines":[{"line_number":77,"context_line":"- Introduce new VolumeGroup to hold per volume group relationship."},{"line_number":78,"context_line":"- Modify Volume Schema to point to VolumeGroup"},{"line_number":79,"context_line":"- Modify Group Schema to fetch the volumes from VolumeGroup."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"REST API impact"},{"line_number":82,"context_line":"---------------"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"1d8a5100_8c4e28a3","line":80,"in_reply_to":"9b168fe4_6dd9a9fe","updated":"2022-01-25 04:32:58.000000000","message":"agree, will add that as well","commit_id":"f30a0227ecd2058b2bc915e7fc586877d8977ccd"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"5fadad1ca0d264d8668d4501654eef71e807eba7","unresolved":true,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"REST API impact"},{"line_number":82,"context_line":"---------------"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"There will be modification in the internal DB API request and response to return the"},{"line_number":85,"context_line":"list of groups for the associated volume."},{"line_number":86,"context_line":"There will be changes in the Group create APIs to remove validations while add/remove."}],"source_content_type":"text/x-rst","patch_set":7,"id":"0502162d_cd58f663","line":83,"updated":"2021-12-14 04:23:13.000000000","message":"The primary issue here is how this changes the Block Storage API.\n\n1.  The volume detail response currently contains a \u0027group_id\u0027 field that\u0027s defined as a string (in practice, a UUID).  We can add a new microversion (say 3.69) that includes a \u0027groups\u0027 field that\u0027s defined to be a list of uuids, and we can define mv 3.69 so that \u0027group_id\u0027 is no longer included in the volume-detail response, and only the \u0027groups\u0027 list is included.  \n\n2. But if someone requests a microversion \u003c 3.xy, then we need to put something in the group_id field (it can\u0027t be null because that would mean the volume is not in a group, which may not be the case).  I guess we could put the first group in the group_id field. though I think we need to get a warning to the user that the volume is in multiple groups.  I wonder whether we could use a special UUID (maybe all zeros?), and then adjust the group-detail response so that when someone calls GET /v3/groups/00000000-0000-0000-0000-000000000000 , the description in the response says something like \"A volume with this group_id is contained in multiple groups.  Use microversion 3.69 in your volume-detail request to see the list of groups it\u0027s in.\"  (I don\u0027t know if that\u0027s a good idea, but it\u0027s something to think about ... somehow we need to address this problem.)\n\n3.  If anyone is currently relying on getting a 4xx back from the update-group call to prevent them from putting a volume into multiple groups, they will no longer be able to rely on that behavior.  (I don\u0027t think there\u0027s anything we can do about that other than mention it in the release notes and the api-ref.)","commit_id":"f30a0227ecd2058b2bc915e7fc586877d8977ccd"},{"author":{"_account_id":14806,"name":"Chhavi Agarwal","email":"chhagarw@in.ibm.com","username":"chhagarw"},"change_message_id":"28b861d444208f81a48867fb28ef19bf5ca816e6","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"REST API impact"},{"line_number":82,"context_line":"---------------"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"There will be modification in the internal DB API request and response to return the"},{"line_number":85,"context_line":"list of groups for the associated volume."},{"line_number":86,"context_line":"There will be changes in the Group create APIs to remove validations while add/remove."}],"source_content_type":"text/x-rst","patch_set":7,"id":"4610db6a_b892e272","line":83,"in_reply_to":"0502162d_cd58f663","updated":"2022-02-02 04:10:09.000000000","message":"Ack","commit_id":"f30a0227ecd2058b2bc915e7fc586877d8977ccd"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"5fadad1ca0d264d8668d4501654eef71e807eba7","unresolved":true,"context_lines":[{"line_number":120,"context_line":"----------------"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Discuss things that will affect other developers working on OpenStack,"},{"line_number":123,"context_line":"* If the cinder core allows multiple groups, it may require some changes"},{"line_number":124,"context_line":"in the cinder storage drivers if they are using any db apis to return the"},{"line_number":125,"context_line":"volume groups considering single instead of list."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Implementation"},{"line_number":128,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"1585e86c_95057011","line":125,"range":{"start_line":123,"start_character":2,"end_line":125,"end_character":49},"updated":"2021-12-14 04:23:13.000000000","message":"Well, they should be using oslo-versioned-objects, not direct DB access, but your point still holds.","commit_id":"f30a0227ecd2058b2bc915e7fc586877d8977ccd"},{"author":{"_account_id":14806,"name":"Chhavi Agarwal","email":"chhagarw@in.ibm.com","username":"chhagarw"},"change_message_id":"381d31da5b882c1ce8371831a29611ed8fc1bbee","unresolved":false,"context_lines":[{"line_number":120,"context_line":"----------------"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Discuss things that will affect other developers working on OpenStack,"},{"line_number":123,"context_line":"* If the cinder core allows multiple groups, it may require some changes"},{"line_number":124,"context_line":"in the cinder storage drivers if they are using any db apis to return the"},{"line_number":125,"context_line":"volume groups considering single instead of list."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Implementation"},{"line_number":128,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"76db177f_bdfcdece","line":125,"range":{"start_line":123,"start_character":2,"end_line":125,"end_character":49},"in_reply_to":"1585e86c_95057011","updated":"2022-02-02 04:10:48.000000000","message":"Ack","commit_id":"f30a0227ecd2058b2bc915e7fc586877d8977ccd"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"5fadad1ca0d264d8668d4501654eef71e807eba7","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":7,"id":"a1039bca_0e3ac369","line":192,"range":{"start_line":144,"start_character":0,"end_line":192,"end_character":0},"updated":"2021-12-14 04:23:13.000000000","message":"You need to address the questions asked in these sections.","commit_id":"f30a0227ecd2058b2bc915e7fc586877d8977ccd"},{"author":{"_account_id":14806,"name":"Chhavi Agarwal","email":"chhagarw@in.ibm.com","username":"chhagarw"},"change_message_id":"28b861d444208f81a48867fb28ef19bf5ca816e6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"7f0f6096_448d155b","line":192,"range":{"start_line":144,"start_character":0,"end_line":192,"end_character":0},"in_reply_to":"a1039bca_0e3ac369","updated":"2022-02-02 04:10:09.000000000","message":"Done","commit_id":"f30a0227ecd2058b2bc915e7fc586877d8977ccd"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"bd055c33ad3b388fcda0a9bfa7d1312423274c56","unresolved":true,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"Other contributors:"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"Work Items"},{"line_number":148,"context_line":"----------"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"Work items or tasks -- break the feature up into the things that need to be"},{"line_number":151,"context_line":"done to implement it. Those parts might end up being done by different people,"},{"line_number":152,"context_line":"but we\u0027re mostly trying to understand the timeline for implementation."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"Dependencies"},{"line_number":155,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"* Include specific references to specs and/or blueprints in cinder, or in other"},{"line_number":158,"context_line":"  projects, that this one either depends on or is related to."},{"line_number":159,"context_line":"* If this requires functionality of another project that is not currently used"},{"line_number":160,"context_line":"  by Cinder (such as the glance v2 API when we previously only required v1),"},{"line_number":161,"context_line":"  document that fact."},{"line_number":162,"context_line":"* Does this feature require any new library dependencies or code otherwise not"},{"line_number":163,"context_line":"  included in OpenStack? Or does it depend on a specific version of library?"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"Testing"},{"line_number":166,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"Please discuss how the change will be tested. We especially want to know what"},{"line_number":169,"context_line":"tempest tests will be added. It is assumed that unit test coverage will be"},{"line_number":170,"context_line":"added so that doesn\u0027t need to be mentioned explicitly, but discussion of why"},{"line_number":171,"context_line":"you think unit tests are sufficient and we don\u0027t need to add more tempest"},{"line_number":172,"context_line":"tests would need to be included."},{"line_number":173,"context_line":"Is this untestable in gate given current limitations (specific hardware /"},{"line_number":174,"context_line":"software configurations available)? If so, are there mitigation plans (3rd"},{"line_number":175,"context_line":"party testing, gate enhancements, etc)."},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"Documentation Impact"},{"line_number":178,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"What is the impact on the docs team of this change? Some changes might require"},{"line_number":181,"context_line":"donating resources to the docs team to have the documentation updated. Don\u0027t"},{"line_number":182,"context_line":"repeat details discussed above, but please reference them here."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"References"},{"line_number":185,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"Please add any useful references here. You are not required to have any"},{"line_number":188,"context_line":"reference. Moreover, this specification should still make sense when your"},{"line_number":189,"context_line":"references are unavailable. Examples of what you could include are:"},{"line_number":190,"context_line":"* Links to mailing list or IRC discussions"},{"line_number":191,"context_line":"* Links to notes from a summit session"},{"line_number":192,"context_line":"* Links to relevant research, if appropriate"},{"line_number":193,"context_line":"* Related specifications as appropriate (e.g. link to any vendor documentation)"},{"line_number":194,"context_line":"* Anything else you feel it is worthwhile to refer to"}],"source_content_type":"text/x-rst","patch_set":9,"id":"cb5b5ce7_7b68865c","line":194,"range":{"start_line":147,"start_character":0,"end_line":194,"end_character":53},"updated":"2022-01-18 17:43:29.000000000","message":"Please answer the questions addressed in these sections as previously requested","commit_id":"af6f958e583f244ecfb4c5ab89327580cf33fb3b"},{"author":{"_account_id":14806,"name":"Chhavi Agarwal","email":"chhagarw@in.ibm.com","username":"chhagarw"},"change_message_id":"28b861d444208f81a48867fb28ef19bf5ca816e6","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"Other contributors:"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"Work Items"},{"line_number":148,"context_line":"----------"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"Work items or tasks -- break the feature up into the things that need to be"},{"line_number":151,"context_line":"done to implement it. Those parts might end up being done by different people,"},{"line_number":152,"context_line":"but we\u0027re mostly trying to understand the timeline for implementation."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"Dependencies"},{"line_number":155,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"* Include specific references to specs and/or blueprints in cinder, or in other"},{"line_number":158,"context_line":"  projects, that this one either depends on or is related to."},{"line_number":159,"context_line":"* If this requires functionality of another project that is not currently used"},{"line_number":160,"context_line":"  by Cinder (such as the glance v2 API when we previously only required v1),"},{"line_number":161,"context_line":"  document that fact."},{"line_number":162,"context_line":"* Does this feature require any new library dependencies or code otherwise not"},{"line_number":163,"context_line":"  included in OpenStack? Or does it depend on a specific version of library?"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"Testing"},{"line_number":166,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"Please discuss how the change will be tested. We especially want to know what"},{"line_number":169,"context_line":"tempest tests will be added. It is assumed that unit test coverage will be"},{"line_number":170,"context_line":"added so that doesn\u0027t need to be mentioned explicitly, but discussion of why"},{"line_number":171,"context_line":"you think unit tests are sufficient and we don\u0027t need to add more tempest"},{"line_number":172,"context_line":"tests would need to be included."},{"line_number":173,"context_line":"Is this untestable in gate given current limitations (specific hardware /"},{"line_number":174,"context_line":"software configurations available)? If so, are there mitigation plans (3rd"},{"line_number":175,"context_line":"party testing, gate enhancements, etc)."},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"Documentation Impact"},{"line_number":178,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"What is the impact on the docs team of this change? Some changes might require"},{"line_number":181,"context_line":"donating resources to the docs team to have the documentation updated. Don\u0027t"},{"line_number":182,"context_line":"repeat details discussed above, but please reference them here."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"References"},{"line_number":185,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"Please add any useful references here. You are not required to have any"},{"line_number":188,"context_line":"reference. Moreover, this specification should still make sense when your"},{"line_number":189,"context_line":"references are unavailable. Examples of what you could include are:"},{"line_number":190,"context_line":"* Links to mailing list or IRC discussions"},{"line_number":191,"context_line":"* Links to notes from a summit session"},{"line_number":192,"context_line":"* Links to relevant research, if appropriate"},{"line_number":193,"context_line":"* Related specifications as appropriate (e.g. link to any vendor documentation)"},{"line_number":194,"context_line":"* Anything else you feel it is worthwhile to refer to"}],"source_content_type":"text/x-rst","patch_set":9,"id":"cf531e4d_55370d18","line":194,"range":{"start_line":147,"start_character":0,"end_line":194,"end_character":53},"in_reply_to":"cb5b5ce7_7b68865c","updated":"2022-02-02 04:10:09.000000000","message":"Done","commit_id":"af6f958e583f244ecfb4c5ab89327580cf33fb3b"}]}
