)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"abbc7dd449d90f1c6355eba84351ca76ed6a1db8","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Mike Fedosin \u003cmfedosin@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-06-01 19:38:48 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Return 409 if setting location to saving image"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Now user can set custom location to an image, even if"},{"line_number":10,"context_line":"it has \u0027saving\u0027 or \u0027deactivated\u0027 status. This code"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1ac06dbe_8594abe8","line":7,"range":{"start_line":7,"start_character":34,"end_line":7,"end_character":46},"updated":"2016-08-25 04:58:48.000000000","message":"non active or queued image\n\nas the 409 is being returned for statuses except those 2","commit_id":"9509725339e344f32a0aeb4880b6a1d043d7cb0b"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"abbc7dd449d90f1c6355eba84351ca76ed6a1db8","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Return 409 if setting location to saving image"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Now user can set custom location to an image, even if"},{"line_number":10,"context_line":"it has \u0027saving\u0027 or \u0027deactivated\u0027 status. This code"},{"line_number":11,"context_line":"prevents it and returns 409 error code."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1ac06dbe_c59ea306","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":3},"updated":"2016-08-25 04:58:48.000000000","message":"Currently","commit_id":"9509725339e344f32a0aeb4880b6a1d043d7cb0b"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"abbc7dd449d90f1c6355eba84351ca76ed6a1db8","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Now user can set custom location to an image, even if"},{"line_number":10,"context_line":"it has \u0027saving\u0027 or \u0027deactivated\u0027 status. This code"},{"line_number":11,"context_line":"prevents it and returns 409 error code."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"ApiImpact"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1ac06dbe_8562eb14","line":11,"updated":"2016-08-25 04:58:48.000000000","message":"I think the above paragraph can be rephrased a bit like:\n\nCurrently, a user can set a custom location to an image even in ``saving`` or ``deactivated`` statuses. For a saving image, this increases the risk of in-flight upload operation to fail once the data upload succeeds and glance tries to update the image status. Also, if a deactivated image has custom location set on it the security team will have to do additional checks on the image data that is set on the custom location which looses the value for deactivated status. In order to provide a more consistent upload experience, we would like to introduce this check and return \"409 Conflict\" http status when appropriate.","commit_id":"9509725339e344f32a0aeb4880b6a1d043d7cb0b"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"abbc7dd449d90f1c6355eba84351ca76ed6a1db8","unresolved":false,"context_lines":[{"line_number":10,"context_line":"it has \u0027saving\u0027 or \u0027deactivated\u0027 status. This code"},{"line_number":11,"context_line":"prevents it and returns 409 error code."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"ApiImpact"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ie463e2f30db94cde7716c83a94ec2fb0c0658c91"},{"line_number":16,"context_line":"Closes-bug: #1587985"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1ac06dbe_c534e34b","line":13,"updated":"2016-08-25 04:58:48.000000000","message":"DocImpact","commit_id":"9509725339e344f32a0aeb4880b6a1d043d7cb0b"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"abbc7dd449d90f1c6355eba84351ca76ed6a1db8","unresolved":false,"context_lines":[{"line_number":11,"context_line":"prevents it and returns 409 error code."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"ApiImpact"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ie463e2f30db94cde7716c83a94ec2fb0c0658c91"},{"line_number":16,"context_line":"Closes-bug: #1587985"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1ac06dbe_254b37b2","line":14,"updated":"2016-08-25 04:58:48.000000000","message":"Lite-Spec: https://review.openstack.org/#/c/324780/","commit_id":"9509725339e344f32a0aeb4880b6a1d043d7cb0b"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"abbc7dd449d90f1c6355eba84351ca76ed6a1db8","unresolved":false,"context_lines":[{"line_number":13,"context_line":"ApiImpact"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ie463e2f30db94cde7716c83a94ec2fb0c0658c91"},{"line_number":16,"context_line":"Closes-bug: #1587985"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1ac06dbe_e5d75fbd","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":6},"updated":"2016-08-25 04:58:48.000000000","message":"This should be \n\nPartial-Bug: 1587985","commit_id":"9509725339e344f32a0aeb4880b6a1d043d7cb0b"},{"author":{"_account_id":22448,"name":"Alexander Bashmakov","email":"abashmak@yahoo.com","username":"abashmak"},"change_message_id":"6420e09c86d247fee7a076145dd9a73a59e0e2de","unresolved":false,"context_lines":[{"line_number":10,"context_line":"to an image that is in any non-deleted status."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"If a custom location is set to an image in ``saving`` status, it may"},{"line_number":13,"context_line":"result into a race condition between the data stream that is trying to"},{"line_number":14,"context_line":"save the image data to the backend and the custom location user is"},{"line_number":15,"context_line":"attempting to set on the image record. This will result into a bad"},{"line_number":16,"context_line":"experience for the user who is streaming the image data to Glance as"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa7ab95a_b7331013","line":13,"range":{"start_line":13,"start_character":7,"end_line":13,"end_character":11},"updated":"2016-08-30 18:21:08.000000000","message":"s/into/in/","commit_id":"989e5405c2ed7d0015e8a476faecc86cff47070e"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"f3489613094d6833e928ab6bef2580a7efa4b120","unresolved":false,"context_lines":[{"line_number":10,"context_line":"to an image that is in any non-deleted status."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"If a custom location is set to an image in ``saving`` status, it may"},{"line_number":13,"context_line":"result into a race condition between the data stream that is trying to"},{"line_number":14,"context_line":"save the image data to the backend and the custom location user is"},{"line_number":15,"context_line":"attempting to set on the image record. This will result into a bad"},{"line_number":16,"context_line":"experience for the user who is streaming the image data to Glance as"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa7ab95a_11ecb68e","line":13,"range":{"start_line":13,"start_character":7,"end_line":13,"end_character":11},"in_reply_to":"fa7ab95a_b7331013","updated":"2016-08-31 02:40:30.000000000","message":"Done","commit_id":"989e5405c2ed7d0015e8a476faecc86cff47070e"},{"author":{"_account_id":22448,"name":"Alexander Bashmakov","email":"abashmak@yahoo.com","username":"abashmak"},"change_message_id":"6420e09c86d247fee7a076145dd9a73a59e0e2de","unresolved":false,"context_lines":[{"line_number":12,"context_line":"If a custom location is set to an image in ``saving`` status, it may"},{"line_number":13,"context_line":"result into a race condition between the data stream that is trying to"},{"line_number":14,"context_line":"save the image data to the backend and the custom location user is"},{"line_number":15,"context_line":"attempting to set on the image record. This will result into a bad"},{"line_number":16,"context_line":"experience for the user who is streaming the image data to Glance as"},{"line_number":17,"context_line":"it is a better experiece to set the location after the image data has"},{"line_number":18,"context_line":"been saved and image is in ``active`` status, in this case."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa7ab95a_173d9cdc","line":15,"range":{"start_line":15,"start_character":56,"end_line":15,"end_character":60},"updated":"2016-08-30 18:21:08.000000000","message":"s/into/in/","commit_id":"989e5405c2ed7d0015e8a476faecc86cff47070e"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"f3489613094d6833e928ab6bef2580a7efa4b120","unresolved":false,"context_lines":[{"line_number":12,"context_line":"If a custom location is set to an image in ``saving`` status, it may"},{"line_number":13,"context_line":"result into a race condition between the data stream that is trying to"},{"line_number":14,"context_line":"save the image data to the backend and the custom location user is"},{"line_number":15,"context_line":"attempting to set on the image record. This will result into a bad"},{"line_number":16,"context_line":"experience for the user who is streaming the image data to Glance as"},{"line_number":17,"context_line":"it is a better experiece to set the location after the image data has"},{"line_number":18,"context_line":"been saved and image is in ``active`` status, in this case."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa7ab95a_3101ba3a","line":15,"range":{"start_line":15,"start_character":56,"end_line":15,"end_character":60},"in_reply_to":"fa7ab95a_173d9cdc","updated":"2016-08-31 02:40:30.000000000","message":"Done","commit_id":"989e5405c2ed7d0015e8a476faecc86cff47070e"},{"author":{"_account_id":22448,"name":"Alexander Bashmakov","email":"abashmak@yahoo.com","username":"abashmak"},"change_message_id":"6420e09c86d247fee7a076145dd9a73a59e0e2de","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"If a custom location is set to an image in ``deactivated`` status, the"},{"line_number":21,"context_line":"purpose of setting the image to ``deactivated`` is void. This will"},{"line_number":22,"context_line":"result into a worse experience for the security team that is trying to"},{"line_number":23,"context_line":"evaluate the validity of the image data of the deactivated image."},{"line_number":24,"context_line":"Avoiding setting custom location in this case will ensure data"},{"line_number":25,"context_line":"consistency until image is pulled out of the deactivation process."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa7ab95a_9a171344","line":22,"range":{"start_line":22,"start_character":7,"end_line":22,"end_character":11},"updated":"2016-08-30 18:21:08.000000000","message":"s/into/in/","commit_id":"989e5405c2ed7d0015e8a476faecc86cff47070e"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"f3489613094d6833e928ab6bef2580a7efa4b120","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"If a custom location is set to an image in ``deactivated`` status, the"},{"line_number":21,"context_line":"purpose of setting the image to ``deactivated`` is void. This will"},{"line_number":22,"context_line":"result into a worse experience for the security team that is trying to"},{"line_number":23,"context_line":"evaluate the validity of the image data of the deactivated image."},{"line_number":24,"context_line":"Avoiding setting custom location in this case will ensure data"},{"line_number":25,"context_line":"consistency until image is pulled out of the deactivation process."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa7ab95a_91f8c64b","line":22,"range":{"start_line":22,"start_character":7,"end_line":22,"end_character":11},"in_reply_to":"fa7ab95a_9a171344","updated":"2016-08-31 02:40:30.000000000","message":"Done","commit_id":"989e5405c2ed7d0015e8a476faecc86cff47070e"},{"author":{"_account_id":22448,"name":"Alexander Bashmakov","email":"abashmak@yahoo.com","username":"abashmak"},"change_message_id":"6420e09c86d247fee7a076145dd9a73a59e0e2de","unresolved":false,"context_lines":[{"line_number":25,"context_line":"consistency until image is pulled out of the deactivation process."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"This commit introduces the following change in behavior:"},{"line_number":28,"context_line":"  * If an image is in ``saving`` or ``deactivated`` status, the staus of"},{"line_number":29,"context_line":"    that image will be checked while trying to set the custom location"},{"line_number":30,"context_line":"    and a HTTP 409 Conflict status will be retured in response to the"},{"line_number":31,"context_line":"    user."},{"line_number":32,"context_line":"  * If an image is in ``active`` or ``queued`` status, setting custom"},{"line_number":33,"context_line":"    locations on that image will be allowed so there is no change in"},{"line_number":34,"context_line":"    behavior for this case."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa7ab95a_fa7adf75","line":31,"range":{"start_line":28,"start_character":0,"end_line":31,"end_character":9},"updated":"2016-08-30 18:21:08.000000000","message":"This is a bit misleading because it doesn\u0027t mention any other possible image states (e.g. killed, deleted, pending_delete)","commit_id":"989e5405c2ed7d0015e8a476faecc86cff47070e"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"f3489613094d6833e928ab6bef2580a7efa4b120","unresolved":false,"context_lines":[{"line_number":25,"context_line":"consistency until image is pulled out of the deactivation process."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"This commit introduces the following change in behavior:"},{"line_number":28,"context_line":"  * If an image is in ``saving`` or ``deactivated`` status, the staus of"},{"line_number":29,"context_line":"    that image will be checked while trying to set the custom location"},{"line_number":30,"context_line":"    and a HTTP 409 Conflict status will be retured in response to the"},{"line_number":31,"context_line":"    user."},{"line_number":32,"context_line":"  * If an image is in ``active`` or ``queued`` status, setting custom"},{"line_number":33,"context_line":"    locations on that image will be allowed so there is no change in"},{"line_number":34,"context_line":"    behavior for this case."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa7ab95a_11baf66e","line":31,"range":{"start_line":28,"start_character":0,"end_line":31,"end_character":9},"in_reply_to":"fa7ab95a_fa7adf75","updated":"2016-08-31 02:40:30.000000000","message":"I ignored because they should be irrelevant as the image is unusable at that stage and those are terminal states of the image.\n\nLemme add a comment about them. Would be useful for release notes!!","commit_id":"989e5405c2ed7d0015e8a476faecc86cff47070e"},{"author":{"_account_id":22448,"name":"Alexander Bashmakov","email":"abashmak@yahoo.com","username":"abashmak"},"change_message_id":"6420e09c86d247fee7a076145dd9a73a59e0e2de","unresolved":false,"context_lines":[{"line_number":32,"context_line":"  * If an image is in ``active`` or ``queued`` status, setting custom"},{"line_number":33,"context_line":"    locations on that image will be allowed so there is no change in"},{"line_number":34,"context_line":"    behavior for this case."},{"line_number":35,"context_line":"  * This operation has a race conditions involved:"},{"line_number":36,"context_line":"     * In case where the status of the image is ``saving`` and the image"},{"line_number":37,"context_line":"       has just moved to ```active`` status, ideally setting custom"},{"line_number":38,"context_line":"       location should be allowed however, due to lack of atomiticity in"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa7ab95a_fa6c9fd1","line":35,"range":{"start_line":35,"start_character":19,"end_line":35,"end_character":50},"updated":"2016-08-30 18:21:08.000000000","message":"\"involves the following race conditions:\"","commit_id":"989e5405c2ed7d0015e8a476faecc86cff47070e"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"f3489613094d6833e928ab6bef2580a7efa4b120","unresolved":false,"context_lines":[{"line_number":32,"context_line":"  * If an image is in ``active`` or ``queued`` status, setting custom"},{"line_number":33,"context_line":"    locations on that image will be allowed so there is no change in"},{"line_number":34,"context_line":"    behavior for this case."},{"line_number":35,"context_line":"  * This operation has a race conditions involved:"},{"line_number":36,"context_line":"     * In case where the status of the image is ``saving`` and the image"},{"line_number":37,"context_line":"       has just moved to ```active`` status, ideally setting custom"},{"line_number":38,"context_line":"       location should be allowed however, due to lack of atomiticity in"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa7ab95a_5108fe2d","line":35,"range":{"start_line":35,"start_character":19,"end_line":35,"end_character":50},"in_reply_to":"fa7ab95a_fa6c9fd1","updated":"2016-08-31 02:40:30.000000000","message":"Done","commit_id":"989e5405c2ed7d0015e8a476faecc86cff47070e"},{"author":{"_account_id":22448,"name":"Alexander Bashmakov","email":"abashmak@yahoo.com","username":"abashmak"},"change_message_id":"6420e09c86d247fee7a076145dd9a73a59e0e2de","unresolved":false,"context_lines":[{"line_number":39,"context_line":"       setting image status glance will ignore setting the location and"},{"line_number":40,"context_line":"       a 409 will be returned."},{"line_number":41,"context_line":"     * In case where the status of the image is ``deactivated`` and the"},{"line_number":42,"context_line":"       images has just been moved to ``active`` status, ideally setting"},{"line_number":43,"context_line":"       custom location should be allowed however, due to lack of"},{"line_number":44,"context_line":"       atomiticity in setting image status glance will ignore setting"},{"line_number":45,"context_line":"       the location and a 409 will be returned."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa7ab95a_1a430314","line":42,"range":{"start_line":42,"start_character":7,"end_line":42,"end_character":13},"updated":"2016-08-30 18:21:08.000000000","message":"s/images/image/","commit_id":"989e5405c2ed7d0015e8a476faecc86cff47070e"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"f3489613094d6833e928ab6bef2580a7efa4b120","unresolved":false,"context_lines":[{"line_number":39,"context_line":"       setting image status glance will ignore setting the location and"},{"line_number":40,"context_line":"       a 409 will be returned."},{"line_number":41,"context_line":"     * In case where the status of the image is ``deactivated`` and the"},{"line_number":42,"context_line":"       images has just been moved to ``active`` status, ideally setting"},{"line_number":43,"context_line":"       custom location should be allowed however, due to lack of"},{"line_number":44,"context_line":"       atomiticity in setting image status glance will ignore setting"},{"line_number":45,"context_line":"       the location and a 409 will be returned."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa7ab95a_9102860a","line":42,"range":{"start_line":42,"start_character":7,"end_line":42,"end_character":13},"in_reply_to":"fa7ab95a_1a430314","updated":"2016-08-31 02:40:30.000000000","message":"Done","commit_id":"989e5405c2ed7d0015e8a476faecc86cff47070e"},{"author":{"_account_id":22448,"name":"Alexander Bashmakov","email":"abashmak@yahoo.com","username":"abashmak"},"change_message_id":"6420e09c86d247fee7a076145dd9a73a59e0e2de","unresolved":false,"context_lines":[{"line_number":43,"context_line":"       custom location should be allowed however, due to lack of"},{"line_number":44,"context_line":"       atomiticity in setting image status glance will ignore setting"},{"line_number":45,"context_line":"       the location and a 409 will be returned."},{"line_number":46,"context_line":"     * In case where the status of the image is ``active`` and has just"},{"line_number":47,"context_line":"       been moved to ``deactivated`` status, due to lack of atomiticity"},{"line_number":48,"context_line":"       in setting image status, glance may set another location on that"},{"line_number":49,"context_line":"       image."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa7ab95a_9a6633b9","line":46,"range":{"start_line":46,"start_character":59,"end_line":46,"end_character":66},"updated":"2016-08-30 18:21:08.000000000","message":"s/and has/and the image has/","commit_id":"989e5405c2ed7d0015e8a476faecc86cff47070e"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"f3489613094d6833e928ab6bef2580a7efa4b120","unresolved":false,"context_lines":[{"line_number":43,"context_line":"       custom location should be allowed however, due to lack of"},{"line_number":44,"context_line":"       atomiticity in setting image status glance will ignore setting"},{"line_number":45,"context_line":"       the location and a 409 will be returned."},{"line_number":46,"context_line":"     * In case where the status of the image is ``active`` and has just"},{"line_number":47,"context_line":"       been moved to ``deactivated`` status, due to lack of atomiticity"},{"line_number":48,"context_line":"       in setting image status, glance may set another location on that"},{"line_number":49,"context_line":"       image."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa7ab95a_3c67d1eb","line":46,"range":{"start_line":46,"start_character":59,"end_line":46,"end_character":66},"in_reply_to":"fa7ab95a_9a6633b9","updated":"2016-08-31 02:40:30.000000000","message":"Done","commit_id":"989e5405c2ed7d0015e8a476faecc86cff47070e"},{"author":{"_account_id":22448,"name":"Alexander Bashmakov","email":"abashmak@yahoo.com","username":"abashmak"},"change_message_id":"6420e09c86d247fee7a076145dd9a73a59e0e2de","unresolved":false,"context_lines":[{"line_number":47,"context_line":"       been moved to ``deactivated`` status, due to lack of atomiticity"},{"line_number":48,"context_line":"       in setting image status, glance may set another location on that"},{"line_number":49,"context_line":"       image."},{"line_number":50,"context_line":"     * In case where the status of the image is ``queued`` and has just"},{"line_number":51,"context_line":"       been moved to ``saving`` status, due to lack of atomiticity"},{"line_number":52,"context_line":"       in setting image status, glance may set another location on that"},{"line_number":53,"context_line":"       image."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa7ab95a_fa0d7fe8","line":50,"range":{"start_line":50,"start_character":59,"end_line":50,"end_character":66},"updated":"2016-08-30 18:21:08.000000000","message":"s/and has/and the image has/","commit_id":"989e5405c2ed7d0015e8a476faecc86cff47070e"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"f3489613094d6833e928ab6bef2580a7efa4b120","unresolved":false,"context_lines":[{"line_number":47,"context_line":"       been moved to ``deactivated`` status, due to lack of atomiticity"},{"line_number":48,"context_line":"       in setting image status, glance may set another location on that"},{"line_number":49,"context_line":"       image."},{"line_number":50,"context_line":"     * In case where the status of the image is ``queued`` and has just"},{"line_number":51,"context_line":"       been moved to ``saving`` status, due to lack of atomiticity"},{"line_number":52,"context_line":"       in setting image status, glance may set another location on that"},{"line_number":53,"context_line":"       image."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa7ab95a_5c6495e4","line":50,"range":{"start_line":50,"start_character":59,"end_line":50,"end_character":66},"in_reply_to":"fa7ab95a_fa0d7fe8","updated":"2016-08-31 02:40:30.000000000","message":"Done","commit_id":"989e5405c2ed7d0015e8a476faecc86cff47070e"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1c4df10a1c0907257d6f0da50bb19fd147e7bfda","unresolved":false,"context_lines":[{"line_number":48,"context_line":"       in setting image status, glance may set another location on that"},{"line_number":49,"context_line":"       image."},{"line_number":50,"context_line":"     * In case where the status of the image is ``queued`` and has just"},{"line_number":51,"context_line":"       been moved to ``saving`` status, due to lack of atomiticity"},{"line_number":52,"context_line":"       in setting image status, glance may set another location on that"},{"line_number":53,"context_line":"       image."},{"line_number":54,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa7ab95a_aaa0faf4","line":51,"range":{"start_line":51,"start_character":55,"end_line":51,"end_character":66},"updated":"2016-08-30 21:43:23.000000000","message":"This should be \u0027atomicity\u0027 here and in each of the above bullet points.","commit_id":"989e5405c2ed7d0015e8a476faecc86cff47070e"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"f3489613094d6833e928ab6bef2580a7efa4b120","unresolved":false,"context_lines":[{"line_number":48,"context_line":"       in setting image status, glance may set another location on that"},{"line_number":49,"context_line":"       image."},{"line_number":50,"context_line":"     * In case where the status of the image is ``queued`` and has just"},{"line_number":51,"context_line":"       been moved to ``saving`` status, due to lack of atomiticity"},{"line_number":52,"context_line":"       in setting image status, glance may set another location on that"},{"line_number":53,"context_line":"       image."},{"line_number":54,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa7ab95a_3caef1e7","line":51,"range":{"start_line":51,"start_character":55,"end_line":51,"end_character":66},"in_reply_to":"fa7ab95a_aaa0faf4","updated":"2016-08-31 02:40:30.000000000","message":"Done","commit_id":"989e5405c2ed7d0015e8a476faecc86cff47070e"}],"glance/api/v2/images.py":[{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"3295259066d34c1007369a121c4fa4af6bd47673","unresolved":false,"context_lines":[{"line_number":292,"context_line":"                    \"invisible.\")"},{"line_number":293,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003dmsg)"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        if image.status not in (\u0027active\u0027, \u0027queued\u0027):"},{"line_number":296,"context_line":"            msg \u003d _(\"It\u0027s not allowed to add locations if image status is \""},{"line_number":297,"context_line":"                    \"%s.\") % image.status"},{"line_number":298,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_69d709ee","line":295,"range":{"start_line":295,"start_character":39,"end_line":295,"end_character":41},"updated":"2016-06-02 09:36:18.000000000","message":"Could there be a race condition here? Eg if another in-flight request means the status is just about to change to saving?","commit_id":"9509725339e344f32a0aeb4880b6a1d043d7cb0b"},{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"e58e9e5860b6684a03060edb1a9bf5474f25f4ff","unresolved":false,"context_lines":[{"line_number":292,"context_line":"                    \"invisible.\")"},{"line_number":293,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003dmsg)"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        if image.status not in (\u0027active\u0027, \u0027queued\u0027):"},{"line_number":296,"context_line":"            msg \u003d _(\"It\u0027s not allowed to add locations if image status is \""},{"line_number":297,"context_line":"                    \"%s.\") % image.status"},{"line_number":298,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_af37a34b","line":295,"range":{"start_line":295,"start_character":39,"end_line":295,"end_character":41},"in_reply_to":"7aa08908_4216c9f1","updated":"2016-06-13 09:58:51.000000000","message":"Right, but the commit message for this patch says that bug 1587985 \"is prevented\". As far as I can tell that\u0027s not the case (right?). We\u0027ve reduced the likelyhood of the race, but haven\u0027t \"prevented\" it. Strictly speaking, the patch doesn\u0027t match its description.","commit_id":"9509725339e344f32a0aeb4880b6a1d043d7cb0b"},{"author":{"_account_id":7575,"name":"Sabari","email":"smurugesan@vmware.com","username":"sabari"},"change_message_id":"0a4c0edb3739dae5bfddac9b2d6a2193ad36fb0f","unresolved":false,"context_lines":[{"line_number":292,"context_line":"                    \"invisible.\")"},{"line_number":293,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003dmsg)"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        if image.status not in (\u0027active\u0027, \u0027queued\u0027):"},{"line_number":296,"context_line":"            msg \u003d _(\"It\u0027s not allowed to add locations if image status is \""},{"line_number":297,"context_line":"                    \"%s.\") % image.status"},{"line_number":298,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_4216c9f1","line":295,"range":{"start_line":295,"start_character":39,"end_line":295,"end_character":41},"in_reply_to":"9abb7d3a_69d709ee","updated":"2016-06-08 00:32:24.000000000","message":"Unfortunately, as you may already know [1], our image updates are susceptible to such race conditions. \n\n[1] - https://bugs.launchpad.net/glance/+bug/1371728","commit_id":"9509725339e344f32a0aeb4880b6a1d043d7cb0b"}],"glance/tests/unit/v2/test_images_resource.py":[{"author":{"_account_id":22448,"name":"Alexander Bashmakov","email":"abashmak@yahoo.com","username":"abashmak"},"change_message_id":"6420e09c86d247fee7a076145dd9a73a59e0e2de","unresolved":false,"context_lines":[{"line_number":1578,"context_line":"                        name\u003d\u00271\u0027,"},{"line_number":1579,"context_line":"                        disk_format\u003d\u0027raw\u0027,"},{"line_number":1580,"context_line":"                        container_format\u003d\u0027bare\u0027,"},{"line_number":1581,"context_line":"                        status\u003d\u0027saving\u0027),"},{"line_number":1582,"context_line":"        ]"},{"line_number":1583,"context_line":"        self.db.image_create(None, self.images[0])"},{"line_number":1584,"context_line":"        new_location \u003d {\u0027url\u0027: \u0027%s/fake_location\u0027 % BASE_URI, \u0027metadata\u0027: {}}"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa7ab95a_f7cf5826","line":1581,"range":{"start_line":1581,"start_character":24,"end_line":1581,"end_character":39},"updated":"2016-08-30 18:21:08.000000000","message":"Should we test other disallowed statuses here as well?","commit_id":"989e5405c2ed7d0015e8a476faecc86cff47070e"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"f3489613094d6833e928ab6bef2580a7efa4b120","unresolved":false,"context_lines":[{"line_number":1578,"context_line":"                        name\u003d\u00271\u0027,"},{"line_number":1579,"context_line":"                        disk_format\u003d\u0027raw\u0027,"},{"line_number":1580,"context_line":"                        container_format\u003d\u0027bare\u0027,"},{"line_number":1581,"context_line":"                        status\u003d\u0027saving\u0027),"},{"line_number":1582,"context_line":"        ]"},{"line_number":1583,"context_line":"        self.db.image_create(None, self.images[0])"},{"line_number":1584,"context_line":"        new_location \u003d {\u0027url\u0027: \u0027%s/fake_location\u0027 % BASE_URI, \u0027metadata\u0027: {}}"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa7ab95a_bc1041ad","line":1581,"range":{"start_line":1581,"start_character":24,"end_line":1581,"end_character":39},"in_reply_to":"fa7ab95a_f7cf5826","updated":"2016-08-31 02:40:30.000000000","message":"Good point, lemme add those.","commit_id":"989e5405c2ed7d0015e8a476faecc86cff47070e"}]}
