)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"a68adb43dd4170d8a4922305393e3652a726e05d","unresolved":false,"context_lines":[{"line_number":3,"context_line":"AuthorDate: 2016-09-07 17:29:41 -0400"},{"line_number":4,"context_line":"Commit:     Dharini Chandrasekar \u003cdharini.chandrasekar@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-09-09 16:53:25 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Location updates (replace and remove) status checks"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adding conditions to ensure that location updates (remove and replace)"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9a89bdaa_3bef5288","line":6,"updated":"2016-09-13 17:20:36.000000000","message":"Is there a related bug or spec?\nMaybe the same spec that the review Nikhil linked implements? https://review.openstack.org/#/c/324780/","commit_id":"34c35a70fb0f057291e481e259e407d351ee48fa"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"aa34a3ad1632c8fb07e6e018a67640a181f4c9dd","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Location updates (replace and remove) status checks"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adding conditions to ensure that location updates (remove and replace)"},{"line_number":10,"context_line":"for images in Glance is not permitted for any other state except"},{"line_number":11,"context_line":"``active`` or ``queued`` thereby ensuring data consistency."},{"line_number":12,"context_line":"This patch also adds test cases for image location updates when an image"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9a89bdaa_6ccfb4b3","line":9,"updated":"2016-09-09 17:15:52.000000000","message":"sorry to put this on you but the CM needs to be quite similar to https://review.openstack.org/#/c/324012/ :)\n\nThere are race conditions here and the behavior is changing for different states as well.\n\nLemme know if you need help.","commit_id":"34c35a70fb0f057291e481e259e407d351ee48fa"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"faa23d75afff4fd33ae775833c88d321f52d7b0a","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Co-Authored-By: Nikhil Komawar \u003cnik.komawar@gmail.com\u003e"},{"line_number":16,"context_line":"Co-Authored-By: Dharini Chandrasekar \u003cdharini.chandrasekar@mintel.com\u003e"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: Ic24cf8234599a32add1cb9f294f902e497d885e0"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9a89bdaa_ece66415","line":17,"updated":"2016-09-09 17:19:45.000000000","message":"also please add the respective impact flags as in the review mentioned above","commit_id":"34c35a70fb0f057291e481e259e407d351ee48fa"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"535ab4322cab8ef74b0463cd1f2a341d7122e5d1","unresolved":false,"context_lines":[{"line_number":97,"context_line":"DocImpact"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"Credits:"},{"line_number":100,"context_line":"This commit message contains text and information from the commit"},{"line_number":101,"context_line":"message for: https://review.openstack.org/#/c/324012/"},{"line_number":102,"context_line":"authored by Mike Fedosin \u003cmfedosin@mirantis.com\u003e."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"Co-Authored-By: Nikhil Komawar \u003cnik.komawar@gmail.com\u003e"},{"line_number":105,"context_line":"Co-Authored-By: Dharini Chandrasekar \u003cdharini.chandrasekar@intel.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7a8ec9b2_e56225ad","line":102,"range":{"start_line":100,"start_character":0,"end_line":102,"end_character":48},"updated":"2016-09-13 20:12:28.000000000","message":"The final commit message there was written by me and a few tests, hence I\u0027m co-author on that patch.","commit_id":"a0c2944c77c3700f276ed74b309027503c0dbc47"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"535ab4322cab8ef74b0463cd1f2a341d7122e5d1","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"Co-Authored-By: Nikhil Komawar \u003cnik.komawar@gmail.com\u003e"},{"line_number":105,"context_line":"Co-Authored-By: Dharini Chandrasekar \u003cdharini.chandrasekar@intel.com\u003e"},{"line_number":106,"context_line":"Co-Authored-By: Mike Fedosin \u003cmfedosin@mirantis.com\u003e"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Lite-Spec: https://review.openstack.org/#/c/368192/"},{"line_number":109,"context_line":"Closes-Bug: 1622016"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7a8ec9b2_856c019e","line":106,"range":{"start_line":106,"start_character":0,"end_line":106,"end_character":52},"updated":"2016-09-13 20:12:28.000000000","message":"Like mentioned above, Mike isn\u0027t associated with this one.","commit_id":"a0c2944c77c3700f276ed74b309027503c0dbc47"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"4bbf84034669e39e2f9e7d6a666edec7e9d155e1","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This need is to:"},{"line_number":13,"context_line":" * Prevent the replacement of image locations of images that are not"},{"line_number":14,"context_line":"   ``active`` or ``queued`` by returning a Conflict Error"},{"line_number":15,"context_line":"    (409 response code)."},{"line_number":16,"context_line":" * Prevent removal of image locations of images that are not ``active``"},{"line_number":17,"context_line":"   by returning a Conflict Error (409 response code)."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7a8ec9b2_c5abf7d4","line":14,"range":{"start_line":14,"start_character":14,"end_line":14,"end_character":27},"updated":"2016-09-15 14:39:43.000000000","message":"I think your current patch doesn\u0027t change this.","commit_id":"355b826ff355d0bad776c6ba35a691ba4c282c17"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"153fd1da66f98a5998b5e68ac88a968c76f997e9","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This need is to:"},{"line_number":13,"context_line":" * Prevent the replacement of image locations of images that are not"},{"line_number":14,"context_line":"   ``active`` or ``queued`` by returning a Conflict Error"},{"line_number":15,"context_line":"    (409 response code)."},{"line_number":16,"context_line":" * Prevent removal of image locations of images that are not ``active``"},{"line_number":17,"context_line":"   by returning a Conflict Error (409 response code)."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7a8ec9b2_e51b9319","line":14,"range":{"start_line":14,"start_character":14,"end_line":14,"end_character":27},"in_reply_to":"7a8ec9b2_c5abf7d4","updated":"2016-09-15 14:45:42.000000000","message":"Yeah.. Will edit it Nikhil. Thanks. :)","commit_id":"355b826ff355d0bad776c6ba35a691ba4c282c17"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"cd179ab40b19045ae34820d40401af9853970911","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This need is to:"},{"line_number":13,"context_line":" * Prevent the replacement of image locations of images that are not"},{"line_number":14,"context_line":"   ``active`` or ``queued`` by returning a Conflict Error"},{"line_number":15,"context_line":"    (409 response code)."},{"line_number":16,"context_line":" * Prevent removal of image locations of images that are not ``active``"},{"line_number":17,"context_line":"   by returning a Conflict Error (409 response code)."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7a8ec9b2_76d7224b","line":14,"range":{"start_line":14,"start_character":14,"end_line":14,"end_character":27},"in_reply_to":"7a8ec9b2_e51b9319","updated":"2016-09-16 00:03:30.000000000","message":"Nikhil, currently we are allowing replacing of image locations for \"active\" and \"queued\" images.","commit_id":"355b826ff355d0bad776c6ba35a691ba4c282c17"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"4bbf84034669e39e2f9e7d6a666edec7e9d155e1","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    allowed to replace the image location to maintain backward"},{"line_number":30,"context_line":"    compatibility and also because replacing could mean replacing an"},{"line_number":31,"context_line":"    empty location by a non-empty image location."},{"line_number":32,"context_line":"*  For images in ``deactivated`` state, it is essential that image"},{"line_number":33,"context_line":"    locations are not updated as it does not abide with the purpose of"},{"line_number":34,"context_line":"    the image state being set to ``deactivated`` and may cause security"},{"line_number":35,"context_line":"    concerns."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7a8ec9b2_45860766","line":32,"range":{"start_line":32,"start_character":3,"end_line":32,"end_character":6},"updated":"2016-09-15 14:39:43.000000000","message":"indentation error","commit_id":"355b826ff355d0bad776c6ba35a691ba4c282c17"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"8ed3ed3841297bc31de99ef9ba313ca2a3f81b49","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    allowed to replace the image location to maintain backward"},{"line_number":30,"context_line":"    compatibility and also because replacing could mean replacing an"},{"line_number":31,"context_line":"    empty location by a non-empty image location."},{"line_number":32,"context_line":"*  For images in ``deactivated`` state, it is essential that image"},{"line_number":33,"context_line":"    locations are not updated as it does not abide with the purpose of"},{"line_number":34,"context_line":"    the image state being set to ``deactivated`` and may cause security"},{"line_number":35,"context_line":"    concerns."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7a8ec9b2_36ff5aab","line":32,"range":{"start_line":32,"start_character":3,"end_line":32,"end_character":6},"in_reply_to":"7a8ec9b2_45860766","updated":"2016-09-16 00:05:14.000000000","message":"Done","commit_id":"355b826ff355d0bad776c6ba35a691ba4c282c17"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"8ed3ed3841297bc31de99ef9ba313ca2a3f81b49","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    allowed to replace the image location to maintain backward"},{"line_number":30,"context_line":"    compatibility and also because replacing could mean replacing an"},{"line_number":31,"context_line":"    empty location by a non-empty image location."},{"line_number":32,"context_line":"*  For images in ``deactivated`` state, it is essential that image"},{"line_number":33,"context_line":"    locations are not updated as it does not abide with the purpose of"},{"line_number":34,"context_line":"    the image state being set to ``deactivated`` and may cause security"},{"line_number":35,"context_line":"    concerns."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7a8ec9b2_562ea643","line":32,"range":{"start_line":32,"start_character":3,"end_line":32,"end_character":6},"in_reply_to":"7a8ec9b2_45860766","updated":"2016-09-16 00:05:14.000000000","message":"Done","commit_id":"355b826ff355d0bad776c6ba35a691ba4c282c17"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"f5a38f4e0e4678346595c5d8a6a1c4ce597f1a0d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Dharini Chandrasekar \u003cdharini.chandrasekar@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-09-16 00:05:50 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Location updates (replace and remove) status checks"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently image location updates (removing, replacing) are permitted for"},{"line_number":10,"context_line":"images even if their state is not ``active``."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3a71b18c_bd10dca9","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":51},"updated":"2016-12-02 21:58:27.000000000","message":"This isn\u0027t very clear.\nCan we re-word this to something like \"Restrict location updates to active and queued images\"?","commit_id":"2c2d5733a4f58509a3a222c4f077949f69394dac"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"e435b67697b5df50ca6c0695089de5d3cde70919","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Dharini Chandrasekar \u003cdharini.chandrasekar@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-09-16 00:05:50 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Location updates (replace and remove) status checks"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently image location updates (removing, replacing) are permitted for"},{"line_number":10,"context_line":"images even if their state is not ``active``."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3a71b18c_1de710b1","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":51},"in_reply_to":"3a71b18c_bd10dca9","updated":"2016-12-03 01:03:20.000000000","message":"Done","commit_id":"2c2d5733a4f58509a3a222c4f077949f69394dac"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"97d334b9b93832d64d8e584299c0faaf4e2959b8","unresolved":false,"context_lines":[{"line_number":16,"context_line":" * Prevent removal of image locations of images that are not ``active``"},{"line_number":17,"context_line":"   by returning a Conflict Error (409 response code)."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Changing of image locations when the image state is not ``active`` can"},{"line_number":20,"context_line":"result in bad experiences for the users."},{"line_number":21,"context_line":" *  If one tries to change or remove the location for an image while it"},{"line_number":22,"context_line":"    is in ``saving`` state, Glance would be trying to write data to a"},{"line_number":23,"context_line":"    previously saved location while the user updates the custom"},{"line_number":24,"context_line":"    location. This results in a race condition."},{"line_number":25,"context_line":" *  For images that are in ``queued`` state and no image data has been"},{"line_number":26,"context_line":"    uploaded yet, there is no need for an image location to be"},{"line_number":27,"context_line":"    removed and permitting users to remove the image"},{"line_number":28,"context_line":"    location can result in a bad experience. However users can be"},{"line_number":29,"context_line":"    allowed to replace the image location to maintain backward"},{"line_number":30,"context_line":"    compatibility and also because replacing could mean replacing an"},{"line_number":31,"context_line":"    empty location by a non-empty image location."},{"line_number":32,"context_line":"*   For images in ``deactivated`` state, it is essential that image"},{"line_number":33,"context_line":"    locations are not updated as it does not abide with the purpose of"},{"line_number":34,"context_line":"    the image state being set to ``deactivated`` and may cause security"},{"line_number":35,"context_line":"    concerns."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"This commit introduces the following change in behavior:"},{"line_number":38,"context_line":"  * If an image is in ``active`` state, removing/replacing the custom"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"fa6399be_d391f99b","line":35,"range":{"start_line":19,"start_character":0,"end_line":35,"end_character":13},"updated":"2016-10-19 21:35:54.000000000","message":"I think this entire section should be moved over to the spec lite to explain why this is problem.","commit_id":"2c2d5733a4f58509a3a222c4f077949f69394dac"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"c2c00861bcebf0274d200802c9d68ca79241f982","unresolved":false,"context_lines":[{"line_number":16,"context_line":" * Prevent removal of image locations of images that are not ``active``"},{"line_number":17,"context_line":"   by returning a Conflict Error (409 response code)."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Changing of image locations when the image state is not ``active`` can"},{"line_number":20,"context_line":"result in bad experiences for the users."},{"line_number":21,"context_line":" *  If one tries to change or remove the location for an image while it"},{"line_number":22,"context_line":"    is in ``saving`` state, Glance would be trying to write data to a"},{"line_number":23,"context_line":"    previously saved location while the user updates the custom"},{"line_number":24,"context_line":"    location. This results in a race condition."},{"line_number":25,"context_line":" *  For images that are in ``queued`` state and no image data has been"},{"line_number":26,"context_line":"    uploaded yet, there is no need for an image location to be"},{"line_number":27,"context_line":"    removed and permitting users to remove the image"},{"line_number":28,"context_line":"    location can result in a bad experience. However users can be"},{"line_number":29,"context_line":"    allowed to replace the image location to maintain backward"},{"line_number":30,"context_line":"    compatibility and also because replacing could mean replacing an"},{"line_number":31,"context_line":"    empty location by a non-empty image location."},{"line_number":32,"context_line":"*   For images in ``deactivated`` state, it is essential that image"},{"line_number":33,"context_line":"    locations are not updated as it does not abide with the purpose of"},{"line_number":34,"context_line":"    the image state being set to ``deactivated`` and may cause security"},{"line_number":35,"context_line":"    concerns."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"This commit introduces the following change in behavior:"},{"line_number":38,"context_line":"  * If an image is in ``active`` state, removing/replacing the custom"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"fa6399be_22cd5d85","line":35,"range":{"start_line":19,"start_character":0,"end_line":35,"end_character":13},"in_reply_to":"fa6399be_ac72627a","updated":"2016-10-20 16:52:51.000000000","message":"I think this section looks okay here. We kept a similar one in the previous (location create) review (co-author Mike).\n\n+1 to lite spec content though","commit_id":"2c2d5733a4f58509a3a222c4f077949f69394dac"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"f02f19995992d3cf9c91de033c46c6117a49d66f","unresolved":false,"context_lines":[{"line_number":16,"context_line":" * Prevent removal of image locations of images that are not ``active``"},{"line_number":17,"context_line":"   by returning a Conflict Error (409 response code)."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Changing of image locations when the image state is not ``active`` can"},{"line_number":20,"context_line":"result in bad experiences for the users."},{"line_number":21,"context_line":" *  If one tries to change or remove the location for an image while it"},{"line_number":22,"context_line":"    is in ``saving`` state, Glance would be trying to write data to a"},{"line_number":23,"context_line":"    previously saved location while the user updates the custom"},{"line_number":24,"context_line":"    location. This results in a race condition."},{"line_number":25,"context_line":" *  For images that are in ``queued`` state and no image data has been"},{"line_number":26,"context_line":"    uploaded yet, there is no need for an image location to be"},{"line_number":27,"context_line":"    removed and permitting users to remove the image"},{"line_number":28,"context_line":"    location can result in a bad experience. However users can be"},{"line_number":29,"context_line":"    allowed to replace the image location to maintain backward"},{"line_number":30,"context_line":"    compatibility and also because replacing could mean replacing an"},{"line_number":31,"context_line":"    empty location by a non-empty image location."},{"line_number":32,"context_line":"*   For images in ``deactivated`` state, it is essential that image"},{"line_number":33,"context_line":"    locations are not updated as it does not abide with the purpose of"},{"line_number":34,"context_line":"    the image state being set to ``deactivated`` and may cause security"},{"line_number":35,"context_line":"    concerns."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"This commit introduces the following change in behavior:"},{"line_number":38,"context_line":"  * If an image is in ``active`` state, removing/replacing the custom"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"fa6399be_ac72627a","line":35,"range":{"start_line":19,"start_character":0,"end_line":35,"end_character":13},"in_reply_to":"fa6399be_d391f99b","updated":"2016-10-20 00:24:59.000000000","message":"Brian, can we retain this here and also add it to the lite-spec?","commit_id":"2c2d5733a4f58509a3a222c4f077949f69394dac"}],"glance/api/v2/images.py":[{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"aa34a3ad1632c8fb07e6e018a67640a181f4c9dd","unresolved":false,"context_lines":[{"line_number":274,"context_line":"                    \"invisible.\")"},{"line_number":275,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003dmsg)"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"        if image.status not in (\u0027active\u0027, \u0027queued\u0027):"},{"line_number":278,"context_line":"            msg \u003d _(\"It\u0027s not allowed to update locations if image status is \""},{"line_number":279,"context_line":"                    \"%s.\") % image.status"},{"line_number":280,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a89bdaa_b93adce5","line":277,"range":{"start_line":277,"start_character":42,"end_line":277,"end_character":50},"updated":"2016-09-09 17:15:52.000000000","message":"so ...\n\nqueued status needs to be removed from the list here.\n\nAn image in queued status shouldn\u0027t have any location associated with it so any update is not possible. (see PS1)","commit_id":"34c35a70fb0f057291e481e259e407d351ee48fa"},{"author":{"_account_id":15054,"name":"wangxiyuan","email":"wangxiyuan1007@gmail.com","username":"wangxiyuan"},"change_message_id":"ed2e004a6d1bf2d8047356d27f1ae4bb901088c4","unresolved":false,"context_lines":[{"line_number":274,"context_line":"                    \"invisible.\")"},{"line_number":275,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003dmsg)"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"        if image.status not in (\u0027active\u0027, \u0027queued\u0027):"},{"line_number":278,"context_line":"            msg \u003d _(\"It\u0027s not allowed to update locations if image status is \""},{"line_number":279,"context_line":"                    \"%s.\") % image.status"},{"line_number":280,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a89bdaa_c55e6ae8","line":277,"range":{"start_line":277,"start_character":42,"end_line":277,"end_character":50},"in_reply_to":"9a89bdaa_167fb8ab","updated":"2016-09-13 07:14:34.000000000","message":"I think it depends on what does the \"replace\" mean here.\nReplace action could make an image\u0027s location from empty to new location. If we allow this kind of action, then the \"queue\" status should be here. Otherwise if the \"replace\" action only allow an image\u0027s location from non-empty to non-empty, then the \"queued\" status should not be here.\n\npreviously in Glance, we allow to replace an empty location to non-empty. If we do like Nikhil say above, the \"replace\"\u0027s meaning will be changed. Agree with Nikhil that it\u0027s better to bring this up at the Glance meeting.\n\nAnyhow, this patch need a APIimpact tag IMO and I suggest we should not merge this in Newton cycle.","commit_id":"34c35a70fb0f057291e481e259e407d351ee48fa"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"19b71f055eacb1da64f08ce2fb6f763935fe5cc4","unresolved":false,"context_lines":[{"line_number":274,"context_line":"                    \"invisible.\")"},{"line_number":275,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003dmsg)"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"        if image.status not in (\u0027active\u0027, \u0027queued\u0027):"},{"line_number":278,"context_line":"            msg \u003d _(\"It\u0027s not allowed to update locations if image status is \""},{"line_number":279,"context_line":"                    \"%s.\") % image.status"},{"line_number":280,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a89bdaa_167fb8ab","line":277,"range":{"start_line":277,"start_character":42,"end_line":277,"end_character":50},"in_reply_to":"9a89bdaa_b93adce5","updated":"2016-09-12 22:04:00.000000000","message":"Nikhil, since an image when created, first goes to ``queued`` state, the functional tests depend on allowing location updates on a queued image. \nhttps://github.com/openstack/glance/blob/master/glance/tests/functional/v2/test_images.py#L2829-L2863.\n\nAlso, there are other functional test cases like [1] that update an image location of a queued image to test another functionality.\n\nIf we are to not allow location updates at all for the queued images, we would have to change a lot of functional test cases. \n\n[1] https://github.com/openstack/glance/blob/master/glance/tests/functional/v2/test_images.py#L3184\n\nWanted to make sure this is what we want and was hoping to get some advise here on how to proceed.","commit_id":"34c35a70fb0f057291e481e259e407d351ee48fa"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"a68adb43dd4170d8a4922305393e3652a726e05d","unresolved":false,"context_lines":[{"line_number":274,"context_line":"                    \"invisible.\")"},{"line_number":275,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003dmsg)"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"        if image.status not in (\u0027active\u0027, \u0027queued\u0027):"},{"line_number":278,"context_line":"            msg \u003d _(\"It\u0027s not allowed to update locations if image status is \""},{"line_number":279,"context_line":"                    \"%s.\") % image.status"},{"line_number":280,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a8ec9b2_def26506","line":277,"range":{"start_line":277,"start_character":42,"end_line":277,"end_character":50},"in_reply_to":"9a89bdaa_c55e6ae8","updated":"2016-09-13 17:20:36.000000000","message":"I wonder if we\u0027d break backward compatibility if we get rid of queued here. While I agree with Nikhil that it doesn\u0027t make sense to replace image locations when they don\u0027t exist in the first place. But, to keep backward compatibility I\u0027m leaning towards retaining \"queued\" here.\n\n@Dharini,\nThe functional tests themselves are not an issue. If the intention behind using \"replace location\" is to put the image into \"active\" status, we can instead use the \"add location\" operation. That way, functional tests should be fine. At least the ones you linked. But, if the users were relying on replacing locations on a queued image to make it active, it\u0027s a much bigger concern. That\u0027s why I say we should consider backwards compatibility here.\n\nI agree with wangxiyuan that it is probably too late in the cycle to merge this change. If we do want to get it in, then we should allow replacing location on queued status for now. Then, fix it in Ocata if possible and backport the change to Newton.","commit_id":"34c35a70fb0f057291e481e259e407d351ee48fa"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"aa34a3ad1632c8fb07e6e018a67640a181f4c9dd","unresolved":false,"context_lines":[{"line_number":321,"context_line":"                    \"invisible.\")"},{"line_number":322,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003dmsg)"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"        if image.status not in (\u0027active\u0027, \u0027queued\u0027):"},{"line_number":325,"context_line":"            msg \u003d _(\"It\u0027s not allowed to remove locations if image status is \""},{"line_number":326,"context_line":"                    \"%s.\") % image.status"},{"line_number":327,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a89bdaa_392faca2","line":324,"range":{"start_line":324,"start_character":42,"end_line":324,"end_character":50},"updated":"2016-09-09 17:15:52.000000000","message":"ditto","commit_id":"34c35a70fb0f057291e481e259e407d351ee48fa"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"a68adb43dd4170d8a4922305393e3652a726e05d","unresolved":false,"context_lines":[{"line_number":321,"context_line":"                    \"invisible.\")"},{"line_number":322,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003dmsg)"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"        if image.status not in (\u0027active\u0027, \u0027queued\u0027):"},{"line_number":325,"context_line":"            msg \u003d _(\"It\u0027s not allowed to remove locations if image status is \""},{"line_number":326,"context_line":"                    \"%s.\") % image.status"},{"line_number":327,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a8ec9b2_1eddad70","line":324,"range":{"start_line":324,"start_character":42,"end_line":324,"end_character":50},"in_reply_to":"9a89bdaa_392faca2","updated":"2016-09-13 17:20:36.000000000","message":"Getting rid of queued here should be fine though.","commit_id":"34c35a70fb0f057291e481e259e407d351ee48fa"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"f5a38f4e0e4678346595c5d8a6a1c4ce597f1a0d","unresolved":false,"context_lines":[{"line_number":275,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003dmsg)"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"        if image.status not in (\u0027active\u0027, \u0027queued\u0027):"},{"line_number":278,"context_line":"            msg \u003d _(\"It\u0027s not allowed to update locations if image status is \""},{"line_number":279,"context_line":"                    \"%s.\") % image.status"},{"line_number":280,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003dmsg)"},{"line_number":281,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3a71b18c_ff99766f","line":278,"range":{"start_line":278,"start_character":41,"end_line":278,"end_character":47},"updated":"2016-12-02 21:58:27.000000000","message":"replace?","commit_id":"2c2d5733a4f58509a3a222c4f077949f69394dac"}],"glance/tests/unit/v2/test_images_resource.py":[{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"aa34a3ad1632c8fb07e6e018a67640a181f4c9dd","unresolved":false,"context_lines":[{"line_number":1664,"context_line":"    def test_location_updates_not_permitted_remove_saving(self):"},{"line_number":1665,"context_line":"        self._test_update_locations_status(\u0027saving\u0027, \u0027remove\u0027)"},{"line_number":1666,"context_line":""},{"line_number":1667,"context_line":"    def test_location_updates_not_permitted_remove_deactivated(self):"},{"line_number":1668,"context_line":"        self._test_update_locations_status(\u0027deactivated\u0027, \u0027remove\u0027)"},{"line_number":1669,"context_line":""},{"line_number":1670,"context_line":"    def test_location_updates_not_permitted_remove_deleted(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a89bdaa_0c10e84d","line":1667,"range":{"start_line":1667,"start_character":22,"end_line":1667,"end_character":50},"updated":"2016-09-09 17:15:52.000000000","message":"you don\u0027t need to mention updates and remove in the same name\n\njust have test_location_remove_not...\n\nfor all the test cases here","commit_id":"34c35a70fb0f057291e481e259e407d351ee48fa"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"f5a38f4e0e4678346595c5d8a6a1c4ce597f1a0d","unresolved":false,"context_lines":[{"line_number":1586,"context_line":"        request \u003d unit_test_utils.get_fake_request()"},{"line_number":1587,"context_line":"        changes \u003d [{\u0027op\u0027: \u0027replace\u0027, \u0027path\u0027: [\u0027locations\u0027],"},{"line_number":1588,"context_line":"                    \u0027value\u0027: [new_location]}]"},{"line_number":1589,"context_line":"        output \u003d self.controller.update(request, UUID1, changes)"},{"line_number":1590,"context_line":"        self.assertEqual({\u0027new\u0027: 1}, output.locations[0][\u0027metadata\u0027])"},{"line_number":1591,"context_line":""},{"line_number":1592,"context_line":"    def test_add_location_possible_on_queued(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a71b18c_1d78f029","line":1589,"range":{"start_line":1589,"start_character":49,"end_line":1589,"end_character":54},"updated":"2016-12-02 21:58:27.000000000","message":"This should be \u00271\u0027, which is the ID of the image you\u0027ve created for this test.\n\nThis test passes now because UUID1 is an active image and replacing images on active images is valid.","commit_id":"2c2d5733a4f58509a3a222c4f077949f69394dac"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"e435b67697b5df50ca6c0695089de5d3cde70919","unresolved":false,"context_lines":[{"line_number":1586,"context_line":"        request \u003d unit_test_utils.get_fake_request()"},{"line_number":1587,"context_line":"        changes \u003d [{\u0027op\u0027: \u0027replace\u0027, \u0027path\u0027: [\u0027locations\u0027],"},{"line_number":1588,"context_line":"                    \u0027value\u0027: [new_location]}]"},{"line_number":1589,"context_line":"        output \u003d self.controller.update(request, UUID1, changes)"},{"line_number":1590,"context_line":"        self.assertEqual({\u0027new\u0027: 1}, output.locations[0][\u0027metadata\u0027])"},{"line_number":1591,"context_line":""},{"line_number":1592,"context_line":"    def test_add_location_possible_on_queued(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a71b18c_9dd240d1","line":1589,"range":{"start_line":1589,"start_character":49,"end_line":1589,"end_character":54},"in_reply_to":"3a71b18c_1d78f029","updated":"2016-12-03 01:03:20.000000000","message":"Done","commit_id":"2c2d5733a4f58509a3a222c4f077949f69394dac"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"f5a38f4e0e4678346595c5d8a6a1c4ce597f1a0d","unresolved":false,"context_lines":[{"line_number":1602,"context_line":"        new_location \u003d {\u0027url\u0027: \u0027%s/fake_location_1\u0027 % BASE_URI, \u0027metadata\u0027: {}}"},{"line_number":1603,"context_line":"        changes \u003d [{\u0027op\u0027: \u0027add\u0027, \u0027path\u0027: [\u0027locations\u0027, \u0027-\u0027],"},{"line_number":1604,"context_line":"                    \u0027value\u0027: new_location}]"},{"line_number":1605,"context_line":"        output \u003d self.controller.update(request, UUID1, changes)"},{"line_number":1606,"context_line":"        self.assertEqual(UUID1, output.image_id)"},{"line_number":1607,"context_line":"        self.assertEqual(2, len(output.locations))"},{"line_number":1608,"context_line":"        self.assertEqual(new_location, output.locations[1])"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a71b18c_9d9a4062","line":1605,"range":{"start_line":1605,"start_character":49,"end_line":1605,"end_character":54},"updated":"2016-12-02 21:58:27.000000000","message":"same","commit_id":"2c2d5733a4f58509a3a222c4f077949f69394dac"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"e435b67697b5df50ca6c0695089de5d3cde70919","unresolved":false,"context_lines":[{"line_number":1602,"context_line":"        new_location \u003d {\u0027url\u0027: \u0027%s/fake_location_1\u0027 % BASE_URI, \u0027metadata\u0027: {}}"},{"line_number":1603,"context_line":"        changes \u003d [{\u0027op\u0027: \u0027add\u0027, \u0027path\u0027: [\u0027locations\u0027, \u0027-\u0027],"},{"line_number":1604,"context_line":"                    \u0027value\u0027: new_location}]"},{"line_number":1605,"context_line":"        output \u003d self.controller.update(request, UUID1, changes)"},{"line_number":1606,"context_line":"        self.assertEqual(UUID1, output.image_id)"},{"line_number":1607,"context_line":"        self.assertEqual(2, len(output.locations))"},{"line_number":1608,"context_line":"        self.assertEqual(new_location, output.locations[1])"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a71b18c_bdd53cba","line":1605,"range":{"start_line":1605,"start_character":49,"end_line":1605,"end_character":54},"in_reply_to":"3a71b18c_9d9a4062","updated":"2016-12-03 01:03:20.000000000","message":"Done","commit_id":"2c2d5733a4f58509a3a222c4f077949f69394dac"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"94e5dda67490b7c987fa5b98c1b5c18c5f6ea448","unresolved":false,"context_lines":[{"line_number":1577,"context_line":"            _db_fixture(\u00271\u0027, owner\u003dTENANT1, checksum\u003dCHKSUM,"},{"line_number":1578,"context_line":"                        name\u003d\u00271\u0027,"},{"line_number":1579,"context_line":"                        is_public\u003dTrue,"},{"line_number":1580,"context_line":"                        locations\u003d[{\u0027url\u0027: \u0027%s/%s\u0027 % (BASE_URI, UUID1),"},{"line_number":1581,"context_line":"                                    \u0027metadata\u0027: {}, \u0027status\u0027: \u0027active\u0027}],"},{"line_number":1582,"context_line":"                        disk_format\u003d\u0027raw\u0027,"},{"line_number":1583,"context_line":"                        container_format\u003d\u0027bare\u0027,"},{"line_number":1584,"context_line":"                        status\u003d\u0027queued\u0027),"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a71b18c_863ca8e3","line":1581,"range":{"start_line":1580,"start_character":0,"end_line":1581,"end_character":73},"updated":"2016-12-03 14:46:17.000000000","message":"Here, we are trying to create a queued image, which by definition can\u0027t have an active location. \n\nWe don\u0027t need an existing active location to test \"replace\". It could be empty locations or non-active locations.","commit_id":"2b9dd21f47971fcb39ece60625429488f0f5b58a"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"3ab3e220fa5d343dee512664391f85f3597269d4","unresolved":false,"context_lines":[{"line_number":1577,"context_line":"            _db_fixture(\u00271\u0027, owner\u003dTENANT1, checksum\u003dCHKSUM,"},{"line_number":1578,"context_line":"                        name\u003d\u00271\u0027,"},{"line_number":1579,"context_line":"                        is_public\u003dTrue,"},{"line_number":1580,"context_line":"                        locations\u003d[{\u0027url\u0027: \u0027%s/%s\u0027 % (BASE_URI, UUID1),"},{"line_number":1581,"context_line":"                                    \u0027metadata\u0027: {}, \u0027status\u0027: \u0027active\u0027}],"},{"line_number":1582,"context_line":"                        disk_format\u003d\u0027raw\u0027,"},{"line_number":1583,"context_line":"                        container_format\u003d\u0027bare\u0027,"},{"line_number":1584,"context_line":"                        status\u003d\u0027queued\u0027),"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a71b18c_2cf9f54d","line":1581,"range":{"start_line":1580,"start_character":0,"end_line":1581,"end_character":73},"in_reply_to":"3a71b18c_863ca8e3","updated":"2016-12-03 18:16:25.000000000","message":"Done","commit_id":"2b9dd21f47971fcb39ece60625429488f0f5b58a"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"94e5dda67490b7c987fa5b98c1b5c18c5f6ea448","unresolved":false,"context_lines":[{"line_number":1585,"context_line":"        ]"},{"line_number":1586,"context_line":"        self.db.image_create(None, self.images[0])"},{"line_number":1587,"context_line":"        request \u003d unit_test_utils.get_fake_request()"},{"line_number":1588,"context_line":"        new_location \u003d {\u0027url\u0027: \u0027%s/%s\u0027 % (BASE_URI, UUID1),"},{"line_number":1589,"context_line":"                        \u0027metadata\u0027: {}}"},{"line_number":1590,"context_line":"        changes \u003d [{\u0027op\u0027: \u0027replace\u0027, \u0027path\u0027: [\u0027locations\u0027],"},{"line_number":1591,"context_line":"                    \u0027value\u0027: [new_location]}]"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a71b18c_4619b087","line":1588,"range":{"start_line":1588,"start_character":52,"end_line":1588,"end_character":57},"updated":"2016-12-03 14:46:17.000000000","message":"Nit:\nAlthough it doesn\u0027t matter here, this should be \u00271\u0027.","commit_id":"2b9dd21f47971fcb39ece60625429488f0f5b58a"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"3ab3e220fa5d343dee512664391f85f3597269d4","unresolved":false,"context_lines":[{"line_number":1585,"context_line":"        ]"},{"line_number":1586,"context_line":"        self.db.image_create(None, self.images[0])"},{"line_number":1587,"context_line":"        request \u003d unit_test_utils.get_fake_request()"},{"line_number":1588,"context_line":"        new_location \u003d {\u0027url\u0027: \u0027%s/%s\u0027 % (BASE_URI, UUID1),"},{"line_number":1589,"context_line":"                        \u0027metadata\u0027: {}}"},{"line_number":1590,"context_line":"        changes \u003d [{\u0027op\u0027: \u0027replace\u0027, \u0027path\u0027: [\u0027locations\u0027],"},{"line_number":1591,"context_line":"                    \u0027value\u0027: [new_location]}]"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a71b18c_4c9631f1","line":1588,"range":{"start_line":1588,"start_character":52,"end_line":1588,"end_character":57},"in_reply_to":"3a71b18c_4619b087","updated":"2016-12-03 18:16:25.000000000","message":"Done","commit_id":"2b9dd21f47971fcb39ece60625429488f0f5b58a"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"94e5dda67490b7c987fa5b98c1b5c18c5f6ea448","unresolved":false,"context_lines":[{"line_number":1619,"context_line":"        self.images \u003d ["},{"line_number":1620,"context_line":"            _db_fixture(\u00271\u0027, owner\u003dTENANT1, checksum\u003dCHKSUM,"},{"line_number":1621,"context_line":"                        name\u003d\u00271\u0027,"},{"line_number":1622,"context_line":"                        is_public\u003dTrue,"},{"line_number":1623,"context_line":"                        locations\u003d[{\u0027url\u0027: \u0027%s/%s\u0027 % (BASE_URI, UUID1),"},{"line_number":1624,"context_line":"                                    \u0027metadata\u0027: {}, \u0027status\u0027: \u0027active\u0027}],"},{"line_number":1625,"context_line":"                        disk_format\u003d\u0027raw\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a71b18c_8613c865","line":1622,"range":{"start_line":1622,"start_character":24,"end_line":1622,"end_character":39},"updated":"2016-12-03 14:46:17.000000000","message":"Why is this required?","commit_id":"2b9dd21f47971fcb39ece60625429488f0f5b58a"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"3ab3e220fa5d343dee512664391f85f3597269d4","unresolved":false,"context_lines":[{"line_number":1619,"context_line":"        self.images \u003d ["},{"line_number":1620,"context_line":"            _db_fixture(\u00271\u0027, owner\u003dTENANT1, checksum\u003dCHKSUM,"},{"line_number":1621,"context_line":"                        name\u003d\u00271\u0027,"},{"line_number":1622,"context_line":"                        is_public\u003dTrue,"},{"line_number":1623,"context_line":"                        locations\u003d[{\u0027url\u0027: \u0027%s/%s\u0027 % (BASE_URI, UUID1),"},{"line_number":1624,"context_line":"                                    \u0027metadata\u0027: {}, \u0027status\u0027: \u0027active\u0027}],"},{"line_number":1625,"context_line":"                        disk_format\u003d\u0027raw\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a71b18c_6c992d1f","line":1622,"range":{"start_line":1622,"start_character":24,"end_line":1622,"end_character":39},"in_reply_to":"3a71b18c_8613c865","updated":"2016-12-03 18:16:25.000000000","message":"I do not have to give this here. Although the above two test methods need this for the location entry to show up in the db.","commit_id":"2b9dd21f47971fcb39ece60625429488f0f5b58a"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"94e5dda67490b7c987fa5b98c1b5c18c5f6ea448","unresolved":false,"context_lines":[{"line_number":1620,"context_line":"            _db_fixture(\u00271\u0027, owner\u003dTENANT1, checksum\u003dCHKSUM,"},{"line_number":1621,"context_line":"                        name\u003d\u00271\u0027,"},{"line_number":1622,"context_line":"                        is_public\u003dTrue,"},{"line_number":1623,"context_line":"                        locations\u003d[{\u0027url\u0027: \u0027%s/%s\u0027 % (BASE_URI, UUID1),"},{"line_number":1624,"context_line":"                                    \u0027metadata\u0027: {}, \u0027status\u0027: \u0027active\u0027}],"},{"line_number":1625,"context_line":"                        disk_format\u003d\u0027raw\u0027,"},{"line_number":1626,"context_line":"                        container_format\u003d\u0027bare\u0027,"},{"line_number":1627,"context_line":"                        status\u003dimage_status),"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a71b18c_2603d410","line":1624,"range":{"start_line":1623,"start_character":24,"end_line":1624,"end_character":73},"updated":"2016-12-03 14:46:17.000000000","message":"Why are we adding active locations to all images we are creating here? The reason I ask is, we are creating images in different statuses for testing and not all of them can have active locations. For ex: queued, killed \u0026 saving images can\u0027t have active locations.\n\nI think locations should be created based on the image status.","commit_id":"2b9dd21f47971fcb39ece60625429488f0f5b58a"},{"author":{"_account_id":21722,"name":"Dharini Chandrasekar","email":"dharini.chandrasekar@intel.com","username":"dharinic"},"change_message_id":"3ab3e220fa5d343dee512664391f85f3597269d4","unresolved":false,"context_lines":[{"line_number":1620,"context_line":"            _db_fixture(\u00271\u0027, owner\u003dTENANT1, checksum\u003dCHKSUM,"},{"line_number":1621,"context_line":"                        name\u003d\u00271\u0027,"},{"line_number":1622,"context_line":"                        is_public\u003dTrue,"},{"line_number":1623,"context_line":"                        locations\u003d[{\u0027url\u0027: \u0027%s/%s\u0027 % (BASE_URI, UUID1),"},{"line_number":1624,"context_line":"                                    \u0027metadata\u0027: {}, \u0027status\u0027: \u0027active\u0027}],"},{"line_number":1625,"context_line":"                        disk_format\u003d\u0027raw\u0027,"},{"line_number":1626,"context_line":"                        container_format\u003d\u0027bare\u0027,"},{"line_number":1627,"context_line":"                        status\u003dimage_status),"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a71b18c_2c9015ec","line":1624,"range":{"start_line":1623,"start_character":24,"end_line":1624,"end_character":73},"in_reply_to":"3a71b18c_2603d410","updated":"2016-12-03 18:16:25.000000000","message":"Yes, We should not have an active location in a method that is common for testing all statuses. My bad. Will omit this as we do need to have any location for the purpose of our tests here.","commit_id":"2b9dd21f47971fcb39ece60625429488f0f5b58a"}],"releasenotes/notes/restrict_location_updates-05454bb765a8c92c.yaml":[{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"b583e7a5b2097e666b56138f3582811168642759","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    conditions and security issues and hence a bad"},{"line_number":12,"context_line":"    experience for users and operators. As a result,"},{"line_number":13,"context_line":"    we have restricted image location updates in this"},{"line_number":14,"context_line":"    release.  Users will observe the following:"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"    * HTTP Response Code 409 (Conflict) will be returned"},{"line_number":17,"context_line":"      in response to an attempt to remove an image"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"3a71b18c_74461950","line":14,"range":{"start_line":14,"start_character":12,"end_line":14,"end_character":14},"updated":"2016-12-05 21:49:06.000000000","message":"An extra space here.","commit_id":"8005e511c72becabc344ebdb069ee7bb91c4d230"},{"author":{"_account_id":8158,"name":"Hemanth Makkapati","email":"makstacker+osgerrit@gmail.com","username":"hemanth.makkapati"},"change_message_id":"b583e7a5b2097e666b56138f3582811168642759","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    conditions and security issues and hence a bad"},{"line_number":12,"context_line":"    experience for users and operators. As a result,"},{"line_number":13,"context_line":"    we have restricted image location updates in this"},{"line_number":14,"context_line":"    release.  Users will observe the following:"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"    * HTTP Response Code 409 (Conflict) will be returned"},{"line_number":17,"context_line":"      in response to an attempt to remove an image"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"3a71b18c_b4a191fa","line":14,"range":{"start_line":14,"start_character":24,"end_line":14,"end_character":25},"updated":"2016-12-05 21:49:06.000000000","message":"now?","commit_id":"8005e511c72becabc344ebdb069ee7bb91c4d230"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"aef08f92d92e5ae1af2d7a85d449c3a5d355025e","unresolved":false,"context_lines":[{"line_number":2,"context_line":"prelude: \u003e"},{"line_number":3,"context_line":"    Location updates for images are now restricted to"},{"line_number":4,"context_line":"    images in ``active`` or ``queued`` status. Please"},{"line_number":5,"context_line":"    refer to the \"Fixes\" section for more information."},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"fixes:"},{"line_number":8,"context_line":"  - |"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"3a71b18c_9dc5470c","line":5,"range":{"start_line":5,"start_character":18,"end_line":5,"end_character":23},"updated":"2016-12-07 13:18:47.000000000","message":"This section title is \"Bug Fixes\" in the rendered release notes.","commit_id":"4ac8adbccc2b7bbef3d53f9141079c48f9c768f4"}]}
