)]}'
{"tempest/api/compute/base.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"73436e7695f520d92c542710dc1fd7fec534a9ce","unresolved":false,"context_lines":[{"line_number":325,"context_line":"                            image_id\u003dimage_id)"},{"line_number":326,"context_line":"                else:"},{"line_number":327,"context_line":"                    raise"},{"line_number":328,"context_line":"        image \u003d cls.compute_images_client.show_image(image_id)[\u0027image\u0027]"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"        return image"},{"line_number":331,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa31d9ce_16d6b6f0","line":328,"updated":"2017-02-15 11:17:19.000000000","message":"Why did you change the indentation here ? That seems unnecessary unless you are fixing a bug with the current code.","commit_id":"9480f9995d949351ff5d6c9e86ae95a52bf756c7"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"8e3ad4efb221b32923f463314ff59e85e7f9f75a","unresolved":false,"context_lines":[{"line_number":325,"context_line":"                            image_id\u003dimage_id)"},{"line_number":326,"context_line":"                else:"},{"line_number":327,"context_line":"                    raise"},{"line_number":328,"context_line":"        image \u003d cls.compute_images_client.show_image(image_id)[\u0027image\u0027]"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"        return image"},{"line_number":331,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa31d9ce_a1457e43","line":328,"in_reply_to":"fa31d9ce_16d6b6f0","updated":"2017-02-16 02:36:22.000000000","message":"Thanks Jordan, yes, I do have reasons for this change:)\n1. if don\u0027t change the indentation,then if we call image \u003d self.create_image_from_server(server_id), we will not be able to use image[\u0027id\u0027],\n   and so in test_delete_image_that_is_not_yet_active, the code will become more complex, for we have to parse image id from image\u0027s location.\n\n2. It seems no special reason for the previous indentation, I thinkg maybe the author happened to put the indentation as that:)","commit_id":"9480f9995d949351ff5d6c9e86ae95a52bf756c7"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"79072a1df3ac3515d7a5966543648e07f3bcca8a","unresolved":false,"context_lines":[{"line_number":325,"context_line":"                            image_id\u003dimage_id)"},{"line_number":326,"context_line":"                else:"},{"line_number":327,"context_line":"                    raise"},{"line_number":328,"context_line":"        image \u003d cls.compute_images_client.show_image(image_id)[\u0027image\u0027]"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"        return image"},{"line_number":331,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa31d9ce_bbbace6c","line":328,"in_reply_to":"fa31d9ce_a1457e43","updated":"2017-02-17 11:25:53.000000000","message":"1. : this patch doesn\u0027t change test_delete_image_that_is_not_yet_active so the code will not become more complex.\n\n2. There is one reason, we don\u0027t want to do an extra call to Glance if we don\u0027t want to wait. With your change, if someone calls with wait_until\u003dNone, one extra call to Glance will be made.","commit_id":"9480f9995d949351ff5d6c9e86ae95a52bf756c7"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4eb2eabf26fb85c0a1820cc630722424da20cd97","unresolved":false,"context_lines":[{"line_number":293,"context_line":"                                      dhcp\u003dTrue)"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    @classmethod"},{"line_number":296,"context_line":"    def create_image_from_server(cls, server_id, **kwargs):"},{"line_number":297,"context_line":"        \"\"\"Wrapper utility that returns an image created from the server.\"\"\""},{"line_number":298,"context_line":"        name \u003d kwargs.pop(\u0027name\u0027,"},{"line_number":299,"context_line":"                          data_utils.rand_name(cls.__name__ + \"-image\"))"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_1ef499f0","line":296,"range":{"start_line":296,"start_character":49,"end_line":296,"end_character":57},"updated":"2017-03-08 02:39:26.000000000","message":"\u0027wait_for_server\u0027 also expected in kwargs (if you rebase), i want that as explicit arg not in kwargs. That was way hidden arg and caused one CI failure.","commit_id":"80a0b3489abb1a394bdf7daaede238084bed41bf"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"789313485538903becd3c67db51bf682893905ce","unresolved":false,"context_lines":[{"line_number":293,"context_line":"                                      dhcp\u003dTrue)"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    @classmethod"},{"line_number":296,"context_line":"    def create_image_from_server(cls, server_id, **kwargs):"},{"line_number":297,"context_line":"        \"\"\"Wrapper utility that returns an image created from the server.\"\"\""},{"line_number":298,"context_line":"        name \u003d kwargs.pop(\u0027name\u0027,"},{"line_number":299,"context_line":"                          data_utils.rand_name(cls.__name__ + \"-image\"))"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_db4a0eac","line":296,"range":{"start_line":296,"start_character":49,"end_line":296,"end_character":57},"in_reply_to":"9a30ddce_1ef499f0","updated":"2017-03-08 05:57:12.000000000","message":"Thanks, in this patch I just simply rebase it, and maybe we can make it an explicit arg in other patch if needed","commit_id":"80a0b3489abb1a394bdf7daaede238084bed41bf"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4eb2eabf26fb85c0a1820cc630722424da20cd97","unresolved":false,"context_lines":[{"line_number":325,"context_line":"                            image_id\u003dimage_id)"},{"line_number":326,"context_line":"                else:"},{"line_number":327,"context_line":"                    raise"},{"line_number":328,"context_line":"            image \u003d cls.compute_images_client.show_image(image_id)[\u0027image\u0027]"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"        return image"},{"line_number":331,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_c3478e49","line":328,"range":{"start_line":328,"start_character":0,"end_line":328,"end_character":75},"updated":"2017-03-08 02:39:26.000000000","message":"i was surprise to see server wait bit missing again but seems like this need rebase.\n\nthere is bit \u0027wait_for_server\u0027 in kwargs and you need to fetch that too.","commit_id":"80a0b3489abb1a394bdf7daaede238084bed41bf"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"789313485538903becd3c67db51bf682893905ce","unresolved":false,"context_lines":[{"line_number":325,"context_line":"                            image_id\u003dimage_id)"},{"line_number":326,"context_line":"                else:"},{"line_number":327,"context_line":"                    raise"},{"line_number":328,"context_line":"            image \u003d cls.compute_images_client.show_image(image_id)[\u0027image\u0027]"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"        return image"},{"line_number":331,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_3b5b2a89","line":328,"range":{"start_line":328,"start_character":0,"end_line":328,"end_character":75},"in_reply_to":"9a30ddce_c3478e49","updated":"2017-03-08 05:57:12.000000000","message":"yes it need rebase","commit_id":"80a0b3489abb1a394bdf7daaede238084bed41bf"},{"author":{"_account_id":24903,"name":"Hongtao Zhang","email":"changhungtao@126.com","username":"ZhangHongtao"},"change_message_id":"c38e1f25a658339cf5dfcac9f07462a5003d375f","unresolved":false,"context_lines":[{"line_number":327,"context_line":"                    raise"},{"line_number":328,"context_line":"            image \u003d cls.compute_images_client.show_image(image_id)[\u0027image\u0027]"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"            if wait_until \u003d\u003d \u0027ACTIVE\u0027:"},{"line_number":331,"context_line":"                if kwargs.get(\u0027wait_for_server\u0027, True):"},{"line_number":332,"context_line":"                    waiters.wait_for_server_status(cls.servers_client,"},{"line_number":333,"context_line":"                                                   server_id, \u0027ACTIVE\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a30ddce_c2ae9f84","line":330,"range":{"start_line":330,"start_character":15,"end_line":330,"end_character":25},"updated":"2017-03-08 09:39:19.000000000","message":"\u0027wait_until.upper()\u0027 like LINE 312 ?","commit_id":"2b39d2f97548237593f0262115bd8afbd65851a0"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"ace8c524436f0132a4eb4485f34f6823fbd06be8","unresolved":false,"context_lines":[{"line_number":327,"context_line":"                    raise"},{"line_number":328,"context_line":"            image \u003d cls.compute_images_client.show_image(image_id)[\u0027image\u0027]"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"            if wait_until \u003d\u003d \u0027ACTIVE\u0027:"},{"line_number":331,"context_line":"                if kwargs.get(\u0027wait_for_server\u0027, True):"},{"line_number":332,"context_line":"                    waiters.wait_for_server_status(cls.servers_client,"},{"line_number":333,"context_line":"                                                   server_id, \u0027ACTIVE\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a30ddce_79674625","line":330,"range":{"start_line":330,"start_character":15,"end_line":330,"end_character":25},"in_reply_to":"9a30ddce_c2ae9f84","updated":"2017-03-09 01:34:03.000000000","message":"yea, done.","commit_id":"2b39d2f97548237593f0262115bd8afbd65851a0"}],"tempest/api/compute/images/test_images_negative.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"73436e7695f520d92c542710dc1fd7fec534a9ce","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        meta \u003d {\u0027image_type\u0027: \u0027test\u0027}"},{"line_number":55,"context_line":"        self.assertRaises(lib_exc.NotFound,"},{"line_number":56,"context_line":"                          self.create_image_from_server,"},{"line_number":57,"context_line":"                          server[\u0027id\u0027], metadata\u003dmeta)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027])"},{"line_number":60,"context_line":"    @decorators.idempotent_id(\u002782c5b0c4-9dbd-463c-872b-20c4755aae7f\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa31d9ce_3902cd0a","line":57,"updated":"2017-02-15 11:17:19.000000000","message":"Why this change ? A link to some documentation or relevant NOva source code ?","commit_id":"9480f9995d949351ff5d6c9e86ae95a52bf756c7"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"8e3ad4efb221b32923f463314ff59e85e7f9f75a","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        meta \u003d {\u0027image_type\u0027: \u0027test\u0027}"},{"line_number":55,"context_line":"        self.assertRaises(lib_exc.NotFound,"},{"line_number":56,"context_line":"                          self.create_image_from_server,"},{"line_number":57,"context_line":"                          server[\u0027id\u0027], metadata\u003dmeta)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027])"},{"line_number":60,"context_line":"    @decorators.idempotent_id(\u002782c5b0c4-9dbd-463c-872b-20c4755aae7f\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa31d9ce_a1b3be4b","line":57,"in_reply_to":"fa31d9ce_3902cd0a","updated":"2017-02-16 02:36:22.000000000","message":"As we can see from http://developer.openstack.org/api-ref-compute-v2.1.html#createImage, the parameter name is \"metadata\", \nthe reason why we didn\u0027t find the bug before is that self.create_image_from_server used to pass only server_id and name to create_image","commit_id":"9480f9995d949351ff5d6c9e86ae95a52bf756c7"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"79072a1df3ac3515d7a5966543648e07f3bcca8a","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        meta \u003d {\u0027image_type\u0027: \u0027test\u0027}"},{"line_number":55,"context_line":"        self.assertRaises(lib_exc.NotFound,"},{"line_number":56,"context_line":"                          self.create_image_from_server,"},{"line_number":57,"context_line":"                          server[\u0027id\u0027], metadata\u003dmeta)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027])"},{"line_number":60,"context_line":"    @decorators.idempotent_id(\u002782c5b0c4-9dbd-463c-872b-20c4755aae7f\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa31d9ce_1baafa19","line":57,"in_reply_to":"fa31d9ce_a1b3be4b","updated":"2017-02-17 11:25:53.000000000","message":"I see, thanks.","commit_id":"9480f9995d949351ff5d6c9e86ae95a52bf756c7"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4eb2eabf26fb85c0a1820cc630722424da20cd97","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        meta \u003d {\u0027image_type\u0027: \u0027test\u0027}"},{"line_number":55,"context_line":"        self.assertRaises(lib_exc.NotFound,"},{"line_number":56,"context_line":"                          self.create_image_from_server,"},{"line_number":57,"context_line":"                          server[\u0027id\u0027], meta\u003dmeta)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027])"},{"line_number":60,"context_line":"    @decorators.idempotent_id(\u002782c5b0c4-9dbd-463c-872b-20c4755aae7f\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_c31ceec3","side":"PARENT","line":57,"range":{"start_line":57,"start_character":39,"end_line":57,"end_character":44},"updated":"2017-03-08 02:39:26.000000000","message":"opps, thanks this was ignored param.","commit_id":"bad7dcd77c5954e12c871e7d62300ff42addfbeb"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4eb2eabf26fb85c0a1820cc630722424da20cd97","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        meta \u003d {\u0027image_type\u0027: \u0027test\u0027}"},{"line_number":55,"context_line":"        self.assertRaises(lib_exc.NotFound,"},{"line_number":56,"context_line":"                          self.create_image_from_server,"},{"line_number":57,"context_line":"                          server[\u0027id\u0027], metadata\u003dmeta)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027])"},{"line_number":60,"context_line":"    @decorators.idempotent_id(\u002782c5b0c4-9dbd-463c-872b-20c4755aae7f\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_037d26e7","line":57,"range":{"start_line":57,"start_character":40,"end_line":57,"end_character":48},"updated":"2017-03-08 02:39:26.000000000","message":"nice catch.","commit_id":"80a0b3489abb1a394bdf7daaede238084bed41bf"}],"tempest/api/compute/images/test_images_oneserver.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4eb2eabf26fb85c0a1820cc630722424da20cd97","unresolved":false,"context_lines":[{"line_number":70,"context_line":"                      (str(original_image[\u0027minDisk\u0027]), str(flavor_disk_size)))"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        # Verify the image was deleted correctly"},{"line_number":73,"context_line":"        self.client.delete_image(image[\u0027id\u0027])"},{"line_number":74,"context_line":"        self.client.wait_for_resource_deletion(image[\u0027id\u0027])"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    @decorators.idempotent_id(\u00273b7c6fe4-dfe7-477c-9243-b06359db51e6\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_23b78a87","line":73,"range":{"start_line":73,"start_character":8,"end_line":73,"end_character":45},"updated":"2017-03-08 02:39:26.000000000","message":"if you want to use base class method and deleting image explicitly then remove image id from cls.images to avoid unnecessary delete API call on resourceCleanup","commit_id":"80a0b3489abb1a394bdf7daaede238084bed41bf"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"789313485538903becd3c67db51bf682893905ce","unresolved":false,"context_lines":[{"line_number":70,"context_line":"                      (str(original_image[\u0027minDisk\u0027]), str(flavor_disk_size)))"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        # Verify the image was deleted correctly"},{"line_number":73,"context_line":"        self.client.delete_image(image[\u0027id\u0027])"},{"line_number":74,"context_line":"        self.client.wait_for_resource_deletion(image[\u0027id\u0027])"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    @decorators.idempotent_id(\u00273b7c6fe4-dfe7-477c-9243-b06359db51e6\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_bbc55a3d","line":73,"range":{"start_line":73,"start_character":8,"end_line":73,"end_character":45},"in_reply_to":"9a30ddce_23b78a87","updated":"2017-03-08 05:57:12.000000000","message":"Done","commit_id":"80a0b3489abb1a394bdf7daaede238084bed41bf"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4eb2eabf26fb85c0a1820cc630722424da20cd97","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        # #1370954 in glance which will 500 if mysql is used as the"},{"line_number":85,"context_line":"        # backend and it attempts to store a 4 byte utf-8 character"},{"line_number":86,"context_line":"        utf8_name \u003d data_utils.rand_name(b\u0027\\xe2\\x82\\xa1\u0027.decode(\u0027utf-8\u0027))"},{"line_number":87,"context_line":"        self.create_image_from_server(server_id, name\u003dutf8_name,"},{"line_number":88,"context_line":"                                      wait_until\u003d\u0027ACTIVE\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_838596ae","line":88,"range":{"start_line":87,"start_character":0,"end_line":88,"end_character":58},"updated":"2017-03-08 02:39:26.000000000","message":"i do not think this is needed, you are delaying the image deletion will class level which does not give benefit. \n\noriginal code looks good to me, just create and delete after tests immediately.","commit_id":"80a0b3489abb1a394bdf7daaede238084bed41bf"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"789313485538903becd3c67db51bf682893905ce","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        # #1370954 in glance which will 500 if mysql is used as the"},{"line_number":85,"context_line":"        # backend and it attempts to store a 4 byte utf-8 character"},{"line_number":86,"context_line":"        utf8_name \u003d data_utils.rand_name(b\u0027\\xe2\\x82\\xa1\u0027.decode(\u0027utf-8\u0027))"},{"line_number":87,"context_line":"        self.create_image_from_server(server_id, name\u003dutf8_name,"},{"line_number":88,"context_line":"                                      wait_until\u003d\u0027ACTIVE\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_5beb7eb0","line":88,"range":{"start_line":87,"start_character":0,"end_line":88,"end_character":58},"in_reply_to":"9a30ddce_838596ae","updated":"2017-03-08 05:57:12.000000000","message":"Done","commit_id":"80a0b3489abb1a394bdf7daaede238084bed41bf"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"fa2751f98fe7c3ed21206e619ea703cca43d911c","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        # #1370954 in glance which will 500 if mysql is used as the"},{"line_number":86,"context_line":"        # backend and it attempts to store a 4 byte utf-8 character"},{"line_number":87,"context_line":"        utf8_name \u003d data_utils.rand_name(b\u0027\\xe2\\x82\\xa1\u0027.decode(\u0027utf-8\u0027))"},{"line_number":88,"context_line":"        self.create_image_from_server(server_id, name\u003dutf8_name)"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a22e58a_abe1cdd2","line":88,"range":{"start_line":88,"start_character":8,"end_line":88,"end_character":64},"updated":"2017-03-14 06:29:47.000000000","message":"same comment as in PS5","commit_id":"ce26ee0d537661a7c6e6e911e938f9ff5e379255"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"eb87e19de427a850066b83d61dade2c979e4db34","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        # #1370954 in glance which will 500 if mysql is used as the"},{"line_number":86,"context_line":"        # backend and it attempts to store a 4 byte utf-8 character"},{"line_number":87,"context_line":"        utf8_name \u003d data_utils.rand_name(b\u0027\\xe2\\x82\\xa1\u0027.decode(\u0027utf-8\u0027))"},{"line_number":88,"context_line":"        self.create_image_from_server(server_id, name\u003dutf8_name)"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a22e58a_4b2f79a1","line":88,"range":{"start_line":88,"start_character":8,"end_line":88,"end_character":64},"in_reply_to":"5a22e58a_abe1cdd2","updated":"2017-03-14 06:44:44.000000000","message":"Done","commit_id":"ce26ee0d537661a7c6e6e911e938f9ff5e379255"}],"tempest/api/compute/images/test_images_oneserver_negative.py":[{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"e529ef7c9538eafc332a0dc17820de55ee617853","unresolved":false,"context_lines":[{"line_number":119,"context_line":"    def test_delete_image_that_is_not_yet_active(self):"},{"line_number":120,"context_line":"        # Return an error while trying to delete an image what is creating"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        image \u003d self.create_image_from_server(self.server_id)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        self.addCleanup(self._reset_server)"},{"line_number":125,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"da36d5c6_0c82e100","line":122,"range":{"start_line":122,"start_character":8,"end_line":122,"end_character":13},"updated":"2017-02-20 03:13:10.000000000","message":"@Jordan, if we call self.create_image_from_server without wait_until\u003d\u0027ACTIVE\u0027, then \u0027id\u0027 is not in image, and we will have to call\ndata_utils.parse_image_id(body.response[\u0027location\u0027]) to get image id. \nBut I also agree with you that an extra call to Glance should be avoided, so, I think it\u0027s better to add image[\u0027id\u0027] \u003d image_id in\nbase.create_image_from_server, so the caller can have image[\u0027id\u0027] whether with wait_until\u003d\u0027ACTIVE\u0027 or not.","commit_id":"9480f9995d949351ff5d6c9e86ae95a52bf756c7"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4eb2eabf26fb85c0a1820cc630722424da20cd97","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        # Create second snapshot"},{"line_number":106,"context_line":"        self.assertRaises(lib_exc.Conflict, self.create_image_from_server,"},{"line_number":107,"context_line":"                          self.server_id)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027])"},{"line_number":110,"context_line":"    @decorators.idempotent_id(\u0027084f0cbc-500a-4963-8a4e-312905862581\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_5eb0d143","line":107,"range":{"start_line":107,"start_character":40,"end_line":107,"end_character":41},"updated":"2017-03-08 02:39:26.000000000","message":"i prefer to delete the first image and remove from cls.images\n\nNow we are leaving image to be cleaned at class level which is unnecessary.","commit_id":"80a0b3489abb1a394bdf7daaede238084bed41bf"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"789313485538903becd3c67db51bf682893905ce","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        # Create second snapshot"},{"line_number":106,"context_line":"        self.assertRaises(lib_exc.Conflict, self.create_image_from_server,"},{"line_number":107,"context_line":"                          self.server_id)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027])"},{"line_number":110,"context_line":"    @decorators.idempotent_id(\u0027084f0cbc-500a-4963-8a4e-312905862581\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_db1ccec3","line":107,"range":{"start_line":107,"start_character":40,"end_line":107,"end_character":41},"in_reply_to":"9a30ddce_5eb0d143","updated":"2017-03-08 05:57:12.000000000","message":"Done","commit_id":"80a0b3489abb1a394bdf7daaede238084bed41bf"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4eb2eabf26fb85c0a1820cc630722424da20cd97","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        self.addCleanup(self._reset_server)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        # Do not wait, attempt to delete the image, ensure it\u0027s successful"},{"line_number":129,"context_line":"        self.client.delete_image(image_id)"},{"line_number":130,"context_line":"        self.assertRaises(lib_exc.NotFound,"},{"line_number":131,"context_line":"                          self.client.show_image, image_id)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_5e145143","line":129,"range":{"start_line":129,"start_character":0,"end_line":129,"end_character":42},"updated":"2017-03-08 02:39:26.000000000","message":"you should remove image from self.image_ids","commit_id":"80a0b3489abb1a394bdf7daaede238084bed41bf"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"789313485538903becd3c67db51bf682893905ce","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        self.addCleanup(self._reset_server)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        # Do not wait, attempt to delete the image, ensure it\u0027s successful"},{"line_number":129,"context_line":"        self.client.delete_image(image_id)"},{"line_number":130,"context_line":"        self.assertRaises(lib_exc.NotFound,"},{"line_number":131,"context_line":"                          self.client.show_image, image_id)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_db73ee13","line":129,"range":{"start_line":129,"start_character":0,"end_line":129,"end_character":42},"in_reply_to":"9a30ddce_5e145143","updated":"2017-03-08 05:57:12.000000000","message":"Done","commit_id":"80a0b3489abb1a394bdf7daaede238084bed41bf"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"18782ae50a1f9d36c5c06d2f2f46506c81d0a466","unresolved":false,"context_lines":[{"line_number":107,"context_line":"                          self.server_id)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        self.client.delete_image(image[\u0027id\u0027])"},{"line_number":110,"context_line":"        self.images.remove(image[\u0027id\u0027])"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027])"},{"line_number":113,"context_line":"    @decorators.idempotent_id(\u0027084f0cbc-500a-4963-8a4e-312905862581\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a30ddce_ac6e0294","line":110,"updated":"2017-03-08 07:50:58.000000000","message":"Can we set these to addCleanup? Otherwise, if an unexpected thing happens at the second snapshot creation, the image isn\u0027t removed.","commit_id":"2b39d2f97548237593f0262115bd8afbd65851a0"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"ace8c524436f0132a4eb4485f34f6823fbd06be8","unresolved":false,"context_lines":[{"line_number":107,"context_line":"                          self.server_id)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        self.client.delete_image(image[\u0027id\u0027])"},{"line_number":110,"context_line":"        self.images.remove(image[\u0027id\u0027])"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027])"},{"line_number":113,"context_line":"    @decorators.idempotent_id(\u0027084f0cbc-500a-4963-8a4e-312905862581\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a30ddce_39a78e50","line":110,"in_reply_to":"9a30ddce_9d508660","updated":"2017-03-09 01:34:03.000000000","message":"Thanks, in create_image_from_server already exists cleanup of the first image","commit_id":"2b39d2f97548237593f0262115bd8afbd65851a0"},{"author":{"_account_id":24903,"name":"Hongtao Zhang","email":"changhungtao@126.com","username":"ZhangHongtao"},"change_message_id":"c38e1f25a658339cf5dfcac9f07462a5003d375f","unresolved":false,"context_lines":[{"line_number":107,"context_line":"                          self.server_id)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        self.client.delete_image(image[\u0027id\u0027])"},{"line_number":110,"context_line":"        self.images.remove(image[\u0027id\u0027])"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027])"},{"line_number":113,"context_line":"    @decorators.idempotent_id(\u0027084f0cbc-500a-4963-8a4e-312905862581\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a30ddce_9d508660","line":110,"in_reply_to":"9a30ddce_ac6e0294","updated":"2017-03-08 09:39:19.000000000","message":"I think when the second snapshot created failed at LINE 106, the first image will be remain, and it will happen certainly in this nagative case.","commit_id":"2b39d2f97548237593f0262115bd8afbd65851a0"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"ace8c524436f0132a4eb4485f34f6823fbd06be8","unresolved":false,"context_lines":[{"line_number":107,"context_line":"                          self.server_id)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        self.client.delete_image(image[\u0027id\u0027])"},{"line_number":110,"context_line":"        self.images.remove(image[\u0027id\u0027])"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027])"},{"line_number":113,"context_line":"    @decorators.idempotent_id(\u0027084f0cbc-500a-4963-8a4e-312905862581\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a30ddce_19956add","line":110,"in_reply_to":"9a30ddce_ac6e0294","updated":"2017-03-09 01:34:03.000000000","message":"Thanks Masayuki, \nIn create_image_from_server, there is already cleanup of image.\nThese two lines are here because gmann says \n   \"i prefer to delete the first image and remove from cls.images\n    Now we are leaving image to be cleaned at class level which is unnecessary.\"","commit_id":"2b39d2f97548237593f0262115bd8afbd65851a0"},{"author":{"_account_id":24903,"name":"Hongtao Zhang","email":"changhungtao@126.com","username":"ZhangHongtao"},"change_message_id":"7ab2699c420cdaeb1d798391608d5d14d70a3078","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        image_id \u003d data_utils.parse_image_id(image.response[\u0027location\u0027])"},{"line_number":110,"context_line":"        self.client.delete_image(image_id)"},{"line_number":111,"context_line":"        self.images.remove(image_id)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027])"},{"line_number":114,"context_line":"    @decorators.idempotent_id(\u0027084f0cbc-500a-4963-8a4e-312905862581\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a30ddce_6c7dc16d","line":111,"range":{"start_line":111,"start_character":8,"end_line":111,"end_character":36},"updated":"2017-03-09 06:04:17.000000000","message":"I am confused that where is the cleanup of the first image, I did not find the exact location in the create_image_from_server function, is it in clear_images function?","commit_id":"dd38e7d454917a8d8415141639e81308268876fc"},{"author":{"_account_id":24903,"name":"Hongtao Zhang","email":"changhungtao@126.com","username":"ZhangHongtao"},"change_message_id":"ee8941faf058914dbf5d69a8f1e2b5fd98a177cf","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        image_id \u003d data_utils.parse_image_id(image.response[\u0027location\u0027])"},{"line_number":110,"context_line":"        self.client.delete_image(image_id)"},{"line_number":111,"context_line":"        self.images.remove(image_id)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027])"},{"line_number":114,"context_line":"    @decorators.idempotent_id(\u0027084f0cbc-500a-4963-8a4e-312905862581\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a30ddce_ac21794f","line":111,"range":{"start_line":111,"start_character":8,"end_line":111,"end_character":36},"in_reply_to":"9a30ddce_6c5941fe","updated":"2017-03-09 06:13:27.000000000","message":"But you have removed \u0027image_id\u0027 from \u0027images\u0027 at this LINE?","commit_id":"dd38e7d454917a8d8415141639e81308268876fc"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"cded48ebe2827af60ec73b7dd439080d750b49d8","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        image_id \u003d data_utils.parse_image_id(image.response[\u0027location\u0027])"},{"line_number":110,"context_line":"        self.client.delete_image(image_id)"},{"line_number":111,"context_line":"        self.images.remove(image_id)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027])"},{"line_number":114,"context_line":"    @decorators.idempotent_id(\u0027084f0cbc-500a-4963-8a4e-312905862581\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a30ddce_6c5941fe","line":111,"range":{"start_line":111,"start_character":8,"end_line":111,"end_character":36},"in_reply_to":"9a30ddce_6c7dc16d","updated":"2017-03-09 06:10:39.000000000","message":"in create_image_from_server we have cls.images.append(image_id),\nand then in resource_cleanup we have cls.clear_images()","commit_id":"dd38e7d454917a8d8415141639e81308268876fc"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"b798b1471a9d62aa8d01cbe3d7913e7034f4acfd","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        image_id \u003d data_utils.parse_image_id(image.response[\u0027location\u0027])"},{"line_number":110,"context_line":"        self.client.delete_image(image_id)"},{"line_number":111,"context_line":"        self.images.remove(image_id)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027])"},{"line_number":114,"context_line":"    @decorators.idempotent_id(\u0027084f0cbc-500a-4963-8a4e-312905862581\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a30ddce_ccc6ad48","line":111,"range":{"start_line":111,"start_character":8,"end_line":111,"end_character":36},"in_reply_to":"9a30ddce_ac21794f","updated":"2017-03-09 06:22:23.000000000","message":"if the testcase can run to the step #L110, then for sure it no longer need to do the cleanup in resource_cleanup.\nAnd if the tesecase fails to run to the step #L110, then the first image will be deleted in resource_cleanup","commit_id":"dd38e7d454917a8d8415141639e81308268876fc"}]}
