)]}'
{"tempest/api/image/v2/admin/test_images.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"d1d19716bd055d730f4efafc0708d118c6b2061c","unresolved":false,"context_lines":[{"line_number":131,"context_line":"            raise cls.skipException(skip_msg)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    @decorators.idempotent_id(\u0027bf04ff00-3182-47cb-833a-f1c6767b47fd\u0027)"},{"line_number":134,"context_line":"    def test_upload_image_to_all_stores_with_all_store_must_suceed(self):"},{"line_number":135,"context_line":"        \"\"\"Test \u0027copy-image\u0027 import functionalities"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        Create image, import image to all stores with all_store_must_suceed"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_0fbb500e","line":134,"range":{"start_line":134,"start_character":8,"end_line":134,"end_character":66},"updated":"2020-08-12 08:44:38.000000000","message":"should use import instead of upload","commit_id":"bfdd247a42d7fdba7c8ebe951190b2eef01a9af0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"d1d19716bd055d730f4efafc0708d118c6b2061c","unresolved":false,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    @decorators.idempotent_id(\u0027bf04ff00-3182-47cb-833a-f1c6767b47fd\u0027)"},{"line_number":134,"context_line":"    def test_upload_image_to_all_stores_with_all_store_must_suceed(self):"},{"line_number":135,"context_line":"        \"\"\"Test \u0027copy-image\u0027 import functionalities"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        Create image, import image to all stores with all_store_must_suceed"},{"line_number":138,"context_line":"        to True and verify that import succeeded."}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_4f3a6898","line":135,"range":{"start_line":135,"start_character":17,"end_line":135,"end_character":27},"updated":"2020-08-12 08:44:38.000000000","message":"we are not using copy-image anywhere","commit_id":"bfdd247a42d7fdba7c8ebe951190b2eef01a9af0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"d1d19716bd055d730f4efafc0708d118c6b2061c","unresolved":false,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        image_uri \u003d CONF.image.http_image"},{"line_number":162,"context_line":"        self.admin_client.image_import(image[\u0027id\u0027], method\u003d\u0027web-download\u0027,"},{"line_number":163,"context_line":"                                       all_stores_must_succeed\u003dTrue, all_stores\u003dTrue,"},{"line_number":164,"context_line":"                                       image_uri\u003dCONF.image.http_image)"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"        body \u003d self.client.show_image(image[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_af5864fa","line":164,"range":{"start_line":162,"start_character":8,"end_line":164,"end_character":71},"updated":"2020-08-12 08:44:38.000000000","message":"If possible, In this test we also need to verify that image becomes active only if it is imported to all the stores.","commit_id":"bfdd247a42d7fdba7c8ebe951190b2eef01a9af0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"d1d19716bd055d730f4efafc0708d118c6b2061c","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                                       all_stores_must_succeed\u003dTrue, all_stores\u003dTrue,"},{"line_number":164,"context_line":"                                       image_uri\u003dCONF.image.http_image)"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"        body \u003d self.client.show_image(image[\u0027id\u0027])"},{"line_number":168,"context_line":"        self.assertEqual(image[\u0027id\u0027], body[\u0027id\u0027])"},{"line_number":169,"context_line":"        self.assertEqual(stores_list, body[\u0027stores\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_6f03ecbf","line":166,"updated":"2020-08-12 08:44:38.000000000","message":"I am not seeing you are waiting for image to become active, may be I am missing something","commit_id":"bfdd247a42d7fdba7c8ebe951190b2eef01a9af0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"2f517bf5f37bf3f56333a5def89204eccfa2c1ca","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                                       all_stores_must_succeed\u003dTrue, all_stores\u003dTrue,"},{"line_number":164,"context_line":"                                       image_uri\u003dCONF.image.http_image)"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"        body \u003d self.client.show_image(image[\u0027id\u0027])"},{"line_number":168,"context_line":"        self.assertEqual(image[\u0027id\u0027], body[\u0027id\u0027])"},{"line_number":169,"context_line":"        self.assertEqual(stores_list, body[\u0027stores\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_8a5aae27","line":166,"in_reply_to":"9f560f44_6f03ecbf","updated":"2020-08-12 08:53:29.000000000","message":"extra blank line","commit_id":"bfdd247a42d7fdba7c8ebe951190b2eef01a9af0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"d1d19716bd055d730f4efafc0708d118c6b2061c","unresolved":false,"context_lines":[{"line_number":170,"context_line":"        self.assertEqual(\u0027active\u0027, body[\u0027status\u0027])"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"    @decorators.idempotent_id(\u0027bf04ff00-3182-47cb-833a-f1c6767b47fd\u0027)"},{"line_number":173,"context_line":"    def test_upload_image_to_all_with_all_store_must_not_suceed(self):"},{"line_number":174,"context_line":"        \"\"\"Test multistore functionalities with all stores must not succeed"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        Create image, import image to upload to all store with"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_8f44801d","line":173,"range":{"start_line":173,"start_character":8,"end_line":173,"end_character":62},"updated":"2020-08-12 08:44:38.000000000","message":"ditto","commit_id":"bfdd247a42d7fdba7c8ebe951190b2eef01a9af0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"d1d19716bd055d730f4efafc0708d118c6b2061c","unresolved":false,"context_lines":[{"line_number":177,"context_line":"        all_stores_must_succeed is False and verify that import succeeded."},{"line_number":178,"context_line":"        \"\"\""},{"line_number":179,"context_line":"        available_stores \u003d self.get_available_stores()"},{"line_number":180,"context_line":"        default_store \u003d \u0027\u0027.join([d[\u0027id\u0027] for d in available_stores if \u0027default\u0027 in d])"},{"line_number":181,"context_line":"        available_import_methods \u003d self.client.info_import()["},{"line_number":182,"context_line":"            \u0027import-methods\u0027][\u0027value\u0027]"},{"line_number":183,"context_line":"        # NOTE(pdeore): Skip if glance-direct import method and mutlistore"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_2f6c549b","line":180,"range":{"start_line":180,"start_character":8,"end_line":180,"end_character":21},"updated":"2020-08-12 08:44:38.000000000","message":"where it is used?","commit_id":"bfdd247a42d7fdba7c8ebe951190b2eef01a9af0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"2f517bf5f37bf3f56333a5def89204eccfa2c1ca","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        self.admin_client.image_import(image[\u0027id\u0027], method\u003d\u0027glance-direct\u0027,"},{"line_number":207,"context_line":"                                       all_stores_must_succeed\u003dFalse, all_stores\u003dTrue)"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"        failed_store \u003d waiters.wait_for_upload_completes(self.client, image[\u0027id\u0027])"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        body \u003d self.client.show_image(image[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_6a82ba54","line":209,"updated":"2020-08-12 08:53:29.000000000","message":"extra new line","commit_id":"bfdd247a42d7fdba7c8ebe951190b2eef01a9af0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"d1d19716bd055d730f4efafc0708d118c6b2061c","unresolved":false,"context_lines":[{"line_number":207,"context_line":"                                       all_stores_must_succeed\u003dFalse, all_stores\u003dTrue)"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"        failed_store \u003d waiters.wait_for_upload_completes(self.client, image[\u0027id\u0027])"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        body \u003d self.client.show_image(image[\u0027id\u0027])"},{"line_number":213,"context_line":"        self.assertEqual(image[\u0027id\u0027], body[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_4f31c8a2","line":210,"updated":"2020-08-12 08:44:38.000000000","message":"when all_stores_must_succeed is False image becomes active as soon as data is imported to one of the mentioned store.\n\nAlso even if one of the store failed to import data image still remains in active state.\n\nSo we need to verify that image becomes active and still there are some stores in image property os_glance_importing_to_stores.","commit_id":"bfdd247a42d7fdba7c8ebe951190b2eef01a9af0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"2f517bf5f37bf3f56333a5def89204eccfa2c1ca","unresolved":false,"context_lines":[{"line_number":214,"context_line":"        self.assertEqual(\u0027active\u0027, body[\u0027status\u0027])"},{"line_number":215,"context_line":"        self.assertNotEqual(0, len(failed_store)"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    @decorators.idempotent_id(\u0027bf04ff00-3182-47cb-833a-f1c6767b47fd\u0027)"},{"line_number":219,"context_line":"    def test_upload_image_to_stores_list_with_all_store_must_suceed(self):"},{"line_number":220,"context_line":"        \"\"\"Test multistore import image functionalities"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_6a4bda5e","line":217,"updated":"2020-08-12 08:53:29.000000000","message":"extra new line","commit_id":"bfdd247a42d7fdba7c8ebe951190b2eef01a9af0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"d1d19716bd055d730f4efafc0708d118c6b2061c","unresolved":false,"context_lines":[{"line_number":216,"context_line":""},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    @decorators.idempotent_id(\u0027bf04ff00-3182-47cb-833a-f1c6767b47fd\u0027)"},{"line_number":219,"context_line":"    def test_upload_image_to_stores_list_with_all_store_must_suceed(self):"},{"line_number":220,"context_line":"        \"\"\"Test multistore import image functionalities"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"        Create image, import image to upload to more than one store with"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_ef1ffc06","line":219,"range":{"start_line":219,"start_character":7,"end_line":219,"end_character":67},"updated":"2020-08-12 08:44:38.000000000","message":"ditto","commit_id":"bfdd247a42d7fdba7c8ebe951190b2eef01a9af0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"2f517bf5f37bf3f56333a5def89204eccfa2c1ca","unresolved":false,"context_lines":[{"line_number":216,"context_line":""},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    @decorators.idempotent_id(\u0027bf04ff00-3182-47cb-833a-f1c6767b47fd\u0027)"},{"line_number":219,"context_line":"    def test_upload_image_to_stores_list_with_all_store_must_suceed(self):"},{"line_number":220,"context_line":"        \"\"\"Test multistore import image functionalities"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"        Create image, import image to upload to more than one store with"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_ea952a8a","line":219,"range":{"start_line":219,"start_character":4,"end_line":219,"end_character":74},"updated":"2020-08-12 08:53:29.000000000","message":"test in jobs are failing here for invalid syntax;\n\n2020-08-11 17:57:14.240166 | controller | \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n2020-08-11 17:57:14.240183 | controller | Failures during discovery\n2020-08-11 17:57:14.240196 | controller | \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n2020-08-11 17:57:14.240209 | controller | --- import errors ---\n2020-08-11 17:57:14.240222 | controller | Failed to import test module: tempest.api.image.v2.admin.test_images\n2020-08-11 17:57:14.240235 | controller | Traceback (most recent call last):\n2020-08-11 17:57:14.240248 | controller |   File \"/usr/lib/python3.6/unittest/loader.py\", line 428, in _find_test_path\n2020-08-11 17:57:14.240267 | controller |     module \u003d self._get_module_from_name(name)\n2020-08-11 17:57:14.240281 | controller |   File \"/usr/lib/python3.6/unittest/loader.py\", line 369, in _get_module_from_name\n2020-08-11 17:57:14.240297 | controller |     __import__(name)\n2020-08-11 17:57:14.240312 | controller |   File \"/opt/stack/tempest/tempest/api/image/v2/admin/test_images.py\", line 219\n2020-08-11 17:57:14.240326 | controller |     def test_upload_image_to_stores_list_with_all_store_must_suceed(self):\n2020-08-11 17:57:14.240339 | controller |       ^\n2020-08-11 17:57:14.240352 | controller | SyntaxError: invalid syntax\n2020-08-11 17:57:14.240365 | controller |\n2020-08-11 17:57:14.240378 | controller | \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n2020-08-11 17:57:14.240391 | controller | The above traceback was encountered during test discovery which imports all the found test modules in the specified test_path.","commit_id":"bfdd247a42d7fdba7c8ebe951190b2eef01a9af0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"d1d19716bd055d730f4efafc0708d118c6b2061c","unresolved":false,"context_lines":[{"line_number":232,"context_line":"            not available_stores):"},{"line_number":233,"context_line":"            raise self.skipException(\u0027Either web-download import method or \u0027"},{"line_number":234,"context_line":"                                     \u0027multistore is not available\u0027)"},{"line_number":235,"context_line":"        uuid \u003d data_utils.rand_uuid()"},{"line_number":236,"context_line":"        image_name \u003d data_utils.rand_name(\u0027test-image\u0027)"},{"line_number":237,"context_line":"        container_format \u003d CONF.image.container_formats[0]"},{"line_number":238,"context_line":"        disk_format \u003d CONF.image.disk_formats[0]"},{"line_number":239,"context_line":"        image \u003d self.create_image(name\u003dimage_name,"},{"line_number":240,"context_line":"                                  container_format\u003dcontainer_format,"},{"line_number":241,"context_line":"                                  disk_format\u003ddisk_format,"},{"line_number":242,"context_line":"                                  visibility\u003d\u0027private\u0027,"},{"line_number":243,"context_line":"                                  ramdisk_id\u003duuid)"},{"line_number":244,"context_line":"        self.assertEqual(\u0027queued\u0027, image[\u0027status\u0027])"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"        # import image from web to backend"},{"line_number":247,"context_line":"        image_uri \u003d CONF.image.http_image"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_0f17d0ef","line":244,"range":{"start_line":235,"start_character":7,"end_line":244,"end_character":51},"updated":"2020-08-12 08:44:38.000000000","message":"most of the code is common in these tests, can we reuse it by creating some private methods?","commit_id":"bfdd247a42d7fdba7c8ebe951190b2eef01a9af0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"2f517bf5f37bf3f56333a5def89204eccfa2c1ca","unresolved":false,"context_lines":[{"line_number":249,"context_line":"                                       all_stores_must_succeed\u003dTrue,"},{"line_number":250,"context_line":"                                       stores\u003dstores_to_upload_image,"},{"line_number":251,"context_line":"                                       image_uri\u003dCONF.image.http_image)"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"        body \u003d self.client.show_image(image[\u0027id\u0027])"},{"line_number":255,"context_line":"        self.assertEqual(image[\u0027id\u0027], body[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_4a87f662","line":252,"updated":"2020-08-12 08:53:29.000000000","message":"extra new line","commit_id":"bfdd247a42d7fdba7c8ebe951190b2eef01a9af0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"d1d19716bd055d730f4efafc0708d118c6b2061c","unresolved":false,"context_lines":[{"line_number":250,"context_line":"                                       stores\u003dstores_to_upload_image,"},{"line_number":251,"context_line":"                                       image_uri\u003dCONF.image.http_image)"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"        body \u003d self.client.show_image(image[\u0027id\u0027])"},{"line_number":255,"context_line":"        self.assertEqual(image[\u0027id\u0027], body[\u0027id\u0027])"},{"line_number":256,"context_line":"        self.assertEqual((\u0027,\u0027.join(stores_to_upload_image)), body[\u0027stores\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_afdb444d","line":253,"updated":"2020-08-12 08:44:38.000000000","message":"ditto, no wait here?","commit_id":"bfdd247a42d7fdba7c8ebe951190b2eef01a9af0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"d1d19716bd055d730f4efafc0708d118c6b2061c","unresolved":false,"context_lines":[{"line_number":257,"context_line":"        self.assertEqual(\u0027active\u0027, body[\u0027status\u0027])"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"    def test_upload_image_to_stores_list_with_all_store_must_not_suceed(self):"},{"line_number":261,"context_line":"        \"\"\"Test multistore import image functionalities"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"        Create image, import image to upload to more than one store with"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_8fe000fd","line":260,"range":{"start_line":260,"start_character":8,"end_line":260,"end_character":71},"updated":"2020-08-12 08:44:38.000000000","message":"ditto","commit_id":"bfdd247a42d7fdba7c8ebe951190b2eef01a9af0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"d1d19716bd055d730f4efafc0708d118c6b2061c","unresolved":false,"context_lines":[{"line_number":283,"context_line":"                                  visibility\u003d\u0027private\u0027,"},{"line_number":284,"context_line":"                                  ramdisk_id\u003duuid)"},{"line_number":285,"context_line":"        self.assertEqual(\u0027queued\u0027, image[\u0027status\u0027])"},{"line_number":286,"context_line":"        import pdb;pdb.set_trace()"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"        self.client.stage_image_file(image[\u0027id\u0027],"},{"line_number":289,"context_line":"                                     six.BytesIO(data_utils.random_bytes(104857600)))"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_6fbacce1","line":286,"range":{"start_line":286,"start_character":8,"end_line":286,"end_character":34},"updated":"2020-08-12 08:44:38.000000000","message":"Even if this is WIP pdb should not be here","commit_id":"bfdd247a42d7fdba7c8ebe951190b2eef01a9af0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"d1d19716bd055d730f4efafc0708d118c6b2061c","unresolved":false,"context_lines":[{"line_number":293,"context_line":"        self.assertEqual(\u0027uploading\u0027, body[\u0027status\u0027])"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        # import image from web to backend"},{"line_number":296,"context_line":"        import pdb;pdb.set_trace()"},{"line_number":297,"context_line":"        self.admin_client.image_import(image[\u0027id\u0027], method\u003d\u0027glance-direct\u0027,"},{"line_number":298,"context_line":"                                       all_stores_must_succeed\u003dFalse,"},{"line_number":299,"context_line":"                                       stores\u003dstores_to_upload_image)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_efcd3c87","line":296,"range":{"start_line":296,"start_character":8,"end_line":296,"end_character":34},"updated":"2020-08-12 08:44:38.000000000","message":"ditto","commit_id":"bfdd247a42d7fdba7c8ebe951190b2eef01a9af0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"62313fcc7f8bef4fbe3fb3fc15048773181888f8","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        self.assertEqual(\u0027queued\u0027, image[\u0027status\u0027])"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        self.client.stage_image_file(image[\u0027id\u0027],"},{"line_number":99,"context_line":"                                     six.BytesIO(data_utils.random_bytes(220200960)))"},{"line_number":100,"context_line":"        # Check image status is \u0027uploading\u0027"},{"line_number":101,"context_line":"        body \u003d self.client.show_image(image[\u0027id\u0027])"},{"line_number":102,"context_line":"        self.assertEqual(image[\u0027id\u0027], body[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_b3aa4182","line":99,"range":{"start_line":99,"start_character":73,"end_line":99,"end_character":82},"updated":"2020-08-18 14:00:02.000000000","message":"add note explaining why this size of data is required.","commit_id":"1dfb7435c4ebf3ce9980303d54367028dd0a2fa0"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"c1bf85551dfffbda9252143757d789e4fb435dad","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        self.assertEqual(\u0027queued\u0027, image[\u0027status\u0027])"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        self.client.stage_image_file(image[\u0027id\u0027],"},{"line_number":99,"context_line":"                                     six.BytesIO(data_utils.random_bytes(220200960)))"},{"line_number":100,"context_line":"        # Check image status is \u0027uploading\u0027"},{"line_number":101,"context_line":"        body \u003d self.client.show_image(image[\u0027id\u0027])"},{"line_number":102,"context_line":"        self.assertEqual(image[\u0027id\u0027], body[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_6030ade9","line":99,"range":{"start_line":99,"start_character":73,"end_line":99,"end_character":82},"in_reply_to":"9f560f44_b3aa4182","updated":"2020-08-20 12:49:23.000000000","message":"Done","commit_id":"1dfb7435c4ebf3ce9980303d54367028dd0a2fa0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"62313fcc7f8bef4fbe3fb3fc15048773181888f8","unresolved":false,"context_lines":[{"line_number":121,"context_line":""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        image_properties \u003d waiters.wait_for_import_completes(self.client, image[\u0027id\u0027])"},{"line_number":124,"context_line":"        self.assertEqual(\u0027importing\u0027, image_properties[\u0027status\u0027])"},{"line_number":125,"context_line":"        self.assertNotEqual(None, image_properties[\u0027os_glance_importing_to_stores\u0027])"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        body \u003d self.client.show_image(image[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_738ee927","line":124,"range":{"start_line":124,"start_character":8,"end_line":124,"end_character":65},"updated":"2020-08-18 14:00:02.000000000","message":"above method name is confusing, which indicates you are waiting till import is complete and at this line you are checking image is still in importing state.","commit_id":"1dfb7435c4ebf3ce9980303d54367028dd0a2fa0"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"c1bf85551dfffbda9252143757d789e4fb435dad","unresolved":false,"context_lines":[{"line_number":121,"context_line":""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        image_properties \u003d waiters.wait_for_import_completes(self.client, image[\u0027id\u0027])"},{"line_number":124,"context_line":"        self.assertEqual(\u0027importing\u0027, image_properties[\u0027status\u0027])"},{"line_number":125,"context_line":"        self.assertNotEqual(None, image_properties[\u0027os_glance_importing_to_stores\u0027])"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        body \u003d self.client.show_image(image[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_40400936","line":124,"range":{"start_line":124,"start_character":8,"end_line":124,"end_character":65},"in_reply_to":"9f560f44_738ee927","updated":"2020-08-20 12:49:23.000000000","message":"Done","commit_id":"1dfb7435c4ebf3ce9980303d54367028dd0a2fa0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"62313fcc7f8bef4fbe3fb3fc15048773181888f8","unresolved":false,"context_lines":[{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        image_properties \u003d waiters.wait_for_import_completes(self.client, image[\u0027id\u0027])"},{"line_number":124,"context_line":"        self.assertEqual(\u0027importing\u0027, image_properties[\u0027status\u0027])"},{"line_number":125,"context_line":"        self.assertNotEqual(None, image_properties[\u0027os_glance_importing_to_stores\u0027])"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        body \u003d self.client.show_image(image[\u0027id\u0027])"},{"line_number":128,"context_line":"        self.assertEqual(image[\u0027id\u0027], body[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_f3cf9954","line":125,"range":{"start_line":125,"start_character":8,"end_line":125,"end_character":84},"updated":"2020-08-18 14:00:02.000000000","message":"you can use self.assertIsNotNone instead\n\nAlso it will be great if you add comment why you are asserting this so that others will also understand the same","commit_id":"1dfb7435c4ebf3ce9980303d54367028dd0a2fa0"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"c1bf85551dfffbda9252143757d789e4fb435dad","unresolved":false,"context_lines":[{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        image_properties \u003d waiters.wait_for_import_completes(self.client, image[\u0027id\u0027])"},{"line_number":124,"context_line":"        self.assertEqual(\u0027importing\u0027, image_properties[\u0027status\u0027])"},{"line_number":125,"context_line":"        self.assertNotEqual(None, image_properties[\u0027os_glance_importing_to_stores\u0027])"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        body \u003d self.client.show_image(image[\u0027id\u0027])"},{"line_number":128,"context_line":"        self.assertEqual(image[\u0027id\u0027], body[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_1bc31b8b","line":125,"range":{"start_line":125,"start_character":8,"end_line":125,"end_character":84},"in_reply_to":"9f560f44_f3cf9954","updated":"2020-08-20 12:49:23.000000000","message":"Done","commit_id":"1dfb7435c4ebf3ce9980303d54367028dd0a2fa0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"62313fcc7f8bef4fbe3fb3fc15048773181888f8","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        Create image, import image to upload to all store with"},{"line_number":137,"context_line":"        all_stores_must_succeed is False and verify that import succeeded."},{"line_number":138,"context_line":"        \"\"\""},{"line_number":139,"context_line":"        available_stores \u003d self.get_available_stores()"},{"line_number":140,"context_line":"        default_store \u003d \u0027\u0027.join([d[\u0027id\u0027] for d in available_stores if \u0027default\u0027 in d])"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        image \u003d self._create_image_and_stage_image_file(available_stores)"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        self.admin_client.image_import(image[\u0027id\u0027], method\u003d\u0027glance-direct\u0027,"},{"line_number":145,"context_line":"                                       all_stores_must_succeed\u003dFalse, all_stores\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_532da5fb","line":142,"range":{"start_line":139,"start_character":8,"end_line":142,"end_character":73},"updated":"2020-08-18 14:00:02.000000000","message":"This code is repetitive in above test as well, I guess you can extract it to private method.","commit_id":"1dfb7435c4ebf3ce9980303d54367028dd0a2fa0"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"c1bf85551dfffbda9252143757d789e4fb435dad","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        Create image, import image to upload to all store with"},{"line_number":137,"context_line":"        all_stores_must_succeed is False and verify that import succeeded."},{"line_number":138,"context_line":"        \"\"\""},{"line_number":139,"context_line":"        available_stores \u003d self.get_available_stores()"},{"line_number":140,"context_line":"        default_store \u003d \u0027\u0027.join([d[\u0027id\u0027] for d in available_stores if \u0027default\u0027 in d])"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        image \u003d self._create_image_and_stage_image_file(available_stores)"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        self.admin_client.image_import(image[\u0027id\u0027], method\u003d\u0027glance-direct\u0027,"},{"line_number":145,"context_line":"                                       all_stores_must_succeed\u003dFalse, all_stores\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_c075399a","line":142,"range":{"start_line":139,"start_character":8,"end_line":142,"end_character":73},"in_reply_to":"9f560f44_532da5fb","updated":"2020-08-20 12:49:23.000000000","message":"Done","commit_id":"1dfb7435c4ebf3ce9980303d54367028dd0a2fa0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"62313fcc7f8bef4fbe3fb3fc15048773181888f8","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        image_properties \u003d waiters.wait_for_import_completes(self.client, image[\u0027id\u0027])"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        self.assertEqual(\u0027active\u0027, image_properties[\u0027status\u0027])"},{"line_number":151,"context_line":"        self.assertNotEqual(None, image_properties[\u0027os_glance_importing_to_stores\u0027])"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        body \u003d self.client.show_image(image[\u0027id\u0027])"},{"line_number":154,"context_line":"        self.assertEqual(image[\u0027id\u0027], image_properties[\u0027id\u0027], body[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_b334014c","line":151,"range":{"start_line":151,"start_character":8,"end_line":151,"end_character":84},"updated":"2020-08-18 14:00:02.000000000","message":"ditto","commit_id":"1dfb7435c4ebf3ce9980303d54367028dd0a2fa0"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"c1bf85551dfffbda9252143757d789e4fb435dad","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        image_properties \u003d waiters.wait_for_import_completes(self.client, image[\u0027id\u0027])"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        self.assertEqual(\u0027active\u0027, image_properties[\u0027status\u0027])"},{"line_number":151,"context_line":"        self.assertNotEqual(None, image_properties[\u0027os_glance_importing_to_stores\u0027])"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        body \u003d self.client.show_image(image[\u0027id\u0027])"},{"line_number":154,"context_line":"        self.assertEqual(image[\u0027id\u0027], image_properties[\u0027id\u0027], body[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_a078058f","line":151,"range":{"start_line":151,"start_character":8,"end_line":151,"end_character":84},"in_reply_to":"9f560f44_b334014c","updated":"2020-08-20 12:49:23.000000000","message":"Done","commit_id":"1dfb7435c4ebf3ce9980303d54367028dd0a2fa0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"62313fcc7f8bef4fbe3fb3fc15048773181888f8","unresolved":false,"context_lines":[{"line_number":164,"context_line":"        \"\"\""},{"line_number":165,"context_line":"        available_stores \u003d self.get_available_stores(available_stores)"},{"line_number":166,"context_line":"        stores_list \u003d [store[\u0027id\u0027] for store in available_stores]"},{"line_number":167,"context_line":"        stores_to_upload_image \u003d stores_list[::len(stores_list)-1]"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        image \u003d self._create_image_and_stage_image_file()"},{"line_number":170,"context_line":"        self.admin_client.image_import(image[\u0027id\u0027], method\u003d\u0027glance-direct\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_b30d2192","line":167,"range":{"start_line":167,"start_character":8,"end_line":167,"end_character":66},"updated":"2020-08-18 14:00:02.000000000","message":"add comment here to explain what are you doing.","commit_id":"1dfb7435c4ebf3ce9980303d54367028dd0a2fa0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"62313fcc7f8bef4fbe3fb3fc15048773181888f8","unresolved":false,"context_lines":[{"line_number":171,"context_line":"                                       all_stores_must_succeed\u003dTrue,"},{"line_number":172,"context_line":"                                       stores\u003dstores_to_upload_image)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        image_properties \u003d waiters.wait_for_import_completes(self.client, image[\u0027id\u0027])"},{"line_number":175,"context_line":"        self.assertEqual(\u0027importing\u0027, image_properties[\u0027status\u0027])"},{"line_number":176,"context_line":"        self.assertNotEqual(None, image_properties[\u0027os_glance_importing_to_stores\u0027])"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"        body \u003d self.client.show_image(image[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_b38241c7","line":175,"range":{"start_line":174,"start_character":8,"end_line":175,"end_character":65},"updated":"2020-08-18 14:00:02.000000000","message":"ditto, see comment at line #124","commit_id":"1dfb7435c4ebf3ce9980303d54367028dd0a2fa0"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"c1bf85551dfffbda9252143757d789e4fb435dad","unresolved":false,"context_lines":[{"line_number":171,"context_line":"                                       all_stores_must_succeed\u003dTrue,"},{"line_number":172,"context_line":"                                       stores\u003dstores_to_upload_image)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        image_properties \u003d waiters.wait_for_import_completes(self.client, image[\u0027id\u0027])"},{"line_number":175,"context_line":"        self.assertEqual(\u0027importing\u0027, image_properties[\u0027status\u0027])"},{"line_number":176,"context_line":"        self.assertNotEqual(None, image_properties[\u0027os_glance_importing_to_stores\u0027])"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"        body \u003d self.client.show_image(image[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_3b4b7f2b","line":175,"range":{"start_line":174,"start_character":8,"end_line":175,"end_character":65},"in_reply_to":"9f560f44_b38241c7","updated":"2020-08-20 12:49:23.000000000","message":"Done","commit_id":"1dfb7435c4ebf3ce9980303d54367028dd0a2fa0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"62313fcc7f8bef4fbe3fb3fc15048773181888f8","unresolved":false,"context_lines":[{"line_number":188,"context_line":"        Create image, import image to upload to more than one store with"},{"line_number":189,"context_line":"        all_stores_must_succeed is False and verify that import succeeded."},{"line_number":190,"context_line":"        \"\"\""},{"line_number":191,"context_line":"        available_stores \u003d self.get_available_stores()"},{"line_number":192,"context_line":"        stores_list \u003d [store[\u0027id\u0027] for store in available_stores]"},{"line_number":193,"context_line":"        stores_to_upload_image \u003d stores_list[::len(stores_list)-1]"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"        image \u003d self._create_image_and_stage_image_file(available_stores)"},{"line_number":196,"context_line":"        self.admin_client.image_import(image[\u0027id\u0027], method\u003d\u0027glance-direct\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_f36b191c","line":193,"range":{"start_line":191,"start_character":8,"end_line":193,"end_character":66},"updated":"2020-08-18 14:00:02.000000000","message":"you can extract this code in private method and use in all 4 tests to avoid duplication.","commit_id":"1dfb7435c4ebf3ce9980303d54367028dd0a2fa0"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"c1bf85551dfffbda9252143757d789e4fb435dad","unresolved":false,"context_lines":[{"line_number":188,"context_line":"        Create image, import image to upload to more than one store with"},{"line_number":189,"context_line":"        all_stores_must_succeed is False and verify that import succeeded."},{"line_number":190,"context_line":"        \"\"\""},{"line_number":191,"context_line":"        available_stores \u003d self.get_available_stores()"},{"line_number":192,"context_line":"        stores_list \u003d [store[\u0027id\u0027] for store in available_stores]"},{"line_number":193,"context_line":"        stores_to_upload_image \u003d stores_list[::len(stores_list)-1]"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"        image \u003d self._create_image_and_stage_image_file(available_stores)"},{"line_number":196,"context_line":"        self.admin_client.image_import(image[\u0027id\u0027], method\u003d\u0027glance-direct\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_1b483b2b","line":193,"range":{"start_line":191,"start_character":8,"end_line":193,"end_character":66},"in_reply_to":"9f560f44_f36b191c","updated":"2020-08-20 12:49:23.000000000","message":"Done","commit_id":"1dfb7435c4ebf3ce9980303d54367028dd0a2fa0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"62313fcc7f8bef4fbe3fb3fc15048773181888f8","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        image_properties \u003d waiters.wait_for_import_completes(self.client, image[\u0027id\u0027])"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"        self.assertEqual(\u0027active\u0027, image_properties[\u0027status\u0027])"},{"line_number":203,"context_line":"        self.assertNotEqual(None, image_properties[\u0027os_glance_importing_to_stores\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_13716d0d","line":203,"range":{"start_line":203,"start_character":8,"end_line":203,"end_character":84},"updated":"2020-08-18 14:00:02.000000000","message":"ditto, add comment and use assertIsNotNone","commit_id":"1dfb7435c4ebf3ce9980303d54367028dd0a2fa0"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"c1bf85551dfffbda9252143757d789e4fb435dad","unresolved":false,"context_lines":[{"line_number":200,"context_line":"        image_properties \u003d waiters.wait_for_import_completes(self.client, image[\u0027id\u0027])"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"        self.assertEqual(\u0027active\u0027, image_properties[\u0027status\u0027])"},{"line_number":203,"context_line":"        self.assertNotEqual(None, image_properties[\u0027os_glance_importing_to_stores\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f560f44_7b5177d9","line":203,"range":{"start_line":203,"start_character":8,"end_line":203,"end_character":84},"in_reply_to":"9f560f44_13716d0d","updated":"2020-08-20 12:49:23.000000000","message":"Done","commit_id":"1dfb7435c4ebf3ce9980303d54367028dd0a2fa0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"10e12f263f4113eaade7e628a42ef2a49da40579","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        self.assertEqual(image[\u0027id\u0027], body[\u0027id\u0027])"},{"line_number":106,"context_line":"        self.assertEqual(\u0027uploading\u0027, body[\u0027status\u0027])"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        if get_stores_list:"},{"line_number":109,"context_line":"            if all_stores:"},{"line_number":110,"context_line":"                stores_list \u003d \u0027,\u0027.join([store[\u0027id\u0027]"},{"line_number":111,"context_line":"                                        for store in available_stores])"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_366d5632","line":108,"range":{"start_line":108,"start_character":8,"end_line":108,"end_character":27},"updated":"2020-08-20 13:52:59.000000000","message":"What is use of this, you can tweak this on the basis of all_stores true or false.","commit_id":"c66058dbb8525f1d4ba834568d4ecb44d2e0abaf"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"dd0c4bb3f9c02d934b0a28208695b1e26200fa93","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        self.assertEqual(image[\u0027id\u0027], body[\u0027id\u0027])"},{"line_number":106,"context_line":"        self.assertEqual(\u0027uploading\u0027, body[\u0027status\u0027])"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        if get_stores_list:"},{"line_number":109,"context_line":"            if all_stores:"},{"line_number":110,"context_line":"                stores_list \u003d \u0027,\u0027.join([store[\u0027id\u0027]"},{"line_number":111,"context_line":"                                        for store in available_stores])"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_a25d9616","line":108,"range":{"start_line":108,"start_character":8,"end_line":108,"end_character":27},"in_reply_to":"9f560f44_366d5632","updated":"2020-08-21 05:09:53.000000000","message":"stores_list is not required in \"--all_stores \u0026 all_stores_must_succeed\u003dFalse case\", \n\nAnd need different result for \"--all_stores \u0026 all_stores_must_succeed\u003dTrue\" case and both --stores cases.\n\nSo, to get 3 different results I had to use it.","commit_id":"c66058dbb8525f1d4ba834568d4ecb44d2e0abaf"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"f494cc4239b8800c58b23edcfcd8b172f74e92bb","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        self.assertEqual(image[\u0027id\u0027], body[\u0027id\u0027])"},{"line_number":106,"context_line":"        self.assertEqual(\u0027uploading\u0027, body[\u0027status\u0027])"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        if get_stores_list:"},{"line_number":109,"context_line":"            if all_stores:"},{"line_number":110,"context_line":"                stores_list \u003d \u0027,\u0027.join([store[\u0027id\u0027]"},{"line_number":111,"context_line":"                                        for store in available_stores])"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f560f44_e23cae94","line":108,"range":{"start_line":108,"start_character":8,"end_line":108,"end_character":27},"in_reply_to":"9f560f44_a25d9616","updated":"2020-08-21 05:29:45.000000000","message":"still you can do it without this.","commit_id":"c66058dbb8525f1d4ba834568d4ecb44d2e0abaf"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"0f66752f220a06add4fdda386c16f28f1ef5a8c1","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        Create image, import image to upload to all store with"},{"line_number":151,"context_line":"        all_stores_must_succeed is False and verify that import succeeded."},{"line_number":152,"context_line":"        \"\"\""},{"line_number":153,"context_line":"        image \u003d self._create_and_stage_image()"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"        self.admin_client.image_import("},{"line_number":156,"context_line":"            image[\u0027id\u0027], method\u003d\u0027glance-direct\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_4dcdcb83","line":153,"range":{"start_line":153,"start_character":8,"end_line":153,"end_character":46},"updated":"2020-08-21 07:31:22.000000000","message":"set all_stores\u003dFalse in method definition of _create_and_stage_image, pass all_stores\u003dTrue from here and \n\naccept return value as image, _ here\n\nThis will eliminate one if condition at line no 108","commit_id":"e1c3780ca66eaad0b6b833f4b7a2a707ef396602"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"a5aa73b5b7c4db946e32e8bb22a274d49dc69378","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        Create image, import image to upload to all store with"},{"line_number":151,"context_line":"        all_stores_must_succeed is False and verify that import succeeded."},{"line_number":152,"context_line":"        \"\"\""},{"line_number":153,"context_line":"        image \u003d self._create_and_stage_image()"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"        self.admin_client.image_import("},{"line_number":156,"context_line":"            image[\u0027id\u0027], method\u003d\u0027glance-direct\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_0d9bd365","line":153,"range":{"start_line":153,"start_character":8,"end_line":153,"end_character":46},"in_reply_to":"9f560f44_4dcdcb83","updated":"2020-08-21 07:32:21.000000000","message":"Also if you do this then no need to pass all_stores\u003dFalse from below tests","commit_id":"e1c3780ca66eaad0b6b833f4b7a2a707ef396602"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"2e0fbbe9673d9e8b3c723b493a5841e9098140cf","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                                  container_format\u003dcontainer_format,"},{"line_number":91,"context_line":"                                  disk_format\u003ddisk_format,"},{"line_number":92,"context_line":"                                  visibility\u003d\u0027private\u0027,"},{"line_number":93,"context_line":"                                  ramdisk_id\u003duuid)"},{"line_number":94,"context_line":"        self.assertEqual(\u0027queued\u0027, image[\u0027status\u0027])"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        # NOTE(pdeore): Large size(220 MB) of image data is being used here"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_540066ab","line":93,"range":{"start_line":93,"start_character":34,"end_line":93,"end_character":49},"updated":"2020-08-26 14:22:59.000000000","message":"Shouldn\u0027t need this, AFAIK, and also doesn\u0027t make sense.","commit_id":"677c7912b8d36cfdaa1ef3d47cdde72cc83501fd"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"2e0fbbe9673d9e8b3c723b493a5841e9098140cf","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        self.assertEqual(\u0027queued\u0027, image[\u0027status\u0027])"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        # NOTE(pdeore): Large size(220 MB) of image data is being used here"},{"line_number":97,"context_line":"        # to catch up value of \u0027os_glance_importing_to_stores\u0027 which contains"},{"line_number":98,"context_line":"        # list of stores that has not yet been processed during image import"},{"line_number":99,"context_line":"        # call."},{"line_number":100,"context_line":"        self.client.stage_image_file("}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_14238e57","line":97,"range":{"start_line":97,"start_character":10,"end_line":97,"end_character":62},"updated":"2020-08-26 14:22:59.000000000","message":"Not sure what you mean here. I assume you\u0027re looking for import to take long enough to get one poll in, but that\u0027s just a race and not really something we need to validate, IMHO. On fast systems 200M won\u0027t be enough, and on some systems, 200M is more than we need.","commit_id":"677c7912b8d36cfdaa1ef3d47cdde72cc83501fd"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"d0550366fae40a52e32c99923e5890083cec5307","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        self.assertEqual(\u0027queued\u0027, image[\u0027status\u0027])"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        # NOTE(pdeore): Large size(220 MB) of image data is being used here"},{"line_number":97,"context_line":"        # to catch up value of \u0027os_glance_importing_to_stores\u0027 which contains"},{"line_number":98,"context_line":"        # list of stores that has not yet been processed during image import"},{"line_number":99,"context_line":"        # call."},{"line_number":100,"context_line":"        self.client.stage_image_file("}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_1fde076c","line":97,"range":{"start_line":97,"start_character":10,"end_line":97,"end_character":62},"in_reply_to":"9f560f44_14238e57","updated":"2020-08-26 14:31:56.000000000","message":"So we should have just two cases with normal set of data and just test for desire image status at the end?\n\n1. import_to_all_stores (all-stores true)\n2. import_to_specified_stores (--stores store1,store2)","commit_id":"677c7912b8d36cfdaa1ef3d47cdde72cc83501fd"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"3a24733c0a77918c45d99ad1f4dc22de3d9e612f","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        self.assertEqual(\u0027queued\u0027, image[\u0027status\u0027])"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        # NOTE(pdeore): Large size(220 MB) of image data is being used here"},{"line_number":97,"context_line":"        # to catch up value of \u0027os_glance_importing_to_stores\u0027 which contains"},{"line_number":98,"context_line":"        # list of stores that has not yet been processed during image import"},{"line_number":99,"context_line":"        # call."},{"line_number":100,"context_line":"        self.client.stage_image_file("}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_5fe23fa1","line":97,"range":{"start_line":97,"start_character":10,"end_line":97,"end_character":62},"in_reply_to":"9f560f44_1fde076c","updated":"2020-08-26 14:54:58.000000000","message":"Yes, agree.","commit_id":"677c7912b8d36cfdaa1ef3d47cdde72cc83501fd"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"2e0fbbe9673d9e8b3c723b493a5841e9098140cf","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        image_properties \u003d waiters.wait_for_import_in_progress(self.client,"},{"line_number":130,"context_line":"                                                               image[\u0027id\u0027])"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        # Checking \u0027os_glance_importing_to_stores\u0027 is not empty till image"},{"line_number":133,"context_line":"        # becomes \u0027active\u0027 which contains list of stores which are not"},{"line_number":134,"context_line":"        # yet been processed"},{"line_number":135,"context_line":"        self.assertEqual(\u0027importing\u0027, image_properties[\u0027status\u0027])"},{"line_number":136,"context_line":"        self.assertIsNotNone("},{"line_number":137,"context_line":"            image_properties[\u0027os_glance_importing_to_stores\u0027])"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_74c00a51","line":134,"range":{"start_line":132,"start_character":8,"end_line":134,"end_character":28},"updated":"2020-08-26 14:22:59.000000000","message":"Yeah, I think this is something we need to test in functional tests, not from tempest. It\u0027s just too racy to capture this externally. I think we should stage..import..and assert that it ends up in the right state.","commit_id":"677c7912b8d36cfdaa1ef3d47cdde72cc83501fd"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"2e0fbbe9673d9e8b3c723b493a5841e9098140cf","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        # Since the parameter \u0027all_stores_must_succeed\u0027 has been set to ‘false’"},{"line_number":161,"context_line":"        # image becomes \u0027active\u0027 immidiately after uploading to first store and"},{"line_number":162,"context_line":"        # doesn\u0027t wait for remaining stores in \u0027os_glance_importing_to_stores\u0027"},{"line_number":163,"context_line":"        # to be processed"},{"line_number":164,"context_line":"        self.assertEqual(\u0027active\u0027, image_properties[\u0027status\u0027])"},{"line_number":165,"context_line":"        self.assertIsNotNone("},{"line_number":166,"context_line":"            image_properties[\u0027os_glance_importing_to_stores\u0027])"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_944dde9b","line":163,"updated":"2020-08-26 14:22:59.000000000","message":"This is not true, AFAIK. In all cases, the image becomes active as soon as one store is imported. As such, I don\u0027t think this test needs to be here. We can\u0027t really test the all_stores_must_succeed flag from tempest, because in order to check the behavior, one store has to fail for some reason.","commit_id":"677c7912b8d36cfdaa1ef3d47cdde72cc83501fd"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"3a24733c0a77918c45d99ad1f4dc22de3d9e612f","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        # Since the parameter \u0027all_stores_must_succeed\u0027 has been set to ‘false’"},{"line_number":161,"context_line":"        # image becomes \u0027active\u0027 immidiately after uploading to first store and"},{"line_number":162,"context_line":"        # doesn\u0027t wait for remaining stores in \u0027os_glance_importing_to_stores\u0027"},{"line_number":163,"context_line":"        # to be processed"},{"line_number":164,"context_line":"        self.assertEqual(\u0027active\u0027, image_properties[\u0027status\u0027])"},{"line_number":165,"context_line":"        self.assertIsNotNone("},{"line_number":166,"context_line":"            image_properties[\u0027os_glance_importing_to_stores\u0027])"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_ffffd330","line":163,"in_reply_to":"9f560f44_1fb0c742","updated":"2020-08-26 14:54:58.000000000","message":"Ah, you\u0027re right I missed this line in api_image_import:\n\n  set_active \u003d (not all_stores_must_succeed) or (idx \u003d\u003d len(stores))\n\nwhich causes the final one to set-active\u003dTrue, if the flag is set. Either way, I think the point is moot since we can\u0027t cause one to fail and we can\u0027t reasonably/reliably poll at a high enough rate to ensure that the image doesn\u0027t go to active until the last store succeeds.","commit_id":"677c7912b8d36cfdaa1ef3d47cdde72cc83501fd"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"d0550366fae40a52e32c99923e5890083cec5307","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        # Since the parameter \u0027all_stores_must_succeed\u0027 has been set to ‘false’"},{"line_number":161,"context_line":"        # image becomes \u0027active\u0027 immidiately after uploading to first store and"},{"line_number":162,"context_line":"        # doesn\u0027t wait for remaining stores in \u0027os_glance_importing_to_stores\u0027"},{"line_number":163,"context_line":"        # to be processed"},{"line_number":164,"context_line":"        self.assertEqual(\u0027active\u0027, image_properties[\u0027status\u0027])"},{"line_number":165,"context_line":"        self.assertIsNotNone("},{"line_number":166,"context_line":"            image_properties[\u0027os_glance_importing_to_stores\u0027])"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_1fb0c742","line":163,"in_reply_to":"9f560f44_944dde9b","updated":"2020-08-26 14:31:56.000000000","message":"If all_stores_must_succeed is true then image becomes active only if it is imported to all stores successfully.","commit_id":"677c7912b8d36cfdaa1ef3d47cdde72cc83501fd"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"2e0fbbe9673d9e8b3c723b493a5841e9098140cf","unresolved":false,"context_lines":[{"line_number":198,"context_line":"        self.assertEqual(\u0027active\u0027, body[\u0027status\u0027])"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    @decorators.idempotent_id(\u0027adf27b76-dd2b-11ea-aec7-340286b6c574\u0027)"},{"line_number":201,"context_line":"    def test_import_image_to_stores_list_with_all_store_must_not_suceed(self):"},{"line_number":202,"context_line":"        \"\"\"Test multistore import image functionalities"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        Create image, import image to upload to more than one store with"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f560f44_1461ce05","line":201,"updated":"2020-08-26 14:22:59.000000000","message":"Same here - I think you should remove this case.","commit_id":"677c7912b8d36cfdaa1ef3d47cdde72cc83501fd"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"b837546e4a7c8218940a35893bfade26c8eb8280","unresolved":false,"context_lines":[{"line_number":60,"context_line":"                            updated_image_info[\u0027owner\u0027])"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"class MultiStoresImportImagesTest(base.BaseV2ImageAdminTest):"},{"line_number":64,"context_line":"    \"\"\"Test the import image with multistore operations\"\"\""},{"line_number":65,"context_line":"    @classmethod"},{"line_number":66,"context_line":"    def skip_checks(cls):"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_090c4740","line":63,"range":{"start_line":63,"start_character":39,"end_line":63,"end_character":59},"updated":"2020-09-23 16:18:57.000000000","message":"which API is admin only, i think it should run as non admin also ?","commit_id":"0c87eb0376355219dd947a4c98ebd2bc547e8410"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"a28ba0c1771650682c66b6fc1e71e90118ccfaa1","unresolved":false,"context_lines":[{"line_number":60,"context_line":"                            updated_image_info[\u0027owner\u0027])"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"class MultiStoresImportImagesTest(base.BaseV2ImageAdminTest):"},{"line_number":64,"context_line":"    \"\"\"Test the import image with multistore operations\"\"\""},{"line_number":65,"context_line":"    @classmethod"},{"line_number":66,"context_line":"    def skip_checks(cls):"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_0fe5670a","line":63,"range":{"start_line":63,"start_character":39,"end_line":63,"end_character":59},"in_reply_to":"9f560f44_090c4740","updated":"2020-09-23 18:23:19.000000000","message":"Done","commit_id":"0c87eb0376355219dd947a4c98ebd2bc547e8410"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"b837546e4a7c8218940a35893bfade26c8eb8280","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def _create_and_stage_image(self, all_stores\u003dFalse):"},{"line_number":74,"context_line":"        \"\"\"Create Image \u0026 stage image file for glance-direct import method.\"\"\""},{"line_number":75,"context_line":"        available_stores \u003d self.get_available_stores()"},{"line_number":76,"context_line":"        available_import_methods \u003d self.client.info_import()["},{"line_number":77,"context_line":"            \u0027import-methods\u0027][\u0027value\u0027]"},{"line_number":78,"context_line":"        # NOTE(pdeore): Skip if glance-direct import method and mutlistore"},{"line_number":79,"context_line":"        # are not available."}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_187c931e","line":76,"range":{"start_line":75,"start_character":0,"end_line":76,"end_character":61},"updated":"2020-09-23 16:18:57.000000000","message":"These can be moved to resource_setup to avoid to be called by each test. These info does not change dynamically during tests.","commit_id":"0c87eb0376355219dd947a4c98ebd2bc547e8410"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"a28ba0c1771650682c66b6fc1e71e90118ccfaa1","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def _create_and_stage_image(self, all_stores\u003dFalse):"},{"line_number":74,"context_line":"        \"\"\"Create Image \u0026 stage image file for glance-direct import method.\"\"\""},{"line_number":75,"context_line":"        available_stores \u003d self.get_available_stores()"},{"line_number":76,"context_line":"        available_import_methods \u003d self.client.info_import()["},{"line_number":77,"context_line":"            \u0027import-methods\u0027][\u0027value\u0027]"},{"line_number":78,"context_line":"        # NOTE(pdeore): Skip if glance-direct import method and mutlistore"},{"line_number":79,"context_line":"        # are not available."}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_4fc47f60","line":76,"range":{"start_line":75,"start_character":0,"end_line":76,"end_character":61},"in_reply_to":"9f560f44_187c931e","updated":"2020-09-23 18:23:19.000000000","message":"Done","commit_id":"0c87eb0376355219dd947a4c98ebd2bc547e8410"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"b837546e4a7c8218940a35893bfade26c8eb8280","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        # NOTE(pdeore): Skip if glance-direct import method and mutlistore"},{"line_number":79,"context_line":"        # are not available."},{"line_number":80,"context_line":"        if (\u0027glance-direct\u0027 not in available_import_methods or"},{"line_number":81,"context_line":"            not available_stores):"},{"line_number":82,"context_line":"            raise self.skipException(\u0027Either glance-direct import method or \u0027"},{"line_number":83,"context_line":"                                     \u0027multistore is not available\u0027)"},{"line_number":84,"context_line":"        image_name \u003d data_utils.rand_name(\u0027test-image\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_78178fa4","line":81,"range":{"start_line":81,"start_character":16,"end_line":81,"end_character":32},"updated":"2020-09-23 16:18:57.000000000","message":"This should be checked as len(available_stores) \u003e 1 so that we know env is multistore.","commit_id":"0c87eb0376355219dd947a4c98ebd2bc547e8410"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"a0275275152617b807d073ed3b3f4fc50e2dd00d","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        # NOTE(pdeore): Skip if glance-direct import method and mutlistore"},{"line_number":79,"context_line":"        # are not available."},{"line_number":80,"context_line":"        if (\u0027glance-direct\u0027 not in available_import_methods or"},{"line_number":81,"context_line":"            not available_stores):"},{"line_number":82,"context_line":"            raise self.skipException(\u0027Either glance-direct import method or \u0027"},{"line_number":83,"context_line":"                                     \u0027multistore is not available\u0027)"},{"line_number":84,"context_line":"        image_name \u003d data_utils.rand_name(\u0027test-image\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_1478d7be","line":81,"range":{"start_line":81,"start_character":16,"end_line":81,"end_character":32},"in_reply_to":"9f560f44_5e08aed7","updated":"2020-09-23 20:57:07.000000000","message":"ok, as it is a different code path when enabled_backends is set even with single store then let\u0027s run the test.","commit_id":"0c87eb0376355219dd947a4c98ebd2bc547e8410"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"a28ba0c1771650682c66b6fc1e71e90118ccfaa1","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        # NOTE(pdeore): Skip if glance-direct import method and mutlistore"},{"line_number":79,"context_line":"        # are not available."},{"line_number":80,"context_line":"        if (\u0027glance-direct\u0027 not in available_import_methods or"},{"line_number":81,"context_line":"            not available_stores):"},{"line_number":82,"context_line":"            raise self.skipException(\u0027Either glance-direct import method or \u0027"},{"line_number":83,"context_line":"                                     \u0027multistore is not available\u0027)"},{"line_number":84,"context_line":"        image_name \u003d data_utils.rand_name(\u0027test-image\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_e483faa7","line":81,"range":{"start_line":81,"start_character":16,"end_line":81,"end_character":32},"in_reply_to":"9f560f44_78178fa4","updated":"2020-09-23 18:23:19.000000000","message":"this is not the case, available_stores can give us information about stores configured using enbaled_backends config option of glance and it is possible that user can configure only one store using enabled_backends like;\n\nenabled_backends \u003d fast:file","commit_id":"0c87eb0376355219dd947a4c98ebd2bc547e8410"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"57af30be31a6d64fe50bdb4b0c818a551656095f","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        # NOTE(pdeore): Skip if glance-direct import method and mutlistore"},{"line_number":79,"context_line":"        # are not available."},{"line_number":80,"context_line":"        if (\u0027glance-direct\u0027 not in available_import_methods or"},{"line_number":81,"context_line":"            not available_stores):"},{"line_number":82,"context_line":"            raise self.skipException(\u0027Either glance-direct import method or \u0027"},{"line_number":83,"context_line":"                                     \u0027multistore is not available\u0027)"},{"line_number":84,"context_line":"        image_name \u003d data_utils.rand_name(\u0027test-image\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_5e08aed7","line":81,"range":{"start_line":81,"start_character":16,"end_line":81,"end_character":32},"in_reply_to":"9f560f44_de0dde35","updated":"2020-09-23 18:50:01.000000000","message":"I think the glance team considers glance to be in multistore mode when the list of stores are exposed from the API, which may be only one store. I would tend to think that the cost to just leave this enabled whenever stores are exposed, even if there is only one is relatively low. Up to you though.","commit_id":"0c87eb0376355219dd947a4c98ebd2bc547e8410"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"3d025c564e0f2651d72d2654b4339fb5aab8784d","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        # NOTE(pdeore): Skip if glance-direct import method and mutlistore"},{"line_number":79,"context_line":"        # are not available."},{"line_number":80,"context_line":"        if (\u0027glance-direct\u0027 not in available_import_methods or"},{"line_number":81,"context_line":"            not available_stores):"},{"line_number":82,"context_line":"            raise self.skipException(\u0027Either glance-direct import method or \u0027"},{"line_number":83,"context_line":"                                     \u0027multistore is not available\u0027)"},{"line_number":84,"context_line":"        image_name \u003d data_utils.rand_name(\u0027test-image\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_de0dde35","line":81,"range":{"start_line":81,"start_character":16,"end_line":81,"end_character":32},"in_reply_to":"9f560f44_e483faa7","updated":"2020-09-23 18:33:39.000000000","message":"yeah so question is that in such case, do we want to run these tests or skip? as these are multistore tests we should only run these tests when there is multi(more than one) store configured","commit_id":"0c87eb0376355219dd947a4c98ebd2bc547e8410"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"b837546e4a7c8218940a35893bfade26c8eb8280","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        # NOTE(pdeore): Skip if glance-direct import method and mutlistore"},{"line_number":79,"context_line":"        # are not available."},{"line_number":80,"context_line":"        if (\u0027glance-direct\u0027 not in available_import_methods or"},{"line_number":81,"context_line":"            not available_stores):"},{"line_number":82,"context_line":"            raise self.skipException(\u0027Either glance-direct import method or \u0027"},{"line_number":83,"context_line":"                                     \u0027multistore is not available\u0027)"},{"line_number":84,"context_line":"        image_name \u003d data_utils.rand_name(\u0027test-image\u0027)"},{"line_number":85,"context_line":"        container_format \u003d CONF.image.container_formats[0]"},{"line_number":86,"context_line":"        disk_format \u003d CONF.image.disk_formats[0]"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_f8671f50","line":83,"range":{"start_line":81,"start_character":15,"end_line":83,"end_character":67},"updated":"2020-09-23 16:18:57.000000000","message":"this check also can be moved to resource_setup()","commit_id":"0c87eb0376355219dd947a4c98ebd2bc547e8410"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"a28ba0c1771650682c66b6fc1e71e90118ccfaa1","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        # NOTE(pdeore): Skip if glance-direct import method and mutlistore"},{"line_number":79,"context_line":"        # are not available."},{"line_number":80,"context_line":"        if (\u0027glance-direct\u0027 not in available_import_methods or"},{"line_number":81,"context_line":"            not available_stores):"},{"line_number":82,"context_line":"            raise self.skipException(\u0027Either glance-direct import method or \u0027"},{"line_number":83,"context_line":"                                     \u0027multistore is not available\u0027)"},{"line_number":84,"context_line":"        image_name \u003d data_utils.rand_name(\u0027test-image\u0027)"},{"line_number":85,"context_line":"        container_format \u003d CONF.image.container_formats[0]"},{"line_number":86,"context_line":"        disk_format \u003d CONF.image.disk_formats[0]"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_2fc14b4f","line":83,"range":{"start_line":81,"start_character":15,"end_line":83,"end_character":67},"in_reply_to":"9f560f44_f8671f50","updated":"2020-09-23 18:23:19.000000000","message":"Done","commit_id":"0c87eb0376355219dd947a4c98ebd2bc547e8410"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"b0546c48147dbf06e84c115025b3fe3ac485f8f5","unresolved":false,"context_lines":[{"line_number":88,"context_line":"                                  container_format\u003dcontainer_format,"},{"line_number":89,"context_line":"                                  disk_format\u003ddisk_format,"},{"line_number":90,"context_line":"                                  visibility\u003d\u0027private\u0027)"},{"line_number":91,"context_line":"        self.assertEqual(\u0027queued\u0027, image[\u0027status\u0027])"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        self.client.stage_image_file("},{"line_number":94,"context_line":"            image[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_8cdad348","line":91,"range":{"start_line":91,"start_character":8,"end_line":91,"end_character":51},"updated":"2020-08-28 10:13:58.000000000","message":"can happen a situation when it would skip \u0027queued\u0027 state and the status in the response will be directly \u0027uploading\u0027?","commit_id":"0c87eb0376355219dd947a4c98ebd2bc547e8410"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"b837546e4a7c8218940a35893bfade26c8eb8280","unresolved":false,"context_lines":[{"line_number":88,"context_line":"                                  container_format\u003dcontainer_format,"},{"line_number":89,"context_line":"                                  disk_format\u003ddisk_format,"},{"line_number":90,"context_line":"                                  visibility\u003d\u0027private\u0027)"},{"line_number":91,"context_line":"        self.assertEqual(\u0027queued\u0027, image[\u0027status\u0027])"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        self.client.stage_image_file("},{"line_number":94,"context_line":"            image[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_d8e4dbaa","line":91,"range":{"start_line":91,"start_character":8,"end_line":91,"end_character":51},"in_reply_to":"9f560f44_3cc6394b","updated":"2020-09-23 16:18:57.000000000","message":"yeah for glance-direct import method it is queued till stage operation.","commit_id":"0c87eb0376355219dd947a4c98ebd2bc547e8410"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"bb25c76433fa78137d4571713fe1753ca0aa6a4a","unresolved":false,"context_lines":[{"line_number":88,"context_line":"                                  container_format\u003dcontainer_format,"},{"line_number":89,"context_line":"                                  disk_format\u003ddisk_format,"},{"line_number":90,"context_line":"                                  visibility\u003d\u0027private\u0027)"},{"line_number":91,"context_line":"        self.assertEqual(\u0027queued\u0027, image[\u0027status\u0027])"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        self.client.stage_image_file("},{"line_number":94,"context_line":"            image[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_3cc6394b","line":91,"range":{"start_line":91,"start_character":8,"end_line":91,"end_character":51},"in_reply_to":"9f560f44_8cdad348","updated":"2020-08-31 09:48:54.000000000","message":"No, it will remain in \u0027queued\u0027 state till stage_image gets called.","commit_id":"0c87eb0376355219dd947a4c98ebd2bc547e8410"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"b0546c48147dbf06e84c115025b3fe3ac485f8f5","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        # Check image status is \u0027uploading\u0027"},{"line_number":97,"context_line":"        body \u003d self.client.show_image(image[\u0027id\u0027])"},{"line_number":98,"context_line":"        self.assertEqual(image[\u0027id\u0027], body[\u0027id\u0027])"},{"line_number":99,"context_line":"        self.assertEqual(\u0027uploading\u0027, body[\u0027status\u0027])"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        if all_stores:"},{"line_number":102,"context_line":"            stores_list \u003d \u0027,\u0027.join([store[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_ecfc2fb7","line":99,"range":{"start_line":99,"start_character":8,"end_line":99,"end_character":53},"updated":"2020-08-28 10:13:58.000000000","message":"what if it\u0027s already uploaded? or can it even happen that fast?","commit_id":"0c87eb0376355219dd947a4c98ebd2bc547e8410"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"bb25c76433fa78137d4571713fe1753ca0aa6a4a","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        # Check image status is \u0027uploading\u0027"},{"line_number":97,"context_line":"        body \u003d self.client.show_image(image[\u0027id\u0027])"},{"line_number":98,"context_line":"        self.assertEqual(image[\u0027id\u0027], body[\u0027id\u0027])"},{"line_number":99,"context_line":"        self.assertEqual(\u0027uploading\u0027, body[\u0027status\u0027])"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        if all_stores:"},{"line_number":102,"context_line":"            stores_list \u003d \u0027,\u0027.join([store[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_fce961b7","line":99,"range":{"start_line":99,"start_character":8,"end_line":99,"end_character":53},"in_reply_to":"9f560f44_ecfc2fb7","updated":"2020-08-31 09:48:54.000000000","message":"It won\u0027t, because after staging, images goes in \u0027uploading\u0027 state till image_import gets called.","commit_id":"0c87eb0376355219dd947a4c98ebd2bc547e8410"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"b837546e4a7c8218940a35893bfade26c8eb8280","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        # Check image status is \u0027uploading\u0027"},{"line_number":97,"context_line":"        body \u003d self.client.show_image(image[\u0027id\u0027])"},{"line_number":98,"context_line":"        self.assertEqual(image[\u0027id\u0027], body[\u0027id\u0027])"},{"line_number":99,"context_line":"        self.assertEqual(\u0027uploading\u0027, body[\u0027status\u0027])"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        if all_stores:"},{"line_number":102,"context_line":"            stores_list \u003d \u0027,\u0027.join([store[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_b89e4703","line":99,"range":{"start_line":99,"start_character":8,"end_line":99,"end_character":53},"in_reply_to":"9f560f44_fce961b7","updated":"2020-09-23 16:18:57.000000000","message":"yeah its confusing at least the word \u0027uploading\u0027 :) but that is what the status is.","commit_id":"0c87eb0376355219dd947a4c98ebd2bc547e8410"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"b837546e4a7c8218940a35893bfade26c8eb8280","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        if all_stores:"},{"line_number":102,"context_line":"            stores_list \u003d \u0027,\u0027.join([store[\u0027id\u0027]"},{"line_number":103,"context_line":"                                    for store in available_stores])"},{"line_number":104,"context_line":"            return body, stores_list"},{"line_number":105,"context_line":"        else:"},{"line_number":106,"context_line":"            stores \u003d [store[\u0027id\u0027] for store in available_stores]"},{"line_number":107,"context_line":"            stores_list \u003d stores[::len(stores) - 1]"},{"line_number":108,"context_line":"            return body, stores_list"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    @decorators.idempotent_id(\u0027bf04ff00-3182-47cb-833a-f1c6767b47fd\u0027)"},{"line_number":111,"context_line":"    def test_import_image_to_all_stores(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_4943dfb0","line":108,"range":{"start_line":104,"start_character":0,"end_line":108,"end_character":36},"updated":"2020-09-23 16:18:57.000000000","message":"you can keep single return statement out of if else block","commit_id":"0c87eb0376355219dd947a4c98ebd2bc547e8410"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"a28ba0c1771650682c66b6fc1e71e90118ccfaa1","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        if all_stores:"},{"line_number":102,"context_line":"            stores_list \u003d \u0027,\u0027.join([store[\u0027id\u0027]"},{"line_number":103,"context_line":"                                    for store in available_stores])"},{"line_number":104,"context_line":"            return body, stores_list"},{"line_number":105,"context_line":"        else:"},{"line_number":106,"context_line":"            stores \u003d [store[\u0027id\u0027] for store in available_stores]"},{"line_number":107,"context_line":"            stores_list \u003d stores[::len(stores) - 1]"},{"line_number":108,"context_line":"            return body, stores_list"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    @decorators.idempotent_id(\u0027bf04ff00-3182-47cb-833a-f1c6767b47fd\u0027)"},{"line_number":111,"context_line":"    def test_import_image_to_all_stores(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_6fa4e3b9","line":108,"range":{"start_line":104,"start_character":0,"end_line":108,"end_character":36},"in_reply_to":"9f560f44_4943dfb0","updated":"2020-09-23 18:23:19.000000000","message":"Done","commit_id":"0c87eb0376355219dd947a4c98ebd2bc547e8410"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"b837546e4a7c8218940a35893bfade26c8eb8280","unresolved":false,"context_lines":[{"line_number":108,"context_line":"            return body, stores_list"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    @decorators.idempotent_id(\u0027bf04ff00-3182-47cb-833a-f1c6767b47fd\u0027)"},{"line_number":111,"context_line":"    def test_import_image_to_all_stores(self):"},{"line_number":112,"context_line":"        \"\"\"Test multistore import image functionalities"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        Create image, import image to upload to all available stores"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_69650345","line":111,"range":{"start_line":111,"start_character":8,"end_line":111,"end_character":39},"updated":"2020-09-23 16:18:57.000000000","message":"let\u0027s name these as per import method  test_glance_direct_import_image_to_all_stores","commit_id":"0c87eb0376355219dd947a4c98ebd2bc547e8410"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"a28ba0c1771650682c66b6fc1e71e90118ccfaa1","unresolved":false,"context_lines":[{"line_number":108,"context_line":"            return body, stores_list"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    @decorators.idempotent_id(\u0027bf04ff00-3182-47cb-833a-f1c6767b47fd\u0027)"},{"line_number":111,"context_line":"    def test_import_image_to_all_stores(self):"},{"line_number":112,"context_line":"        \"\"\"Test multistore import image functionalities"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        Create image, import image to upload to all available stores"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_8f8df72b","line":111,"range":{"start_line":111,"start_character":8,"end_line":111,"end_character":39},"in_reply_to":"9f560f44_69650345","updated":"2020-09-23 18:23:19.000000000","message":"Done","commit_id":"0c87eb0376355219dd947a4c98ebd2bc547e8410"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"b837546e4a7c8218940a35893bfade26c8eb8280","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        waiters.wait_for_upload_to_complete(self.client,"},{"line_number":123,"context_line":"                                            image[\u0027id\u0027], stores)"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        body \u003d self.client.show_image(image[\u0027id\u0027])"},{"line_number":126,"context_line":"        self.assertEqual(\u0027active\u0027, body[\u0027status\u0027])"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    @decorators.idempotent_id(\u002782fb131a-dd2b-11ea-aec7-340286b6c574\u0027)"},{"line_number":129,"context_line":"    def test_import_image_to_specific_stores(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_89bcd76c","line":126,"range":{"start_line":125,"start_character":0,"end_line":126,"end_character":50},"updated":"2020-09-23 16:18:57.000000000","message":"these already checked in wait_for_upload_to_complete we can avoid duplicate verification.","commit_id":"0c87eb0376355219dd947a4c98ebd2bc547e8410"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"a28ba0c1771650682c66b6fc1e71e90118ccfaa1","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        waiters.wait_for_upload_to_complete(self.client,"},{"line_number":123,"context_line":"                                            image[\u0027id\u0027], stores)"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        body \u003d self.client.show_image(image[\u0027id\u0027])"},{"line_number":126,"context_line":"        self.assertEqual(\u0027active\u0027, body[\u0027status\u0027])"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    @decorators.idempotent_id(\u002782fb131a-dd2b-11ea-aec7-340286b6c574\u0027)"},{"line_number":129,"context_line":"    def test_import_image_to_specific_stores(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_6fbb43c3","line":126,"range":{"start_line":125,"start_character":0,"end_line":126,"end_character":50},"in_reply_to":"9f560f44_89bcd76c","updated":"2020-09-23 18:23:19.000000000","message":"Done","commit_id":"0c87eb0376355219dd947a4c98ebd2bc547e8410"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"b837546e4a7c8218940a35893bfade26c8eb8280","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        self.assertEqual(\u0027active\u0027, body[\u0027status\u0027])"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    @decorators.idempotent_id(\u002782fb131a-dd2b-11ea-aec7-340286b6c574\u0027)"},{"line_number":129,"context_line":"    def test_import_image_to_specific_stores(self):"},{"line_number":130,"context_line":"        \"\"\"Test multistore import image functionalities"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        Create image, import image to upload to more than one requested"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_a95b9b83","line":129,"range":{"start_line":129,"start_character":8,"end_line":129,"end_character":44},"updated":"2020-09-23 16:18:57.000000000","message":"ditto\n\ntest_glance_direct_import_image_to_specific_stores","commit_id":"0c87eb0376355219dd947a4c98ebd2bc547e8410"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"a28ba0c1771650682c66b6fc1e71e90118ccfaa1","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        self.assertEqual(\u0027active\u0027, body[\u0027status\u0027])"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    @decorators.idempotent_id(\u002782fb131a-dd2b-11ea-aec7-340286b6c574\u0027)"},{"line_number":129,"context_line":"    def test_import_image_to_specific_stores(self):"},{"line_number":130,"context_line":"        \"\"\"Test multistore import image functionalities"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        Create image, import image to upload to more than one requested"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_eff47389","line":129,"range":{"start_line":129,"start_character":8,"end_line":129,"end_character":44},"in_reply_to":"9f560f44_a95b9b83","updated":"2020-09-23 18:23:19.000000000","message":"Done","commit_id":"0c87eb0376355219dd947a4c98ebd2bc547e8410"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"b837546e4a7c8218940a35893bfade26c8eb8280","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        waiters.wait_for_upload_to_complete(self.client, image[\u0027id\u0027],"},{"line_number":140,"context_line":"                                            (\u0027,\u0027.join(stores)))"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        body \u003d self.client.show_image(image[\u0027id\u0027])"},{"line_number":143,"context_line":"        self.assertEqual(\u0027active\u0027, body[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_c9b24f96","line":143,"range":{"start_line":142,"start_character":0,"end_line":143,"end_character":50},"updated":"2020-09-23 16:18:57.000000000","message":"ditto","commit_id":"0c87eb0376355219dd947a4c98ebd2bc547e8410"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"a28ba0c1771650682c66b6fc1e71e90118ccfaa1","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        waiters.wait_for_upload_to_complete(self.client, image[\u0027id\u0027],"},{"line_number":140,"context_line":"                                            (\u0027,\u0027.join(stores)))"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        body \u003d self.client.show_image(image[\u0027id\u0027])"},{"line_number":143,"context_line":"        self.assertEqual(\u0027active\u0027, body[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_4fee3fb5","line":143,"range":{"start_line":142,"start_character":0,"end_line":143,"end_character":50},"in_reply_to":"9f560f44_c9b24f96","updated":"2020-09-23 18:23:19.000000000","message":"Done","commit_id":"0c87eb0376355219dd947a4c98ebd2bc547e8410"}],"tempest/api/image/v2/test_images.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"01a2afec5e0c4eff76c7c1209ccefd1b5191bc5d","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        # NOTE(pdeore): Skip if glance-direct import method and mutlistore"},{"line_number":137,"context_line":"        # are not enabled/configured."},{"line_number":138,"context_line":"        cls.available_stores \u003d cls.get_available_stores()"},{"line_number":139,"context_line":"        print(cls.available_stores)"},{"line_number":140,"context_line":"        if (\u0027glance-direct\u0027 not in cls.available_import_methods or"},{"line_number":141,"context_line":"                not cls.available_stores):"},{"line_number":142,"context_line":"            raise self.skipException(\u0027Either glance-direct import method or \u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"9f560f44_b435abf8","line":139,"range":{"start_line":139,"start_character":0,"end_line":139,"end_character":35},"updated":"2020-09-23 21:02:30.000000000","message":"you can remove this as Tempest will be logging all the API response.","commit_id":"e46743aef598673fe671b3ce50e21109ba655366"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"fb1abc2f53960031e976976b285ced121d9bfb5b","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        # NOTE(pdeore): Skip if glance-direct import method and mutlistore"},{"line_number":137,"context_line":"        # are not enabled/configured."},{"line_number":138,"context_line":"        cls.available_stores \u003d cls.get_available_stores()"},{"line_number":139,"context_line":"        print(cls.available_stores)"},{"line_number":140,"context_line":"        if (\u0027glance-direct\u0027 not in cls.available_import_methods or"},{"line_number":141,"context_line":"                not cls.available_stores):"},{"line_number":142,"context_line":"            raise self.skipException(\u0027Either glance-direct import method or \u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"9f560f44_72731e81","line":139,"range":{"start_line":139,"start_character":0,"end_line":139,"end_character":35},"in_reply_to":"9f560f44_b435abf8","updated":"2020-09-24 05:46:38.000000000","message":"Done","commit_id":"e46743aef598673fe671b3ce50e21109ba655366"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"2713922d5f6ce636c274b0574b99b01c5b413d69","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        print(cls.available_stores)"},{"line_number":140,"context_line":"        if (\u0027glance-direct\u0027 not in cls.available_import_methods or"},{"line_number":141,"context_line":"                not cls.available_stores):"},{"line_number":142,"context_line":"            raise self.skipException(\u0027Either glance-direct import method or \u0027"},{"line_number":143,"context_line":"                                     \u0027multistore is not available\u0027)"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    def _create_and_stage_image(self, all_stores\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":10,"id":"9f560f44_12a3c744","line":142,"updated":"2020-09-23 23:29:27.000000000","message":"pep8: F821 undefined name \u0027self\u0027","commit_id":"e46743aef598673fe671b3ce50e21109ba655366"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"fb1abc2f53960031e976976b285ced121d9bfb5b","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        print(cls.available_stores)"},{"line_number":140,"context_line":"        if (\u0027glance-direct\u0027 not in cls.available_import_methods or"},{"line_number":141,"context_line":"                not cls.available_stores):"},{"line_number":142,"context_line":"            raise self.skipException(\u0027Either glance-direct import method or \u0027"},{"line_number":143,"context_line":"                                     \u0027multistore is not available\u0027)"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    def _create_and_stage_image(self, all_stores\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":10,"id":"9f560f44_b269368d","line":142,"in_reply_to":"9f560f44_12a3c744","updated":"2020-09-24 05:46:38.000000000","message":"Done","commit_id":"e46743aef598673fe671b3ce50e21109ba655366"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"01a2afec5e0c4eff76c7c1209ccefd1b5191bc5d","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        if (\u0027glance-direct\u0027 not in cls.available_import_methods or"},{"line_number":141,"context_line":"                not cls.available_stores):"},{"line_number":142,"context_line":"            raise self.skipException(\u0027Either glance-direct import method or \u0027"},{"line_number":143,"context_line":"                                     \u0027multistore is not available\u0027)"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    def _create_and_stage_image(self, all_stores\u003dFalse):"},{"line_number":146,"context_line":"        \"\"\"Create Image \u0026 stage image file for glance-direct import method.\"\"\""}],"source_content_type":"text/x-python","patch_set":10,"id":"9f560f44_f42283b9","line":143,"range":{"start_line":143,"start_character":65,"end_line":143,"end_character":66},"updated":"2020-09-23 21:02:30.000000000","message":"let\u0027s add available_stores or available_import_methods value also to know the exact reason of skip.","commit_id":"e46743aef598673fe671b3ce50e21109ba655366"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"fb1abc2f53960031e976976b285ced121d9bfb5b","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        if (\u0027glance-direct\u0027 not in cls.available_import_methods or"},{"line_number":141,"context_line":"                not cls.available_stores):"},{"line_number":142,"context_line":"            raise self.skipException(\u0027Either glance-direct import method or \u0027"},{"line_number":143,"context_line":"                                     \u0027multistore is not available\u0027)"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    def _create_and_stage_image(self, all_stores\u003dFalse):"},{"line_number":146,"context_line":"        \"\"\"Create Image \u0026 stage image file for glance-direct import method.\"\"\""}],"source_content_type":"text/x-python","patch_set":10,"id":"9f560f44_72215e4d","line":143,"range":{"start_line":143,"start_character":65,"end_line":143,"end_character":66},"in_reply_to":"9f560f44_f42283b9","updated":"2020-09-24 05:46:38.000000000","message":"Done","commit_id":"e46743aef598673fe671b3ce50e21109ba655366"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"74334398e2d37021fd46fcb5232e502618382751","unresolved":false,"context_lines":[{"line_number":142,"context_line":"            raise cls.skipException("},{"line_number":143,"context_line":"                \u0027Either glance-direct import method not present in %s or \u0027"},{"line_number":144,"context_line":"                \u0027None or only one store is \u0027"},{"line_number":145,"context_line":"                \u0027confogured %s\u0027 % (cls.available_import_methods,"},{"line_number":146,"context_line":"                                   cls.available_stores))"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def _create_and_stage_image(self, all_stores\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f560f44_6517b6ef","line":145,"range":{"start_line":145,"start_character":17,"end_line":145,"end_character":27},"updated":"2020-09-25 15:07:50.000000000","message":"configured","commit_id":"92622a4c24a7cb21d9b37a8a543bbbd8f37df304"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"5be20f1018dfee5921beb004e7ef18b236420999","unresolved":false,"context_lines":[{"line_number":142,"context_line":"            raise cls.skipException("},{"line_number":143,"context_line":"                \u0027Either glance-direct import method not present in %s or \u0027"},{"line_number":144,"context_line":"                \u0027None or only one store is \u0027"},{"line_number":145,"context_line":"                \u0027confogured %s\u0027 % (cls.available_import_methods,"},{"line_number":146,"context_line":"                                   cls.available_stores))"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def _create_and_stage_image(self, all_stores\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":11,"id":"9f560f44_058fda2d","line":145,"range":{"start_line":145,"start_character":17,"end_line":145,"end_character":27},"in_reply_to":"9f560f44_6517b6ef","updated":"2020-09-25 15:11:25.000000000","message":"Done","commit_id":"92622a4c24a7cb21d9b37a8a543bbbd8f37df304"}],"tempest/common/waiters.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"d1d19716bd055d730f4efafc0708d118c6b2061c","unresolved":false,"context_lines":[{"line_number":217,"context_line":"    raise lib_exc.TimeoutException(message)"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"def wait_for_upload_completes(client, image_id, ready_wait\u003dTrue):"},{"line_number":221,"context_line":"    \"\"\"Waits for an image to be uploaded on all requested stores."},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"    The client should also have build_interval and build_timeout attributes."}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_8ff640f9","line":220,"range":{"start_line":220,"start_character":4,"end_line":220,"end_character":29},"updated":"2020-08-12 08:44:38.000000000","message":"should use import instead of upload","commit_id":"bfdd247a42d7fdba7c8ebe951190b2eef01a9af0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"d1d19716bd055d730f4efafc0708d118c6b2061c","unresolved":false,"context_lines":[{"line_number":234,"context_line":"                store_left \u003d image[\u0027os_glance_importing_to_stores\u0027]"},{"line_number":235,"context_line":"                return"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"    if not store_left and image[\u0027status\u0027] \u003d\u003d \u0027active\u0027:"},{"line_number":238,"context_line":"        return image[\u0027os_glance_failed_import\u0027]"},{"line_number":239,"context_line":"    if image[\u0027stores\u0027] and image[\u0027status\u0027] \u003d\u003d \u0027active\u0027:"},{"line_number":240,"context_line":"        return image[\u0027stores\u0027]"},{"line_number":241,"context_line":"    if image[\u0027status\u0027].lower() \u003d\u003d \u0027killed\u0027:"},{"line_number":242,"context_line":"        raise exceptions.ImageKilledException(image_id\u003dimage_id,"},{"line_number":243,"context_line":"                                              status\u003dimage[\u0027status\u0027])"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"        time.sleep(client.build_interval)"},{"line_number":246,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_8fcf60af","line":243,"range":{"start_line":237,"start_character":4,"end_line":243,"end_character":69},"updated":"2020-08-12 08:44:38.000000000","message":"this should be inside while i guess","commit_id":"bfdd247a42d7fdba7c8ebe951190b2eef01a9af0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"d1d19716bd055d730f4efafc0708d118c6b2061c","unresolved":false,"context_lines":[{"line_number":242,"context_line":"        raise exceptions.ImageKilledException(image_id\u003dimage_id,"},{"line_number":243,"context_line":"                                              status\u003dimage[\u0027status\u0027])"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"        time.sleep(client.build_interval)"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"    message \u003d (\u0027Image %(image_id)s failed to upload \u0027"},{"line_number":248,"context_line":"               \u0027on stores: %s\u0027 % str(store_left))"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_0fe23030","line":245,"range":{"start_line":245,"start_character":8,"end_line":245,"end_character":41},"updated":"2020-08-12 08:44:38.000000000","message":"this line is not reachable","commit_id":"bfdd247a42d7fdba7c8ebe951190b2eef01a9af0"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"72a52a220ffec5b2e9e5f9d134a4d69fd1d61dd9","unresolved":false,"context_lines":[{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        time.sleep(client.build_interval)"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"    message \u003d (\u0027Image %(image_id)s failed to upload \u0027"},{"line_number":207,"context_line":"               \u0027on stores: %s\u0027 % str(image[\u0027os_glance_failed_import\u0027]))"},{"line_number":208,"context_line":"    caller \u003d test_utils.find_test_caller()"},{"line_number":209,"context_line":"    if caller:"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f560f44_adc2a732","line":206,"range":{"start_line":206,"start_character":45,"end_line":206,"end_character":51},"updated":"2020-08-21 07:33:38.000000000","message":"this should be import","commit_id":"e1c3780ca66eaad0b6b833f4b7a2a707ef396602"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"b0546c48147dbf06e84c115025b3fe3ac485f8f5","unresolved":false,"context_lines":[{"line_number":187,"context_line":"    raise lib_exc.TimeoutException(message)"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"def wait_for_upload_to_complete(client, image_id, stores):"},{"line_number":191,"context_line":"    \"\"\"Waits for an image to be uploaded on all requested stores."},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    The client should also have build_interval and build_timeout attributes."}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_311680a9","line":190,"range":{"start_line":190,"start_character":4,"end_line":190,"end_character":31},"updated":"2020-08-28 10:13:58.000000000","message":"I would recommend to mention \u0027image\u0027 in the name so that it\u0027s more clear that we\u0027re waiting for an operation related to image ..\n\nbased on the name pattern of the waiters, can we rename it to f.e.: wait_for_image_upload?","commit_id":"0c87eb0376355219dd947a4c98ebd2bc547e8410"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"b837546e4a7c8218940a35893bfade26c8eb8280","unresolved":false,"context_lines":[{"line_number":187,"context_line":"    raise lib_exc.TimeoutException(message)"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"def wait_for_upload_to_complete(client, image_id, stores):"},{"line_number":191,"context_line":"    \"\"\"Waits for an image to be uploaded on all requested stores."},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    The client should also have build_interval and build_timeout attributes."}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_69f34374","line":190,"range":{"start_line":190,"start_character":4,"end_line":190,"end_character":31},"in_reply_to":"9f560f44_311680a9","updated":"2020-09-23 16:18:57.000000000","message":"+1","commit_id":"0c87eb0376355219dd947a4c98ebd2bc547e8410"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"a28ba0c1771650682c66b6fc1e71e90118ccfaa1","unresolved":false,"context_lines":[{"line_number":187,"context_line":"    raise lib_exc.TimeoutException(message)"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"def wait_for_upload_to_complete(client, image_id, stores):"},{"line_number":191,"context_line":"    \"\"\"Waits for an image to be uploaded on all requested stores."},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    The client should also have build_interval and build_timeout attributes."}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_6f50630b","line":190,"range":{"start_line":190,"start_character":4,"end_line":190,"end_character":31},"in_reply_to":"9f560f44_69f34374","updated":"2020-09-23 18:23:19.000000000","message":"Done","commit_id":"0c87eb0376355219dd947a4c98ebd2bc547e8410"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"b0546c48147dbf06e84c115025b3fe3ac485f8f5","unresolved":false,"context_lines":[{"line_number":196,"context_line":"    start \u003d int(time.time())"},{"line_number":197,"context_line":"    while int(time.time()) - start \u003c client.build_timeout:"},{"line_number":198,"context_line":"        image \u003d client.show_image(image_id)"},{"line_number":199,"context_line":"        if image[\u0027status\u0027] \u003d\u003d \u0027active\u0027 and image[\u0027stores\u0027] \u003d\u003d stores:"},{"line_number":200,"context_line":"            return"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"        time.sleep(client.build_interval)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_11eedcec","line":199,"range":{"start_line":199,"start_character":43,"end_line":199,"end_character":68},"updated":"2020-08-28 10:13:58.000000000","message":"is the order of stores in the response guaranteed somehow? Just asking to find out if it\u0027s safe to compare the two lists this way ..","commit_id":"0c87eb0376355219dd947a4c98ebd2bc547e8410"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"bb25c76433fa78137d4571713fe1753ca0aa6a4a","unresolved":false,"context_lines":[{"line_number":196,"context_line":"    start \u003d int(time.time())"},{"line_number":197,"context_line":"    while int(time.time()) - start \u003c client.build_timeout:"},{"line_number":198,"context_line":"        image \u003d client.show_image(image_id)"},{"line_number":199,"context_line":"        if image[\u0027status\u0027] \u003d\u003d \u0027active\u0027 and image[\u0027stores\u0027] \u003d\u003d stores:"},{"line_number":200,"context_line":"            return"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"        time.sleep(client.build_interval)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9f560f44_fcd321d4","line":199,"range":{"start_line":199,"start_character":43,"end_line":199,"end_character":68},"in_reply_to":"9f560f44_11eedcec","updated":"2020-08-31 09:48:54.000000000","message":"yes the the order remains same :)\nI\u0027ve already verified that.","commit_id":"0c87eb0376355219dd947a4c98ebd2bc547e8410"}]}
