)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"3c50d3ea4d929a1216ad59ab5cd3dc6873913580","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"6b65c28a_ad100157","updated":"2021-11-11 07:11:33.000000000","message":"Hi Mridula, thanks for working on this.\nI\u0027ve left some comments inline.","commit_id":"122afde45c1a213d7da43f56d8cc8f9c8e92671a"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"5c1e73680657a62ccdd3e12cfa121c7e0204d6cc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"02364b22_6e978078","updated":"2021-11-17 14:53:48.000000000","message":"you need to add index.rst here to avoid gate failure","commit_id":"122afde45c1a213d7da43f56d8cc8f9c8e92671a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5cd684bcd39512e65fc074f5ea8c41b4e997a384","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"ff9b819b_72b3f2c9","updated":"2021-12-02 10:22:20.000000000","message":"Thanks Abhishek and Dan for review.","commit_id":"7a3f80db7872eb029ac173a89322e9d4cf387346"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0c4ca9ba074202616c4c0f21459a9e71bc2e7ce7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"d87e197d_b8e52b79","updated":"2021-12-03 14:10:27.000000000","message":"I think this is a good idea.  Some comments inline.","commit_id":"0b0d1c53b057c1529892cd635a688b282f2a7115"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"32c9b6b23241ede392665015f520d4127034748e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"61d07fb9_e75345ee","updated":"2021-12-03 15:24:31.000000000","message":"Thanks for the review Brian, please find my replies inline.","commit_id":"0b0d1c53b057c1529892cd635a688b282f2a7115"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"bd330122b82faabe8b96ba374f82758778ffb86b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"2ec788f7_a9fc328f","updated":"2021-12-07 14:54:11.000000000","message":"Some responses inline.  I\u0027m still against the query parameter, and I haven\u0027t given up on this being configurable on the glance side.  Otherwise, the revisions look good.","commit_id":"a5acb6221103f4972fb71fda8107f9264b3496a0"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"52838b7d53c39adce8294ccdbde93516795d4c01","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"973c21d5_23ec2ba4","updated":"2021-12-10 18:23:15.000000000","message":"Left a comment inline about the client change.  Still thinking about whether this could be configured on the glance side.  Otherwise, I think it looks good.","commit_id":"26a7914fbb18f0b55d2c9eaa29d9a4c76fcd4463"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"1069eab1c55222e7bdc2d77c21878fc0563c0f60","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"e4cd7f57_0e8612d4","updated":"2021-12-09 08:55:51.000000000","message":"Thanks Brian for your comments.","commit_id":"26a7914fbb18f0b55d2c9eaa29d9a4c76fcd4463"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"713725e2ab5d35c29ce7eee6012809276943cc6f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"5d5a1b3d_46cbe1fb","in_reply_to":"16787eaf_28cdc4ce","updated":"2021-12-13 07:33:42.000000000","message":"I think this should be cinder specific option better to handle at cinder side only.","commit_id":"26a7914fbb18f0b55d2c9eaa29d9a4c76fcd4463"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"6f4a2dda02492150478941ed28d418138a23a802","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"16787eaf_28cdc4ce","in_reply_to":"973c21d5_23ec2ba4","updated":"2021-12-12 17:04:52.000000000","message":"Hi Brian, as explained in my reply on the cinder side spec[1], this seems not feasible with the current flow we have but I\u0027m open for suggestions regarding it.\n\n[1] https://review.opendev.org/c/openstack/cinder-specs/+/810363/comment/24f05fda_849b0a04/","commit_id":"26a7914fbb18f0b55d2c9eaa29d9a4c76fcd4463"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"a382a778e55f61925bd6b8d8a549e24cfe590be7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"847d739e_a8a1ddc8","updated":"2021-12-23 06:01:18.000000000","message":"Approving the spec, thank you all for your reviews!!","commit_id":"b8c8227e29df2ae8ab23d465b03630193c8e340a"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"279c699327a77b2a323f738e0ecf2ab33d97bba0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"ded146e0_ed754c42","updated":"2021-12-21 00:09:38.000000000","message":"I\u0027m OK with the cinder-side option since the default will be current behavior.  Revisions LGTM.","commit_id":"b8c8227e29df2ae8ab23d465b03630193c8e340a"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"713725e2ab5d35c29ce7eee6012809276943cc6f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"e34cbf11_497fcd46","updated":"2021-12-13 07:33:42.000000000","message":"Looks good to me, thank you Rajat!!","commit_id":"b8c8227e29df2ae8ab23d465b03630193c8e340a"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"5559b424e35625fb23b7ba9afd2ff54fdb52794d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"528acd21_7e8421a5","updated":"2021-12-15 21:05:00.000000000","message":"Looks really good!\n\nOnly one question: this is going to be an option in Cinder, so shouldn\u0027t we plan some TripleO work as well?","commit_id":"b8c8227e29df2ae8ab23d465b03630193c8e340a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"6f4a2dda02492150478941ed28d418138a23a802","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"3f030d43_3b84fb7e","updated":"2021-12-12 17:04:52.000000000","message":"Thanks Brian for the review.","commit_id":"b8c8227e29df2ae8ab23d465b03630193c8e340a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"e6016e09f9c81e537bd5add40b4747a31abefba8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"d4820e00_867c1932","updated":"2021-12-17 12:29:16.000000000","message":"Thanks for the review Cyril, I\u0027ve left a reply inline.","commit_id":"b8c8227e29df2ae8ab23d465b03630193c8e340a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"e6016e09f9c81e537bd5add40b4747a31abefba8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"ced2e28b_77a2f2a8","in_reply_to":"528acd21_7e8421a5","updated":"2021-12-17 12:29:16.000000000","message":"That is correct but there is also the fact that every new config option requires a mapping on tripleo side (if we want to make it configurable for the operator during deployment).\nSince tripleo is a deployment tool and we\u0027ve many others, so the project (like glance or cinder) can\u0027t take care of all of them. I think this can be handled separately after the implementation is finalized and in place and then we can work on the tripleo (or any deployment tool) side changes to make it configurable during the deployment.","commit_id":"b8c8227e29df2ae8ab23d465b03630193c8e340a"}],"specs/yoga/approved/glance/expose-store-specific-info.rst":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"3c50d3ea4d929a1216ad59ab5cd3dc6873913580","unresolved":true,"context_lines":[{"line_number":8,"context_line":"Expose store specific information"},{"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"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad blueprint:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://blueprints.launchpad.net/glance/+spec/expose-store-specific-info"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"57152b6a_879deaa2","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":44},"updated":"2021-11-11 07:11:33.000000000","message":"remove this","commit_id":"122afde45c1a213d7da43f56d8cc8f9c8e92671a"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"730fdb2b57fb3aaa804912ee6ba21c9231b65c66","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Expose store specific information"},{"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"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad blueprint:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://blueprints.launchpad.net/glance/+spec/expose-store-specific-info"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"842f2d54_5d0739ce","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":44},"in_reply_to":"57152b6a_879deaa2","updated":"2021-11-19 08:33:54.000000000","message":"Ack","commit_id":"122afde45c1a213d7da43f56d8cc8f9c8e92671a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"3c50d3ea4d929a1216ad59ab5cd3dc6873913580","unresolved":true,"context_lines":[{"line_number":15,"context_line":"Problem description"},{"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":"When we upload a volume as an image to glance\u0027s rbd backend, the generic"},{"line_number":19,"context_line":"code path to copy data chunk by chunk is executed, which makes the operation"},{"line_number":20,"context_line":"very slow."},{"line_number":21,"context_line":"This can be optimized by using COW cloning for rbd backends, for this Cinder"}],"source_content_type":"text/x-rst","patch_set":1,"id":"cb5458f6_1777f12c","line":18,"range":{"start_line":18,"start_character":17,"end_line":18,"end_character":23},"updated":"2021-11-11 07:11:33.000000000","message":"volume from cinder\u0027s RBD backend","commit_id":"122afde45c1a213d7da43f56d8cc8f9c8e92671a"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"730fdb2b57fb3aaa804912ee6ba21c9231b65c66","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Problem description"},{"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":"When we upload a volume as an image to glance\u0027s rbd backend, the generic"},{"line_number":19,"context_line":"code path to copy data chunk by chunk is executed, which makes the operation"},{"line_number":20,"context_line":"very slow."},{"line_number":21,"context_line":"This can be optimized by using COW cloning for rbd backends, for this Cinder"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ed79c4d6_e6b5346e","line":18,"range":{"start_line":18,"start_character":17,"end_line":18,"end_character":23},"in_reply_to":"cb5458f6_1777f12c","updated":"2021-11-19 08:33:54.000000000","message":"Ack","commit_id":"122afde45c1a213d7da43f56d8cc8f9c8e92671a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"3c50d3ea4d929a1216ad59ab5cd3dc6873913580","unresolved":true,"context_lines":[{"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":""},{"line_number":27,"context_line":"We will be extending the stores_info API by introducing a ``detail`` flag which"},{"line_number":28,"context_line":"will expose the store specific details about the store like store type and rbd"},{"line_number":29,"context_line":"specific store info. At the moment the stores_info API provides the list of"},{"line_number":30,"context_line":"multiple-backend present enabled and the default store but not the type of"},{"line_number":31,"context_line":"default store."},{"line_number":32,"context_line":"If the flag is passed it will be verified and needs to be secured by admins only"}],"source_content_type":"text/x-rst","patch_set":1,"id":"57f6c2dd_a051f074","line":29,"range":{"start_line":28,"start_character":75,"end_line":29,"end_character":19},"updated":"2021-11-11 07:11:33.000000000","message":"store specific info.","commit_id":"122afde45c1a213d7da43f56d8cc8f9c8e92671a"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"730fdb2b57fb3aaa804912ee6ba21c9231b65c66","unresolved":false,"context_lines":[{"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":""},{"line_number":27,"context_line":"We will be extending the stores_info API by introducing a ``detail`` flag which"},{"line_number":28,"context_line":"will expose the store specific details about the store like store type and rbd"},{"line_number":29,"context_line":"specific store info. At the moment the stores_info API provides the list of"},{"line_number":30,"context_line":"multiple-backend present enabled and the default store but not the type of"},{"line_number":31,"context_line":"default store."},{"line_number":32,"context_line":"If the flag is passed it will be verified and needs to be secured by admins only"}],"source_content_type":"text/x-rst","patch_set":1,"id":"6d094023_e7743a07","line":29,"range":{"start_line":28,"start_character":75,"end_line":29,"end_character":19},"in_reply_to":"57f6c2dd_a051f074","updated":"2021-11-19 08:33:54.000000000","message":"Ack","commit_id":"122afde45c1a213d7da43f56d8cc8f9c8e92671a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"3c50d3ea4d929a1216ad59ab5cd3dc6873913580","unresolved":true,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"We will be extending the stores_info API by introducing a ``detail`` flag which"},{"line_number":28,"context_line":"will expose the store specific details about the store like store type and rbd"},{"line_number":29,"context_line":"specific store info. At the moment the stores_info API provides the list of"},{"line_number":30,"context_line":"multiple-backend present enabled and the default store but not the type of"},{"line_number":31,"context_line":"default store."},{"line_number":32,"context_line":"If the flag is passed it will be verified and needs to be secured by admins only"},{"line_number":33,"context_line":"policy rules."},{"line_number":34,"context_line":"We will be creating a new policy rule for it, the details would be exposed to the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"721c455f_3e03ed08","line":31,"range":{"start_line":29,"start_character":21,"end_line":31,"end_character":14},"updated":"2021-11-11 07:11:33.000000000","message":"move this to the beginning of proposed change","commit_id":"122afde45c1a213d7da43f56d8cc8f9c8e92671a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"3c50d3ea4d929a1216ad59ab5cd3dc6873913580","unresolved":true,"context_lines":[{"line_number":28,"context_line":"will expose the store specific details about the store like store type and rbd"},{"line_number":29,"context_line":"specific store info. At the moment the stores_info API provides the list of"},{"line_number":30,"context_line":"multiple-backend present enabled and the default store but not the type of"},{"line_number":31,"context_line":"default store."},{"line_number":32,"context_line":"If the flag is passed it will be verified and needs to be secured by admins only"},{"line_number":33,"context_line":"policy rules."},{"line_number":34,"context_line":"We will be creating a new policy rule for it, the details would be exposed to the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"c6cf3518_5585c009","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":14},"updated":"2021-11-11 07:11:33.000000000","message":"the stores.","commit_id":"122afde45c1a213d7da43f56d8cc8f9c8e92671a"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"730fdb2b57fb3aaa804912ee6ba21c9231b65c66","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"We will be extending the stores_info API by introducing a ``detail`` flag which"},{"line_number":28,"context_line":"will expose the store specific details about the store like store type and rbd"},{"line_number":29,"context_line":"specific store info. At the moment the stores_info API provides the list of"},{"line_number":30,"context_line":"multiple-backend present enabled and the default store but not the type of"},{"line_number":31,"context_line":"default store."},{"line_number":32,"context_line":"If the flag is passed it will be verified and needs to be secured by admins only"},{"line_number":33,"context_line":"policy rules."},{"line_number":34,"context_line":"We will be creating a new policy rule for it, the details would be exposed to the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5348cf98_54352dfd","line":31,"range":{"start_line":29,"start_character":21,"end_line":31,"end_character":14},"in_reply_to":"721c455f_3e03ed08","updated":"2021-11-19 08:33:54.000000000","message":"Ack","commit_id":"122afde45c1a213d7da43f56d8cc8f9c8e92671a"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"730fdb2b57fb3aaa804912ee6ba21c9231b65c66","unresolved":false,"context_lines":[{"line_number":28,"context_line":"will expose the store specific details about the store like store type and rbd"},{"line_number":29,"context_line":"specific store info. At the moment the stores_info API provides the list of"},{"line_number":30,"context_line":"multiple-backend present enabled and the default store but not the type of"},{"line_number":31,"context_line":"default store."},{"line_number":32,"context_line":"If the flag is passed it will be verified and needs to be secured by admins only"},{"line_number":33,"context_line":"policy rules."},{"line_number":34,"context_line":"We will be creating a new policy rule for it, the details would be exposed to the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"20d6988e_d928788f","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":14},"in_reply_to":"c6cf3518_5585c009","updated":"2021-11-19 08:33:54.000000000","message":"Ack","commit_id":"122afde45c1a213d7da43f56d8cc8f9c8e92671a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"3c50d3ea4d929a1216ad59ab5cd3dc6873913580","unresolved":true,"context_lines":[{"line_number":29,"context_line":"specific store info. At the moment the stores_info API provides the list of"},{"line_number":30,"context_line":"multiple-backend present enabled and the default store but not the type of"},{"line_number":31,"context_line":"default store."},{"line_number":32,"context_line":"If the flag is passed it will be verified and needs to be secured by admins only"},{"line_number":33,"context_line":"policy rules."},{"line_number":34,"context_line":"We will be creating a new policy rule for it, the details would be exposed to the"},{"line_number":35,"context_line":"admin only."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Alternatives"},{"line_number":38,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"68e95ad4_b91f574a","line":35,"range":{"start_line":32,"start_character":0,"end_line":35,"end_character":11},"updated":"2021-11-11 07:11:33.000000000","message":"Change this to,\n\nSince the store specific information is not intended for end users, this operation will be admin only and we need to introduce a new policy ``stores_info_detail``, that will default to admin only rule, to restrict this for non-admin users.","commit_id":"122afde45c1a213d7da43f56d8cc8f9c8e92671a"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"730fdb2b57fb3aaa804912ee6ba21c9231b65c66","unresolved":false,"context_lines":[{"line_number":29,"context_line":"specific store info. At the moment the stores_info API provides the list of"},{"line_number":30,"context_line":"multiple-backend present enabled and the default store but not the type of"},{"line_number":31,"context_line":"default store."},{"line_number":32,"context_line":"If the flag is passed it will be verified and needs to be secured by admins only"},{"line_number":33,"context_line":"policy rules."},{"line_number":34,"context_line":"We will be creating a new policy rule for it, the details would be exposed to the"},{"line_number":35,"context_line":"admin only."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Alternatives"},{"line_number":38,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"908c9601_ef463774","line":35,"range":{"start_line":32,"start_character":0,"end_line":35,"end_character":11},"in_reply_to":"68e95ad4_b91f574a","updated":"2021-11-19 08:33:54.000000000","message":"Ack","commit_id":"122afde45c1a213d7da43f56d8cc8f9c8e92671a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"3c50d3ea4d929a1216ad59ab5cd3dc6873913580","unresolved":true,"context_lines":[{"line_number":33,"context_line":"policy rules."},{"line_number":34,"context_line":"We will be creating a new policy rule for it, the details would be exposed to the"},{"line_number":35,"context_line":"admin only."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Alternatives"},{"line_number":38,"context_line":"------------"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"26c39129_7357c769","line":36,"updated":"2021-11-11 07:11:33.000000000","message":"Also add,\n\nA new method ``get_store_info`` will be added in the glance store driver class which will be overridden by each driver to return their driver specific information.\nFor the current usecase, we will only be exposing RBD specific information but this can be extended to get info about other stores as well.","commit_id":"122afde45c1a213d7da43f56d8cc8f9c8e92671a"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"730fdb2b57fb3aaa804912ee6ba21c9231b65c66","unresolved":false,"context_lines":[{"line_number":33,"context_line":"policy rules."},{"line_number":34,"context_line":"We will be creating a new policy rule for it, the details would be exposed to the"},{"line_number":35,"context_line":"admin only."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Alternatives"},{"line_number":38,"context_line":"------------"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a9c9540_e8c94779","line":36,"in_reply_to":"26c39129_7357c769","updated":"2021-11-19 08:33:54.000000000","message":"Ack","commit_id":"122afde45c1a213d7da43f56d8cc8f9c8e92671a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"3c50d3ea4d929a1216ad59ab5cd3dc6873913580","unresolved":true,"context_lines":[{"line_number":47,"context_line":"REST API impact"},{"line_number":48,"context_line":"---------------"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"We are going to add an admin only parameter ``detail`` which will return the store"},{"line_number":51,"context_line":"specific details like store type and rbd specific info."},{"line_number":52,"context_line":"The default value of the parameter will be false, if the value is True it will be"},{"line_number":53,"context_line":"verified first if the value is passed by the admin then the details will be returned,"},{"line_number":54,"context_line":"else not."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Security impact"},{"line_number":57,"context_line":"---------------"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"6ea37f76_a8218987","line":55,"range":{"start_line":50,"start_character":0,"end_line":55,"end_character":0},"updated":"2021-11-11 07:11:33.000000000","message":"Mention the updated URL with the description of the detail parameter as done in other spec[1]\n\n[1] https://review.opendev.org/c/openstack/glance-specs/+/813429/3/specs/yoga/approved/glance/append-tags.rst#63","commit_id":"122afde45c1a213d7da43f56d8cc8f9c8e92671a"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"730fdb2b57fb3aaa804912ee6ba21c9231b65c66","unresolved":false,"context_lines":[{"line_number":47,"context_line":"REST API impact"},{"line_number":48,"context_line":"---------------"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"We are going to add an admin only parameter ``detail`` which will return the store"},{"line_number":51,"context_line":"specific details like store type and rbd specific info."},{"line_number":52,"context_line":"The default value of the parameter will be false, if the value is True it will be"},{"line_number":53,"context_line":"verified first if the value is passed by the admin then the details will be returned,"},{"line_number":54,"context_line":"else not."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Security impact"},{"line_number":57,"context_line":"---------------"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"9972feb2_17b4345a","line":55,"range":{"start_line":50,"start_character":0,"end_line":55,"end_character":0},"in_reply_to":"6ea37f76_a8218987","updated":"2021-11-19 08:33:54.000000000","message":"Ack","commit_id":"122afde45c1a213d7da43f56d8cc8f9c8e92671a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"3c50d3ea4d929a1216ad59ab5cd3dc6873913580","unresolved":true,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Since this optimization skips the writing of image that happens on the glance side,"},{"line_number":60,"context_line":"it will also skip the checksum and hash value calculated in that scenario."},{"line_number":61,"context_line":"Cinder side will have new config option (default False) to use this optimization."},{"line_number":62,"context_line":"By default,it will be disabled."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Notifications impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"2aaafec8_3cb221e2","line":62,"range":{"start_line":61,"start_character":0,"end_line":62,"end_character":31},"updated":"2021-11-11 07:11:33.000000000","message":"Due to the above case, we will add a new config option on the cinder side to enable/disable this optimization. By default, it will be disabled.","commit_id":"122afde45c1a213d7da43f56d8cc8f9c8e92671a"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"730fdb2b57fb3aaa804912ee6ba21c9231b65c66","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Since this optimization skips the writing of image that happens on the glance side,"},{"line_number":60,"context_line":"it will also skip the checksum and hash value calculated in that scenario."},{"line_number":61,"context_line":"Cinder side will have new config option (default False) to use this optimization."},{"line_number":62,"context_line":"By default,it will be disabled."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Notifications impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"73453103_def39910","line":62,"range":{"start_line":61,"start_character":0,"end_line":62,"end_character":31},"in_reply_to":"2aaafec8_3cb221e2","updated":"2021-11-19 08:33:54.000000000","message":"Ack","commit_id":"122afde45c1a213d7da43f56d8cc8f9c8e92671a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"3c50d3ea4d929a1216ad59ab5cd3dc6873913580","unresolved":true,"context_lines":[{"line_number":70,"context_line":"Other end user impact"},{"line_number":71,"context_line":"---------------------"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"An admin only optional parameter ``detail`` will be added to the glanceclient command"},{"line_number":74,"context_line":"stores-info."},{"line_number":75,"context_line":"The parameter will accept boolean values, if ``True`` it will verify if the user is"},{"line_number":76,"context_line":"admin then it will expose ceph pool information, else not."},{"line_number":77,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"17a67d95_67ec182b","line":74,"range":{"start_line":73,"start_character":0,"end_line":74,"end_character":12},"updated":"2021-11-11 07:11:33.000000000","message":"glanceclient doesn\u0027t have context and has no idea about the user being admin or non-admin, the validation will be done by API. We can replace this with:\n\nA new optional parameter ``detail`` will be added to the stores info command on glanceclient side.","commit_id":"122afde45c1a213d7da43f56d8cc8f9c8e92671a"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"730fdb2b57fb3aaa804912ee6ba21c9231b65c66","unresolved":false,"context_lines":[{"line_number":70,"context_line":"Other end user impact"},{"line_number":71,"context_line":"---------------------"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"An admin only optional parameter ``detail`` will be added to the glanceclient command"},{"line_number":74,"context_line":"stores-info."},{"line_number":75,"context_line":"The parameter will accept boolean values, if ``True`` it will verify if the user is"},{"line_number":76,"context_line":"admin then it will expose ceph pool information, else not."},{"line_number":77,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"792fcc77_5df2ec9b","line":74,"range":{"start_line":73,"start_character":0,"end_line":74,"end_character":12},"in_reply_to":"17a67d95_67ec182b","updated":"2021-11-19 08:33:54.000000000","message":"Ack","commit_id":"122afde45c1a213d7da43f56d8cc8f9c8e92671a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"3c50d3ea4d929a1216ad59ab5cd3dc6873913580","unresolved":true,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"An admin only optional parameter ``detail`` will be added to the glanceclient command"},{"line_number":74,"context_line":"stores-info."},{"line_number":75,"context_line":"The parameter will accept boolean values, if ``True`` it will verify if the user is"},{"line_number":76,"context_line":"admin then it will expose ceph pool information, else not."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"612f91dc_497bcea9","line":75,"updated":"2021-11-11 07:11:33.000000000","message":"Also add the new command which users will use to see details.","commit_id":"122afde45c1a213d7da43f56d8cc8f9c8e92671a"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"730fdb2b57fb3aaa804912ee6ba21c9231b65c66","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"An admin only optional parameter ``detail`` will be added to the glanceclient command"},{"line_number":74,"context_line":"stores-info."},{"line_number":75,"context_line":"The parameter will accept boolean values, if ``True`` it will verify if the user is"},{"line_number":76,"context_line":"admin then it will expose ceph pool information, else not."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"a2af3f1a_a403af0c","line":75,"in_reply_to":"612f91dc_497bcea9","updated":"2021-11-19 08:33:54.000000000","message":"Ack","commit_id":"122afde45c1a213d7da43f56d8cc8f9c8e92671a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"3c50d3ea4d929a1216ad59ab5cd3dc6873913580","unresolved":true,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"An admin only optional parameter ``detail`` will be added to the glanceclient command"},{"line_number":74,"context_line":"stores-info."},{"line_number":75,"context_line":"The parameter will accept boolean values, if ``True`` it will verify if the user is"},{"line_number":76,"context_line":"admin then it will expose ceph pool information, else not."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Performance Impact"},{"line_number":79,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"17991b0b_6506be83","line":76,"range":{"start_line":75,"start_character":42,"end_line":76,"end_character":58},"updated":"2021-11-11 07:11:33.000000000","message":"If ``True``, it will expose store specific information else will show the non-detailed information about stores as it works currently.","commit_id":"122afde45c1a213d7da43f56d8cc8f9c8e92671a"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"730fdb2b57fb3aaa804912ee6ba21c9231b65c66","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"An admin only optional parameter ``detail`` will be added to the glanceclient command"},{"line_number":74,"context_line":"stores-info."},{"line_number":75,"context_line":"The parameter will accept boolean values, if ``True`` it will verify if the user is"},{"line_number":76,"context_line":"admin then it will expose ceph pool information, else not."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Performance Impact"},{"line_number":79,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"4847b34b_d2d9cec0","line":76,"range":{"start_line":75,"start_character":42,"end_line":76,"end_character":58},"in_reply_to":"17991b0b_6506be83","updated":"2021-11-19 08:33:54.000000000","message":"Ack","commit_id":"122afde45c1a213d7da43f56d8cc8f9c8e92671a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"3c50d3ea4d929a1216ad59ab5cd3dc6873913580","unresolved":true,"context_lines":[{"line_number":123,"context_line":"Work Items"},{"line_number":124,"context_line":"----------"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"* Add an optional parameter ``--detail`` on the glanceclient side, the value of"},{"line_number":127,"context_line":"  this flag will be passed to the glance API."},{"line_number":128,"context_line":"* Create a new policy admin only rule to verify the details are requested by"},{"line_number":129,"context_line":"  admin only."}],"source_content_type":"text/x-rst","patch_set":1,"id":"9920fc1d_ca19a967","line":126,"range":{"start_line":126,"start_character":40,"end_line":126,"end_character":41},"updated":"2021-11-11 07:11:33.000000000","message":"in the stores-info command","commit_id":"122afde45c1a213d7da43f56d8cc8f9c8e92671a"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"730fdb2b57fb3aaa804912ee6ba21c9231b65c66","unresolved":false,"context_lines":[{"line_number":123,"context_line":"Work Items"},{"line_number":124,"context_line":"----------"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"* Add an optional parameter ``--detail`` on the glanceclient side, the value of"},{"line_number":127,"context_line":"  this flag will be passed to the glance API."},{"line_number":128,"context_line":"* Create a new policy admin only rule to verify the details are requested by"},{"line_number":129,"context_line":"  admin only."}],"source_content_type":"text/x-rst","patch_set":1,"id":"39e19741_35ab47de","line":126,"range":{"start_line":126,"start_character":40,"end_line":126,"end_character":41},"in_reply_to":"9920fc1d_ca19a967","updated":"2021-11-19 08:33:54.000000000","message":"Ack","commit_id":"122afde45c1a213d7da43f56d8cc8f9c8e92671a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"3c50d3ea4d929a1216ad59ab5cd3dc6873913580","unresolved":true,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"* Add an optional parameter ``--detail`` on the glanceclient side, the value of"},{"line_number":127,"context_line":"  this flag will be passed to the glance API."},{"line_number":128,"context_line":"* Create a new policy admin only rule to verify the details are requested by"},{"line_number":129,"context_line":"  admin only."},{"line_number":130,"context_line":"* Response returned will be the store specific info."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"54711982_9826358f","line":129,"range":{"start_line":128,"start_character":2,"end_line":129,"end_character":13},"updated":"2021-11-11 07:11:33.000000000","message":"Create a new policy ``stores_info_detail`` that will default to admin only rule and enforce it if detail flag is passed.","commit_id":"122afde45c1a213d7da43f56d8cc8f9c8e92671a"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"730fdb2b57fb3aaa804912ee6ba21c9231b65c66","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"* Add an optional parameter ``--detail`` on the glanceclient side, the value of"},{"line_number":127,"context_line":"  this flag will be passed to the glance API."},{"line_number":128,"context_line":"* Create a new policy admin only rule to verify the details are requested by"},{"line_number":129,"context_line":"  admin only."},{"line_number":130,"context_line":"* Response returned will be the store specific info."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"642a60a3_434fe79b","line":129,"range":{"start_line":128,"start_character":2,"end_line":129,"end_character":13},"in_reply_to":"54711982_9826358f","updated":"2021-11-19 08:33:54.000000000","message":"Ack","commit_id":"122afde45c1a213d7da43f56d8cc8f9c8e92671a"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"3c50d3ea4d929a1216ad59ab5cd3dc6873913580","unresolved":true,"context_lines":[{"line_number":127,"context_line":"  this flag will be passed to the glance API."},{"line_number":128,"context_line":"* Create a new policy admin only rule to verify the details are requested by"},{"line_number":129,"context_line":"  admin only."},{"line_number":130,"context_line":"* Response returned will be the store specific info."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":1,"id":"64687256_18aa445a","line":130,"range":{"start_line":130,"start_character":0,"end_line":130,"end_character":52},"updated":"2021-11-11 07:11:33.000000000","message":"Add a new method ``get_store_info`` to glance store\u0027s driver class and override it for the rbd driver to return store specific info.","commit_id":"122afde45c1a213d7da43f56d8cc8f9c8e92671a"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"730fdb2b57fb3aaa804912ee6ba21c9231b65c66","unresolved":false,"context_lines":[{"line_number":127,"context_line":"  this flag will be passed to the glance API."},{"line_number":128,"context_line":"* Create a new policy admin only rule to verify the details are requested by"},{"line_number":129,"context_line":"  admin only."},{"line_number":130,"context_line":"* Response returned will be the store specific info."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":1,"id":"372c149d_401bced1","line":130,"range":{"start_line":130,"start_character":0,"end_line":130,"end_character":52},"in_reply_to":"64687256_18aa445a","updated":"2021-11-19 08:33:54.000000000","message":"Ack","commit_id":"122afde45c1a213d7da43f56d8cc8f9c8e92671a"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"313ba6ba8c6912899c7828cb18c0444ba4c7bf76","unresolved":true,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"When we upload a volume from cinder\u0027s RBD backend as an image to glance\u0027s"},{"line_number":17,"context_line":"rbd backend, the generic code path to copy data chunk by chunk is executed,"},{"line_number":18,"context_line":"which makes the operation very slow."},{"line_number":19,"context_line":"This can be optimized by using COW cloning for rbd backends, for this Cinder"},{"line_number":20,"context_line":"requires store type and rbd specific store info from glance side."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Proposed change"},{"line_number":23,"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":2,"id":"4c385487_8fd575c8","line":20,"range":{"start_line":18,"start_character":36,"end_line":20,"end_character":65},"updated":"2021-11-22 14:16:36.000000000","message":"nit, can be combined in single paragraph.","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"88adeebe65697ad4db503a729f7bb80738575c17","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"When we upload a volume from cinder\u0027s RBD backend as an image to glance\u0027s"},{"line_number":17,"context_line":"rbd backend, the generic code path to copy data chunk by chunk is executed,"},{"line_number":18,"context_line":"which makes the operation very slow."},{"line_number":19,"context_line":"This can be optimized by using COW cloning for rbd backends, for this Cinder"},{"line_number":20,"context_line":"requires store type and rbd specific store info from glance side."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Proposed change"},{"line_number":23,"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":2,"id":"abfef798_ff6e2b85","line":20,"range":{"start_line":18,"start_character":36,"end_line":20,"end_character":65},"in_reply_to":"4c385487_8fd575c8","updated":"2021-12-02 05:58:30.000000000","message":"Ack","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"313ba6ba8c6912899c7828cb18c0444ba4c7bf76","unresolved":true,"context_lines":[{"line_number":22,"context_line":"Proposed change"},{"line_number":23,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"At the moment the stores_info API provides the list of"},{"line_number":26,"context_line":"multiple-backend present enabled and the default store but not the type of"},{"line_number":27,"context_line":"the stores."},{"line_number":28,"context_line":"We will be extending the stores_info API by introducing a ``detail`` flag which"}],"source_content_type":"text/x-rst","patch_set":2,"id":"67f26119_8dd79c06","line":25,"range":{"start_line":25,"start_character":18,"end_line":25,"end_character":29},"updated":"2021-11-22 14:16:36.000000000","message":"specify entire API path like, `/v2/stores_info`","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"88adeebe65697ad4db503a729f7bb80738575c17","unresolved":false,"context_lines":[{"line_number":22,"context_line":"Proposed change"},{"line_number":23,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"At the moment the stores_info API provides the list of"},{"line_number":26,"context_line":"multiple-backend present enabled and the default store but not the type of"},{"line_number":27,"context_line":"the stores."},{"line_number":28,"context_line":"We will be extending the stores_info API by introducing a ``detail`` flag which"}],"source_content_type":"text/x-rst","patch_set":2,"id":"61f42b78_4599d192","line":25,"range":{"start_line":25,"start_character":18,"end_line":25,"end_character":29},"in_reply_to":"67f26119_8dd79c06","updated":"2021-12-02 05:58:30.000000000","message":"Done","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"313ba6ba8c6912899c7828cb18c0444ba4c7bf76","unresolved":true,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"At the moment the stores_info API provides the list of"},{"line_number":26,"context_line":"multiple-backend present enabled and the default store but not the type of"},{"line_number":27,"context_line":"the stores."},{"line_number":28,"context_line":"We will be extending the stores_info API by introducing a ``detail`` flag which"},{"line_number":29,"context_line":"will expose the store specific details about the store like store type and"},{"line_number":30,"context_line":"specific store info."}],"source_content_type":"text/x-rst","patch_set":2,"id":"8a1cfd81_4a93ddc1","line":27,"updated":"2021-11-22 14:16:36.000000000","message":"Add new blank line after this.","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"88adeebe65697ad4db503a729f7bb80738575c17","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"At the moment the stores_info API provides the list of"},{"line_number":26,"context_line":"multiple-backend present enabled and the default store but not the type of"},{"line_number":27,"context_line":"the stores."},{"line_number":28,"context_line":"We will be extending the stores_info API by introducing a ``detail`` flag which"},{"line_number":29,"context_line":"will expose the store specific details about the store like store type and"},{"line_number":30,"context_line":"specific store info."}],"source_content_type":"text/x-rst","patch_set":2,"id":"a66925b4_3979ad5c","line":27,"in_reply_to":"8a1cfd81_4a93ddc1","updated":"2021-12-02 05:58:30.000000000","message":"Done","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"313ba6ba8c6912899c7828cb18c0444ba4c7bf76","unresolved":true,"context_lines":[{"line_number":25,"context_line":"At the moment the stores_info API provides the list of"},{"line_number":26,"context_line":"multiple-backend present enabled and the default store but not the type of"},{"line_number":27,"context_line":"the stores."},{"line_number":28,"context_line":"We will be extending the stores_info API by introducing a ``detail`` flag which"},{"line_number":29,"context_line":"will expose the store specific details about the store like store type and"},{"line_number":30,"context_line":"specific store info."},{"line_number":31,"context_line":"Since the store specific information is not intended for end users, this operation"}],"source_content_type":"text/x-rst","patch_set":2,"id":"18593631_3b1c2bcc","line":28,"range":{"start_line":28,"start_character":25,"end_line":28,"end_character":36},"updated":"2021-11-22 14:16:36.000000000","message":"ditto","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"88adeebe65697ad4db503a729f7bb80738575c17","unresolved":false,"context_lines":[{"line_number":25,"context_line":"At the moment the stores_info API provides the list of"},{"line_number":26,"context_line":"multiple-backend present enabled and the default store but not the type of"},{"line_number":27,"context_line":"the stores."},{"line_number":28,"context_line":"We will be extending the stores_info API by introducing a ``detail`` flag which"},{"line_number":29,"context_line":"will expose the store specific details about the store like store type and"},{"line_number":30,"context_line":"specific store info."},{"line_number":31,"context_line":"Since the store specific information is not intended for end users, this operation"}],"source_content_type":"text/x-rst","patch_set":2,"id":"abcde7eb_19a5c820","line":28,"range":{"start_line":28,"start_character":25,"end_line":28,"end_character":36},"in_reply_to":"18593631_3b1c2bcc","updated":"2021-12-02 05:58:30.000000000","message":"Done","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"313ba6ba8c6912899c7828cb18c0444ba4c7bf76","unresolved":true,"context_lines":[{"line_number":27,"context_line":"the stores."},{"line_number":28,"context_line":"We will be extending the stores_info API by introducing a ``detail`` flag which"},{"line_number":29,"context_line":"will expose the store specific details about the store like store type and"},{"line_number":30,"context_line":"specific store info."},{"line_number":31,"context_line":"Since the store specific information is not intended for end users, this operation"},{"line_number":32,"context_line":"will be admin only and we need to introduce a new policy ``stores_info_detail``,"},{"line_number":33,"context_line":"that will default to admin only rule, to restrict this for non-admin users."}],"source_content_type":"text/x-rst","patch_set":2,"id":"1c81de69_3daef01a","line":30,"updated":"2021-11-22 14:16:36.000000000","message":"SAME, add new blank line","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"88adeebe65697ad4db503a729f7bb80738575c17","unresolved":false,"context_lines":[{"line_number":27,"context_line":"the stores."},{"line_number":28,"context_line":"We will be extending the stores_info API by introducing a ``detail`` flag which"},{"line_number":29,"context_line":"will expose the store specific details about the store like store type and"},{"line_number":30,"context_line":"specific store info."},{"line_number":31,"context_line":"Since the store specific information is not intended for end users, this operation"},{"line_number":32,"context_line":"will be admin only and we need to introduce a new policy ``stores_info_detail``,"},{"line_number":33,"context_line":"that will default to admin only rule, to restrict this for non-admin users."}],"source_content_type":"text/x-rst","patch_set":2,"id":"e83105ea_96760cf6","line":30,"in_reply_to":"1c81de69_3daef01a","updated":"2021-12-02 05:58:30.000000000","message":"Done","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"71a7bca58684bd91508b0d885d8b03fb84ef5847","unresolved":true,"context_lines":[{"line_number":30,"context_line":"specific store info."},{"line_number":31,"context_line":"Since the store specific information is not intended for end users, this operation"},{"line_number":32,"context_line":"will be admin only and we need to introduce a new policy ``stores_info_detail``,"},{"line_number":33,"context_line":"that will default to admin only rule, to restrict this for non-admin users."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"A new method ``get_store_info`` will be added in the glance store driver class"},{"line_number":36,"context_line":"which will be overridden by each driver to return their driver specific information."}],"source_content_type":"text/x-rst","patch_set":2,"id":"303939e6_764f5d9d","line":33,"updated":"2021-11-29 16:21:41.000000000","message":"Sounds like this is not even just not for end users, but mostly just for other services (i.e. not for humans) right? Perhaps some more words here that this is a service API, which when we get the default service role in keystone, this will be limited to maybe \"system:admin or role:service\" ?","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"00257ed74eeb5f7787b74d270e448ace2edf363d","unresolved":true,"context_lines":[{"line_number":30,"context_line":"specific store info."},{"line_number":31,"context_line":"Since the store specific information is not intended for end users, this operation"},{"line_number":32,"context_line":"will be admin only and we need to introduce a new policy ``stores_info_detail``,"},{"line_number":33,"context_line":"that will default to admin only rule, to restrict this for non-admin users."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"A new method ``get_store_info`` will be added in the glance store driver class"},{"line_number":36,"context_line":"which will be overridden by each driver to return their driver specific information."}],"source_content_type":"text/x-rst","patch_set":2,"id":"452c50e2_51d28a6b","line":33,"in_reply_to":"303939e6_764f5d9d","updated":"2021-12-01 13:48:59.000000000","message":"As per the community goal of secure RBAC, the service role is planned to implement in Phase 2[1] and it\u0027s mentioned that keystone will add that in Z release and services will start adapting it in AA[2]\nThe policy rule you mentioned makes sense but i think for now (in Yoga) we need to keep it to role:admin only. thoughts?\n\n[1] https://review.opendev.org/c/openstack/governance/+/815158/20/goals/proposed/consistent-and-secure-rbac.rst#457\n[2] https://review.opendev.org/c/openstack/governance/+/815158/20/goals/proposed/consistent-and-secure-rbac.rst#630","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5cd684bcd39512e65fc074f5ea8c41b4e997a384","unresolved":false,"context_lines":[{"line_number":30,"context_line":"specific store info."},{"line_number":31,"context_line":"Since the store specific information is not intended for end users, this operation"},{"line_number":32,"context_line":"will be admin only and we need to introduce a new policy ``stores_info_detail``,"},{"line_number":33,"context_line":"that will default to admin only rule, to restrict this for non-admin users."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"A new method ``get_store_info`` will be added in the glance store driver class"},{"line_number":36,"context_line":"which will be overridden by each driver to return their driver specific information."}],"source_content_type":"text/x-rst","patch_set":2,"id":"8dc0c7f1_14b7c9a4","line":33,"in_reply_to":"39d27278_2bdae22d","updated":"2021-12-02 10:22:20.000000000","message":"Done","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d405917914ca36b9696dc246bc4ab9f53b0fa582","unresolved":true,"context_lines":[{"line_number":30,"context_line":"specific store info."},{"line_number":31,"context_line":"Since the store specific information is not intended for end users, this operation"},{"line_number":32,"context_line":"will be admin only and we need to introduce a new policy ``stores_info_detail``,"},{"line_number":33,"context_line":"that will default to admin only rule, to restrict this for non-admin users."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"A new method ``get_store_info`` will be added in the glance store driver class"},{"line_number":36,"context_line":"which will be overridden by each driver to return their driver specific information."}],"source_content_type":"text/x-rst","patch_set":2,"id":"39d27278_2bdae22d","line":33,"in_reply_to":"452c50e2_51d28a6b","updated":"2021-12-01 14:54:44.000000000","message":"Yeah, I\u0027m just saying maybe it\u0027s worth noting in here that it\u0027s intended for computers to process this info, and that it would be a candidate for the service role when we get it.","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"313ba6ba8c6912899c7828cb18c0444ba4c7bf76","unresolved":true,"context_lines":[{"line_number":31,"context_line":"Since the store specific information is not intended for end users, this operation"},{"line_number":32,"context_line":"will be admin only and we need to introduce a new policy ``stores_info_detail``,"},{"line_number":33,"context_line":"that will default to admin only rule, to restrict this for non-admin users."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"A new method ``get_store_info`` will be added in the glance store driver class"},{"line_number":36,"context_line":"which will be overridden by each driver to return their driver specific information."},{"line_number":37,"context_line":"For the current usecase, we will only be exposing RBD specific information but this"},{"line_number":38,"context_line":"can be extended to get info about other stores as well."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Alternatives"},{"line_number":41,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"498f3cb4_2ccfad03","line":38,"range":{"start_line":34,"start_character":0,"end_line":38,"end_character":55},"updated":"2021-11-22 14:16:36.000000000","message":"does get_store_details sounds better?\n\nAlso, you should specify that the store drivers which are not implementing/overriding this method will return empty dict or something? \n\nAlso if we are going at glance-store end for implementation then we need to make a release out of store library before implementing this in glance, so should we have another blueprint/lite-spec for tracking these efforts at glance side?\n\nAlso, in case of multiple stores support, we already have a method to get store object from store identifier \u0027get_store_from_store_identifier\u0027 [1] which will return particular store object to us using which we can access the configuration options/values which we need to fetch.\n\n[1] https://github.com/openstack/glance_store/blob/master/glance_store/multi_backend.py#L335","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"71a7bca58684bd91508b0d885d8b03fb84ef5847","unresolved":true,"context_lines":[{"line_number":31,"context_line":"Since the store specific information is not intended for end users, this operation"},{"line_number":32,"context_line":"will be admin only and we need to introduce a new policy ``stores_info_detail``,"},{"line_number":33,"context_line":"that will default to admin only rule, to restrict this for non-admin users."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"A new method ``get_store_info`` will be added in the glance store driver class"},{"line_number":36,"context_line":"which will be overridden by each driver to return their driver specific information."},{"line_number":37,"context_line":"For the current usecase, we will only be exposing RBD specific information but this"},{"line_number":38,"context_line":"can be extended to get info about other stores as well."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Alternatives"},{"line_number":41,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"b4c09e99_a6461330","line":38,"range":{"start_line":34,"start_character":0,"end_line":38,"end_character":55},"in_reply_to":"498f3cb4_2ccfad03","updated":"2021-11-29 16:21:41.000000000","message":"What prevents us from implementing this for each store? Unless it\u0027s very laborious, I think we should expect all the store drivers to get this capability added outright. It also helps to make sure that we have what we need to implement it for every driver and not just one.\n\nThese sorts of \"we\u0027re adding a new API and only implementing it for one driver\" things end up as perpetually only supporting the original driver. That makes them effectively driver-specific and hurt the ability for services like glance to realistically abstract the lower-level stuff, which is the whole point of their existence.","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5cd684bcd39512e65fc074f5ea8c41b4e997a384","unresolved":false,"context_lines":[{"line_number":31,"context_line":"Since the store specific information is not intended for end users, this operation"},{"line_number":32,"context_line":"will be admin only and we need to introduce a new policy ``stores_info_detail``,"},{"line_number":33,"context_line":"that will default to admin only rule, to restrict this for non-admin users."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"A new method ``get_store_info`` will be added in the glance store driver class"},{"line_number":36,"context_line":"which will be overridden by each driver to return their driver specific information."},{"line_number":37,"context_line":"For the current usecase, we will only be exposing RBD specific information but this"},{"line_number":38,"context_line":"can be extended to get info about other stores as well."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Alternatives"},{"line_number":41,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"69cd4ed3_d7365045","line":38,"range":{"start_line":34,"start_character":0,"end_line":38,"end_character":55},"in_reply_to":"b4c09e99_a6461330","updated":"2021-12-02 10:22:20.000000000","message":"I think rather than introducing a new method, we are going to use the existing``get_store_from_store_identifier`` as we are able to get the required info from the Store object returned from that method.\nWill update the text in next PS.","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"313ba6ba8c6912899c7828cb18c0444ba4c7bf76","unresolved":true,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"We are going to add an admin only parameter ``detail`` which will return the store"},{"line_number":54,"context_line":"specific details like store type and rbd specific info."},{"line_number":55,"context_line":"The default value of the parameter will be false, if the value is True it will be"},{"line_number":56,"context_line":"verified first if the value is passed by the admin then the details will be returned,"},{"line_number":57,"context_line":"else not."},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"300fe666_e20af184","line":55,"range":{"start_line":55,"start_character":43,"end_line":55,"end_character":48},"updated":"2021-11-22 14:16:36.000000000","message":"False","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"88adeebe65697ad4db503a729f7bb80738575c17","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"We are going to add an admin only parameter ``detail`` which will return the store"},{"line_number":54,"context_line":"specific details like store type and rbd specific info."},{"line_number":55,"context_line":"The default value of the parameter will be false, if the value is True it will be"},{"line_number":56,"context_line":"verified first if the value is passed by the admin then the details will be returned,"},{"line_number":57,"context_line":"else not."},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3614d8c0_60e03503","line":55,"range":{"start_line":55,"start_character":43,"end_line":55,"end_character":48},"in_reply_to":"300fe666_e20af184","updated":"2021-12-02 05:58:30.000000000","message":"Done","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"313ba6ba8c6912899c7828cb18c0444ba4c7bf76","unresolved":true,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":".. code-block:: console"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"  GET /v2/info/stores?detail\u003dFalse"},{"line_number":62,"context_line":".. code-block:: python"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"  {"}],"source_content_type":"text/x-rst","patch_set":2,"id":"59d6893c_700deee7","line":61,"range":{"start_line":61,"start_character":22,"end_line":61,"end_character":34},"updated":"2021-11-22 14:16:36.000000000","message":"I think you should specify it as detail\u003dTrue as there is no need to pass detail\u003dFalse if we don\u0027t want to fetch the details","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"88adeebe65697ad4db503a729f7bb80738575c17","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":".. code-block:: console"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"  GET /v2/info/stores?detail\u003dFalse"},{"line_number":62,"context_line":".. code-block:: python"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"  {"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1055e275_2ed4ddf2","line":61,"range":{"start_line":61,"start_character":22,"end_line":61,"end_character":34},"in_reply_to":"59d6893c_700deee7","updated":"2021-12-02 05:58:30.000000000","message":"Done","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"313ba6ba8c6912899c7828cb18c0444ba4c7bf76","unresolved":true,"context_lines":[{"line_number":66,"context_line":"  }"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"  * The \u003cboolean\u003e \u0027detail\u0027 will expose the store specific details about the stores."},{"line_number":69,"context_line":"    It takes boolean values, If True, it will expose store specific information "},{"line_number":70,"context_line":"    else will show the non-detailed information about stores."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a29dd3a_d81dd2dc","line":69,"range":{"start_line":69,"start_character":79,"end_line":69,"end_character":80},"updated":"2021-11-22 14:16:36.000000000","message":"remove trailing white space","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"88adeebe65697ad4db503a729f7bb80738575c17","unresolved":false,"context_lines":[{"line_number":66,"context_line":"  }"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"  * The \u003cboolean\u003e \u0027detail\u0027 will expose the store specific details about the stores."},{"line_number":69,"context_line":"    It takes boolean values, If True, it will expose store specific information "},{"line_number":70,"context_line":"    else will show the non-detailed information about stores."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"4a496cc7_bf2c4501","line":69,"range":{"start_line":69,"start_character":79,"end_line":69,"end_character":80},"in_reply_to":"3a29dd3a_d81dd2dc","updated":"2021-12-02 05:58:30.000000000","message":"Done","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"313ba6ba8c6912899c7828cb18c0444ba4c7bf76","unresolved":true,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"  * The \u003cboolean\u003e \u0027detail\u0027 will expose the store specific details about the stores."},{"line_number":69,"context_line":"    It takes boolean values, If True, it will expose store specific information "},{"line_number":70,"context_line":"    else will show the non-detailed information about stores."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Security impact"},{"line_number":73,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"be62b9c8_5e58beff","line":70,"updated":"2021-11-22 14:16:36.000000000","message":"I think you should also provide/specify the json output format returned by this API","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"00257ed74eeb5f7787b74d270e448ace2edf363d","unresolved":true,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"  * The \u003cboolean\u003e \u0027detail\u0027 will expose the store specific details about the stores."},{"line_number":69,"context_line":"    It takes boolean values, If True, it will expose store specific information "},{"line_number":70,"context_line":"    else will show the non-detailed information about stores."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Security impact"},{"line_number":73,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ddbeccc7_3504ae52","line":70,"in_reply_to":"64bdead7_3a247db1","updated":"2021-12-01 13:48:59.000000000","message":"I think we can combine some generic parameters common in all stores and add an attribute named ``store_properties`` which will be a dictionary containing all store specific information.","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"71a7bca58684bd91508b0d885d8b03fb84ef5847","unresolved":true,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"  * The \u003cboolean\u003e \u0027detail\u0027 will expose the store specific details about the stores."},{"line_number":69,"context_line":"    It takes boolean values, If True, it will expose store specific information "},{"line_number":70,"context_line":"    else will show the non-detailed information about stores."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Security impact"},{"line_number":73,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"64bdead7_3a247db1","line":70,"in_reply_to":"be62b9c8_5e58beff","updated":"2021-11-29 16:21:41.000000000","message":"Yes, I want to know what the details look like and how they could be standardized for each driver, or if they won\u0027t. It would be much better if they can all take the same format, but that is also my point above, that if we don\u0027t at least consider what details would be exposed by each driver, it\u0027s hard to know if the API impact is the same for all of them.","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5cd684bcd39512e65fc074f5ea8c41b4e997a384","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"  * The \u003cboolean\u003e \u0027detail\u0027 will expose the store specific details about the stores."},{"line_number":69,"context_line":"    It takes boolean values, If True, it will expose store specific information "},{"line_number":70,"context_line":"    else will show the non-detailed information about stores."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Security impact"},{"line_number":73,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9faa705a_708c013d","line":70,"in_reply_to":"ddbeccc7_3504ae52","updated":"2021-12-02 10:22:20.000000000","message":"Done in Rest API impact section","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"71a7bca58684bd91508b0d885d8b03fb84ef5847","unresolved":true,"context_lines":[{"line_number":75,"context_line":"Since this optimization skips the writing of image that happens on the glance side,"},{"line_number":76,"context_line":"it will also skip the checksum and hash value calculated in that scenario."},{"line_number":77,"context_line":"Due to the above case, we will add a new config option on the cinder side to"},{"line_number":78,"context_line":"enable/disable this optimization. By default, it will be disabled."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Notifications impact"},{"line_number":81,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dbfea9cd_d4584549","line":78,"updated":"2021-11-29 16:21:41.000000000","message":"There\u0027s also a security impact of exposing the store details, even if just to admin right? I assume the details you want to expose might include hostnames, store names, maybe even credentials?","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5cd684bcd39512e65fc074f5ea8c41b4e997a384","unresolved":false,"context_lines":[{"line_number":75,"context_line":"Since this optimization skips the writing of image that happens on the glance side,"},{"line_number":76,"context_line":"it will also skip the checksum and hash value calculated in that scenario."},{"line_number":77,"context_line":"Due to the above case, we will add a new config option on the cinder side to"},{"line_number":78,"context_line":"enable/disable this optimization. By default, it will be disabled."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Notifications impact"},{"line_number":81,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ca2384f0_2b1a6b99","line":78,"in_reply_to":"32d6cf1b_881177bb","updated":"2021-12-02 10:22:20.000000000","message":"Done","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d405917914ca36b9696dc246bc4ab9f53b0fa582","unresolved":true,"context_lines":[{"line_number":75,"context_line":"Since this optimization skips the writing of image that happens on the glance side,"},{"line_number":76,"context_line":"it will also skip the checksum and hash value calculated in that scenario."},{"line_number":77,"context_line":"Due to the above case, we will add a new config option on the cinder side to"},{"line_number":78,"context_line":"enable/disable this optimization. By default, it will be disabled."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Notifications impact"},{"line_number":81,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"32d6cf1b_881177bb","line":78,"in_reply_to":"45b66f0e_a00f19a4","updated":"2021-12-01 14:54:44.000000000","message":"Cool, but exposing any of that is worth noting here I think.","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"00257ed74eeb5f7787b74d270e448ace2edf363d","unresolved":true,"context_lines":[{"line_number":75,"context_line":"Since this optimization skips the writing of image that happens on the glance side,"},{"line_number":76,"context_line":"it will also skip the checksum and hash value calculated in that scenario."},{"line_number":77,"context_line":"Due to the above case, we will add a new config option on the cinder side to"},{"line_number":78,"context_line":"enable/disable this optimization. By default, it will be disabled."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Notifications impact"},{"line_number":81,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"45b66f0e_a00f19a4","line":78,"in_reply_to":"dbfea9cd_d4584549","updated":"2021-12-01 13:48:59.000000000","message":"I think we can discuss upon it which details we want to expose for each store but for the current use case in ceph, we are planning to expose the ceph pool and cluster name/ids. I don\u0027t think we need to expose credentials via this API (at least for our use case)","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"71a7bca58684bd91508b0d885d8b03fb84ef5847","unresolved":true,"context_lines":[{"line_number":157,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"* Unit Tests"},{"line_number":160,"context_line":"* Functional Tests"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"Documentation Impact"},{"line_number":163,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ed3b67dc_4c16c2b8","line":160,"updated":"2021-11-29 16:21:41.000000000","message":"We have jobs that use cinder and ceph backends, so we should at least be able to validate those cases in tempest right?","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5cd684bcd39512e65fc074f5ea8c41b4e997a384","unresolved":false,"context_lines":[{"line_number":157,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"* Unit Tests"},{"line_number":160,"context_line":"* Functional Tests"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"Documentation Impact"},{"line_number":163,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"43de968f_bbba532e","line":160,"in_reply_to":"5c48b9a5_ff453ab5","updated":"2021-12-02 10:22:20.000000000","message":"Makes sense. will update in next PS.","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d405917914ca36b9696dc246bc4ab9f53b0fa582","unresolved":true,"context_lines":[{"line_number":157,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"* Unit Tests"},{"line_number":160,"context_line":"* Functional Tests"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"Documentation Impact"},{"line_number":163,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5c48b9a5_ff453ab5","line":160,"in_reply_to":"722a895d_b8e76a5a","updated":"2021-12-01 14:54:44.000000000","message":"Why would we not? Any other test will be mocking the data we return from another service. Obviously a test that pokes something that actually uses this would also be good, but it should be a pretty quick tempest test to just fetch it and make sure it looks sane right?","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"00257ed74eeb5f7787b74d270e448ace2edf363d","unresolved":true,"context_lines":[{"line_number":157,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"* Unit Tests"},{"line_number":160,"context_line":"* Functional Tests"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"Documentation Impact"},{"line_number":163,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"722a895d_b8e76a5a","line":160,"in_reply_to":"ed3b67dc_4c16c2b8","updated":"2021-12-01 13:48:59.000000000","message":"We currently have a job running on glance gate with 2 LVMs deployed in multi store config and we can configure it to use rbd but do we need to validate this change via tempest?","commit_id":"af1130f07152155db016ed1207d80c1a97f842a1"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"16989d2ef83c9ef66a71e6557f9705ccd25cef09","unresolved":true,"context_lines":[{"line_number":68,"context_line":"  {"},{"line_number":69,"context_line":"   \u0027detail\u0027: True"},{"line_number":70,"context_line":"  }"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"  * The \u003cboolean\u003e \u0027detail\u0027 will expose the store specific details about the stores."},{"line_number":73,"context_line":"    It takes boolean values, If True, it will expose store specific information"},{"line_number":74,"context_line":"    else will show the non-detailed information about stores."}],"source_content_type":"text/x-rst","patch_set":4,"id":"0ae43a2a_01c232df","line":71,"updated":"2021-12-03 05:53:36.000000000","message":"IMO this (line 66 to 71) implies that we are passing \u0027detail\u0027 in request body, I think this can be removed,line #65 is sufficient enough.","commit_id":"7a3f80db7872eb029ac173a89322e9d4cf387346"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"3a8075436355e1972ef12c64d3b7b0d6a51dd9f4","unresolved":false,"context_lines":[{"line_number":68,"context_line":"  {"},{"line_number":69,"context_line":"   \u0027detail\u0027: True"},{"line_number":70,"context_line":"  }"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"  * The \u003cboolean\u003e \u0027detail\u0027 will expose the store specific details about the stores."},{"line_number":73,"context_line":"    It takes boolean values, If True, it will expose store specific information"},{"line_number":74,"context_line":"    else will show the non-detailed information about stores."}],"source_content_type":"text/x-rst","patch_set":4,"id":"4b157871_443b4cbf","line":71,"in_reply_to":"0ae43a2a_01c232df","updated":"2021-12-03 07:57:41.000000000","message":"Done","commit_id":"7a3f80db7872eb029ac173a89322e9d4cf387346"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"b74ebdb6d519ae3a881459ad743fab73d7864463","unresolved":true,"context_lines":[{"line_number":94,"context_line":"              \"type\": \"file\","},{"line_number":95,"context_line":"              \"description\": \"Less expensive store for seldom-used images\","},{"line_number":96,"context_line":"              \"properties\": {"},{"line_number":97,"context_line":"                  \"datadir\": \"/var/lib/glance/images\","},{"line_number":98,"context_line":"                  \"chunk_size\": \"1\""},{"line_number":99,"context_line":"              }"},{"line_number":100,"context_line":"          },"},{"line_number":101,"context_line":"      ]"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5b38f6ee_61f883c2","line":98,"range":{"start_line":97,"start_character":0,"end_line":98,"end_character":35},"updated":"2021-12-03 07:31:37.000000000","message":"remove these since we are not sure which properties are suitable for other stores to be exposed.","commit_id":"7a3f80db7872eb029ac173a89322e9d4cf387346"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"3a8075436355e1972ef12c64d3b7b0d6a51dd9f4","unresolved":false,"context_lines":[{"line_number":94,"context_line":"              \"type\": \"file\","},{"line_number":95,"context_line":"              \"description\": \"Less expensive store for seldom-used images\","},{"line_number":96,"context_line":"              \"properties\": {"},{"line_number":97,"context_line":"                  \"datadir\": \"/var/lib/glance/images\","},{"line_number":98,"context_line":"                  \"chunk_size\": \"1\""},{"line_number":99,"context_line":"              }"},{"line_number":100,"context_line":"          },"},{"line_number":101,"context_line":"      ]"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ebad2771_87ca5f0d","line":98,"range":{"start_line":97,"start_character":0,"end_line":98,"end_character":35},"in_reply_to":"5b38f6ee_61f883c2","updated":"2021-12-03 07:57:41.000000000","message":"Done","commit_id":"7a3f80db7872eb029ac173a89322e9d4cf387346"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"16989d2ef83c9ef66a71e6557f9705ccd25cef09","unresolved":true,"context_lines":[{"line_number":182,"context_line":"  glanceclient side, the value of this flag will be passed to the glance API."},{"line_number":183,"context_line":"* Create a new policy ``stores_info_detail`` that will default to admin only"},{"line_number":184,"context_line":"  rule and enforce it if detail flag is passed."},{"line_number":185,"context_line":"* Add a new method ``get_store_info`` to glance store\u0027s driver class and override"},{"line_number":186,"context_line":"  it for the rbd driver to return store specific info."},{"line_number":187,"context_line":""},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":4,"id":"0ff02069_d05ad6fa","line":186,"range":{"start_line":185,"start_character":0,"end_line":186,"end_character":54},"updated":"2021-12-03 05:53:36.000000000","message":"this is not required now,right?","commit_id":"7a3f80db7872eb029ac173a89322e9d4cf387346"},{"author":{"_account_id":33765,"name":"Mridula Joshi","email":"mrjoshi@redhat.com","username":"mrjoshi"},"change_message_id":"3a8075436355e1972ef12c64d3b7b0d6a51dd9f4","unresolved":false,"context_lines":[{"line_number":182,"context_line":"  glanceclient side, the value of this flag will be passed to the glance API."},{"line_number":183,"context_line":"* Create a new policy ``stores_info_detail`` that will default to admin only"},{"line_number":184,"context_line":"  rule and enforce it if detail flag is passed."},{"line_number":185,"context_line":"* Add a new method ``get_store_info`` to glance store\u0027s driver class and override"},{"line_number":186,"context_line":"  it for the rbd driver to return store specific info."},{"line_number":187,"context_line":""},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":4,"id":"430260b4_e09bc32f","line":186,"range":{"start_line":185,"start_character":0,"end_line":186,"end_character":54},"in_reply_to":"0ff02069_d05ad6fa","updated":"2021-12-03 07:57:41.000000000","message":"Done","commit_id":"7a3f80db7872eb029ac173a89322e9d4cf387346"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0c4ca9ba074202616c4c0f21459a9e71bc2e7ce7","unresolved":true,"context_lines":[{"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"},{"line_number":8,"context_line":"Expose store specific information"},{"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"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/glance/+spec/expose-store-specific-info"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"e609c1fb_d4100201","line":9,"range":{"start_line":9,"start_character":33,"end_line":9,"end_character":34},"updated":"2021-12-03 14:10:27.000000000","message":"nit: should be same length as the text (top one, too)","commit_id":"0b0d1c53b057c1529892cd635a688b282f2a7115"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"32c9b6b23241ede392665015f520d4127034748e","unresolved":false,"context_lines":[{"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"},{"line_number":8,"context_line":"Expose store specific information"},{"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"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/glance/+spec/expose-store-specific-info"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"d510c04a_7c0e3afd","line":9,"range":{"start_line":9,"start_character":33,"end_line":9,"end_character":34},"in_reply_to":"e609c1fb_d4100201","updated":"2021-12-03 15:24:31.000000000","message":"Done","commit_id":"0b0d1c53b057c1529892cd635a688b282f2a7115"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0c4ca9ba074202616c4c0f21459a9e71bc2e7ce7","unresolved":true,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"When we upload a volume from cinder\u0027s RBD backend as an image to glance\u0027s"},{"line_number":17,"context_line":"RBD backend, the generic code path to copy data chunk by chunk is executed,"},{"line_number":18,"context_line":"which makes the operation very slow.This can be optimized by using COW cloning"},{"line_number":19,"context_line":"for rbd backends and for this Cinder requires store type and rbd specific store"},{"line_number":20,"context_line":"info from glance side."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"c070cb0d_447d86aa","line":18,"range":{"start_line":18,"start_character":31,"end_line":18,"end_character":36},"updated":"2021-12-03 14:10:27.000000000","message":"nit: need a space after the period","commit_id":"0b0d1c53b057c1529892cd635a688b282f2a7115"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"32c9b6b23241ede392665015f520d4127034748e","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"When we upload a volume from cinder\u0027s RBD backend as an image to glance\u0027s"},{"line_number":17,"context_line":"RBD backend, the generic code path to copy data chunk by chunk is executed,"},{"line_number":18,"context_line":"which makes the operation very slow.This can be optimized by using COW cloning"},{"line_number":19,"context_line":"for rbd backends and for this Cinder requires store type and rbd specific store"},{"line_number":20,"context_line":"info from glance side."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9546a5a4_448476d0","line":18,"range":{"start_line":18,"start_character":31,"end_line":18,"end_character":36},"in_reply_to":"c070cb0d_447d86aa","updated":"2021-12-03 15:24:31.000000000","message":"Done","commit_id":"0b0d1c53b057c1529892cd635a688b282f2a7115"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0c4ca9ba074202616c4c0f21459a9e71bc2e7ce7","unresolved":true,"context_lines":[{"line_number":22,"context_line":"Proposed change"},{"line_number":23,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"At the moment the stores_info (/v2/stores_info) API provides the list of"},{"line_number":26,"context_line":"multiple-backend present and the default store but not the type of the stores."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"We will be extending the stores_info (/v2/stores_info) API by introducing a"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ed679f70_a0c5754f","line":25,"range":{"start_line":25,"start_character":31,"end_line":25,"end_character":46},"updated":"2021-12-03 14:10:27.000000000","message":"A few things here:\n\n1. Officially, this is called the \"Discovery API\"\n\n2. The path you state is incorrect.  It should be GET /v2/info/stores","commit_id":"0b0d1c53b057c1529892cd635a688b282f2a7115"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"32c9b6b23241ede392665015f520d4127034748e","unresolved":false,"context_lines":[{"line_number":22,"context_line":"Proposed change"},{"line_number":23,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"At the moment the stores_info (/v2/stores_info) API provides the list of"},{"line_number":26,"context_line":"multiple-backend present and the default store but not the type of the stores."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"We will be extending the stores_info (/v2/stores_info) API by introducing a"}],"source_content_type":"text/x-rst","patch_set":5,"id":"b5ca7557_124ce262","line":25,"range":{"start_line":25,"start_character":31,"end_line":25,"end_character":46},"in_reply_to":"ed679f70_a0c5754f","updated":"2021-12-03 15:24:31.000000000","message":"Done","commit_id":"0b0d1c53b057c1529892cd635a688b282f2a7115"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0c4ca9ba074202616c4c0f21459a9e71bc2e7ce7","unresolved":true,"context_lines":[{"line_number":30,"context_line":"like store type and other specific store properties."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Since the store specific information is mostly intended for other services"},{"line_number":33,"context_line":"(like cinder) to consume and not for end users or even operators, this operation"},{"line_number":34,"context_line":"will be admin only and we will introduce a new policy ``stores_info_detail``,"},{"line_number":35,"context_line":"that will default to admin only rule, to restrict this for non-admin users."},{"line_number":36,"context_line":"In future, when the ``service`` role will be in place in keystone to facilitate"}],"source_content_type":"text/x-rst","patch_set":5,"id":"81d9b2f4_b347a6e5","line":33,"range":{"start_line":33,"start_character":47,"end_line":33,"end_character":64},"updated":"2021-12-03 14:10:27.000000000","message":"I disagree.  I think you want to allow an operator to make this call for troubleshooting purposes (for example, something isn\u0027t working, and you need to verify that the correct backend info is being passed in the JSON response in the correct format).  (The idea of the service role isn\u0027t to exclude operators, it\u0027s to allow inter-service calls that don\u0027t require full admin access on the part of the requesting service.)","commit_id":"0b0d1c53b057c1529892cd635a688b282f2a7115"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"32c9b6b23241ede392665015f520d4127034748e","unresolved":false,"context_lines":[{"line_number":30,"context_line":"like store type and other specific store properties."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Since the store specific information is mostly intended for other services"},{"line_number":33,"context_line":"(like cinder) to consume and not for end users or even operators, this operation"},{"line_number":34,"context_line":"will be admin only and we will introduce a new policy ``stores_info_detail``,"},{"line_number":35,"context_line":"that will default to admin only rule, to restrict this for non-admin users."},{"line_number":36,"context_line":"In future, when the ``service`` role will be in place in keystone to facilitate"}],"source_content_type":"text/x-rst","patch_set":5,"id":"41636ec3_567cb5c9","line":33,"range":{"start_line":33,"start_character":47,"end_line":33,"end_character":64},"in_reply_to":"81d9b2f4_b347a6e5","updated":"2021-12-03 15:24:31.000000000","message":"Done","commit_id":"0b0d1c53b057c1529892cd635a688b282f2a7115"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0c4ca9ba074202616c4c0f21459a9e71bc2e7ce7","unresolved":true,"context_lines":[{"line_number":35,"context_line":"that will default to admin only rule, to restrict this for non-admin users."},{"line_number":36,"context_line":"In future, when the ``service`` role will be in place in keystone to facilitate"},{"line_number":37,"context_line":"service to service interaction, this policy rule will be changed to"},{"line_number":38,"context_line":"``system:admin role:service``"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"We will use the existing method ``get_store_from_store_identifier`` which returns"},{"line_number":41,"context_line":"the store class instance and will utilize it to fetch the store specific information"}],"source_content_type":"text/x-rst","patch_set":5,"id":"e6d5e96b_9b839c3f","line":38,"range":{"start_line":38,"start_character":0,"end_line":38,"end_character":29},"updated":"2021-12-03 14:10:27.000000000","message":"This doesn\u0027t look like a valid checkstring to me ... but it doesn\u0027t matter because you don\u0027t know what it\u0027s going to ultimately look like anyway.  I think you can just say that when keystone does its thing, the policy rule will be adjusted accordingly.","commit_id":"0b0d1c53b057c1529892cd635a688b282f2a7115"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"32c9b6b23241ede392665015f520d4127034748e","unresolved":false,"context_lines":[{"line_number":35,"context_line":"that will default to admin only rule, to restrict this for non-admin users."},{"line_number":36,"context_line":"In future, when the ``service`` role will be in place in keystone to facilitate"},{"line_number":37,"context_line":"service to service interaction, this policy rule will be changed to"},{"line_number":38,"context_line":"``system:admin role:service``"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"We will use the existing method ``get_store_from_store_identifier`` which returns"},{"line_number":41,"context_line":"the store class instance and will utilize it to fetch the store specific information"}],"source_content_type":"text/x-rst","patch_set":5,"id":"71628044_df553188","line":38,"range":{"start_line":38,"start_character":0,"end_line":38,"end_character":29},"in_reply_to":"e6d5e96b_9b839c3f","updated":"2021-12-03 15:24:31.000000000","message":"Done","commit_id":"0b0d1c53b057c1529892cd635a688b282f2a7115"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0c4ca9ba074202616c4c0f21459a9e71bc2e7ce7","unresolved":true,"context_lines":[{"line_number":54,"context_line":"REST API impact"},{"line_number":55,"context_line":"---------------"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"We are going to add a parameter ``detail`` which will return the store"},{"line_number":58,"context_line":"specific details like store type and store specific properties."},{"line_number":59,"context_line":"The default value of the parameter will be False. If the value is True, it"},{"line_number":60,"context_line":"will be validated by the new policy rule ``stores_info_detail`` which defaults"},{"line_number":61,"context_line":"to admin only and then the detailed info related to the stores will be returned."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":".. code-block:: console"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"a192ba3a_f99a01f4","line":61,"range":{"start_line":57,"start_character":0,"end_line":61,"end_character":80},"updated":"2021-12-03 14:10:27.000000000","message":"Instead of doing this by query parameter, I suggest adding a \u0027detail\u0027 resource so that the call is GET /v2/info/stores/detail ... then you don\u0027t have to worry about the default value of the parameter, etc., and it isolates the policy to a particular API call (instead of it applying partially to a different API call), and should make the code cleaner (were you planning to disallow non-admin users from using \u0027?detail\u003d\u0027 at all? Or would they be allowed to use \u0027?detail\u003dfalse\u0027 but not \u0027?detail\u003dtrue\u0027? -- if get rid of the query parameter, you don\u0027t need to worry about these cases).","commit_id":"0b0d1c53b057c1529892cd635a688b282f2a7115"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"bd330122b82faabe8b96ba374f82758778ffb86b","unresolved":true,"context_lines":[{"line_number":54,"context_line":"REST API impact"},{"line_number":55,"context_line":"---------------"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"We are going to add a parameter ``detail`` which will return the store"},{"line_number":58,"context_line":"specific details like store type and store specific properties."},{"line_number":59,"context_line":"The default value of the parameter will be False. If the value is True, it"},{"line_number":60,"context_line":"will be validated by the new policy rule ``stores_info_detail`` which defaults"},{"line_number":61,"context_line":"to admin only and then the detailed info related to the stores will be returned."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":".. code-block:: console"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9d6b16b8_2e262e51","line":61,"range":{"start_line":57,"start_character":0,"end_line":61,"end_character":80},"in_reply_to":"6b8042f1_fbaefe23","updated":"2021-12-07 14:54:11.000000000","message":"Yes, but a few things to think about:\n\n1. Much as it pains me to say so, the Block Storage API is not a paragon of good API design.\n\n2. The get-pools call isn\u0027t a good analogy here because the call itself (before you add on the query parameter) is already admin-only, whereas GET /v2/info/stores is supposed to be accessible to end users.\n\n3. If you look at the cinder Backups API (next section in the api-ref from the link you give above), it follows the GET /backups and GET /backups/detail strategy (as do volumes and snapshots), so this is a common pattern in openstack APIs for getting the details.\n\n4. Glance doesn\u0027t have GET /images and GET /images/detail, but that\u0027s only because the GET /images includes all the detail already.\n\n5. The glance POST /images/{id}/actions/deactivate and POST /images/{id}/actions/reactivate follow this paradigm of using a URL resource instead of query parameter, so I think there\u0027s some precedence for this in the Images API v2.\n\nSo from an API design point of view, I really prefer the resource (instead of query parameter) strategy.","commit_id":"0b0d1c53b057c1529892cd635a688b282f2a7115"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"1069eab1c55222e7bdc2d77c21878fc0563c0f60","unresolved":false,"context_lines":[{"line_number":54,"context_line":"REST API impact"},{"line_number":55,"context_line":"---------------"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"We are going to add a parameter ``detail`` which will return the store"},{"line_number":58,"context_line":"specific details like store type and store specific properties."},{"line_number":59,"context_line":"The default value of the parameter will be False. If the value is True, it"},{"line_number":60,"context_line":"will be validated by the new policy rule ``stores_info_detail`` which defaults"},{"line_number":61,"context_line":"to admin only and then the detailed info related to the stores will be returned."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":".. code-block:: console"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"e200d075_39d503a6","line":61,"range":{"start_line":57,"start_character":0,"end_line":61,"end_character":80},"in_reply_to":"9d6b16b8_2e262e51","updated":"2021-12-09 08:55:51.000000000","message":"Ack, thanks for the details. I agree it makes sense to do it this way and just wanted the agreement of other team members. I\u0027ve confirmed with Abhishek that he also likes the approach so i will update this and related section(s).","commit_id":"0b0d1c53b057c1529892cd635a688b282f2a7115"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"32c9b6b23241ede392665015f520d4127034748e","unresolved":true,"context_lines":[{"line_number":54,"context_line":"REST API impact"},{"line_number":55,"context_line":"---------------"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"We are going to add a parameter ``detail`` which will return the store"},{"line_number":58,"context_line":"specific details like store type and store specific properties."},{"line_number":59,"context_line":"The default value of the parameter will be False. If the value is True, it"},{"line_number":60,"context_line":"will be validated by the new policy rule ``stores_info_detail`` which defaults"},{"line_number":61,"context_line":"to admin only and then the detailed info related to the stores will be returned."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":".. code-block:: console"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"6b8042f1_fbaefe23","line":61,"range":{"start_line":57,"start_character":0,"end_line":61,"end_character":80},"in_reply_to":"a192ba3a_f99a01f4","updated":"2021-12-03 15:24:31.000000000","message":"I think this makes sense but the idea is taken from the get-pools API[1] of cinder which performs similar operation and we pass the detail as a query parameter. If the majority of team thinks this is a better way of implementation, i will update this section.\n\n[1] https://docs.openstack.org/api-ref/block-storage/v3/?expanded\u003d#list-all-back-end-storage-pools","commit_id":"0b0d1c53b057c1529892cd635a688b282f2a7115"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0c4ca9ba074202616c4c0f21459a9e71bc2e7ce7","unresolved":true,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"We are going to add a field ``type`` to specify the type of store."},{"line_number":97,"context_line":"Also we will add a field ``properties`` which will be a JSON object type and"},{"line_number":98,"context_line":"contain the store specific properties. For the current usecase we are only"},{"line_number":99,"context_line":"going to add RBD store info and leave the properties for other stores as empty"},{"line_number":100,"context_line":"JSON objects ``{}``."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Security impact"},{"line_number":103,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"53eb6a48_f23401d8","line":100,"range":{"start_line":98,"start_character":39,"end_line":100,"end_character":20},"updated":"2021-12-03 14:10:27.000000000","message":"I think it would be easy to also do this for the cinder store; the key property would be the volume type associated with the store.","commit_id":"0b0d1c53b057c1529892cd635a688b282f2a7115"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"32c9b6b23241ede392665015f520d4127034748e","unresolved":true,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"We are going to add a field ``type`` to specify the type of store."},{"line_number":97,"context_line":"Also we will add a field ``properties`` which will be a JSON object type and"},{"line_number":98,"context_line":"contain the store specific properties. For the current usecase we are only"},{"line_number":99,"context_line":"going to add RBD store info and leave the properties for other stores as empty"},{"line_number":100,"context_line":"JSON objects ``{}``."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Security impact"},{"line_number":103,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7684aa92_de7ceb41","line":100,"range":{"start_line":98,"start_character":39,"end_line":100,"end_character":20},"in_reply_to":"53eb6a48_f23401d8","updated":"2021-12-03 15:24:31.000000000","message":"It is but then we face a dilemma of which store to implement it for and which not as we\u0027ve swift, file, http, s3 etc. For now, the usecase we are trying to support only requires rbd specific info so i think it would be better to handle other stores later with a proper discussion regarding which property is desirable for each store to be exposed.","commit_id":"0b0d1c53b057c1529892cd635a688b282f2a7115"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"e9b1b0b1c31be810ef4a1d55decd63f9a6293cf6","unresolved":true,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"We are going to add a field ``type`` to specify the type of store."},{"line_number":97,"context_line":"Also we will add a field ``properties`` which will be a JSON object type and"},{"line_number":98,"context_line":"contain the store specific properties. For the current usecase we are only"},{"line_number":99,"context_line":"going to add RBD store info and leave the properties for other stores as empty"},{"line_number":100,"context_line":"JSON objects ``{}``."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Security impact"},{"line_number":103,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"e63d6a7c_559de0d2","line":100,"range":{"start_line":98,"start_character":39,"end_line":100,"end_character":20},"in_reply_to":"7684aa92_de7ceb41","updated":"2021-12-07 15:20:49.000000000","message":"I\u0027m OK with this.  Once the structure is in place, it will be easy to deal with other stores later with simple spec-lites.","commit_id":"0b0d1c53b057c1529892cd635a688b282f2a7115"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"1069eab1c55222e7bdc2d77c21878fc0563c0f60","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"We are going to add a field ``type`` to specify the type of store."},{"line_number":97,"context_line":"Also we will add a field ``properties`` which will be a JSON object type and"},{"line_number":98,"context_line":"contain the store specific properties. For the current usecase we are only"},{"line_number":99,"context_line":"going to add RBD store info and leave the properties for other stores as empty"},{"line_number":100,"context_line":"JSON objects ``{}``."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Security impact"},{"line_number":103,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"d99aadd8_b66a8e1c","line":100,"range":{"start_line":98,"start_character":39,"end_line":100,"end_character":20},"in_reply_to":"e63d6a7c_559de0d2","updated":"2021-12-09 08:55:51.000000000","message":"Ack, thanks.","commit_id":"0b0d1c53b057c1529892cd635a688b282f2a7115"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0c4ca9ba074202616c4c0f21459a9e71bc2e7ce7","unresolved":true,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Since this optimization skips the writing of image that happens on the glance side,"},{"line_number":106,"context_line":"it will also skip the checksum and hash value calculated in that scenario."},{"line_number":107,"context_line":"Due to the above case, we will add a new config option on the cinder side to"},{"line_number":108,"context_line":"enable/disable this optimization. By default, it will be disabled."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Notifications impact"}],"source_content_type":"text/x-rst","patch_set":5,"id":"f24b209a_351da811","line":107,"range":{"start_line":107,"start_character":23,"end_line":107,"end_character":73},"updated":"2021-12-03 14:10:27.000000000","message":"Why on the cinder side?  Why not add it to glance, and if new_config_opt\u003dFalse, you either return a 204 with an empty response, or return the info/stores response without the new fields.  Since the multihash values are a glance concern, it seems like the glance operator should decide this.","commit_id":"0b0d1c53b057c1529892cd635a688b282f2a7115"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"1069eab1c55222e7bdc2d77c21878fc0563c0f60","unresolved":true,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Since this optimization skips the writing of image that happens on the glance side,"},{"line_number":106,"context_line":"it will also skip the checksum and hash value calculated in that scenario."},{"line_number":107,"context_line":"Due to the above case, we will add a new config option on the cinder side to"},{"line_number":108,"context_line":"enable/disable this optimization. By default, it will be disabled."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Notifications impact"}],"source_content_type":"text/x-rst","patch_set":5,"id":"16656380_69e738ce","line":107,"range":{"start_line":107,"start_character":23,"end_line":107,"end_character":73},"in_reply_to":"484cc49d_c4958365","updated":"2021-12-09 08:55:51.000000000","message":"So this check/config option if enabled or disabled will expose these details. That idea seems to work for our current usecase but will it fit in the criteria when an operator wants to access it? or when we extend it to return more than just RBD store properties?\nWhen we start exposing cinder\u0027s volume type, or filestore\u0027s data dir path, does that check still makes sense for those cases since we are not doing any optimization with those properties.","commit_id":"0b0d1c53b057c1529892cd635a688b282f2a7115"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"bd330122b82faabe8b96ba374f82758778ffb86b","unresolved":true,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Since this optimization skips the writing of image that happens on the glance side,"},{"line_number":106,"context_line":"it will also skip the checksum and hash value calculated in that scenario."},{"line_number":107,"context_line":"Due to the above case, we will add a new config option on the cinder side to"},{"line_number":108,"context_line":"enable/disable this optimization. By default, it will be disabled."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Notifications impact"}],"source_content_type":"text/x-rst","patch_set":5,"id":"484cc49d_c4958365","line":107,"range":{"start_line":107,"start_character":23,"end_line":107,"end_character":73},"in_reply_to":"62a00852_62cb2692","updated":"2021-12-07 14:54:11.000000000","message":"Well, the glance check could happen at the API layer when processing the GET /v2/info/stores/detail call.  Cinder has to be able to handle getting a 404 (when it\u0027s a new cinder and older glance) for this call anyway, so if glance returns a 204, cinder will know that it should not do the optimization.\n\nAs far as the current unchecked optimization goes, I think that can actually be turned off on the glance side by not exposing the image locations.\n\nI\u0027d prefer to try to keep this on the glance side as much as possible.","commit_id":"0b0d1c53b057c1529892cd635a688b282f2a7115"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"32c9b6b23241ede392665015f520d4127034748e","unresolved":true,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Since this optimization skips the writing of image that happens on the glance side,"},{"line_number":106,"context_line":"it will also skip the checksum and hash value calculated in that scenario."},{"line_number":107,"context_line":"Due to the above case, we will add a new config option on the cinder side to"},{"line_number":108,"context_line":"enable/disable this optimization. By default, it will be disabled."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Notifications impact"}],"source_content_type":"text/x-rst","patch_set":5,"id":"62a00852_62cb2692","line":107,"range":{"start_line":107,"start_character":23,"end_line":107,"end_character":73},"in_reply_to":"f24b209a_351da811","updated":"2021-12-03 15:24:31.000000000","message":"Since the operation is initiated and executed on the cinder side, glance is just called to get the stores info and register the location of image so there doesn\u0027t seem to be a good place to add this config option check. Similar is the case when we use cinder store and apply the optimization of cloning the volume and the config option resides on cinder side. Also the glance team agreed in PTG to add it to the cinder side. Although i understand your point glance operator deciding it to be performed but there doesn\u0027t seem to be a good way to check this on glance side.","commit_id":"0b0d1c53b057c1529892cd635a688b282f2a7115"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"0c4ca9ba074202616c4c0f21459a9e71bc2e7ce7","unresolved":true,"context_lines":[{"line_number":106,"context_line":"it will also skip the checksum and hash value calculated in that scenario."},{"line_number":107,"context_line":"Due to the above case, we will add a new config option on the cinder side to"},{"line_number":108,"context_line":"enable/disable this optimization. By default, it will be disabled."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Notifications impact"},{"line_number":111,"context_line":"--------------------"},{"line_number":112,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"d4bfd40a_7630ccb7","line":109,"updated":"2021-12-03 14:10:27.000000000","message":"Another security impact is that currently, if you want to take advantage of nova-glance or cinder-glance optimizations, you need to expose the direct_url or image locations in the image-detail response.  Is there a way we can leverage this proposal so that we can finally put OSSN-0085 to rest?  See also https://docs.openstack.org/releasenotes/glance/queens.html#known-issues","commit_id":"0b0d1c53b057c1529892cd635a688b282f2a7115"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"bd330122b82faabe8b96ba374f82758778ffb86b","unresolved":true,"context_lines":[{"line_number":106,"context_line":"it will also skip the checksum and hash value calculated in that scenario."},{"line_number":107,"context_line":"Due to the above case, we will add a new config option on the cinder side to"},{"line_number":108,"context_line":"enable/disable this optimization. By default, it will be disabled."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Notifications impact"},{"line_number":111,"context_line":"--------------------"},{"line_number":112,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"994e2258_0c335ea4","line":109,"in_reply_to":"02dad187_4d1588d8","updated":"2021-12-07 14:54:11.000000000","message":"You\u0027re correct, this is at the wrong granularity to address OSSN-0085.  But what I\u0027m thinking is that if glance adds GET /v2/images/{id}/locations to the API, that call could be restricted to the admin or service user, and then the locations would not have to be exposed in the regular image-detail response.  But that\u0027s clearly beyond the scope of this spec.","commit_id":"0b0d1c53b057c1529892cd635a688b282f2a7115"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"1069eab1c55222e7bdc2d77c21878fc0563c0f60","unresolved":false,"context_lines":[{"line_number":106,"context_line":"it will also skip the checksum and hash value calculated in that scenario."},{"line_number":107,"context_line":"Due to the above case, we will add a new config option on the cinder side to"},{"line_number":108,"context_line":"enable/disable this optimization. By default, it will be disabled."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Notifications impact"},{"line_number":111,"context_line":"--------------------"},{"line_number":112,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"ff745515_dc03e07b","line":109,"in_reply_to":"994e2258_0c335ea4","updated":"2021-12-09 08:55:51.000000000","message":"That seems like a good idea and better way of handling the security vulnerability but as you mentioned, it is outside the scope of this spec.","commit_id":"0b0d1c53b057c1529892cd635a688b282f2a7115"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"32c9b6b23241ede392665015f520d4127034748e","unresolved":true,"context_lines":[{"line_number":106,"context_line":"it will also skip the checksum and hash value calculated in that scenario."},{"line_number":107,"context_line":"Due to the above case, we will add a new config option on the cinder side to"},{"line_number":108,"context_line":"enable/disable this optimization. By default, it will be disabled."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Notifications impact"},{"line_number":111,"context_line":"--------------------"},{"line_number":112,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"02dad187_4d1588d8","line":109,"in_reply_to":"d4bfd40a_7630ccb7","updated":"2021-12-03 15:24:31.000000000","message":"I\u0027m not exactly sure how this API will be able to handle that case since locations are image specific and this is related to store but maybe we can expose the generic location of a store which will require some good refactoring on cinder side (also we need to maintain backward compatibility) and obviously on glance side and it will make the proposed solution more complex than it already is (requires changes and coordination in 2 projects i.e. glance and cinder). I will mention the security impact here. The suggestion to enhance this API for dealing with OSSN-0085 is a good topic for discussion.","commit_id":"0b0d1c53b057c1529892cd635a688b282f2a7115"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"52838b7d53c39adce8294ccdbde93516795d4c01","unresolved":true,"context_lines":[{"line_number":113,"context_line":"Other end user impact"},{"line_number":114,"context_line":"---------------------"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"We will add a new command ``glance stores-detail`` on the glanceclient side."},{"line_number":117,"context_line":"Only admins will be able to execute this command successfully and it will return"},{"line_number":118,"context_line":"store specific properties."},{"line_number":119,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"fc9702f2_3ea6a070","line":116,"range":{"start_line":116,"start_character":0,"end_line":116,"end_character":76},"updated":"2021-12-10 18:23:15.000000000","message":"For the client, it might make sense to go with your original proposal of simply adding the --detail option to the current \u0027glance stores-info\u0027 call.  That way you can document the option like\n\n  --detail   With sufficient permissions, display additional information about\n             the stores.","commit_id":"26a7914fbb18f0b55d2c9eaa29d9a4c76fcd4463"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"6f4a2dda02492150478941ed28d418138a23a802","unresolved":false,"context_lines":[{"line_number":113,"context_line":"Other end user impact"},{"line_number":114,"context_line":"---------------------"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"We will add a new command ``glance stores-detail`` on the glanceclient side."},{"line_number":117,"context_line":"Only admins will be able to execute this command successfully and it will return"},{"line_number":118,"context_line":"store specific properties."},{"line_number":119,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"b987f8a0_4ed3d215","line":116,"range":{"start_line":116,"start_character":0,"end_line":116,"end_character":76},"in_reply_to":"fc9702f2_3ea6a070","updated":"2021-12-12 17:04:52.000000000","message":"Done","commit_id":"26a7914fbb18f0b55d2c9eaa29d9a4c76fcd4463"}]}
