)]}'
{"etc/tempest.conf.sample":[{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"415863db36b483c72e1ed33e1dba2338736fc6fd","unresolved":false,"context_lines":[{"line_number":122,"context_line":"# this value as \"compute\""},{"line_number":123,"context_line":"catalog_type \u003d compute"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"# Is nova v3 api availible? Need run nova v3 tests?"},{"line_number":126,"context_line":"nova_v3_api_available \u003d True"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"# The type of endpoint for a Compute v3 API service. Unless you have a"}],"source_content_type":"application/octet-stream","patch_set":14,"id":"AAAASn%2F%2FFns%3D","line":125,"updated":"2013-09-12 11:09:57.000000000","message":"Maybe just shorten this to:\n# Do we run the Nova V3 API tests?","commit_id":"0050478d83b7e244b01f74f4ca7e1c42230e838c"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"a215c2dce2b8ac481423474e3e4f3165ecf6d5df","unresolved":false,"context_lines":[{"line_number":122,"context_line":"# this value as \"compute\""},{"line_number":123,"context_line":"catalog_type \u003d compute"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"# Is nova v3 api availible? Need run nova v3 tests?"},{"line_number":126,"context_line":"nova_v3_api_available \u003d True"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"# The type of endpoint for a Compute v3 API service. Unless you have a"}],"source_content_type":"application/octet-stream","patch_set":14,"id":"AAAASn%2F%2B%2B6w%3D","line":125,"in_reply_to":"AAAASn%2F%2FFns%3D","updated":"2013-09-14 13:36:21.000000000","message":"done","commit_id":"0050478d83b7e244b01f74f4ca7e1c42230e838c"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"415863db36b483c72e1ed33e1dba2338736fc6fd","unresolved":false,"context_lines":[{"line_number":123,"context_line":"catalog_type \u003d compute"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"# Is nova v3 api availible? Need run nova v3 tests?"},{"line_number":126,"context_line":"nova_v3_api_available \u003d True"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"# The type of endpoint for a Compute v3 API service. Unless you have a"},{"line_number":129,"context_line":"# custom Keystone service catalog implementation, you probably want to leave"}],"source_content_type":"application/octet-stream","patch_set":14,"id":"AAAASn%2F%2FFmI%3D","line":126,"updated":"2013-09-12 11:09:57.000000000","message":"This is in the compute section anyway so maybe just v3_api_available?","commit_id":"0050478d83b7e244b01f74f4ca7e1c42230e838c"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"a215c2dce2b8ac481423474e3e4f3165ecf6d5df","unresolved":false,"context_lines":[{"line_number":123,"context_line":"catalog_type \u003d compute"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"# Is nova v3 api availible? Need run nova v3 tests?"},{"line_number":126,"context_line":"nova_v3_api_available \u003d True"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"# The type of endpoint for a Compute v3 API service. Unless you have a"},{"line_number":129,"context_line":"# custom Keystone service catalog implementation, you probably want to leave"}],"source_content_type":"application/octet-stream","patch_set":14,"id":"AAAASn%2F%2B%2B6s%3D","line":126,"in_reply_to":"AAAASn%2F%2FFmI%3D","updated":"2013-09-14 13:36:21.000000000","message":"done","commit_id":"0050478d83b7e244b01f74f4ca7e1c42230e838c"}],"tempest/api/compute/base.py":[{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"415863db36b483c72e1ed33e1dba2338736fc6fd","unresolved":false,"context_lines":[{"line_number":158,"context_line":"                                                    kwargs[\u0027wait_until\u0027])"},{"line_number":159,"context_line":"            if cls.images_client.service \u003d\u003d \"image\":"},{"line_number":160,"context_line":"                resp, image \u003d cls.images_client.get_image_metadata(image_id)"},{"line_number":161,"context_line":"            else:"},{"line_number":162,"context_line":"                resp, image \u003d cls.images_client.get_image(image_id)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"        return resp, image"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAASn%2F%2FFLU%3D","line":161,"updated":"2013-09-12 11:09:57.000000000","message":"Could you explain this bit here? I don\u0027t really understand what\u0027s going on here and it doesn\u0027t look quite right, especially since for nova v3 api case it will be using the images v2 api instead of the v1 api.","commit_id":"0050478d83b7e244b01f74f4ca7e1c42230e838c"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"a215c2dce2b8ac481423474e3e4f3165ecf6d5df","unresolved":false,"context_lines":[{"line_number":158,"context_line":"                                                    kwargs[\u0027wait_until\u0027])"},{"line_number":159,"context_line":"            if cls.images_client.service \u003d\u003d \"image\":"},{"line_number":160,"context_line":"                resp, image \u003d cls.images_client.get_image_metadata(image_id)"},{"line_number":161,"context_line":"            else:"},{"line_number":162,"context_line":"                resp, image \u003d cls.images_client.get_image(image_id)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"        return resp, image"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAASn%2F%2B%2B64%3D","line":161,"in_reply_to":"AAAASn%2F%2FFLU%3D","updated":"2013-09-14 13:36:21.000000000","message":"oh, sorry. I just check it. It should use images v1 api. Do this change because there is no image api in nova v3, just use glance directly. In nova-v3-tests, the images_client  from image service. (refer to line:231)","commit_id":"0050478d83b7e244b01f74f4ca7e1c42230e838c"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"7077e66672d3d13a8669ee02b2fbf39b33027529","unresolved":false,"context_lines":[{"line_number":161,"context_line":"            if cls.images_client.service \u003d\u003d \u0027image\u0027:"},{"line_number":162,"context_line":"                resp, image \u003d cls.images_client.get_image_meta(image_id)"},{"line_number":163,"context_line":"            else:"},{"line_number":164,"context_line":"                resp, image \u003d cls.images_client.get_image(image_id)"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        return resp, image"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"AAAAS3%2F%2FhdY%3D","line":164,"updated":"2013-09-25 09:34:52.000000000","message":"Am I right in thinking that this is pretty much just choosing between v2 and v3 behaviour? Could we break just this small bit out into a function that the V3 class can overload?","commit_id":"f8fc6e175f24e2a89d42eb3565b8dd39be1af007"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"1de50b2156f9d6e533731419d0a9138b669dd4e6","unresolved":false,"context_lines":[{"line_number":210,"context_line":""},{"line_number":211,"context_line":"    @classmethod"},{"line_number":212,"context_line":"    def setUpClass(cls):"},{"line_number":213,"context_line":"        super(BaseComputeTest, cls).setUpClass()"},{"line_number":214,"context_line":"        if not cls.config.service_available.nova:"},{"line_number":215,"context_line":"            skip_msg \u003d (\"%s skipped as nova is not available\" % cls.__name__)"},{"line_number":216,"context_line":"            raise cls.skipException(skip_msg)"}],"source_content_type":"text/x-python","patch_set":30,"id":"AAAATH%2F%2FhNY%3D","line":213,"updated":"2013-10-15 03:40:36.000000000","message":"not BaseComputeV3Test","commit_id":"77fc40b517c7fcb644e7bf395794c8b53151c496"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"61c8f35f4b51059a2e1f95f06090cb86c8b03664","unresolved":false,"context_lines":[{"line_number":210,"context_line":""},{"line_number":211,"context_line":"    @classmethod"},{"line_number":212,"context_line":"    def setUpClass(cls):"},{"line_number":213,"context_line":"        super(BaseComputeTest, cls).setUpClass()"},{"line_number":214,"context_line":"        if not cls.config.service_available.nova:"},{"line_number":215,"context_line":"            skip_msg \u003d (\"%s skipped as nova is not available\" % cls.__name__)"},{"line_number":216,"context_line":"            raise cls.skipException(skip_msg)"}],"source_content_type":"text/x-python","patch_set":30,"id":"AAAATH%2F%2Fdfs%3D","line":213,"in_reply_to":"AAAATH%2F%2FhNY%3D","updated":"2013-10-15 21:42:49.000000000","message":"This is kind of a weird way to do inheritance to get only part of class. Instead of doing this, why not make a common compute base class and have the v2 and v3 just inherit that instead. That way the common bits are shared and what is unique for each api version stays isolated. (Take a look at tempest.api.image.base for an example) Otherwise, you\u0027ll have this non-obvious approach and a bunch of duplicated code.","commit_id":"77fc40b517c7fcb644e7bf395794c8b53151c496"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"7c90a0e021f9b875b4d8f6b3f21f966c5190eb52","unresolved":false,"context_lines":[{"line_number":211,"context_line":"    @classmethod"},{"line_number":212,"context_line":"    def setUpClass(cls):"},{"line_number":213,"context_line":"        super(BaseComputeTest, cls).setUpClass()"},{"line_number":214,"context_line":"        if not cls.config.service_available.nova:"},{"line_number":215,"context_line":"            skip_msg \u003d (\"%s skipped as nova is not available\" % cls.__name__)"},{"line_number":216,"context_line":"            raise cls.skipException(skip_msg)"},{"line_number":217,"context_line":"        if not cls.config.compute.v3_api_available:"}],"source_content_type":"text/x-python","patch_set":30,"id":"AAAATH%2F%2Fl1M%3D","line":214,"updated":"2013-10-14 04:56:15.000000000","message":"This test is in the base class so I don\u0027t think we need it here as well?","commit_id":"77fc40b517c7fcb644e7bf395794c8b53151c496"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"e19026f90ded4a593ff1d0d6ecceac8f25ac42d3","unresolved":false,"context_lines":[{"line_number":211,"context_line":"    @classmethod"},{"line_number":212,"context_line":"    def setUpClass(cls):"},{"line_number":213,"context_line":"        super(BaseComputeTest, cls).setUpClass()"},{"line_number":214,"context_line":"        if not cls.config.service_available.nova:"},{"line_number":215,"context_line":"            skip_msg \u003d (\"%s skipped as nova is not available\" % cls.__name__)"},{"line_number":216,"context_line":"            raise cls.skipException(skip_msg)"},{"line_number":217,"context_line":"        if not cls.config.compute.v3_api_available:"}],"source_content_type":"text/x-python","patch_set":30,"id":"AAAATH%2F%2FlzE%3D","line":214,"in_reply_to":"AAAATH%2F%2Fl1M%3D","updated":"2013-10-14 05:19:36.000000000","message":"thanks for your review, but I use super(**BaseComputeTest**, cls).setUpClass() here, just want to skip the BaseComputeTest setUpClass to avoid the v2 client used by mistake and ensure the client all used have been ported. after the port work we can merge this with BaseComputeV3Test.","commit_id":"77fc40b517c7fcb644e7bf395794c8b53151c496"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"0f8ebe3520760bc1e8b7f4fbc788f9539b009312","unresolved":false,"context_lines":[{"line_number":211,"context_line":"    @classmethod"},{"line_number":212,"context_line":"    def setUpClass(cls):"},{"line_number":213,"context_line":"        super(BaseComputeTest, cls).setUpClass()"},{"line_number":214,"context_line":"        if not cls.config.service_available.nova:"},{"line_number":215,"context_line":"            skip_msg \u003d (\"%s skipped as nova is not available\" % cls.__name__)"},{"line_number":216,"context_line":"            raise cls.skipException(skip_msg)"},{"line_number":217,"context_line":"        if not cls.config.compute.v3_api_available:"}],"source_content_type":"text/x-python","patch_set":30,"id":"AAAATH%2F%2FhNA%3D","line":214,"in_reply_to":"AAAATH%2F%2FlzE%3D","updated":"2013-10-15 03:49:11.000000000","message":"ok I think that is probably the safer route to make sure we test what we think we are testing, could you lodge a bug report to make sure we actually do this later?","commit_id":"77fc40b517c7fcb644e7bf395794c8b53151c496"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"7c90a0e021f9b875b4d8f6b3f21f966c5190eb52","unresolved":false,"context_lines":[{"line_number":235,"context_line":""},{"line_number":236,"context_line":"        cls.build_interval \u003d cls.config.compute.build_interval"},{"line_number":237,"context_line":"        cls.build_timeout \u003d cls.config.compute.build_timeout"},{"line_number":238,"context_line":"        cls.ssh_user \u003d cls.config.compute.ssh_user"},{"line_number":239,"context_line":"        cls.image_ref \u003d cls.config.compute.image_ref"},{"line_number":240,"context_line":"        cls.image_ref_alt \u003d cls.config.compute.image_ref_alt"},{"line_number":241,"context_line":"        cls.flavor_ref \u003d cls.config.compute.flavor_ref"}],"source_content_type":"text/x-python","patch_set":30,"id":"AAAATH%2F%2Fl1I%3D","line":238,"updated":"2013-10-14 04:56:15.000000000","message":"There\u0027s a few settings here like build_interval, build_timeout, ssh_user which are also set in the BaseComputeTest so we don\u0027t think we need them here as well","commit_id":"77fc40b517c7fcb644e7bf395794c8b53151c496"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"d7cd3d7dcbc36ea7c05930767b69c452a817d8d2","unresolved":false,"context_lines":[{"line_number":86,"context_line":"    @classmethod"},{"line_number":87,"context_line":"    def rebuild_server(cls, **kwargs):"},{"line_number":88,"context_line":"        # Destroy an existing server and creates a new one"},{"line_number":89,"context_line":"        raise NotImplemented()"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    @classmethod"},{"line_number":92,"context_line":"    def clear_images(cls):"}],"source_content_type":"text/x-python","patch_set":33,"id":"AAAATn%2F%2F7xU%3D","line":89,"updated":"2013-10-25 00:30:39.000000000","message":"I think this function can just be removed?","commit_id":"788bb0cb599eedcd108c343763bf00831a71d2ed"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"d7cd3d7dcbc36ea7c05930767b69c452a817d8d2","unresolved":false,"context_lines":[{"line_number":139,"context_line":"    @classmethod"},{"line_number":140,"context_line":"    def create_image_from_server(cls, server_id, **kwargs):"},{"line_number":141,"context_line":"        \"\"\"Wrapper utility that returns an image created from the server.\"\"\""},{"line_number":142,"context_line":"        raise NotImplemented()"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    def wait_for(self, condition):"},{"line_number":145,"context_line":"        \"\"\"Repeatedly calls condition() until a timeout.\"\"\""}],"source_content_type":"text/x-python","patch_set":33,"id":"AAAATn%2F%2F7xQ%3D","line":142,"updated":"2013-10-25 00:30:39.000000000","message":"I think this function can just be removed?","commit_id":"788bb0cb599eedcd108c343763bf00831a71d2ed"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"7584ee254d1011500e1a79fd134ad1a151b32c5b","unresolved":false,"context_lines":[{"line_number":240,"context_line":"            raise cls.skipException(skip_msg)"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"        cls.servers_client \u003d cls.os.servers_v3_client"},{"line_number":243,"context_line":"        cls.images_client \u003d cls.os.image_client"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    @classmethod"},{"line_number":246,"context_line":"    def create_image_from_server(cls, server_id, **kwargs):"}],"source_content_type":"text/x-python","patch_set":34,"id":"AAAATn%2F%2FyZ4%3D","line":243,"updated":"2013-10-29 02:59:32.000000000","message":"Maybe this is obvious but why are all the other client initializations from BaseV2ComputeTest not here?","commit_id":"57481ef1c8b0e55690bfacd6acfcf5630bfc3cdd"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"38e609b8d38c669dc86ca8171731baba0774831e","unresolved":false,"context_lines":[{"line_number":240,"context_line":"            raise cls.skipException(skip_msg)"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"        cls.servers_client \u003d cls.os.servers_v3_client"},{"line_number":243,"context_line":"        cls.images_client \u003d cls.os.image_client"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    @classmethod"},{"line_number":246,"context_line":"    def create_image_from_server(cls, server_id, **kwargs):"}],"source_content_type":"text/x-python","patch_set":34,"id":"AAAATn%2F%2FyZY%3D","line":243,"in_reply_to":"AAAATn%2F%2FyZ4%3D","updated":"2013-10-29 03:03:59.000000000","message":"Ivan will correct me if I\u0027m wrong :-) But I think this is because the tempest clients haven\u0027t been written for those ones yet. And we\u0027d prefer that the tests fail if functionality they need is missing rather than accidentally fallback to use the V2 API version","commit_id":"57481ef1c8b0e55690bfacd6acfcf5630bfc3cdd"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"0ffdc8029d2b943dad868fa1f58d718d036308ff","unresolved":false,"context_lines":[{"line_number":240,"context_line":"            raise cls.skipException(skip_msg)"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"        cls.servers_client \u003d cls.os.servers_v3_client"},{"line_number":243,"context_line":"        cls.images_client \u003d cls.os.image_client"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    @classmethod"},{"line_number":246,"context_line":"    def create_image_from_server(cls, server_id, **kwargs):"}],"source_content_type":"text/x-python","patch_set":34,"id":"AAAATn%2F%2FyX4%3D","line":243,"in_reply_to":"AAAATn%2F%2FyZY%3D","updated":"2013-10-29 03:24:38.000000000","message":"hi Chris, thanks for your clarification, that makes sense.\nhi David Kranz thanks for your review. Yes, as Chris said, it avoild to use V2 API client by mistake.  use the same client name(eg: servers_client) as BaseV2Compute, due to we can make a bit less change when we port v2 tests into v3.","commit_id":"57481ef1c8b0e55690bfacd6acfcf5630bfc3cdd"}],"tempest/api/compute/v3/images/test_images.py":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"2b83e02b7da6db5dbfe605b84f51f5fa0ec4b84c","unresolved":false,"context_lines":[{"line_number":123,"context_line":"                          self.servers_client.create_image,"},{"line_number":124,"context_line":"                          test_uuid, snapshot_name)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":127,"context_line":"    def test_delete_image_with_invalid_image_id(self):"},{"line_number":128,"context_line":"        # An image should not be deleted with invalid image id"},{"line_number":129,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.delete_image,"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAAS3%2F%2FoGA%3D","line":126,"updated":"2013-09-23 19:10:53.000000000","message":"I think that we probably should move(or delete if they\u0027re duplicated) these negative tests. They are just testing the glance api since there is no images api in v3. So this testing belongs in the images api testing.","commit_id":"02021d55f0adfdcbf1366e687c805f116fc4459c"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"1b71eadc4a2e757f7e62a490af68a2ded7b693f5","unresolved":false,"context_lines":[{"line_number":123,"context_line":"                          self.servers_client.create_image,"},{"line_number":124,"context_line":"                          test_uuid, snapshot_name)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":127,"context_line":"    def test_delete_image_with_invalid_image_id(self):"},{"line_number":128,"context_line":"        # An image should not be deleted with invalid image id"},{"line_number":129,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.delete_image,"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAAS3%2F%2Fmrc%3D","line":126,"in_reply_to":"AAAAS3%2F%2FoGA%3D","updated":"2013-09-24 02:57:09.000000000","message":"ok,Done","commit_id":"02021d55f0adfdcbf1366e687c805f116fc4459c"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"eb2a017dda00432361eb2cf9a816e3742f38d65b","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        resp, body \u003d self.servers_client.create_image(server_id, name, meta)"},{"line_number":52,"context_line":"        image_id \u003d parse_image_id(resp[\u0027location\u0027])"},{"line_number":53,"context_line":"        self.client.wait_for_image_status(image_id, \u0027ACTIVE\u0027)"},{"line_number":54,"context_line":"        self.addCleanup(self.client.delete_image, image_id)"},{"line_number":55,"context_line":"        return resp, body"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAAS3%2F%2FmfQ%3D","line":54,"updated":"2013-09-24 05:04:41.000000000","message":"addCleanup() should be executed just after create_XXX() for covering many exception cases. so I feel it is better to move the above addCleanup() to just after line51. This is not due to your change, it is original:)","commit_id":"fb78388ecd0b3cc826da2e7065e772b0cf7e85b6"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"346302d5a13b17a09a4fa3bdeaa76c691af6df7b","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        self.addCleanup(self.servers_client.delete_server, server[\u0027id\u0027])"},{"line_number":102,"context_line":"        resp, image \u003d self.create_image_from_server(server[\u0027id\u0027],"},{"line_number":103,"context_line":"                                                    name\u003dsnapshot_name,"},{"line_number":104,"context_line":"                                                    wait_until\u003d\u0027queued\u0027)"},{"line_number":105,"context_line":"        resp, body \u003d self.client.delete_image(image[\u0027id\u0027])"},{"line_number":106,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":107,"context_line":""}],"source_content_type":"text/x-python","patch_set":34,"id":"AAAATn%2F%2Frns%3D","line":104,"updated":"2013-10-30 14:02:02.000000000","message":"Is this right? Looking at the source, in v2 SAVING would be reported as the status if glance said the status was either \u0027saving\u0027 or \u0027queued\u0027. But this is a subtle change where if timing happens that the wait does not probe until after the transition from \u0027queued\u0027 to \u0027saving\u0027, this test will fail whereas it would have succeeded previously.","commit_id":"57481ef1c8b0e55690bfacd6acfcf5630bfc3cdd"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"96d1c420a076101ce0a0080e79b53e6eb43f2363","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        self.addCleanup(self.servers_client.delete_server, server[\u0027id\u0027])"},{"line_number":102,"context_line":"        resp, image \u003d self.create_image_from_server(server[\u0027id\u0027],"},{"line_number":103,"context_line":"                                                    name\u003dsnapshot_name,"},{"line_number":104,"context_line":"                                                    wait_until\u003d\u0027queued\u0027)"},{"line_number":105,"context_line":"        resp, body \u003d self.client.delete_image(image[\u0027id\u0027])"},{"line_number":106,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":107,"context_line":""}],"source_content_type":"text/x-python","patch_set":34,"id":"AAAATn%2F%2FZ9s%3D","line":104,"in_reply_to":"AAAATn%2F%2Frns%3D","updated":"2013-11-07 06:00:46.000000000","message":"hi David,\nthanks for your reviewing. sorry just notice your comment.\n\nYes, your comment is correct. But in the tempest tests environment, I find the status transition is the following:(pick it from the debug)\n\nstatus: queued\n\nstatus: queued\n\nstatus: queued\n\nstatus: active\n\nstatus: active\n\nstatus: active\n\nstatus: active\n\nstatus: active\n\nSo I think the time for the status queued is long enough to probe, but saving is not.\nand both of them are mapped to SAVING in nova v2 api. so I think it\u0027s ok. maybe I need change the test name to test_delete_queued_image.","commit_id":"57481ef1c8b0e55690bfacd6acfcf5630bfc3cdd"}],"tempest/api/compute/v3/servers/test_server_actions.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"eb2a017dda00432361eb2cf9a816e3742f38d65b","unresolved":false,"context_lines":[{"line_number":119,"context_line":"                                                   self.image_ref_alt,"},{"line_number":120,"context_line":"                                                   name\u003dnew_name, meta\u003dmeta,"},{"line_number":121,"context_line":"                                                   personality\u003dpersonality,"},{"line_number":122,"context_line":"                                                   adminPass\u003dpassword)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        # Verify the properties in the initial response are correct"},{"line_number":125,"context_line":"        self.assertEqual(self.server_id, rebuilt_server[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAAS3%2F%2FmdQ%3D","line":122,"updated":"2013-09-24 05:04:41.000000000","message":"I guess the above \"adminPass\" should be changed to \"admin_pass\".","commit_id":"fb78388ecd0b3cc826da2e7065e772b0cf7e85b6"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"38033f38bb6f5cc45e857613594cc099b5454df9","unresolved":false,"context_lines":[{"line_number":119,"context_line":"                                                   self.image_ref_alt,"},{"line_number":120,"context_line":"                                                   name\u003dnew_name, meta\u003dmeta,"},{"line_number":121,"context_line":"                                                   personality\u003dpersonality,"},{"line_number":122,"context_line":"                                                   adminPass\u003dpassword)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        # Verify the properties in the initial response are correct"},{"line_number":125,"context_line":"        self.assertEqual(self.server_id, rebuilt_server[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAAS3%2F%2FmbE%3D","line":122,"in_reply_to":"AAAAS3%2F%2FmdQ%3D","updated":"2013-09-24 05:56:45.000000000","message":"good catch.","commit_id":"fb78388ecd0b3cc826da2e7065e772b0cf7e85b6"}],"tempest/api/image/v1/test_images.py":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"2793ad0f89e07ea8353b95af66f1765662eb1278","unresolved":false,"context_lines":[{"line_number":251,"context_line":"        self.assertFalse(self.created_set - self.dup_set \u003c\u003d result_set)"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":254,"context_line":"    def test_delete_image_with_invalid_image_id(self):"},{"line_number":255,"context_line":"        # An image should not be deleted with invalid image id"},{"line_number":256,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.delete_image,"},{"line_number":257,"context_line":"                          \u0027!@$%^\u0026*()\u0027)"}],"source_content_type":"text/x-python","patch_set":29,"id":"AAAATH%2F%2Ftjc%3D","line":254,"updated":"2013-10-10 21:01:50.000000000","message":"The negative tests added in this file are outside the scope of this patch. (They have nothing to do with adding v3 api tests) You should break this addition out as a separate commit.","commit_id":"5d1cc85f6a988b4dd1a8d75622c6537a305e3e06"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"d9e8d1f3798142a27c4eec6bcc0f605344058a77","unresolved":false,"context_lines":[{"line_number":251,"context_line":"        self.assertFalse(self.created_set - self.dup_set \u003c\u003d result_set)"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":254,"context_line":"    def test_delete_image_with_invalid_image_id(self):"},{"line_number":255,"context_line":"        # An image should not be deleted with invalid image id"},{"line_number":256,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.delete_image,"},{"line_number":257,"context_line":"                          \u0027!@$%^\u0026*()\u0027)"}],"source_content_type":"text/x-python","patch_set":29,"id":"AAAATH%2F%2FsRU%3D","line":254,"in_reply_to":"AAAATH%2F%2Ftjc%3D","updated":"2013-10-11 05:26:53.000000000","message":"ok, will do it in another seperate commit","commit_id":"5d1cc85f6a988b4dd1a8d75622c6537a305e3e06"}],"tempest/services/compute/json/servers_client.py":[{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"7077e66672d3d13a8669ee02b2fbf39b33027529","unresolved":false,"context_lines":[{"line_number":227,"context_line":"        \"\"\"Reverts a server back to its original flavor.\"\"\""},{"line_number":228,"context_line":"        return self.action(server_id, \u0027revertResize\u0027, None, **kwargs)"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    def create_image(self, server_id, name, meta\u003dNone):"},{"line_number":231,"context_line":"        \"\"\"Creates an image of the original server.\"\"\""},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"        post_body \u003d {"}],"source_content_type":"text/x-python","patch_set":22,"id":"AAAAS3%2F%2FhZg%3D","line":230,"updated":"2013-09-25 09:34:52.000000000","message":"I\u0027m just wondering why this change here is required? The V3 API tests shouldn\u0027t call this should they?","commit_id":"f8fc6e175f24e2a89d42eb3565b8dd39be1af007"}],"tempest/services/compute/v3/json/servers_client.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"eb2a017dda00432361eb2cf9a816e3742f38d65b","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        image_ref (Required): Reference to the image used to build the server."},{"line_number":43,"context_line":"        flavor_ref (Required): The flavor used to build the server."},{"line_number":44,"context_line":"        Following optional keyword arguments are accepted:"},{"line_number":45,"context_line":"        adminPass: Sets the initial root password."},{"line_number":46,"context_line":"        key_name: Key name of keypair that was created earlier."},{"line_number":47,"context_line":"        meta: A dictionary of values to be used as metadata."},{"line_number":48,"context_line":"        personality: A list of dictionaries for files to be injected into"}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAAS3%2F%2Fmeg%3D","line":45,"updated":"2013-09-24 05:04:41.000000000","message":"s/adminPass/admin_pass/","commit_id":"fb78388ecd0b3cc826da2e7065e772b0cf7e85b6"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"eb2a017dda00432361eb2cf9a816e3742f38d65b","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        networks: A list of network dicts with UUID and fixed_ip."},{"line_number":52,"context_line":"        user_data: User data for instance."},{"line_number":53,"context_line":"        availability_zone: Availability zone in which to launch instance."},{"line_number":54,"context_line":"        accessIPv4: The IPv4 access address for the server."},{"line_number":55,"context_line":"        accessIPv6: The IPv6 access address for the server."},{"line_number":56,"context_line":"        min_count: Count of minimum number of instances to launch."},{"line_number":57,"context_line":"        max_count: Count of maximum number of instances to launch."}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAAS3%2F%2FmeU%3D","line":54,"updated":"2013-09-24 05:04:41.000000000","message":"s/accessIPv4/access_ip_v4/","commit_id":"fb78388ecd0b3cc826da2e7065e772b0cf7e85b6"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"eb2a017dda00432361eb2cf9a816e3742f38d65b","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        user_data: User data for instance."},{"line_number":53,"context_line":"        availability_zone: Availability zone in which to launch instance."},{"line_number":54,"context_line":"        accessIPv4: The IPv4 access address for the server."},{"line_number":55,"context_line":"        accessIPv6: The IPv6 access address for the server."},{"line_number":56,"context_line":"        min_count: Count of minimum number of instances to launch."},{"line_number":57,"context_line":"        max_count: Count of maximum number of instances to launch."},{"line_number":58,"context_line":"        disk_config: Determines if user or admin controls disk configuration."}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAAS3%2F%2FmeY%3D","line":55,"updated":"2013-09-24 05:04:41.000000000","message":"s/accessIPv6/access_ip_v6/","commit_id":"fb78388ecd0b3cc826da2e7065e772b0cf7e85b6"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"8717617ffe0fef7eaf292f13005aafb5836d3101","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        server_id: The id of an existing server."},{"line_number":103,"context_line":"        name: The name of the server."},{"line_number":104,"context_line":"        personality: A list of files to be injected into the server."},{"line_number":105,"context_line":"        accessIPv4: The IPv4 access address for the server."},{"line_number":106,"context_line":"        accessIPv6: The IPv6 access address for the server."},{"line_number":107,"context_line":"        \"\"\""},{"line_number":108,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAS3%2F%2Fl%2FU%3D","line":105,"updated":"2013-09-24 07:59:18.000000000","message":"s/accessIPv4/access_ip_v4/","commit_id":"9d132c28c2467c8a0a9c39d5dbc39ad6466d3c9a"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"8717617ffe0fef7eaf292f13005aafb5836d3101","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        name: The name of the server."},{"line_number":104,"context_line":"        personality: A list of files to be injected into the server."},{"line_number":105,"context_line":"        accessIPv4: The IPv4 access address for the server."},{"line_number":106,"context_line":"        accessIPv6: The IPv6 access address for the server."},{"line_number":107,"context_line":"        \"\"\""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        post_body \u003d {}"}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAS3%2F%2Fl%2FM%3D","line":106,"updated":"2013-09-24 07:59:18.000000000","message":"s/accessIPv6/access_ip_v6/","commit_id":"9d132c28c2467c8a0a9c39d5dbc39ad6466d3c9a"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"8956ea2723468f7dbc0faf6d35d52b647f687217","unresolved":false,"context_lines":[{"line_number":234,"context_line":"        \"\"\"Reverts a server back to its original flavor.\"\"\""},{"line_number":235,"context_line":"        return self.action(server_id, \u0027revert_resize\u0027, None, **kwargs)"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"    def create_image(self, server_id, name, meta\u003dNone):"},{"line_number":238,"context_line":"        \"\"\"Creates an image of the original server.\"\"\""},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"        post_body \u003d {"}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAS3%2F%2FVYU%3D","line":237,"updated":"2013-09-30 00:52:35.000000000","message":"I did not find answer for Christopher\u0027s point at patchset22.(https://review.openstack.org/#/c/39609/22/tempest/services/compute/json/servers_client.py)\n\nI guess the test cases of this patch don\u0027t use the argument \"meta\", is this change necessary?","commit_id":"698d79edb4e908ff521503c84c74226260035939"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"8a464dbf8109e1ca867b5179ea3683793a477f62","unresolved":false,"context_lines":[{"line_number":234,"context_line":"        \"\"\"Reverts a server back to its original flavor.\"\"\""},{"line_number":235,"context_line":"        return self.action(server_id, \u0027revert_resize\u0027, None, **kwargs)"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"    def create_image(self, server_id, name, meta\u003dNone):"},{"line_number":238,"context_line":"        \"\"\"Creates an image of the original server.\"\"\""},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"        post_body \u003d {"}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAS3%2F%2FVDE%3D","line":237,"in_reply_to":"AAAAS3%2F%2FVEU%3D","updated":"2013-09-30 05:21:13.000000000","message":"Thanks for the explanation, I see.","commit_id":"698d79edb4e908ff521503c84c74226260035939"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"73f636cd799f66994aef4e05e81b46a7eccbc1f0","unresolved":false,"context_lines":[{"line_number":234,"context_line":"        \"\"\"Reverts a server back to its original flavor.\"\"\""},{"line_number":235,"context_line":"        return self.action(server_id, \u0027revert_resize\u0027, None, **kwargs)"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"    def create_image(self, server_id, name, meta\u003dNone):"},{"line_number":238,"context_line":"        \"\"\"Creates an image of the original server.\"\"\""},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"        post_body \u003d {"}],"source_content_type":"text/x-python","patch_set":27,"id":"AAAAS3%2F%2FVEU%3D","line":237,"in_reply_to":"AAAAS3%2F%2FVYU%3D","updated":"2013-09-30 05:16:39.000000000","message":"It\u0027s just copied from images_client.  Just keep consistency, as images_client has been removed in v3 tests.","commit_id":"698d79edb4e908ff521503c84c74226260035939"}],"tempest/services/compute/v3/xml/servers_client.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"eb2a017dda00432361eb2cf9a816e3742f38d65b","unresolved":false,"context_lines":[{"line_number":272,"context_line":"        user_data: User data for instance."},{"line_number":273,"context_line":"        availability_zone: Availability zone in which to launch instance."},{"line_number":274,"context_line":"        accessIPv4: The IPv4 access address for the server."},{"line_number":275,"context_line":"        accessIPv6: The IPv6 access address for the server."},{"line_number":276,"context_line":"        min_count: Count of minimum number of instances to launch."},{"line_number":277,"context_line":"        max_count: Count of maximum number of instances to launch."},{"line_number":278,"context_line":"        disk_config: Determines if user or admin controls disk configuration."}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAAS3%2F%2Fmdk%3D","line":275,"updated":"2013-09-24 05:04:41.000000000","message":"the same comments as json/servers_client.py","commit_id":"fb78388ecd0b3cc826da2e7065e772b0cf7e85b6"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"eb2a017dda00432361eb2cf9a816e3742f38d65b","unresolved":false,"context_lines":[{"line_number":275,"context_line":"        accessIPv6: The IPv6 access address for the server."},{"line_number":276,"context_line":"        min_count: Count of minimum number of instances to launch."},{"line_number":277,"context_line":"        max_count: Count of maximum number of instances to launch."},{"line_number":278,"context_line":"        disk_config: Determines if user or admin controls disk configuration."},{"line_number":279,"context_line":"        \"\"\""},{"line_number":280,"context_line":"        server \u003d Element(\"server\","},{"line_number":281,"context_line":"                         imageRef\u003dimage_ref,"}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAAS3%2F%2Fmdc%3D","line":278,"updated":"2013-09-24 05:04:41.000000000","message":"There is not the document about \"return_reservation_id\".","commit_id":"fb78388ecd0b3cc826da2e7065e772b0cf7e85b6"}],"tempest/services/compute/xml/common.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"8717617ffe0fef7eaf292f13005aafb5836d3101","unresolved":false,"context_lines":[{"line_number":16,"context_line":"#    under the License."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"XMLNS_11 \u003d \"http://docs.openstack.org/compute/api/v1.1\""},{"line_number":19,"context_line":"XMLNS_V3 \u003d \"http://docs.openstack.org/compute/api/v1.1\""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"# NOTE(danms): This is just a silly implementation to help make generating"}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAS3%2F%2FmAw%3D","line":19,"updated":"2013-09-24 07:59:18.000000000","message":"Shouldn\u0027t here be http://docs.openstack.org/compute/api/v3 ?","commit_id":"9d132c28c2467c8a0a9c39d5dbc39ad6466d3c9a"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"8a241a627ba9825cea98f623f7b32cd9c2a2e38b","unresolved":false,"context_lines":[{"line_number":16,"context_line":"#    under the License."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"XMLNS_11 \u003d \"http://docs.openstack.org/compute/api/v1.1\""},{"line_number":19,"context_line":"XMLNS_V3 \u003d \"http://docs.openstack.org/compute/api/v1.1\""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"# NOTE(danms): This is just a silly implementation to help make generating"}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAS3%2F%2FiYY%3D","line":19,"in_reply_to":"AAAAS3%2F%2Fl68%3D","updated":"2013-09-25 02:36:59.000000000","message":"I understand the xmlns of nova-v3-api is http://docs.openstack.org/compute/api/v1.1 in current nova source and tempest should be it also.","commit_id":"9d132c28c2467c8a0a9c39d5dbc39ad6466d3c9a"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"46177d33ee69e90605c197f948960e17067500e1","unresolved":false,"context_lines":[{"line_number":16,"context_line":"#    under the License."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"XMLNS_11 \u003d \"http://docs.openstack.org/compute/api/v1.1\""},{"line_number":19,"context_line":"XMLNS_V3 \u003d \"http://docs.openstack.org/compute/api/v1.1\""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"# NOTE(danms): This is just a silly implementation to help make generating"}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAS3%2F%2Fl68%3D","line":19,"in_reply_to":"AAAAS3%2F%2FmAw%3D","updated":"2013-09-24 08:14:35.000000000","message":"Yes, it should. But it\u0027hasn\u0027t been changed in nova. It will be done in Ice-house.","commit_id":"9d132c28c2467c8a0a9c39d5dbc39ad6466d3c9a"}],"tempest/services/image/v1/json/image_client.py":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"2793ad0f89e07ea8353b95af66f1765662eb1278","unresolved":false,"context_lines":[{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    def delete_image(self, image_id):"},{"line_number":177,"context_line":"        url \u003d \u0027v1/images/%s\u0027 % image_id"},{"line_number":178,"context_line":"        return self.delete(url)"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    def image_list(self, **kwargs):"},{"line_number":181,"context_line":"        url \u003d \u0027v1/images\u0027"}],"source_content_type":"text/x-python","patch_set":29,"id":"AAAATH%2F%2Ftis%3D","line":178,"updated":"2013-10-10 21:01:50.000000000","message":"Is this change needed for the v3 api additions in this commit? Otherwise it\u0027s outside the scope of this change.","commit_id":"5d1cc85f6a988b4dd1a8d75622c6537a305e3e06"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"d9e8d1f3798142a27c4eec6bcc0f605344058a77","unresolved":false,"context_lines":[{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    def delete_image(self, image_id):"},{"line_number":177,"context_line":"        url \u003d \u0027v1/images/%s\u0027 % image_id"},{"line_number":178,"context_line":"        return self.delete(url)"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    def image_list(self, **kwargs):"},{"line_number":181,"context_line":"        url \u003d \u0027v1/images\u0027"}],"source_content_type":"text/x-python","patch_set":29,"id":"AAAATH%2F%2FsQo%3D","line":178,"in_reply_to":"AAAATH%2F%2Ftis%3D","updated":"2013-10-11 05:26:53.000000000","message":"Yes, as some tests in test_images need check response of delete_image. They use nova image api before. but in v3 we use this client to access glance directly. \n\nBTW, although these tests will be moved into glance testing in another patch, if this change is not do in this patch, they can\u0027t pass.","commit_id":"5d1cc85f6a988b4dd1a8d75622c6537a305e3e06"}]}
