)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"7cc740960297d5ad365a2c5e9a10e1f990dbd207","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"953e826a_c63add2f","updated":"2023-10-19 13:23:03.000000000","message":"Is there any gate that runs this test ?","commit_id":"ccb3aa13eb851b51845afda52ad31b077de794b9"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"3366fa8cb6ab03785c0cc8741051ae9e2f4f560e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"41fdd6f1_a500e570","updated":"2023-11-15 08:55:50.000000000","message":"Looks good to me but just please take a look at the pep8 job:\nhttps://1460809ff5b3b8e2bc2b-67873a0298083b00f67f4964b9a5d638.ssl.cf2.rackcdn.com/898544/9/check/openstack-tox-pep8/b37778e/job-output.txt\n\nYou can run pep8 checks locally before pushing them to gerrit (tox -epep8)","commit_id":"dbbdae669ee7f2ca3e0ace8ce1ebcd322695355e"},{"author":{"_account_id":34510,"name":"Maxim Sava","email":"msava@redhat.com","username":"msava@redhat.com"},"change_message_id":"2e7d92c33b7c059b0312bbb8b7bddf08b6bf5c8c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"67d6f428_870c98db","updated":"2023-11-15 08:27:46.000000000","message":"recheck","commit_id":"dbbdae669ee7f2ca3e0ace8ce1ebcd322695355e"},{"author":{"_account_id":34510,"name":"Maxim Sava","email":"msava@redhat.com","username":"msava@redhat.com"},"change_message_id":"ea367b13a5705660e463ce3ac81a65815fc5ba9b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"ed614655_d46ad31c","updated":"2023-11-05 16:46:31.000000000","message":"recheck","commit_id":"dbbdae669ee7f2ca3e0ace8ce1ebcd322695355e"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"bc520549cb0fd083800f503f56d4ec2278d4e60c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"5bc98706_cd22c73d","updated":"2023-11-27 10:55:13.000000000","message":"Overall looks good to me. I just added two comments:).","commit_id":"0e2b811ed2b2bf5a668c8a8d3a45a00c4d628839"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"bc520549cb0fd083800f503f56d4ec2278d4e60c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"c668a4f2_d2aad705","updated":"2023-11-27 10:55:13.000000000","message":"Overall looks good to me:). I just added two comments.","commit_id":"0e2b811ed2b2bf5a668c8a8d3a45a00c4d628839"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"96155a9ceda9c91576269e374853abff9098bc55","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"ae88db8e_c56c3571","updated":"2023-12-05 20:58:02.000000000","message":"few comments inline","commit_id":"b72d4e775727e8de6ba395cc8b26960421ba9430"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"ef25474df2ef0fc1413d21ffd44c8ab6016dbb42","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"cdd421c6_c332905a","updated":"2023-12-04 14:20:55.000000000","message":"lgtm, is the test being (planned to be) executed in a job somewhere?","commit_id":"b72d4e775727e8de6ba395cc8b26960421ba9430"},{"author":{"_account_id":34510,"name":"Maxim Sava","email":"msava@redhat.com","username":"msava@redhat.com"},"change_message_id":"6cb14836377a4faec5b7cb65ba510f79c8ccc000","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"a043ceb5_21ac855b","in_reply_to":"cdd421c6_c332905a","updated":"2023-12-05 11:31:56.000000000","message":"I think we should execute this test in  job with Distributed image import configuration or one of jobs with multi-store configuration.","commit_id":"b72d4e775727e8de6ba395cc8b26960421ba9430"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"e8f4192c489787af6a1cf179dd426aee0a2a365f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"b33b1368_fab0cd6c","updated":"2023-12-11 09:04:07.000000000","message":"recheck\nFailure in tempest-multinode-full-py3 not caused by the patch. The tempest-multinode-full-py3 seems to be working.","commit_id":"5adab608a576d474f8f31dc40cc2e66fca5759de"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"e60d82b50726c3b0185401c104e13649eb784ffb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"b811fa27_d93aa828","updated":"2023-12-20 19:45:49.000000000","message":"lgtm","commit_id":"bd9cbd35ccc807cf0a1127caed44000457b037a3"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"021777525e3091d19c7f554fe7a224e03cf29d36","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"f9cad284_cf4a2fb6","updated":"2023-12-14 13:57:23.000000000","message":"recheck\n\nThe failure in sanity-plugin-check job is most likely not caused by this patch:\n```\nfatal: unable to access \u0027https://opendev.org/openstack/venus-tempest-plugin/\u0027: Failed to connect to opendev.org port 443 after 130917 ms: Connection timed out\n```\nSeems like there was an issue with downloading of venus-tempest-plugin. I\u0027ve just tested locally and downloading of this plugin should work.","commit_id":"bd9cbd35ccc807cf0a1127caed44000457b037a3"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"048ab7542d3517038476e884b90a9f0d7a34fcf3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"62f275c8_9982bf54","updated":"2024-01-09 17:03:32.000000000","message":"thanks for updates","commit_id":"bd9cbd35ccc807cf0a1127caed44000457b037a3"}],"tempest/api/image/v2/admin/test_images.py":[{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"3366fa8cb6ab03785c0cc8741051ae9e2f4f560e","unresolved":true,"context_lines":[{"line_number":191,"context_line":"    @classmethod"},{"line_number":192,"context_line":"    def resource_setup(cls):"},{"line_number":193,"context_line":"        super(MultiStoresImagesTest, cls).resource_setup()"},{"line_number":194,"context_line":"        cls.available_import_methods \u003d cls.client.info_import()["},{"line_number":195,"context_line":"            \u0027import-methods\u0027][\u0027value\u0027]"},{"line_number":196,"context_line":"        if not cls.available_import_methods:"},{"line_number":197,"context_line":"            raise cls.skipException(\u0027Server does not support \u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"32381bcc_d428f9bb","line":194,"range":{"start_line":194,"start_character":63,"end_line":194,"end_character":64},"updated":"2023-11-15 08:55:50.000000000","message":"Let\u0027s keep the brackets together:)","commit_id":"dbbdae669ee7f2ca3e0ace8ce1ebcd322695355e"},{"author":{"_account_id":34510,"name":"Maxim Sava","email":"msava@redhat.com","username":"msava@redhat.com"},"change_message_id":"15f407f9dd9e024387b204961040034e52d7ff78","unresolved":false,"context_lines":[{"line_number":191,"context_line":"    @classmethod"},{"line_number":192,"context_line":"    def resource_setup(cls):"},{"line_number":193,"context_line":"        super(MultiStoresImagesTest, cls).resource_setup()"},{"line_number":194,"context_line":"        cls.available_import_methods \u003d cls.client.info_import()["},{"line_number":195,"context_line":"            \u0027import-methods\u0027][\u0027value\u0027]"},{"line_number":196,"context_line":"        if not cls.available_import_methods:"},{"line_number":197,"context_line":"            raise cls.skipException(\u0027Server does not support \u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"1e4ace86_c2b4a0a3","line":194,"range":{"start_line":194,"start_character":63,"end_line":194,"end_character":64},"in_reply_to":"32381bcc_d428f9bb","updated":"2023-11-16 13:42:18.000000000","message":"Done","commit_id":"dbbdae669ee7f2ca3e0ace8ce1ebcd322695355e"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"3366fa8cb6ab03785c0cc8741051ae9e2f4f560e","unresolved":true,"context_lines":[{"line_number":252,"context_line":"                observed_image[\u0027id\u0027], image_store_deleted)"},{"line_number":253,"context_line":"        image_deleted_from_store \u003d waiters.wait_for_image_deleted_from_store("},{"line_number":254,"context_line":"                self.admin_client,"},{"line_number":255,"context_line":"                observed_image, "},{"line_number":256,"context_line":"                stores, "},{"line_number":257,"context_line":"                image_store_deleted)"},{"line_number":258,"context_line":"        self.assertNotIn(observed_image[\u0027stores\u0027],"}],"source_content_type":"text/x-python","patch_set":9,"id":"25e7af19_934d1d19","line":255,"range":{"start_line":255,"start_character":31,"end_line":255,"end_character":32},"updated":"2023-11-15 08:55:50.000000000","message":"The white spaces should be removed.","commit_id":"dbbdae669ee7f2ca3e0ace8ce1ebcd322695355e"},{"author":{"_account_id":34510,"name":"Maxim Sava","email":"msava@redhat.com","username":"msava@redhat.com"},"change_message_id":"15f407f9dd9e024387b204961040034e52d7ff78","unresolved":false,"context_lines":[{"line_number":252,"context_line":"                observed_image[\u0027id\u0027], image_store_deleted)"},{"line_number":253,"context_line":"        image_deleted_from_store \u003d waiters.wait_for_image_deleted_from_store("},{"line_number":254,"context_line":"                self.admin_client,"},{"line_number":255,"context_line":"                observed_image, "},{"line_number":256,"context_line":"                stores, "},{"line_number":257,"context_line":"                image_store_deleted)"},{"line_number":258,"context_line":"        self.assertNotIn(observed_image[\u0027stores\u0027],"}],"source_content_type":"text/x-python","patch_set":9,"id":"b488ba94_0a1d749c","line":255,"range":{"start_line":255,"start_character":31,"end_line":255,"end_character":32},"in_reply_to":"25e7af19_934d1d19","updated":"2023-11-16 13:42:18.000000000","message":"Done","commit_id":"dbbdae669ee7f2ca3e0ace8ce1ebcd322695355e"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"bc520549cb0fd083800f503f56d4ec2278d4e60c","unresolved":true,"context_lines":[{"line_number":209,"context_line":"                \u0027configured %s\u0027 % (cls.available_import_methods,"},{"line_number":210,"context_line":"                                   cls.available_stores))"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    def _create_and_stage_image(self, all_stores\u003dFalse):"},{"line_number":213,"context_line":"        \"\"\"Create Image \u0026 stage image file for glance-direct import method.\"\"\""},{"line_number":214,"context_line":"        image_name \u003d data_utils.rand_name(\u0027test-image\u0027)"},{"line_number":215,"context_line":"        container_format \u003d CONF.image.container_formats[0]"}],"source_content_type":"text/x-python","patch_set":11,"id":"ee54c228_0b794b7b","line":212,"range":{"start_line":212,"start_character":0,"end_line":212,"end_character":2},"updated":"2023-11-27 10:55:13.000000000","message":"Would it be OK if we moved this function to BaseV2ImageTest? It is used at two places here and [1][2]. We probably want to avoid a duplicate code [3].\n\n[1] https://opendev.org/openstack/tempest/src/commit/8def25cbb5885e91899793f8575d3919816a0d12/tempest/api/image/v2/test_images.py#L383\n[2] https://opendev.org/openstack/tempest/src/commit/8def25cbb5885e91899793f8575d3919816a0d12/tempest/api/image/v2/test_images.py#L398\n[3] https://opendev.org/openstack/tempest/src/commit/8def25cbb5885e91899793f8575d3919816a0d12/tempest/api/image/v2/test_images.py#L346","commit_id":"0e2b811ed2b2bf5a668c8a8d3a45a00c4d628839"},{"author":{"_account_id":34510,"name":"Maxim Sava","email":"msava@redhat.com","username":"msava@redhat.com"},"change_message_id":"c5d4208ef2c19cf104ff5d99502be91123b09f15","unresolved":false,"context_lines":[{"line_number":209,"context_line":"                \u0027configured %s\u0027 % (cls.available_import_methods,"},{"line_number":210,"context_line":"                                   cls.available_stores))"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    def _create_and_stage_image(self, all_stores\u003dFalse):"},{"line_number":213,"context_line":"        \"\"\"Create Image \u0026 stage image file for glance-direct import method.\"\"\""},{"line_number":214,"context_line":"        image_name \u003d data_utils.rand_name(\u0027test-image\u0027)"},{"line_number":215,"context_line":"        container_format \u003d CONF.image.container_formats[0]"}],"source_content_type":"text/x-python","patch_set":11,"id":"89c0f09f_4f44165b","line":212,"range":{"start_line":212,"start_character":0,"end_line":212,"end_character":2},"in_reply_to":"ee54c228_0b794b7b","updated":"2023-12-03 07:31:52.000000000","message":"Done","commit_id":"0e2b811ed2b2bf5a668c8a8d3a45a00c4d628839"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"96155a9ceda9c91576269e374853abff9098bc55","unresolved":true,"context_lines":[{"line_number":179,"context_line":""},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"class MultiStoresImagesTest(base.BaseV2ImageAdminTest, base.BaseV2ImageTest):"},{"line_number":182,"context_line":"    \"\"\"Test importing image in multiple stores\"\"\""},{"line_number":183,"context_line":"    @classmethod"},{"line_number":184,"context_line":"    def skip_checks(cls):"},{"line_number":185,"context_line":"        super(MultiStoresImagesTest, cls).skip_checks()"}],"source_content_type":"text/x-python","patch_set":12,"id":"4de2f233_d09266f7","line":182,"range":{"start_line":182,"start_character":4,"end_line":182,"end_character":49},"updated":"2023-12-05 20:58:02.000000000","message":"let\u0027s be specific here\n\n\"\"\"Test importing/deleting image from multiple stores\"\"\"","commit_id":"b72d4e775727e8de6ba395cc8b26960421ba9430"},{"author":{"_account_id":34510,"name":"Maxim Sava","email":"msava@redhat.com","username":"msava@redhat.com"},"change_message_id":"271b6dba91c3ef7065a4a7dde91de211d834da1f","unresolved":false,"context_lines":[{"line_number":179,"context_line":""},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"class MultiStoresImagesTest(base.BaseV2ImageAdminTest, base.BaseV2ImageTest):"},{"line_number":182,"context_line":"    \"\"\"Test importing image in multiple stores\"\"\""},{"line_number":183,"context_line":"    @classmethod"},{"line_number":184,"context_line":"    def skip_checks(cls):"},{"line_number":185,"context_line":"        super(MultiStoresImagesTest, cls).skip_checks()"}],"source_content_type":"text/x-python","patch_set":12,"id":"1d96b30e_a2ea05dd","line":182,"range":{"start_line":182,"start_character":4,"end_line":182,"end_character":49},"in_reply_to":"4de2f233_d09266f7","updated":"2023-12-10 12:46:43.000000000","message":"Done","commit_id":"b72d4e775727e8de6ba395cc8b26960421ba9430"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"96155a9ceda9c91576269e374853abff9098bc55","unresolved":true,"context_lines":[{"line_number":230,"context_line":"                observed_image,"},{"line_number":231,"context_line":"                stores,"},{"line_number":232,"context_line":"                image_store_deleted)"},{"line_number":233,"context_line":"        self.assertNotIn("},{"line_number":234,"context_line":"            observed_image[\u0027stores\u0027],"},{"line_number":235,"context_line":"            image_deleted_from_store[\u0027stores\u0027])"}],"source_content_type":"text/x-python","patch_set":12,"id":"552013f4_8ac37fb7","line":235,"range":{"start_line":233,"start_character":0,"end_line":235,"end_character":47},"updated":"2023-12-05 20:58:02.000000000","message":"I did not get the purpose of this assert? you mean to check both stores are not equal? I think L227 make assert on if image is deleted from requested store or not so this extra assert is not needed right?","commit_id":"b72d4e775727e8de6ba395cc8b26960421ba9430"},{"author":{"_account_id":34510,"name":"Maxim Sava","email":"msava@redhat.com","username":"msava@redhat.com"},"change_message_id":"54c5e212ba0fbe55eb97b6beb3ce1aa2ab42f757","unresolved":false,"context_lines":[{"line_number":230,"context_line":"                observed_image,"},{"line_number":231,"context_line":"                stores,"},{"line_number":232,"context_line":"                image_store_deleted)"},{"line_number":233,"context_line":"        self.assertNotIn("},{"line_number":234,"context_line":"            observed_image[\u0027stores\u0027],"},{"line_number":235,"context_line":"            image_deleted_from_store[\u0027stores\u0027])"}],"source_content_type":"text/x-python","patch_set":12,"id":"6c68f635_ddd95870","line":235,"range":{"start_line":233,"start_character":0,"end_line":235,"end_character":47},"in_reply_to":"552013f4_8ac37fb7","updated":"2023-12-10 12:45:15.000000000","message":"Right.\nI will remove this assertion as we check if image is deleted from store in line L227","commit_id":"b72d4e775727e8de6ba395cc8b26960421ba9430"}],"tempest/api/image/v2/test_images.py":[{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"10510c5d37a9c9c35e4c80c647dec354fc0cf25f","unresolved":true,"context_lines":[{"line_number":313,"context_line":"        self.client.wait_for_resource_deletion(image_id)"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"class MultiStoresImportImagesTest(base.BaseV2ImageAdminTest):"},{"line_number":317,"context_line":"    \"\"\"Test importing image in multiple stores\"\"\""},{"line_number":318,"context_line":"    @classmethod"},{"line_number":319,"context_line":"    def skip_checks(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"f68b3fa4_dc250759","line":316,"range":{"start_line":316,"start_character":39,"end_line":316,"end_character":59},"updated":"2023-10-17 12:07:39.000000000","message":"Why did you change that it inherited from the Admin class ?","commit_id":"01a2b94417a9f37a099e5fe42911d060e114c209"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"e82be3f535bf67124717dde79680c1d9221aa530","unresolved":false,"context_lines":[{"line_number":313,"context_line":"        self.client.wait_for_resource_deletion(image_id)"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"class MultiStoresImportImagesTest(base.BaseV2ImageAdminTest):"},{"line_number":317,"context_line":"    \"\"\"Test importing image in multiple stores\"\"\""},{"line_number":318,"context_line":"    @classmethod"},{"line_number":319,"context_line":"    def skip_checks(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"c7144df3_d021d25a","line":316,"range":{"start_line":316,"start_character":39,"end_line":316,"end_character":59},"in_reply_to":"96ed623e_583e817d","updated":"2023-10-18 08:25:59.000000000","message":"So the test should be placed in tempest/api/image/v2/admin/test_images.py\nYou cannot simply change the inheritance of existing tests.","commit_id":"01a2b94417a9f37a099e5fe42911d060e114c209"},{"author":{"_account_id":34510,"name":"Maxim Sava","email":"msava@redhat.com","username":"msava@redhat.com"},"change_message_id":"8d03cda1eda7d93798f9c092028cc8408d2a5223","unresolved":false,"context_lines":[{"line_number":313,"context_line":"        self.client.wait_for_resource_deletion(image_id)"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"class MultiStoresImportImagesTest(base.BaseV2ImageAdminTest):"},{"line_number":317,"context_line":"    \"\"\"Test importing image in multiple stores\"\"\""},{"line_number":318,"context_line":"    @classmethod"},{"line_number":319,"context_line":"    def skip_checks(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"df317507_367db6cb","line":316,"range":{"start_line":316,"start_character":39,"end_line":316,"end_character":59},"in_reply_to":"c7144df3_d021d25a","updated":"2023-10-18 10:18:00.000000000","message":"Moved to image admin tests","commit_id":"01a2b94417a9f37a099e5fe42911d060e114c209"},{"author":{"_account_id":34510,"name":"Maxim Sava","email":"msava@redhat.com","username":"msava@redhat.com"},"change_message_id":"ede80d5d2c0b6b2764d1af0eb1fc923e66ecbe20","unresolved":false,"context_lines":[{"line_number":313,"context_line":"        self.client.wait_for_resource_deletion(image_id)"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"class MultiStoresImportImagesTest(base.BaseV2ImageAdminTest):"},{"line_number":317,"context_line":"    \"\"\"Test importing image in multiple stores\"\"\""},{"line_number":318,"context_line":"    @classmethod"},{"line_number":319,"context_line":"    def skip_checks(cls):"}],"source_content_type":"text/x-python","patch_set":1,"id":"96ed623e_583e817d","line":316,"range":{"start_line":316,"start_character":39,"end_line":316,"end_character":59},"in_reply_to":"f68b3fa4_dc250759","updated":"2023-10-18 08:13:38.000000000","message":"To delete image from store we need admin credentials","commit_id":"01a2b94417a9f37a099e5fe42911d060e114c209"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"10510c5d37a9c9c35e4c80c647dec354fc0cf25f","unresolved":true,"context_lines":[{"line_number":409,"context_line":""},{"line_number":410,"context_line":"        \"\"\""},{"line_number":411,"context_line":"        image, stores \u003d self._create_and_stage_image(all_stores\u003dTrue)"},{"line_number":412,"context_line":"                                                                       "},{"line_number":413,"context_line":"        self.client.image_import("},{"line_number":414,"context_line":"            image[\u0027id\u0027], method\u003d\u0027glance-direct\u0027, all_stores\u003dTrue)"},{"line_number":415,"context_line":"                                                                       "}],"source_content_type":"text/x-python","patch_set":1,"id":"9f0c7126_d873402a","line":412,"range":{"start_line":412,"start_character":0,"end_line":412,"end_character":71},"updated":"2023-10-17 12:07:39.000000000","message":"Remove it","commit_id":"01a2b94417a9f37a099e5fe42911d060e114c209"},{"author":{"_account_id":34510,"name":"Maxim Sava","email":"msava@redhat.com","username":"msava@redhat.com"},"change_message_id":"ede80d5d2c0b6b2764d1af0eb1fc923e66ecbe20","unresolved":false,"context_lines":[{"line_number":409,"context_line":""},{"line_number":410,"context_line":"        \"\"\""},{"line_number":411,"context_line":"        image, stores \u003d self._create_and_stage_image(all_stores\u003dTrue)"},{"line_number":412,"context_line":"                                                                       "},{"line_number":413,"context_line":"        self.client.image_import("},{"line_number":414,"context_line":"            image[\u0027id\u0027], method\u003d\u0027glance-direct\u0027, all_stores\u003dTrue)"},{"line_number":415,"context_line":"                                                                       "}],"source_content_type":"text/x-python","patch_set":1,"id":"aaf0f31d_9fc8079f","line":412,"range":{"start_line":412,"start_character":0,"end_line":412,"end_character":71},"in_reply_to":"9f0c7126_d873402a","updated":"2023-10-18 08:13:38.000000000","message":"Ack","commit_id":"01a2b94417a9f37a099e5fe42911d060e114c209"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"e82be3f535bf67124717dde79680c1d9221aa530","unresolved":false,"context_lines":[{"line_number":409,"context_line":""},{"line_number":410,"context_line":"        \"\"\""},{"line_number":411,"context_line":"        image, stores \u003d self._create_and_stage_image(all_stores\u003dTrue)"},{"line_number":412,"context_line":"                                                                       "},{"line_number":413,"context_line":"        self.client.image_import("},{"line_number":414,"context_line":"            image[\u0027id\u0027], method\u003d\u0027glance-direct\u0027, all_stores\u003dTrue)"},{"line_number":415,"context_line":"                                                                       "}],"source_content_type":"text/x-python","patch_set":1,"id":"c5877354_39988a84","line":412,"range":{"start_line":412,"start_character":0,"end_line":412,"end_character":71},"in_reply_to":"aaf0f31d_9fc8079f","updated":"2023-10-18 08:25:59.000000000","message":"There\u0027s still syntax issue here.","commit_id":"01a2b94417a9f37a099e5fe42911d060e114c209"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"10510c5d37a9c9c35e4c80c647dec354fc0cf25f","unresolved":true,"context_lines":[{"line_number":412,"context_line":"                                                                       "},{"line_number":413,"context_line":"        self.client.image_import("},{"line_number":414,"context_line":"            image[\u0027id\u0027], method\u003d\u0027glance-direct\u0027, all_stores\u003dTrue)"},{"line_number":415,"context_line":"                                                                       "},{"line_number":416,"context_line":"        waiters.wait_for_image_imported_to_stores(self.client,"},{"line_number":417,"context_line":"                                                  image[\u0027id\u0027], stores)"},{"line_number":418,"context_line":"        observed_image \u003d self.client.show_image(image[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"e5dabb1c_2f5341cb","line":415,"range":{"start_line":415,"start_character":0,"end_line":415,"end_character":71},"updated":"2023-10-17 12:07:39.000000000","message":"Same","commit_id":"01a2b94417a9f37a099e5fe42911d060e114c209"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"e82be3f535bf67124717dde79680c1d9221aa530","unresolved":false,"context_lines":[{"line_number":412,"context_line":"                                                                       "},{"line_number":413,"context_line":"        self.client.image_import("},{"line_number":414,"context_line":"            image[\u0027id\u0027], method\u003d\u0027glance-direct\u0027, all_stores\u003dTrue)"},{"line_number":415,"context_line":"                                                                       "},{"line_number":416,"context_line":"        waiters.wait_for_image_imported_to_stores(self.client,"},{"line_number":417,"context_line":"                                                  image[\u0027id\u0027], stores)"},{"line_number":418,"context_line":"        observed_image \u003d self.client.show_image(image[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"e8e70139_2f858396","line":415,"range":{"start_line":415,"start_character":0,"end_line":415,"end_character":71},"in_reply_to":"2d321cd3_884002fc","updated":"2023-10-18 08:25:59.000000000","message":"Same.","commit_id":"01a2b94417a9f37a099e5fe42911d060e114c209"},{"author":{"_account_id":34510,"name":"Maxim Sava","email":"msava@redhat.com","username":"msava@redhat.com"},"change_message_id":"ede80d5d2c0b6b2764d1af0eb1fc923e66ecbe20","unresolved":false,"context_lines":[{"line_number":412,"context_line":"                                                                       "},{"line_number":413,"context_line":"        self.client.image_import("},{"line_number":414,"context_line":"            image[\u0027id\u0027], method\u003d\u0027glance-direct\u0027, all_stores\u003dTrue)"},{"line_number":415,"context_line":"                                                                       "},{"line_number":416,"context_line":"        waiters.wait_for_image_imported_to_stores(self.client,"},{"line_number":417,"context_line":"                                                  image[\u0027id\u0027], stores)"},{"line_number":418,"context_line":"        observed_image \u003d self.client.show_image(image[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"2d321cd3_884002fc","line":415,"range":{"start_line":415,"start_character":0,"end_line":415,"end_character":71},"in_reply_to":"e5dabb1c_2f5341cb","updated":"2023-10-18 08:13:38.000000000","message":"Ack","commit_id":"01a2b94417a9f37a099e5fe42911d060e114c209"}],"tempest/common/waiters.py":[{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"5971802ef65de93814f9987d4f1ffb950140ad00","unresolved":true,"context_lines":[{"line_number":320,"context_line":"            exc_cls \u003d lib_exc.OtherRestClientException"},{"line_number":321,"context_line":"            break"},{"line_number":322,"context_line":"        image_store_deleted \u003d (image[\u0027stores\u0027].split(\",\"))[store_id]"},{"line_number":323,"context_line":"        client.delete_image_from_store("},{"line_number":324,"context_line":"                image[\u0027id\u0027],image_store_deleted)"},{"line_number":325,"context_line":"        observed_image \u003d client.show_image(image[\u0027id\u0027])"},{"line_number":326,"context_line":"        if image_store_deleted not in observed_image[\u0027stores\u0027]:"},{"line_number":327,"context_line":"            return observed_image"}],"source_content_type":"text/x-python","patch_set":5,"id":"2883d7f4_f0a4f216","line":324,"range":{"start_line":323,"start_character":0,"end_line":324,"end_character":48},"updated":"2023-10-18 13:33:35.000000000","message":"This shouldn\u0027t be inside the waiter method.\nThe purpose of the waiter method is to wait for the operation to finish in a certain time interval.\n\nBy the way, this operation is supported since Image API v2.10, so maybe you need to add a skip condition.","commit_id":"ccb3aa13eb851b51845afda52ad31b077de794b9"},{"author":{"_account_id":34510,"name":"Maxim Sava","email":"msava@redhat.com","username":"msava@redhat.com"},"change_message_id":"2cdd929bc56da91c8644e5077c6365800b4a80a4","unresolved":false,"context_lines":[{"line_number":320,"context_line":"            exc_cls \u003d lib_exc.OtherRestClientException"},{"line_number":321,"context_line":"            break"},{"line_number":322,"context_line":"        image_store_deleted \u003d (image[\u0027stores\u0027].split(\",\"))[store_id]"},{"line_number":323,"context_line":"        client.delete_image_from_store("},{"line_number":324,"context_line":"                image[\u0027id\u0027],image_store_deleted)"},{"line_number":325,"context_line":"        observed_image \u003d client.show_image(image[\u0027id\u0027])"},{"line_number":326,"context_line":"        if image_store_deleted not in observed_image[\u0027stores\u0027]:"},{"line_number":327,"context_line":"            return observed_image"}],"source_content_type":"text/x-python","patch_set":5,"id":"369d8206_064aced2","line":324,"range":{"start_line":323,"start_character":0,"end_line":324,"end_character":48},"in_reply_to":"2883d7f4_f0a4f216","updated":"2023-10-19 12:48:24.000000000","message":"One of reason why delete from store implemented in waiter method because delete image from stores takes time.\nMicroversion support in glance will be implemented in future.","commit_id":"ccb3aa13eb851b51845afda52ad31b077de794b9"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"7cc740960297d5ad365a2c5e9a10e1f990dbd207","unresolved":false,"context_lines":[{"line_number":320,"context_line":"            exc_cls \u003d lib_exc.OtherRestClientException"},{"line_number":321,"context_line":"            break"},{"line_number":322,"context_line":"        image_store_deleted \u003d (image[\u0027stores\u0027].split(\",\"))[store_id]"},{"line_number":323,"context_line":"        client.delete_image_from_store("},{"line_number":324,"context_line":"                image[\u0027id\u0027],image_store_deleted)"},{"line_number":325,"context_line":"        observed_image \u003d client.show_image(image[\u0027id\u0027])"},{"line_number":326,"context_line":"        if image_store_deleted not in observed_image[\u0027stores\u0027]:"},{"line_number":327,"context_line":"            return observed_image"}],"source_content_type":"text/x-python","patch_set":5,"id":"947aebc9_c06f090c","line":324,"range":{"start_line":323,"start_character":0,"end_line":324,"end_character":48},"in_reply_to":"369d8206_064aced2","updated":"2023-10-19 13:23:03.000000000","message":"But it doesn\u0027t require it to be inside the waiter method.","commit_id":"ccb3aa13eb851b51845afda52ad31b077de794b9"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"3366fa8cb6ab03785c0cc8741051ae9e2f4f560e","unresolved":true,"context_lines":[{"line_number":310,"context_line":"        message \u003d \u0027(%s) %s\u0027 % (caller, message)"},{"line_number":311,"context_line":"    raise lib_exc.TimeoutException(message)"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"def wait_for_image_deleted_from_store(client,image, available_stores, "},{"line_number":314,"context_line":"                                      image_store_deleted):"},{"line_number":315,"context_line":"    \"\"\"Waits for an image to be deleted from specific store."},{"line_number":316,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9857cf54_ef7e7597","line":313,"range":{"start_line":313,"start_character":69,"end_line":313,"end_character":70},"updated":"2023-11-15 08:55:50.000000000","message":"ditto","commit_id":"dbbdae669ee7f2ca3e0ace8ce1ebcd322695355e"},{"author":{"_account_id":34510,"name":"Maxim Sava","email":"msava@redhat.com","username":"msava@redhat.com"},"change_message_id":"15f407f9dd9e024387b204961040034e52d7ff78","unresolved":false,"context_lines":[{"line_number":310,"context_line":"        message \u003d \u0027(%s) %s\u0027 % (caller, message)"},{"line_number":311,"context_line":"    raise lib_exc.TimeoutException(message)"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"def wait_for_image_deleted_from_store(client,image, available_stores, "},{"line_number":314,"context_line":"                                      image_store_deleted):"},{"line_number":315,"context_line":"    \"\"\"Waits for an image to be deleted from specific store."},{"line_number":316,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"91f0496c_08375f82","line":313,"range":{"start_line":313,"start_character":69,"end_line":313,"end_character":70},"in_reply_to":"9857cf54_ef7e7597","updated":"2023-11-16 13:42:18.000000000","message":"Done","commit_id":"dbbdae669ee7f2ca3e0ace8ce1ebcd322695355e"},{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"bc520549cb0fd083800f503f56d4ec2278d4e60c","unresolved":true,"context_lines":[{"line_number":324,"context_line":"        image \u003d client.show_image(image[\u0027id\u0027])"},{"line_number":325,"context_line":"        image_stores \u003d image[\u0027stores\u0027].split(\",\")"},{"line_number":326,"context_line":"        # Check if image have last store location"},{"line_number":327,"context_line":"        if len(available_stores) \u003d\u003d 1:"},{"line_number":328,"context_line":"            exc_cls \u003d lib_exc.OtherRestClientException"},{"line_number":329,"context_line":"            break"},{"line_number":330,"context_line":"        if image_store_deleted not in image_stores:"},{"line_number":331,"context_line":"            return image"},{"line_number":332,"context_line":"        time.sleep(client.build_interval)"}],"source_content_type":"text/x-python","patch_set":11,"id":"97496890_752ae40b","line":329,"range":{"start_line":327,"start_character":7,"end_line":329,"end_character":17},"updated":"2023-11-27 10:55:13.000000000","message":"Do you think it would be OK if we moved this at the beginning of the function? If we know that deletion of an image from a last image store is not allowed then we can spare one API call and raise the exception at the beginning of the function.","commit_id":"0e2b811ed2b2bf5a668c8a8d3a45a00c4d628839"},{"author":{"_account_id":34510,"name":"Maxim Sava","email":"msava@redhat.com","username":"msava@redhat.com"},"change_message_id":"c5d4208ef2c19cf104ff5d99502be91123b09f15","unresolved":false,"context_lines":[{"line_number":324,"context_line":"        image \u003d client.show_image(image[\u0027id\u0027])"},{"line_number":325,"context_line":"        image_stores \u003d image[\u0027stores\u0027].split(\",\")"},{"line_number":326,"context_line":"        # Check if image have last store location"},{"line_number":327,"context_line":"        if len(available_stores) \u003d\u003d 1:"},{"line_number":328,"context_line":"            exc_cls \u003d lib_exc.OtherRestClientException"},{"line_number":329,"context_line":"            break"},{"line_number":330,"context_line":"        if image_store_deleted not in image_stores:"},{"line_number":331,"context_line":"            return image"},{"line_number":332,"context_line":"        time.sleep(client.build_interval)"}],"source_content_type":"text/x-python","patch_set":11,"id":"1b45827b_58b505e4","line":329,"range":{"start_line":327,"start_character":7,"end_line":329,"end_character":17},"in_reply_to":"97496890_752ae40b","updated":"2023-12-03 07:31:52.000000000","message":"Done","commit_id":"0e2b811ed2b2bf5a668c8a8d3a45a00c4d628839"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"96155a9ceda9c91576269e374853abff9098bc55","unresolved":true,"context_lines":[{"line_number":332,"context_line":"        if image_store_deleted not in image_stores:"},{"line_number":333,"context_line":"            return image"},{"line_number":334,"context_line":"        time.sleep(client.build_interval)"},{"line_number":335,"context_line":"    message \u003d (\u0027Delete %s from last store location %s is not allowed\u0027 % ("},{"line_number":336,"context_line":"        image, image_store_deleted))"},{"line_number":337,"context_line":"    caller \u003d test_utils.find_test_caller()"},{"line_number":338,"context_line":"    if caller:"}],"source_content_type":"text/x-python","patch_set":12,"id":"b37cfadb_a7d47057","line":335,"range":{"start_line":335,"start_character":31,"end_line":335,"end_character":36},"updated":"2023-12-05 20:58:02.000000000","message":"this is misleading, it should be:\n\n(\u0027Failed to delete %s from requested store location: %s within the required time: (%s s)\u0027 % (image, image_store_deleted, client.build_timeout))","commit_id":"b72d4e775727e8de6ba395cc8b26960421ba9430"},{"author":{"_account_id":34510,"name":"Maxim Sava","email":"msava@redhat.com","username":"msava@redhat.com"},"change_message_id":"54c5e212ba0fbe55eb97b6beb3ce1aa2ab42f757","unresolved":false,"context_lines":[{"line_number":332,"context_line":"        if image_store_deleted not in image_stores:"},{"line_number":333,"context_line":"            return image"},{"line_number":334,"context_line":"        time.sleep(client.build_interval)"},{"line_number":335,"context_line":"    message \u003d (\u0027Delete %s from last store location %s is not allowed\u0027 % ("},{"line_number":336,"context_line":"        image, image_store_deleted))"},{"line_number":337,"context_line":"    caller \u003d test_utils.find_test_caller()"},{"line_number":338,"context_line":"    if caller:"}],"source_content_type":"text/x-python","patch_set":12,"id":"460e007a_02933e28","line":335,"range":{"start_line":335,"start_character":31,"end_line":335,"end_character":36},"in_reply_to":"b37cfadb_a7d47057","updated":"2023-12-10 12:45:15.000000000","message":"Done","commit_id":"b72d4e775727e8de6ba395cc8b26960421ba9430"}],"tempest/tests/lib/services/image/v2/test_images_client.py":[{"author":{"_account_id":30674,"name":"Lukas Piwowarski","email":"lpiwowar@redhat.com","username":"lukas-piwowarski"},"change_message_id":"3366fa8cb6ab03785c0cc8741051ae9e2f4f560e","unresolved":true,"context_lines":[{"line_number":331,"context_line":"            \u0027tempest.lib.common.rest_client.RestClient.delete\u0027,"},{"line_number":332,"context_line":"            {},"},{"line_number":333,"context_line":"            image_id\u003d self.FAKE_DELETE_IMAGE_FROM_STORE[\"id\"],"},{"line_number":334,"context_line":"            store_name \u003d self.FAKE_DELETE_IMAGE_FROM_STORE[\"stores\"][0],"},{"line_number":335,"context_line":"            status\u003d204)"}],"source_content_type":"text/x-python","patch_set":9,"id":"2757e361_575f2784","line":334,"range":{"start_line":334,"start_character":22,"end_line":334,"end_character":23},"updated":"2023-11-15 08:55:50.000000000","message":"nit:\n```\nimage_id\u003dself.FAKE_DELETE_IMAGE_FROM_STORE[\"id\"]\nstore_name\u003dself.FAKE_DELETE_IMAGE_FROM_STORE[\"stores\"][0]\n```","commit_id":"dbbdae669ee7f2ca3e0ace8ce1ebcd322695355e"},{"author":{"_account_id":34510,"name":"Maxim Sava","email":"msava@redhat.com","username":"msava@redhat.com"},"change_message_id":"15f407f9dd9e024387b204961040034e52d7ff78","unresolved":false,"context_lines":[{"line_number":331,"context_line":"            \u0027tempest.lib.common.rest_client.RestClient.delete\u0027,"},{"line_number":332,"context_line":"            {},"},{"line_number":333,"context_line":"            image_id\u003d self.FAKE_DELETE_IMAGE_FROM_STORE[\"id\"],"},{"line_number":334,"context_line":"            store_name \u003d self.FAKE_DELETE_IMAGE_FROM_STORE[\"stores\"][0],"},{"line_number":335,"context_line":"            status\u003d204)"}],"source_content_type":"text/x-python","patch_set":9,"id":"b525a13b_87422339","line":334,"range":{"start_line":334,"start_character":22,"end_line":334,"end_character":23},"in_reply_to":"2757e361_575f2784","updated":"2023-11-16 13:42:18.000000000","message":"Done","commit_id":"dbbdae669ee7f2ca3e0ace8ce1ebcd322695355e"}]}
