)]}'
{"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":"7cc04f4a988266d2d94e5f5ed3e6af1403eb6f2f","unresolved":true,"context_lines":[{"line_number":634,"context_line":""},{"line_number":635,"context_line":""},{"line_number":636,"context_line":"class ImageQuotaTest(base.BaseV2ImageTest):"},{"line_number":637,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027system_admin\u0027]"},{"line_number":638,"context_line":""},{"line_number":639,"context_line":"    @classmethod"},{"line_number":640,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":10,"id":"c72467e7_a7f3469d","line":637,"range":{"start_line":637,"start_character":30,"end_line":637,"end_character":45},"updated":"2021-07-13 16:54:28.000000000","message":"as this test need admin creds for keystone APIs, we need to move it to admin folder tempest/api/image/v2/admin","commit_id":"ee503d1886cd27d86e342681909afac2f6be32e5"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"85f65a677ed5ce2266712e4f7b54740ed67e65e7","unresolved":false,"context_lines":[{"line_number":634,"context_line":""},{"line_number":635,"context_line":""},{"line_number":636,"context_line":"class ImageQuotaTest(base.BaseV2ImageTest):"},{"line_number":637,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027system_admin\u0027]"},{"line_number":638,"context_line":""},{"line_number":639,"context_line":"    @classmethod"},{"line_number":640,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":10,"id":"086e5d1a_3573917c","line":637,"range":{"start_line":637,"start_character":30,"end_line":637,"end_character":45},"in_reply_to":"c72467e7_a7f3469d","updated":"2021-07-13 18:43:09.000000000","message":"Ack","commit_id":"ee503d1886cd27d86e342681909afac2f6be32e5"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7cc04f4a988266d2d94e5f5ed3e6af1403eb6f2f","unresolved":true,"context_lines":[{"line_number":653,"context_line":"        cls.limit_ids \u003d {}"},{"line_number":654,"context_line":""},{"line_number":655,"context_line":"        try:"},{"line_number":656,"context_line":"            cls.limit_ids[\u0027image_size_total\u0027] \u003d cls._create_limit("},{"line_number":657,"context_line":"                \u0027image_size_total\u0027, 10)"},{"line_number":658,"context_line":"            cls.limit_ids[\u0027image_stage_total\u0027] \u003d cls._create_limit("},{"line_number":659,"context_line":"                \u0027image_stage_total\u0027, 10)"},{"line_number":660,"context_line":"            cls.limit_ids[\u0027image_count_total\u0027] \u003d cls._create_limit("}],"source_content_type":"text/x-python","patch_set":10,"id":"bf3660a2_9e08d709","line":657,"range":{"start_line":656,"start_character":0,"end_line":657,"end_character":39},"updated":"2021-07-13 16:54:28.000000000","message":"limits are not created as we can see in log and test also skipped via check_quotas_enabled()\n\nhttps://zuul.opendev.org/t/openstack/build/22c0f3a50bcb44a09804c5bd076a875f/log/controller/logs/tempest_log.txt#33686\n\nI think depends-on is not working here, something wrong with zuul?","commit_id":"ee503d1886cd27d86e342681909afac2f6be32e5"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"85f65a677ed5ce2266712e4f7b54740ed67e65e7","unresolved":true,"context_lines":[{"line_number":653,"context_line":"        cls.limit_ids \u003d {}"},{"line_number":654,"context_line":""},{"line_number":655,"context_line":"        try:"},{"line_number":656,"context_line":"            cls.limit_ids[\u0027image_size_total\u0027] \u003d cls._create_limit("},{"line_number":657,"context_line":"                \u0027image_size_total\u0027, 10)"},{"line_number":658,"context_line":"            cls.limit_ids[\u0027image_stage_total\u0027] \u003d cls._create_limit("},{"line_number":659,"context_line":"                \u0027image_stage_total\u0027, 10)"},{"line_number":660,"context_line":"            cls.limit_ids[\u0027image_count_total\u0027] \u003d cls._create_limit("}],"source_content_type":"text/x-python","patch_set":10,"id":"cfb150da_0c39dcff","line":657,"range":{"start_line":656,"start_character":0,"end_line":657,"end_character":39},"in_reply_to":"bf3660a2_9e08d709","updated":"2021-07-13 18:43:09.000000000","message":"Yep, as you noted. At least we know it falls back to skip if not enabled right? :)","commit_id":"ee503d1886cd27d86e342681909afac2f6be32e5"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7cc04f4a988266d2d94e5f5ed3e6af1403eb6f2f","unresolved":true,"context_lines":[{"line_number":675,"context_line":"        # configured to use/honor the unified limits."},{"line_number":676,"context_line":"        registered_limits \u003d self.os_system_admin.identity_limits_client.\\"},{"line_number":677,"context_line":"            get_registered_limits()[\u0027registered_limits\u0027]"},{"line_number":678,"context_line":"        if \u0027image_count_total\u0027 not in [x[\u0027resource_name\u0027]"},{"line_number":679,"context_line":"                                       for x in registered_limits]:"},{"line_number":680,"context_line":"            raise self.skipException(\u0027Target system is not configured with \u0027"},{"line_number":681,"context_line":"                                     \u0027glance unified limits\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"0428d685_738551cf","line":678,"range":{"start_line":678,"start_character":11,"end_line":678,"end_character":30},"updated":"2021-07-13 16:54:28.000000000","message":"we should check all required limit separately depends on test if they are registered or not instead of only checking \u0027image_count_total\u0027.","commit_id":"ee503d1886cd27d86e342681909afac2f6be32e5"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"85f65a677ed5ce2266712e4f7b54740ed67e65e7","unresolved":true,"context_lines":[{"line_number":675,"context_line":"        # configured to use/honor the unified limits."},{"line_number":676,"context_line":"        registered_limits \u003d self.os_system_admin.identity_limits_client.\\"},{"line_number":677,"context_line":"            get_registered_limits()[\u0027registered_limits\u0027]"},{"line_number":678,"context_line":"        if \u0027image_count_total\u0027 not in [x[\u0027resource_name\u0027]"},{"line_number":679,"context_line":"                                       for x in registered_limits]:"},{"line_number":680,"context_line":"            raise self.skipException(\u0027Target system is not configured with \u0027"},{"line_number":681,"context_line":"                                     \u0027glance unified limits\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"855e33d8_93591aec","line":678,"range":{"start_line":678,"start_character":11,"end_line":678,"end_character":30},"in_reply_to":"0428d685_738551cf","updated":"2021-07-13 18:43:09.000000000","message":"We can, but they have to all be set if enabled in glance. You can\u0027t just create one and not the others and expect things to work. The oslo.limit behavior for a missing limit is to assume zero, which means everything will fail with no quota. Unless we want to validate that the operator has properly set up all of them (which isn\u0027t really tempest\u0027s job right?) I don\u0027t think it matters.","commit_id":"ee503d1886cd27d86e342681909afac2f6be32e5"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"377c8a13b13bbe9aa5c7e059ea48ebe064e6b30e","unresolved":true,"context_lines":[{"line_number":675,"context_line":"        # configured to use/honor the unified limits."},{"line_number":676,"context_line":"        registered_limits \u003d self.os_system_admin.identity_limits_client.\\"},{"line_number":677,"context_line":"            get_registered_limits()[\u0027registered_limits\u0027]"},{"line_number":678,"context_line":"        if \u0027image_count_total\u0027 not in [x[\u0027resource_name\u0027]"},{"line_number":679,"context_line":"                                       for x in registered_limits]:"},{"line_number":680,"context_line":"            raise self.skipException(\u0027Target system is not configured with \u0027"},{"line_number":681,"context_line":"                                     \u0027glance unified limits\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"a1734115_0e41877a","line":678,"range":{"start_line":678,"start_character":11,"end_line":678,"end_character":30},"in_reply_to":"855e33d8_93591aec","updated":"2021-07-13 22:59:52.000000000","message":"I see, please add this info in note. I think checking single limit is ok as you are doing currently.","commit_id":"ee503d1886cd27d86e342681909afac2f6be32e5"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7cc04f4a988266d2d94e5f5ed3e6af1403eb6f2f","unresolved":true,"context_lines":[{"line_number":756,"context_line":"                \"%s skipped as image import is not available\" % __name__)"},{"line_number":757,"context_line":"            raise self.skipException(skip_msg)"},{"line_number":758,"context_line":""},{"line_number":759,"context_line":"        self.check_quotas_enabled()"},{"line_number":760,"context_line":""},{"line_number":761,"context_line":"        # Set a quota on the number of images we can have in uploading state."},{"line_number":762,"context_line":"        self._update_limit(\u0027image_stage_total\u0027, 10)"}],"source_content_type":"text/x-python","patch_set":10,"id":"365641c2_bc8c7bba","line":759,"range":{"start_line":759,"start_character":8,"end_line":759,"end_character":35},"updated":"2021-07-13 16:54:28.000000000","message":"like in this test we should check if all below limits needed by test are registered or not:\n\n\u0027image_stage_total\u0027\n\u0027image_size_total\u0027\n\u0027image_count_total\u0027\n\u0027image_count_uploading\u0027","commit_id":"ee503d1886cd27d86e342681909afac2f6be32e5"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7cc04f4a988266d2d94e5f5ed3e6af1403eb6f2f","unresolved":true,"context_lines":[{"line_number":804,"context_line":"        self.client.stage_image_file(image2[\u0027id\u0027], io.BytesIO(file_content))"},{"line_number":805,"context_line":""},{"line_number":806,"context_line":"        # Set our quota back to one"},{"line_number":807,"context_line":"        self._update_limit(\u0027image_count_uploading\u0027, 2)"},{"line_number":808,"context_line":""},{"line_number":809,"context_line":"        # Since image1 is still staged, we should not be able to upload"},{"line_number":810,"context_line":"        # an image."}],"source_content_type":"text/x-python","patch_set":10,"id":"c301c6ac_8c987f2c","line":807,"range":{"start_line":807,"start_character":52,"end_line":807,"end_character":53},"updated":"2021-07-13 16:54:28.000000000","message":"1","commit_id":"ee503d1886cd27d86e342681909afac2f6be32e5"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"e0b46d024ee18f5466b196fd9c9d11c489fdd244","unresolved":false,"context_lines":[{"line_number":804,"context_line":"        self.client.stage_image_file(image2[\u0027id\u0027], io.BytesIO(file_content))"},{"line_number":805,"context_line":""},{"line_number":806,"context_line":"        # Set our quota back to one"},{"line_number":807,"context_line":"        self._update_limit(\u0027image_count_uploading\u0027, 2)"},{"line_number":808,"context_line":""},{"line_number":809,"context_line":"        # Since image1 is still staged, we should not be able to upload"},{"line_number":810,"context_line":"        # an image."}],"source_content_type":"text/x-python","patch_set":10,"id":"1c50a19d_54068e4d","line":807,"range":{"start_line":807,"start_character":52,"end_line":807,"end_character":53},"in_reply_to":"78756fea_721dc157","updated":"2021-07-16 14:59:30.000000000","message":"Actually this typo was hiding some other bug in this test, which I\u0027m working on.","commit_id":"ee503d1886cd27d86e342681909afac2f6be32e5"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"85f65a677ed5ce2266712e4f7b54740ed67e65e7","unresolved":false,"context_lines":[{"line_number":804,"context_line":"        self.client.stage_image_file(image2[\u0027id\u0027], io.BytesIO(file_content))"},{"line_number":805,"context_line":""},{"line_number":806,"context_line":"        # Set our quota back to one"},{"line_number":807,"context_line":"        self._update_limit(\u0027image_count_uploading\u0027, 2)"},{"line_number":808,"context_line":""},{"line_number":809,"context_line":"        # Since image1 is still staged, we should not be able to upload"},{"line_number":810,"context_line":"        # an image."}],"source_content_type":"text/x-python","patch_set":10,"id":"78756fea_721dc157","line":807,"range":{"start_line":807,"start_character":52,"end_line":807,"end_character":53},"in_reply_to":"c301c6ac_8c987f2c","updated":"2021-07-13 18:43:09.000000000","message":"Ack","commit_id":"ee503d1886cd27d86e342681909afac2f6be32e5"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7cc04f4a988266d2d94e5f5ed3e6af1403eb6f2f","unresolved":true,"context_lines":[{"line_number":830,"context_line":""},{"line_number":831,"context_line":"    @decorators.idempotent_id(\u002705e8d064-c39a-4801-8c6a-465df375ec5b\u0027)"},{"line_number":832,"context_line":"    def test_image_size_quota(self):"},{"line_number":833,"context_line":"        self.check_quotas_enabled()"},{"line_number":834,"context_line":""},{"line_number":835,"context_line":"        # Set a quota on the image size for our tenant to 1MiB, and allow ten"},{"line_number":836,"context_line":"        # images."}],"source_content_type":"text/x-python","patch_set":10,"id":"ae0fd50d_8b5bf646","line":833,"range":{"start_line":833,"start_character":0,"end_line":833,"end_character":35},"updated":"2021-07-13 16:54:28.000000000","message":"ditto","commit_id":"ee503d1886cd27d86e342681909afac2f6be32e5"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7cc04f4a988266d2d94e5f5ed3e6af1403eb6f2f","unresolved":true,"context_lines":[{"line_number":847,"context_line":"                                   visibility\u003d\u0027private\u0027)"},{"line_number":848,"context_line":"        self.client.store_image_file(image1[\u0027id\u0027], io.BytesIO(file_content))"},{"line_number":849,"context_line":""},{"line_number":850,"context_line":"        # Create and upload a second 1MiB image. This succeeds, but"},{"line_number":851,"context_line":"        # after completion, we are over quota."},{"line_number":852,"context_line":"        image2 \u003d self.create_image(name\u003d\u0027second\u0027,"},{"line_number":853,"context_line":"                                   container_format\u003d\u0027bare\u0027,"},{"line_number":854,"context_line":"                                   disk_format\u003d\u0027raw\u0027,"},{"line_number":855,"context_line":"                                   visibility\u003d\u0027private\u0027)"},{"line_number":856,"context_line":"        self.client.store_image_file(image2[\u0027id\u0027], io.BytesIO(file_content))"},{"line_number":857,"context_line":""},{"line_number":858,"context_line":"        # Create and attempt to upload a third 1MiB image. This should fail to"},{"line_number":859,"context_line":"        # upload (but not create) because we are over quota."}],"source_content_type":"text/x-python","patch_set":10,"id":"fc07e575_553dfcca","line":856,"range":{"start_line":850,"start_character":0,"end_line":856,"end_character":76},"updated":"2021-07-13 16:54:28.000000000","message":"but quota is 1MiB so should not this fail?","commit_id":"ee503d1886cd27d86e342681909afac2f6be32e5"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"85f65a677ed5ce2266712e4f7b54740ed67e65e7","unresolved":true,"context_lines":[{"line_number":847,"context_line":"                                   visibility\u003d\u0027private\u0027)"},{"line_number":848,"context_line":"        self.client.store_image_file(image1[\u0027id\u0027], io.BytesIO(file_content))"},{"line_number":849,"context_line":""},{"line_number":850,"context_line":"        # Create and upload a second 1MiB image. This succeeds, but"},{"line_number":851,"context_line":"        # after completion, we are over quota."},{"line_number":852,"context_line":"        image2 \u003d self.create_image(name\u003d\u0027second\u0027,"},{"line_number":853,"context_line":"                                   container_format\u003d\u0027bare\u0027,"},{"line_number":854,"context_line":"                                   disk_format\u003d\u0027raw\u0027,"},{"line_number":855,"context_line":"                                   visibility\u003d\u0027private\u0027)"},{"line_number":856,"context_line":"        self.client.store_image_file(image2[\u0027id\u0027], io.BytesIO(file_content))"},{"line_number":857,"context_line":""},{"line_number":858,"context_line":"        # Create and attempt to upload a third 1MiB image. This should fail to"},{"line_number":859,"context_line":"        # upload (but not create) because we are over quota."}],"source_content_type":"text/x-python","patch_set":10,"id":"fd53740c_96a10b6e","line":856,"range":{"start_line":850,"start_character":0,"end_line":856,"end_character":76},"in_reply_to":"fc07e575_553dfcca","updated":"2021-07-13 18:43:09.000000000","message":"We\u0027re not over quota until we\u0027ve stored it. Glance API does not require you to provide the size before you send the image, so for most of these, we can only prevent operations *after* you\u0027re over quota (not even at quota, but over).","commit_id":"ee503d1886cd27d86e342681909afac2f6be32e5"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7cc04f4a988266d2d94e5f5ed3e6af1403eb6f2f","unresolved":true,"context_lines":[{"line_number":917,"context_line":"                                   visibility\u003d\u0027private\u0027)"},{"line_number":918,"context_line":"        self.client.stage_image_file(image1[\u0027id\u0027], io.BytesIO(file_content))"},{"line_number":919,"context_line":""},{"line_number":920,"context_line":"        # Create and stage a second 1MiB image. This succeeds, but"},{"line_number":921,"context_line":"        # after completion, we are over quota."},{"line_number":922,"context_line":"        image2 \u003d self.create_image(name\u003d\u0027second\u0027,"},{"line_number":923,"context_line":"                                   container_format\u003d\u0027bare\u0027,"},{"line_number":924,"context_line":"                                   disk_format\u003d\u0027raw\u0027,"},{"line_number":925,"context_line":"                                   visibility\u003d\u0027private\u0027)"},{"line_number":926,"context_line":"        self.client.stage_image_file(image2[\u0027id\u0027], io.BytesIO(file_content))"},{"line_number":927,"context_line":""},{"line_number":928,"context_line":"        # Create and attempt to stage a third 1MiB image. This should fail to"},{"line_number":929,"context_line":"        # stage (but not create) because we are over quota."}],"source_content_type":"text/x-python","patch_set":10,"id":"63de5d05_3c41825b","line":926,"range":{"start_line":920,"start_character":0,"end_line":926,"end_character":76},"updated":"2021-07-13 16:54:28.000000000","message":"ditto, should not it fail as 1MiB \u0027first\u0027 image is already staged","commit_id":"ee503d1886cd27d86e342681909afac2f6be32e5"}],"tempest/scenario/test_unified_limits.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"1a91767c62fde896575ead3f5db196930f391463","unresolved":true,"context_lines":[{"line_number":238,"context_line":"        self.image_client.stage_image_file(image2[\u0027id\u0027],"},{"line_number":239,"context_line":"                                           io.BytesIO(file_content))"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"        # Finish our import of image2"},{"line_number":242,"context_line":"        self.image_client.image_import(image2[\u0027id\u0027], method\u003d\u0027glance-direct\u0027)"},{"line_number":243,"context_line":"        waiters.wait_for_image_imported_to_stores(self.image_client,"},{"line_number":244,"context_line":"                                                  image2[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":15,"id":"ba011879_deadf0e5","line":241,"range":{"start_line":241,"start_character":0,"end_line":241,"end_character":37},"updated":"2021-07-16 20:22:46.000000000","message":"+1, now we actually trying 2nd upload at L255.","commit_id":"a15846ea1681297cc334a79e815802540fda26b3"}]}
