)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7179,"name":"Brad Pokorny","email":"brad_pokorny@symantec.com","username":"bpokorny"},"change_message_id":"d4d477d63256b1f9bd1f916bdeb3bc0f57988d85","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Su Zhang \u003csu_zhang@symantec.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-01-21 12:13:32 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"community image visibility BP"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Iab63f4dc5d1bebfb89d8792335b4da8634266d5c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9a68dd71_ee4adbc4","line":7,"updated":"2016-01-21 21:17:43.000000000","message":"(nit) Suggest changing this to:\n\nCommunity image visibility spec","commit_id":"6ad3824e2f03e425344e2f4f7b966c5bf57337dd"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"8dcd7508779d0df972945ac0629ec04d002fd745","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2016-05-09 11:52:20 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Community image visibility BP"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Co-Authored-By: Timothy Symanczyk \u003ctimothy_symanczyk@symantec.com\u003e"},{"line_number":10,"context_line":"Change-Id: Iab63f4dc5d1bebfb89d8792335b4da8634266d5c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":15,"id":"dab17558_96f4a0f2","line":8,"updated":"2016-05-09 22:45:50.000000000","message":"Please add a small description.","commit_id":"358fa7bf2a9eca8454ccd6ff0c265dcd703aaa40"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"630356402c107f35898e631ec4c05157a46c91ca","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Community image visibility"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Spec introducing a new \u0027visiblity\u0027 core property for images. Adds"},{"line_number":10,"context_line":"in an explicit \u0027shared\u0027 value to encompass and integrate the"},{"line_number":11,"context_line":"existing concepts for image sharing, as well as introduces the"},{"line_number":12,"context_line":"entirely new \u0027community\u0027 value to help address some desirable use"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"bab6814e_259244a0","line":9,"range":{"start_line":9,"start_character":19,"end_line":9,"end_character":34},"updated":"2016-05-23 22:19:55.000000000","message":"I thought we had this already with Images API v2.","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"d4d35d50d71bf8a8b717f16fb5cf2a50478fde09","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Community image visibility"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Spec introducing a new \u0027visiblity\u0027 core property for images. Adds"},{"line_number":10,"context_line":"in an explicit \u0027shared\u0027 value to encompass and integrate the"},{"line_number":11,"context_line":"existing concepts for image sharing, as well as introduces the"},{"line_number":12,"context_line":"entirely new \u0027community\u0027 value to help address some desirable use"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"bab6814e_ea0bb229","line":9,"range":{"start_line":9,"start_character":19,"end_line":9,"end_character":34},"in_reply_to":"bab6814e_259244a0","updated":"2016-05-24 22:31:01.000000000","message":"Good point! Updating.","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"}],"doc/source/index.rst":[{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"750aca554a55f4aa290c037d61e8135cfa743ebe","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"   specs/glanceclient/*"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":46,"context_line":"Image service V2 API"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a68dd71_b3ce4c2b","line":43,"updated":"2016-01-22 22:43:42.000000000","message":"Not terribly important, but can this be addressed?","commit_id":"4db9c9007b3cfdf411bb68d43c5848bd2a6cc8a4"}],"specs/newton/approved/glance/community_visibility.rst":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"6a59984f54d9c0b920f1ab70e215ca844ab46c50","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    + do not have this image in their default ``image-list``"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    + can see ``image-detail`` for this image"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    + can boot from this image"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"* **community**:"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_d4acf08d","line":133,"range":{"start_line":131,"start_character":6,"end_line":133,"end_character":30},"updated":"2016-05-23 11:23:30.000000000","message":"this should be \n\n+ can not see ``image-detail`` for this image\n\n+ can not boot from this image","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"d4d35d50d71bf8a8b717f16fb5cf2a50478fde09","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    + do not have this image in their default ``image-list``"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    + can see ``image-detail`` for this image"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    + can boot from this image"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"* **community**:"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_88014f09","line":133,"range":{"start_line":131,"start_character":6,"end_line":133,"end_character":30},"in_reply_to":"bab6814e_7ea5d3b3","updated":"2016-05-24 22:31:01.000000000","message":"Confirming what Brian said. This matches the behaviour I\u0027m seeing with the existing sharing functionality with devstack master.","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"beb7953d8f54ffe677d6f9f4b6efb1bebbb03dca","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    + do not have this image in their default ``image-list``"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    + can see ``image-detail`` for this image"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    + can boot from this image"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"* **community**:"},{"line_number":136,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_7ea5d3b3","line":133,"range":{"start_line":131,"start_character":6,"end_line":133,"end_character":30},"in_reply_to":"bab6814e_d4acf08d","updated":"2016-05-24 16:00:00.000000000","message":"The text actually is correct.\n\nThis is the current behavior.  The member_status is the anti-spam provision, it simply keeps the image out of the consumer\u0027s image-list response.  Once you are made a member, however, you have full access to the image, that is, you can boot from it (if you know the id) and you can do GET v2/images/{id}","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"630356402c107f35898e631ec4c05157a46c91ca","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    + do not have this image in their default ``image-list``"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    + can see ``image-detail`` for this image"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    + can boot from this image"},{"line_number":144,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_85acd08d","line":141,"updated":"2016-05-23 22:19:55.000000000","message":"Should not see the memebers even in detail view.","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"beb7953d8f54ffe677d6f9f4b6efb1bebbb03dca","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    + do not have this image in their default ``image-list``"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    + can see ``image-detail`` for this image"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    + can boot from this image"},{"line_number":144,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_deaf9f7b","line":141,"in_reply_to":"bab6814e_85acd08d","updated":"2016-05-24 16:00:00.000000000","message":"Correct, but the members are not included in the GET v2/images/{image_id} response, so *no one* can see them in the detail view.\n\nBut you bring up a good point, it might be good to say somewhere what the show-members behavior should be for community images.  I was assuming it would be the same as for shared images, i.e., the image owner can see the full list, and a consumer who made the call would see either a list containing only themself, or an empty list (if they\u0027re not a member of the community image).  This should probably be addressed explicitly.","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"d4d35d50d71bf8a8b717f16fb5cf2a50478fde09","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    + do not have this image in their default ``image-list``"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    + can see ``image-detail`` for this image"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    + can boot from this image"},{"line_number":144,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_2b201d9b","line":141,"in_reply_to":"bab6814e_deaf9f7b","updated":"2016-05-24 22:31:01.000000000","message":"Good point, thank you. Adding.","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"630356402c107f35898e631ec4c05157a46c91ca","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    + can see ``image-detail`` for this image"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    + can boot from this image"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"  - Who: users with ``tenantId`` in the ``member-list`` of the image"},{"line_number":146,"context_line":"    with ``member_status \u003d\u003d \u0027accepted\u0027``:"},{"line_number":147,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_a56114ab","line":144,"updated":"2016-05-23 22:19:55.000000000","message":"Can they seek community images by filtering the image list with visibility:community?\n\nThey also should be able to accept it (as member).\n\nDoes accepted community images indicate that status somehow?","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"d4d35d50d71bf8a8b717f16fb5cf2a50478fde09","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    + can see ``image-detail`` for this image"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    + can boot from this image"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"  - Who: users with ``tenantId`` in the ``member-list`` of the image"},{"line_number":146,"context_line":"    with ``member_status \u003d\u003d \u0027accepted\u0027``:"},{"line_number":147,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_b7b90a31","line":144,"in_reply_to":"bab6814e_a149de90","updated":"2016-05-24 22:31:01.000000000","message":"Done","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"beb7953d8f54ffe677d6f9f4b6efb1bebbb03dca","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    + can see ``image-detail`` for this image"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    + can boot from this image"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"  - Who: users with ``tenantId`` in the ``member-list`` of the image"},{"line_number":146,"context_line":"    with ``member_status \u003d\u003d \u0027accepted\u0027``:"},{"line_number":147,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_a149de90","line":144,"in_reply_to":"bab6814e_a56114ab","updated":"2016-05-24 16:00:00.000000000","message":"Yes, the discovery would be GET v2/images?visibility\u003dcommunity\n\nFurther filtering by \u0026member_status\u003daccepted should show only the ones they\u0027ve accepted (I think).  Or you should be able to do GET v2/images/{image_id}/members , and if you\u0027re a member will see yourself alone in the list (like for shared images now) or will see an empty list if you\u0027re not a member (that may be different behavior than the current shared images).","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"630356402c107f35898e631ec4c05157a46c91ca","unresolved":false,"context_lines":[{"line_number":184,"context_line":"   * - shared → public"},{"line_number":185,"context_line":"     - DELETE ALL MEMBERS ON IMAGE"},{"line_number":186,"context_line":"   * - shared → private"},{"line_number":187,"context_line":"     - no change to image member-list (list will have no effect but is saved in case image is later made \u0027shared\u0027 or \u0027community\u0027)"},{"line_number":188,"context_line":"   * - shared → community"},{"line_number":189,"context_line":"     - no change to image member-list"},{"line_number":190,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_e5b79cf3","line":187,"updated":"2016-05-23 22:19:55.000000000","message":"Is this the current case?","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"beb7953d8f54ffe677d6f9f4b6efb1bebbb03dca","unresolved":false,"context_lines":[{"line_number":184,"context_line":"   * - shared → public"},{"line_number":185,"context_line":"     - DELETE ALL MEMBERS ON IMAGE"},{"line_number":186,"context_line":"   * - shared → private"},{"line_number":187,"context_line":"     - no change to image member-list (list will have no effect but is saved in case image is later made \u0027shared\u0027 or \u0027community\u0027)"},{"line_number":188,"context_line":"   * - shared → community"},{"line_number":189,"context_line":"     - no change to image member-list"},{"line_number":190,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_6d30879f","line":187,"in_reply_to":"bab6814e_e5b79cf3","updated":"2016-05-24 16:00:00.000000000","message":"no, currently the only way to make a shared image not-shared is to remove all the members.","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"630356402c107f35898e631ec4c05157a46c91ca","unresolved":false,"context_lines":[{"line_number":204,"context_line":""},{"line_number":205,"context_line":".. [#] https://blueprints.launchpad.net/glance/+spec/glance-image-aliases"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"Adding a special case of image sharing"},{"line_number":209,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":210,"context_line":"Another method of implementing this functionality is to add a membership record"}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_859e9061","line":207,"updated":"2016-05-23 22:19:55.000000000","message":"We do not want to do this, due to the immutability promise between image ID and data, so this is not really an option as alternative.","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"beb7953d8f54ffe677d6f9f4b6efb1bebbb03dca","unresolved":false,"context_lines":[{"line_number":204,"context_line":""},{"line_number":205,"context_line":".. [#] https://blueprints.launchpad.net/glance/+spec/glance-image-aliases"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"Adding a special case of image sharing"},{"line_number":209,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":210,"context_line":"Another method of implementing this functionality is to add a membership record"}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_2d467fbf","line":207,"in_reply_to":"bab6814e_859e9061","updated":"2016-05-24 16:00:00.000000000","message":"Well, it would require some end-user education to know that fetching an image via ID guarantees immutability; at the same time, it would be good for an operator to have a \"CentOS 7\" reference that always returned the most recent CentOS 7 image.  It could be done now with metadata, e.g.,\n\nGET v2/images?my.cloud.os_name\u003dCentOS\u0026my.cloud.current\u003dtrue\n\nor something like that, but it would be good to have a standard way to do it across clouds, as this seems to be a pretty common use case.  But you are right, it\u0027s a different thing altogether from community images.","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"630356402c107f35898e631ec4c05157a46c91ca","unresolved":false,"context_lines":[{"line_number":221,"context_line":"and some less than desirable mappings between data model level and API level"},{"line_number":222,"context_line":"values of visibility."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"Data model impact"},{"line_number":226,"context_line":"-----------------"},{"line_number":227,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_259fe451","line":224,"updated":"2016-05-23 22:19:55.000000000","message":"Not as bad as aliases, but I don\u0027t think this is the right approach either even it sounds easy to implement.","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"630356402c107f35898e631ec4c05157a46c91ca","unresolved":false,"context_lines":[{"line_number":230,"context_line":""},{"line_number":231,"context_line":"The visibility of the image will be stored in the database within the images"},{"line_number":232,"context_line":"table inside a new column named ``visibility``. The visibility will be in the"},{"line_number":233,"context_line":"set of ``[\u0027public\u0027, \u0027private\u0027, \u0027shared\u0027, \u0027community\u0027]``."},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"The default value for ``visibility`` is ``\u0027private\u0027``."},{"line_number":236,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_e5eafcab","line":233,"updated":"2016-05-23 22:19:55.000000000","message":"Again, don\u0027t we have this visibility already?","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"d4d35d50d71bf8a8b717f16fb5cf2a50478fde09","unresolved":false,"context_lines":[{"line_number":230,"context_line":""},{"line_number":231,"context_line":"The visibility of the image will be stored in the database within the images"},{"line_number":232,"context_line":"table inside a new column named ``visibility``. The visibility will be in the"},{"line_number":233,"context_line":"set of ``[\u0027public\u0027, \u0027private\u0027, \u0027shared\u0027, \u0027community\u0027]``."},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"The default value for ``visibility`` is ``\u0027private\u0027``."},{"line_number":236,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_57c9be78","line":233,"in_reply_to":"bab6814e_8403080d","updated":"2016-05-24 22:31:01.000000000","message":"Right. This change explicitly adds a \u0027visibility\u0027 column to the database that is not currently present - even though (as you pointed out) each image certainly currently has a \u0027visibility\u0027 value.","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"beb7953d8f54ffe677d6f9f4b6efb1bebbb03dca","unresolved":false,"context_lines":[{"line_number":230,"context_line":""},{"line_number":231,"context_line":"The visibility of the image will be stored in the database within the images"},{"line_number":232,"context_line":"table inside a new column named ``visibility``. The visibility will be in the"},{"line_number":233,"context_line":"set of ``[\u0027public\u0027, \u0027private\u0027, \u0027shared\u0027, \u0027community\u0027]``."},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"The default value for ``visibility`` is ``\u0027private\u0027``."},{"line_number":236,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_8403080d","line":233,"in_reply_to":"bab6814e_e5eafcab","updated":"2016-05-24 16:00:00.000000000","message":"No, you can filter on visibility\u003dcommunity, but it\u0027s not actually in the DB.","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"630356402c107f35898e631ec4c05157a46c91ca","unresolved":false,"context_lines":[{"line_number":252,"context_line":"3. For all other rows:"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"   - ``visibility \u003d \u0027private\u0027``"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"REST API impact"},{"line_number":257,"context_line":"---------------"},{"line_number":258,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_25f40486","line":255,"updated":"2016-05-23 22:19:55.000000000","message":"Ditto","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"d4d35d50d71bf8a8b717f16fb5cf2a50478fde09","unresolved":false,"context_lines":[{"line_number":252,"context_line":"3. For all other rows:"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"   - ``visibility \u003d \u0027private\u0027``"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"REST API impact"},{"line_number":257,"context_line":"---------------"},{"line_number":258,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_f7a0b2a7","line":255,"in_reply_to":"bab6814e_25f40486","updated":"2016-05-24 22:31:01.000000000","message":"As above.","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"630356402c107f35898e631ec4c05157a46c91ca","unresolved":false,"context_lines":[{"line_number":265,"context_line":"    GET /v2/images?visibility\u003dcommunity"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"Bookmarked community images will be displayed within the user\u0027s default"},{"line_number":269,"context_line":"``image-list``."},{"line_number":270,"context_line":""},{"line_number":271,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_05346048","line":268,"updated":"2016-05-23 22:19:55.000000000","message":"Bookmarked?","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"beb7953d8f54ffe677d6f9f4b6efb1bebbb03dca","unresolved":false,"context_lines":[{"line_number":265,"context_line":"    GET /v2/images?visibility\u003dcommunity"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"Bookmarked community images will be displayed within the user\u0027s default"},{"line_number":269,"context_line":"``image-list``."},{"line_number":270,"context_line":""},{"line_number":271,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_0d6d7b32","line":268,"in_reply_to":"bab6814e_05346048","updated":"2016-05-24 16:00:00.000000000","message":"Good catch, need a forward reference here to the sectin beginning on line 283.","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"d4d35d50d71bf8a8b717f16fb5cf2a50478fde09","unresolved":false,"context_lines":[{"line_number":265,"context_line":"    GET /v2/images?visibility\u003dcommunity"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"Bookmarked community images will be displayed within the user\u0027s default"},{"line_number":269,"context_line":"``image-list``."},{"line_number":270,"context_line":""},{"line_number":271,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_97716647","line":268,"in_reply_to":"bab6814e_0d6d7b32","updated":"2016-05-24 22:31:01.000000000","message":"I\u0027ll just switch the order of the sections so that bookmarks get introduced first. Thanks for catching it.","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"6a59984f54d9c0b920f1ab70e215ca844ab46c50","unresolved":false,"context_lines":[{"line_number":329,"context_line":""},{"line_number":330,"context_line":"An admin or owner of an image can remove community-level access from an image"},{"line_number":331,"context_line":"by using the image-update call. Instead of setting it to ``\u0027community\u0027`` as"},{"line_number":332,"context_line":"before, we set it to ``\u0027private\u0027``: ::"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"    PATCH /v2/images/{image_id}"},{"line_number":335,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_bd5caf19","line":332,"range":{"start_line":332,"start_character":21,"end_line":332,"end_character":35},"updated":"2016-05-23 11:23:30.000000000","message":"suppose admin or owner want to share this image across all tenants then can he/she set it to public?\n\nWhat happens to the users who bookmarked that image, will it be automatically set to rejected?","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"4755a390457a4ac9064fbf2d3c34a3b9f287a8d5","unresolved":false,"context_lines":[{"line_number":329,"context_line":""},{"line_number":330,"context_line":"An admin or owner of an image can remove community-level access from an image"},{"line_number":331,"context_line":"by using the image-update call. Instead of setting it to ``\u0027community\u0027`` as"},{"line_number":332,"context_line":"before, we set it to ``\u0027private\u0027``: ::"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"    PATCH /v2/images/{image_id}"},{"line_number":335,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_c5e7c7aa","line":332,"range":{"start_line":332,"start_character":21,"end_line":332,"end_character":35},"in_reply_to":"bab6814e_05e740ad","updated":"2016-05-24 17:05:40.000000000","message":"Just to follow up on Abhishek\u0027s member_status question: only an image member (or administrator) can modify the member_status.  In the case of an image going from community-\u003epublic, as Erno said, the member-list would be deleted ... but since the image is now public, it will appear in everyone\u0027s image-list response (and only an administrator can make images public, at least by the default glance policy).  Thus, the people who had \"bookmarked\" it will still see it.  A problem would arise if an image goes community -\u003e public -\u003e community; since the original member-list was deleted, the people who\u0027d bookmarked the image the first time it was a community image would no longer have it bookmarked, so it would disappear from their image-list response.  I don\u0027t know whether that\u0027s good or bad, but it is an implication of this design.","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"630356402c107f35898e631ec4c05157a46c91ca","unresolved":false,"context_lines":[{"line_number":329,"context_line":""},{"line_number":330,"context_line":"An admin or owner of an image can remove community-level access from an image"},{"line_number":331,"context_line":"by using the image-update call. Instead of setting it to ``\u0027community\u0027`` as"},{"line_number":332,"context_line":"before, we set it to ``\u0027private\u0027``: ::"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"    PATCH /v2/images/{image_id}"},{"line_number":335,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_05e740ad","line":332,"range":{"start_line":332,"start_character":21,"end_line":332,"end_character":35},"in_reply_to":"bab6814e_bd5caf19","updated":"2016-05-23 22:19:55.000000000","message":"In this case the members list will be wiped as specified up there.\n\nTo keep the memebers the transition would need to go shared.","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"d4d35d50d71bf8a8b717f16fb5cf2a50478fde09","unresolved":false,"context_lines":[{"line_number":329,"context_line":""},{"line_number":330,"context_line":"An admin or owner of an image can remove community-level access from an image"},{"line_number":331,"context_line":"by using the image-update call. Instead of setting it to ``\u0027community\u0027`` as"},{"line_number":332,"context_line":"before, we set it to ``\u0027private\u0027``: ::"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"    PATCH /v2/images/{image_id}"},{"line_number":335,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_57c53e3b","line":332,"range":{"start_line":332,"start_character":21,"end_line":332,"end_character":35},"in_reply_to":"bab6814e_c5e7c7aa","updated":"2016-05-24 22:31:01.000000000","message":"I\u0027ve added a note to the \u0027transitions\u0027 section to include this problem case.","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"02f365fa1e730f37ee813dd067c14fd17acdc408","unresolved":false,"context_lines":[{"line_number":355,"context_line":"An additional attribute of ``visibility`` will be added for each image to"},{"line_number":356,"context_line":"indicate its visiblity, with possible values of ``[\u0027public\u0027, \u0027private\u0027,"},{"line_number":357,"context_line":"\u0027shared\u0027, \u0027community\u0027]``."},{"line_number":358,"context_line":""},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"Other end user impact"},{"line_number":361,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":17,"id":"dab17558_44c05550","line":358,"updated":"2016-05-11 14:25:36.000000000","message":"Do we need to send a special notification to indicate a visibility change, or is the image.update notification sufficient?  We should probably check with the Searchlight team about this.","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"6490645cda0310b255feb25b34e4ee69d7d3c756","unresolved":false,"context_lines":[{"line_number":355,"context_line":"An additional attribute of ``visibility`` will be added for each image to"},{"line_number":356,"context_line":"indicate its visiblity, with possible values of ``[\u0027public\u0027, \u0027private\u0027,"},{"line_number":357,"context_line":"\u0027shared\u0027, \u0027community\u0027]``."},{"line_number":358,"context_line":""},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"Other end user impact"},{"line_number":361,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":17,"id":"dab17558_efa95925","line":358,"in_reply_to":"dab17558_44c05550","updated":"2016-05-11 17:00:20.000000000","message":"Good point. I think we want to also discuss the membership attr for notifications as SL team was interested in those.\n\nThanks for adding the notification impact, the diff in the update notif looks correct.","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"975cdff1770db5af0ba4bc1e2ff6c102e6aebbcd","unresolved":false,"context_lines":[{"line_number":355,"context_line":"An additional attribute of ``visibility`` will be added for each image to"},{"line_number":356,"context_line":"indicate its visiblity, with possible values of ``[\u0027public\u0027, \u0027private\u0027,"},{"line_number":357,"context_line":"\u0027shared\u0027, \u0027community\u0027]``."},{"line_number":358,"context_line":""},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"Other end user impact"},{"line_number":361,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_86a8b721","line":358,"in_reply_to":"dab17558_efa95925","updated":"2016-05-20 16:32:18.000000000","message":"I brought this up in the searchlight meeting yesterday.  They definitely want a notification, but I forgot to ask whether the current image.update would be fine or whether something special would be useful (but I\u0027m pretty sure the current notification is satisfactory).","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"02f365fa1e730f37ee813dd067c14fd17acdc408","unresolved":false,"context_lines":[{"line_number":374,"context_line":""},{"line_number":375,"context_line":"    [{ \"op\": \"replace\", \"path\": \"/visibility\", \"value\": \"shared\" }]"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":""},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"Client changes"},{"line_number":380,"context_line":"~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":17,"id":"dab17558_a9d0fac9","line":377,"updated":"2016-05-11 14:25:36.000000000","message":"OK, so what do we propose to do about this?  Current users expect an image to be shared simply by making the add-member call.  Do we automatically change the visibility when the first member is added to preserve backward compatibility?  The downside of that is that it\u0027s bad for the new users, who might want to load up the member-list on a private image first, and only make it shared when they\u0027re ready.  Such a use case will have the counterintuitive workflow that you add a member, then change the visibility of the image to private, then add more image members.  That seems bad to me.","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"beb7953d8f54ffe677d6f9f4b6efb1bebbb03dca","unresolved":false,"context_lines":[{"line_number":374,"context_line":""},{"line_number":375,"context_line":"    [{ \"op\": \"replace\", \"path\": \"/visibility\", \"value\": \"shared\" }]"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":""},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"Client changes"},{"line_number":380,"context_line":"~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_8d17ab53","line":377,"in_reply_to":"bab6814e_e53e7cd9","updated":"2016-05-24 16:00:00.000000000","message":"Not sure I agree, but I\u0027m out of time ATM.  Need to think about this some more.","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"630356402c107f35898e631ec4c05157a46c91ca","unresolved":false,"context_lines":[{"line_number":374,"context_line":""},{"line_number":375,"context_line":"    [{ \"op\": \"replace\", \"path\": \"/visibility\", \"value\": \"shared\" }]"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":""},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"Client changes"},{"line_number":380,"context_line":"~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_e53e7cd9","line":377,"in_reply_to":"bab6814e_fc0cb2ed","updated":"2016-05-23 22:19:55.000000000","message":"We cannot go and break our API just by deciding that suddenly the image visibility needs to be set to shared first. Please lets not make this a new image import refactoring farce.\n\nWe can add possibility to set image from private to shared and we can even deprecate the old behavior to encourage setting it shared first, but we cannot demand that.","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"975cdff1770db5af0ba4bc1e2ff6c102e6aebbcd","unresolved":false,"context_lines":[{"line_number":374,"context_line":""},{"line_number":375,"context_line":"    [{ \"op\": \"replace\", \"path\": \"/visibility\", \"value\": \"shared\" }]"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":""},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"Client changes"},{"line_number":380,"context_line":"~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_f9796483","line":377,"in_reply_to":"dab17558_83d4e1eb","updated":"2016-05-20 16:32:18.000000000","message":"I agree with your analysis that trying to make this backwards compatible will make it a very difficult-to-understand feature.  I wonder what our obligations are here.","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"c2ac49729b43c9f63f6ca4f0106e7a41e6a26f06","unresolved":false,"context_lines":[{"line_number":374,"context_line":""},{"line_number":375,"context_line":"    [{ \"op\": \"replace\", \"path\": \"/visibility\", \"value\": \"shared\" }]"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":""},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"Client changes"},{"line_number":380,"context_line":"~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":17,"id":"dab17558_8582b650","line":377,"in_reply_to":"dab17558_83d4e1eb","updated":"2016-05-13 19:19:29.000000000","message":"We have a irc chat on this issue:\n\ntl;dr; We need to be more strict on defining what public, shared, etc. images are. Also, we need to update the wiki on the community image visibility once we are sure.\n\n\n---\n\n13:29:22 nikhil: tsymanczyk: on the first question: visibility shared vs. private when members are added\n\n13:29:22 nikhil: tsymanczyk: I think we are overlaping two different problems here\n\n13:30:06 nikhil: tsymanczyk: why would we want to share an image which does not have a visibility shared? (I guess we need rosmaita for this )\n\n13:31:58 nikhil: tsymanczyk: also, it seems like a very bad idea to have a switch that can be turned off for shared images that makes them private keeping the members. a private image must remain private!? the definition here https://review.openstack.org/#/c/271019/17/specs/newton/approved/glance/community_visibility.rst@97 states that\n\n13:32:29 nikhil: tsymanczyk: so, I guess we need to come to an understanding of the visibility  definitions and then go forward\n\n13:33:41 tsymanczyk: nikhil : in that case i think we need to revisit the wiki and transitions section. right now it\u0027s specified that any transition TO private should retain the member list, althogh the member list will have no effect.\n\n13:34:25 tsymanczyk: the table in the spec was copied straight from here https://wiki.openstack.org/wiki/Glance-v2-community-image-visibility-design\n\n13:38:43 nikhil: tsymanczyk: good point! I mostly assumed we were only back referencing it for historical reasons, I did not consider it to be a source of proposal too. (Will pay attn)\n\n13:39:13 nikhil: tsymanczyk: but that does fundamentally break the private clause as per the definition. so we need to update the wiki\n\n13:39:36 nikhil: #action rosmaita: to comment on the spec to determine what the expected behavior of private image is.\n\n---","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"975cdff1770db5af0ba4bc1e2ff6c102e6aebbcd","unresolved":false,"context_lines":[{"line_number":374,"context_line":""},{"line_number":375,"context_line":"    [{ \"op\": \"replace\", \"path\": \"/visibility\", \"value\": \"shared\" }]"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":""},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"Client changes"},{"line_number":380,"context_line":"~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_fc0cb2ed","line":377,"in_reply_to":"dab17558_8582b650","updated":"2016-05-20 16:32:18.000000000","message":"Addressing the issue of: what to do about the member-list when an image goes shared-\u003eprivate\n\nI think the member-list should remain on the list, it just won\u0027t have any effect any more since the image isn\u0027t visibility \u003d\u003d shared.  Here\u0027s why:\n\nSuppose I create an image in my account; it\u0027s private.  I can add members to it (keeping it private) and then make the image available to all those people by \"publishing\" it when I change visibility private -\u003e shared.  That seems reasonable. (It also doesn\u0027t seem immediately relevant! I guess what I\u0027m getting at is that there\u0027s a separation between (a) maintaining the membership list, and (b) whether the image is available or not.)\n\nSo I\u0027ve got this shared image and someone tells me it\u0027s got malware on it or something.  I want to \u0027deactivate\u0027 it, but can\u0027t (that\u0027s an admin operation).  So I do visibility shared -\u003e private, examine the image, and do visibility private -\u003e shared if everything is OK.","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"402caa83c4aee5525a8e6a445e5415b22d9c4c7a","unresolved":false,"context_lines":[{"line_number":374,"context_line":""},{"line_number":375,"context_line":"    [{ \"op\": \"replace\", \"path\": \"/visibility\", \"value\": \"shared\" }]"},{"line_number":376,"context_line":""},{"line_number":377,"context_line":""},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"Client changes"},{"line_number":380,"context_line":"~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":17,"id":"dab17558_83d4e1eb","line":377,"in_reply_to":"dab17558_a9d0fac9","updated":"2016-05-11 20:45:32.000000000","message":"Backwards compatibility would be a great thing to have, but in this case overall I\u0027m not sure what we\u0027re achieving. We\u0027re proposing separating the private-\u003eshared transition and adding member steps in order to maintain consistency with with the community case. But then if we add in the backwards compatibility implicit-switch-to-shared-on-first-member-add then I find it difficult to imagine a scenario where anyone would ever choose to explicitly go from private to shared. Why do two steps when one has an identical result? What would we be achieving by changing the shared workflow?\n\nI agree that your new user scenario of add member, switch back to private, add more members would be a poor experience. Is it a desired feature to be able to manipulate the member list of a private image without impacting the visibility? \n\nOne more question I would have is if the end result of adding a first member should be different from a subsequent member. Is it reasonable to expect a user to always know the contents of the current member list when adding a new member? If not I think we\u0027d confuse a few people by only switching from private to shared if the list was previously empty.","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"630356402c107f35898e631ec4c05157a46c91ca","unresolved":false,"context_lines":[{"line_number":379,"context_line":"Client changes"},{"line_number":380,"context_line":"~~~~~~~~~~~~~~"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"OpenStackClient will be updated to expose this feature. "},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"Users will be able to see all community images by using"},{"line_number":385,"context_line":"``openstack image list --community``."}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_c516d857","line":382,"updated":"2016-05-23 22:19:55.000000000","message":"This needs to happen in python-glanceclient as well.","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"df8993ac2b6b1d610a509c0edec7838b14a93112","unresolved":false,"context_lines":[{"line_number":379,"context_line":"Client changes"},{"line_number":380,"context_line":"~~~~~~~~~~~~~~"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"OpenStackClient will be updated to expose this feature. "},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"Users will be able to see all community images by using"},{"line_number":385,"context_line":"``openstack image list --community``."}],"source_content_type":"text/x-rst","patch_set":17,"id":"7aa08908_85ea91aa","line":382,"in_reply_to":"7aa08908_f18a5bbe","updated":"2016-06-07 16:50:37.000000000","message":"Thanks for clarifying. Done.","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"fba6a14c0259e1a6d28d9d0f04817552293bb711","unresolved":false,"context_lines":[{"line_number":379,"context_line":"Client changes"},{"line_number":380,"context_line":"~~~~~~~~~~~~~~"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"OpenStackClient will be updated to expose this feature. "},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"Users will be able to see all community images by using"},{"line_number":385,"context_line":"``openstack image list --community``."}],"source_content_type":"text/x-rst","patch_set":17,"id":"7aa08908_f18a5bbe","line":382,"in_reply_to":"bab6814e_57f37e9f","updated":"2016-06-07 09:40:02.000000000","message":"OSC uses python-glanceclient to provide the features to the CLI so there is need for that regardless what ever is done with the CLI part of python-glanceclient. (Sorry for being so late to reply.)","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"d4d35d50d71bf8a8b717f16fb5cf2a50478fde09","unresolved":false,"context_lines":[{"line_number":379,"context_line":"Client changes"},{"line_number":380,"context_line":"~~~~~~~~~~~~~~"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"OpenStackClient will be updated to expose this feature. "},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"Users will be able to see all community images by using"},{"line_number":385,"context_line":"``openstack image list --community``."}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_57f37e9f","line":382,"in_reply_to":"bab6814e_c516d857","updated":"2016-05-24 22:31:01.000000000","message":"In a comment on patchset 15, nikhil and questioned whether or not it would be worth spending the time supporting glanceclient, so I removed it.","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"02f365fa1e730f37ee813dd067c14fd17acdc408","unresolved":false,"context_lines":[{"line_number":418,"context_line":"providing a malicious image to a large audience). For this reason, the ability"},{"line_number":419,"context_line":"to create community images is moderated using policy.json. As mentioned above"},{"line_number":420,"context_line":"a new rule will be created called ``communitize_image``, which will have the"},{"line_number":421,"context_line":"default configuration of ``[role:admin]``."},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"Also users from Horizon will be able to see community images through"},{"line_number":424,"context_line":"a separate tab. Details regarding the Horizon feature can be found at:"}],"source_content_type":"text/x-rst","patch_set":17,"id":"dab17558_44885571","line":421,"updated":"2016-05-11 14:25:36.000000000","message":"I don\u0027t know how I feel about this.  The original idea was for this to be a self-service kind of thing.  The spam doesn\u0027t seem worse to me than what a current user could do with regular sharing, i.e., share images Viagra0001 through Viagra1000 with a particular user, thereby making the GET v2/images?visibility\u003dshared\u0026member_status\u003dpending call behave badly.  I guess the main problem is that we don\u0027t have a negative filter that would allow GET v2/images?visibilty\u003dcommunity\u0026owner\u003d!viagraguy (though you could do this with Searchlight).\n\nThe other consequence of making it admin by default is that community images can\u0027t make it into defcore (not under current rules, anyway).  I don\u0027t know if that\u0027s a consideration or not.","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"beb7953d8f54ffe677d6f9f4b6efb1bebbb03dca","unresolved":false,"context_lines":[{"line_number":418,"context_line":"providing a malicious image to a large audience). For this reason, the ability"},{"line_number":419,"context_line":"to create community images is moderated using policy.json. As mentioned above"},{"line_number":420,"context_line":"a new rule will be created called ``communitize_image``, which will have the"},{"line_number":421,"context_line":"default configuration of ``[role:admin]``."},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"Also users from Horizon will be able to see community images through"},{"line_number":424,"context_line":"a separate tab. Details regarding the Horizon feature can be found at:"}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_8d496b91","line":421,"in_reply_to":"bab6814e_17565306","updated":"2016-05-24 16:00:00.000000000","message":"Erno raises a good point about indexes, you should probably include a statement in the database section of the spec saying that appropriate indexes will be added to facilitate quick responses.","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"d4d35d50d71bf8a8b717f16fb5cf2a50478fde09","unresolved":false,"context_lines":[{"line_number":418,"context_line":"providing a malicious image to a large audience). For this reason, the ability"},{"line_number":419,"context_line":"to create community images is moderated using policy.json. As mentioned above"},{"line_number":420,"context_line":"a new rule will be created called ``communitize_image``, which will have the"},{"line_number":421,"context_line":"default configuration of ``[role:admin]``."},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"Also users from Horizon will be able to see community images through"},{"line_number":424,"context_line":"a separate tab. Details regarding the Horizon feature can be found at:"}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_573a5e35","line":421,"in_reply_to":"bab6814e_8d496b91","updated":"2016-05-24 22:31:01.000000000","message":"Done","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"402caa83c4aee5525a8e6a445e5415b22d9c4c7a","unresolved":false,"context_lines":[{"line_number":418,"context_line":"providing a malicious image to a large audience). For this reason, the ability"},{"line_number":419,"context_line":"to create community images is moderated using policy.json. As mentioned above"},{"line_number":420,"context_line":"a new rule will be created called ``communitize_image``, which will have the"},{"line_number":421,"context_line":"default configuration of ``[role:admin]``."},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"Also users from Horizon will be able to see community images through"},{"line_number":424,"context_line":"a separate tab. Details regarding the Horizon feature can be found at:"}],"source_content_type":"text/x-rst","patch_set":17,"id":"dab17558_e3332c12","line":421,"in_reply_to":"dab17558_44885571","updated":"2016-05-11 20:45:32.000000000","message":"Good point. Making this admin only (by default) does seem to defeat the original purpose to a significant degree.\n\nI think the community spam problem could be a little bit worse than what can be done with current sharing. With current sharing a spammer needs 1 call to add 1 bad entry to 1 users list (and presumably needs to know that users id). If we opened communitize_image to owners, then any ill intentioned image owner with 1 call can add 1 bad entry into every users \"show all\" community listing.\n\nIs it expected that \"show me all community images\" is a call that people will want to make? I can easily picture wanting to see all of the community images that specific-owner has published. But under what scenario would a regular person want to just browse every communitized image from across the entire cloud? I feel like this is functionality that \"should\" be available, but in the same vein as doing a recursive file search across your entire computer - the caller should already know that the vast vast vast majority of the output is going to be noise. Even if we imagine a cloud that perfectly prevents spammers, with enough users over enough time I think we can still expect that eventually the list of all community images everywhere is going to become uselessly large.\n\nIf we can expect most users to qualify the show-all by specifying an owner, then we may be able to open up communitize_images to owners without unreasonably exposing users to spammed images.","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"c2ac49729b43c9f63f6ca4f0106e7a41e6a26f06","unresolved":false,"context_lines":[{"line_number":418,"context_line":"providing a malicious image to a large audience). For this reason, the ability"},{"line_number":419,"context_line":"to create community images is moderated using policy.json. As mentioned above"},{"line_number":420,"context_line":"a new rule will be created called ``communitize_image``, which will have the"},{"line_number":421,"context_line":"default configuration of ``[role:admin]``."},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"Also users from Horizon will be able to see community images through"},{"line_number":424,"context_line":"a separate tab. Details regarding the Horizon feature can be found at:"}],"source_content_type":"text/x-rst","patch_set":17,"id":"dab17558_f9352bdb","line":421,"in_reply_to":"dab17558_e3332c12","updated":"2016-05-13 19:19:29.000000000","message":"We had an irc chat on \"If we can expect most users to qualify the show-all by specifying an owner, then we may be able to open up communitize_images to owners without unreasonably exposing users to spammed images.\"\n\n\ntl;dr; We converged on the more freedom option. There is an assumption though that people would want to browse community images using certain filters like \"owner\". We think that\u0027s a fine assumption.\n\nLink to the conversation here: http://eavesdrop.openstack.org/irclogs/%23openstack-glance/%23openstack-glance.2016-05-13.log.html#t2016-05-13T18:02:55","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"630356402c107f35898e631ec4c05157a46c91ca","unresolved":false,"context_lines":[{"line_number":418,"context_line":"providing a malicious image to a large audience). For this reason, the ability"},{"line_number":419,"context_line":"to create community images is moderated using policy.json. As mentioned above"},{"line_number":420,"context_line":"a new rule will be created called ``communitize_image``, which will have the"},{"line_number":421,"context_line":"default configuration of ``[role:admin]``."},{"line_number":422,"context_line":""},{"line_number":423,"context_line":"Also users from Horizon will be able to see community images through"},{"line_number":424,"context_line":"a separate tab. Details regarding the Horizon feature can be found at:"}],"source_content_type":"text/x-rst","patch_set":17,"id":"bab6814e_17565306","line":421,"in_reply_to":"dab17558_f9352bdb","updated":"2016-05-23 22:19:55.000000000","message":"I saw somewhere in the depths of the mailing list discussion about filtering without indexes being somewhat not wanted and taxing. Perhaps that should be taken in account what ever we decide to with this.\n\nI really don\u0027t have strong opinion either way about the default.\n\nAs Brian mentioned keeping the default as admin would block it becoming part of the defcore requirements so maybe it\u0027s better to start with that so we don\u0027t realize suddenly that it was horrible idea and we cannot turn it back because those clouds would not pass the defcore stamp.","commit_id":"c542527352debd3fa560871c56a46ac58b25e944"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"f5c2123b0e2f4b17e17e3ea1eeda8ff97bda9d6b","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"This feature will allow image owners to share images across multiple"},{"line_number":21,"context_line":"tenants/projects without explicitly creating members individually through the"},{"line_number":22,"context_line":"glance API V2. \"Community images\" will not appear in users default image"},{"line_number":23,"context_line":"listings."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"This new feature adds a new value for the visibility of an image to the"}],"source_content_type":"text/x-rst","patch_set":20,"id":"3aaa91ec_cdba620a","line":22,"range":{"start_line":22,"start_character":53,"end_line":22,"end_character":58},"updated":"2016-06-28 02:33:05.000000000","message":"s/users/users\u0027/","commit_id":"6e994ab39f82d78162a51c9f542ce56b9be16bad"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"97dbc515cf3e1fd9d084614d2e7805e1cfdb0e50","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"This feature will allow image owners to share images across multiple"},{"line_number":21,"context_line":"tenants/projects without explicitly creating members individually through the"},{"line_number":22,"context_line":"glance API V2. \"Community images\" will not appear in users default image"},{"line_number":23,"context_line":"listings."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"This new feature adds a new value for the visibility of an image to the"}],"source_content_type":"text/x-rst","patch_set":20,"id":"3aaa91ec_3ae2c42f","line":22,"range":{"start_line":22,"start_character":53,"end_line":22,"end_character":58},"in_reply_to":"3aaa91ec_cdba620a","updated":"2016-06-29 21:27:02.000000000","message":"Done","commit_id":"6e994ab39f82d78162a51c9f542ce56b9be16bad"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"f5c2123b0e2f4b17e17e3ea1eeda8ff97bda9d6b","unresolved":false,"context_lines":[{"line_number":166,"context_line":""},{"line_number":167,"context_line":"The behaviour for the initial implementation for community images shall"},{"line_number":168,"context_line":"respect the current paradigm in glance - where changing visiblities does not"},{"line_number":169,"context_line":"affect an image\u0027s membership."},{"line_number":170,"context_line":""},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":20,"id":"3aaa91ec_8d1cda14","line":169,"range":{"start_line":169,"start_character":18,"end_line":169,"end_character":28},"updated":"2016-06-28 02:33:05.000000000","message":"I may be being too pedantic here, but what doesn\u0027t change is the image\u0027s *member-list*.  What I mean is, after this spec is implemented, the member-list on a private image won\u0027t give those tenants any privileges with respect to that image, so effectively the image has no membership, even though it\u0027s got a member list.\n\nFeel free to ignore this comment if you don\u0027t think it clarifies anything.","commit_id":"6e994ab39f82d78162a51c9f542ce56b9be16bad"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"97dbc515cf3e1fd9d084614d2e7805e1cfdb0e50","unresolved":false,"context_lines":[{"line_number":166,"context_line":""},{"line_number":167,"context_line":"The behaviour for the initial implementation for community images shall"},{"line_number":168,"context_line":"respect the current paradigm in glance - where changing visiblities does not"},{"line_number":169,"context_line":"affect an image\u0027s membership."},{"line_number":170,"context_line":""},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":20,"id":"3aaa91ec_fac2fc83","line":169,"range":{"start_line":169,"start_character":18,"end_line":169,"end_character":28},"in_reply_to":"3aaa91ec_8d1cda14","updated":"2016-06-29 21:27:02.000000000","message":"Now that you\u0027ve pointed it out, it\u0027s clear that the sentence is a flat misstatement.\n\nFixed.","commit_id":"6e994ab39f82d78162a51c9f542ce56b9be16bad"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"241ef443e45f648a310d42f803796baebfe08d63","unresolved":false,"context_lines":[{"line_number":278,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"An admin or owner of an image can remove community-level access from an image"},{"line_number":281,"context_line":"by using the image-update call. Instead of setting it to ``\u0027community\u0027`` as"},{"line_number":282,"context_line":"before, we set it to ``\u0027private\u0027``: ::"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"    PATCH /v2/images/{image_id}"}],"source_content_type":"text/x-rst","patch_set":21,"id":"1aa78d24_bd0287b2","line":281,"range":{"start_line":281,"start_character":32,"end_line":281,"end_character":33},"updated":"2016-07-14 21:21:46.000000000","message":"I\u0027d suggest changing this to \"For example, instead\"","commit_id":"db8be3b10398f0fb4196db77d7862b415fcafb7d"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"9ef5747f0b81336c9a2f745999b37b8294ee9223","unresolved":false,"context_lines":[{"line_number":278,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"An admin or owner of an image can remove community-level access from an image"},{"line_number":281,"context_line":"by using the image-update call. Instead of setting it to ``\u0027community\u0027`` as"},{"line_number":282,"context_line":"before, we set it to ``\u0027private\u0027``: ::"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"    PATCH /v2/images/{image_id}"}],"source_content_type":"text/x-rst","patch_set":21,"id":"1aa78d24_586c519d","line":281,"range":{"start_line":281,"start_character":32,"end_line":281,"end_character":33},"in_reply_to":"1aa78d24_bd0287b2","updated":"2016-07-14 21:48:26.000000000","message":"Done","commit_id":"db8be3b10398f0fb4196db77d7862b415fcafb7d"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"241ef443e45f648a310d42f803796baebfe08d63","unresolved":false,"context_lines":[{"line_number":286,"context_line":"Request body: ::"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"    [{ \"op\": \"replace\", \"path\": \"/visibility\", \"value\": \"private\" }]"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"As in the above case, the response and other behaviour remains the same as"},{"line_number":291,"context_line":"was previously defined for this call."},{"line_number":292,"context_line":""}],"source_content_type":"text/x-rst","patch_set":21,"id":"1aa78d24_1db2bbe5","line":289,"updated":"2016-07-14 21:21:46.000000000","message":"Before the next paragraph, I\u0027d suggest adding, \"An admin or user with permission to publicize an image could replace community visibility with ``public``.\"\n\n(The point is to make it clear that you don\u0027t have to go from community -\u003e private -\u003e public.)","commit_id":"db8be3b10398f0fb4196db77d7862b415fcafb7d"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"9ef5747f0b81336c9a2f745999b37b8294ee9223","unresolved":false,"context_lines":[{"line_number":286,"context_line":"Request body: ::"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"    [{ \"op\": \"replace\", \"path\": \"/visibility\", \"value\": \"private\" }]"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"As in the above case, the response and other behaviour remains the same as"},{"line_number":291,"context_line":"was previously defined for this call."},{"line_number":292,"context_line":""}],"source_content_type":"text/x-rst","patch_set":21,"id":"1aa78d24_b86bb584","line":289,"in_reply_to":"1aa78d24_1db2bbe5","updated":"2016-07-14 21:48:26.000000000","message":"Done","commit_id":"db8be3b10398f0fb4196db77d7862b415fcafb7d"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"241ef443e45f648a310d42f803796baebfe08d63","unresolved":false,"context_lines":[{"line_number":325,"context_line":""},{"line_number":326,"context_line":"    [{ \"op\": \"replace\", \"path\": \"/visibility\", \"value\": \"shared\" }]"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":""},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"Client changes"},{"line_number":331,"context_line":"~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":21,"id":"1aa78d24_9db86b13","line":328,"updated":"2016-07-14 21:21:46.000000000","message":"It would be worth mentioning that we discussed this with the API WG and they are OK with it.  (See 16:26:47 on eavesdrop.openstack.org/meetings/api_wg/2016/api_wg.2016-06-09-15.59.log.html)","commit_id":"db8be3b10398f0fb4196db77d7862b415fcafb7d"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"9ef5747f0b81336c9a2f745999b37b8294ee9223","unresolved":false,"context_lines":[{"line_number":325,"context_line":""},{"line_number":326,"context_line":"    [{ \"op\": \"replace\", \"path\": \"/visibility\", \"value\": \"shared\" }]"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":""},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"Client changes"},{"line_number":331,"context_line":"~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":21,"id":"1aa78d24_f88d3d2b","line":328,"in_reply_to":"1aa78d24_9db86b13","updated":"2016-07-14 21:48:26.000000000","message":"Done","commit_id":"db8be3b10398f0fb4196db77d7862b415fcafb7d"},{"author":{"_account_id":7179,"name":"Brad Pokorny","email":"brad_pokorny@symantec.com","username":"bpokorny"},"change_message_id":"fc979a647a079a05388cee164ab708ff3220ad8b","unresolved":false,"context_lines":[{"line_number":255,"context_line":""},{"line_number":256,"context_line":"Note that ``visiblity`` will be considered a core property of the image object,"},{"line_number":257,"context_line":"and as such included within image lists generated via the v2 interface."},{"line_number":258,"context_line":""},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"Making an image a \"community image\""},{"line_number":261,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":22,"id":"dada55a8_245782cf","line":258,"updated":"2016-07-19 20:31:49.000000000","message":"I think it would be good to also define here what the existing \"GET /v2/images\" API will return. We probably want it to not return community images by default to cut down on image spam from that call.","commit_id":"2eaeff60a51590f4af79b67243ce57735e05361d"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"5e22e147c78d0c9835db736837731bc35d58aba1","unresolved":false,"context_lines":[{"line_number":255,"context_line":""},{"line_number":256,"context_line":"Note that ``visiblity`` will be considered a core property of the image object,"},{"line_number":257,"context_line":"and as such included within image lists generated via the v2 interface."},{"line_number":258,"context_line":""},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"Making an image a \"community image\""},{"line_number":261,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":22,"id":"dada55a8_af698b27","line":258,"in_reply_to":"dada55a8_245782cf","updated":"2016-07-19 20:56:04.000000000","message":"Thanks for calling this out, Brad, so we can be sure we\u0027re all on the same page.  My reading of lines 151 and 143 is that a user won\u0027t see community images in the plain GET /v2/images call -- except for any community images that the user owns.  But it might be worth re-iterating the point here.","commit_id":"2eaeff60a51590f4af79b67243ce57735e05361d"},{"author":{"_account_id":7179,"name":"Brad Pokorny","email":"brad_pokorny@symantec.com","username":"bpokorny"},"change_message_id":"d8816d0b50e9108756e942fda578862c1b88e214","unresolved":false,"context_lines":[{"line_number":237,"context_line":"REST API impact"},{"line_number":238,"context_line":"---------------"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"The changes described in this document will require an API version bump."},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"Image discovery"},{"line_number":243,"context_line":"~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":23,"id":"bacf61ea_98af537c","line":240,"updated":"2016-08-01 15:54:41.000000000","message":"Thanks for adding this.","commit_id":"25d15962a4e5ff2d5ba257345e7c92b1e3ea72e0"}],"specs/newton/community_visibility.rst":[{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"750aca554a55f4aa290c037d61e8135cfa743ebe","unresolved":false,"context_lines":[{"line_number":50,"context_line":"   current v2 image sharing. At the same time, the cloud provider hosting the"},{"line_number":51,"context_line":"   prepared image doesn\u0027t want to make this image public, as that would imply"},{"line_number":52,"context_line":"   a support relationship that doesn\u0027t exist between image consumers and the"},{"line_number":53,"context_line":"   cloud provider. Moreover, if there are too many such images get publicized,"},{"line_number":54,"context_line":"   then image listing will be spammed as community images should not be seen"},{"line_number":55,"context_line":"   by most of the users."},{"line_number":56,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a68dd71_7379b4c7","line":53,"updated":"2016-01-22 22:43:42.000000000","message":"suggest changing \"if there are too many such images get publicized\" to \"if too many such images get published\"","commit_id":"4db9c9007b3cfdf411bb68d43c5848bd2a6cc8a4"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"750aca554a55f4aa290c037d61e8135cfa743ebe","unresolved":false,"context_lines":[{"line_number":51,"context_line":"   prepared image doesn\u0027t want to make this image public, as that would imply"},{"line_number":52,"context_line":"   a support relationship that doesn\u0027t exist between image consumers and the"},{"line_number":53,"context_line":"   cloud provider. Moreover, if there are too many such images get publicized,"},{"line_number":54,"context_line":"   then image listing will be spammed as community images should not be seen"},{"line_number":55,"context_line":"   by most of the users."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"2. A cloud provider wants to discourage users from using a public image that is"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a68dd71_f3192489","line":54,"updated":"2016-01-22 22:43:42.000000000","message":"suggest changing \"as community images\" to \"as these types of images\", as it\u0027s in reference to the problem case without the patch. only after the patch will they become community images.","commit_id":"4db9c9007b3cfdf411bb68d43c5848bd2a6cc8a4"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"750aca554a55f4aa290c037d61e8135cfa743ebe","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"An image with with a certain value for ``visibility`` has the following"},{"line_number":87,"context_line":"properties:"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Images with these ``visibility`` values have the following properties:"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"* **public**:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a68dd71_167b868d","line":88,"updated":"2016-01-22 22:43:42.000000000","message":"The two lines above should be removed, as they seem to have been rewritten below.","commit_id":"4db9c9007b3cfdf411bb68d43c5848bd2a6cc8a4"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"750aca554a55f4aa290c037d61e8135cfa743ebe","unresolved":false,"context_lines":[{"line_number":87,"context_line":"properties:"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Images with these ``visibility`` values have the following properties:"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"* **public**:"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"  - Who: all users:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a68dd71_96c3f688","line":90,"updated":"2016-01-22 22:43:42.000000000","message":"For below, some of the \"Who:\" lines have two colons (one after Who, and another at the end), and some only have one. Please make them consistent with each other.","commit_id":"4db9c9007b3cfdf411bb68d43c5848bd2a6cc8a4"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"750aca554a55f4aa290c037d61e8135cfa743ebe","unresolved":false,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"* **shared**:"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"  -  Who: users with ``tenant_id owner_tenant_id``:"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    + have this image in the default ``image-list``"},{"line_number":116,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a68dd71_f6ea720e","line":113,"updated":"2016-01-22 22:43:42.000000000","message":"is the above missing an \u003d\u003d?","commit_id":"4db9c9007b3cfdf411bb68d43c5848bd2a6cc8a4"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"750aca554a55f4aa290c037d61e8135cfa743ebe","unresolved":false,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    + can boot from this image"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"  - Who: users with ``tenant_id`` in the ``member-list`` of the image"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    + can see ``image-detail`` for this image"},{"line_number":124,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a68dd71_f65fd2e2","line":121,"updated":"2016-01-22 22:43:42.000000000","message":"should we specify here that this case applies explicitly when the member_status is NOT accepted?","commit_id":"4db9c9007b3cfdf411bb68d43c5848bd2a6cc8a4"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"750aca554a55f4aa290c037d61e8135cfa743ebe","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"  - Who: users with ``tenantId`` in the ``member-list``"},{"line_number":128,"context_line":"    with ``member_status \u003d\u003d \u0027accepted\u0027``"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    + have this image in their default ``image-list``"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"* **community**:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a68dd71_366a4a82","line":129,"updated":"2016-01-22 22:43:42.000000000","message":"can this type of user see image-detail for the image? can they boot from this image? if this is meant to be a \"tack-on\" to the above case it is not immediately clear to my eyes.","commit_id":"4db9c9007b3cfdf411bb68d43c5848bd2a6cc8a4"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"750aca554a55f4aa290c037d61e8135cfa743ebe","unresolved":false,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"  - Who: users with ``tenantId`` in the ``member-list`` of the image"},{"line_number":141,"context_line":"    with ``member_status \u003d\u003d \u0027accepted\u0027``"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    + have this image in their default ``image-list``"},{"line_number":144,"context_line":"      TODO"},{"line_number":145,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a68dd71_f6d4b220","line":142,"updated":"2016-01-22 22:43:42.000000000","message":"Same comments as above. can this user see image-detail? can they boot from this image? if it\u0027s meant to be rolled into the above it is not immediately clear.","commit_id":"4db9c9007b3cfdf411bb68d43c5848bd2a6cc8a4"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"750aca554a55f4aa290c037d61e8135cfa743ebe","unresolved":false,"context_lines":[{"line_number":153,"context_line":"A completely different way of solving the usecase for cloud providers"},{"line_number":154,"context_line":"(discouraging users from using an older version of a public image) could be to"},{"line_number":155,"context_line":"create a mechanism to make an image alias, which could point at the newest"},{"line_number":156,"context_line":"version of the public image. There is a abandoned blueprint for this feature"},{"line_number":157,"context_line":"[#]_. This, however, is much harder to implement and does not fit with the"},{"line_number":158,"context_line":"other use cases."},{"line_number":159,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a68dd71_96cd3687","line":156,"updated":"2016-01-22 22:43:42.000000000","message":"should be \"There is an abandoned\"","commit_id":"4db9c9007b3cfdf411bb68d43c5848bd2a6cc8a4"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"750aca554a55f4aa290c037d61e8135cfa743ebe","unresolved":false,"context_lines":[{"line_number":175,"context_line":"This method can cause a few corner cases which result in surprising API calls"},{"line_number":176,"context_line":"and some less than desirable mappings between data model level and API level"},{"line_number":177,"context_line":"values of visibility."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"Data model impact"},{"line_number":181,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a68dd71_168f062b","line":178,"updated":"2016-01-22 22:43:42.000000000","message":"I think an example of undesirable behavior would be helpful here.","commit_id":"4db9c9007b3cfdf411bb68d43c5848bd2a6cc8a4"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"750aca554a55f4aa290c037d61e8135cfa743ebe","unresolved":false,"context_lines":[{"line_number":215,"context_line":""},{"line_number":216,"context_line":"If you want to see a whole list of community images, then you will use"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    GET /v2/images?show_community_images\u003dTrue"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"Community images will be displayed in an image listing when the visibility"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a68dd71_d6eace73","line":218,"updated":"2016-01-22 22:43:42.000000000","message":"Is this list intended to exclusively be community images, or will it also include others like public?","commit_id":"4db9c9007b3cfdf411bb68d43c5848bd2a6cc8a4"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"750aca554a55f4aa290c037d61e8135cfa743ebe","unresolved":false,"context_lines":[{"line_number":305,"context_line":"Other end user impact"},{"line_number":306,"context_line":"---------------------"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"Client changes"},{"line_number":310,"context_line":"~~~~~~~~~~~~~~"},{"line_number":311,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a68dd71_b69cfa0e","line":308,"updated":"2016-01-22 22:43:42.000000000","message":"Is there other end user impact?","commit_id":"4db9c9007b3cfdf411bb68d43c5848bd2a6cc8a4"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"750aca554a55f4aa290c037d61e8135cfa743ebe","unresolved":false,"context_lines":[{"line_number":317,"context_line":"``glance image-update`` will be added named ``--visibility"},{"line_number":318,"context_line":"\u003cVISIBILITY_STATUS\u003e``, where ``VISIBILITY_STATUS`` may be one of ``{public,"},{"line_number":319,"context_line":"private, community}``."},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"For example, to make an image a community image:"},{"line_number":322,"context_line":""},{"line_number":323,"context_line":".. code:: bash"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a68dd71_f6bd9268","line":320,"updated":"2016-01-22 22:43:42.000000000","message":"is shared not a valid option for visibility_status here?","commit_id":"4db9c9007b3cfdf411bb68d43c5848bd2a6cc8a4"},{"author":{"_account_id":7179,"name":"Brad Pokorny","email":"brad_pokorny@symantec.com","username":"bpokorny"},"change_message_id":"53b5e4cbb3f4668a8e3ded9e998f0d8c2a94af58","unresolved":false,"context_lines":[{"line_number":388,"context_line":"- Refactor db API to use ``visibility`` rather than ``is_public``"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"- Add functionality for storing the community state in the interfaces to both"},{"line_number":391,"context_line":"db backends:"},{"line_number":392,"context_line":""},{"line_number":393,"context_line":"  + sqlalchemy"},{"line_number":394,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a68dd71_163e268c","line":391,"updated":"2016-01-22 22:22:20.000000000","message":"Jenkins failed on this line.  Need to line it up with the text on the previous line.","commit_id":"4db9c9007b3cfdf411bb68d43c5848bd2a6cc8a4"},{"author":{"_account_id":7179,"name":"Brad Pokorny","email":"brad_pokorny@symantec.com","username":"bpokorny"},"change_message_id":"7d34e02830853128ed5a821a3b4cff40ece288db","unresolved":false,"context_lines":[{"line_number":322,"context_line":""},{"line_number":323,"context_line":"Python-glanceclient will be updated to expose this feature."},{"line_number":324,"context_line":"Users will be able to see all community images by using"},{"line_number":325,"context_line":"``glance image-list --show_community_images True``."},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"An option to"},{"line_number":328,"context_line":"``glance image-update`` will be added named ``--visibility"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9a68dd71_8a80678c","line":325,"updated":"2016-01-25 16:42:33.000000000","message":"Please change the command option to --show-community-images, to keep it consistent with the other glance commands.","commit_id":"07fd7d9c06afe73a0b2b18508defdc7bfc6594da"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c78530da666f4487c9577e6ea6941bd98d49b01d","unresolved":false,"context_lines":[{"line_number":125,"context_line":"    + can boot from this image"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"  - Who: users with ``tenantId`` in the ``member-list``"},{"line_number":128,"context_line":"    with ``member_status \u003d\u003d \u0027accepted\u0027``:"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    + have this image in their default ``image-list``"},{"line_number":131,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"da0c15f0_a55f3771","line":128,"updated":"2016-03-25 21:23:43.000000000","message":"This is the same as the previous case.  I think you want member_status \u003d\u003d pending or member_status \u003d\u003d rejected here, and then remove line 130 (this is the anti-spam provision of v2 image sharing).","commit_id":"f6d9af250021c5e691106fe8f90e7ec5e1513143"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"5b93df23628ef89ecca0f6eeb15010a5f6480bf4","unresolved":false,"context_lines":[{"line_number":125,"context_line":"    + can boot from this image"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"  - Who: users with ``tenantId`` in the ``member-list``"},{"line_number":128,"context_line":"    with ``member_status \u003d\u003d \u0027accepted\u0027``:"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    + have this image in their default ``image-list``"},{"line_number":131,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a122d0e_332076f8","line":128,"in_reply_to":"da0c15f0_a55f3771","updated":"2016-05-03 22:56:41.000000000","message":"Done","commit_id":"f6d9af250021c5e691106fe8f90e7ec5e1513143"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c78530da666f4487c9577e6ea6941bd98d49b01d","unresolved":false,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    + do not have this image in their default ``image-list``"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    + cannot see ``image-detail`` for this image"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    + cannot boot from this image"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"  - Who: users with ``tenantId`` in the ``member-list`` of the image"},{"line_number":147,"context_line":"    with ``member_status \u003d\u003d \u0027accepted\u0027``:"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da0c15f0_854af381","line":144,"range":{"start_line":142,"start_character":0,"end_line":144,"end_character":33},"updated":"2016-03-25 21:23:43.000000000","message":"Leaving it out of the default image list is correct (that\u0027s basically an anti-spam provision), but any user should be able to do image-show and boot from a community image.  Otherwise, these images are going to show up when the user does the discovery call you describe above, and then it would be a pretty bad user experience not be be able to see/use these images.  Plus, the idea of a community image is that I\u0027m making it available for anyone to use, I don\u0027t care who.","commit_id":"f6d9af250021c5e691106fe8f90e7ec5e1513143"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"5b93df23628ef89ecca0f6eeb15010a5f6480bf4","unresolved":false,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    + do not have this image in their default ``image-list``"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    + cannot see ``image-detail`` for this image"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    + cannot boot from this image"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"  - Who: users with ``tenantId`` in the ``member-list`` of the image"},{"line_number":147,"context_line":"    with ``member_status \u003d\u003d \u0027accepted\u0027``:"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a122d0e_731aeec7","line":144,"range":{"start_line":142,"start_character":0,"end_line":144,"end_character":33},"in_reply_to":"da0c15f0_854af381","updated":"2016-05-03 22:56:41.000000000","message":"Done","commit_id":"f6d9af250021c5e691106fe8f90e7ec5e1513143"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c78530da666f4487c9577e6ea6941bd98d49b01d","unresolved":false,"context_lines":[{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    + can boot from this image"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":""},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"Alternatives"},{"line_number":158,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da0c15f0_5b2b9c82","line":155,"updated":"2016-03-25 21:23:43.000000000","message":"I\u0027m not sure if this is the right place, but you need to add a section on what happens to an image\u0027s member-list when its visibility is changed.  You can copy the \"Transitions\" section on this wiki page: https://wiki.openstack.org/wiki/Glance-v2-community-image-visibility-design#Transitions","commit_id":"f6d9af250021c5e691106fe8f90e7ec5e1513143"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"5b93df23628ef89ecca0f6eeb15010a5f6480bf4","unresolved":false,"context_lines":[{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    + can boot from this image"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":""},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"Alternatives"},{"line_number":158,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a122d0e_f3843ed4","line":155,"in_reply_to":"da0c15f0_5b2b9c82","updated":"2016-05-03 22:56:41.000000000","message":"I will fix this.","commit_id":"f6d9af250021c5e691106fe8f90e7ec5e1513143"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c78530da666f4487c9577e6ea6941bd98d49b01d","unresolved":false,"context_lines":[{"line_number":199,"context_line":""},{"line_number":200,"context_line":"The default value for ``visibility`` is ``\u0027private\u0027``."},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"This change makes the ``is_public`` column redundant, so it will be removed."},{"line_number":203,"context_line":""},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"Database migrations"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da0c15f0_25568729","line":202,"updated":"2016-03-25 21:23:43.000000000","message":"(We\u0027ll need to make sure no v1 code is actually using is_public.)","commit_id":"f6d9af250021c5e691106fe8f90e7ec5e1513143"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"5b93df23628ef89ecca0f6eeb15010a5f6480bf4","unresolved":false,"context_lines":[{"line_number":199,"context_line":""},{"line_number":200,"context_line":"The default value for ``visibility`` is ``\u0027private\u0027``."},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"This change makes the ``is_public`` column redundant, so it will be removed."},{"line_number":203,"context_line":""},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"Database migrations"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a122d0e_73714e0c","line":202,"in_reply_to":"da0c15f0_25568729","updated":"2016-05-03 22:56:41.000000000","message":"Done","commit_id":"f6d9af250021c5e691106fe8f90e7ec5e1513143"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c78530da666f4487c9577e6ea6941bd98d49b01d","unresolved":false,"context_lines":[{"line_number":226,"context_line":"If you want to see a whole list of community images (only community images),"},{"line_number":227,"context_line":"then you will use"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    GET /v2/images?show_community_images\u003dTrue"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"Bookmarked community images will be displayed in an image listing when the visibility"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da0c15f0_c06e99c8","line":229,"updated":"2016-03-25 21:23:43.000000000","message":"I think the query string should just be \u0027visibility\u003dcommunity\u0027.  (See next comment.)","commit_id":"f6d9af250021c5e691106fe8f90e7ec5e1513143"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"5b93df23628ef89ecca0f6eeb15010a5f6480bf4","unresolved":false,"context_lines":[{"line_number":226,"context_line":"If you want to see a whole list of community images (only community images),"},{"line_number":227,"context_line":"then you will use"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    GET /v2/images?show_community_images\u003dTrue"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"Bookmarked community images will be displayed in an image listing when the visibility"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a122d0e_d35e6278","line":229,"in_reply_to":"da0c15f0_c06e99c8","updated":"2016-05-03 22:56:41.000000000","message":"Done","commit_id":"f6d9af250021c5e691106fe8f90e7ec5e1513143"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c78530da666f4487c9577e6ea6941bd98d49b01d","unresolved":false,"context_lines":[{"line_number":230,"context_line":""},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"Bookmarked community images will be displayed in an image listing when the visibility"},{"line_number":233,"context_line":"filter is set to ``community``. ::"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"    GET /v2/images?visibility\u003dcommunity"},{"line_number":236,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"da0c15f0_6087cd61","line":233,"updated":"2016-03-25 21:23:43.000000000","message":"I think that the \"bookmarked\" community images should behave like accepted shared images, that is, they will show up in a user\u0027s default image-list.  That way, your image-list call will give you all the public images, all your personal images, and all the images you\u0027re interested in (both shared and community).\n\nThis would also keep the behavior close to current v2 image-sharing.","commit_id":"f6d9af250021c5e691106fe8f90e7ec5e1513143"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"5b93df23628ef89ecca0f6eeb15010a5f6480bf4","unresolved":false,"context_lines":[{"line_number":230,"context_line":""},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"Bookmarked community images will be displayed in an image listing when the visibility"},{"line_number":233,"context_line":"filter is set to ``community``. ::"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"    GET /v2/images?visibility\u003dcommunity"},{"line_number":236,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a122d0e_1359fa8e","line":233,"in_reply_to":"da0c15f0_6087cd61","updated":"2016-05-03 22:56:41.000000000","message":"Done","commit_id":"f6d9af250021c5e691106fe8f90e7ec5e1513143"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c78530da666f4487c9577e6ea6941bd98d49b01d","unresolved":false,"context_lines":[{"line_number":311,"context_line":"Notifications impact"},{"line_number":312,"context_line":"--------------------"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"None"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"Other end user impact"},{"line_number":317,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da0c15f0_c5ab4b88","line":314,"updated":"2016-03-25 21:23:43.000000000","message":"Notifications currently contain is_public.  This will have to be maintained for backwards compatibility.  It will continue to behave as it does now, boolean field that\u0027s true if and only if the image is a public image.\n\nA new field, \u0027visibility\u0027, should be added to notifications.  This field would contain the appropriate value from the enumeration of values you describe at the top of this spec.","commit_id":"f6d9af250021c5e691106fe8f90e7ec5e1513143"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"5b93df23628ef89ecca0f6eeb15010a5f6480bf4","unresolved":false,"context_lines":[{"line_number":311,"context_line":"Notifications impact"},{"line_number":312,"context_line":"--------------------"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"None"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"Other end user impact"},{"line_number":317,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a122d0e_5353726c","line":314,"in_reply_to":"da0c15f0_c5ab4b88","updated":"2016-05-03 22:56:41.000000000","message":"Done","commit_id":"f6d9af250021c5e691106fe8f90e7ec5e1513143"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c78530da666f4487c9577e6ea6941bd98d49b01d","unresolved":false,"context_lines":[{"line_number":315,"context_line":""},{"line_number":316,"context_line":"Other end user impact"},{"line_number":317,"context_line":"---------------------"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"Client changes"},{"line_number":321,"context_line":"~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da0c15f0_a03a8534","line":318,"updated":"2016-03-25 21:23:43.000000000","message":"One thing that\u0027s not obvious is that this spec is going to require a change to the current v2 image-sharing workflow.  (I think it\u0027s a good change, but it needs to be pointed out so it can be discussed.)\n\nOnce \u0027shared\u0027 is introduced as a \"real\" visibility value, someone who wants to share an image is going to have to make a PATCH call to change the visibility to \u0027shared\u0027 (just as you describe above at line 273).  Currently, all you have to do to share an image is to put a member on it.\n\nWe could change the code to change the visibility automatically, but I think it makes sense to have the community/shared/public/private visibility changes all happen the same way.\n\nImages that have been shared before this code change will be taken care of by the database migration you describe above, so there\u0027s no worry that people will have to re-share images.","commit_id":"f6d9af250021c5e691106fe8f90e7ec5e1513143"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"5b93df23628ef89ecca0f6eeb15010a5f6480bf4","unresolved":false,"context_lines":[{"line_number":315,"context_line":""},{"line_number":316,"context_line":"Other end user impact"},{"line_number":317,"context_line":"---------------------"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"Client changes"},{"line_number":321,"context_line":"~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a122d0e_334eb6c2","line":318,"in_reply_to":"da0c15f0_a03a8534","updated":"2016-05-03 22:56:41.000000000","message":"Done","commit_id":"f6d9af250021c5e691106fe8f90e7ec5e1513143"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c78530da666f4487c9577e6ea6941bd98d49b01d","unresolved":false,"context_lines":[{"line_number":345,"context_line":"Membership behaviour"},{"line_number":346,"context_line":"~~~~~~~~~~~~~~~~~~~~"},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"Moving from community to public retains the list of members the image currently"},{"line_number":349,"context_line":"contains. This maintains consistency with the current membership behaviour."},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da0c15f0_25f04790","line":348,"range":{"start_line":348,"start_character":25,"end_line":348,"end_character":31},"updated":"2016-03-25 21:23:43.000000000","message":"Do you mean \u0027private\u0027 here?  You\u0027re not currently able to have members on a public image.","commit_id":"f6d9af250021c5e691106fe8f90e7ec5e1513143"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"65a853f9d29eb77c7d5b3d71e1bdb157ce430992","unresolved":false,"context_lines":[{"line_number":345,"context_line":"Membership behaviour"},{"line_number":346,"context_line":"~~~~~~~~~~~~~~~~~~~~"},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"Moving from community to public retains the list of members the image currently"},{"line_number":349,"context_line":"contains. This maintains consistency with the current membership behaviour."},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a122d0e_abdfd838","line":348,"range":{"start_line":348,"start_character":25,"end_line":348,"end_character":31},"in_reply_to":"1a122d0e_d3c5c20a","updated":"2016-05-04 12:47:05.000000000","message":"I was focusing on the member-list retention, which won\u0027t happen with a transition from community -\u003e public, but will happen for community -\u003e shared or community -\u003e private.  So you\u0027re right, \u0027shared\u0027 would work here too ... it depends on the point you want to make.\n\nI will dig up the wiki page that discusses what should happen to the member list in the various visibility transitions.  That info should be included here so we can review and make sure it makes sense.","commit_id":"f6d9af250021c5e691106fe8f90e7ec5e1513143"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"5b93df23628ef89ecca0f6eeb15010a5f6480bf4","unresolved":false,"context_lines":[{"line_number":345,"context_line":"Membership behaviour"},{"line_number":346,"context_line":"~~~~~~~~~~~~~~~~~~~~"},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"Moving from community to public retains the list of members the image currently"},{"line_number":349,"context_line":"contains. This maintains consistency with the current membership behaviour."},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a122d0e_d3c5c20a","line":348,"range":{"start_line":348,"start_character":25,"end_line":348,"end_character":31},"in_reply_to":"da0c15f0_25f04790","updated":"2016-05-03 22:56:41.000000000","message":"Have switched it private for now. However I\u0027m thinking maybe this should actually be \u0027shared\u0027? With the new shared visibility, does it make sense to allow membership on private?","commit_id":"f6d9af250021c5e691106fe8f90e7ec5e1513143"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c78530da666f4487c9577e6ea6941bd98d49b01d","unresolved":false,"context_lines":[{"line_number":361,"context_line":"ability to create community images is moderated using policy.json. A new rule"},{"line_number":362,"context_line":"will be created, which has a default configuration of ``[role:admin]``:"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"- ``publicize_community_image`` - Share image with all tenants"},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"  + ``PATCH /v2/images/{image_id}`` with request body::"},{"line_number":367,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"da0c15f0_4059e959","line":364,"updated":"2016-03-25 21:23:43.000000000","message":"Maybe call this \u0027communitize_image\u0027 so that it\u0027s clear that it doesn\u0027t have anything to do with the current concept of public images?","commit_id":"f6d9af250021c5e691106fe8f90e7ec5e1513143"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"5b93df23628ef89ecca0f6eeb15010a5f6480bf4","unresolved":false,"context_lines":[{"line_number":361,"context_line":"ability to create community images is moderated using policy.json. A new rule"},{"line_number":362,"context_line":"will be created, which has a default configuration of ``[role:admin]``:"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"- ``publicize_community_image`` - Share image with all tenants"},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"  + ``PATCH /v2/images/{image_id}`` with request body::"},{"line_number":367,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"1a122d0e_f3d27ed0","line":364,"in_reply_to":"da0c15f0_4059e959","updated":"2016-05-03 22:56:41.000000000","message":"Done","commit_id":"f6d9af250021c5e691106fe8f90e7ec5e1513143"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"8c5b9c68b1d7c9ae047de87470f38c1ad0cf33a0","unresolved":false,"context_lines":[{"line_number":157,"context_line":"NOTE: some transitions will delete all image members. Make sure the docs note this and suggest that"},{"line_number":158,"context_line":"the user get and save member list before changing image visibility."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"private → public"},{"line_number":161,"context_line":"DELETE ALL MEMBERS ON IMAGE"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"private → community"},{"line_number":164,"context_line":"no change to image member-list"},{"line_number":165,"context_line":"private → shared"},{"line_number":166,"context_line":"no change to image member-list"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"public → private"},{"line_number":169,"context_line":"(no members on image so nothing to do about members)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"public → community"},{"line_number":172,"context_line":"(no members on image so nothing to do about members)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"public → shared"},{"line_number":175,"context_line":"(no members on image so nothing to do about members)"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"community → private"},{"line_number":178,"context_line":"no change to image member-list"},{"line_number":179,"context_line":"(list will have no effect but is saved in case image is later made \u0027shared\u0027 or \u0027community\u0027)"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"community → public"},{"line_number":182,"context_line":"DELETE ALL MEMBERS ON IMAGE"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"community → shared"},{"line_number":185,"context_line":"no change to image member-list"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"shared → public"},{"line_number":188,"context_line":"DELETE ALL MEMBERS ON IMAGE"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"shared → private"},{"line_number":191,"context_line":"no change to image member-list"},{"line_number":192,"context_line":"(list will have no effect but is saved in case image is later made \u0027shared\u0027 or \u0027community\u0027)"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"shared → community"},{"line_number":195,"context_line":"no change to image member-list"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a122d0e_e2db011a","line":195,"range":{"start_line":160,"start_character":0,"end_line":195,"end_character":30},"updated":"2016-04-15 18:51:35.000000000","message":"This isn\u0027t displaying well.  I\u0027d suggest something like this:\n\n.. list-table::\n  :header-rows: 1\n\n  * - Transition\n    - Action\n  * - private → public\n    - DELETE ALL MEMBERS ON IMAGE\n  * - private → community\n    - no change to image member-list\n  * - private → shared\n    - no change to image member-list\n  * - public → private\n    - (no members on image so nothing to do about members)\n\nAnd then we talk about more stuff.","commit_id":"d97c27a59290f0dd925a60dc510178a7037ef1d6"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"0376712cc23aca704a8660150d2ed9380ab915f2","unresolved":false,"context_lines":[{"line_number":157,"context_line":"NOTE: some transitions will delete all image members. Make sure the docs note this and suggest that"},{"line_number":158,"context_line":"the user get and save member list before changing image visibility."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"private → public"},{"line_number":161,"context_line":"DELETE ALL MEMBERS ON IMAGE"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"private → community"},{"line_number":164,"context_line":"no change to image member-list"},{"line_number":165,"context_line":"private → shared"},{"line_number":166,"context_line":"no change to image member-list"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"public → private"},{"line_number":169,"context_line":"(no members on image so nothing to do about members)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"public → community"},{"line_number":172,"context_line":"(no members on image so nothing to do about members)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"public → shared"},{"line_number":175,"context_line":"(no members on image so nothing to do about members)"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"community → private"},{"line_number":178,"context_line":"no change to image member-list"},{"line_number":179,"context_line":"(list will have no effect but is saved in case image is later made \u0027shared\u0027 or \u0027community\u0027)"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"community → public"},{"line_number":182,"context_line":"DELETE ALL MEMBERS ON IMAGE"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"community → shared"},{"line_number":185,"context_line":"no change to image member-list"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"shared → public"},{"line_number":188,"context_line":"DELETE ALL MEMBERS ON IMAGE"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"shared → private"},{"line_number":191,"context_line":"no change to image member-list"},{"line_number":192,"context_line":"(list will have no effect but is saved in case image is later made \u0027shared\u0027 or \u0027community\u0027)"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"shared → community"},{"line_number":195,"context_line":"no change to image member-list"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":10,"id":"faac7902_98a55db7","line":195,"range":{"start_line":160,"start_character":0,"end_line":195,"end_character":30},"in_reply_to":"1a122d0e_5301b238","updated":"2016-05-05 20:18:05.000000000","message":"Done","commit_id":"d97c27a59290f0dd925a60dc510178a7037ef1d6"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"a5c997237ad8d019c2d598cd86bdf5e7d540743b","unresolved":false,"context_lines":[{"line_number":157,"context_line":"NOTE: some transitions will delete all image members. Make sure the docs note this and suggest that"},{"line_number":158,"context_line":"the user get and save member list before changing image visibility."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"private → public"},{"line_number":161,"context_line":"DELETE ALL MEMBERS ON IMAGE"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"private → community"},{"line_number":164,"context_line":"no change to image member-list"},{"line_number":165,"context_line":"private → shared"},{"line_number":166,"context_line":"no change to image member-list"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"public → private"},{"line_number":169,"context_line":"(no members on image so nothing to do about members)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"public → community"},{"line_number":172,"context_line":"(no members on image so nothing to do about members)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"public → shared"},{"line_number":175,"context_line":"(no members on image so nothing to do about members)"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"community → private"},{"line_number":178,"context_line":"no change to image member-list"},{"line_number":179,"context_line":"(list will have no effect but is saved in case image is later made \u0027shared\u0027 or \u0027community\u0027)"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"community → public"},{"line_number":182,"context_line":"DELETE ALL MEMBERS ON IMAGE"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"community → shared"},{"line_number":185,"context_line":"no change to image member-list"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"shared → public"},{"line_number":188,"context_line":"DELETE ALL MEMBERS ON IMAGE"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"shared → private"},{"line_number":191,"context_line":"no change to image member-list"},{"line_number":192,"context_line":"(list will have no effect but is saved in case image is later made \u0027shared\u0027 or \u0027community\u0027)"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"shared → community"},{"line_number":195,"context_line":"no change to image member-list"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1a122d0e_5301b238","line":195,"range":{"start_line":160,"start_character":0,"end_line":195,"end_character":30},"in_reply_to":"1a122d0e_e2db011a","updated":"2016-05-03 22:57:27.000000000","message":"I will fix this.","commit_id":"d97c27a59290f0dd925a60dc510178a7037ef1d6"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"cedd1ef2791e1053498396e9d080dc540d19a83d","unresolved":false,"context_lines":[{"line_number":501,"context_line":"References"},{"line_number":502,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":11,"id":"1a122d0e_6bc94025","line":504,"range":{"start_line":504,"start_character":0,"end_line":504,"end_character":4},"updated":"2016-05-04 13:01:46.000000000","message":"Include the etherpad from the summit session and maybe some of the wiki pages it references: https://etherpad.openstack.org/p/newton-glance-image-sharing","commit_id":"50a46651c879332c6bd628de846ccebaa6fcbf97"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"e1e575b03ef4ed8e86561e0ac953cb728058b2fb","unresolved":false,"context_lines":[{"line_number":501,"context_line":"References"},{"line_number":502,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":11,"id":"dab17558_71e7f840","line":504,"range":{"start_line":504,"start_character":0,"end_line":504,"end_character":4},"in_reply_to":"1a122d0e_6bc94025","updated":"2016-05-05 20:32:30.000000000","message":"Done","commit_id":"50a46651c879332c6bd628de846ccebaa6fcbf97"},{"author":{"_account_id":7179,"name":"Brad Pokorny","email":"brad_pokorny@symantec.com","username":"bpokorny"},"change_message_id":"d2c76065287e2d30d31236e1280c4b33952ae3f1","unresolved":false,"context_lines":[{"line_number":165,"context_line":"   * - Transition"},{"line_number":166,"context_line":"     - Action"},{"line_number":167,"context_line":"   * - private → public"},{"line_number":168,"context_line":"     - DELETE ALL MEMBERS ON IMAGE "},{"line_number":169,"context_line":"   * - private → community"},{"line_number":170,"context_line":"     - no change to image member-list "},{"line_number":171,"context_line":"   * - private → shared "}],"source_content_type":"text/x-rst","patch_set":14,"id":"dab17558_9637c9e2","line":168,"updated":"2016-05-06 16:17:24.000000000","message":"Need some whitespace cleanup here.","commit_id":"60baad4de582806f0c934b0ab9ec88bd2fd274e3"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"edf7dbac8709891cfa52aac97eb3a1636099d549","unresolved":false,"context_lines":[{"line_number":165,"context_line":"   * - Transition"},{"line_number":166,"context_line":"     - Action"},{"line_number":167,"context_line":"   * - private → public"},{"line_number":168,"context_line":"     - DELETE ALL MEMBERS ON IMAGE "},{"line_number":169,"context_line":"   * - private → community"},{"line_number":170,"context_line":"     - no change to image member-list "},{"line_number":171,"context_line":"   * - private → shared "}],"source_content_type":"text/x-rst","patch_set":14,"id":"dab17558_184620bf","line":168,"in_reply_to":"dab17558_9637c9e2","updated":"2016-05-09 18:54:36.000000000","message":"Done","commit_id":"60baad4de582806f0c934b0ab9ec88bd2fd274e3"},{"author":{"_account_id":7179,"name":"Brad Pokorny","email":"brad_pokorny@symantec.com","username":"bpokorny"},"change_message_id":"d2c76065287e2d30d31236e1280c4b33952ae3f1","unresolved":false,"context_lines":[{"line_number":231,"context_line":""},{"line_number":232,"context_line":"The visibility of the image will be stored in the database within the images"},{"line_number":233,"context_line":"table inside a new column named ``visibility``. The visibility will be in the"},{"line_number":234,"context_line":"set of ``[\u0027public\u0027, \u0027private\u0027, \u0027shared\u0027, \u0027community\u0027]``."},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"The default value for ``visibility`` is ``\u0027private\u0027``."},{"line_number":237,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"dab17558_b6c48d92","line":234,"updated":"2016-05-06 16:17:24.000000000","message":"Will these values be included in the output of the image list API? In Horizon, I\u0027ll need them to be able to separate them into different tabs. We\u0027ll want to add a new tab for \"Community\" in Horizon, and it will be way more efficient to separate them if we don\u0027t have to do a get on every image to determine the right tab for it.","commit_id":"60baad4de582806f0c934b0ab9ec88bd2fd274e3"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"edf7dbac8709891cfa52aac97eb3a1636099d549","unresolved":false,"context_lines":[{"line_number":231,"context_line":""},{"line_number":232,"context_line":"The visibility of the image will be stored in the database within the images"},{"line_number":233,"context_line":"table inside a new column named ``visibility``. The visibility will be in the"},{"line_number":234,"context_line":"set of ``[\u0027public\u0027, \u0027private\u0027, \u0027shared\u0027, \u0027community\u0027]``."},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"The default value for ``visibility`` is ``\u0027private\u0027``."},{"line_number":237,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"dab17558_787accf2","line":234,"in_reply_to":"dab17558_1de45239","updated":"2016-05-09 18:54:36.000000000","message":"Thanks for the question Brad, and thanks for addressing it Brian.\n\nI\u0027ve added a note to the Rest API / Image discovery section to make this explicit.","commit_id":"60baad4de582806f0c934b0ab9ec88bd2fd274e3"},{"author":{"_account_id":7179,"name":"Brad Pokorny","email":"brad_pokorny@symantec.com","username":"bpokorny"},"change_message_id":"8ec59bf41079a79383a48d821634bbc9e45d8a39","unresolved":false,"context_lines":[{"line_number":231,"context_line":""},{"line_number":232,"context_line":"The visibility of the image will be stored in the database within the images"},{"line_number":233,"context_line":"table inside a new column named ``visibility``. The visibility will be in the"},{"line_number":234,"context_line":"set of ``[\u0027public\u0027, \u0027private\u0027, \u0027shared\u0027, \u0027community\u0027]``."},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"The default value for ``visibility`` is ``\u0027private\u0027``."},{"line_number":237,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"dab17558_1de45239","line":234,"in_reply_to":"dab17558_a2b403d1","updated":"2016-05-09 18:16:07.000000000","message":"Great. Thanks, Brian.","commit_id":"60baad4de582806f0c934b0ab9ec88bd2fd274e3"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"574aa2a3363e636a467ffac20a475ed7137f8b08","unresolved":false,"context_lines":[{"line_number":231,"context_line":""},{"line_number":232,"context_line":"The visibility of the image will be stored in the database within the images"},{"line_number":233,"context_line":"table inside a new column named ``visibility``. The visibility will be in the"},{"line_number":234,"context_line":"set of ``[\u0027public\u0027, \u0027private\u0027, \u0027shared\u0027, \u0027community\u0027]``."},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"The default value for ``visibility`` is ``\u0027private\u0027``."},{"line_number":237,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"dab17558_a2b403d1","line":234,"in_reply_to":"dab17558_b6c48d92","updated":"2016-05-09 17:55:04.000000000","message":"The \u0027visibility\u0027 property is a core property of the Image object in the Images v2 API, so as long as you\u0027re using v2, you\u0027ll see this on each image.  Also, you can filter on it to get the appropriate image list for each tab, you don\u0027t have to do it client-side (unless you prefer to).","commit_id":"60baad4de582806f0c934b0ab9ec88bd2fd274e3"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"8dcd7508779d0df972945ac0629ec04d002fd745","unresolved":false,"context_lines":[{"line_number":1,"context_line":".."},{"line_number":2,"context_line":" This work is licensed under a Creative Commons Attribution 3.0 Unported"},{"line_number":3,"context_line":" License."},{"line_number":4,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"dab17558_d6c5888e","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":2},"updated":"2016-05-09 22:45:50.000000000","message":"This spec needs to be proposed against right folder:\n\nhttps://github.com/openstack/glance-specs/tree/master/specs/newton/approved/glance","commit_id":"358fa7bf2a9eca8454ccd6ff0c265dcd703aaa40"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"8345ba3a0316e07372a87bd0b6c5adf82cfcca51","unresolved":false,"context_lines":[{"line_number":1,"context_line":".."},{"line_number":2,"context_line":" This work is licensed under a Creative Commons Attribution 3.0 Unported"},{"line_number":3,"context_line":" License."},{"line_number":4,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"dab17558_bfc85e23","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":2},"in_reply_to":"dab17558_d6c5888e","updated":"2016-05-10 17:26:09.000000000","message":"Done","commit_id":"358fa7bf2a9eca8454ccd6ff0c265dcd703aaa40"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"8dcd7508779d0df972945ac0629ec04d002fd745","unresolved":false,"context_lines":[{"line_number":14,"context_line":"a similar function within our local environment."},{"line_number":15,"context_line":"We want to re-target this feature to Newton release."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"The earlier BP can be found at:"},{"line_number":18,"context_line":"https://blueprints.launchpad.net/glance/+spec/community-level-v2-image-sharing"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"dab17558_96e94083","line":17,"range":{"start_line":17,"start_character":4,"end_line":17,"end_character":15},"updated":"2016-05-09 22:45:50.000000000","message":"a bp is needed for a spec\n\nwe can re-use that one","commit_id":"358fa7bf2a9eca8454ccd6ff0c265dcd703aaa40"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"8345ba3a0316e07372a87bd0b6c5adf82cfcca51","unresolved":false,"context_lines":[{"line_number":14,"context_line":"a similar function within our local environment."},{"line_number":15,"context_line":"We want to re-target this feature to Newton release."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"The earlier BP can be found at:"},{"line_number":18,"context_line":"https://blueprints.launchpad.net/glance/+spec/community-level-v2-image-sharing"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"dab17558_ffce662b","line":17,"range":{"start_line":17,"start_character":4,"end_line":17,"end_character":15},"in_reply_to":"dab17558_96e94083","updated":"2016-05-10 17:26:09.000000000","message":"Done","commit_id":"358fa7bf2a9eca8454ccd6ff0c265dcd703aaa40"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"8dcd7508779d0df972945ac0629ec04d002fd745","unresolved":false,"context_lines":[{"line_number":311,"context_line":"Making an image a \"community image\""},{"line_number":312,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"An admin or owner of an image (depending on policy settings) can use the"},{"line_number":315,"context_line":"existing image-update call, changing the image\u0027s visibility"},{"line_number":316,"context_line":"to ``\u0027community\u0027``: ::"},{"line_number":317,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"dab17558_6d1043a9","line":314,"range":{"start_line":314,"start_character":12,"end_line":314,"end_character":29},"updated":"2016-05-09 22:45:50.000000000","message":"I think we will have a spam issue here. If a set of users with 100s of images decide to make their images as community images the listing of all community images using the call [1] will result into a incomprehensible list.\n\nI think we would need some sort of filtering logic (besides the pagination/marker logic for such images) may be like [2]\n\n[1] GET /v2/images?visibility\u003dcommunity\n[2] GET /v2/images?visibility\u003dcommunity\u0026owner\u003d\u003ctenant_id\u003e\u0026page_size\u003dN\u0026marker\u003dID","commit_id":"358fa7bf2a9eca8454ccd6ff0c265dcd703aaa40"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"8345ba3a0316e07372a87bd0b6c5adf82cfcca51","unresolved":false,"context_lines":[{"line_number":311,"context_line":"Making an image a \"community image\""},{"line_number":312,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"An admin or owner of an image (depending on policy settings) can use the"},{"line_number":315,"context_line":"existing image-update call, changing the image\u0027s visibility"},{"line_number":316,"context_line":"to ``\u0027community\u0027``: ::"},{"line_number":317,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"dab17558_bf64de21","line":314,"range":{"start_line":314,"start_character":12,"end_line":314,"end_character":29},"in_reply_to":"dab17558_6d1043a9","updated":"2016-05-10 17:26:09.000000000","message":"Agreed. The more I think about it, the more I find it unlikely that any cloud provider would give \"communitize images\" privileges to anyone less than admin, and certainly not to every image owner. Otherwise things go south very quickly as you said.\n\nUpdated the language to remove reference to owner.","commit_id":"358fa7bf2a9eca8454ccd6ff0c265dcd703aaa40"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"8dcd7508779d0df972945ac0629ec04d002fd745","unresolved":false,"context_lines":[{"line_number":391,"context_line":""},{"line_number":392,"context_line":"For example, to make an image a community image:"},{"line_number":393,"context_line":""},{"line_number":394,"context_line":".. code:: bash"},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"    $ glance image-update --visibility community \u003cIMAGE\u003e"},{"line_number":397,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"dab17558_cd55ef50","line":394,"range":{"start_line":394,"start_character":10,"end_line":394,"end_character":14},"updated":"2016-05-09 22:45:50.000000000","message":"FWIW, glanceclient is no longer going to be the standard utility for interacting with glance via CLI. Let\u0027s rethink if investing time in OSC is better of worth.","commit_id":"358fa7bf2a9eca8454ccd6ff0c265dcd703aaa40"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"8345ba3a0316e07372a87bd0b6c5adf82cfcca51","unresolved":false,"context_lines":[{"line_number":391,"context_line":""},{"line_number":392,"context_line":"For example, to make an image a community image:"},{"line_number":393,"context_line":""},{"line_number":394,"context_line":".. code:: bash"},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"    $ glance image-update --visibility community \u003cIMAGE\u003e"},{"line_number":397,"context_line":""}],"source_content_type":"text/x-rst","patch_set":15,"id":"dab17558_9f691afc","line":394,"range":{"start_line":394,"start_character":10,"end_line":394,"end_character":14},"in_reply_to":"dab17558_cd55ef50","updated":"2016-05-10 17:26:09.000000000","message":"Done","commit_id":"358fa7bf2a9eca8454ccd6ff0c265dcd703aaa40"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"8dcd7508779d0df972945ac0629ec04d002fd745","unresolved":false,"context_lines":[{"line_number":470,"context_line":""},{"line_number":471,"context_line":"- Add functional tests for the lifecycle of community images"},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"- Update glanceclient to use the new API functionality"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":""},{"line_number":476,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":15,"id":"dab17558_cddccfe6","line":473,"range":{"start_line":473,"start_character":2,"end_line":473,"end_character":21},"updated":"2016-05-09 22:45:50.000000000","message":"ditto","commit_id":"358fa7bf2a9eca8454ccd6ff0c265dcd703aaa40"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"8345ba3a0316e07372a87bd0b6c5adf82cfcca51","unresolved":false,"context_lines":[{"line_number":470,"context_line":""},{"line_number":471,"context_line":"- Add functional tests for the lifecycle of community images"},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"- Update glanceclient to use the new API functionality"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":""},{"line_number":476,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":15,"id":"dab17558_ff6ae6eb","line":473,"range":{"start_line":473,"start_character":2,"end_line":473,"end_character":21},"in_reply_to":"dab17558_cddccfe6","updated":"2016-05-10 17:26:09.000000000","message":"Done","commit_id":"358fa7bf2a9eca8454ccd6ff0c265dcd703aaa40"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"8dcd7508779d0df972945ac0629ec04d002fd745","unresolved":false,"context_lines":[{"line_number":488,"context_line":"Documentation Impact"},{"line_number":489,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":490,"context_line":""},{"line_number":491,"context_line":"New features must be documented in both glance and python-glanceclient."},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"References"},{"line_number":494,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":15,"id":"dab17558_0de7f7b0","line":491,"range":{"start_line":491,"start_character":51,"end_line":491,"end_character":70},"updated":"2016-05-09 22:45:50.000000000","message":"ditto","commit_id":"358fa7bf2a9eca8454ccd6ff0c265dcd703aaa40"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"8345ba3a0316e07372a87bd0b6c5adf82cfcca51","unresolved":false,"context_lines":[{"line_number":488,"context_line":"Documentation Impact"},{"line_number":489,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":490,"context_line":""},{"line_number":491,"context_line":"New features must be documented in both glance and python-glanceclient."},{"line_number":492,"context_line":""},{"line_number":493,"context_line":"References"},{"line_number":494,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":15,"id":"dab17558_df6f22fa","line":491,"range":{"start_line":491,"start_character":51,"end_line":491,"end_character":70},"in_reply_to":"dab17558_0de7f7b0","updated":"2016-05-10 17:26:09.000000000","message":"Done","commit_id":"358fa7bf2a9eca8454ccd6ff0c265dcd703aaa40"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"c3b80147b932728ea9f85dd7cc5bac43af3e6127","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"*This blueprint is mostly based on an earlier version blueprint"},{"line_number":13,"context_line":"created by Louis Taylor. We at Symantec have already implemented"},{"line_number":14,"context_line":"a similar function within our local environment."},{"line_number":15,"context_line":"We want to re-target this feature to Newton release.*"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"dab17558_6dba0370","line":13,"range":{"start_line":13,"start_character":11,"end_line":13,"end_character":23},"updated":"2016-05-09 22:51:41.000000000","message":"Originally by Iccha Sethi, later picked up by Louis","commit_id":"a9557bc180f8ecff31b72477439dc95bd185e34b"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"4397520f98fa0b5f83f9b9ee19a7e35f385b3867","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"*This blueprint is mostly based on an earlier version blueprint"},{"line_number":13,"context_line":"created by Louis Taylor. We at Symantec have already implemented"},{"line_number":14,"context_line":"a similar function within our local environment."},{"line_number":15,"context_line":"We want to re-target this feature to Newton release.*"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"dab17558_5f7cd2b4","line":13,"range":{"start_line":13,"start_character":11,"end_line":13,"end_character":23},"in_reply_to":"dab17558_6dba0370","updated":"2016-05-10 17:26:37.000000000","message":"Done","commit_id":"a9557bc180f8ecff31b72477439dc95bd185e34b"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"c3b80147b932728ea9f85dd7cc5bac43af3e6127","unresolved":false,"context_lines":[{"line_number":14,"context_line":"a similar function within our local environment."},{"line_number":15,"context_line":"We want to re-target this feature to Newton release.*"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"*The earlier BP can be found at:*"},{"line_number":18,"context_line":"https://blueprints.launchpad.net/glance/+spec/community-level-v2-image-sharing"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"This feature will allow image owners to share images across multiple"}],"source_content_type":"text/x-rst","patch_set":16,"id":"dab17558_0d5a574f","line":17,"range":{"start_line":17,"start_character":5,"end_line":17,"end_character":15},"updated":"2016-05-09 22:51:41.000000000","message":"This is still the current BP.\n\nBasically, a BP is a convergence point for code, spec, bugs etc. So, we (glance) still use BP as the primary release point. Specs are used for better notes and collaboratively sharing thoughts in a nicer UI.","commit_id":"a9557bc180f8ecff31b72477439dc95bd185e34b"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"4397520f98fa0b5f83f9b9ee19a7e35f385b3867","unresolved":false,"context_lines":[{"line_number":14,"context_line":"a similar function within our local environment."},{"line_number":15,"context_line":"We want to re-target this feature to Newton release.*"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"*The earlier BP can be found at:*"},{"line_number":18,"context_line":"https://blueprints.launchpad.net/glance/+spec/community-level-v2-image-sharing"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"This feature will allow image owners to share images across multiple"}],"source_content_type":"text/x-rst","patch_set":16,"id":"dab17558_bf4b3e86","line":17,"range":{"start_line":17,"start_character":5,"end_line":17,"end_character":15},"in_reply_to":"dab17558_0d5a574f","updated":"2016-05-10 17:26:37.000000000","message":"Done","commit_id":"a9557bc180f8ecff31b72477439dc95bd185e34b"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"c3b80147b932728ea9f85dd7cc5bac43af3e6127","unresolved":false,"context_lines":[{"line_number":310,"context_line":"Making an image a \"community image\""},{"line_number":311,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"As permitted by the new policy.json rule ``communitize_images``, a user would"},{"line_number":314,"context_line":"use the existing image-update call to change an image\u0027s visiblity to"},{"line_number":315,"context_line":"``\u0027community\u0027``: ::"},{"line_number":316,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"dab17558_4d19ff87","line":313,"range":{"start_line":313,"start_character":65,"end_line":313,"end_character":71},"updated":"2016-05-09 22:51:41.000000000","message":"please see my comment on previous patch.\n\nWe would need to use a different word than user as user in Openstack (mostly) means end-users.","commit_id":"a9557bc180f8ecff31b72477439dc95bd185e34b"},{"author":{"_account_id":17043,"name":"Timothy Symanczyk","email":"tim@symanczyk.com","username":"timothy_symanczyk"},"change_message_id":"4397520f98fa0b5f83f9b9ee19a7e35f385b3867","unresolved":false,"context_lines":[{"line_number":310,"context_line":"Making an image a \"community image\""},{"line_number":311,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"As permitted by the new policy.json rule ``communitize_images``, a user would"},{"line_number":314,"context_line":"use the existing image-update call to change an image\u0027s visiblity to"},{"line_number":315,"context_line":"``\u0027community\u0027``: ::"},{"line_number":316,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"dab17558_3f60ee00","line":313,"range":{"start_line":313,"start_character":65,"end_line":313,"end_character":71},"in_reply_to":"dab17558_4d19ff87","updated":"2016-05-10 17:26:37.000000000","message":"Done","commit_id":"a9557bc180f8ecff31b72477439dc95bd185e34b"}],"specs/newton/community_visitility.rst":[{"author":{"_account_id":7179,"name":"Brad Pokorny","email":"brad_pokorny@symantec.com","username":"bpokorny"},"change_message_id":"eb016c2fadc6441b1f950945433d5263ee60ef0b","unresolved":false,"context_lines":[{"line_number":1,"context_line":".."},{"line_number":2,"context_line":" This work is licensed under a Creative Commons Attribution 3.0 Unported"},{"line_number":3,"context_line":" License."},{"line_number":4,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"9a68dd71_0b7401fb","line":1,"updated":"2016-01-21 21:13:38.000000000","message":"Rename this document to community_visibility.rst","commit_id":"6ad3824e2f03e425344e2f4f7b966c5bf57337dd"},{"author":{"_account_id":7179,"name":"Brad Pokorny","email":"brad_pokorny@symantec.com","username":"bpokorny"},"change_message_id":"eb016c2fadc6441b1f950945433d5263ee60ef0b","unresolved":false,"context_lines":[{"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"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This blueprint is mostly based on an earlier version blueprint created by Louis Taylor. "},{"line_number":13,"context_line":"We at Symantec has already implemented a similar function within our local environment. "},{"line_number":14,"context_line":"We want to re-target this feature to Newton release. "},{"line_number":15,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"9a68dd71_4bc75945","line":12,"updated":"2016-01-21 21:13:38.000000000","message":"Please remove extra blank spaces throughout this document and keep lines to 79 chars max to make this easier to review.","commit_id":"6ad3824e2f03e425344e2f4f7b966c5bf57337dd"},{"author":{"_account_id":7179,"name":"Brad Pokorny","email":"brad_pokorny@symantec.com","username":"bpokorny"},"change_message_id":"eb016c2fadc6441b1f950945433d5263ee60ef0b","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This blueprint is mostly based on an earlier version blueprint created by Louis Taylor. "},{"line_number":13,"context_line":"We at Symantec has already implemented a similar function within our local environment. "},{"line_number":14,"context_line":"We want to re-target this feature to Newton release. "},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"The earlier BP can be found at:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9a68dd71_cb16e9a6","line":13,"updated":"2016-01-21 21:13:38.000000000","message":"has -\u003e have","commit_id":"6ad3824e2f03e425344e2f4f7b966c5bf57337dd"},{"author":{"_account_id":7179,"name":"Brad Pokorny","email":"brad_pokorny@symantec.com","username":"bpokorny"},"change_message_id":"eb016c2fadc6441b1f950945433d5263ee60ef0b","unresolved":false,"context_lines":[{"line_number":21,"context_line":"without explicitly creating members individually through glance API V2. "},{"line_number":22,"context_line":"\"Community images\" will not appear in image listings unless they are \"bookmarked\""},{"line_number":23,"context_line":"by users. Therefore, this new feature will prevent image listing being spammed "},{"line_number":24,"context_line":"by community images for users do not need any such \"bookmarked\" images."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"This new feature adds a new value for the visibility of an image to the"},{"line_number":27,"context_line":"underlying data model, named ``community``."}],"source_content_type":"text/x-rst","patch_set":1,"id":"9a68dd71_6be9fd7f","line":24,"updated":"2016-01-21 21:13:38.000000000","message":"\"users do not\" -\u003e \"users who do not\"","commit_id":"6ad3824e2f03e425344e2f4f7b966c5bf57337dd"},{"author":{"_account_id":7179,"name":"Brad Pokorny","email":"brad_pokorny@symantec.com","username":"bpokorny"},"change_message_id":"eb016c2fadc6441b1f950945433d5263ee60ef0b","unresolved":false,"context_lines":[{"line_number":47,"context_line":"   hassle of maintaining a list of \"customers\" as they\u0027d have to do with current"},{"line_number":48,"context_line":"   v2 image sharing. At the same time, the cloud provider hosting the prepared"},{"line_number":49,"context_line":"   image doesn\u0027t want to make this image public, as that would imply a support"},{"line_number":50,"context_line":"   relation that doesn\u0027t exist between image consumers and the cloud provider. "},{"line_number":51,"context_line":"   Moreover, if there are too many such images get publicized, then image"},{"line_number":52,"context_line":"   listing will be spammed as community images should not be seen by most of"},{"line_number":53,"context_line":"   the users."}],"source_content_type":"text/x-rst","patch_set":1,"id":"9a68dd71_ab64d521","line":50,"updated":"2016-01-21 21:13:38.000000000","message":"relation -\u003e relationship","commit_id":"6ad3824e2f03e425344e2f4f7b966c5bf57337dd"},{"author":{"_account_id":7179,"name":"Brad Pokorny","email":"brad_pokorny@symantec.com","username":"bpokorny"},"change_message_id":"eb016c2fadc6441b1f950945433d5263ee60ef0b","unresolved":false,"context_lines":[{"line_number":304,"context_line":"~~~~~~~~~~~~~~"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"Python-glanceclient will be updated to expose this feature. "},{"line_number":307,"context_line":"Users will be able to see all community images by using glance image-list --show_community_images True."},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"An option to"},{"line_number":310,"context_line":"``glance image-update`` will be added named ``--visibility"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9a68dd71_6e210b9f","line":307,"updated":"2016-01-21 21:13:38.000000000","message":"Suggest formatting glance image-list --show_community_images True with:\n\n``glance image-list --show_community_images True``","commit_id":"6ad3824e2f03e425344e2f4f7b966c5bf57337dd"},{"author":{"_account_id":7179,"name":"Brad Pokorny","email":"brad_pokorny@symantec.com","username":"bpokorny"},"change_message_id":"eb016c2fadc6441b1f950945433d5263ee60ef0b","unresolved":false,"context_lines":[{"line_number":328,"context_line":"~~~~~~~~~~~~~~~~~~~~"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"Moving from community to public retains the list of members the image currently"},{"line_number":331,"context_line":"contains. This maintains constancy with the current membership behaviour."},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"Performance Impact"},{"line_number":334,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9a68dd71_ce783792","line":331,"updated":"2016-01-21 21:13:38.000000000","message":"Suggest changing constancy -\u003e consistency","commit_id":"6ad3824e2f03e425344e2f4f7b966c5bf57337dd"},{"author":{"_account_id":7179,"name":"Brad Pokorny","email":"brad_pokorny@symantec.com","username":"bpokorny"},"change_message_id":"eb016c2fadc6441b1f950945433d5263ee60ef0b","unresolved":false,"context_lines":[{"line_number":350,"context_line":"      [{ \"op\": \"replace\", \"path\": \"/visibility\", \"value\": \"private\" }]"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"Also users from Horizon will be able to see community images through a separate tab."},{"line_number":353,"context_line":"Details regarding the Horizon change regarding this feature can be found at:"},{"line_number":354,"context_line":"https://blueprints.launchpad.net/horizon/+spec/glance-community-images"},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"Developer impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9a68dd71_8e80ff47","line":353,"updated":"2016-01-21 21:13:38.000000000","message":"Suggest changing this line to:\n\nDetails regarding the Horizon feature can be found at:","commit_id":"6ad3824e2f03e425344e2f4f7b966c5bf57337dd"},{"author":{"_account_id":7179,"name":"Brad Pokorny","email":"brad_pokorny@symantec.com","username":"bpokorny"},"change_message_id":"eb016c2fadc6441b1f950945433d5263ee60ef0b","unresolved":false,"context_lines":[{"line_number":365,"context_line":"-----------"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"Primary assignee:"},{"line_number":368,"context_line":"  kragniz"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"Reviewers"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9a68dd71_6ef4abf1","line":368,"updated":"2016-01-21 21:13:38.000000000","message":"Is this still valid, or will it now be su_zhang?","commit_id":"6ad3824e2f03e425344e2f4f7b966c5bf57337dd"},{"author":{"_account_id":7179,"name":"Brad Pokorny","email":"brad_pokorny@symantec.com","username":"bpokorny"},"change_message_id":"eb016c2fadc6441b1f950945433d5263ee60ef0b","unresolved":false,"context_lines":[{"line_number":411,"context_line":"Documentation Impact"},{"line_number":412,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":413,"context_line":""},{"line_number":414,"context_line":"New features must be documented in both glance and python-glanceclient."},{"line_number":415,"context_line":""},{"line_number":416,"context_line":"References"},{"line_number":417,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9a68dd71_ce6277ad","line":414,"updated":"2016-01-21 21:13:38.000000000","message":"This means release notes should be added with the patchsets to provide this functionality.  See this post for info on adding release notes with reno:\n\nhttp://lists.openstack.org/pipermail/openstack-dev/2015-November/078301.html","commit_id":"6ad3824e2f03e425344e2f4f7b966c5bf57337dd"}]}
