)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"4596091ac1274d49d9f75cfffa37653b6da841d7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"8f2b9893_9d6831c0","updated":"2024-06-20 10:31:29.000000000","message":"Thanks for the review Abhishek! Please see the inline reply to your comment.","commit_id":"752b206734a60400c6ed86b958019fc5297b37a3"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"0e98d1e232804df79cc62ef214782135a441800f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"4b036a8a_744681cd","updated":"2024-06-27 09:16:09.000000000","message":"Thanks for the suggestions!","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"fec2cfec963e6b4bd56b431083e20cf3469e2f21","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"0bdb014e_caa82449","updated":"2024-07-01 07:59:45.000000000","message":"Thank you !!","commit_id":"6225419e3a8b1c32d276873912791271e555e1d3"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"dba2029e40af794ce43987a1600a074c7b393e7f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"72b012f7_f6f5a5da","updated":"2024-06-28 14:09:44.000000000","message":"Thanks Rajat \u0026 Abhishek for the review!","commit_id":"6225419e3a8b1c32d276873912791271e555e1d3"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"675febef25c5756aef98ca1cba2a54b027fa66e4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"05bf89db_e670a56c","updated":"2024-07-12 12:37:09.000000000","message":"As discussed in last weekly meeting [1], moved this to next cycle.\n\n[1]: https://meetings.opendev.org/irclogs/%23openstack-meeting/%23openstack-meeting.2024-07-11.log.html#t2024-07-11T14:10:42","commit_id":"b216d312f9715f5635b7ff1df1d683650bc775bf"}],"specs/2024.2/approved/glance/calculate-hash-for-active-images.rst":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"9d30d1bee06b5f2e9a227e06dc1ddfe70b29d1ee","unresolved":true,"context_lines":[{"line_number":17,"context_line":"noticed that some images will remain in \u0027active\u0027 state without"},{"line_number":18,"context_line":"checksum and os_hash_value if the hash caclualtion is failed after"},{"line_number":19,"context_line":"adding the location to the image. Currently there is no other way"},{"line_number":20,"context_line":"to re-trigger the hash calculation for the \u0027active\u0027 image."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Proposed change"},{"line_number":23,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"84ce3d2d_b3dcea4e","line":20,"updated":"2024-06-19 17:45:51.000000000","message":"Here you can also mention that apart from this, some legacy images which are created by consumers like instance snapshot or volume shanpshot may also not have these properties.","commit_id":"752b206734a60400c6ed86b958019fc5297b37a3"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"4596091ac1274d49d9f75cfffa37653b6da841d7","unresolved":false,"context_lines":[{"line_number":17,"context_line":"noticed that some images will remain in \u0027active\u0027 state without"},{"line_number":18,"context_line":"checksum and os_hash_value if the hash caclualtion is failed after"},{"line_number":19,"context_line":"adding the location to the image. Currently there is no other way"},{"line_number":20,"context_line":"to re-trigger the hash calculation for the \u0027active\u0027 image."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Proposed change"},{"line_number":23,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"56f977bb_8c2581de","line":20,"in_reply_to":"84ce3d2d_b3dcea4e","updated":"2024-06-20 10:31:29.000000000","message":"Done","commit_id":"752b206734a60400c6ed86b958019fc5297b37a3"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"9d30d1bee06b5f2e9a227e06dc1ddfe70b29d1ee","unresolved":true,"context_lines":[{"line_number":22,"context_line":"Proposed change"},{"line_number":23,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"We are planning to add a separate new api to calulate the os_hash_value"},{"line_number":26,"context_line":"and checksum for the image which are in `active` state which have the"},{"line_number":27,"context_line":"location added already."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Alternatives"},{"line_number":30,"context_line":"------------"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bfc89559_22c1e44b","line":28,"range":{"start_line":25,"start_character":0,"end_line":28,"end_character":0},"updated":"2024-06-19 17:45:51.000000000","message":"I think this should be admin only api, we can not allow normal user to use this api.\n\nPlease mention all the details of how this API will be handle, are you going to acquire lock while operation is in progress, what happens if image is deleted in between, what will be downside if nova/cinder try to use this image in between the operation etc.\n\nAlso this should be async operation.","commit_id":"752b206734a60400c6ed86b958019fc5297b37a3"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"0aaf66da1423e75c29103b231a8f2da938773954","unresolved":true,"context_lines":[{"line_number":22,"context_line":"Proposed change"},{"line_number":23,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"We are planning to add a separate new api to calulate the os_hash_value"},{"line_number":26,"context_line":"and checksum for the image which are in `active` state which have the"},{"line_number":27,"context_line":"location added already."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Alternatives"},{"line_number":30,"context_line":"------------"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5c51d359_7e470334","line":28,"range":{"start_line":25,"start_character":0,"end_line":28,"end_character":0},"in_reply_to":"45f4a5e8_cec37fe3","updated":"2024-06-21 07:10:33.000000000","message":"Since this operation is going to be async I think we will not be able to return any response to the user, so we need to log warning/info message and mark image as deleted. Only question is if cinder store doesn\u0027t allow deletion then what response it will get from delete call, is it conflict?","commit_id":"752b206734a60400c6ed86b958019fc5297b37a3"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"2f09de442206504eccff78e492bd1a793ea1ddfa","unresolved":true,"context_lines":[{"line_number":22,"context_line":"Proposed change"},{"line_number":23,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"We are planning to add a separate new api to calulate the os_hash_value"},{"line_number":26,"context_line":"and checksum for the image which are in `active` state which have the"},{"line_number":27,"context_line":"location added already."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Alternatives"},{"line_number":30,"context_line":"------------"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"f99006c9_72a06755","line":28,"range":{"start_line":25,"start_character":0,"end_line":28,"end_character":0},"in_reply_to":"5c51d359_7e470334","updated":"2024-06-24 11:30:41.000000000","message":"ATM, delete call throws 500 which needs to be fixed. I\u0027ve reported the bz.\n\nhttps://bugs.launchpad.net/glance/+bug/2070258","commit_id":"752b206734a60400c6ed86b958019fc5297b37a3"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"4596091ac1274d49d9f75cfffa37653b6da841d7","unresolved":true,"context_lines":[{"line_number":22,"context_line":"Proposed change"},{"line_number":23,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"We are planning to add a separate new api to calulate the os_hash_value"},{"line_number":26,"context_line":"and checksum for the image which are in `active` state which have the"},{"line_number":27,"context_line":"location added already."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Alternatives"},{"line_number":30,"context_line":"------------"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"45f4a5e8_cec37fe3","line":28,"range":{"start_line":25,"start_character":0,"end_line":28,"end_character":0},"in_reply_to":"bfc89559_22c1e44b","updated":"2024-06-20 10:31:29.000000000","message":"Ack.\n\nRegarding deleting image, there are different responses from stores while reading the data from backends and image is delete in between,\n* Cinder store doesn\u0027t allow image deletion, delete api fails\n* RBD throws ImageNotFound but deletes the data, delete api fails and image remains in `active` state\n* Filesystem backend throws NotFound since delete operation is successful\n* Swift data reading and deletion both are successful.\n\nI think depending on the exception thrown by store, we should add a debug log and mark image as deleted if it\u0027s not marked already(which we are already doing in New loc api CalculateHash task)","commit_id":"752b206734a60400c6ed86b958019fc5297b37a3"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"c36494b704ff41c2e1966723e6c4a75a3cdd774e","unresolved":false,"context_lines":[{"line_number":22,"context_line":"Proposed change"},{"line_number":23,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"We are planning to add a separate new api to calulate the os_hash_value"},{"line_number":26,"context_line":"and checksum for the image which are in `active` state which have the"},{"line_number":27,"context_line":"location added already."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Alternatives"},{"line_number":30,"context_line":"------------"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"0141164b_879acd05","line":28,"range":{"start_line":25,"start_character":0,"end_line":28,"end_character":0},"in_reply_to":"f99006c9_72a06755","updated":"2024-06-26 05:34:48.000000000","message":"Acknowledged","commit_id":"752b206734a60400c6ed86b958019fc5297b37a3"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"0aaf66da1423e75c29103b231a8f2da938773954","unresolved":true,"context_lines":[{"line_number":19,"context_line":"   noticed that some images will remain in \u0027active\u0027 state without"},{"line_number":20,"context_line":"   checksum and os_hash_value if the hash caclualtion is failed after"},{"line_number":21,"context_line":"   adding the location to the image."},{"line_number":22,"context_line":"2. Sometimes some legacy images which are created by consumers like"},{"line_number":23,"context_line":"   instance snapshot or volume shanpshot may also not have checksum"},{"line_number":24,"context_line":"   and os_hash_value set."},{"line_number":25,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"2012f1fc_2f5e1b59","line":22,"range":{"start_line":22,"start_character":3,"end_line":22,"end_character":12},"updated":"2024-06-21 07:10:33.000000000","message":"Why sometimes, it should be Some legacy images ..","commit_id":"55f0d2ea3d9e5f6fc095dd4213c261155212e0c4"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"2f09de442206504eccff78e492bd1a793ea1ddfa","unresolved":false,"context_lines":[{"line_number":19,"context_line":"   noticed that some images will remain in \u0027active\u0027 state without"},{"line_number":20,"context_line":"   checksum and os_hash_value if the hash caclualtion is failed after"},{"line_number":21,"context_line":"   adding the location to the image."},{"line_number":22,"context_line":"2. Sometimes some legacy images which are created by consumers like"},{"line_number":23,"context_line":"   instance snapshot or volume shanpshot may also not have checksum"},{"line_number":24,"context_line":"   and os_hash_value set."},{"line_number":25,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f9d642e_fd3da6ee","line":22,"range":{"start_line":22,"start_character":3,"end_line":22,"end_character":12},"in_reply_to":"2012f1fc_2f5e1b59","updated":"2024-06-24 11:30:41.000000000","message":"Acknowledged","commit_id":"55f0d2ea3d9e5f6fc095dd4213c261155212e0c4"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"0aaf66da1423e75c29103b231a8f2da938773954","unresolved":true,"context_lines":[{"line_number":23,"context_line":"   instance snapshot or volume shanpshot may also not have checksum"},{"line_number":24,"context_line":"   and os_hash_value set."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Currently there is no other way to re-trigger the hash calculation"},{"line_number":27,"context_line":"for the \u0027active\u0027 image."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":2,"id":"f5ca05f9_30825a0a","line":26,"range":{"start_line":26,"start_character":35,"end_line":26,"end_character":45},"updated":"2024-06-21 07:10:33.000000000","message":"re-trigger means you are going to repeat the operation after failure, I think this should be like \u0027there is no way to calculate hash for such images\u0027.","commit_id":"55f0d2ea3d9e5f6fc095dd4213c261155212e0c4"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"b9d51f0c618b39cfb67411ce485c802b193f2054","unresolved":false,"context_lines":[{"line_number":23,"context_line":"   instance snapshot or volume shanpshot may also not have checksum"},{"line_number":24,"context_line":"   and os_hash_value set."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Currently there is no other way to re-trigger the hash calculation"},{"line_number":27,"context_line":"for the \u0027active\u0027 image."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":2,"id":"b3f97737_8a0c0028","line":26,"range":{"start_line":26,"start_character":35,"end_line":26,"end_character":45},"in_reply_to":"f5ca05f9_30825a0a","updated":"2024-06-24 11:30:58.000000000","message":"Done","commit_id":"55f0d2ea3d9e5f6fc095dd4213c261155212e0c4"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"0aaf66da1423e75c29103b231a8f2da938773954","unresolved":true,"context_lines":[{"line_number":33,"context_line":"os_hash_value and checksum for the image which are in `active` state"},{"line_number":34,"context_line":"which have the location added already. This api has been described in"},{"line_number":35,"context_line":"detail in the `REST API impact`_ section."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Alternatives"},{"line_number":38,"context_line":"------------"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"45cd9bba_dabb5a7c","line":36,"updated":"2024-06-21 07:10:33.000000000","message":"I think you should also describe about the new policy you are going to use for this API. Also as per my last comment the details about what happens if delete call is issued in between this operation are missing.\n\nInstead of describing it in rest api impact section it should be mentioned in this section.","commit_id":"55f0d2ea3d9e5f6fc095dd4213c261155212e0c4"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"2f09de442206504eccff78e492bd1a793ea1ddfa","unresolved":false,"context_lines":[{"line_number":33,"context_line":"os_hash_value and checksum for the image which are in `active` state"},{"line_number":34,"context_line":"which have the location added already. This api has been described in"},{"line_number":35,"context_line":"detail in the `REST API impact`_ section."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Alternatives"},{"line_number":38,"context_line":"------------"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"6cd0904c_60b1f4a1","line":36,"in_reply_to":"45cd9bba_dabb5a7c","updated":"2024-06-24 11:30:41.000000000","message":"Acknowledged","commit_id":"55f0d2ea3d9e5f6fc095dd4213c261155212e0c4"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"0aaf66da1423e75c29103b231a8f2da938773954","unresolved":true,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* Calculate Hash"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"  1. Since hash calculation will be a long running operation, it will be"},{"line_number":55,"context_line":"     executed in the background in the async task by setting the value of"},{"line_number":56,"context_line":"     `os_hash_algo` until the completion of the task."},{"line_number":57,"context_line":"     If hash calculation fails, `os_hash_algo` value will be reverted back"},{"line_number":58,"context_line":"     to None but image will remain in `active` state as before."},{"line_number":59,"context_line":"  2. This API will be having a lock to the image to exclude other operations"},{"line_number":60,"context_line":"     from starting until the lock-holding task completes."},{"line_number":61,"context_line":"  3. Incase image is deleted in between from the backend and store raises"},{"line_number":62,"context_line":"     `ImageNotFound` exception, hash calculation will be failed with"},{"line_number":63,"context_line":"     proper log message and image will be marked as `deleted` if it\u0027s"},{"line_number":64,"context_line":"     not marked as `deleted` (Incase of RBD backend only image will not"},{"line_number":65,"context_line":"     be marked `deleted` even after deleting data)."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"  This spec proposes the following new endpoint:"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"  POST /v2/images/{image_id}/hash"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5cc658_e26fc6ca","line":66,"range":{"start_line":54,"start_character":2,"end_line":66,"end_character":0},"updated":"2024-06-21 07:10:33.000000000","message":"This section should only have details about how your rest API will be and what are the request params and response params. The business logic should be part of Proposed change section.","commit_id":"55f0d2ea3d9e5f6fc095dd4213c261155212e0c4"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"2f09de442206504eccff78e492bd1a793ea1ddfa","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* Calculate Hash"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"  1. Since hash calculation will be a long running operation, it will be"},{"line_number":55,"context_line":"     executed in the background in the async task by setting the value of"},{"line_number":56,"context_line":"     `os_hash_algo` until the completion of the task."},{"line_number":57,"context_line":"     If hash calculation fails, `os_hash_algo` value will be reverted back"},{"line_number":58,"context_line":"     to None but image will remain in `active` state as before."},{"line_number":59,"context_line":"  2. This API will be having a lock to the image to exclude other operations"},{"line_number":60,"context_line":"     from starting until the lock-holding task completes."},{"line_number":61,"context_line":"  3. Incase image is deleted in between from the backend and store raises"},{"line_number":62,"context_line":"     `ImageNotFound` exception, hash calculation will be failed with"},{"line_number":63,"context_line":"     proper log message and image will be marked as `deleted` if it\u0027s"},{"line_number":64,"context_line":"     not marked as `deleted` (Incase of RBD backend only image will not"},{"line_number":65,"context_line":"     be marked `deleted` even after deleting data)."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"  This spec proposes the following new endpoint:"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"  POST /v2/images/{image_id}/hash"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fcd2e7f2_8427bcf2","line":66,"range":{"start_line":54,"start_character":2,"end_line":66,"end_character":0},"in_reply_to":"5a5cc658_e26fc6ca","updated":"2024-06-24 11:30:41.000000000","message":"Done","commit_id":"55f0d2ea3d9e5f6fc095dd4213c261155212e0c4"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"0aaf66da1423e75c29103b231a8f2da938773954","unresolved":true,"context_lines":[{"line_number":134,"context_line":"* Write a tempest test to check these API"},{"line_number":135,"context_line":"* Implement support in OpenstackClient"},{"line_number":136,"context_line":"* Implement support in glanceclient"},{"line_number":137,"context_line":"* Client docs"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Dependencies"},{"line_number":140,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"256f9a97_0899c199","line":137,"range":{"start_line":137,"start_character":2,"end_line":137,"end_character":13},"updated":"2024-06-21 07:10:33.000000000","message":"What do you mean by client docs?","commit_id":"55f0d2ea3d9e5f6fc095dd4213c261155212e0c4"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"2f09de442206504eccff78e492bd1a793ea1ddfa","unresolved":false,"context_lines":[{"line_number":134,"context_line":"* Write a tempest test to check these API"},{"line_number":135,"context_line":"* Implement support in OpenstackClient"},{"line_number":136,"context_line":"* Implement support in glanceclient"},{"line_number":137,"context_line":"* Client docs"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Dependencies"},{"line_number":140,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7da7aa75_2332ce55","line":137,"range":{"start_line":137,"start_character":2,"end_line":137,"end_character":13},"in_reply_to":"256f9a97_0899c199","updated":"2024-06-24 11:30:41.000000000","message":"Done","commit_id":"55f0d2ea3d9e5f6fc095dd4213c261155212e0c4"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"c36494b704ff41c2e1966723e6c4a75a3cdd774e","unresolved":true,"context_lines":[{"line_number":21,"context_line":"   adding the location to the image."},{"line_number":22,"context_line":"2. Some legacy images which are created by consumers like"},{"line_number":23,"context_line":"   instance snapshot or volume shanpshot may also not have checksum"},{"line_number":24,"context_line":"   and os_hash_value set."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Currently there is no other way to calculate hash for such images."},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"69bb5f25_bc071d80","line":24,"range":{"start_line":24,"start_character":7,"end_line":24,"end_character":20},"updated":"2024-06-26 05:34:48.000000000","message":"it will also not have os_hash_algo set imo","commit_id":"b6595493d038022a7f1a1606e71781dcb637359d"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"0e98d1e232804df79cc62ef214782135a441800f","unresolved":false,"context_lines":[{"line_number":21,"context_line":"   adding the location to the image."},{"line_number":22,"context_line":"2. Some legacy images which are created by consumers like"},{"line_number":23,"context_line":"   instance snapshot or volume shanpshot may also not have checksum"},{"line_number":24,"context_line":"   and os_hash_value set."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Currently there is no other way to calculate hash for such images."},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"cb239ba9_34950b18","line":24,"range":{"start_line":24,"start_character":7,"end_line":24,"end_character":20},"in_reply_to":"69bb5f25_bc071d80","updated":"2024-06-27 09:16:09.000000000","message":"Done","commit_id":"b6595493d038022a7f1a1606e71781dcb637359d"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"c36494b704ff41c2e1966723e6c4a75a3cdd774e","unresolved":true,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"We are planning to add a separate new admin-only api to calculate the"},{"line_number":32,"context_line":"os_hash_value and checksum for the image which are in `active` state"},{"line_number":33,"context_line":"which have the location added already."},{"line_number":34,"context_line":"This API will be handled as follows:"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"1. Since hash calculation will be a long running operation, it will be"}],"source_content_type":"text/x-rst","patch_set":3,"id":"0e01a543_8eccc42e","line":33,"range":{"start_line":33,"start_character":0,"end_line":33,"end_character":38},"updated":"2024-06-26 05:34:48.000000000","message":"IMO this is not needed. Every active image has location set to it, without it image will not be active at all.","commit_id":"b6595493d038022a7f1a1606e71781dcb637359d"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"0e98d1e232804df79cc62ef214782135a441800f","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"We are planning to add a separate new admin-only api to calculate the"},{"line_number":32,"context_line":"os_hash_value and checksum for the image which are in `active` state"},{"line_number":33,"context_line":"which have the location added already."},{"line_number":34,"context_line":"This API will be handled as follows:"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"1. Since hash calculation will be a long running operation, it will be"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ae2b8e3b_78fb4f4c","line":33,"range":{"start_line":33,"start_character":0,"end_line":33,"end_character":38},"in_reply_to":"0e01a543_8eccc42e","updated":"2024-06-27 09:16:09.000000000","message":"Done","commit_id":"b6595493d038022a7f1a1606e71781dcb637359d"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"c36494b704ff41c2e1966723e6c4a75a3cdd774e","unresolved":true,"context_lines":[{"line_number":36,"context_line":"1. Since hash calculation will be a long running operation, it will be"},{"line_number":37,"context_line":"   executed in the background in the async task by setting the value of"},{"line_number":38,"context_line":"   `os_hash_algo` until the completion of the task."},{"line_number":39,"context_line":"   If hash calculation fails, `os_hash_algo` value will be reverted back"},{"line_number":40,"context_line":"   to None but image will remain in `active` state as before."},{"line_number":41,"context_line":"2. This API will be having a lock to the image to exclude other operations"},{"line_number":42,"context_line":"   from starting until the lock-holding task completes."},{"line_number":43,"context_line":"3. Incase image is deleted in between from the backend and store raises"}],"source_content_type":"text/x-rst","patch_set":3,"id":"6a0b0929_24156e6d","line":40,"range":{"start_line":39,"start_character":2,"end_line":40,"end_character":61},"updated":"2024-06-26 05:34:48.000000000","message":"Are we not going to use retry mechanism on failure?","commit_id":"b6595493d038022a7f1a1606e71781dcb637359d"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"dba2029e40af794ce43987a1600a074c7b393e7f","unresolved":false,"context_lines":[{"line_number":36,"context_line":"1. Since hash calculation will be a long running operation, it will be"},{"line_number":37,"context_line":"   executed in the background in the async task by setting the value of"},{"line_number":38,"context_line":"   `os_hash_algo` until the completion of the task."},{"line_number":39,"context_line":"   If hash calculation fails, `os_hash_algo` value will be reverted back"},{"line_number":40,"context_line":"   to None but image will remain in `active` state as before."},{"line_number":41,"context_line":"2. This API will be having a lock to the image to exclude other operations"},{"line_number":42,"context_line":"   from starting until the lock-holding task completes."},{"line_number":43,"context_line":"3. Incase image is deleted in between from the backend and store raises"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7ee5987c_58de89c6","line":40,"range":{"start_line":39,"start_character":2,"end_line":40,"end_character":61},"in_reply_to":"24d95b74_39f358d2","updated":"2024-06-28 14:09:44.000000000","message":"Done","commit_id":"b6595493d038022a7f1a1606e71781dcb637359d"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"0e98d1e232804df79cc62ef214782135a441800f","unresolved":true,"context_lines":[{"line_number":36,"context_line":"1. Since hash calculation will be a long running operation, it will be"},{"line_number":37,"context_line":"   executed in the background in the async task by setting the value of"},{"line_number":38,"context_line":"   `os_hash_algo` until the completion of the task."},{"line_number":39,"context_line":"   If hash calculation fails, `os_hash_algo` value will be reverted back"},{"line_number":40,"context_line":"   to None but image will remain in `active` state as before."},{"line_number":41,"context_line":"2. This API will be having a lock to the image to exclude other operations"},{"line_number":42,"context_line":"   from starting until the lock-holding task completes."},{"line_number":43,"context_line":"3. Incase image is deleted in between from the backend and store raises"}],"source_content_type":"text/x-rst","patch_set":3,"id":"b2230f8d_144970bd","line":40,"range":{"start_line":39,"start_character":2,"end_line":40,"end_character":61},"in_reply_to":"6a0b0929_24156e6d","updated":"2024-06-27 09:16:09.000000000","message":"yes we are, but there is possibility of failure again, right?","commit_id":"b6595493d038022a7f1a1606e71781dcb637359d"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"13ca10539692d529cf5bce9152cc1be71884ead1","unresolved":true,"context_lines":[{"line_number":36,"context_line":"1. Since hash calculation will be a long running operation, it will be"},{"line_number":37,"context_line":"   executed in the background in the async task by setting the value of"},{"line_number":38,"context_line":"   `os_hash_algo` until the completion of the task."},{"line_number":39,"context_line":"   If hash calculation fails, `os_hash_algo` value will be reverted back"},{"line_number":40,"context_line":"   to None but image will remain in `active` state as before."},{"line_number":41,"context_line":"2. This API will be having a lock to the image to exclude other operations"},{"line_number":42,"context_line":"   from starting until the lock-holding task completes."},{"line_number":43,"context_line":"3. Incase image is deleted in between from the backend and store raises"}],"source_content_type":"text/x-rst","patch_set":3,"id":"24d95b74_39f358d2","line":40,"range":{"start_line":39,"start_character":2,"end_line":40,"end_character":61},"in_reply_to":"b2230f8d_144970bd","updated":"2024-06-28 06:28:22.000000000","message":"So please mention about retry mechanism as well.","commit_id":"b6595493d038022a7f1a1606e71781dcb637359d"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"c36494b704ff41c2e1966723e6c4a75a3cdd774e","unresolved":true,"context_lines":[{"line_number":38,"context_line":"   `os_hash_algo` until the completion of the task."},{"line_number":39,"context_line":"   If hash calculation fails, `os_hash_algo` value will be reverted back"},{"line_number":40,"context_line":"   to None but image will remain in `active` state as before."},{"line_number":41,"context_line":"2. This API will be having a lock to the image to exclude other operations"},{"line_number":42,"context_line":"   from starting until the lock-holding task completes."},{"line_number":43,"context_line":"3. Incase image is deleted in between from the backend and store raises"},{"line_number":44,"context_line":"   `ImageNotFound` exception, hash calculation will be failed with"}],"source_content_type":"text/x-rst","patch_set":3,"id":"930a3c86_20a2dd6e","line":41,"range":{"start_line":41,"start_character":50,"end_line":41,"end_character":74},"updated":"2024-06-26 05:34:48.000000000","message":"What other operations?","commit_id":"b6595493d038022a7f1a1606e71781dcb637359d"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"0e98d1e232804df79cc62ef214782135a441800f","unresolved":true,"context_lines":[{"line_number":38,"context_line":"   `os_hash_algo` until the completion of the task."},{"line_number":39,"context_line":"   If hash calculation fails, `os_hash_algo` value will be reverted back"},{"line_number":40,"context_line":"   to None but image will remain in `active` state as before."},{"line_number":41,"context_line":"2. This API will be having a lock to the image to exclude other operations"},{"line_number":42,"context_line":"   from starting until the lock-holding task completes."},{"line_number":43,"context_line":"3. Incase image is deleted in between from the backend and store raises"},{"line_number":44,"context_line":"   `ImageNotFound` exception, hash calculation will be failed with"}],"source_content_type":"text/x-rst","patch_set":3,"id":"cf45557f_a924205e","line":41,"updated":"2024-06-27 09:16:09.000000000","message":"you mean the point 2, lock thing? well this data deletion happens only in rbd case and the bug is reported already https://bugs.launchpad.net/glance/+bug/2045769, otherwise the deletion is not allowed from any other store.","commit_id":"b6595493d038022a7f1a1606e71781dcb637359d"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"13ca10539692d529cf5bce9152cc1be71884ead1","unresolved":true,"context_lines":[{"line_number":38,"context_line":"   `os_hash_algo` until the completion of the task."},{"line_number":39,"context_line":"   If hash calculation fails, `os_hash_algo` value will be reverted back"},{"line_number":40,"context_line":"   to None but image will remain in `active` state as before."},{"line_number":41,"context_line":"2. This API will be having a lock to the image to exclude other operations"},{"line_number":42,"context_line":"   from starting until the lock-holding task completes."},{"line_number":43,"context_line":"3. Incase image is deleted in between from the backend and store raises"},{"line_number":44,"context_line":"   `ImageNotFound` exception, hash calculation will be failed with"}],"source_content_type":"text/x-rst","patch_set":3,"id":"50454122_65b40809","line":41,"range":{"start_line":41,"start_character":50,"end_line":41,"end_character":74},"in_reply_to":"08d89064_ce4aec0b","updated":"2024-06-28 06:28:22.000000000","message":"This is not true, see my latest comment.","commit_id":"b6595493d038022a7f1a1606e71781dcb637359d"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"dba2029e40af794ce43987a1600a074c7b393e7f","unresolved":false,"context_lines":[{"line_number":38,"context_line":"   `os_hash_algo` until the completion of the task."},{"line_number":39,"context_line":"   If hash calculation fails, `os_hash_algo` value will be reverted back"},{"line_number":40,"context_line":"   to None but image will remain in `active` state as before."},{"line_number":41,"context_line":"2. This API will be having a lock to the image to exclude other operations"},{"line_number":42,"context_line":"   from starting until the lock-holding task completes."},{"line_number":43,"context_line":"3. Incase image is deleted in between from the backend and store raises"},{"line_number":44,"context_line":"   `ImageNotFound` exception, hash calculation will be failed with"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bad3ef8e_9e871529","line":41,"range":{"start_line":41,"start_character":50,"end_line":41,"end_character":74},"in_reply_to":"50454122_65b40809","updated":"2024-06-28 14:09:44.000000000","message":"Done","commit_id":"b6595493d038022a7f1a1606e71781dcb637359d"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"0e98d1e232804df79cc62ef214782135a441800f","unresolved":true,"context_lines":[{"line_number":38,"context_line":"   `os_hash_algo` until the completion of the task."},{"line_number":39,"context_line":"   If hash calculation fails, `os_hash_algo` value will be reverted back"},{"line_number":40,"context_line":"   to None but image will remain in `active` state as before."},{"line_number":41,"context_line":"2. This API will be having a lock to the image to exclude other operations"},{"line_number":42,"context_line":"   from starting until the lock-holding task completes."},{"line_number":43,"context_line":"3. Incase image is deleted in between from the backend and store raises"},{"line_number":44,"context_line":"   `ImageNotFound` exception, hash calculation will be failed with"}],"source_content_type":"text/x-rst","patch_set":3,"id":"08d89064_ce4aec0b","line":41,"range":{"start_line":41,"start_character":50,"end_line":41,"end_character":74},"in_reply_to":"930a3c86_20a2dd6e","updated":"2024-06-27 09:16:09.000000000","message":"I meant when this operation is in progress no one can consume that image.","commit_id":"b6595493d038022a7f1a1606e71781dcb637359d"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"dba2029e40af794ce43987a1600a074c7b393e7f","unresolved":false,"context_lines":[{"line_number":38,"context_line":"   `os_hash_algo` until the completion of the task."},{"line_number":39,"context_line":"   If hash calculation fails, `os_hash_algo` value will be reverted back"},{"line_number":40,"context_line":"   to None but image will remain in `active` state as before."},{"line_number":41,"context_line":"2. This API will be having a lock to the image to exclude other operations"},{"line_number":42,"context_line":"   from starting until the lock-holding task completes."},{"line_number":43,"context_line":"3. Incase image is deleted in between from the backend and store raises"},{"line_number":44,"context_line":"   `ImageNotFound` exception, hash calculation will be failed with"}],"source_content_type":"text/x-rst","patch_set":3,"id":"6accd714_c0947a48","line":41,"in_reply_to":"cf45557f_a924205e","updated":"2024-06-28 14:09:44.000000000","message":"Done","commit_id":"b6595493d038022a7f1a1606e71781dcb637359d"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"c36494b704ff41c2e1966723e6c4a75a3cdd774e","unresolved":true,"context_lines":[{"line_number":40,"context_line":"   to None but image will remain in `active` state as before."},{"line_number":41,"context_line":"2. This API will be having a lock to the image to exclude other operations"},{"line_number":42,"context_line":"   from starting until the lock-holding task completes."},{"line_number":43,"context_line":"3. Incase image is deleted in between from the backend and store raises"},{"line_number":44,"context_line":"   `ImageNotFound` exception, hash calculation will be failed with"},{"line_number":45,"context_line":"   proper log message and image will be marked as `deleted` if it\u0027s"},{"line_number":46,"context_line":"   not marked as `deleted` (Incase of RBD backend only image will not"}],"source_content_type":"text/x-rst","patch_set":3,"id":"4b534d3c_224dd898","line":43,"range":{"start_line":43,"start_character":3,"end_line":43,"end_character":71},"updated":"2024-06-26 05:34:48.000000000","message":"This statement is contradictory to your above claim at line 2","commit_id":"b6595493d038022a7f1a1606e71781dcb637359d"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"0e98d1e232804df79cc62ef214782135a441800f","unresolved":true,"context_lines":[{"line_number":40,"context_line":"   to None but image will remain in `active` state as before."},{"line_number":41,"context_line":"2. This API will be having a lock to the image to exclude other operations"},{"line_number":42,"context_line":"   from starting until the lock-holding task completes."},{"line_number":43,"context_line":"3. Incase image is deleted in between from the backend and store raises"},{"line_number":44,"context_line":"   `ImageNotFound` exception, hash calculation will be failed with"},{"line_number":45,"context_line":"   proper log message and image will be marked as `deleted` if it\u0027s"},{"line_number":46,"context_line":"   not marked as `deleted` (Incase of RBD backend only image will not"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7c51e901_5921ed35","line":43,"range":{"start_line":43,"start_character":3,"end_line":43,"end_character":71},"in_reply_to":"4b534d3c_224dd898","updated":"2024-06-27 09:16:09.000000000","message":"not sure, this is happening for location api hash calculation task well even if we are having lock to the image.","commit_id":"b6595493d038022a7f1a1606e71781dcb637359d"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"13ca10539692d529cf5bce9152cc1be71884ead1","unresolved":true,"context_lines":[{"line_number":40,"context_line":"   to None but image will remain in `active` state as before."},{"line_number":41,"context_line":"2. This API will be having a lock to the image to exclude other operations"},{"line_number":42,"context_line":"   from starting until the lock-holding task completes."},{"line_number":43,"context_line":"3. Incase image is deleted in between from the backend and store raises"},{"line_number":44,"context_line":"   `ImageNotFound` exception, hash calculation will be failed with"},{"line_number":45,"context_line":"   proper log message and image will be marked as `deleted` if it\u0027s"},{"line_number":46,"context_line":"   not marked as `deleted` (Incase of RBD backend only image will not"}],"source_content_type":"text/x-rst","patch_set":3,"id":"f636c01a_23f516f5","line":43,"range":{"start_line":43,"start_character":3,"end_line":43,"end_character":71},"in_reply_to":"7c51e901_5921ed35","updated":"2024-06-28 06:28:22.000000000","message":"This is not related to location api hash calculation, I guess you misunderstood why is lock used here.","commit_id":"b6595493d038022a7f1a1606e71781dcb637359d"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"dba2029e40af794ce43987a1600a074c7b393e7f","unresolved":false,"context_lines":[{"line_number":40,"context_line":"   to None but image will remain in `active` state as before."},{"line_number":41,"context_line":"2. This API will be having a lock to the image to exclude other operations"},{"line_number":42,"context_line":"   from starting until the lock-holding task completes."},{"line_number":43,"context_line":"3. Incase image is deleted in between from the backend and store raises"},{"line_number":44,"context_line":"   `ImageNotFound` exception, hash calculation will be failed with"},{"line_number":45,"context_line":"   proper log message and image will be marked as `deleted` if it\u0027s"},{"line_number":46,"context_line":"   not marked as `deleted` (Incase of RBD backend only image will not"}],"source_content_type":"text/x-rst","patch_set":3,"id":"f8981c1a_ad85f7c8","line":43,"range":{"start_line":43,"start_character":3,"end_line":43,"end_character":71},"in_reply_to":"f636c01a_23f516f5","updated":"2024-06-28 14:09:44.000000000","message":"Done","commit_id":"b6595493d038022a7f1a1606e71781dcb637359d"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"c36494b704ff41c2e1966723e6c4a75a3cdd774e","unresolved":true,"context_lines":[{"line_number":43,"context_line":"3. Incase image is deleted in between from the backend and store raises"},{"line_number":44,"context_line":"   `ImageNotFound` exception, hash calculation will be failed with"},{"line_number":45,"context_line":"   proper log message and image will be marked as `deleted` if it\u0027s"},{"line_number":46,"context_line":"   not marked as `deleted` (Incase of RBD backend only image will not"},{"line_number":47,"context_line":"   be marked `deleted` even after deleting data)."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"We will introduce a new admin-only policy ``calculate_image_hash``."},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3948c394_c22e7e3d","line":47,"range":{"start_line":46,"start_character":27,"end_line":47,"end_character":49},"updated":"2024-06-26 05:34:48.000000000","message":"You should also mention that cinder does not allow to delete the image with reference to your new. bug.","commit_id":"b6595493d038022a7f1a1606e71781dcb637359d"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"0e98d1e232804df79cc62ef214782135a441800f","unresolved":false,"context_lines":[{"line_number":43,"context_line":"3. Incase image is deleted in between from the backend and store raises"},{"line_number":44,"context_line":"   `ImageNotFound` exception, hash calculation will be failed with"},{"line_number":45,"context_line":"   proper log message and image will be marked as `deleted` if it\u0027s"},{"line_number":46,"context_line":"   not marked as `deleted` (Incase of RBD backend only image will not"},{"line_number":47,"context_line":"   be marked `deleted` even after deleting data)."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"We will introduce a new admin-only policy ``calculate_image_hash``."},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1046852a_1a508eba","line":47,"range":{"start_line":46,"start_character":27,"end_line":47,"end_character":49},"in_reply_to":"3948c394_c22e7e3d","updated":"2024-06-27 09:16:09.000000000","message":"Acknowledged","commit_id":"b6595493d038022a7f1a1606e71781dcb637359d"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"c36494b704ff41c2e1966723e6c4a75a3cdd774e","unresolved":true,"context_lines":[{"line_number":46,"context_line":"   not marked as `deleted` (Incase of RBD backend only image will not"},{"line_number":47,"context_line":"   be marked `deleted` even after deleting data)."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"We will introduce a new admin-only policy ``calculate_image_hash``."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"More details on this API can be found in the REST API section of this spec."},{"line_number":52,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1934a713_20e9573a","line":49,"range":{"start_line":49,"start_character":44,"end_line":49,"end_character":64},"updated":"2024-06-26 05:34:48.000000000","message":"calculate_hash is sufficient imo","commit_id":"b6595493d038022a7f1a1606e71781dcb637359d"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"0e98d1e232804df79cc62ef214782135a441800f","unresolved":false,"context_lines":[{"line_number":46,"context_line":"   not marked as `deleted` (Incase of RBD backend only image will not"},{"line_number":47,"context_line":"   be marked `deleted` even after deleting data)."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"We will introduce a new admin-only policy ``calculate_image_hash``."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"More details on this API can be found in the REST API section of this spec."},{"line_number":52,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"61bb7b21_d173f07a","line":49,"range":{"start_line":49,"start_character":44,"end_line":49,"end_character":64},"in_reply_to":"1934a713_20e9573a","updated":"2024-06-27 09:16:09.000000000","message":"Acknowledged","commit_id":"b6595493d038022a7f1a1606e71781dcb637359d"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"c36494b704ff41c2e1966723e6c4a75a3cdd774e","unresolved":true,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"We will introduce a new admin-only policy ``calculate_image_hash``."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"More details on this API can be found in the REST API section of this spec."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5ef08ff8_0c2a44d2","line":51,"range":{"start_line":51,"start_character":0,"end_line":51,"end_character":75},"updated":"2024-06-26 05:34:48.000000000","message":"No need of this statement.","commit_id":"b6595493d038022a7f1a1606e71781dcb637359d"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"0e98d1e232804df79cc62ef214782135a441800f","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"We will introduce a new admin-only policy ``calculate_image_hash``."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"More details on this API can be found in the REST API section of this spec."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":3,"id":"8c66b1e9_4a0de9c7","line":51,"range":{"start_line":51,"start_character":0,"end_line":51,"end_character":75},"in_reply_to":"5ef08ff8_0c2a44d2","updated":"2024-06-27 09:16:09.000000000","message":"Acknowledged","commit_id":"b6595493d038022a7f1a1606e71781dcb637359d"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"c36494b704ff41c2e1966723e6c4a75a3cdd774e","unresolved":true,"context_lines":[{"line_number":138,"context_line":"* Write a tempest test to check these API"},{"line_number":139,"context_line":"* Implement support in OpenstackClient"},{"line_number":140,"context_line":"* Implement support in glanceclient"},{"line_number":141,"context_line":"* Add API documentation for new API"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"Dependencies"},{"line_number":144,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"db110a78_b0c2799a","line":141,"range":{"start_line":141,"start_character":2,"end_line":141,"end_character":35},"updated":"2024-06-26 05:34:48.000000000","message":"This is same as line #137\n\nI think you want to mention about document the behaviour of new API","commit_id":"b6595493d038022a7f1a1606e71781dcb637359d"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"0e98d1e232804df79cc62ef214782135a441800f","unresolved":false,"context_lines":[{"line_number":138,"context_line":"* Write a tempest test to check these API"},{"line_number":139,"context_line":"* Implement support in OpenstackClient"},{"line_number":140,"context_line":"* Implement support in glanceclient"},{"line_number":141,"context_line":"* Add API documentation for new API"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"Dependencies"},{"line_number":144,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"97797bf3_20d21495","line":141,"range":{"start_line":141,"start_character":2,"end_line":141,"end_character":35},"in_reply_to":"db110a78_b0c2799a","updated":"2024-06-27 09:16:09.000000000","message":"Done","commit_id":"b6595493d038022a7f1a1606e71781dcb637359d"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"9feb3d4275fedb16697b67188d0809d8c81c3469","unresolved":true,"context_lines":[{"line_number":20,"context_line":"   checksum and os_hash_value if the hash caclualtion is failed after"},{"line_number":21,"context_line":"   adding the location to the image."},{"line_number":22,"context_line":"2. Some legacy images which are created by consumers like"},{"line_number":23,"context_line":"   instance snapshot or volume shanpshot may also not have checksum,"},{"line_number":24,"context_line":"   os_hash_value and os_hash_algo set."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Currently there is no other way to calculate hash for such images."}],"source_content_type":"text/x-rst","patch_set":4,"id":"734c5510_2ccf3293","line":23,"range":{"start_line":23,"start_character":24,"end_line":23,"end_character":40},"updated":"2024-06-28 07:31:44.000000000","message":"how does volume snapshot trigger an image creation?\nI think what you mean is upload volume operation when glance backend is cinder and we use optimized path for cloning the image-volume.","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"9feb3d4275fedb16697b67188d0809d8c81c3469","unresolved":true,"context_lines":[{"line_number":20,"context_line":"   checksum and os_hash_value if the hash caclualtion is failed after"},{"line_number":21,"context_line":"   adding the location to the image."},{"line_number":22,"context_line":"2. Some legacy images which are created by consumers like"},{"line_number":23,"context_line":"   instance snapshot or volume shanpshot may also not have checksum,"},{"line_number":24,"context_line":"   os_hash_value and os_hash_algo set."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Currently there is no other way to calculate hash for such images."}],"source_content_type":"text/x-rst","patch_set":4,"id":"c86a1571_d9c9951a","line":23,"range":{"start_line":23,"start_character":31,"end_line":23,"end_character":40},"updated":"2024-06-28 07:31:44.000000000","message":"snapshot","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"dba2029e40af794ce43987a1600a074c7b393e7f","unresolved":false,"context_lines":[{"line_number":20,"context_line":"   checksum and os_hash_value if the hash caclualtion is failed after"},{"line_number":21,"context_line":"   adding the location to the image."},{"line_number":22,"context_line":"2. Some legacy images which are created by consumers like"},{"line_number":23,"context_line":"   instance snapshot or volume shanpshot may also not have checksum,"},{"line_number":24,"context_line":"   os_hash_value and os_hash_algo set."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Currently there is no other way to calculate hash for such images."}],"source_content_type":"text/x-rst","patch_set":4,"id":"9b8d8714_5f28f627","line":23,"range":{"start_line":23,"start_character":24,"end_line":23,"end_character":40},"in_reply_to":"734c5510_2ccf3293","updated":"2024-06-28 14:09:44.000000000","message":"Done","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"dba2029e40af794ce43987a1600a074c7b393e7f","unresolved":false,"context_lines":[{"line_number":20,"context_line":"   checksum and os_hash_value if the hash caclualtion is failed after"},{"line_number":21,"context_line":"   adding the location to the image."},{"line_number":22,"context_line":"2. Some legacy images which are created by consumers like"},{"line_number":23,"context_line":"   instance snapshot or volume shanpshot may also not have checksum,"},{"line_number":24,"context_line":"   os_hash_value and os_hash_algo set."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Currently there is no other way to calculate hash for such images."}],"source_content_type":"text/x-rst","patch_set":4,"id":"292bd63f_40322fc6","line":23,"range":{"start_line":23,"start_character":31,"end_line":23,"end_character":40},"in_reply_to":"c86a1571_d9c9951a","updated":"2024-06-28 14:09:44.000000000","message":"Done","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"9feb3d4275fedb16697b67188d0809d8c81c3469","unresolved":true,"context_lines":[{"line_number":34,"context_line":"This API will be handled as follows:"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"1. Since hash calculation will be a long running operation, it will be"},{"line_number":37,"context_line":"   executed in the background in the async task by setting the value of"},{"line_number":38,"context_line":"   `os_hash_algo` until the completion of the task."},{"line_number":39,"context_line":"   If hash calculation fails, retry hash calulation mechanism will be"},{"line_number":40,"context_line":"   added by providing a configuration option ``http_retries`` for"},{"line_number":41,"context_line":"   maximum retries. If after all the retries, the hash calculation still"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3c71b520_d2ebade3","line":38,"range":{"start_line":37,"start_character":48,"end_line":38,"end_character":51},"updated":"2024-06-28 07:31:44.000000000","message":"We are going to use a placeholder right?\nwhat value will be set of os_hash_algo while the hash calculation is being performed in the background?","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"dba2029e40af794ce43987a1600a074c7b393e7f","unresolved":true,"context_lines":[{"line_number":34,"context_line":"This API will be handled as follows:"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"1. Since hash calculation will be a long running operation, it will be"},{"line_number":37,"context_line":"   executed in the background in the async task by setting the value of"},{"line_number":38,"context_line":"   `os_hash_algo` until the completion of the task."},{"line_number":39,"context_line":"   If hash calculation fails, retry hash calulation mechanism will be"},{"line_number":40,"context_line":"   added by providing a configuration option ``http_retries`` for"},{"line_number":41,"context_line":"   maximum retries. If after all the retries, the hash calculation still"}],"source_content_type":"text/x-rst","patch_set":4,"id":"a02952cf_2046bd18","line":38,"range":{"start_line":37,"start_character":48,"end_line":38,"end_character":51},"in_reply_to":"3c71b520_d2ebade3","updated":"2024-06-28 14:09:44.000000000","message":"yes, we are passing the os_hash_algo value in the request which will be set when hash calculation is ongoing in the background","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"dcaec004f472eaf1ab9c4712a9d4db064fd284c6","unresolved":true,"context_lines":[{"line_number":34,"context_line":"This API will be handled as follows:"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"1. Since hash calculation will be a long running operation, it will be"},{"line_number":37,"context_line":"   executed in the background in the async task by setting the value of"},{"line_number":38,"context_line":"   `os_hash_algo` until the completion of the task."},{"line_number":39,"context_line":"   If hash calculation fails, retry hash calulation mechanism will be"},{"line_number":40,"context_line":"   added by providing a configuration option ``http_retries`` for"},{"line_number":41,"context_line":"   maximum retries. If after all the retries, the hash calculation still"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bca6f728_7a5278fe","line":38,"range":{"start_line":37,"start_character":48,"end_line":38,"end_character":51},"in_reply_to":"a02952cf_2046bd18","updated":"2024-06-28 15:49:36.000000000","message":"I will say this will be set before calculation process starts","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"fec2cfec963e6b4bd56b431083e20cf3469e2f21","unresolved":false,"context_lines":[{"line_number":34,"context_line":"This API will be handled as follows:"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"1. Since hash calculation will be a long running operation, it will be"},{"line_number":37,"context_line":"   executed in the background in the async task by setting the value of"},{"line_number":38,"context_line":"   `os_hash_algo` until the completion of the task."},{"line_number":39,"context_line":"   If hash calculation fails, retry hash calulation mechanism will be"},{"line_number":40,"context_line":"   added by providing a configuration option ``http_retries`` for"},{"line_number":41,"context_line":"   maximum retries. If after all the retries, the hash calculation still"}],"source_content_type":"text/x-rst","patch_set":4,"id":"23b8b8b0_b9620be4","line":38,"range":{"start_line":37,"start_character":48,"end_line":38,"end_character":51},"in_reply_to":"bca6f728_7a5278fe","updated":"2024-07-01 07:59:45.000000000","message":"Done","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"9feb3d4275fedb16697b67188d0809d8c81c3469","unresolved":true,"context_lines":[{"line_number":36,"context_line":"1. Since hash calculation will be a long running operation, it will be"},{"line_number":37,"context_line":"   executed in the background in the async task by setting the value of"},{"line_number":38,"context_line":"   `os_hash_algo` until the completion of the task."},{"line_number":39,"context_line":"   If hash calculation fails, retry hash calulation mechanism will be"},{"line_number":40,"context_line":"   added by providing a configuration option ``http_retries`` for"},{"line_number":41,"context_line":"   maximum retries. If after all the retries, the hash calculation still"},{"line_number":42,"context_line":"   fails we will not update the hash and checksum values and image will"}],"source_content_type":"text/x-rst","patch_set":4,"id":"eb9d269c_093a8963","line":39,"range":{"start_line":39,"start_character":30,"end_line":39,"end_character":61},"updated":"2024-06-28 07:31:44.000000000","message":"better rephrase it as, \"retry mechanism for hash calculation\" will be added ...","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"9feb3d4275fedb16697b67188d0809d8c81c3469","unresolved":true,"context_lines":[{"line_number":36,"context_line":"1. Since hash calculation will be a long running operation, it will be"},{"line_number":37,"context_line":"   executed in the background in the async task by setting the value of"},{"line_number":38,"context_line":"   `os_hash_algo` until the completion of the task."},{"line_number":39,"context_line":"   If hash calculation fails, retry hash calulation mechanism will be"},{"line_number":40,"context_line":"   added by providing a configuration option ``http_retries`` for"},{"line_number":41,"context_line":"   maximum retries. If after all the retries, the hash calculation still"},{"line_number":42,"context_line":"   fails we will not update the hash and checksum values and image will"}],"source_content_type":"text/x-rst","patch_set":4,"id":"daafa986_094b69d7","line":39,"range":{"start_line":39,"start_character":41,"end_line":39,"end_character":51},"updated":"2024-06-28 07:31:44.000000000","message":"calculation","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"dba2029e40af794ce43987a1600a074c7b393e7f","unresolved":false,"context_lines":[{"line_number":36,"context_line":"1. Since hash calculation will be a long running operation, it will be"},{"line_number":37,"context_line":"   executed in the background in the async task by setting the value of"},{"line_number":38,"context_line":"   `os_hash_algo` until the completion of the task."},{"line_number":39,"context_line":"   If hash calculation fails, retry hash calulation mechanism will be"},{"line_number":40,"context_line":"   added by providing a configuration option ``http_retries`` for"},{"line_number":41,"context_line":"   maximum retries. If after all the retries, the hash calculation still"},{"line_number":42,"context_line":"   fails we will not update the hash and checksum values and image will"}],"source_content_type":"text/x-rst","patch_set":4,"id":"2a2f659d_82ddc991","line":39,"range":{"start_line":39,"start_character":41,"end_line":39,"end_character":51},"in_reply_to":"daafa986_094b69d7","updated":"2024-06-28 14:09:44.000000000","message":"Done","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"dba2029e40af794ce43987a1600a074c7b393e7f","unresolved":false,"context_lines":[{"line_number":36,"context_line":"1. Since hash calculation will be a long running operation, it will be"},{"line_number":37,"context_line":"   executed in the background in the async task by setting the value of"},{"line_number":38,"context_line":"   `os_hash_algo` until the completion of the task."},{"line_number":39,"context_line":"   If hash calculation fails, retry hash calulation mechanism will be"},{"line_number":40,"context_line":"   added by providing a configuration option ``http_retries`` for"},{"line_number":41,"context_line":"   maximum retries. If after all the retries, the hash calculation still"},{"line_number":42,"context_line":"   fails we will not update the hash and checksum values and image will"}],"source_content_type":"text/x-rst","patch_set":4,"id":"a6d2cdd9_8fb8d7d5","line":39,"range":{"start_line":39,"start_character":30,"end_line":39,"end_character":61},"in_reply_to":"eb9d269c_093a8963","updated":"2024-06-28 14:09:44.000000000","message":"Done","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"9feb3d4275fedb16697b67188d0809d8c81c3469","unresolved":true,"context_lines":[{"line_number":40,"context_line":"   added by providing a configuration option ``http_retries`` for"},{"line_number":41,"context_line":"   maximum retries. If after all the retries, the hash calculation still"},{"line_number":42,"context_line":"   fails we will not update the hash and checksum values and image will"},{"line_number":43,"context_line":"   stay in ``active`` state and `os_hash_algo` will be reverted back to"},{"line_number":44,"context_line":"   None."},{"line_number":45,"context_line":"2. This API will be having a lock to the image from starting until the"},{"line_number":46,"context_line":"   lock-holding task completes so that when this operation is in progress"},{"line_number":47,"context_line":"   no one can consume that image."}],"source_content_type":"text/x-rst","patch_set":4,"id":"9ad7cacd_2e9de347","line":44,"range":{"start_line":43,"start_character":32,"end_line":44,"end_character":8},"updated":"2024-06-28 07:31:44.000000000","message":"is this value set to indicate the hash calculation is running in background?","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"dba2029e40af794ce43987a1600a074c7b393e7f","unresolved":true,"context_lines":[{"line_number":40,"context_line":"   added by providing a configuration option ``http_retries`` for"},{"line_number":41,"context_line":"   maximum retries. If after all the retries, the hash calculation still"},{"line_number":42,"context_line":"   fails we will not update the hash and checksum values and image will"},{"line_number":43,"context_line":"   stay in ``active`` state and `os_hash_algo` will be reverted back to"},{"line_number":44,"context_line":"   None."},{"line_number":45,"context_line":"2. This API will be having a lock to the image from starting until the"},{"line_number":46,"context_line":"   lock-holding task completes so that when this operation is in progress"},{"line_number":47,"context_line":"   no one can consume that image."}],"source_content_type":"text/x-rst","patch_set":4,"id":"ecd0d128_5c692b58","line":44,"range":{"start_line":43,"start_character":32,"end_line":44,"end_character":8},"in_reply_to":"9ad7cacd_2e9de347","updated":"2024-06-28 14:09:44.000000000","message":"yes, I mentioned that at line #38","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"fec2cfec963e6b4bd56b431083e20cf3469e2f21","unresolved":false,"context_lines":[{"line_number":40,"context_line":"   added by providing a configuration option ``http_retries`` for"},{"line_number":41,"context_line":"   maximum retries. If after all the retries, the hash calculation still"},{"line_number":42,"context_line":"   fails we will not update the hash and checksum values and image will"},{"line_number":43,"context_line":"   stay in ``active`` state and `os_hash_algo` will be reverted back to"},{"line_number":44,"context_line":"   None."},{"line_number":45,"context_line":"2. This API will be having a lock to the image from starting until the"},{"line_number":46,"context_line":"   lock-holding task completes so that when this operation is in progress"},{"line_number":47,"context_line":"   no one can consume that image."}],"source_content_type":"text/x-rst","patch_set":4,"id":"c14ec477_4cca2448","line":44,"range":{"start_line":43,"start_character":32,"end_line":44,"end_character":8},"in_reply_to":"ecd0d128_5c692b58","updated":"2024-07-01 07:59:45.000000000","message":"Done","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"13ca10539692d529cf5bce9152cc1be71884ead1","unresolved":true,"context_lines":[{"line_number":42,"context_line":"   fails we will not update the hash and checksum values and image will"},{"line_number":43,"context_line":"   stay in ``active`` state and `os_hash_algo` will be reverted back to"},{"line_number":44,"context_line":"   None."},{"line_number":45,"context_line":"2. This API will be having a lock to the image from starting until the"},{"line_number":46,"context_line":"   lock-holding task completes so that when this operation is in progress"},{"line_number":47,"context_line":"   no one can consume that image."},{"line_number":48,"context_line":"3. Incase image data is deleted in between from the backend and store raises"},{"line_number":49,"context_line":"   `ImageNotFound` exception, hash calculation will be failed with proper"},{"line_number":50,"context_line":"   log message and image will be marked as `deleted` if it\u0027s not marked as"}],"source_content_type":"text/x-rst","patch_set":4,"id":"e401097e_ea175406","line":47,"range":{"start_line":45,"start_character":3,"end_line":47,"end_character":33},"updated":"2024-06-28 06:28:22.000000000","message":"I am afraid the lock is not used for this purpose. The lock is strictly for import related operations only, so that if one import related task is in progress no other import operation is allowed on that image.\n\nThere is no mechanism as such which will stop image from consuming as of now.","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"dba2029e40af794ce43987a1600a074c7b393e7f","unresolved":true,"context_lines":[{"line_number":42,"context_line":"   fails we will not update the hash and checksum values and image will"},{"line_number":43,"context_line":"   stay in ``active`` state and `os_hash_algo` will be reverted back to"},{"line_number":44,"context_line":"   None."},{"line_number":45,"context_line":"2. This API will be having a lock to the image from starting until the"},{"line_number":46,"context_line":"   lock-holding task completes so that when this operation is in progress"},{"line_number":47,"context_line":"   no one can consume that image."},{"line_number":48,"context_line":"3. Incase image data is deleted in between from the backend and store raises"},{"line_number":49,"context_line":"   `ImageNotFound` exception, hash calculation will be failed with proper"},{"line_number":50,"context_line":"   log message and image will be marked as `deleted` if it\u0027s not marked as"}],"source_content_type":"text/x-rst","patch_set":4,"id":"aca03718_8df5cfcf","line":47,"range":{"start_line":45,"start_character":3,"end_line":47,"end_character":33},"in_reply_to":"9f51cc2e_110f5ff9","updated":"2024-06-28 14:09:44.000000000","message":"yeah right, it would restrict other import operation on that image.","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"fec2cfec963e6b4bd56b431083e20cf3469e2f21","unresolved":false,"context_lines":[{"line_number":42,"context_line":"   fails we will not update the hash and checksum values and image will"},{"line_number":43,"context_line":"   stay in ``active`` state and `os_hash_algo` will be reverted back to"},{"line_number":44,"context_line":"   None."},{"line_number":45,"context_line":"2. This API will be having a lock to the image from starting until the"},{"line_number":46,"context_line":"   lock-holding task completes so that when this operation is in progress"},{"line_number":47,"context_line":"   no one can consume that image."},{"line_number":48,"context_line":"3. Incase image data is deleted in between from the backend and store raises"},{"line_number":49,"context_line":"   `ImageNotFound` exception, hash calculation will be failed with proper"},{"line_number":50,"context_line":"   log message and image will be marked as `deleted` if it\u0027s not marked as"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ef2b4b2a_1d9e2057","line":47,"range":{"start_line":45,"start_character":3,"end_line":47,"end_character":33},"in_reply_to":"aca03718_8df5cfcf","updated":"2024-07-01 07:59:45.000000000","message":"Done","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"9feb3d4275fedb16697b67188d0809d8c81c3469","unresolved":true,"context_lines":[{"line_number":42,"context_line":"   fails we will not update the hash and checksum values and image will"},{"line_number":43,"context_line":"   stay in ``active`` state and `os_hash_algo` will be reverted back to"},{"line_number":44,"context_line":"   None."},{"line_number":45,"context_line":"2. This API will be having a lock to the image from starting until the"},{"line_number":46,"context_line":"   lock-holding task completes so that when this operation is in progress"},{"line_number":47,"context_line":"   no one can consume that image."},{"line_number":48,"context_line":"3. Incase image data is deleted in between from the backend and store raises"},{"line_number":49,"context_line":"   `ImageNotFound` exception, hash calculation will be failed with proper"},{"line_number":50,"context_line":"   log message and image will be marked as `deleted` if it\u0027s not marked as"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9f51cc2e_110f5ff9","line":47,"range":{"start_line":45,"start_character":3,"end_line":47,"end_character":33},"in_reply_to":"e401097e_ea175406","updated":"2024-06-28 07:31:44.000000000","message":"I also don\u0027t see how the hash calculation should stop us from consuming the image. IIUC, the hash calculation is a read only operation on the image where we read chunks and calculate hash based on it. Unless we are doing any destructive or update operation on the image, it should be available to be consumed right?\nThe image is already consumable without the hash and we are performing the hash calculation in the background so such a lock will defeat the purpose of our design of this API","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"13ca10539692d529cf5bce9152cc1be71884ead1","unresolved":true,"context_lines":[{"line_number":46,"context_line":"   lock-holding task completes so that when this operation is in progress"},{"line_number":47,"context_line":"   no one can consume that image."},{"line_number":48,"context_line":"3. Incase image data is deleted in between from the backend and store raises"},{"line_number":49,"context_line":"   `ImageNotFound` exception, hash calculation will be failed with proper"},{"line_number":50,"context_line":"   log message and image will be marked as `deleted` if it\u0027s not marked as"},{"line_number":51,"context_line":"   `deleted` (Incase of RBD backend only, image will not be marked `deleted`"},{"line_number":52,"context_line":"   even after deleting data). Cinder backend does not allow to delete the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5c69b895_dd4c5347","line":49,"range":{"start_line":49,"start_character":52,"end_line":49,"end_character":61},"updated":"2024-06-28 06:28:22.000000000","message":"marked as failed","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"dba2029e40af794ce43987a1600a074c7b393e7f","unresolved":false,"context_lines":[{"line_number":46,"context_line":"   lock-holding task completes so that when this operation is in progress"},{"line_number":47,"context_line":"   no one can consume that image."},{"line_number":48,"context_line":"3. Incase image data is deleted in between from the backend and store raises"},{"line_number":49,"context_line":"   `ImageNotFound` exception, hash calculation will be failed with proper"},{"line_number":50,"context_line":"   log message and image will be marked as `deleted` if it\u0027s not marked as"},{"line_number":51,"context_line":"   `deleted` (Incase of RBD backend only, image will not be marked `deleted`"},{"line_number":52,"context_line":"   even after deleting data). Cinder backend does not allow to delete the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ea1c24a7_53d254a5","line":49,"range":{"start_line":49,"start_character":52,"end_line":49,"end_character":61},"in_reply_to":"5c69b895_dd4c5347","updated":"2024-06-28 14:09:44.000000000","message":"Done","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"9feb3d4275fedb16697b67188d0809d8c81c3469","unresolved":true,"context_lines":[{"line_number":47,"context_line":"   no one can consume that image."},{"line_number":48,"context_line":"3. Incase image data is deleted in between from the backend and store raises"},{"line_number":49,"context_line":"   `ImageNotFound` exception, hash calculation will be failed with proper"},{"line_number":50,"context_line":"   log message and image will be marked as `deleted` if it\u0027s not marked as"},{"line_number":51,"context_line":"   `deleted` (Incase of RBD backend only, image will not be marked `deleted`"},{"line_number":52,"context_line":"   even after deleting data). Cinder backend does not allow to delete the"},{"line_number":53,"context_line":"   image since the volume created from image during data read will in-use"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3ef5517f_90a3b76c","line":50,"range":{"start_line":50,"start_character":52,"end_line":50,"end_character":53},"updated":"2024-06-28 07:31:44.000000000","message":"nit: full stop","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"dba2029e40af794ce43987a1600a074c7b393e7f","unresolved":false,"context_lines":[{"line_number":47,"context_line":"   no one can consume that image."},{"line_number":48,"context_line":"3. Incase image data is deleted in between from the backend and store raises"},{"line_number":49,"context_line":"   `ImageNotFound` exception, hash calculation will be failed with proper"},{"line_number":50,"context_line":"   log message and image will be marked as `deleted` if it\u0027s not marked as"},{"line_number":51,"context_line":"   `deleted` (Incase of RBD backend only, image will not be marked `deleted`"},{"line_number":52,"context_line":"   even after deleting data). Cinder backend does not allow to delete the"},{"line_number":53,"context_line":"   image since the volume created from image during data read will in-use"}],"source_content_type":"text/x-rst","patch_set":4,"id":"14eb1968_fd0b04ec","line":50,"range":{"start_line":50,"start_character":52,"end_line":50,"end_character":53},"in_reply_to":"3ef5517f_90a3b76c","updated":"2024-06-28 14:09:44.000000000","message":"Done","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"9feb3d4275fedb16697b67188d0809d8c81c3469","unresolved":true,"context_lines":[{"line_number":48,"context_line":"3. Incase image data is deleted in between from the backend and store raises"},{"line_number":49,"context_line":"   `ImageNotFound` exception, hash calculation will be failed with proper"},{"line_number":50,"context_line":"   log message and image will be marked as `deleted` if it\u0027s not marked as"},{"line_number":51,"context_line":"   `deleted` (Incase of RBD backend only, image will not be marked `deleted`"},{"line_number":52,"context_line":"   even after deleting data). Cinder backend does not allow to delete the"},{"line_number":53,"context_line":"   image since the volume created from image during data read will in-use"},{"line_number":54,"context_line":"   state."},{"line_number":55,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"48b7b0d1_a64be078","line":52,"range":{"start_line":51,"start_character":14,"end_line":52,"end_character":27},"updated":"2024-06-28 07:31:44.000000000","message":"why is this the case?","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"dba2029e40af794ce43987a1600a074c7b393e7f","unresolved":true,"context_lines":[{"line_number":48,"context_line":"3. Incase image data is deleted in between from the backend and store raises"},{"line_number":49,"context_line":"   `ImageNotFound` exception, hash calculation will be failed with proper"},{"line_number":50,"context_line":"   log message and image will be marked as `deleted` if it\u0027s not marked as"},{"line_number":51,"context_line":"   `deleted` (Incase of RBD backend only, image will not be marked `deleted`"},{"line_number":52,"context_line":"   even after deleting data). Cinder backend does not allow to delete the"},{"line_number":53,"context_line":"   image since the volume created from image during data read will in-use"},{"line_number":54,"context_line":"   state."},{"line_number":55,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7226c77f_d9977135","line":52,"range":{"start_line":51,"start_character":14,"end_line":52,"end_character":27},"in_reply_to":"48b7b0d1_a64be078","updated":"2024-06-28 14:09:44.000000000","message":"It\u0027s because one connection is already open for reading the image and image cannot be deleted closing it. Adding the BZ link for more details.","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"fec2cfec963e6b4bd56b431083e20cf3469e2f21","unresolved":false,"context_lines":[{"line_number":48,"context_line":"3. Incase image data is deleted in between from the backend and store raises"},{"line_number":49,"context_line":"   `ImageNotFound` exception, hash calculation will be failed with proper"},{"line_number":50,"context_line":"   log message and image will be marked as `deleted` if it\u0027s not marked as"},{"line_number":51,"context_line":"   `deleted` (Incase of RBD backend only, image will not be marked `deleted`"},{"line_number":52,"context_line":"   even after deleting data). Cinder backend does not allow to delete the"},{"line_number":53,"context_line":"   image since the volume created from image during data read will in-use"},{"line_number":54,"context_line":"   state."},{"line_number":55,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"0f23d010_b9b39c2b","line":52,"range":{"start_line":51,"start_character":14,"end_line":52,"end_character":27},"in_reply_to":"7226c77f_d9977135","updated":"2024-07-01 07:59:45.000000000","message":"Done","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"13ca10539692d529cf5bce9152cc1be71884ead1","unresolved":true,"context_lines":[{"line_number":49,"context_line":"   `ImageNotFound` exception, hash calculation will be failed with proper"},{"line_number":50,"context_line":"   log message and image will be marked as `deleted` if it\u0027s not marked as"},{"line_number":51,"context_line":"   `deleted` (Incase of RBD backend only, image will not be marked `deleted`"},{"line_number":52,"context_line":"   even after deleting data). Cinder backend does not allow to delete the"},{"line_number":53,"context_line":"   image since the volume created from image during data read will in-use"},{"line_number":54,"context_line":"   state."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"We will introduce a new admin-only policy ``calculate_hash``."},{"line_number":57,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"ac0cb5c7_39ff8a61","line":54,"range":{"start_line":52,"start_character":30,"end_line":54,"end_character":9},"updated":"2024-06-28 06:28:22.000000000","message":"AFAIK volume will be in-use only if it is attached to a server or server is booted from the volume.","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"dba2029e40af794ce43987a1600a074c7b393e7f","unresolved":true,"context_lines":[{"line_number":49,"context_line":"   `ImageNotFound` exception, hash calculation will be failed with proper"},{"line_number":50,"context_line":"   log message and image will be marked as `deleted` if it\u0027s not marked as"},{"line_number":51,"context_line":"   `deleted` (Incase of RBD backend only, image will not be marked `deleted`"},{"line_number":52,"context_line":"   even after deleting data). Cinder backend does not allow to delete the"},{"line_number":53,"context_line":"   image since the volume created from image during data read will in-use"},{"line_number":54,"context_line":"   state."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"We will introduce a new admin-only policy ``calculate_hash``."},{"line_number":57,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"c5ef81ce_d11cfecf","line":54,"range":{"start_line":52,"start_character":30,"end_line":54,"end_character":9},"in_reply_to":"6d826eb3_5ccf92f2","updated":"2024-06-28 14:09:44.000000000","message":"As discussed on slack, keeping these details here and we will discuss more during upcoming PTG to decide uniform way for all stores.","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"9feb3d4275fedb16697b67188d0809d8c81c3469","unresolved":true,"context_lines":[{"line_number":49,"context_line":"   `ImageNotFound` exception, hash calculation will be failed with proper"},{"line_number":50,"context_line":"   log message and image will be marked as `deleted` if it\u0027s not marked as"},{"line_number":51,"context_line":"   `deleted` (Incase of RBD backend only, image will not be marked `deleted`"},{"line_number":52,"context_line":"   even after deleting data). Cinder backend does not allow to delete the"},{"line_number":53,"context_line":"   image since the volume created from image during data read will in-use"},{"line_number":54,"context_line":"   state."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"We will introduce a new admin-only policy ``calculate_hash``."},{"line_number":57,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"6d826eb3_5ccf92f2","line":54,"range":{"start_line":52,"start_character":30,"end_line":54,"end_character":9},"in_reply_to":"ac0cb5c7_39ff8a61","updated":"2024-06-28 07:31:44.000000000","message":"I\u0027m unsure what we are trying to state here.\nSo when glance backend is Cinder and we create an image, the image data is stored in an Image-Volume. That image volume is generally in \u0027available\u0027 state but when we try to read data from image, that volume is attached to the host running the glance-api service and the volume transitions into \u0027in-use\u0027 state.\nAre we saying that Cinder does not allow volume to be deleted when the Image-Volume is in \u0027in-use\u0027 state? why would someone try to do that instead of trying to delete the image from glance CLI which will also delete the Image-Volume.","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"fec2cfec963e6b4bd56b431083e20cf3469e2f21","unresolved":false,"context_lines":[{"line_number":49,"context_line":"   `ImageNotFound` exception, hash calculation will be failed with proper"},{"line_number":50,"context_line":"   log message and image will be marked as `deleted` if it\u0027s not marked as"},{"line_number":51,"context_line":"   `deleted` (Incase of RBD backend only, image will not be marked `deleted`"},{"line_number":52,"context_line":"   even after deleting data). Cinder backend does not allow to delete the"},{"line_number":53,"context_line":"   image since the volume created from image during data read will in-use"},{"line_number":54,"context_line":"   state."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"We will introduce a new admin-only policy ``calculate_hash``."},{"line_number":57,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"2b585098_a8c76f5c","line":54,"range":{"start_line":52,"start_character":30,"end_line":54,"end_character":9},"in_reply_to":"c5ef81ce_d11cfecf","updated":"2024-07-01 07:59:45.000000000","message":"Done","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"9feb3d4275fedb16697b67188d0809d8c81c3469","unresolved":true,"context_lines":[{"line_number":91,"context_line":"    - Error - 409 (if image is not in ACTIVE state),"},{"line_number":92,"context_line":"              403 (Forbidden for normal user)"},{"line_number":93,"context_line":"              400 (BadRequest if invalid os_hash_algo passed)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Security impact"},{"line_number":96,"context_line":"---------------"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"99082d98_69f5cdcf","line":94,"updated":"2024-06-28 07:31:44.000000000","message":"404 if image is not found?","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"dba2029e40af794ce43987a1600a074c7b393e7f","unresolved":false,"context_lines":[{"line_number":91,"context_line":"    - Error - 409 (if image is not in ACTIVE state),"},{"line_number":92,"context_line":"              403 (Forbidden for normal user)"},{"line_number":93,"context_line":"              400 (BadRequest if invalid os_hash_algo passed)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Security impact"},{"line_number":96,"context_line":"---------------"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"c4776fd0_6a3648d6","line":94,"in_reply_to":"99082d98_69f5cdcf","updated":"2024-06-28 14:09:44.000000000","message":"Done","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"9feb3d4275fedb16697b67188d0809d8c81c3469","unresolved":true,"context_lines":[{"line_number":105,"context_line":"Other end user impact"},{"line_number":106,"context_line":"---------------------"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"A glanceclient and openstackclient change will be required to expose"},{"line_number":109,"context_line":"this to interactive users."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1b5c1b04_a0bde176","line":108,"range":{"start_line":108,"start_character":0,"end_line":108,"end_character":41},"updated":"2024-06-28 07:31:44.000000000","message":"Changes in glanceclient and openstackclient will be required","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"dba2029e40af794ce43987a1600a074c7b393e7f","unresolved":false,"context_lines":[{"line_number":105,"context_line":"Other end user impact"},{"line_number":106,"context_line":"---------------------"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"A glanceclient and openstackclient change will be required to expose"},{"line_number":109,"context_line":"this to interactive users."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"b8d714c5_ce17f189","line":108,"range":{"start_line":108,"start_character":0,"end_line":108,"end_character":41},"in_reply_to":"1b5c1b04_a0bde176","updated":"2024-06-28 14:09:44.000000000","message":"Done","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"9feb3d4275fedb16697b67188d0809d8c81c3469","unresolved":true,"context_lines":[{"line_number":106,"context_line":"---------------------"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"A glanceclient and openstackclient change will be required to expose"},{"line_number":109,"context_line":"this to interactive users."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Performance Impact"},{"line_number":112,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"35133960_eb28869f","line":109,"range":{"start_line":109,"start_character":8,"end_line":109,"end_character":26},"updated":"2024-06-28 07:31:44.000000000","message":"i think this is intended for \"admin user\" only?","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"dba2029e40af794ce43987a1600a074c7b393e7f","unresolved":false,"context_lines":[{"line_number":106,"context_line":"---------------------"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"A glanceclient and openstackclient change will be required to expose"},{"line_number":109,"context_line":"this to interactive users."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Performance Impact"},{"line_number":112,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"8569caa1_e9d0be6a","line":109,"range":{"start_line":109,"start_character":8,"end_line":109,"end_character":26},"in_reply_to":"35133960_eb28869f","updated":"2024-06-28 14:09:44.000000000","message":"Done","commit_id":"47495847b613a32a6ad2a2f42a216c916a5fbca4"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"dcaec004f472eaf1ab9c4712a9d4db064fd284c6","unresolved":true,"context_lines":[{"line_number":43,"context_line":"   fails we will not update the hash and checksum values and image will"},{"line_number":44,"context_line":"   stay in ``active`` state and `os_hash_algo` will be reverted back to"},{"line_number":45,"context_line":"   None."},{"line_number":46,"context_line":"2. This API will be having a lock to the image to restrict other import"},{"line_number":47,"context_line":"   operations on that image."},{"line_number":48,"context_line":"3. Incase delete image has been attempted during hash calculation of that"},{"line_number":49,"context_line":"   image, there are different responses from stores while reading the data,"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"2e04a8aa_84af1918","line":47,"range":{"start_line":46,"start_character":3,"end_line":47,"end_character":28},"updated":"2024-06-28 15:49:36.000000000","message":"So related to this comment, do we really need to acquire lock in this case?\n\nBecause image is already in active state and the only import operation you can perform on it is copy it to other store which should not be restricted IMO. Unless you find it useful for any other reason please do mention it here.","commit_id":"6225419e3a8b1c32d276873912791271e555e1d3"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"0863a2afc18ce8820df897e138c13ab13f552411","unresolved":true,"context_lines":[{"line_number":43,"context_line":"   fails we will not update the hash and checksum values and image will"},{"line_number":44,"context_line":"   stay in ``active`` state and `os_hash_algo` will be reverted back to"},{"line_number":45,"context_line":"   None."},{"line_number":46,"context_line":"2. This API will be having a lock to the image to restrict other import"},{"line_number":47,"context_line":"   operations on that image."},{"line_number":48,"context_line":"3. Incase delete image has been attempted during hash calculation of that"},{"line_number":49,"context_line":"   image, there are different responses from stores while reading the data,"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"6de624c4_b956781e","line":47,"range":{"start_line":46,"start_character":3,"end_line":47,"end_character":28},"in_reply_to":"2e04a8aa_84af1918","updated":"2024-07-01 07:55:04.000000000","message":"yeah not really, since it\u0027s admin only there is no possibility of other user to call the same operation simultaneously on the same image. I will remove the lock part..","commit_id":"6225419e3a8b1c32d276873912791271e555e1d3"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"fec2cfec963e6b4bd56b431083e20cf3469e2f21","unresolved":false,"context_lines":[{"line_number":43,"context_line":"   fails we will not update the hash and checksum values and image will"},{"line_number":44,"context_line":"   stay in ``active`` state and `os_hash_algo` will be reverted back to"},{"line_number":45,"context_line":"   None."},{"line_number":46,"context_line":"2. This API will be having a lock to the image to restrict other import"},{"line_number":47,"context_line":"   operations on that image."},{"line_number":48,"context_line":"3. Incase delete image has been attempted during hash calculation of that"},{"line_number":49,"context_line":"   image, there are different responses from stores while reading the data,"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9e0e5e35_1b2dd73e","line":47,"range":{"start_line":46,"start_character":3,"end_line":47,"end_character":28},"in_reply_to":"6de624c4_b956781e","updated":"2024-07-01 07:59:45.000000000","message":"Done","commit_id":"6225419e3a8b1c32d276873912791271e555e1d3"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"4eb36288248ad9997782ca7a61bdeeb5a48541a3","unresolved":true,"context_lines":[{"line_number":56,"context_line":"     successful."},{"line_number":57,"context_line":"   * Swift allows image deletion during data reading or image-download."},{"line_number":58,"context_line":"   * Cinder backend does not allow to delete the image since while reading"},{"line_number":59,"context_line":"     data or downloading the image from volume, volume will be in-use state."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"We will introduce a new admin-only policy ``calculate_hash``."},{"line_number":62,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"28500c3c_c3139f36","line":59,"range":{"start_line":59,"start_character":75,"end_line":59,"end_character":76},"updated":"2024-07-01 08:16:34.000000000","message":"Should we also include that since this is async API call, admin can use API /v2/images/{id}/tasks to check the progress of the task?","commit_id":"569f0060724672f30206bd83b06b70620c422e55"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"d447205d0793805c2bc8517052164ab53de5f43a","unresolved":true,"context_lines":[{"line_number":56,"context_line":"     successful."},{"line_number":57,"context_line":"   * Swift allows image deletion during data reading or image-download."},{"line_number":58,"context_line":"   * Cinder backend does not allow to delete the image since while reading"},{"line_number":59,"context_line":"     data or downloading the image from volume, volume will be in-use state."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"We will introduce a new admin-only policy ``calculate_hash``."},{"line_number":62,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3050cf8a_630196b3","line":59,"range":{"start_line":59,"start_character":75,"end_line":59,"end_character":76},"in_reply_to":"1cb75d88_08d11494","updated":"2024-07-09 10:41:10.000000000","message":"I think this is needed, you can check for opinion of others and decide accordingly!","commit_id":"569f0060724672f30206bd83b06b70620c422e55"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"9ed374ec8fa6806275c82122022ee8dd2975218a","unresolved":true,"context_lines":[{"line_number":56,"context_line":"     successful."},{"line_number":57,"context_line":"   * Swift allows image deletion during data reading or image-download."},{"line_number":58,"context_line":"   * Cinder backend does not allow to delete the image since while reading"},{"line_number":59,"context_line":"     data or downloading the image from volume, volume will be in-use state."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"We will introduce a new admin-only policy ``calculate_hash``."},{"line_number":62,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"1cb75d88_08d11494","line":59,"range":{"start_line":59,"start_character":75,"end_line":59,"end_character":76},"in_reply_to":"28500c3c_c3139f36","updated":"2024-07-09 10:36:17.000000000","message":"Do we really need to mention this in spec? I mean for all the long running async task, this is the all time suggested way to check the task status. \n\nhow about adding it if new PS needed?","commit_id":"569f0060724672f30206bd83b06b70620c422e55"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"218843b3c9a00760d8c50dd1fabe81033d1a9fbe","unresolved":false,"context_lines":[{"line_number":56,"context_line":"     successful."},{"line_number":57,"context_line":"   * Swift allows image deletion during data reading or image-download."},{"line_number":58,"context_line":"   * Cinder backend does not allow to delete the image since while reading"},{"line_number":59,"context_line":"     data or downloading the image from volume, volume will be in-use state."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"We will introduce a new admin-only policy ``calculate_hash``."},{"line_number":62,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"764f335c_69a01bad","line":59,"range":{"start_line":59,"start_character":75,"end_line":59,"end_character":76},"in_reply_to":"3050cf8a_630196b3","updated":"2024-07-11 10:59:03.000000000","message":"Done","commit_id":"569f0060724672f30206bd83b06b70620c422e55"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"85194764037936a398253fbec792b042434aa524","unresolved":true,"context_lines":[{"line_number":147,"context_line":"* Implement the API with unit/functional tests"},{"line_number":148,"context_line":"* Document the API in api-ref"},{"line_number":149,"context_line":"* Write a tempest test to check these API"},{"line_number":150,"context_line":"* Implement support in OpenstackClient"},{"line_number":151,"context_line":"* Implement support in glanceclient"},{"line_number":152,"context_line":"* Add documentation for behaviour of new API"},{"line_number":153,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"a83200da_09c28e0c","line":150,"range":{"start_line":150,"start_character":23,"end_line":150,"end_character":38},"updated":"2024-07-09 15:25:06.000000000","message":"Will it also require changes to OpenStack SDK?","commit_id":"569f0060724672f30206bd83b06b70620c422e55"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"218843b3c9a00760d8c50dd1fabe81033d1a9fbe","unresolved":false,"context_lines":[{"line_number":147,"context_line":"* Implement the API with unit/functional tests"},{"line_number":148,"context_line":"* Document the API in api-ref"},{"line_number":149,"context_line":"* Write a tempest test to check these API"},{"line_number":150,"context_line":"* Implement support in OpenstackClient"},{"line_number":151,"context_line":"* Implement support in glanceclient"},{"line_number":152,"context_line":"* Add documentation for behaviour of new API"},{"line_number":153,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"652b4480_e5f98017","line":150,"range":{"start_line":150,"start_character":23,"end_line":150,"end_character":38},"in_reply_to":"a83200da_09c28e0c","updated":"2024-07-11 10:59:03.000000000","message":"Done","commit_id":"569f0060724672f30206bd83b06b70620c422e55"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"bc16c4252578f4af1716497dcdf8c4c06a503950","unresolved":true,"context_lines":[{"line_number":43,"context_line":"   fails we will not update the hash and checksum values and image will"},{"line_number":44,"context_line":"   stay in ``active`` state and `os_hash_algo` will be reverted back to"},{"line_number":45,"context_line":"   `None`."},{"line_number":46,"context_line":"2. Incase delete image has been attempted during hash calculation of that"},{"line_number":47,"context_line":"   image, there are different responses from stores while reading the data,"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"   * RBD throws `ImageNotFound` during data read but deletes the data from"},{"line_number":50,"context_line":"     backend and image remains in active state even though delete call fails"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7e4943e0_f3b67318","line":47,"range":{"start_line":46,"start_character":3,"end_line":47,"end_character":75},"updated":"2024-07-11 11:47:54.000000000","message":"What if the legacy image snapshot already has instance boot from it?","commit_id":"b216d312f9715f5635b7ff1df1d683650bc775bf"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"5ea63636faeb1e51ec488b2a59b7d062721014f3","unresolved":true,"context_lines":[{"line_number":43,"context_line":"   fails we will not update the hash and checksum values and image will"},{"line_number":44,"context_line":"   stay in ``active`` state and `os_hash_algo` will be reverted back to"},{"line_number":45,"context_line":"   `None`."},{"line_number":46,"context_line":"2. Incase delete image has been attempted during hash calculation of that"},{"line_number":47,"context_line":"   image, there are different responses from stores while reading the data,"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"   * RBD throws `ImageNotFound` during data read but deletes the data from"},{"line_number":50,"context_line":"     backend and image remains in active state even though delete call fails"}],"source_content_type":"text/x-rst","patch_set":7,"id":"26b4e72a_2eb6cc83","line":47,"range":{"start_line":46,"start_character":3,"end_line":47,"end_character":75},"in_reply_to":"7e4943e0_f3b67318","updated":"2024-07-11 12:45:29.000000000","message":"I think, in that case ideally delete should be rejected with InUseByStore error and image should be active but I have seen different results on 2 different environments, so not sure atm.\nOn one env, delete fails with InUseByStore error and image remains active whereas on other deletion is successful.","commit_id":"b216d312f9715f5635b7ff1df1d683650bc775bf"}]}
