)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":34510,"name":"Maxim Sava","email":"msava@redhat.com","username":"msava@redhat.com"},"change_message_id":"c4121f4387bb301bef8eac2d943adf0e9c66823f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"46d37308_1d073ffa","updated":"2025-09-04 11:06:35.000000000","message":"Unrelated  to image cache test cases CI gates errors.\nImage cache testcacses pass in `glance-multistore-cinder-import` job","commit_id":"830fc70bbdecc8c4be06bc4b4f795c34b067d2ab"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"131aefe3dedafc8064a00186fb611aa205babed9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"b437b112_a69c13c7","updated":"2026-01-21 04:32:47.000000000","message":"recheck for fresh logs","commit_id":"830fc70bbdecc8c4be06bc4b4f795c34b067d2ab"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"3333596fedb311a3ce82355b5b141d10e50fcb50","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"53450102_661c51e1","updated":"2026-05-14 18:34:16.000000000","message":"I am ok with the API test but nto sure if scenario tests are something we can assert the behaviour on.","commit_id":"e44416b75ecebd61111a2592310e6c2a1e81eae6"}],"tempest/api/image/v2/admin/test_image_caching.py":[{"author":{"_account_id":34510,"name":"Maxim Sava","email":"msava@redhat.com","username":"msava@redhat.com"},"change_message_id":"53c222313b31f64d0d40dbd2533e6b0d2b061719","unresolved":false,"context_lines":[{"line_number":16,"context_line":"import io"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from testtools import matchers"},{"line_number":19,"context_line":"from oslo_log import log as logging"},{"line_number":20,"context_line":"from tempest.api.image import base"},{"line_number":21,"context_line":"from tempest.common import waiters"},{"line_number":22,"context_line":"from tempest import config"}],"source_content_type":"text/x-python","patch_set":5,"id":"00c262c0_b02ca439","line":19,"in_reply_to":"7e8a04ce_4f3e224c","updated":"2025-09-01 06:15:18.000000000","message":"Done","commit_id":"bd5bb03bae703bc1271a6c3209bc3327a8a06b6d"},{"author":{"_account_id":34510,"name":"Maxim Sava","email":"msava@redhat.com","username":"msava@redhat.com"},"change_message_id":"92735d11958bbf75a6223235222d133f362c1cc8","unresolved":true,"context_lines":[{"line_number":16,"context_line":"import io"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from testtools import matchers"},{"line_number":19,"context_line":"from oslo_log import log as logging"},{"line_number":20,"context_line":"from tempest.api.image import base"},{"line_number":21,"context_line":"from tempest.common import waiters"},{"line_number":22,"context_line":"from tempest import config"}],"source_content_type":"text/x-python","patch_set":5,"id":"7e8a04ce_4f3e224c","line":19,"in_reply_to":"a9c463d7_a4512b07","updated":"2025-09-01 06:14:50.000000000","message":"\u003e pep8: H306: imports not in alphabetical order (testtools.matchers, oslo_log.log)\n\nPlease fix.","commit_id":"bd5bb03bae703bc1271a6c3209bc3327a8a06b6d"}],"tempest/scenario/test_image_caching.py":[{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"131aefe3dedafc8064a00186fb611aa205babed9","unresolved":true,"context_lines":[{"line_number":216,"context_line":"        keypair \u003d self.create_keypair()"},{"line_number":217,"context_line":"        security_group \u003d self.create_security_group()"},{"line_number":218,"context_line":"        security_groups \u003d [{\u0027name\u0027: security_group[\u0027name\u0027]}]"},{"line_number":219,"context_line":"        instance \u003d self.create_server("},{"line_number":220,"context_line":"            key_name\u003dkeypair[\u0027name\u0027],"},{"line_number":221,"context_line":"            security_groups\u003dsecurity_groups,"},{"line_number":222,"context_line":"            name\u003d\u0027test-image-cache-instance\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"17d5b2f0_ca9b03ad","line":219,"updated":"2026-01-21 04:32:47.000000000","message":"Do you want to create 2 instances here? if instance_type \u003d\u003d \u0027instance_from_volume, an instance from volume will be created and again here at #219 one more instance will be created. I think this needs to be go in either else part or return from if block if only instance from volume is required.","commit_id":"830fc70bbdecc8c4be06bc4b4f795c34b067d2ab"},{"author":{"_account_id":34510,"name":"Maxim Sava","email":"msava@redhat.com","username":"msava@redhat.com"},"change_message_id":"85816119e551c971d2c8ae8efc7b109a91c3c949","unresolved":false,"context_lines":[{"line_number":216,"context_line":"        keypair \u003d self.create_keypair()"},{"line_number":217,"context_line":"        security_group \u003d self.create_security_group()"},{"line_number":218,"context_line":"        security_groups \u003d [{\u0027name\u0027: security_group[\u0027name\u0027]}]"},{"line_number":219,"context_line":"        instance \u003d self.create_server("},{"line_number":220,"context_line":"            key_name\u003dkeypair[\u0027name\u0027],"},{"line_number":221,"context_line":"            security_groups\u003dsecurity_groups,"},{"line_number":222,"context_line":"            name\u003d\u0027test-image-cache-instance\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"ff38f766_5e7e9b10","line":219,"in_reply_to":"17d5b2f0_ca9b03ad","updated":"2026-04-14 09:48:28.000000000","message":"removed second instance","commit_id":"830fc70bbdecc8c4be06bc4b4f795c34b067d2ab"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d35b0849042d7196d5dbbc6cbc1f40bd9a3bc5f5","unresolved":true,"context_lines":[{"line_number":158,"context_line":"            image_ids \u003d [item[\u0027image_id\u0027] for item in output[\u0027cached_images\u0027]]"},{"line_number":159,"context_line":"            self.assertNotIn(image[\u0027id\u0027], image_ids)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    def _create_and_stage_image(self, all_stores\u003dFalse):"},{"line_number":162,"context_line":"        \"\"\"Wrapper that return image and store list\"\"\""},{"line_number":163,"context_line":"        image_name \u003d data_utils.rand_name(\u0027test-image\u0027)"},{"line_number":164,"context_line":"        container_format \u003d CONF.image.container_formats[0]"}],"source_content_type":"text/x-python","patch_set":9,"id":"16ff3c90_a9c9d0ff","line":161,"updated":"2026-05-14 18:41:59.000000000","message":"Seems like we have prior art for things like this. Can\u0027t we refactor those to be reusable (if need be) instead of duplicating utilities?","commit_id":"e44416b75ecebd61111a2592310e6c2a1e81eae6"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"3333596fedb311a3ce82355b5b141d10e50fcb50","unresolved":true,"context_lines":[{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    @decorators.idempotent_id(\u0027831da181-5abf-40ab-95aa-2139bd3e199f\u0027)"},{"line_number":216,"context_line":"    @utils.services(\u0027image\u0027)"},{"line_number":217,"context_line":"    def test_image_cache_import_download_image(self):"},{"line_number":218,"context_line":"        \"\"\"Testcase with download image from glance"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"        This testcase verifies image caching functionality then"}],"source_content_type":"text/x-python","patch_set":9,"id":"40b109a7_02e5c2d5","line":217,"range":{"start_line":217,"start_character":8,"end_line":217,"end_character":46},"updated":"2026-05-14 18:34:16.000000000","message":"this seems to be not a scenario test and can be covered in the API tests in api/image/v2/admin/test_image_caching.py","commit_id":"e44416b75ecebd61111a2592310e6c2a1e81eae6"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d35b0849042d7196d5dbbc6cbc1f40bd9a3bc5f5","unresolved":true,"context_lines":[{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    @decorators.idempotent_id(\u0027831da181-5abf-40ab-95aa-2139bd3e199f\u0027)"},{"line_number":216,"context_line":"    @utils.services(\u0027image\u0027)"},{"line_number":217,"context_line":"    def test_image_cache_import_download_image(self):"},{"line_number":218,"context_line":"        \"\"\"Testcase with download image from glance"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"        This testcase verifies image caching functionality then"}],"source_content_type":"text/x-python","patch_set":9,"id":"6b7cb8e8_34469f35","line":217,"range":{"start_line":217,"start_character":8,"end_line":217,"end_character":46},"in_reply_to":"40b109a7_02e5c2d5","updated":"2026-05-14 18:41:59.000000000","message":"Yeah, scenario tests are for complex cross-service things right?","commit_id":"e44416b75ecebd61111a2592310e6c2a1e81eae6"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d35b0849042d7196d5dbbc6cbc1f40bd9a3bc5f5","unresolved":true,"context_lines":[{"line_number":237,"context_line":""},{"line_number":238,"context_line":"        # Check if image downloaded from cache"},{"line_number":239,"context_line":"        self.image_client.show_image_file(image[\u0027id\u0027])"},{"line_number":240,"context_line":"        self._check_cache_hits(image)"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"        # Verify that we can delete image from cache"},{"line_number":243,"context_line":"        self._cache_queue_delete_image(image, \u0027delete\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9527b9ca_0c3403de","line":240,"updated":"2026-05-14 18:41:59.000000000","message":"I think it would be better to make this check function return the number and assert that it is what we expect. So check after upload (assert \u003d\u003d 0), then after show (assert \u003d\u003d 1).","commit_id":"e44416b75ecebd61111a2592310e6c2a1e81eae6"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"3333596fedb311a3ce82355b5b141d10e50fcb50","unresolved":true,"context_lines":[{"line_number":250,"context_line":""},{"line_number":251,"context_line":"        Testcase scenario outline:"},{"line_number":252,"context_line":"        1.Create and upload image"},{"line_number":253,"context_line":"        2.Create instance from volume"},{"line_number":254,"context_line":"        3.Create second instance from volume"},{"line_number":255,"context_line":"        4.Check if we created instance from cached image"},{"line_number":256,"context_line":"        5.Delete image from cache"}],"source_content_type":"text/x-python","patch_set":9,"id":"e287944a_a8a0b9e6","line":253,"range":{"start_line":253,"start_character":31,"end_line":253,"end_character":37},"updated":"2026-05-14 18:34:16.000000000","message":"? this test not booting instance from volume","commit_id":"e44416b75ecebd61111a2592310e6c2a1e81eae6"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d35b0849042d7196d5dbbc6cbc1f40bd9a3bc5f5","unresolved":true,"context_lines":[{"line_number":250,"context_line":""},{"line_number":251,"context_line":"        Testcase scenario outline:"},{"line_number":252,"context_line":"        1.Create and upload image"},{"line_number":253,"context_line":"        2.Create instance from volume"},{"line_number":254,"context_line":"        3.Create second instance from volume"},{"line_number":255,"context_line":"        4.Check if we created instance from cached image"},{"line_number":256,"context_line":"        5.Delete image from cache"}],"source_content_type":"text/x-python","patch_set":9,"id":"97aef680_16297ba3","line":253,"range":{"start_line":253,"start_character":31,"end_line":253,"end_character":37},"in_reply_to":"e287944a_a8a0b9e6","updated":"2026-05-14 18:41:59.000000000","message":"L207? Looks like it might be from volume. That said, BFV seems like a bad/odd case for testing caching :D","commit_id":"e44416b75ecebd61111a2592310e6c2a1e81eae6"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"3333596fedb311a3ce82355b5b141d10e50fcb50","unresolved":true,"context_lines":[{"line_number":276,"context_line":"        output \u003d self.image_cache_client.list_cache()"},{"line_number":277,"context_line":"        image_ids \u003d [item[\u0027image_id\u0027] for item in output[\u0027cached_images\u0027]]"},{"line_number":278,"context_line":"        self.assertThat(image_ids, matchers.Contains(image[\u0027id\u0027]))"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"        # Create second volume from cached image"},{"line_number":281,"context_line":"        self._create_instance(image)"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        # Check if we booted from cached image"},{"line_number":284,"context_line":"        self._check_cache_hits(image)"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"        # Delete cached image"},{"line_number":287,"context_line":"        self._cache_queue_delete_image(image, \u0027delete\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"49b5ee70_9e764c42","line":284,"range":{"start_line":279,"start_character":0,"end_line":284,"end_character":37},"updated":"2026-05-14 18:34:16.000000000","message":"I do not think there is any guarantee that it will increase the glance cache \u0027hits\u0027. Once nova boot instance, it download the image from glance and chache in the compute host. other instance creation from same image will use the cache image from the comoute hsot and not from the glance so in this case it will not increase the \u0027hits\u0027. \n\nIf my understanding is correct then, I think checking the image chache \u0027hits\u0027 can be unstable things to assert on. Let\u0027s get glance folks opinion on this","commit_id":"e44416b75ecebd61111a2592310e6c2a1e81eae6"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d35b0849042d7196d5dbbc6cbc1f40bd9a3bc5f5","unresolved":true,"context_lines":[{"line_number":276,"context_line":"        output \u003d self.image_cache_client.list_cache()"},{"line_number":277,"context_line":"        image_ids \u003d [item[\u0027image_id\u0027] for item in output[\u0027cached_images\u0027]]"},{"line_number":278,"context_line":"        self.assertThat(image_ids, matchers.Contains(image[\u0027id\u0027]))"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"        # Create second volume from cached image"},{"line_number":281,"context_line":"        self._create_instance(image)"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        # Check if we booted from cached image"},{"line_number":284,"context_line":"        self._check_cache_hits(image)"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"        # Delete cached image"},{"line_number":287,"context_line":"        self._cache_queue_delete_image(image, \u0027delete\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"f30566eb_a02ab564","line":284,"range":{"start_line":279,"start_character":0,"end_line":284,"end_character":37},"in_reply_to":"49b5ee70_9e764c42","updated":"2026-05-14 18:41:59.000000000","message":"Yep, agree. Nova will do its own caching of the image which could make this unreliable.","commit_id":"e44416b75ecebd61111a2592310e6c2a1e81eae6"}]}
