)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"700289d3a81f0845a77e40c5221c769638220d04","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":15,"id":"6e27ff8b_31692026","line":13,"updated":"2022-07-20 17:46:18.000000000","message":"You can find the result of this test in the \u0027tempest-integrated-storage-import\u0027 and other jobs inherited from this;\nhttps://review.opendev.org/c/openstack/glance/+/847139","commit_id":"267edf13bcd4b92e6e377ba22d65c010c5312653"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"7f868dac6063d60675edae16641e18eba524dd39","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"e2986028_5528db21","updated":"2022-01-18 14:25:47.000000000","message":"Results will be available here,\nhttps://review.opendev.org/c/openstack/glance/+/825115","commit_id":"3a8cd4cf3247e9ed4f14dcb4900297a71ce3f362"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"a1e1e337bd031ef0762f88222772b7d80c96aaf8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"726238d0_564ae25e","updated":"2022-01-18 14:22:21.000000000","message":"Still need to add some more scenarios, but this contains basic caching operations, so open for early suggestions.","commit_id":"3a8cd4cf3247e9ed4f14dcb4900297a71ce3f362"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"166006571274646a232cfd49b46b2f25deed8472","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"07d83964_ac0c30f3","updated":"2022-01-21 20:17:02.000000000","message":"Gmann, do you have any suggestions for how to handle testing of something that relies on a periodic task (per the comments here)? I can imagine that this would work most of the time (and with an unfortunate wait for the periodic to run), but especially at times of high gate load, we\u0027ll start failing this check because we get unlucky and the caching periodic triggers while we\u0027re struggling to make the next request.","commit_id":"b92ef6276a8406a31b4313efe08c48dd276b1ef5"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"8a2efb5fd9acbb72ad35876dee84926aeb43967f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"47fce5e6_9dcdf45e","updated":"2022-01-21 15:10:37.000000000","message":"Looks like a good start! Some comments inline, but also the same concern about racy behavior I\u0027ve had from the beginning.  Maybe there\u0027s something I\u0027m missing.","commit_id":"b92ef6276a8406a31b4313efe08c48dd276b1ef5"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"68286ce14eecf86541114087d9fb3abae38de990","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"f4435f1e_9340a8cc","updated":"2022-01-21 15:24:07.000000000","message":"Thank you for review Dan, I will make changes as per your suggestions, also added some inline responses.","commit_id":"b92ef6276a8406a31b4313efe08c48dd276b1ef5"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7b6713ec68d3462547eed2bd2baae6acce1c2715","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"ed923b28_602f7f75","in_reply_to":"07d83964_ac0c30f3","updated":"2022-02-08 18:10:01.000000000","message":"Sorry, I missed this comment. Yeah, it is difficult to test these types of thing in Tempest which is not API driven and depends on backend tasks or periodic operation. \n\nAs Tempest test the things as per actual usage of any API/feature, I have one question on this API usage. how user are expecting to know when the cache is ready to list? just hit and try or they know the periodic time and will wait for it manully? \n\nI like the idea of API driven cache trigger along with periodic chache and that way it will be easy for users to use it and same way we can test in tempest.\n\nOtherwise. with perodic cache only, it is difficult to test it in Tempest.","commit_id":"b92ef6276a8406a31b4313efe08c48dd276b1ef5"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"eb4ba337adecd1b91b8a4aef859c946987d4f9bf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"47d24584_e7d6a780","in_reply_to":"ed923b28_602f7f75","updated":"2022-02-08 18:55:12.000000000","message":"As of now user will only able to queue the image for caching and later the periodic job will cache the image. This was the case since cache is introduced in glance. Earlier it was a separate tool known as glance-cache-prefetcher which was used to run as a cron job on controller nodes, now we deprecated it and introduced the periodic job for the same.\n\nWe can introduce this new API t trigger the caching periodic job in upcoming cycle.","commit_id":"b92ef6276a8406a31b4313efe08c48dd276b1ef5"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"df80edffd7db2a4670809c19bd0e1efe86049df0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"426611f4_895e283f","in_reply_to":"ed923b28_602f7f75","updated":"2022-07-05 14:00:52.000000000","message":"Yeah, the user has to queue an image and then wait/poll to see if it ever shows up in the cached list. Presumably this is an admin or on behalf of some admin, which knows what the periodic interval is and will know that if it doesn\u0027t get cached after interval+transfer_time that it\u0027s broken. But yeah, it\u0027s not friendly at all, IMHO.\n\nI guess the other problem here is that even though we\u0027ve set the devstack g-api-r interval to ten seconds, tempest needs to run on production clouds for validation reasons. Someone could easily have their interval set at 60 minutes or more and the test will not have any recourse other than to assume the feature is broken and report failure.\n\nI guess I\u0027d like to revisit the idea of a manual trigger as I think that\u0027s really how a lot of people will want this to work anyway.","commit_id":"b92ef6276a8406a31b4313efe08c48dd276b1ef5"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d1d40a61304b5416b4e74ab8a2c107c142936978","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"fe7f6f43_0a76c261","updated":"2022-02-02 16:39:09.000000000","message":"Looks like caching is skipped in the main job:\n\ntest_image_caching_cycle[id-4bf6adba-2f9f-47e9-a6d5-37f21ad4387c]\n\tskip\n\nIs it run in another job here or do we need to enable it?","commit_id":"859b1127cc7a4d888c4f77bff77f6ab8aaae82f4"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"493c862e7ddb01252706eae8a069b3fdba292b68","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"ce0cb027_57ced392","in_reply_to":"86bcde09_03f06b3c","updated":"2022-02-02 17:35:54.000000000","message":"Yep, now you can find everything related to this change here;\nhttps://review.opendev.org/q/topic:bp%252Fcache-api","commit_id":"859b1127cc7a4d888c4f77bff77f6ab8aaae82f4"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ba63c03d77d4bff41e497ca05158bf37745d946b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"86bcde09_03f06b3c","in_reply_to":"fb73a529_1a866705","updated":"2022-02-02 17:29:49.000000000","message":"Ah, thanks. Maybe you could change them all to be the same branch? Makes it easier to find all the related ones.","commit_id":"859b1127cc7a4d888c4f77bff77f6ab8aaae82f4"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"79e0c5162efd2407c15f4b4adee315ff264251c4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"fb73a529_1a866705","in_reply_to":"fe7f6f43_0a76c261","updated":"2022-02-02 16:45:14.000000000","message":"https://review.opendev.org/c/openstack/glance/+/825115\n\nHere you can verify the test result.","commit_id":"859b1127cc7a4d888c4f77bff77f6ab8aaae82f4"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"0a1aba6e4355cbc5200e24a702689d29b8d9044a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"32e1fbbd_b6aa87ae","updated":"2022-06-22 13:50:49.000000000","message":"Test is passing at;\n1. https://review.opendev.org/c/openstack/glance/+/847139/2\n2. https://903b5f731a8432956098-1157fa9303f82335ed0bb07a311cffdc.ssl.cf2.rackcdn.com/847139/2/check/tempest-integrated-storage-import/c39e87f/job-output.txt\n\n2022-06-22 10:22:27.003800 | controller | {2} tempest.api.image.v2.admin.test_image_caching.ImageCachingTest.test_image_caching_cycle [6.295167s] ... ok\n","commit_id":"83f1a7f380271d642a132a79b26830231f67f52c"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"a67a72a740599af7f549cb1e74e77f2c23de410e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"42c9c8f6_ed38cb9a","updated":"2022-06-22 09:19:20.000000000","message":"https://review.opendev.org/c/openstack/glance/+/847139\n\nTest is enabled here;","commit_id":"83f1a7f380271d642a132a79b26830231f67f52c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"df80edffd7db2a4670809c19bd0e1efe86049df0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"e97c07c8_c03756c9","updated":"2022-07-05 14:00:52.000000000","message":"\u003e Nothing wrong with the code per se, but I\u0027m not seeing the proposed test running in any of the jobs, the only one I wasn\u0027t able to verify was the glance-multistore-cinder-importe. \n\nRight, because the cache stuff is only enabled in glance jobs, so Abhi has this DNM up to test against this patch:\n\nhttps://review.opendev.org/c/openstack/glance/+/847139\n\nThis test is running and passing there.","commit_id":"f9c37c004c7fe37a2d48a711690c56dfcd0adf3c"},{"author":{"_account_id":30742,"name":"Soniya Murlidhar Vyas","email":"svyas@redhat.com","username":"svyas"},"change_message_id":"66b4f0866295488bd65a6288fe7860a6a6a8f756","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"2db5415a_d3248fee","updated":"2022-07-20 16:59:05.000000000","message":"Following are the jobs in which test_image_caching test is skipping:-\n\n1. https://storage.gra.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_6b4/825112/15/check/tempest-full-py3/6b47b6d/testr_results.html\n\n2. https://61687dcee50dce20a3e5-281de4c49df4d40ae2525f660edec598.ssl.cf5.rackcdn.com/825112/15/check/tempest-multinode-full-py3/078fe20/testr_results.html\n\n3. https://0887da1acd77fe362fe6-dafd5ea511e702465bad7043bbe0ffd9.ssl.cf2.rackcdn.com/825112/15/check/tempest-full-wallaby-py3/14aeaa9/testr_results.html\n\n4. https://storage.bhs.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_1e4/825112/15/check/tempest-full-xena/1e48169/testr_results.html\n\nAccording to code, tests seems fine but the test need to pass instead of skipping\n","commit_id":"267edf13bcd4b92e6e377ba22d65c010c5312653"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"058820350523b758c7c609104571e7ab38e92d06","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"9732c1da_d60dd09d","updated":"2022-07-26 15:27:05.000000000","message":"Thank you Gmann,\n\nmade changes as per your suggestions.","commit_id":"267edf13bcd4b92e6e377ba22d65c010c5312653"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"07319c1901ff3f2aa64d17b4ba7ab748d02011d9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"e5ee0f88_891481cc","updated":"2022-07-26 10:51:51.000000000","message":"lgtm except one comment about skipping the tests.\n\ntesting is passing with all negative and positive verification. \n https://zuul.opendev.org/t/openstack/build/81045d787f974c8fa69c0ca625814638/log/controller/logs/tempest_log.txt#26966","commit_id":"267edf13bcd4b92e6e377ba22d65c010c5312653"},{"author":{"_account_id":30742,"name":"Soniya Murlidhar Vyas","email":"svyas@redhat.com","username":"svyas"},"change_message_id":"42c999ce4d0be29820e857c4d55dc51f7926984b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"2c2f7b38_ee649bb5","in_reply_to":"1a1af904_7c98f545","updated":"2022-07-20 17:36:43.000000000","message":"Hi Abhishek,\n\nThanks for above information. As far as enabling this tests in tempest-full-xena and tempest-full-wallaby is considered, you are right, we can think of enabling this test in upcoming cycles.\n\nI am fine with all other things, so removing the \u0027-1\u0027 vote here.\n\nOne minor nit:-\nCan you just add the review link in the commit msg where you are testing the tempest coverage for image cache?","commit_id":"267edf13bcd4b92e6e377ba22d65c010c5312653"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6b297ea88172c7580925ff61a16c4ba0b432aad9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"a79e3ce5_8d32418c","in_reply_to":"2c2f7b38_ee649bb5","updated":"2022-07-20 17:41:46.000000000","message":"\u003e Can you just add the review link in the commit msg where you are testing the tempest coverage for image cache?\n\nI don\u0027t think this makes sense. Linking a DNM temporary test patch in the lives-forever commit message is overkill. It\u0027s just an artifact of how we do testing beforehand on a non-standard feature like this. Once this is all merged, nobody will care about the DNM patch, only that some jobs have it enabled, which also changes over time.","commit_id":"267edf13bcd4b92e6e377ba22d65c010c5312653"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"361a0f843fa927efe99a786ad1c5154aa1f2df33","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"1a1af904_7c98f545","in_reply_to":"2db5415a_d3248fee","updated":"2022-07-20 17:08:15.000000000","message":"Hi Soniya,\n\nIf I am not wrong then above jobs need to enable this test by setting tempest-config parameter like;\n\ntest-config:\n    \"$TEMPEST_CONFIG\":\n        image:\n            image_caching_enabled: True\n            \n            \nSimilar to this patch;\nhttps://review.opendev.org/c/openstack/glance/+/847139\n\nOnce it is merged in tempest we are going to enable this test in glance jobs.\n\nAlso as this feature is added in this cycle it does not make sense to enable this test for tempest-full-xena and tempest-full-wallaby.\n\nKindly correct me if I am wrong.","commit_id":"267edf13bcd4b92e6e377ba22d65c010c5312653"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"8bf703c5cceb5f198789974b81912ff17b0e9ab7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"d5783e71_7481e03a","updated":"2022-07-27 14:07:10.000000000","message":"Hi Martin,\n\nAdded docstrings as per your suggestion.\nThank you for review!\n","commit_id":"37fdcdfddeb5183f57d15cc91bd5895b829d3538"},{"author":{"_account_id":30742,"name":"Soniya Murlidhar Vyas","email":"svyas@redhat.com","username":"svyas"},"change_message_id":"6b235bfaacac87c684fdbcf5277ed9b7653e8890","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"06c98f43_cdc1e7ce","updated":"2022-07-27 13:04:06.000000000","message":"LGTM","commit_id":"37fdcdfddeb5183f57d15cc91bd5895b829d3538"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"f5d6d84bd198037c767eff71f54c258e88e8aae2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"1a436c3f_c8b24d1c","updated":"2022-07-27 11:31:28.000000000","message":"lgtm, but I have 2 doc suggestions ","commit_id":"37fdcdfddeb5183f57d15cc91bd5895b829d3538"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"624d5f2669737be1bc789fab029cd3f18f57a1e0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"9a75df3c_f8182edf","updated":"2022-07-27 15:20:30.000000000","message":"lgtm, test is passing in https://c57b1905c4579ad0d19e-7bcd0c6ba9078d6047b64bbe393931c0.ssl.cf5.rackcdn.com/847139/5/check/tempest-integrated-storage-import/d9cad3c/testr_results.html","commit_id":"0188f46104b6f8e30658ab28a8907e9a980504bb"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"99a1a4a486cb6ea10372948cc7eb7280b040ab13","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"9d8287df_b1b6d869","updated":"2022-07-27 15:52:22.000000000","message":"thank you","commit_id":"0188f46104b6f8e30658ab28a8907e9a980504bb"}],"tempest/api/image/v2/admin/test_image_caching.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"f3fc9c17279e6815c06e0d5b3930dfbf4d87707f","unresolved":true,"context_lines":[{"line_number":71,"context_line":"        # Check there is nothing is queued for caching and nothing is cached"},{"line_number":72,"context_line":"        output \u003d self.os_system_admin.image_cache_client.list_cache()"},{"line_number":73,"context_line":"        self.assertEqual(0, len(output[\u0027queued_images\u0027]))"},{"line_number":74,"context_line":"        self.assertEqual(0, len(output[\u0027cached_images\u0027]))"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        # Create one image"},{"line_number":77,"context_line":"        image \u003d self.image_create_and_upload(name\u003d\u0027first\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"c97bbdc6_52df683a","line":74,"range":{"start_line":74,"start_character":8,"end_line":74,"end_character":57},"updated":"2022-01-18 19:33:10.000000000","message":"Looks like we need to get rid of this check as caching is enabled and tests are running parallely booting instance/volume/download image test will also cache the image in glance cache and this check will fail.","commit_id":"3a8cd4cf3247e9ed4f14dcb4900297a71ce3f362"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"121c6cfd81b6a8d17cf6d3c71aff56b49312954e","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        # Check there is nothing is queued for caching and nothing is cached"},{"line_number":72,"context_line":"        output \u003d self.os_system_admin.image_cache_client.list_cache()"},{"line_number":73,"context_line":"        self.assertEqual(0, len(output[\u0027queued_images\u0027]))"},{"line_number":74,"context_line":"        self.assertEqual(0, len(output[\u0027cached_images\u0027]))"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        # Create one image"},{"line_number":77,"context_line":"        image \u003d self.image_create_and_upload(name\u003d\u0027first\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"4828e87a_03e192a2","line":74,"range":{"start_line":74,"start_character":8,"end_line":74,"end_character":57},"in_reply_to":"c97bbdc6_52df683a","updated":"2022-02-08 16:48:57.000000000","message":"Done","commit_id":"3a8cd4cf3247e9ed4f14dcb4900297a71ce3f362"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"8a2efb5fd9acbb72ad35876dee84926aeb43967f","unresolved":true,"context_lines":[{"line_number":69,"context_line":"        image \u003d self.client.show_image(image[\u0027id\u0027])"},{"line_number":70,"context_line":"        return image"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def _assertCheckQueues(self, queued_images):"},{"line_number":73,"context_line":"        for image in self.cached_info:"},{"line_number":74,"context_line":"            if self.cached_info[image] \u003d\u003d \u0027queued\u0027:"},{"line_number":75,"context_line":"                self.assertIn(image, queued_images)"}],"source_content_type":"text/x-python","patch_set":2,"id":"c398321d_c2a4d2af","line":72,"range":{"start_line":72,"start_character":25,"end_line":72,"end_character":26},"updated":"2022-01-21 15:10:37.000000000","message":"queued?","commit_id":"b92ef6276a8406a31b4313efe08c48dd276b1ef5"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"68286ce14eecf86541114087d9fb3abae38de990","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        image \u003d self.client.show_image(image[\u0027id\u0027])"},{"line_number":70,"context_line":"        return image"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def _assertCheckQueues(self, queued_images):"},{"line_number":73,"context_line":"        for image in self.cached_info:"},{"line_number":74,"context_line":"            if self.cached_info[image] \u003d\u003d \u0027queued\u0027:"},{"line_number":75,"context_line":"                self.assertIn(image, queued_images)"}],"source_content_type":"text/x-python","patch_set":2,"id":"a3d6e225_48a63617","line":72,"range":{"start_line":72,"start_character":25,"end_line":72,"end_character":26},"in_reply_to":"c398321d_c2a4d2af","updated":"2022-01-21 15:24:07.000000000","message":"Ack","commit_id":"b92ef6276a8406a31b4313efe08c48dd276b1ef5"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"8a2efb5fd9acbb72ad35876dee84926aeb43967f","unresolved":true,"context_lines":[{"line_number":86,"context_line":"    @decorators.idempotent_id(\u00274bf6adba-2f9f-47e9-a6d5-37f21ad4387c\u0027)"},{"line_number":87,"context_line":"    def test_image_caching_cycle(self):"},{"line_number":88,"context_line":"        self.check_caching_enabled()"},{"line_number":89,"context_line":"        # Ensure that non-admin user is not allowed to perform caching"},{"line_number":90,"context_line":"        # operations"},{"line_number":91,"context_line":"        self.assertRaises(lib_exc.Forbidden,"},{"line_number":92,"context_line":"                          self.os_primary.image_cache_client.list_cache)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        # Check there is nothing is queued for cached by us"},{"line_number":95,"context_line":"        output \u003d self.os_system_admin.image_cache_client.list_cache()"}],"source_content_type":"text/x-python","patch_set":2,"id":"d62a99bd_40edc7ce","line":92,"range":{"start_line":89,"start_character":0,"end_line":92,"end_character":72},"updated":"2022-01-21 15:10:37.000000000","message":"I forget the order in the implementation (which I commented on) but shouldn\u0027t this be a test on its own that we always run? And, shouldn\u0027t unprivileged users always see this as 404? If we\u0027re pointed at an old glance, it should be 404 because it has no caching. If it\u0027s a new glance, it should be 404 as a regular user whether caching is enabled or disabled, because we don\u0027t have the right to even know.","commit_id":"b92ef6276a8406a31b4313efe08c48dd276b1ef5"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"121c6cfd81b6a8d17cf6d3c71aff56b49312954e","unresolved":false,"context_lines":[{"line_number":86,"context_line":"    @decorators.idempotent_id(\u00274bf6adba-2f9f-47e9-a6d5-37f21ad4387c\u0027)"},{"line_number":87,"context_line":"    def test_image_caching_cycle(self):"},{"line_number":88,"context_line":"        self.check_caching_enabled()"},{"line_number":89,"context_line":"        # Ensure that non-admin user is not allowed to perform caching"},{"line_number":90,"context_line":"        # operations"},{"line_number":91,"context_line":"        self.assertRaises(lib_exc.Forbidden,"},{"line_number":92,"context_line":"                          self.os_primary.image_cache_client.list_cache)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        # Check there is nothing is queued for cached by us"},{"line_number":95,"context_line":"        output \u003d self.os_system_admin.image_cache_client.list_cache()"}],"source_content_type":"text/x-python","patch_set":2,"id":"25c9c5c0_55c49b23","line":92,"range":{"start_line":89,"start_character":0,"end_line":92,"end_character":72},"in_reply_to":"d62a99bd_40edc7ce","updated":"2022-02-08 16:48:57.000000000","message":"Ack","commit_id":"b92ef6276a8406a31b4313efe08c48dd276b1ef5"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"8a2efb5fd9acbb72ad35876dee84926aeb43967f","unresolved":true,"context_lines":[{"line_number":94,"context_line":"        # Check there is nothing is queued for cached by us"},{"line_number":95,"context_line":"        output \u003d self.os_system_admin.image_cache_client.list_cache()"},{"line_number":96,"context_line":"        self._assertCheckQueues(output[\u0027queued_images\u0027])"},{"line_number":97,"context_line":"        self._assertCheckCache(output[\u0027cached_images\u0027])"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        # Create one image"},{"line_number":100,"context_line":"        image \u003d self.image_create_and_upload(name\u003d\u0027first\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"aede82ac_22d88fa2","line":97,"updated":"2022-01-21 15:10:37.000000000","message":"This could be one assert I think, which checks the state of both worlds.","commit_id":"b92ef6276a8406a31b4313efe08c48dd276b1ef5"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"68286ce14eecf86541114087d9fb3abae38de990","unresolved":true,"context_lines":[{"line_number":94,"context_line":"        # Check there is nothing is queued for cached by us"},{"line_number":95,"context_line":"        output \u003d self.os_system_admin.image_cache_client.list_cache()"},{"line_number":96,"context_line":"        self._assertCheckQueues(output[\u0027queued_images\u0027])"},{"line_number":97,"context_line":"        self._assertCheckCache(output[\u0027cached_images\u0027])"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        # Create one image"},{"line_number":100,"context_line":"        image \u003d self.image_create_and_upload(name\u003d\u0027first\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"c6c91a0e_dc6cfab3","line":97,"in_reply_to":"aede82ac_22d88fa2","updated":"2022-01-21 15:24:07.000000000","message":"Unfortunately we have different API response for the same;\n\nlist_cache returns;\n\n{\u0027queued_images\u0027: [1,2,3],\n \u0027cached_images\u0027: [{....}, {....}]\n}\n\nI can combine the logic in one helper method but kept it separate and easy to understand!","commit_id":"b92ef6276a8406a31b4313efe08c48dd276b1ef5"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"121c6cfd81b6a8d17cf6d3c71aff56b49312954e","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        # Check there is nothing is queued for cached by us"},{"line_number":95,"context_line":"        output \u003d self.os_system_admin.image_cache_client.list_cache()"},{"line_number":96,"context_line":"        self._assertCheckQueues(output[\u0027queued_images\u0027])"},{"line_number":97,"context_line":"        self._assertCheckCache(output[\u0027cached_images\u0027])"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        # Create one image"},{"line_number":100,"context_line":"        image \u003d self.image_create_and_upload(name\u003d\u0027first\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"37a9358b_83735080","line":97,"in_reply_to":"c6c91a0e_dc6cfab3","updated":"2022-02-08 16:48:57.000000000","message":"Done","commit_id":"b92ef6276a8406a31b4313efe08c48dd276b1ef5"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"8a2efb5fd9acbb72ad35876dee84926aeb43967f","unresolved":true,"context_lines":[{"line_number":116,"context_line":"        caching \u003d waiters.wait_for_caching("},{"line_number":117,"context_line":"            self.client,"},{"line_number":118,"context_line":"            self.os_system_admin.image_cache_client,"},{"line_number":119,"context_line":"            image[\u0027id\u0027])"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        self.cached_info[image[\u0027id\u0027]] \u003d \u0027cached\u0027"},{"line_number":122,"context_line":"        # verify that we have image in cache and not in queued"}],"source_content_type":"text/x-python","patch_set":2,"id":"85169171_b7430471","line":119,"updated":"2022-01-21 15:10:37.000000000","message":"I guess I have to go look deeper into glance, as I don\u0027t think this has changed with the api patch, but:\n\nHow long will this wait? There\u0027s some timer that kicks off caching right? I assume that\u0027s on the order of minutes? And if we get unlucky, we\u0027ll lose the race between the queuing and the queue check, making this test unstable right?\n\nI think I suggested early on that we also provide an API to trigger a cache run manually so that we have control over it from here, and also so that admins can say \"cache this and do it NOW\". It also makes it so they can just let ansible trigger cache runs when needed instead of polling.","commit_id":"b92ef6276a8406a31b4313efe08c48dd276b1ef5"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"166006571274646a232cfd49b46b2f25deed8472","unresolved":true,"context_lines":[{"line_number":116,"context_line":"        caching \u003d waiters.wait_for_caching("},{"line_number":117,"context_line":"            self.client,"},{"line_number":118,"context_line":"            self.os_system_admin.image_cache_client,"},{"line_number":119,"context_line":"            image[\u0027id\u0027])"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        self.cached_info[image[\u0027id\u0027]] \u003d \u0027cached\u0027"},{"line_number":122,"context_line":"        # verify that we have image in cache and not in queued"}],"source_content_type":"text/x-python","patch_set":2,"id":"6daf011b_5d39ab3e","line":119,"in_reply_to":"3634610d_a3730b14","updated":"2022-01-21 20:17:02.000000000","message":"I\u0027m not saying we need a new API to cache a specific image, I\u0027m saying we should have an API to trigger the periodic to run immediately. That should be pretty straightforward I would think.\n\nWithout this level of determinism, and especially with the timer set to something low enough to avoid us waiting for multiple minutes here, we\u0027ll race with the task and find our image is already cached when we\u0027re expecting it to be queued.","commit_id":"b92ef6276a8406a31b4313efe08c48dd276b1ef5"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"121c6cfd81b6a8d17cf6d3c71aff56b49312954e","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        caching \u003d waiters.wait_for_caching("},{"line_number":117,"context_line":"            self.client,"},{"line_number":118,"context_line":"            self.os_system_admin.image_cache_client,"},{"line_number":119,"context_line":"            image[\u0027id\u0027])"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        self.cached_info[image[\u0027id\u0027]] \u003d \u0027cached\u0027"},{"line_number":122,"context_line":"        # verify that we have image in cache and not in queued"}],"source_content_type":"text/x-python","patch_set":2,"id":"84a2db79_82459ebe","line":119,"in_reply_to":"6daf011b_5d39ab3e","updated":"2022-02-08 16:48:57.000000000","message":"Ack","commit_id":"b92ef6276a8406a31b4313efe08c48dd276b1ef5"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"68286ce14eecf86541114087d9fb3abae38de990","unresolved":true,"context_lines":[{"line_number":116,"context_line":"        caching \u003d waiters.wait_for_caching("},{"line_number":117,"context_line":"            self.client,"},{"line_number":118,"context_line":"            self.os_system_admin.image_cache_client,"},{"line_number":119,"context_line":"            image[\u0027id\u0027])"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        self.cached_info[image[\u0027id\u0027]] \u003d \u0027cached\u0027"},{"line_number":122,"context_line":"        # verify that we have image in cache and not in queued"}],"source_content_type":"text/x-python","patch_set":2,"id":"3634610d_a3730b14","line":119,"in_reply_to":"85169171_b7430471","updated":"2022-01-21 15:24:07.000000000","message":"There is one timer \u0027cache_prefetcher_interval\u0027 which is default to 300 seconds, I think we can reduce it in .zuul.yaml for our job\n\nIMO, the new API for caching the particular image should be done separately as it might cause regression in our current implementation of periodic job.","commit_id":"b92ef6276a8406a31b4313efe08c48dd276b1ef5"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"206cc545c0d35b14b977a1be6862a888c18c944e","unresolved":true,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        # Verify that we can delete images from both caching and queueing with"},{"line_number":155,"context_line":"        # one api call."},{"line_number":156,"context_line":"        deleted \u003d self.os_system_admin.image_cache_client.cache_clear()"},{"line_number":157,"context_line":"        self.assertTrue(deleted[\u0027queue_deleted\u0027] \u003e 0)"},{"line_number":158,"context_line":"        self.assertTrue(deleted[\u0027cache_deleted\u0027] \u003e 0)"},{"line_number":159,"context_line":"        # Remove all data from local information"}],"source_content_type":"text/x-python","patch_set":3,"id":"15ffab8a_c8fc3edd","line":156,"range":{"start_line":156,"start_character":8,"end_line":156,"end_character":71},"updated":"2022-01-27 08:38:18.000000000","message":"I am not sure whether we should test this here as it will delete all the images present in cache which might affect other tests which might be using cached images.\n\nInstead we should test/verify that we can use cache-delete \u003cimage-id\u003e created by this tests or we should deploy image-remote (another g-api service) and cache all images on that remote api (node) to avoid this conflict.","commit_id":"522bc2dda287c12be5a1b19aa4929229a4ee2e26"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"121c6cfd81b6a8d17cf6d3c71aff56b49312954e","unresolved":false,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        # Verify that we can delete images from both caching and queueing with"},{"line_number":155,"context_line":"        # one api call."},{"line_number":156,"context_line":"        deleted \u003d self.os_system_admin.image_cache_client.cache_clear()"},{"line_number":157,"context_line":"        self.assertTrue(deleted[\u0027queue_deleted\u0027] \u003e 0)"},{"line_number":158,"context_line":"        self.assertTrue(deleted[\u0027cache_deleted\u0027] \u003e 0)"},{"line_number":159,"context_line":"        # Remove all data from local information"}],"source_content_type":"text/x-python","patch_set":3,"id":"5c33628b_e741d9d5","line":156,"range":{"start_line":156,"start_character":8,"end_line":156,"end_character":71},"in_reply_to":"15ffab8a_c8fc3edd","updated":"2022-02-08 16:48:57.000000000","message":"Done","commit_id":"522bc2dda287c12be5a1b19aa4929229a4ee2e26"},{"author":{"_account_id":8367,"name":"Arx Cruz","email":"arxcruz@redhat.com","username":"arxcruz"},"change_message_id":"73ea8e0e96cfdbc2d4a1459e93119fe8046bbdfc","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class ImageCachingTest(base.BaseV2ImageTest):"},{"line_number":32,"context_line":"    \"\"\"Here we test the caching operations for image\"\"\""},{"line_number":33,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027system_admin\u0027]"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def setUp(self):"},{"line_number":36,"context_line":"        super(ImageCachingTest, self).setUp()"}],"source_content_type":"text/x-python","patch_set":14,"id":"ac11026f_7b67d80a","line":33,"updated":"2022-07-04 12:13:18.000000000","message":"I think it also needs the admin here, it is failing in the tempest-full-test-account-no-admin-py3","commit_id":"f9c37c004c7fe37a2d48a711690c56dfcd0adf3c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"df80edffd7db2a4670809c19bd0e1efe86049df0","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class ImageCachingTest(base.BaseV2ImageTest):"},{"line_number":32,"context_line":"    \"\"\"Here we test the caching operations for image\"\"\""},{"line_number":33,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027system_admin\u0027]"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def setUp(self):"},{"line_number":36,"context_line":"        super(ImageCachingTest, self).setUp()"}],"source_content_type":"text/x-python","patch_set":14,"id":"e76557a5_39303d31","line":33,"in_reply_to":"ac11026f_7b67d80a","updated":"2022-07-05 14:00:52.000000000","message":"I think, especially with the recent RBAC discussions, that this could just be primary,admin right?","commit_id":"f9c37c004c7fe37a2d48a711690c56dfcd0adf3c"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"07319c1901ff3f2aa64d17b4ba7ab748d02011d9","unresolved":true,"context_lines":[{"line_number":46,"context_line":"                image_id)"},{"line_number":47,"context_line":"        super(ImageCachingTest, self).tearDown()"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def check_caching_enabled(self):"},{"line_number":50,"context_line":"        # Check to see if we should even be running these tests."},{"line_number":51,"context_line":"        if not CONF.image.image_caching_enabled:"},{"line_number":52,"context_line":"            raise self.skipException(\u0027Target system is not configured with \u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"58b2aca0_63adc746","line":49,"range":{"start_line":49,"start_character":8,"end_line":49,"end_character":29},"updated":"2022-07-26 10:51:51.000000000","message":"let\u0027s do this check in skip_checks() so that tempest will not spend time on creating keystone creds if caching is disabled.\n\n    @classmethod\n    def skip_checks(cls):\n        super(ImageCachingTest, cls).skip_checks()\n        # Check to see if we should even be running these tests.\n        if not CONF.image.image_caching_enabled:\n            raise self.skipException(\u0027Target system is not configured with \u0027\n                                     \u0027glance caching\u0027)","commit_id":"267edf13bcd4b92e6e377ba22d65c010c5312653"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"058820350523b758c7c609104571e7ab38e92d06","unresolved":false,"context_lines":[{"line_number":46,"context_line":"                image_id)"},{"line_number":47,"context_line":"        super(ImageCachingTest, self).tearDown()"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def check_caching_enabled(self):"},{"line_number":50,"context_line":"        # Check to see if we should even be running these tests."},{"line_number":51,"context_line":"        if not CONF.image.image_caching_enabled:"},{"line_number":52,"context_line":"            raise self.skipException(\u0027Target system is not configured with \u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"24bfbc7a_e32a0b96","line":49,"range":{"start_line":49,"start_character":8,"end_line":49,"end_character":29},"in_reply_to":"58b2aca0_63adc746","updated":"2022-07-26 15:27:05.000000000","message":"Done","commit_id":"267edf13bcd4b92e6e377ba22d65c010c5312653"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"f5d6d84bd198037c767eff71f54c258e88e8aae2","unresolved":true,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    @decorators.idempotent_id(\u00274bf6adba-2f9f-47e9-a6d5-37f21ad4387c\u0027)"},{"line_number":91,"context_line":"    def test_image_caching_cycle(self):"},{"line_number":92,"context_line":"        # Ensure that non-admin user is not allowed to perform caching"},{"line_number":93,"context_line":"        # operations"},{"line_number":94,"context_line":"        self.assertRaises(lib_exc.Forbidden,"},{"line_number":95,"context_line":"                          self.os_primary.image_cache_client.list_cache)"},{"line_number":96,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"18350195_741cfe6c","line":93,"range":{"start_line":92,"start_character":7,"end_line":93,"end_character":20},"updated":"2022-07-27 11:31:28.000000000","message":"this should be a docstring - we made an effort while back to document all the tests - https://review.opendev.org/q/topic:bp%252Ftestcase-description","commit_id":"37fdcdfddeb5183f57d15cc91bd5895b829d3538"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"8bf703c5cceb5f198789974b81912ff17b0e9ab7","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    @decorators.idempotent_id(\u00274bf6adba-2f9f-47e9-a6d5-37f21ad4387c\u0027)"},{"line_number":91,"context_line":"    def test_image_caching_cycle(self):"},{"line_number":92,"context_line":"        # Ensure that non-admin user is not allowed to perform caching"},{"line_number":93,"context_line":"        # operations"},{"line_number":94,"context_line":"        self.assertRaises(lib_exc.Forbidden,"},{"line_number":95,"context_line":"                          self.os_primary.image_cache_client.list_cache)"},{"line_number":96,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"51378990_2f2d3bad","line":93,"range":{"start_line":92,"start_character":7,"end_line":93,"end_character":20},"in_reply_to":"18350195_741cfe6c","updated":"2022-07-27 14:07:10.000000000","message":"Done","commit_id":"37fdcdfddeb5183f57d15cc91bd5895b829d3538"}],"tempest/common/waiters.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"8a2efb5fd9acbb72ad35876dee84926aeb43967f","unresolved":true,"context_lines":[{"line_number":593,"context_line":"    # NOTE(abhishekk): As image caching is performed by periodic job"},{"line_number":594,"context_line":"    # of image service, we need to wait until it is executed."},{"line_number":595,"context_line":"    start \u003d int(time.time())"},{"line_number":596,"context_line":"    while int(time.time()) - start \u003c client.build_timeout:"},{"line_number":597,"context_line":"        caching \u003d cache_client.list_cache()"},{"line_number":598,"context_line":"        if len(caching[\u0027queued_images\u0027]) \u003d\u003d 0:"},{"line_number":599,"context_line":"            return caching"}],"source_content_type":"text/x-python","patch_set":2,"id":"90274d2c_66f8fc67","line":596,"range":{"start_line":596,"start_character":37,"end_line":596,"end_character":57},"updated":"2022-01-21 15:10:37.000000000","message":"Okay so presumably the cache periodic needs to be set lower than this or we\u0027ll timeout frequently.","commit_id":"b92ef6276a8406a31b4313efe08c48dd276b1ef5"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"ab937526f80a33bc7a5e9b48f7a906ba96935f17","unresolved":false,"context_lines":[{"line_number":593,"context_line":"    # NOTE(abhishekk): As image caching is performed by periodic job"},{"line_number":594,"context_line":"    # of image service, we need to wait until it is executed."},{"line_number":595,"context_line":"    start \u003d int(time.time())"},{"line_number":596,"context_line":"    while int(time.time()) - start \u003c client.build_timeout:"},{"line_number":597,"context_line":"        caching \u003d cache_client.list_cache()"},{"line_number":598,"context_line":"        if len(caching[\u0027queued_images\u0027]) \u003d\u003d 0:"},{"line_number":599,"context_line":"            return caching"}],"source_content_type":"text/x-python","patch_set":2,"id":"09873530_58b20f18","line":596,"range":{"start_line":596,"start_character":37,"end_line":596,"end_character":57},"in_reply_to":"5cef2f09_9d644acf","updated":"2022-06-21 13:58:19.000000000","message":"Done","commit_id":"b92ef6276a8406a31b4313efe08c48dd276b1ef5"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"68286ce14eecf86541114087d9fb3abae38de990","unresolved":true,"context_lines":[{"line_number":593,"context_line":"    # NOTE(abhishekk): As image caching is performed by periodic job"},{"line_number":594,"context_line":"    # of image service, we need to wait until it is executed."},{"line_number":595,"context_line":"    start \u003d int(time.time())"},{"line_number":596,"context_line":"    while int(time.time()) - start \u003c client.build_timeout:"},{"line_number":597,"context_line":"        caching \u003d cache_client.list_cache()"},{"line_number":598,"context_line":"        if len(caching[\u0027queued_images\u0027]) \u003d\u003d 0:"},{"line_number":599,"context_line":"            return caching"}],"source_content_type":"text/x-python","patch_set":2,"id":"5cef2f09_9d644acf","line":596,"range":{"start_line":596,"start_character":37,"end_line":596,"end_character":57},"in_reply_to":"90274d2c_66f8fc67","updated":"2022-01-21 15:24:07.000000000","message":"right!","commit_id":"b92ef6276a8406a31b4313efe08c48dd276b1ef5"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"f5d6d84bd198037c767eff71f54c258e88e8aae2","unresolved":true,"context_lines":[{"line_number":597,"context_line":""},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"def wait_for_caching(client, cache_client, image_id):"},{"line_number":600,"context_line":"    # NOTE(abhishekk): Wait until image is cached."},{"line_number":601,"context_line":"    start \u003d int(time.time())"},{"line_number":602,"context_line":"    while int(time.time()) - start \u003c client.build_timeout:"},{"line_number":603,"context_line":"        caching \u003d cache_client.list_cache()"}],"source_content_type":"text/x-python","patch_set":16,"id":"5d45831b_c58200aa","line":600,"range":{"start_line":600,"start_character":4,"end_line":600,"end_character":50},"updated":"2022-07-27 11:31:28.000000000","message":"this should be a doc string like in the other waiters above","commit_id":"37fdcdfddeb5183f57d15cc91bd5895b829d3538"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"8bf703c5cceb5f198789974b81912ff17b0e9ab7","unresolved":false,"context_lines":[{"line_number":597,"context_line":""},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"def wait_for_caching(client, cache_client, image_id):"},{"line_number":600,"context_line":"    # NOTE(abhishekk): Wait until image is cached."},{"line_number":601,"context_line":"    start \u003d int(time.time())"},{"line_number":602,"context_line":"    while int(time.time()) - start \u003c client.build_timeout:"},{"line_number":603,"context_line":"        caching \u003d cache_client.list_cache()"}],"source_content_type":"text/x-python","patch_set":16,"id":"e99adee5_4d303fd5","line":600,"range":{"start_line":600,"start_character":4,"end_line":600,"end_character":50},"in_reply_to":"5d45831b_c58200aa","updated":"2022-07-27 14:07:10.000000000","message":"Done","commit_id":"37fdcdfddeb5183f57d15cc91bd5895b829d3538"}],"tempest/config.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"a102988b0c2be52b428eda494058c60baf9e9ef8","unresolved":true,"context_lines":[{"line_number":876,"context_line":"    cfg.StrOpt(\u0027provider_net_base_segmentation_id\u0027, default\u003d3000,"},{"line_number":877,"context_line":"               help\u003d\u0027Base segmentation ID to create provider networks. \u0027"},{"line_number":878,"context_line":"                    \u0027This value will be increased in case of conflict.\u0027),"},{"line_number":879,"context_line":"    cfg.BoolOpt(\u0027qos_min_bw_and_pps\u0027, default\u003dFalse,"},{"line_number":880,"context_line":"                help\u003d\u0027Does the test environment have minimum bandwidth and \u0027"},{"line_number":881,"context_line":"                     \u0027packet rate inventories configured?\u0027),"},{"line_number":882,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":6,"id":"45463106_1d2b73ae","side":"PARENT","line":879,"updated":"2022-02-08 16:36:35.000000000","message":"why removing this? rebase issue?\n\nThis is causing failure in glance patch.","commit_id":"edfbb1f0101e27ea6aa455ee8550854cb06de613"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"121c6cfd81b6a8d17cf6d3c71aff56b49312954e","unresolved":false,"context_lines":[{"line_number":876,"context_line":"    cfg.StrOpt(\u0027provider_net_base_segmentation_id\u0027, default\u003d3000,"},{"line_number":877,"context_line":"               help\u003d\u0027Base segmentation ID to create provider networks. \u0027"},{"line_number":878,"context_line":"                    \u0027This value will be increased in case of conflict.\u0027),"},{"line_number":879,"context_line":"    cfg.BoolOpt(\u0027qos_min_bw_and_pps\u0027, default\u003dFalse,"},{"line_number":880,"context_line":"                help\u003d\u0027Does the test environment have minimum bandwidth and \u0027"},{"line_number":881,"context_line":"                     \u0027packet rate inventories configured?\u0027),"},{"line_number":882,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":6,"id":"d05b233d_415b1aa0","side":"PARENT","line":879,"in_reply_to":"45463106_1d2b73ae","updated":"2022-02-08 16:48:57.000000000","message":"Ack","commit_id":"edfbb1f0101e27ea6aa455ee8550854cb06de613"}]}
