)]}'
{"tempest/api/compute/images/test_images.py":[{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"9d7ef89949540cf6f4ed50d60cf7711e7a6b8e7e","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from tempest.api.compute import base"},{"line_number":19,"context_line":"from tempest import clients"},{"line_number":20,"context_line":"from tempest.common.utils import data_utils"},{"line_number":21,"context_line":"from tempest.test import attr"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class ImagesTestJSON(base.BaseV2ComputeTest):"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAATn%2F9rNs%3D","line":21,"updated":"2013-12-08 15:18:46.000000000","message":"from tempest import test\nwe should import module","commit_id":"1b6ff6136ad019315e6de457c27fbd09619bc9d4"},{"author":{"_account_id":8336,"name":"QianLin","email":"lin.qian@huawei.com","username":"qianlin"},"change_message_id":"bee9b82511fd43989dd4765b6eef99ac1631043d","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from tempest.api.compute import base"},{"line_number":19,"context_line":"from tempest import clients"},{"line_number":20,"context_line":"from tempest.common.utils import data_utils"},{"line_number":21,"context_line":"from tempest.test import attr"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class ImagesTestJSON(base.BaseV2ComputeTest):"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAATn%2F9obw%3D","line":21,"in_reply_to":"AAAATn%2F9rNs%3D","updated":"2013-12-09 14:40:47.000000000","message":"Thank you.I can\u0027t understand it,I have saw your patch() and the others, all of them are as same as this.Could you please tell me why,Such as link of IRC meeting or wiki?","commit_id":"1b6ff6136ad019315e6de457c27fbd09619bc9d4"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"39217e42aebb1c1af950e6ee4e764f471ccd1dcc","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.delete_image, \u0027\u0027)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":152,"context_line":"    def test_delete_image_non_hex_string_id(self):"},{"line_number":153,"context_line":"        # Return an error while trying to delete an image with non hex id"},{"line_number":154,"context_line":"        image_id \u003d \u002711a22b9-120q-5555-cc11-00ab112223gj\u0027"},{"line_number":155,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.delete_image,"}],"source_content_type":"text/x-python","patch_set":23,"id":"AAAATn%2F8piY%3D","side":"PARENT","line":152,"updated":"2013-12-23 18:16:21.000000000","message":"This test must have been added since this patch was originally submitted since it is not present in the new negative test file.","commit_id":"dee1743ca6d6c1688ef924bb9beab9b52eb455a9"},{"author":{"_account_id":8336,"name":"QianLin","email":"lin.qian@huawei.com","username":"qianlin"},"change_message_id":"636b0ebd2842f2c03e51c12e9d919c4886a42358","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.delete_image, \u0027\u0027)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":152,"context_line":"    def test_delete_image_non_hex_string_id(self):"},{"line_number":153,"context_line":"        # Return an error while trying to delete an image with non hex id"},{"line_number":154,"context_line":"        image_id \u003d \u002711a22b9-120q-5555-cc11-00ab112223gj\u0027"},{"line_number":155,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.delete_image,"}],"source_content_type":"text/x-python","patch_set":23,"id":"AAAATn%2F8oZw%3D","side":"PARENT","line":152,"in_reply_to":"AAAATn%2F8piY%3D","updated":"2013-12-24 01:29:16.000000000","message":"Thank you,David.You are very carefully.According to Ken\u0027ichi\u0027s advices,I have re-thinked  these negative tests.And I think this test is not necessary.Because the image_id is generated with this (image_id \u003d uuidutils.generate_uuid()).And I have not found any doc for that image_id should be hex string.","commit_id":"dee1743ca6d6c1688ef924bb9beab9b52eb455a9"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"72ac2df07552f977850ce01d9df18b3c0692d7cf","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.delete_image, \u0027\u0027)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":152,"context_line":"    def test_delete_image_non_hex_string_id(self):"},{"line_number":153,"context_line":"        # Return an error while trying to delete an image with non hex id"},{"line_number":154,"context_line":"        image_id \u003d \u002711a22b9-120q-5555-cc11-00ab112223gj\u0027"},{"line_number":155,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.delete_image,"}],"source_content_type":"text/x-python","patch_set":23,"id":"AAAAT3%2F%2Fseg%3D","side":"PARENT","line":152,"in_reply_to":"AAAATn%2F8piY%3D","updated":"2014-01-03 10:14:42.000000000","message":"image_id \u003d \u002711a22b9-120q-5555-cc11-00ab112223gj\u0027\nthis test is for testing non-hex string uuid.\nBut,the lenth of it incorrect(7-4-4-4-12,should be 8-4-4-4-12).\nAnd also,I agree with qian,this is not necessary.the image uuid is generated in codes.","commit_id":"dee1743ca6d6c1688ef924bb9beab9b52eb455a9"}],"tempest/api/compute/images/test_images_negative.py":[{"author":{"_account_id":8286,"name":"zhangyanzi","email":"yanzi.zhang@samsung.com","username":"zhangyanzi"},"change_message_id":"2dbf2a2830db6813376796722117c002efa2cd21","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from tempest.api.compute import base"},{"line_number":20,"context_line":"from tempest import clients"},{"line_number":21,"context_line":"from tempest.common.utils.data_utils import parse_image_id"},{"line_number":22,"context_line":"from tempest.common.utils.data_utils import rand_name"},{"line_number":23,"context_line":"from tempest import exceptions"},{"line_number":24,"context_line":"from tempest.test import attr"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FaBM%3D","line":22,"updated":"2013-11-07 03:01:20.000000000","message":"when adding a new test file, is it better to change here to\n from tempest.common.utils import data_utils?\nthe same to from tempest.common.utils.data_utils import parse_image_id.","commit_id":"edaaa1da5e27546bbf27616dd93242a77bcb22c7"},{"author":{"_account_id":8336,"name":"QianLin","email":"lin.qian@huawei.com","username":"qianlin"},"change_message_id":"ed46dff9233d14fe7f558e75430c637a384ebca1","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from tempest.api.compute import base"},{"line_number":20,"context_line":"from tempest import clients"},{"line_number":21,"context_line":"from tempest.common.utils.data_utils import parse_image_id"},{"line_number":22,"context_line":"from tempest.common.utils.data_utils import rand_name"},{"line_number":23,"context_line":"from tempest import exceptions"},{"line_number":24,"context_line":"from tempest.test import attr"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FY8A%3D","line":22,"in_reply_to":"AAAATn%2F%2FaBM%3D","updated":"2013-11-07 13:27:55.000000000","message":"Thanks,I\u0027ll fix it.","commit_id":"edaaa1da5e27546bbf27616dd93242a77bcb22c7"},{"author":{"_account_id":8282,"name":"Dong Liu","email":"willowd878@gmail.com","username":"liudong"},"change_message_id":"1972f68401ef66c3cae9d1b87353b79ffc69f9fe","unresolved":false,"context_lines":[{"line_number":142,"context_line":"    def test_delete_non_existent_image(self):"},{"line_number":143,"context_line":"        # Return an error while trying to delete a non-existent image"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        non_existent_image_id \u003d \u002711a22b9-12a9-5555-cc11-00ab112223fa\u0027"},{"line_number":146,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.delete_image,"},{"line_number":147,"context_line":"                          non_existent_image_id)"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FaB8%3D","line":145,"updated":"2013-11-07 03:10:42.000000000","message":"I think you\u0027d better use uuid.uuid4()","commit_id":"edaaa1da5e27546bbf27616dd93242a77bcb22c7"},{"author":{"_account_id":8336,"name":"QianLin","email":"lin.qian@huawei.com","username":"qianlin"},"change_message_id":"ed46dff9233d14fe7f558e75430c637a384ebca1","unresolved":false,"context_lines":[{"line_number":142,"context_line":"    def test_delete_non_existent_image(self):"},{"line_number":143,"context_line":"        # Return an error while trying to delete a non-existent image"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        non_existent_image_id \u003d \u002711a22b9-12a9-5555-cc11-00ab112223fa\u0027"},{"line_number":146,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.delete_image,"},{"line_number":147,"context_line":"                          non_existent_image_id)"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FY78%3D","line":145,"in_reply_to":"AAAATn%2F%2FaB8%3D","updated":"2013-11-07 13:27:55.000000000","message":"Yes,I\u0027ll fix it.","commit_id":"edaaa1da5e27546bbf27616dd93242a77bcb22c7"},{"author":{"_account_id":8282,"name":"Dong Liu","email":"willowd878@gmail.com","username":"liudong"},"change_message_id":"1972f68401ef66c3cae9d1b87353b79ffc69f9fe","unresolved":false,"context_lines":[{"line_number":154,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":155,"context_line":"    def test_delete_image_non_hex_string_id(self):"},{"line_number":156,"context_line":"        # Return an error while trying to delete an image with non hex id"},{"line_number":157,"context_line":"        image_id \u003d \u002711a22b9-120q-5555-cc11-00ab112223gj\u0027"},{"line_number":158,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.delete_image,"},{"line_number":159,"context_line":"                          image_id)"},{"line_number":160,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FaB4%3D","line":157,"updated":"2013-11-07 03:10:42.000000000","message":"the same","commit_id":"edaaa1da5e27546bbf27616dd93242a77bcb22c7"},{"author":{"_account_id":8336,"name":"QianLin","email":"lin.qian@huawei.com","username":"qianlin"},"change_message_id":"ed46dff9233d14fe7f558e75430c637a384ebca1","unresolved":false,"context_lines":[{"line_number":154,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":155,"context_line":"    def test_delete_image_non_hex_string_id(self):"},{"line_number":156,"context_line":"        # Return an error while trying to delete an image with non hex id"},{"line_number":157,"context_line":"        image_id \u003d \u002711a22b9-120q-5555-cc11-00ab112223gj\u0027"},{"line_number":158,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.delete_image,"},{"line_number":159,"context_line":"                          image_id)"},{"line_number":160,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FY7s%3D","line":157,"in_reply_to":"AAAATn%2F%2FaB4%3D","updated":"2013-11-07 13:27:55.000000000","message":"uuid is hex id,so here can\u0027t use uuid,am I right?","commit_id":"edaaa1da5e27546bbf27616dd93242a77bcb22c7"},{"author":{"_account_id":8282,"name":"Dong Liu","email":"willowd878@gmail.com","username":"liudong"},"change_message_id":"1972f68401ef66c3cae9d1b87353b79ffc69f9fe","unresolved":false,"context_lines":[{"line_number":167,"context_line":"    def test_delete_image_id_is_over_35_character_limit(self):"},{"line_number":168,"context_line":"        # Return an error while trying to delete image with id over limit"},{"line_number":169,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.delete_image,"},{"line_number":170,"context_line":"                          \u002711a22b9-12a9-5555-cc11-00ab112223fa-3fac\u0027)"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"class ImagesNegativeTestXML(ImagesNegativeTestJSON):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FaBg%3D","line":170,"updated":"2013-11-07 03:10:42.000000000","message":"I think \u0027a\u0027 * 35 is better.","commit_id":"edaaa1da5e27546bbf27616dd93242a77bcb22c7"},{"author":{"_account_id":8336,"name":"QianLin","email":"lin.qian@huawei.com","username":"qianlin"},"change_message_id":"ed46dff9233d14fe7f558e75430c637a384ebca1","unresolved":false,"context_lines":[{"line_number":167,"context_line":"    def test_delete_image_id_is_over_35_character_limit(self):"},{"line_number":168,"context_line":"        # Return an error while trying to delete image with id over limit"},{"line_number":169,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.delete_image,"},{"line_number":170,"context_line":"                          \u002711a22b9-12a9-5555-cc11-00ab112223fa-3fac\u0027)"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"class ImagesNegativeTestXML(ImagesNegativeTestJSON):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FY64%3D","line":170,"in_reply_to":"AAAATn%2F%2FaBg%3D","updated":"2013-11-07 13:27:55.000000000","message":"Yes,it\u0027s more readable.","commit_id":"edaaa1da5e27546bbf27616dd93242a77bcb22c7"},{"author":{"_account_id":8641,"name":"DennyZhang","email":"filebat.mark@gmail.com","username":"dennyzhang"},"change_message_id":"288647798f8a4032983e3a7eff7c4206912a51e8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2013 Huawei Technologies Co.,LTD."},{"line_number":4,"context_line":"# All Rights Reserved."},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FVVI%3D","line":3,"updated":"2013-11-10 00:06:19.000000000","message":"Add an extra line above:  Copyright 2012 OpenStack Foundation","commit_id":"ea66855090fa3ee73752d4ffdff2736896227c21"},{"author":{"_account_id":8336,"name":"QianLin","email":"lin.qian@huawei.com","username":"qianlin"},"change_message_id":"192356ac9c93c1c37133ae394f862977abbf3ff0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# vim: tabstop\u003d4 shiftwidth\u003d4 softtabstop\u003d4"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2013 Huawei Technologies Co.,LTD."},{"line_number":4,"context_line":"# All Rights Reserved."},{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FVNw%3D","line":3,"in_reply_to":"AAAATn%2F%2FVVI%3D","updated":"2013-11-10 07:24:12.000000000","message":"OK,I\u0027ll fix it.Thank you.","commit_id":"ea66855090fa3ee73752d4ffdff2736896227c21"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"138cbecd83a11ad8d41436933ef452006b3e8a8e","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        name \u003d data_utils.rand_name(\u0027image\u0027)"},{"line_number":78,"context_line":"        meta \u003d {\u0027image_type\u0027: \u0027test\u0027}"},{"line_number":79,"context_line":"        self.assertRaises(exceptions.NotFound,"},{"line_number":80,"context_line":"                          self.__create_image__,"},{"line_number":81,"context_line":"                          server[\u0027id\u0027], name, meta)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FYNU%3D","line":80,"updated":"2013-11-07 21:15:08.000000000","message":"Why don\u0027t you call self.client.create_image() directly here?\nMy concern is that we cannot distinguish the exception point in this test.\n\nIn addition, the code would be readable if calling self.client.create_image() directly.","commit_id":"ea66855090fa3ee73752d4ffdff2736896227c21"},{"author":{"_account_id":8336,"name":"QianLin","email":"lin.qian@huawei.com","username":"qianlin"},"change_message_id":"192356ac9c93c1c37133ae394f862977abbf3ff0","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        name \u003d data_utils.rand_name(\u0027image\u0027)"},{"line_number":78,"context_line":"        meta \u003d {\u0027image_type\u0027: \u0027test\u0027}"},{"line_number":79,"context_line":"        self.assertRaises(exceptions.NotFound,"},{"line_number":80,"context_line":"                          self.__create_image__,"},{"line_number":81,"context_line":"                          server[\u0027id\u0027], name, meta)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FVNs%3D","line":80,"in_reply_to":"AAAATn%2F%2FYNU%3D","updated":"2013-11-10 07:24:12.000000000","message":"Yes,I agree with you,I\u0027ll fix it.","commit_id":"ea66855090fa3ee73752d4ffdff2736896227c21"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"138cbecd83a11ad8d41436933ef452006b3e8a8e","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        resp \u003d {}"},{"line_number":90,"context_line":"        resp[\u0027status\u0027] \u003d None"},{"line_number":91,"context_line":"        self.assertRaises(exceptions.NotFound, self.__create_image__,"},{"line_number":92,"context_line":"                          \u0027!@#$%^\u0026*()\u0027, name, meta)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":95,"context_line":"    def test_create_image_from_stopped_server(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FYMc%3D","line":92,"updated":"2013-11-07 21:15:08.000000000","message":"I\u0027m not sure this test case is necessary.\nThis test seems the same as the above test_create_image_from_deleted_server(), because of NotFound negative test.\n\nIf the \u0027!@#$%^\u0026*()\u0027 is passed as a not-allowed string parameter, the exception should be BadRequest.\n\nI know this test exists already before this patch set, but this is a good chance for re-considering this test value.","commit_id":"ea66855090fa3ee73752d4ffdff2736896227c21"},{"author":{"_account_id":8336,"name":"QianLin","email":"lin.qian@huawei.com","username":"qianlin"},"change_message_id":"192356ac9c93c1c37133ae394f862977abbf3ff0","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        resp \u003d {}"},{"line_number":90,"context_line":"        resp[\u0027status\u0027] \u003d None"},{"line_number":91,"context_line":"        self.assertRaises(exceptions.NotFound, self.__create_image__,"},{"line_number":92,"context_line":"                          \u0027!@#$%^\u0026*()\u0027, name, meta)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":95,"context_line":"    def test_create_image_from_stopped_server(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FVNI%3D","line":92,"in_reply_to":"AAAATn%2F%2FYMc%3D","updated":"2013-11-10 07:24:12.000000000","message":"I think this test case  to verify the legitimacy of “server id”.But I\u0027m not suer it is necessary in here,maybe in UT is better.","commit_id":"ea66855090fa3ee73752d4ffdff2736896227c21"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"138cbecd83a11ad8d41436933ef452006b3e8a8e","unresolved":false,"context_lines":[{"line_number":92,"context_line":"                          \u0027!@#$%^\u0026*()\u0027, name, meta)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":95,"context_line":"    def test_create_image_from_stopped_server(self):"},{"line_number":96,"context_line":"        resp, server \u003d self.create_server(wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":97,"context_line":"        self.servers_client.stop(server[\u0027id\u0027])"},{"line_number":98,"context_line":"        self.servers_client.wait_for_server_status(server[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FYMU%3D","line":95,"updated":"2013-11-07 21:15:08.000000000","message":"This test seems a positive test, because any exceptions don\u0027t happen.","commit_id":"ea66855090fa3ee73752d4ffdff2736896227c21"},{"author":{"_account_id":8336,"name":"QianLin","email":"lin.qian@huawei.com","username":"qianlin"},"change_message_id":"192356ac9c93c1c37133ae394f862977abbf3ff0","unresolved":false,"context_lines":[{"line_number":92,"context_line":"                          \u0027!@#$%^\u0026*()\u0027, name, meta)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":95,"context_line":"    def test_create_image_from_stopped_server(self):"},{"line_number":96,"context_line":"        resp, server \u003d self.create_server(wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":97,"context_line":"        self.servers_client.stop(server[\u0027id\u0027])"},{"line_number":98,"context_line":"        self.servers_client.wait_for_server_status(server[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FVNE%3D","line":95,"in_reply_to":"AAAATn%2F%2FYMU%3D","updated":"2013-11-10 07:24:12.000000000","message":"Yes,it is a \"gate\" case.I\u0027ll fix it.","commit_id":"ea66855090fa3ee73752d4ffdff2736896227c21"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"138cbecd83a11ad8d41436933ef452006b3e8a8e","unresolved":false,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":121,"context_line":"    def test_create_image_specify_uuid_35_characters_or_less(self):"},{"line_number":122,"context_line":"        # Return an error if Image ID passed is 35 characters or less"},{"line_number":123,"context_line":"        snapshot_name \u003d data_utils.rand_name(\u0027test-snap-\u0027)"},{"line_number":124,"context_line":"        test_uuid \u003d (\u0027a\u0027 * 35)"},{"line_number":125,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.create_image,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FYLk%3D","line":122,"updated":"2013-11-07 21:15:08.000000000","message":"I feel it is better to re-consider this test also because of the same reason as the previous comment.","commit_id":"ea66855090fa3ee73752d4ffdff2736896227c21"},{"author":{"_account_id":8336,"name":"QianLin","email":"lin.qian@huawei.com","username":"qianlin"},"change_message_id":"192356ac9c93c1c37133ae394f862977abbf3ff0","unresolved":false,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":121,"context_line":"    def test_create_image_specify_uuid_35_characters_or_less(self):"},{"line_number":122,"context_line":"        # Return an error if Image ID passed is 35 characters or less"},{"line_number":123,"context_line":"        snapshot_name \u003d data_utils.rand_name(\u0027test-snap-\u0027)"},{"line_number":124,"context_line":"        test_uuid \u003d (\u0027a\u0027 * 35)"},{"line_number":125,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.create_image,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FVMQ%3D","line":122,"in_reply_to":"AAAATn%2F%2FYLk%3D","updated":"2013-11-10 07:24:12.000000000","message":"Yes, as Rochelle Grober said,we need to wait until  the definition of \"negative tests\".","commit_id":"ea66855090fa3ee73752d4ffdff2736896227c21"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"138cbecd83a11ad8d41436933ef452006b3e8a8e","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":129,"context_line":"    def test_create_image_specify_uuid_37_characters_or_more(self):"},{"line_number":130,"context_line":"        # Return an error if Image ID passed is 37 characters or more"},{"line_number":131,"context_line":"        snapshot_name \u003d data_utils.rand_name(\u0027test-snap-\u0027)"},{"line_number":132,"context_line":"        test_uuid \u003d (\u0027a\u0027 * 37)"},{"line_number":133,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.create_image,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FYKI%3D","line":130,"updated":"2013-11-07 21:15:08.000000000","message":"ditto","commit_id":"ea66855090fa3ee73752d4ffdff2736896227c21"},{"author":{"_account_id":8336,"name":"QianLin","email":"lin.qian@huawei.com","username":"qianlin"},"change_message_id":"192356ac9c93c1c37133ae394f862977abbf3ff0","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":129,"context_line":"    def test_create_image_specify_uuid_37_characters_or_more(self):"},{"line_number":130,"context_line":"        # Return an error if Image ID passed is 37 characters or more"},{"line_number":131,"context_line":"        snapshot_name \u003d data_utils.rand_name(\u0027test-snap-\u0027)"},{"line_number":132,"context_line":"        test_uuid \u003d (\u0027a\u0027 * 37)"},{"line_number":133,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.create_image,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FVMM%3D","line":130,"in_reply_to":"AAAATn%2F%2FYKI%3D","updated":"2013-11-10 07:24:12.000000000","message":"Done","commit_id":"ea66855090fa3ee73752d4ffdff2736896227c21"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"138cbecd83a11ad8d41436933ef452006b3e8a8e","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":137,"context_line":"    def test_delete_image_with_invalid_image_id(self):"},{"line_number":138,"context_line":"        # An image should not be deleted with invalid image id"},{"line_number":139,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.delete_image,"},{"line_number":140,"context_line":"                          \u0027!@$%^\u0026*()\u0027)"},{"line_number":141,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FYKE%3D","line":138,"updated":"2013-11-07 21:15:08.000000000","message":"ditto","commit_id":"ea66855090fa3ee73752d4ffdff2736896227c21"},{"author":{"_account_id":8336,"name":"QianLin","email":"lin.qian@huawei.com","username":"qianlin"},"change_message_id":"192356ac9c93c1c37133ae394f862977abbf3ff0","unresolved":false,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":137,"context_line":"    def test_delete_image_with_invalid_image_id(self):"},{"line_number":138,"context_line":"        # An image should not be deleted with invalid image id"},{"line_number":139,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.delete_image,"},{"line_number":140,"context_line":"                          \u0027!@$%^\u0026*()\u0027)"},{"line_number":141,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FVMI%3D","line":138,"in_reply_to":"AAAATn%2F%2FYKE%3D","updated":"2013-11-10 07:24:12.000000000","message":"Done","commit_id":"ea66855090fa3ee73752d4ffdff2736896227c21"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"138cbecd83a11ad8d41436933ef452006b3e8a8e","unresolved":false,"context_lines":[{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":151,"context_line":"    def test_delete_image_blank_id(self):"},{"line_number":152,"context_line":"        # Return an error while trying to delete an image with blank Id"},{"line_number":153,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.delete_image, \u0027\u0027)"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FYKA%3D","line":152,"updated":"2013-11-07 21:15:08.000000000","message":"ditto","commit_id":"ea66855090fa3ee73752d4ffdff2736896227c21"},{"author":{"_account_id":8336,"name":"QianLin","email":"lin.qian@huawei.com","username":"qianlin"},"change_message_id":"192356ac9c93c1c37133ae394f862977abbf3ff0","unresolved":false,"context_lines":[{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":151,"context_line":"    def test_delete_image_blank_id(self):"},{"line_number":152,"context_line":"        # Return an error while trying to delete an image with blank Id"},{"line_number":153,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.delete_image, \u0027\u0027)"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FVME%3D","line":152,"in_reply_to":"AAAATn%2F%2FYKA%3D","updated":"2013-11-10 07:24:12.000000000","message":"Done","commit_id":"ea66855090fa3ee73752d4ffdff2736896227c21"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"138cbecd83a11ad8d41436933ef452006b3e8a8e","unresolved":false,"context_lines":[{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":156,"context_line":"    def test_delete_image_non_hex_string_id(self):"},{"line_number":157,"context_line":"        # Return an error while trying to delete an image with non hex id"},{"line_number":158,"context_line":"        image_id \u003d \u002711a22b9-120q-5555-cc11-00ab112223gj\u0027"},{"line_number":159,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.delete_image,"},{"line_number":160,"context_line":"                          image_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FYJ4%3D","line":157,"updated":"2013-11-07 21:15:08.000000000","message":"ditto","commit_id":"ea66855090fa3ee73752d4ffdff2736896227c21"},{"author":{"_account_id":8336,"name":"QianLin","email":"lin.qian@huawei.com","username":"qianlin"},"change_message_id":"192356ac9c93c1c37133ae394f862977abbf3ff0","unresolved":false,"context_lines":[{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":156,"context_line":"    def test_delete_image_non_hex_string_id(self):"},{"line_number":157,"context_line":"        # Return an error while trying to delete an image with non hex id"},{"line_number":158,"context_line":"        image_id \u003d \u002711a22b9-120q-5555-cc11-00ab112223gj\u0027"},{"line_number":159,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.delete_image,"},{"line_number":160,"context_line":"                          image_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FVMA%3D","line":157,"in_reply_to":"AAAATn%2F%2FYJ4%3D","updated":"2013-11-10 07:24:12.000000000","message":"Done","commit_id":"ea66855090fa3ee73752d4ffdff2736896227c21"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"138cbecd83a11ad8d41436933ef452006b3e8a8e","unresolved":false,"context_lines":[{"line_number":160,"context_line":"                          image_id)"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":163,"context_line":"    def test_delete_image_negative_image_id(self):"},{"line_number":164,"context_line":"        # Return an error while trying to delete an image with negative id"},{"line_number":165,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.delete_image, -1)"},{"line_number":166,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FYJw%3D","line":163,"updated":"2013-11-07 21:15:08.000000000","message":"ditto","commit_id":"ea66855090fa3ee73752d4ffdff2736896227c21"},{"author":{"_account_id":8336,"name":"QianLin","email":"lin.qian@huawei.com","username":"qianlin"},"change_message_id":"192356ac9c93c1c37133ae394f862977abbf3ff0","unresolved":false,"context_lines":[{"line_number":160,"context_line":"                          image_id)"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":163,"context_line":"    def test_delete_image_negative_image_id(self):"},{"line_number":164,"context_line":"        # Return an error while trying to delete an image with negative id"},{"line_number":165,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.delete_image, -1)"},{"line_number":166,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FVL8%3D","line":163,"in_reply_to":"AAAATn%2F%2FYJw%3D","updated":"2013-11-10 07:24:12.000000000","message":"Done","commit_id":"ea66855090fa3ee73752d4ffdff2736896227c21"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"138cbecd83a11ad8d41436933ef452006b3e8a8e","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.delete_image, -1)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":168,"context_line":"    def test_delete_image_id_is_over_36_character_limit(self):"},{"line_number":169,"context_line":"        # Return an error while trying to delete image with id over limit"},{"line_number":170,"context_line":"        overlimit_imageid \u003d (\u0027a\u0027 * 40)"},{"line_number":171,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.delete_image,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FYJo%3D","line":168,"updated":"2013-11-07 21:15:08.000000000","message":"ditto","commit_id":"ea66855090fa3ee73752d4ffdff2736896227c21"},{"author":{"_account_id":8336,"name":"QianLin","email":"lin.qian@huawei.com","username":"qianlin"},"change_message_id":"192356ac9c93c1c37133ae394f862977abbf3ff0","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.delete_image, -1)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":168,"context_line":"    def test_delete_image_id_is_over_36_character_limit(self):"},{"line_number":169,"context_line":"        # Return an error while trying to delete image with id over limit"},{"line_number":170,"context_line":"        overlimit_imageid \u003d (\u0027a\u0027 * 40)"},{"line_number":171,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.delete_image,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FVL4%3D","line":168,"in_reply_to":"AAAATn%2F%2FYJo%3D","updated":"2013-11-10 07:24:12.000000000","message":"Done","commit_id":"ea66855090fa3ee73752d4ffdff2736896227c21"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"3dc96f47bcc4a4ee3458b32d4da0adb1cf3ed985","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":63,"context_line":"    def test_create_image_from_deleted_server(self):"},{"line_number":64,"context_line":"        # An image should not be created if the server instance is removed"},{"line_number":65,"context_line":"        resp, server \u003d self.create_server(wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        # Delete server before trying to create server"},{"line_number":68,"context_line":"        self.servers_client.delete_server(server[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2BzOE%3D","line":65,"updated":"2013-11-20 00:54:17.000000000","message":"Please check original test_create_image_from_deleted_server.\nThat is create_test_server(), not create_server().","commit_id":"0e8697146826a84628e3e0dcb1fd8719ccae8337"},{"author":{"_account_id":8336,"name":"QianLin","email":"lin.qian@huawei.com","username":"qianlin"},"change_message_id":"c7d74ec8b3069f504638b533b4a769b3add60c0e","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":63,"context_line":"    def test_create_image_from_deleted_server(self):"},{"line_number":64,"context_line":"        # An image should not be created if the server instance is removed"},{"line_number":65,"context_line":"        resp, server \u003d self.create_server(wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        # Delete server before trying to create server"},{"line_number":68,"context_line":"        self.servers_client.delete_server(server[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2BzM4%3D","line":65,"in_reply_to":"AAAATn%2F%2BzOE%3D","updated":"2013-11-20 01:15:33.000000000","message":"Yes,I am sorry.This has been update at Oct 23.I\u0027ll fix it next patch and thank you.","commit_id":"0e8697146826a84628e3e0dcb1fd8719ccae8337"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"3dc96f47bcc4a4ee3458b32d4da0adb1cf3ed985","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":88,"context_line":"    def test_create_image_from_rescued_server(self):"},{"line_number":89,"context_line":"        resp, server \u003d self.create_server(wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":90,"context_line":"        self.servers_client.rescue_server(server[\u0027id\u0027],"},{"line_number":91,"context_line":"                                          adminPass\u003dNone)"},{"line_number":92,"context_line":"        self.servers_client.wait_for_server_status(server[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2BzN8%3D","line":89,"updated":"2013-11-20 00:54:17.000000000","message":"ditto","commit_id":"0e8697146826a84628e3e0dcb1fd8719ccae8337"},{"author":{"_account_id":8625,"name":"Anju Tiwari","username":"Anju5","inactive":true},"change_message_id":"89d963e67732a7c3572b3ff424e8159616289b3a","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":78,"context_line":"    def test_create_image_from_invalid_server(self):"},{"line_number":79,"context_line":"        # An image should not be created with invalid server id"},{"line_number":80,"context_line":"        # Create a new image with invalid server id"},{"line_number":81,"context_line":"        name \u003d data_utils.rand_name(\u0027image\u0027)"},{"line_number":82,"context_line":"        meta \u003d {\u0027image_type\u0027: \u0027test\u0027}"},{"line_number":83,"context_line":"        self.assertRaises(exceptions.BadRequest,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2Btu0%3D","line":80,"updated":"2013-11-21 06:50:59.000000000","message":"You can remove this second comment here.","commit_id":"78c40dbd6e0de08b353c45d56d15611b95c8a8cf"},{"author":{"_account_id":8336,"name":"QianLin","email":"lin.qian@huawei.com","username":"qianlin"},"change_message_id":"e9dd53c47778ba75a0b1f468e7ff0e2032d50eea","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":78,"context_line":"    def test_create_image_from_invalid_server(self):"},{"line_number":79,"context_line":"        # An image should not be created with invalid server id"},{"line_number":80,"context_line":"        # Create a new image with invalid server id"},{"line_number":81,"context_line":"        name \u003d data_utils.rand_name(\u0027image\u0027)"},{"line_number":82,"context_line":"        meta \u003d {\u0027image_type\u0027: \u0027test\u0027}"},{"line_number":83,"context_line":"        self.assertRaises(exceptions.BadRequest,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F%2BsG0%3D","line":80,"in_reply_to":"AAAATn%2F%2Btu0%3D","updated":"2013-11-21 14:30:11.000000000","message":"Thanks,I\u0027ll fix it next patch.","commit_id":"78c40dbd6e0de08b353c45d56d15611b95c8a8cf"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"e96da1057488025720882e123108bb430ef24261","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                cls.alt_manager \u003d clients.AltManager()"},{"line_number":54,"context_line":"            cls.alt_client \u003d cls.alt_manager.images_client"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    def tearDown(self):"},{"line_number":57,"context_line":"        \"\"\"Terminate test instances created after a test is executed.\"\"\""},{"line_number":58,"context_line":"        for image_id in self.image_ids:"},{"line_number":59,"context_line":"            self.client.delete_image(image_id)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATn%2F%2BH6o%3D","line":56,"updated":"2013-12-02 10:55:48.000000000","message":"I think it doesn\u0027t need tearDown in this test file","commit_id":"85a855f64712996f2e56a582d72da92a252244eb"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"440ef04d19ce1d913b104e30632bb889b0263384","unresolved":false,"context_lines":[{"line_number":37,"context_line":"            skip_msg \u003d (\"%s skipped as glance is not available\" % cls.__name__)"},{"line_number":38,"context_line":"            raise cls.skipException(skip_msg)"},{"line_number":39,"context_line":"        cls.client \u003d cls.images_client"},{"line_number":40,"context_line":"        cls.servers_client \u003d cls.servers_client"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        cls.image_ids \u003d []"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F96bY%3D","line":40,"updated":"2013-12-04 15:28:10.000000000","message":"Is this necessary?","commit_id":"31c61a921b2368ec8d7c80ee3d8aad3c5c11e97a"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"440ef04d19ce1d913b104e30632bb889b0263384","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        cls.client \u003d cls.images_client"},{"line_number":40,"context_line":"        cls.servers_client \u003d cls.servers_client"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        cls.image_ids \u003d []"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        if compute.MULTI_USER:"},{"line_number":45,"context_line":"            if cls.config.compute.allow_tenant_isolation:"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F96Zo%3D","line":42,"updated":"2013-12-04 15:28:10.000000000","message":"ditto, because this is unused.","commit_id":"31c61a921b2368ec8d7c80ee3d8aad3c5c11e97a"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"2561fb0b4fee157a67d73b73fea84447a2f7b79f","unresolved":false,"context_lines":[{"line_number":38,"context_line":"            raise cls.skipException(skip_msg)"},{"line_number":39,"context_line":"        cls.client \u003d cls.images_client"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        if compute.MULTI_USER:"},{"line_number":42,"context_line":"            if cls.config.compute.allow_tenant_isolation:"},{"line_number":43,"context_line":"                creds \u003d cls.isolated_creds.get_alt_creds()"},{"line_number":44,"context_line":"                username, tenant_name, password \u003d creds"}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAATn%2F9DIs%3D","line":41,"updated":"2013-12-17 09:56:52.000000000","message":"cls.multi_user","commit_id":"9cf77b2efd4be05907bc9dbdeddd74e5294d5663"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"003b978efb00ad5879c5491524d4c537441ed23f","unresolved":false,"context_lines":[{"line_number":81,"context_line":"                                          adminPass\u003dNone)"},{"line_number":82,"context_line":"        self.servers_client.wait_for_server_status(server[\u0027id\u0027],"},{"line_number":83,"context_line":"                                                   \u0027RESCUE\u0027)"},{"line_number":84,"context_line":"        self.addCleanup(self.servers_client.delete_server, server[\u0027id\u0027])"},{"line_number":85,"context_line":"        snapshot_name \u003d data_utils.rand_name(\u0027test-snap-\u0027)"},{"line_number":86,"context_line":"        self.assertRaises(exceptions.Conflict, self.client.create_image,"},{"line_number":87,"context_line":"                          server[\u0027id\u0027], snapshot_name)"}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAATn%2F85I8%3D","line":84,"updated":"2013-12-19 03:58:22.000000000","message":"ditto","commit_id":"300874d5adac20ea0fe4d68d1c351118591cd57c"}],"tempest/api/compute/v3/images/test_images.py":[{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"9d7ef89949540cf6f4ed50d60cf7711e7a6b8e7e","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from tempest.api.compute import base"},{"line_number":19,"context_line":"from tempest import clients"},{"line_number":20,"context_line":"from tempest.common.utils import data_utils"},{"line_number":21,"context_line":"from tempest.test import attr"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class ImagesV3TestJSON(base.BaseV3ComputeTest):"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAATn%2F9rNg%3D","line":21,"updated":"2013-12-08 15:18:46.000000000","message":"from tempest import test","commit_id":"1b6ff6136ad019315e6de457c27fbd09619bc9d4"},{"author":{"_account_id":8336,"name":"QianLin","email":"lin.qian@huawei.com","username":"qianlin"},"change_message_id":"bee9b82511fd43989dd4765b6eef99ac1631043d","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from tempest.api.compute import base"},{"line_number":19,"context_line":"from tempest import clients"},{"line_number":20,"context_line":"from tempest.common.utils import data_utils"},{"line_number":21,"context_line":"from tempest.test import attr"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class ImagesV3TestJSON(base.BaseV3ComputeTest):"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAATn%2F9obs%3D","line":21,"in_reply_to":"AAAATn%2F9rNg%3D","updated":"2013-12-09 14:40:47.000000000","message":"Done","commit_id":"1b6ff6136ad019315e6de457c27fbd09619bc9d4"}],"tempest/api/compute/v3/images/test_images_negative.py":[{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"9d7ef89949540cf6f4ed50d60cf7711e7a6b8e7e","unresolved":false,"context_lines":[{"line_number":107,"context_line":"                          test_uuid, snapshot_name)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":110,"context_line":"    def test_delete_non_existent_image(self):"},{"line_number":111,"context_line":"    # Return an error while trying to delete a non-existent image"},{"line_number":112,"context_line":"        non_existent_image_id \u003d str(uuid.uuid4())"},{"line_number":113,"context_line":"        self.assertRaises(exceptions.NotFound,"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAATn%2F9rNk%3D","line":110,"updated":"2013-12-08 15:18:46.000000000","message":"Because in nova v3 tests we use glance directly(no glance proxy in nova v3 api), it\u0027s just a glance testing. This test should be moved into glance testing. I guess it should be in tempest/api/image/v1/test_images_negative.py , please check it.","commit_id":"1b6ff6136ad019315e6de457c27fbd09619bc9d4"},{"author":{"_account_id":8336,"name":"QianLin","email":"lin.qian@huawei.com","username":"qianlin"},"change_message_id":"bee9b82511fd43989dd4765b6eef99ac1631043d","unresolved":false,"context_lines":[{"line_number":107,"context_line":"                          test_uuid, snapshot_name)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":110,"context_line":"    def test_delete_non_existent_image(self):"},{"line_number":111,"context_line":"    # Return an error while trying to delete a non-existent image"},{"line_number":112,"context_line":"        non_existent_image_id \u003d str(uuid.uuid4())"},{"line_number":113,"context_line":"        self.assertRaises(exceptions.NotFound,"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAATn%2F9oVY%3D","line":110,"in_reply_to":"AAAATn%2F9rNk%3D","updated":"2013-12-09 14:40:47.000000000","message":"Done","commit_id":"1b6ff6136ad019315e6de457c27fbd09619bc9d4"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"003b978efb00ad5879c5491524d4c537441ed23f","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from tempest import clients"},{"line_number":20,"context_line":"from tempest.common.utils import data_utils"},{"line_number":21,"context_line":"from tempest import exceptions"},{"line_number":22,"context_line":"from tempest.test import attr"},{"line_number":23,"context_line":"from tempest.test import skip_because"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAATn%2F85Iw%3D","line":22,"updated":"2013-12-19 03:58:22.000000000","message":"from tempest import test\n\nwe should import module","commit_id":"300874d5adac20ea0fe4d68d1c351118591cd57c"},{"author":{"_account_id":8336,"name":"QianLin","email":"lin.qian@huawei.com","username":"qianlin"},"change_message_id":"43bdef72be3f55d774a51fce4b9d4aa8a4ecb7ad","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from tempest import clients"},{"line_number":20,"context_line":"from tempest.common.utils import data_utils"},{"line_number":21,"context_line":"from tempest import exceptions"},{"line_number":22,"context_line":"from tempest.test import attr"},{"line_number":23,"context_line":"from tempest.test import skip_because"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAATn%2F85GI%3D","line":22,"in_reply_to":"AAAATn%2F85Iw%3D","updated":"2013-12-19 04:13:40.000000000","message":"Done","commit_id":"300874d5adac20ea0fe4d68d1c351118591cd57c"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"003b978efb00ad5879c5491524d4c537441ed23f","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from tempest.common.utils import data_utils"},{"line_number":21,"context_line":"from tempest import exceptions"},{"line_number":22,"context_line":"from tempest.test import attr"},{"line_number":23,"context_line":"from tempest.test import skip_because"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class ImagesNegativeV3TestJSON(base.BaseV3ComputeTest):"}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAATn%2F85Is%3D","line":23,"updated":"2013-12-19 03:58:22.000000000","message":"ditto","commit_id":"300874d5adac20ea0fe4d68d1c351118591cd57c"},{"author":{"_account_id":8336,"name":"QianLin","email":"lin.qian@huawei.com","username":"qianlin"},"change_message_id":"43bdef72be3f55d774a51fce4b9d4aa8a4ecb7ad","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from tempest.common.utils import data_utils"},{"line_number":21,"context_line":"from tempest import exceptions"},{"line_number":22,"context_line":"from tempest.test import attr"},{"line_number":23,"context_line":"from tempest.test import skip_because"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class ImagesNegativeV3TestJSON(base.BaseV3ComputeTest):"}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAATn%2F85GA%3D","line":23,"in_reply_to":"AAAATn%2F85Is%3D","updated":"2013-12-19 04:13:40.000000000","message":"Done","commit_id":"300874d5adac20ea0fe4d68d1c351118591cd57c"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"003b978efb00ad5879c5491524d4c537441ed23f","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        if not cls.config.service_available.glance:"},{"line_number":33,"context_line":"            skip_msg \u003d (\"%s skipped as glance is not available\" % cls.__name__)"},{"line_number":34,"context_line":"            raise cls.skipException(skip_msg)"},{"line_number":35,"context_line":"        cls.client \u003d cls.images_client"},{"line_number":36,"context_line":"        cls.servers_client \u003d cls.servers_client"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        if cls.multi_user:"}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAATn%2F85IY%3D","line":35,"updated":"2013-12-19 03:58:22.000000000","message":"unused? or I miss something?","commit_id":"300874d5adac20ea0fe4d68d1c351118591cd57c"},{"author":{"_account_id":8336,"name":"QianLin","email":"lin.qian@huawei.com","username":"qianlin"},"change_message_id":"43bdef72be3f55d774a51fce4b9d4aa8a4ecb7ad","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        if not cls.config.service_available.glance:"},{"line_number":33,"context_line":"            skip_msg \u003d (\"%s skipped as glance is not available\" % cls.__name__)"},{"line_number":34,"context_line":"            raise cls.skipException(skip_msg)"},{"line_number":35,"context_line":"        cls.client \u003d cls.images_client"},{"line_number":36,"context_line":"        cls.servers_client \u003d cls.servers_client"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        if cls.multi_user:"}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAATn%2F85Fw%3D","line":35,"in_reply_to":"AAAATn%2F85IY%3D","updated":"2013-12-19 04:13:40.000000000","message":"Done","commit_id":"300874d5adac20ea0fe4d68d1c351118591cd57c"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"003b978efb00ad5879c5491524d4c537441ed23f","unresolved":false,"context_lines":[{"line_number":45,"context_line":"            else:"},{"line_number":46,"context_line":"                # Use the alt_XXX credentials in the config file"},{"line_number":47,"context_line":"                cls.alt_manager \u003d clients.AltManager()"},{"line_number":48,"context_line":"            cls.alt_client \u003d cls.alt_manager.images_client"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":51,"context_line":"    def test_create_image_from_deleted_server(self):"}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAATn%2F85II%3D","line":48,"updated":"2013-12-19 03:58:22.000000000","message":"unused","commit_id":"300874d5adac20ea0fe4d68d1c351118591cd57c"},{"author":{"_account_id":8336,"name":"QianLin","email":"lin.qian@huawei.com","username":"qianlin"},"change_message_id":"43bdef72be3f55d774a51fce4b9d4aa8a4ecb7ad","unresolved":false,"context_lines":[{"line_number":45,"context_line":"            else:"},{"line_number":46,"context_line":"                # Use the alt_XXX credentials in the config file"},{"line_number":47,"context_line":"                cls.alt_manager \u003d clients.AltManager()"},{"line_number":48,"context_line":"            cls.alt_client \u003d cls.alt_manager.images_client"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":51,"context_line":"    def test_create_image_from_deleted_server(self):"}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAATn%2F85Fg%3D","line":48,"in_reply_to":"AAAATn%2F85II%3D","updated":"2013-12-19 04:13:40.000000000","message":"Done","commit_id":"300874d5adac20ea0fe4d68d1c351118591cd57c"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"003b978efb00ad5879c5491524d4c537441ed23f","unresolved":false,"context_lines":[{"line_number":79,"context_line":"                                          admin_password\u003dNone)"},{"line_number":80,"context_line":"        self.servers_client.wait_for_server_status(server[\u0027id\u0027],"},{"line_number":81,"context_line":"                                                   \u0027RESCUE\u0027)"},{"line_number":82,"context_line":"        self.addCleanup(self.servers_client.delete_server, server[\u0027id\u0027])"},{"line_number":83,"context_line":"        snapshot_name \u003d data_utils.rand_name(\u0027test-snap-\u0027)"},{"line_number":84,"context_line":"        self.assertRaises(exceptions.Conflict,"},{"line_number":85,"context_line":"                          self.servers_client.create_image,"}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAATn%2F85JE%3D","line":82,"updated":"2013-12-19 03:58:22.000000000","message":"here, we don\u0027t need the cleanup. Because the server will be delete in tearDownclass.\nBut if you want to add this, you should put it after the create action.","commit_id":"300874d5adac20ea0fe4d68d1c351118591cd57c"},{"author":{"_account_id":8336,"name":"QianLin","email":"lin.qian@huawei.com","username":"qianlin"},"change_message_id":"43bdef72be3f55d774a51fce4b9d4aa8a4ecb7ad","unresolved":false,"context_lines":[{"line_number":79,"context_line":"                                          admin_password\u003dNone)"},{"line_number":80,"context_line":"        self.servers_client.wait_for_server_status(server[\u0027id\u0027],"},{"line_number":81,"context_line":"                                                   \u0027RESCUE\u0027)"},{"line_number":82,"context_line":"        self.addCleanup(self.servers_client.delete_server, server[\u0027id\u0027])"},{"line_number":83,"context_line":"        snapshot_name \u003d data_utils.rand_name(\u0027test-snap-\u0027)"},{"line_number":84,"context_line":"        self.assertRaises(exceptions.Conflict,"},{"line_number":85,"context_line":"                          self.servers_client.create_image,"}],"source_content_type":"text/x-python","patch_set":21,"id":"AAAATn%2F85F4%3D","line":82,"in_reply_to":"AAAATn%2F85JE%3D","updated":"2013-12-19 04:13:40.000000000","message":"Done","commit_id":"300874d5adac20ea0fe4d68d1c351118591cd57c"}]}
