)]}'
{"openstack/compute/v2/image.py":[{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"79186f1e69172840d6a2067a51dfcdd0643cbfb8","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    name \u003d resource.prop(\u0027name\u0027)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"class ImageDetail(Image):"},{"line_number":39,"context_line":"    base_path \u003d \u0027/images/detail\u0027"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    #: Timestamp when the image was created."}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_5f28fde1","line":38,"updated":"2015-02-24 19:57:42.000000000","message":"where is this documented, this isn\u0027t following http://developer.openstack.org/api-ref-image-v2.html","commit_id":"867b8c772d32adf1d8511f660f8c593db117a718"},{"author":{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},"change_message_id":"8387096431f5cda2a63dd2dfbe4f3ef476bd0257","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    name \u003d resource.prop(\u0027name\u0027)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"class ImageDetail(Image):"},{"line_number":39,"context_line":"    base_path \u003d \u0027/images/detail\u0027"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    #: Timestamp when the image was created."}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_f15d6516","line":38,"in_reply_to":"ba7be1f8_5f28fde1","updated":"2015-02-24 20:14:27.000000000","message":"Terry, see http://developer.openstack.org/api-ref-compute-v2.html#compute_images\n\nWhile it\u0027s not clear to me that image/detail allows create, retrieve, delete, or update, it does allow list.\n\nI think the capabilities may need to be reviewed and overridden in the subclass to capture this.","commit_id":"867b8c772d32adf1d8511f660f8c593db117a718"},{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"01bb45469afe8e2a958e83f6af5acce5085554bc","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    name \u003d resource.prop(\u0027name\u0027)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"class ImageDetail(Image):"},{"line_number":39,"context_line":"    base_path \u003d \u0027/images/detail\u0027"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    #: Timestamp when the image was created."}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_5408df27","line":38,"in_reply_to":"ba7be1f8_f15d6516","updated":"2015-02-24 20:29:38.000000000","message":"This was the resource where I removed everything but list (and then mistakenly applied it to Flavor, which actually can do those). Now that I\u0027m looking back through the extensions doc, this really should just be retrieve and list.","commit_id":"867b8c772d32adf1d8511f660f8c593db117a718"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"b84383c6a2e1ea2d5294dde23f0102c4bcbe53da","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    allow_create \u003d True"},{"line_number":25,"context_line":"    allow_retrieve \u003d True"},{"line_number":26,"context_line":"    allow_update \u003d True"},{"line_number":27,"context_line":"    allow_delete \u003d True"},{"line_number":28,"context_line":"    allow_list \u003d True"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    # Properties"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba7be1f8_0abd62d8","side":"PARENT","line":27,"updated":"2015-02-24 21:32:30.000000000","message":"It looks like the API at least allows delete.  Odd that you can delete, but I didn\u0027t see create.","commit_id":"ee4c85d24378d93fe5e597498d3fc0ef02d463ee"},{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"90ece4c0c32973b294116e305d7c4d65f722c45c","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    allow_create \u003d True"},{"line_number":25,"context_line":"    allow_retrieve \u003d True"},{"line_number":26,"context_line":"    allow_update \u003d True"},{"line_number":27,"context_line":"    allow_delete \u003d True"},{"line_number":28,"context_line":"    allow_list \u003d True"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    # Properties"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba7be1f8_8a7952ca","side":"PARENT","line":27,"in_reply_to":"ba7be1f8_0abd62d8","updated":"2015-02-24 21:40:49.000000000","message":"I see that now, will adjust. I\u0027m guessing the create aspect is expected to be handled by glance or some other way.","commit_id":"ee4c85d24378d93fe5e597498d3fc0ef02d463ee"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"802633efce8b870efe0b3bc78f9b21f0953a54c9","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    name \u003d resource.prop(\u0027name\u0027)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class ImageDetail(Image):"},{"line_number":36,"context_line":"    base_path \u003d \u0027/images/detail\u0027"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    #: Timestamp when the image was created."}],"source_content_type":"text/x-python","patch_set":4,"id":"ba7be1f8_873cebc9","line":35,"updated":"2015-02-24 20:53:34.000000000","message":"This isn\u0027t a different resource, this API is just a long listing.  All these properties are available on a normal GET of a single resource, so they shouldn\u0027t be taken out of that.  IMO, we should just have Image override the list method and have some sort of long listing option.  I would also be fine with just only supporting listing on the details interface because how many images are people going to have that they can\u0027t send over a couple more fields over HTTP.","commit_id":"2179cd016ce13ea1278a6a46deed8832f87e0834"},{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"90ece4c0c32973b294116e305d7c4d65f722c45c","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    name \u003d resource.prop(\u0027name\u0027)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class ImageDetail(Image):"},{"line_number":36,"context_line":"    base_path \u003d \u0027/images/detail\u0027"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    #: Timestamp when the image was created."}],"source_content_type":"text/x-python","patch_set":4,"id":"ba7be1f8_ea8e4ecf","line":35,"in_reply_to":"ba7be1f8_6a86de14","updated":"2015-02-24 21:40:49.000000000","message":"Ok, now I see what you mean.","commit_id":"2179cd016ce13ea1278a6a46deed8832f87e0834"},{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"11da8445f7df7800984928c1dda8b00d2e68cf6d","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    name \u003d resource.prop(\u0027name\u0027)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class ImageDetail(Image):"},{"line_number":36,"context_line":"    base_path \u003d \u0027/images/detail\u0027"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    #: Timestamp when the image was created."}],"source_content_type":"text/x-python","patch_set":4,"id":"ba7be1f8_a7d00ff7","line":35,"in_reply_to":"ba7be1f8_873cebc9","updated":"2015-02-24 21:09:00.000000000","message":"But we just did the same thing on Flavor (which this change depends on, though it\u0027s now merged), and the same with all three Volume resources having a Resource and ResourceDetail for the two. None of the details contained in this class end up coming back in a /images call, only in the /images/detail call, so I think it makes sense to support both possibilities, and it\u0027s relatively easy. In the Proxy handling of list_images we make the call to ImageDetail the default way, but if someone had a need to limit their payload by going with less data for some reason, they can turn details off.\n\nI think of this the same way I came around on the filter thing in find. I originally thought there was no need to support filters to only return the IDs, for example, but if it\u0027s something the REST API supports or provides, I think we should enable people to use it as it\u0027s available. While details are generally going to be wanted and helpful, there\u0027s likely a time and place for both approaches.","commit_id":"2179cd016ce13ea1278a6a46deed8832f87e0834"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"b84383c6a2e1ea2d5294dde23f0102c4bcbe53da","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    name \u003d resource.prop(\u0027name\u0027)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class ImageDetail(Image):"},{"line_number":36,"context_line":"    base_path \u003d \u0027/images/detail\u0027"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    #: Timestamp when the image was created."}],"source_content_type":"text/x-python","patch_set":4,"id":"ba7be1f8_6a86de14","line":35,"in_reply_to":"ba7be1f8_a7d00ff7","updated":"2015-02-24 21:32:30.000000000","message":"These properties are available through a regular GET on /v2/?{tenant_id}?/images/?{image_id}? though.  You\u0027re right on details, but this resource should just set base_path and allow_retrieve \u003d False and allow_delete \u003d False.","commit_id":"2179cd016ce13ea1278a6a46deed8832f87e0834"}],"openstack/tests/compute/v2/test_image.py":[{"author":{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},"change_message_id":"8387096431f5cda2a63dd2dfbe4f3ef476bd0257","unresolved":false,"context_lines":[{"line_number":29,"context_line":"}"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"DETAILS \u003d {"},{"line_number":32,"context_line":"    \u0027created\u0027: \u00271\u0027,"},{"line_number":33,"context_line":"    \u0027metadata\u0027: {\u0027key\u0027: \u00272\u0027},"},{"line_number":34,"context_line":"    \u0027minDisk\u0027: 3,"},{"line_number":35,"context_line":"    \u0027minRam\u0027: 4,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_5f60fd00","line":32,"updated":"2015-02-24 20:14:27.000000000","message":"best to just remove the duplicates to simplify between the two.","commit_id":"867b8c772d32adf1d8511f660f8c593db117a718"},{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"01bb45469afe8e2a958e83f6af5acce5085554bc","unresolved":false,"context_lines":[{"line_number":29,"context_line":"}"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"DETAILS \u003d {"},{"line_number":32,"context_line":"    \u0027created\u0027: \u00271\u0027,"},{"line_number":33,"context_line":"    \u0027metadata\u0027: {\u0027key\u0027: \u00272\u0027},"},{"line_number":34,"context_line":"    \u0027minDisk\u0027: 3,"},{"line_number":35,"context_line":"    \u0027minRam\u0027: 4,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_342e0b93","line":32,"in_reply_to":"ba7be1f8_5f60fd00","updated":"2015-02-24 20:29:38.000000000","message":"Yep, will do, I thought I applied that here like was done for Flavor.","commit_id":"867b8c772d32adf1d8511f660f8c593db117a718"}]}
