)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"2df256a60289356dc6a4fbd32b10dc15641d5288","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add community-level image sharing"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"blueprint community-level-v2-image-sharing"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ic54a8a674f527fbf9a055d242564ca039242b7dc"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"1a930d6b_50cd6a84","line":9,"updated":"2015-01-23 22:45:41.000000000","message":"Should probably add APIImpact here","commit_id":"f2ad1a91e99ae37737504d0678ec4d4115725122"}],"specs/kilo/community-level-v2-image-sharing.rst":[{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"e6d18f7a31eadde6af9bd144b7e7b28a7d7015a5","unresolved":false,"context_lines":[{"line_number":11,"context_line":"This new feature is a simple extension of the current image sharing"},{"line_number":12,"context_line":"functionality. The sharing is achieved using existing image membership"},{"line_number":13,"context_line":"mechanisms, and remains consistent with the associated rules."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Problem description"},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_1c4f586c","line":14,"updated":"2014-09-26 14:02:40.000000000","message":"This is v2 Image API only, right?","commit_id":"a9f9c45169176285a764c8356d11ca08dd1eafd5"},{"author":{"_account_id":11356,"name":"Louis Taylor","email":"louis@kragniz.eu","username":"kragniz"},"change_message_id":"b46ed687709616264085cca0f26cb5212adf0d2e","unresolved":false,"context_lines":[{"line_number":11,"context_line":"This new feature is a simple extension of the current image sharing"},{"line_number":12,"context_line":"functionality. The sharing is achieved using existing image membership"},{"line_number":13,"context_line":"mechanisms, and remains consistent with the associated rules."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Problem description"},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_d56683ec","line":14,"in_reply_to":"da9df570_1c4f586c","updated":"2014-09-26 15:31:35.000000000","message":"Yes, that is correct. I neglected to mention it in the body on the spec.","commit_id":"a9f9c45169176285a764c8356d11ca08dd1eafd5"},{"author":{"_account_id":8127,"name":"Alexander Tivelkov","email":"locher@yandex.ru","username":"ativelkov"},"change_message_id":"5d6d2750531ba88380484f7dde82a29911d5b132","unresolved":false,"context_lines":[{"line_number":121,"context_line":"If a consumer of a community image would like to bookmark it, they must:"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"1. Add their tenant ID as a member of the community image."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"2. Accept the image so it will appear in their image-list"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_e64be3ae","line":124,"updated":"2014-09-26 12:59:17.000000000","message":"This looks line an extra burden: why should users make two calls when they actually want to do just one action? Also this may have security/policy consequences: adding \"members\" to images was always role of the image owner and I don\u0027t see why we should allow other users to do it.\n\nInstead, I would rather have it this way:\n\nWhen the user finds a community image (directly by ID or by exploring  GET /v2/images?visibility\u003dcommunity collection) they may think of it as a regular image which is \"offered\" to them by the image owner (i.e. they are virtually considered to be added to the \"image members\" with \"pending\" status), so what they have to do is to accept the \"offer\". So, they issue a   PUT /v2/images/{image_id}/members/{member_id} request with  {\"status\": \"accepted\"} - and this request (in case of community image) will automatically create the actual membership object and set its status.\n\nAlso, the user may decide that they do not rant to see this community image in their default listing, so they may send a PUT /v2/images/{image_id}/members/{member_id} request with  {\"status\": \"rejected\"} - and this will also create a new membership but with \"rejected\" status, and then the image will not be shown in the community listing by default, i.e. this will work the same way as with regularly shared images.","commit_id":"a9f9c45169176285a764c8356d11ca08dd1eafd5"},{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"99f4f613b77eae3250f8253f0baa2ef9a8f48bba","unresolved":false,"context_lines":[{"line_number":121,"context_line":"If a consumer of a community image would like to bookmark it, they must:"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"1. Add their tenant ID as a member of the community image."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"2. Accept the image so it will appear in their image-list"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"baa201ad_85e2b001","line":124,"in_reply_to":"baa201ad_4a68d7f5","updated":"2014-09-29 12:17:41.000000000","message":"This is out of scope.","commit_id":"a9f9c45169176285a764c8356d11ca08dd1eafd5"},{"author":{"_account_id":11356,"name":"Louis Taylor","email":"louis@kragniz.eu","username":"kragniz"},"change_message_id":"44b787cb9e89de35d9dad8b58699ffdf4058f35c","unresolved":false,"context_lines":[{"line_number":121,"context_line":"If a consumer of a community image would like to bookmark it, they must:"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"1. Add their tenant ID as a member of the community image."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"2. Accept the image so it will appear in their image-list"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"baa201ad_6194d937","line":124,"in_reply_to":"baa201ad_4d31cea1","updated":"2014-09-29 14:31:16.000000000","message":"Thanks for the comments, stuart. I\u0027ve addressed them in the latest patchset and altered the API for community image creation.","commit_id":"a9f9c45169176285a764c8356d11ca08dd1eafd5"},{"author":{"_account_id":11356,"name":"Louis Taylor","email":"louis@kragniz.eu","username":"kragniz"},"change_message_id":"b46ed687709616264085cca0f26cb5212adf0d2e","unresolved":false,"context_lines":[{"line_number":121,"context_line":"If a consumer of a community image would like to bookmark it, they must:"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"1. Add their tenant ID as a member of the community image."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"2. Accept the image so it will appear in their image-list"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_3ac97c26","line":124,"in_reply_to":"da9df570_2933fc14","updated":"2014-09-26 15:31:35.000000000","message":"jokke: I agree that would be a good feature to have. Do you think that should be included in this spec, or adding it as a separate feature on top of community images?","commit_id":"a9f9c45169176285a764c8356d11ca08dd1eafd5"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"b34021093081a771fda8660c0ce48d7f023ca68c","unresolved":false,"context_lines":[{"line_number":121,"context_line":"If a consumer of a community image would like to bookmark it, they must:"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"1. Add their tenant ID as a member of the community image."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"2. Accept the image so it will appear in their image-list"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"baa201ad_4a68d7f5","line":124,"in_reply_to":"da9df570_3ac97c26","updated":"2014-09-29 09:49:18.000000000","message":"Louis, ref to our conversation, I\u0027d like to see it documented as part of this spec. Not maybe implemented on the first incarnation of this functionality. I think specifically being able to reject publishers automatically would lower the security impact on the systems where the (possible) moderation of community publishers are not in place.","commit_id":"a9f9c45169176285a764c8356d11ca08dd1eafd5"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"e6d18f7a31eadde6af9bd144b7e7b28a7d7015a5","unresolved":false,"context_lines":[{"line_number":121,"context_line":"If a consumer of a community image would like to bookmark it, they must:"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"1. Add their tenant ID as a member of the community image."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"2. Accept the image so it will appear in their image-list"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_2933fc14","line":124,"in_reply_to":"da9df570_e64be3ae","updated":"2014-09-26 14:02:40.000000000","message":"+1\n\nEven perhaps extending it a bit. I\u0027d like to see automatic accept/reject based on publisher. So if the user wants to get Debian community images from the Debian maintainer this should be possible without crawling explicitly through the community images in a hope that there is updated one. On the other side there might be image providers you have no interest on and one could filter those out just based on their tenant ID.","commit_id":"a9f9c45169176285a764c8356d11ca08dd1eafd5"},{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"99f4f613b77eae3250f8253f0baa2ef9a8f48bba","unresolved":false,"context_lines":[{"line_number":121,"context_line":"If a consumer of a community image would like to bookmark it, they must:"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"1. Add their tenant ID as a member of the community image."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"2. Accept the image so it will appear in their image-list"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"baa201ad_4d31cea1","line":124,"in_reply_to":"da9df570_e64be3ae","updated":"2014-09-29 12:17:41.000000000","message":"Yes, I agree 100%: the consumer should not need to add their id.\n\nAs far as possible the user experience with community images and standard image sharing should be the exact same.\n\nThis provides the simplest, most consistent experience for users.\n\nI see community images have having two aspects:\n\nAspect 1) sharing with the \u0027*\u0027 tenant.\n\nThis should be as consistent as possible with the existing sharing mechanism. Ie the tenant who wants to share performs the usual api call, but the target tenant just happens to be \u0027*\u0027.\n\nOnce this is done, users can \u0027accept\u0027 the image if its id has been provided out-of-band -- in the exact same way as any other images which have been shared with them.\n\nNo new REST API resource is required for this.\n\nAspect 2) image discoverability\n\nThe image discoverability part of this is actually completely orthogonal to the sharing with tenant \u0027*\u0027 functionality.\n\nIn standard image sharing, image ids are shared out-of-band, eg via email or a well known web site. We can choose to allow community images to be discovered in-band (via\na REST api call to the glance server).\n\nThis requires a new API resource GET /v2/images?visibility\u003dcommunity\n\nOnce an image\u0027s id has been \u0027discovered\u0027 it can then be accepted in the usual way.\n\nThe user who is consuming the image should use the exact same calls as before; the fact that the image id has been discovered in-band should make no difference. Image visibilty should work the same as before in terms of visibility\u003dshared, ie once the user accepts the image it should then show both in their default list and also their shared list.\n\nAspect 1 and aspect 2 could be developed in two different patch sets.\n\n\n\nI\u0027m not sure about \u0027rejecting\u0027 community images to have them not show up in your community image list. It feels odd to reject something that you have never accepted. I\u0027m not sure this is consistent with user\u0027s current experience of public images or existing image sharing (where a reject undoes an accept). I think that if the ability to share images is covered by a policy then just polling all community images or filtering by owner is probably sufficient for a first pass.","commit_id":"a9f9c45169176285a764c8356d11ca08dd1eafd5"},{"author":{"_account_id":11356,"name":"Louis Taylor","email":"louis@kragniz.eu","username":"kragniz"},"change_message_id":"b46ed687709616264085cca0f26cb5212adf0d2e","unresolved":false,"context_lines":[{"line_number":121,"context_line":"If a consumer of a community image would like to bookmark it, they must:"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"1. Add their tenant ID as a member of the community image."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"2. Accept the image so it will appear in their image-list"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_fa4614bf","line":124,"in_reply_to":"da9df570_e64be3ae","updated":"2014-09-26 15:31:35.000000000","message":"ativelkov: I like this idea, +1.","commit_id":"a9f9c45169176285a764c8356d11ca08dd1eafd5"},{"author":{"_account_id":8127,"name":"Alexander Tivelkov","email":"locher@yandex.ru","username":"ativelkov"},"change_message_id":"5d6d2750531ba88380484f7dde82a29911d5b132","unresolved":false,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":"As in all the above cases, the response and other behaviour remains the same as"},{"line_number":187,"context_line":"was previously defined for this call."},{"line_number":188,"context_line":""},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"Security impact"},{"line_number":191,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_c6d97ff4","line":188,"updated":"2014-09-26 12:59:17.000000000","message":"In this case all the previously \"bookmarked\" images (i.e. the created membership objects) should be removed.","commit_id":"a9f9c45169176285a764c8356d11ca08dd1eafd5"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"b34021093081a771fda8660c0ce48d7f023ca68c","unresolved":false,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":"As in all the above cases, the response and other behaviour remains the same as"},{"line_number":187,"context_line":"was previously defined for this call."},{"line_number":188,"context_line":""},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"Security impact"},{"line_number":191,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"baa201ad_aa24e3c6","line":188,"in_reply_to":"da9df570_5f9d5209","updated":"2014-09-29 09:49:18.000000000","message":"Alex, I do agree and I don\u0027t see why one couldn\u0027t remove the members from the private images as they can do at the moment (if we allow the transition from community to private). Although wiping the memberships should not be the default behavior here.","commit_id":"a9f9c45169176285a764c8356d11ca08dd1eafd5"},{"author":{"_account_id":8127,"name":"Alexander Tivelkov","email":"locher@yandex.ru","username":"ativelkov"},"change_message_id":"0e5d8da142409c8e23e4f5598955dcd781f2b353","unresolved":false,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":"As in all the above cases, the response and other behaviour remains the same as"},{"line_number":187,"context_line":"was previously defined for this call."},{"line_number":188,"context_line":""},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"Security impact"},{"line_number":191,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_5f9d5209","line":188,"in_reply_to":"da9df570_89a22849","updated":"2014-09-26 14:49:22.000000000","message":"Probably you are right, but I really don\u0027t like the situation when the owners of the image cannot forbid the access to the images they own. \nAt least there should be a way to explicitly delete the membership object(s) after the object has become private. Some batch operations may be done for mass-revokation, but this may happen on client side as well.","commit_id":"a9f9c45169176285a764c8356d11ca08dd1eafd5"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"e6d18f7a31eadde6af9bd144b7e7b28a7d7015a5","unresolved":false,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":"As in all the above cases, the response and other behaviour remains the same as"},{"line_number":187,"context_line":"was previously defined for this call."},{"line_number":188,"context_line":""},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"Security impact"},{"line_number":191,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_89a22849","line":188,"in_reply_to":"da9df570_c6d97ff4","updated":"2014-09-26 14:02:40.000000000","message":"I do disagree with this one. I\u0027ve not decided yet if I like the possibility at all to go from community to private but there is benefits on that. Although if the image will be allowed to move from public to private the existing memberships should be retained. This could hide the image from new users to accepting it but allow the access where needed to the image for the existing users for it. \n\nIiuc removing the memberships for the image when the status changes will break for example the migrations in nova. As there is no backwards compatibility reasons to do so, I think we should not allow that to happen. At least without serious effort from the image owner side (FE. owner needing to delete the image and create it again as private without those members).\n\nI think the argument \"what if someone marks image as community accidentally\" is not good enough to make it easy to break the functionality for users of the image. The image maintainers needs to take the responsibility of their actions.","commit_id":"a9f9c45169176285a764c8356d11ca08dd1eafd5"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"e6d18f7a31eadde6af9bd144b7e7b28a7d7015a5","unresolved":false,"context_lines":[{"line_number":191,"context_line":"---------------"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"Little to none. The only risk is for users to accidentally leak potentially"},{"line_number":194,"context_line":"sensitive images by accidentally making them community images."},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"Notifications impact"},{"line_number":197,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_5c3f2087","line":194,"updated":"2014-09-26 14:02:40.000000000","message":"This is not exactly accurate. This will make providing the malicious images to wider audience lot easier.\n\nShould we consider making moderation of tenants allowed to publish community images possible?","commit_id":"a9f9c45169176285a764c8356d11ca08dd1eafd5"},{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"99f4f613b77eae3250f8253f0baa2ef9a8f48bba","unresolved":false,"context_lines":[{"line_number":191,"context_line":"---------------"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"Little to none. The only risk is for users to accidentally leak potentially"},{"line_number":194,"context_line":"sensitive images by accidentally making them community images."},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"Notifications impact"},{"line_number":197,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"baa201ad_a57b3428","line":194,"in_reply_to":"baa201ad_4a1d3773","updated":"2014-09-29 12:17:41.000000000","message":"I agree that it is appropriate to policy protect this. Currently for user A to share an image with user B they need to know user B\u0027s tenant id. This is no longer the case.","commit_id":"a9f9c45169176285a764c8356d11ca08dd1eafd5"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"b34021093081a771fda8660c0ce48d7f023ca68c","unresolved":false,"context_lines":[{"line_number":191,"context_line":"---------------"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"Little to none. The only risk is for users to accidentally leak potentially"},{"line_number":194,"context_line":"sensitive images by accidentally making them community images."},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"Notifications impact"},{"line_number":197,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"baa201ad_4a1d3773","line":194,"in_reply_to":"da9df570_15464b4f","updated":"2014-09-29 09:49:18.000000000","message":"If we do it via policy.json, I think it would be good idea to default admin role and let the deployers to decide how they want to move forward from that. I think this would be the easiest way to implement it.","commit_id":"a9f9c45169176285a764c8356d11ca08dd1eafd5"},{"author":{"_account_id":11356,"name":"Louis Taylor","email":"louis@kragniz.eu","username":"kragniz"},"change_message_id":"b46ed687709616264085cca0f26cb5212adf0d2e","unresolved":false,"context_lines":[{"line_number":191,"context_line":"---------------"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"Little to none. The only risk is for users to accidentally leak potentially"},{"line_number":194,"context_line":"sensitive images by accidentally making them community images."},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"Notifications impact"},{"line_number":197,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9df570_15464b4f","line":194,"in_reply_to":"da9df570_5c3f2087","updated":"2014-09-26 15:31:35.000000000","message":"And make not allowing publishing community images the default?","commit_id":"a9f9c45169176285a764c8356d11ca08dd1eafd5"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"b4d76c06ffa41e89773ee1cff90f70637cbcf46e","unresolved":false,"context_lines":[{"line_number":235,"context_line":"  kragniz"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"Other contributors:"},{"line_number":238,"context_line":"  iccha-sethi"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"Work Items"},{"line_number":241,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"baa201ad_ee71d80c","line":238,"updated":"2014-10-07 19:45:10.000000000","message":"Will iccha be working on this? If not we may not want to assign her with responsibilities she doesn\u0027t know of :)","commit_id":"8f8c9b0f2711aa189d53fcb8f5be140ac470c2aa"},{"author":{"_account_id":11356,"name":"Louis Taylor","email":"louis@kragniz.eu","username":"kragniz"},"change_message_id":"fb710bfa51d72bd981dd5a948da4beeacded71bd","unresolved":false,"context_lines":[{"line_number":235,"context_line":"  kragniz"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"Other contributors:"},{"line_number":238,"context_line":"  iccha-sethi"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"Work Items"},{"line_number":241,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"baa201ad_c9540ecc","line":238,"in_reply_to":"baa201ad_ee71d80c","updated":"2014-10-07 21:29:34.000000000","message":"Good point! I\u0027m building on the work she\u0027s done, so thought it was fair to credit her. I guess that isn\u0027t the purpose of \u0027other contributors\u0027.","commit_id":"8f8c9b0f2711aa189d53fcb8f5be140ac470c2aa"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"2df256a60289356dc6a4fbd32b10dc15641d5288","unresolved":false,"context_lines":[{"line_number":23,"context_line":"Problem description"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Currently, there is no provision for an image to be available for use by users"},{"line_number":27,"context_line":"other than the owner of the image, unless the image is either made public or"},{"line_number":28,"context_line":"explicitly shared by the owner of the image with other users. If the number of"},{"line_number":29,"context_line":"users who require access to the image is large, the overhead of explicit"}],"source_content_type":"text/x-rst","patch_set":11,"id":"1a930d6b_95534438","line":26,"updated":"2015-01-23 22:45:41.000000000","message":"What do you think about switching \"provision\" for \"mechanism\"?","commit_id":"f2ad1a91e99ae37737504d0678ec4d4115725122"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"ab7e69c2d621dffb988c61772abd85345ead917a","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":".. code:: python"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    [\u0027public\u0027, \u0027private\u0027, \u0027shared\u0027, \u0027community\u0027]"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"An image with with a certain value for ``visibility`` has the following"},{"line_number":73,"context_line":"properties:"}],"source_content_type":"text/x-rst","patch_set":11,"id":"fa81d914_f220554b","line":70,"updated":"2015-01-29 01:10:16.000000000","message":"Actually, you\u0027re adding 2 new values.  The current schema doesn\u0027t contain \u0027shared\u0027.  So part of this change is ironing out some problems that currently arise from having 3 kinds of visibility but only 2 values to articulate them.","commit_id":"f2ad1a91e99ae37737504d0678ec4d4115725122"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"ab7e69c2d621dffb988c61772abd85345ead917a","unresolved":false,"context_lines":[{"line_number":125,"context_line":"  - Who: users with ``tenantId`` in the ``member-list`` of the image with ``member_status \u003d\u003d \u0027accepted\u0027``"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    + have this image in their default ``image-list``"},{"line_number":128,"context_line":"      TODO"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":11,"id":"fa81d914_f2e77510","line":128,"updated":"2015-01-29 01:10:16.000000000","message":"What\u0027s the TODO?","commit_id":"f2ad1a91e99ae37737504d0678ec4d4115725122"},{"author":{"_account_id":14485,"name":"Igor Bolotin","email":"igor_bolotin@symantec.com","username":"ibolotin"},"change_message_id":"ef401f339de7bf4c7272a4c5552256efe18418d1","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    + have this image in their default ``image-list``"},{"line_number":128,"context_line":"      TODO"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Alternatives"},{"line_number":132,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"da86d52c_d6959340","line":129,"updated":"2015-02-12 00:56:21.000000000","message":"Wondering if there is a need for one more visibility level - \"domain\" images - i.e. shared with all tenants in a specific domain","commit_id":"f2ad1a91e99ae37737504d0678ec4d4115725122"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"2df256a60289356dc6a4fbd32b10dc15641d5288","unresolved":false,"context_lines":[{"line_number":156,"context_line":"to boot an instance from that image. The image will not show up in any"},{"line_number":157,"context_line":"tenant\u0027s default image-list."},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"This method can cause a few corner cases which result in surprising API calls"},{"line_number":160,"context_line":"and some less than desirable mappings between data model level and API level"},{"line_number":161,"context_line":"values of visibility."},{"line_number":162,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"1a930d6b_50400a34","line":159,"updated":"2015-01-23 22:45:41.000000000","message":"Can you expand on this just a little bit further please?","commit_id":"f2ad1a91e99ae37737504d0678ec4d4115725122"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"ab7e69c2d621dffb988c61772abd85345ead917a","unresolved":false,"context_lines":[{"line_number":156,"context_line":"to boot an instance from that image. The image will not show up in any"},{"line_number":157,"context_line":"tenant\u0027s default image-list."},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"This method can cause a few corner cases which result in surprising API calls"},{"line_number":160,"context_line":"and some less than desirable mappings between data model level and API level"},{"line_number":161,"context_line":"values of visibility."},{"line_number":162,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"fa81d914_92d47948","line":159,"in_reply_to":"1a930d6b_50400a34","updated":"2015-01-29 01:10:16.000000000","message":"There\u0027s a wiki page examining this:\n\nhttps://wiki.openstack.org/wiki/Glance-v2-community-image-sharing-use-cases\n\nShould probably put a link here.","commit_id":"f2ad1a91e99ae37737504d0678ec4d4115725122"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"2df256a60289356dc6a4fbd32b10dc15641d5288","unresolved":false,"context_lines":[{"line_number":189,"context_line":""},{"line_number":190,"context_line":"3. For all rows with ``visibility \u003d\u003d null``:"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"   - ``visibility \u003d \u0027private\u0027``"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"REST API impact"},{"line_number":195,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"1a930d6b_708ee67a","line":192,"updated":"2015-01-23 22:45:41.000000000","message":"So I think this will have some effects on the policy.json once we resolve to passing real targets to the enforcer. A user could do\n\n    is_public:True\n\nAnd this would look at the is_public attribute on the image. No one *should* be using this right now though.","commit_id":"f2ad1a91e99ae37737504d0678ec4d4115725122"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"2df256a60289356dc6a4fbd32b10dc15641d5288","unresolved":false,"context_lines":[{"line_number":212,"context_line":""},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"Accepting a community Image"},{"line_number":215,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"Having to filter the results each time to find a particular image is"},{"line_number":218,"context_line":"inconvenient, particularity if that image is often used. To remove this"}],"source_content_type":"text/x-rst","patch_set":11,"id":"1a930d6b_30745e67","line":215,"updated":"2015-01-23 22:45:41.000000000","message":"Lowercase i in Image?","commit_id":"f2ad1a91e99ae37737504d0678ec4d4115725122"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"ab7e69c2d621dffb988c61772abd85345ead917a","unresolved":false,"context_lines":[{"line_number":215,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"Having to filter the results each time to find a particular image is"},{"line_number":218,"context_line":"inconvenient, particularity if that image is often used. To remove this"},{"line_number":219,"context_line":"inconvenience, users are allowed to \"bookmark\" a particular community image."},{"line_number":220,"context_line":"This image then appears in the user\u0027s image-list. This functionality operates"},{"line_number":221,"context_line":"in the same way that v2 image sharing works, but the owner of the image does"}],"source_content_type":"text/x-rst","patch_set":11,"id":"fa81d914_12916952","line":218,"updated":"2015-01-29 01:10:16.000000000","message":"\u0027particularity\u0027 should be \u0027particularly\u0027","commit_id":"f2ad1a91e99ae37737504d0678ec4d4115725122"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"2df256a60289356dc6a4fbd32b10dc15641d5288","unresolved":false,"context_lines":[{"line_number":227,"context_line":""},{"line_number":228,"context_line":"For this, the existing image-sharing API calls will be used:"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"Accept the image: ::"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"       PUT /v2/images/{image_id}/members/{consumer_tenant_id}"},{"line_number":233,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"1a930d6b_705346e2","line":230,"updated":"2015-01-23 22:45:41.000000000","message":"You don\u0027t need to write the \u0027:\u0027 separately. Placing \u0027::\u0027 at the end of the line will do that for you.","commit_id":"f2ad1a91e99ae37737504d0678ec4d4115725122"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"2df256a60289356dc6a4fbd32b10dc15641d5288","unresolved":false,"context_lines":[{"line_number":229,"context_line":""},{"line_number":230,"context_line":"Accept the image: ::"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"       PUT /v2/images/{image_id}/members/{consumer_tenant_id}"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"Request body:"},{"line_number":235,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"1a930d6b_b02e8e41","line":232,"updated":"2015-01-23 22:45:41.000000000","message":"Outdent this a few spaces please","commit_id":"f2ad1a91e99ae37737504d0678ec4d4115725122"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"2df256a60289356dc6a4fbd32b10dc15641d5288","unresolved":false,"context_lines":[{"line_number":285,"context_line":""},{"line_number":286,"context_line":"Other end user impact"},{"line_number":287,"context_line":"---------------------"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"Client changes"},{"line_number":291,"context_line":"~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":11,"id":"1a930d6b_d0da3a4b","line":288,"updated":"2015-01-23 22:45:41.000000000","message":"Did you mean to put \"None\" here?","commit_id":"f2ad1a91e99ae37737504d0678ec4d4115725122"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"ab7e69c2d621dffb988c61772abd85345ead917a","unresolved":false,"context_lines":[{"line_number":293,"context_line":"Python-glanceclient will be updated to expose this feature. An option to"},{"line_number":294,"context_line":"``glance image-update`` will be added named ``--visibility"},{"line_number":295,"context_line":"\u003cVISIBILITY_STATUS\u003e``, where ``VISIBILITY_STATUS`` may be one of ``{public,"},{"line_number":296,"context_line":"private, community}``."},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"For example, to make an image a community image:"},{"line_number":299,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"fa81d914_b2ffbd66","line":296,"updated":"2015-01-29 01:10:16.000000000","message":"What about \u0027shared\u0027?","commit_id":"f2ad1a91e99ae37737504d0678ec4d4115725122"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"ab7e69c2d621dffb988c61772abd85345ead917a","unresolved":false,"context_lines":[{"line_number":312,"context_line":"~~~~~~~~~~~~~~~~~~~~"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"Moving from community to public retains the list of members the image currently"},{"line_number":315,"context_line":"contains. This maintains constancy with the current membership behaviour."},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"Performance Impact"},{"line_number":318,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"fa81d914_ed45d617","line":315,"updated":"2015-01-29 01:10:16.000000000","message":"You should probably address what will happen with image members for all the possible visibility state transitions.  There\u0027s a suggested flow here:\nhttps://wiki.openstack.org/wiki/Glance-v2-community-image-visibility-design","commit_id":"f2ad1a91e99ae37737504d0678ec4d4115725122"}]}
