)]}'
{"tempest/api/volume/test_volumes_list_filters.py":[{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"5c51852016b28ab2df546810675aabb1458258c3","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from tempest.api.volume import base"},{"line_number":17,"context_line":"from tempest.openstack.common import log as logging"},{"line_number":18,"context_line":"from tempest.test import attr"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUH%2F%2F8zU%3D","line":18,"updated":"2014-01-06 10:43:56.000000000","message":"I just copied the file tempest/api/volume/test_volumes_list.py and then started coding over it\n\nI\u0027ll leave this as it is for the sake of consistence (as this same import exist in that file too). We can fix that up in a later patch","commit_id":"7f24ff64415de5cb30a9d86ec04ac5308382ea5b"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"f077e5585d492f4dff535311fb882acf126144b9","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from tempest.api.volume import base"},{"line_number":17,"context_line":"from tempest.openstack.common import log as logging"},{"line_number":18,"context_line":"from tempest.test import attr"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAT3%2F%2FtGo%3D","line":18,"updated":"2014-01-03 06:08:35.000000000","message":"It\u0027s better to import module instead of attr. \nfrom tempest import test","commit_id":"7f24ff64415de5cb30a9d86ec04ac5308382ea5b"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"f077e5585d492f4dff535311fb882acf126144b9","unresolved":false,"context_lines":[{"line_number":20,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class VolumesListTestFilters(base.BaseVolumeTest):"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    \"\"\""},{"line_number":26,"context_line":"    This test creates a number of 1G and 2G volumes. To run successfully,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAT3%2F%2FtLE%3D","line":23,"updated":"2014-01-03 06:08:35.000000000","message":"please use base.BaseVolumeV1Test as the change in https://review.openstack.org/#/c/59113/. \nvolumes_client will be remove from BaseVolumeTest in https://review.openstack.org/#/c/64660/","commit_id":"7f24ff64415de5cb30a9d86ec04ac5308382ea5b"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"5c51852016b28ab2df546810675aabb1458258c3","unresolved":false,"context_lines":[{"line_number":20,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class VolumesListTestFilters(base.BaseVolumeTest):"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    \"\"\""},{"line_number":26,"context_line":"    This test creates a number of 1G and 2G volumes. To run successfully,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUH%2F%2F8zQ%3D","line":23,"in_reply_to":"AAAAT3%2F%2FtLE%3D","updated":"2014-01-06 10:43:56.000000000","message":"Done","commit_id":"7f24ff64415de5cb30a9d86ec04ac5308382ea5b"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"2ef339b771bf7db0d9eedcee636ff2a263687848","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    _interface \u003d \u0027json\u0027"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def assertVolumesIn(self, fetched_list, expected_list):"},{"line_number":36,"context_line":"        missing_vols \u003d [v for v in expected_list if v not in fetched_list]"},{"line_number":37,"context_line":"        if len(missing_vols) \u003d\u003d 0:"},{"line_number":38,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2Fr2M%3D","line":35,"updated":"2014-01-09 17:09:14.000000000","message":"you should remove this unless it is used by some of the tests","commit_id":"6e68736f98f39091327c7487d7db668553ee3d84"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"24e0c4ad85b8f424fc9513d4367cb24272c59c9c","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    _interface \u003d \u0027json\u0027"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def assertVolumesIn(self, fetched_list, expected_list):"},{"line_number":36,"context_line":"        missing_vols \u003d [v for v in expected_list if v not in fetched_list]"},{"line_number":37,"context_line":"        if len(missing_vols) \u003d\u003d 0:"},{"line_number":38,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2Fgyc%3D","line":35,"in_reply_to":"AAAAUH%2F%2Foyo%3D","updated":"2014-01-13 05:46:22.000000000","message":"Done","commit_id":"6e68736f98f39091327c7487d7db668553ee3d84"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"b49733b0a2698edb5a80b38de8f2b48a225acdb4","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    _interface \u003d \u0027json\u0027"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def assertVolumesIn(self, fetched_list, expected_list):"},{"line_number":36,"context_line":"        missing_vols \u003d [v for v in expected_list if v not in fetched_list]"},{"line_number":37,"context_line":"        if len(missing_vols) \u003d\u003d 0:"},{"line_number":38,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2Foyo%3D","line":35,"in_reply_to":"AAAAUH%2F%2Fr2M%3D","updated":"2014-01-10 08:25:32.000000000","message":"agree with Giulio\u0027s opinion","commit_id":"6e68736f98f39091327c7487d7db668553ee3d84"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"2ef339b771bf7db0d9eedcee636ff2a263687848","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        for i in range(3):"},{"line_number":63,"context_line":"            try:"},{"line_number":64,"context_line":"                volume \u003d cls.create_volume(metadata\u003dcls.vol_meta_tuple[i])"},{"line_number":65,"context_line":"                resp, volume \u003d cls.client.get_volume(volume[\u0027id\u0027])"},{"line_number":66,"context_line":"                cls.volume_list.append(volume)"},{"line_number":67,"context_line":"                cls.volume_id_list.append(volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2Frn8%3D","line":64,"updated":"2014-01-09 17:09:14.000000000","message":"maybe to tidy up the setup/teardown you can use addCleanup here","commit_id":"6e68736f98f39091327c7487d7db668553ee3d84"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"24e0c4ad85b8f424fc9513d4367cb24272c59c9c","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        for i in range(3):"},{"line_number":63,"context_line":"            try:"},{"line_number":64,"context_line":"                volume \u003d cls.create_volume(metadata\u003dcls.vol_meta_tuple[i])"},{"line_number":65,"context_line":"                resp, volume \u003d cls.client.get_volume(volume[\u0027id\u0027])"},{"line_number":66,"context_line":"                cls.volume_list.append(volume)"},{"line_number":67,"context_line":"                cls.volume_id_list.append(volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2Fgvo%3D","line":64,"in_reply_to":"AAAAUH%2F%2Fox4%3D","updated":"2014-01-13 05:46:22.000000000","message":"Done","commit_id":"6e68736f98f39091327c7487d7db668553ee3d84"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"b49733b0a2698edb5a80b38de8f2b48a225acdb4","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        for i in range(3):"},{"line_number":63,"context_line":"            try:"},{"line_number":64,"context_line":"                volume \u003d cls.create_volume(metadata\u003dcls.vol_meta_tuple[i])"},{"line_number":65,"context_line":"                resp, volume \u003d cls.client.get_volume(volume[\u0027id\u0027])"},{"line_number":66,"context_line":"                cls.volume_list.append(volume)"},{"line_number":67,"context_line":"                cls.volume_id_list.append(volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2Fox4%3D","line":64,"in_reply_to":"AAAAUH%2F%2Frn8%3D","updated":"2014-01-10 08:25:32.000000000","message":"volumes could be cleanup by tearDownClass of parent class.","commit_id":"6e68736f98f39091327c7487d7db668553ee3d84"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"b49733b0a2698edb5a80b38de8f2b48a225acdb4","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                raise exc"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    @classmethod"},{"line_number":81,"context_line":"    def tearDownClass(cls):"},{"line_number":82,"context_line":"        # Delete the created volumes"},{"line_number":83,"context_line":"        for volid in cls.volume_id_list:"},{"line_number":84,"context_line":"            resp, _ \u003d cls.client.delete_volume(volid)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2Fow0%3D","line":81,"updated":"2014-01-10 08:25:32.000000000","message":"tearDownClass could be removed as cleanup could be done by tearDownClass of parent class.","commit_id":"6e68736f98f39091327c7487d7db668553ee3d84"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"24e0c4ad85b8f424fc9513d4367cb24272c59c9c","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                raise exc"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    @classmethod"},{"line_number":81,"context_line":"    def tearDownClass(cls):"},{"line_number":82,"context_line":"        # Delete the created volumes"},{"line_number":83,"context_line":"        for volid in cls.volume_id_list:"},{"line_number":84,"context_line":"            resp, _ \u003d cls.client.delete_volume(volid)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2Fgvs%3D","line":81,"in_reply_to":"AAAAUH%2F%2Fow0%3D","updated":"2014-01-13 05:46:22.000000000","message":"Done","commit_id":"6e68736f98f39091327c7487d7db668553ee3d84"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"e3ce0bd88e5fb1f309519798d62ce15bfb238083","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        # Create 3 test volumes of different sizes, names, etc"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        cls.vol_size_tuple \u003d (1, 2, 1)"},{"line_number":43,"context_line":"        cls.vol_meta_tuple \u003d ({\u0027tier\u0027: \u0027gold\u0027, \u0027speed\u0027: \u0027fast\u0027},"},{"line_number":44,"context_line":"                              {\u0027tier\u0027: \u0027silver\u0027, \u0027speed\u0027: \u0027slow\u0027},"},{"line_number":45,"context_line":"                              {\u0027speed\u0027: \u0027slow\u0027})"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FMas%3D","line":42,"updated":"2014-01-16 15:32:23.000000000","message":"vol_size_tuple not in use.","commit_id":"5e5f404136b3522c599d9b0e05ebe8509bafd036"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"bbb1791d61fbd2e39a4b06c6e6f4e79a4187336a","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        # Create 3 test volumes of different sizes, names, etc"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        cls.vol_size_tuple \u003d (1, 2, 1)"},{"line_number":43,"context_line":"        cls.vol_meta_tuple \u003d ({\u0027tier\u0027: \u0027gold\u0027, \u0027speed\u0027: \u0027fast\u0027},"},{"line_number":44,"context_line":"                              {\u0027tier\u0027: \u0027silver\u0027, \u0027speed\u0027: \u0027slow\u0027},"},{"line_number":45,"context_line":"                              {\u0027speed\u0027: \u0027slow\u0027})"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2B4ZE%3D","line":42,"in_reply_to":"AAAAUH%2F%2FMas%3D","updated":"2014-01-21 05:52:08.000000000","message":"Done","commit_id":"5e5f404136b3522c599d9b0e05ebe8509bafd036"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"e3ce0bd88e5fb1f309519798d62ce15bfb238083","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                              {\u0027speed\u0027: \u0027slow\u0027})"},{"line_number":46,"context_line":"        cls.volume_id_list \u003d []"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        for i in range(3):"},{"line_number":49,"context_line":"            try:"},{"line_number":50,"context_line":"                volume \u003d cls.create_volume(metadata\u003dcls.vol_meta_tuple[i])"},{"line_number":51,"context_line":"                resp, volume \u003d cls.client.get_volume(volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FMaA%3D","line":48,"updated":"2014-01-16 15:32:23.000000000","message":"NOTE: It could iterate on vol_size_tuple or vol_meta_tuple  or on composed structure from the cls.vol_meta_tuple  cls.vol_size_tuple.\n\nOr the len(vol_meta_tuple) could be used instead of just 3.","commit_id":"5e5f404136b3522c599d9b0e05ebe8509bafd036"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"bbb1791d61fbd2e39a4b06c6e6f4e79a4187336a","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                              {\u0027speed\u0027: \u0027slow\u0027})"},{"line_number":46,"context_line":"        cls.volume_id_list \u003d []"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        for i in range(3):"},{"line_number":49,"context_line":"            try:"},{"line_number":50,"context_line":"                volume \u003d cls.create_volume(metadata\u003dcls.vol_meta_tuple[i])"},{"line_number":51,"context_line":"                resp, volume \u003d cls.client.get_volume(volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2B4ZA%3D","line":48,"in_reply_to":"AAAAUH%2F%2FMaA%3D","updated":"2014-01-21 05:52:08.000000000","message":"Done. Thanks for this, I found out Python\u0027s \u0027zip\u0027 for the purpose.","commit_id":"5e5f404136b3522c599d9b0e05ebe8509bafd036"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"12b13c70506a0d0e36982125e76088dc43688bb4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2012-13 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F9Vxk%3D","line":1,"updated":"2014-02-07 16:29:56.000000000","message":"please use just 2014 here","commit_id":"60b4d3e568976a33cde1fa457d818c904524f3b2"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"69c196efbafec8909f08f07a3d3003f46d49d0cc","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2012-13 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUX%2F%2FGpI%3D","line":1,"in_reply_to":"AAAAUH%2F9Vxk%3D","updated":"2014-02-17 05:06:35.000000000","message":"Done","commit_id":"60b4d3e568976a33cde1fa457d818c904524f3b2"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"d5fde0e286034b09ea31345f6e6d8969c2965695","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from tempest.api.volume import base"},{"line_number":17,"context_line":"from tempest.openstack.common import log as logging"},{"line_number":18,"context_line":"from tempest.test import attr"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUX%2F%2BXrM%3D","line":18,"updated":"2014-02-21 15:42:48.000000000","message":"Please import module and not class : \u0027from tempest import test\u0027","commit_id":"a4d52b8711939da2768bef3d4ab02770247171e9"},{"author":{"_account_id":5174,"name":"Mauro Sergio Martins Rodrigues","email":"maurosr@linux.vnet.ibm.com","username":"maurosr"},"change_message_id":"c84e07eac6162742eb78140881287cf097a757f4","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    has space for at least a 1G volume and a 2G volume."},{"line_number":29,"context_line":"    If you are running a DevStack environment, ensure that the"},{"line_number":30,"context_line":"    VOLUME_BACKING_FILE_SIZE is at least 4G in your localrc."},{"line_number":31,"context_line":"    \"\"\""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    _interface \u003d \u0027json\u0027"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAVn%2F%2FT80%3D","line":31,"updated":"2014-03-06 22:25:52.000000000","message":"I\u0027m not a 100% sure, cause I\u0027m not asure about how the tests are partitioned when using concurrency, but I guess this can be a problem since we have other sets of tets requiring the same thing (and that wasn\u0027t a problem so far cause we have 10gb afaik) so in some specific situation maybe this can get into a race condition.\n\nMaybe we should use a common class to create volumes for both test set if possible.\n\nI\u0027ve asked mtreinish, let\u0027s see what he thinks about it.","commit_id":"a4d52b8711939da2768bef3d4ab02770247171e9"},{"author":{"_account_id":5174,"name":"Mauro Sergio Martins Rodrigues","email":"maurosr@linux.vnet.ibm.com","username":"maurosr"},"change_message_id":"c84e07eac6162742eb78140881287cf097a757f4","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        super(VolumesListTestFilters, cls).setUpClass()"},{"line_number":38,"context_line":"        cls.client \u003d cls.volumes_client"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        # Create 3 test volumes of different sizes, names, etc"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        cls.vol_size_tuple \u003d (1, 2)"},{"line_number":43,"context_line":"        cls.vol_meta_tuple \u003d ({\u0027tier\u0027: \u0027gold\u0027, \u0027speed\u0027: \u0027fast\u0027},"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAVn%2F%2FUOU%3D","line":40,"updated":"2014-03-06 22:25:52.000000000","message":"nit: it creates 2 not 3","commit_id":"a4d52b8711939da2768bef3d4ab02770247171e9"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"d5fde0e286034b09ea31345f6e6d8969c2965695","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                # class\u0027s teardown method"},{"line_number":54,"context_line":"                cls.volumes.append(volume)"},{"line_number":55,"context_line":"                cls.volume_id_list.append(volume[\u0027id\u0027])"},{"line_number":56,"context_line":"            except Exception as exc:"},{"line_number":57,"context_line":"                LOG.exception(exc)"},{"line_number":58,"context_line":"                if cls.volumes:"},{"line_number":59,"context_line":"                    # We could not create all the volumes, though we were able"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUX%2F%2BXno%3D","line":56,"updated":"2014-02-21 15:42:48.000000000","message":"Don\u0027t catch exception : http://docs.openstack.org/developer/tempest/HACKING.html#exception-handling","commit_id":"a4d52b8711939da2768bef3d4ab02770247171e9"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"d5fde0e286034b09ea31345f6e6d8969c2965695","unresolved":false,"context_lines":[{"line_number":60,"context_line":"                    # to create *some* of the volumes. This is typically"},{"line_number":61,"context_line":"                    # because the backing file size of the volume group is"},{"line_number":62,"context_line":"                    # too small."},{"line_number":63,"context_line":"                    for volid in cls.volume_id_list:"},{"line_number":64,"context_line":"                        cls.client.delete_volume(volid)"},{"line_number":65,"context_line":"                        cls.client.wait_for_resource_deletion(volid)"},{"line_number":66,"context_line":"                raise exc"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUX%2F%2BXpY%3D","line":63,"updated":"2014-02-21 15:42:48.000000000","message":"Use unittest-s addCleanup() method to do cleanup work","commit_id":"a4d52b8711939da2768bef3d4ab02770247171e9"}]}
