)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"b6dd7c421f2570a1122a15d3ab4da96c2ee9ed1a","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     zhangyanzi \u003czhangyanzi@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-11-12 16:57:42 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add test for os-update_snapshot_status API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add some tests fot os-update_snapshot_status API"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAATn%2F%2FIO4%3D","line":7,"updated":"2013-11-14 03:51:34.000000000","message":"I see stuff for reset_status too","commit_id":"da6d72362f4dc0fc443124ec405a5e321f8c98ea"}],"tempest/api/volume/admin/test_snapshots_actions.py":[{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"69fd677b486407e9da6f1c78755f24191bc2465a","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def tearDown(self):"},{"line_number":69,"context_line":"        # Set snapshot\u0027s status to available after test"},{"line_number":70,"context_line":"        self._reset_snapshot_status(self.snapshot[\u0027id\u0027], \u0027available\u0027)"},{"line_number":71,"context_line":"        super(SnapshotsActionsTest, self).tearDown()"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def _get_progress_alias(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FXIw%3D","line":70,"updated":"2013-11-08 07:32:34.000000000","message":"use addCleanup instead at line:95 \nself.addCleanup(self._reset_snapshot_status, self.snapshot[\u0027id\u0027], \u0027available\u0027)","commit_id":"838ce743e595a66a3da97a778c1dca1211442881"},{"author":{"_account_id":8286,"name":"zhangyanzi","email":"yanzi.zhang@samsung.com","username":"zhangyanzi"},"change_message_id":"26ff60040b2806d28bf93281d44c36a4750396d7","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def tearDown(self):"},{"line_number":69,"context_line":"        # Set snapshot\u0027s status to available after test"},{"line_number":70,"context_line":"        self._reset_snapshot_status(self.snapshot[\u0027id\u0027], \u0027available\u0027)"},{"line_number":71,"context_line":"        super(SnapshotsActionsTest, self).tearDown()"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def _get_progress_alias(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FXEs%3D","line":70,"in_reply_to":"AAAATn%2F%2FXIw%3D","updated":"2013-11-08 08:12:49.000000000","message":"what is the better to change to self.addCleanup(self._reset_snapshot_status, self.snapshot[\u0027id\u0027], \u0027available\u0027) ?\n\nIf to add new test,also should add the code \"self.addCleanup(self._reset_snapshot_status, self.snapshot[\u0027id\u0027], \u0027available\u0027) \"","commit_id":"838ce743e595a66a3da97a778c1dca1211442881"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"69fd677b486407e9da6f1c78755f24191bc2465a","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        self._reset_snapshot_status(self.snapshot[\u0027id\u0027], \u0027available\u0027)"},{"line_number":71,"context_line":"        super(SnapshotsActionsTest, self).tearDown()"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def _get_progress_alias(self):"},{"line_number":74,"context_line":"        return \u0027os-extended-snapshot-attributes:progress\u0027"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    @attr(type\u003d\u0027gate\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FXIQ%3D","line":73,"updated":"2013-11-08 07:32:34.000000000","message":"remove this and handle it in the client.","commit_id":"838ce743e595a66a3da97a778c1dca1211442881"},{"author":{"_account_id":8286,"name":"zhangyanzi","email":"yanzi.zhang@samsung.com","username":"zhangyanzi"},"change_message_id":"26ff60040b2806d28bf93281d44c36a4750396d7","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        self._reset_snapshot_status(self.snapshot[\u0027id\u0027], \u0027available\u0027)"},{"line_number":71,"context_line":"        super(SnapshotsActionsTest, self).tearDown()"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def _get_progress_alias(self):"},{"line_number":74,"context_line":"        return \u0027os-extended-snapshot-attributes:progress\u0027"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    @attr(type\u003d\u0027gate\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FXEo%3D","line":73,"in_reply_to":"AAAATn%2F%2FXIQ%3D","updated":"2013-11-08 08:12:49.000000000","message":"why should i do it?","commit_id":"838ce743e595a66a3da97a778c1dca1211442881"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"69fd677b486407e9da6f1c78755f24191bc2465a","unresolved":false,"context_lines":[{"line_number":81,"context_line":"                                                 status)"},{"line_number":82,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":83,"context_line":"        resp_get, snapshot_get \\"},{"line_number":84,"context_line":"            \u003d self.admin_snapshots_client.get_snapshot(self.snapshot[\u0027id\u0027])"},{"line_number":85,"context_line":"        self.assertEqual(status, snapshot_get[\u0027status\u0027])"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        # Update snapshot status to error"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FXIs%3D","line":84,"updated":"2013-11-08 07:32:34.000000000","message":"check the response code first","commit_id":"838ce743e595a66a3da97a778c1dca1211442881"},{"author":{"_account_id":8286,"name":"zhangyanzi","email":"yanzi.zhang@samsung.com","username":"zhangyanzi"},"change_message_id":"26ff60040b2806d28bf93281d44c36a4750396d7","unresolved":false,"context_lines":[{"line_number":81,"context_line":"                                                 status)"},{"line_number":82,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":83,"context_line":"        resp_get, snapshot_get \\"},{"line_number":84,"context_line":"            \u003d self.admin_snapshots_client.get_snapshot(self.snapshot[\u0027id\u0027])"},{"line_number":85,"context_line":"        self.assertEqual(status, snapshot_get[\u0027status\u0027])"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        # Update snapshot status to error"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FXEc%3D","line":84,"in_reply_to":"AAAATn%2F%2FXIs%3D","updated":"2013-11-08 08:12:49.000000000","message":"OK, i will change it","commit_id":"838ce743e595a66a3da97a778c1dca1211442881"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"69fd677b486407e9da6f1c78755f24191bc2465a","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":94,"context_line":"        resp_get, snapshot_get \\"},{"line_number":95,"context_line":"            \u003d self.admin_snapshots_client.get_snapshot(self.snapshot[\u0027id\u0027])"},{"line_number":96,"context_line":"        print snapshot_get"},{"line_number":97,"context_line":"        self.assertEqual(status, snapshot_get[\u0027status\u0027])"},{"line_number":98,"context_line":"        self.assertEqual(progress, snapshot_get[progress_alias])"},{"line_number":99,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FXLU%3D","line":96,"updated":"2013-11-08 07:32:34.000000000","message":"remove this","commit_id":"838ce743e595a66a3da97a778c1dca1211442881"},{"author":{"_account_id":8286,"name":"zhangyanzi","email":"yanzi.zhang@samsung.com","username":"zhangyanzi"},"change_message_id":"26ff60040b2806d28bf93281d44c36a4750396d7","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":94,"context_line":"        resp_get, snapshot_get \\"},{"line_number":95,"context_line":"            \u003d self.admin_snapshots_client.get_snapshot(self.snapshot[\u0027id\u0027])"},{"line_number":96,"context_line":"        print snapshot_get"},{"line_number":97,"context_line":"        self.assertEqual(status, snapshot_get[\u0027status\u0027])"},{"line_number":98,"context_line":"        self.assertEqual(progress, snapshot_get[progress_alias])"},{"line_number":99,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FXEQ%3D","line":96,"in_reply_to":"AAAATn%2F%2FXLU%3D","updated":"2013-11-08 08:12:49.000000000","message":"Thanks, i will do it","commit_id":"838ce743e595a66a3da97a778c1dca1211442881"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"69fd677b486407e9da6f1c78755f24191bc2465a","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        resp_get, snapshot_get \\"},{"line_number":95,"context_line":"            \u003d self.admin_snapshots_client.get_snapshot(self.snapshot[\u0027id\u0027])"},{"line_number":96,"context_line":"        print snapshot_get"},{"line_number":97,"context_line":"        self.assertEqual(status, snapshot_get[\u0027status\u0027])"},{"line_number":98,"context_line":"        self.assertEqual(progress, snapshot_get[progress_alias])"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FXIo%3D","line":97,"updated":"2013-11-08 07:32:34.000000000","message":"check response code","commit_id":"838ce743e595a66a3da97a778c1dca1211442881"},{"author":{"_account_id":8286,"name":"zhangyanzi","email":"yanzi.zhang@samsung.com","username":"zhangyanzi"},"change_message_id":"26ff60040b2806d28bf93281d44c36a4750396d7","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        resp_get, snapshot_get \\"},{"line_number":95,"context_line":"            \u003d self.admin_snapshots_client.get_snapshot(self.snapshot[\u0027id\u0027])"},{"line_number":96,"context_line":"        print snapshot_get"},{"line_number":97,"context_line":"        self.assertEqual(status, snapshot_get[\u0027status\u0027])"},{"line_number":98,"context_line":"        self.assertEqual(progress, snapshot_get[progress_alias])"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FXEM%3D","line":97,"in_reply_to":"AAAATn%2F%2FXIo%3D","updated":"2013-11-08 08:12:49.000000000","message":"Thanks, i will do it","commit_id":"838ce743e595a66a3da97a778c1dca1211442881"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"69fd677b486407e9da6f1c78755f24191bc2465a","unresolved":false,"context_lines":[{"line_number":101,"context_line":"class SnapshotsActionsTestXML(SnapshotsActionsTest):"},{"line_number":102,"context_line":"    _interface \u003d \"xml\""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def _get_progress_alias(self):"},{"line_number":105,"context_line":"        return \u0027{http://docs.openstack.org/volume/ext\u0027 \\"},{"line_number":106,"context_line":"               \u0027/extended_snapshot_attributes/api/v1}progress\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FXIU%3D","line":104,"updated":"2013-11-08 07:32:34.000000000","message":"remove this and handle it in the client.","commit_id":"838ce743e595a66a3da97a778c1dca1211442881"},{"author":{"_account_id":8286,"name":"zhangyanzi","email":"yanzi.zhang@samsung.com","username":"zhangyanzi"},"change_message_id":"26ff60040b2806d28bf93281d44c36a4750396d7","unresolved":false,"context_lines":[{"line_number":101,"context_line":"class SnapshotsActionsTestXML(SnapshotsActionsTest):"},{"line_number":102,"context_line":"    _interface \u003d \"xml\""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def _get_progress_alias(self):"},{"line_number":105,"context_line":"        return \u0027{http://docs.openstack.org/volume/ext\u0027 \\"},{"line_number":106,"context_line":"               \u0027/extended_snapshot_attributes/api/v1}progress\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FXEA%3D","line":104,"in_reply_to":"AAAATn%2F%2FXIU%3D","updated":"2013-11-08 08:12:49.000000000","message":"why to remove this and handle it in the client?","commit_id":"838ce743e595a66a3da97a778c1dca1211442881"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"b6dd7c421f2570a1122a15d3ab4da96c2ee9ed1a","unresolved":false,"context_lines":[{"line_number":16,"context_line":"#    under the License."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from tempest.api.volume.base import BaseVolumeAdminTest"},{"line_number":19,"context_line":"from tempest.common.utils import data_utils as utils"},{"line_number":20,"context_line":"from tempest.test import attr"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FIOU%3D","line":19,"updated":"2013-11-14 03:51:34.000000000","message":"please don\u0027t use the \"as utils\" part","commit_id":"da6d72362f4dc0fc443124ec405a5e321f8c98ea"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"b6dd7c421f2570a1122a15d3ab4da96c2ee9ed1a","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        cls.admin_snapshots_client \u003d cls.os_adm.snapshots_client"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"        # Create a test shared volume for tests"},{"line_number":35,"context_line":"        vol_name \u003d utils.rand_name(cls.__name__ + \u0027-Volume-\u0027)"},{"line_number":36,"context_line":"        resp_vol, cls.volume \u003d \\"},{"line_number":37,"context_line":"            cls.volumes_client.create_volume(size\u003d1, display_name\u003dvol_name)"},{"line_number":38,"context_line":"        cls.volumes_client.wait_for_volume_status(cls.volume[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FIOA%3D","line":35,"updated":"2013-11-14 03:51:34.000000000","message":"to me looks like a nice idea to use cls.__name__","commit_id":"da6d72362f4dc0fc443124ec405a5e321f8c98ea"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"aaf78a592c8c907221d9605020529b595531b9a9","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        super(SnapshotsActionsTest, cls).tearDownClass()"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def _reset_snapshot_status(self, snapshot_id, status):"},{"line_number":62,"context_line":"        # Reset the snapshot status"},{"line_number":63,"context_line":"        resp, body \u003d \\"},{"line_number":64,"context_line":"            self.admin_snapshots_client.reset_snapshot_status(snapshot_id,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FQAI%3D","line":61,"updated":"2013-11-12 09:11:07.000000000","message":"I think this method makes the code unreadable.\nHow about calling self.admin_snapshots_client.reset_snapshot_status() directly in each place?","commit_id":"da6d72362f4dc0fc443124ec405a5e321f8c98ea"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"b6dd7c421f2570a1122a15d3ab4da96c2ee9ed1a","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        super(SnapshotsActionsTest, cls).tearDownClass()"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def _reset_snapshot_status(self, snapshot_id, status):"},{"line_number":62,"context_line":"        # Reset the snapshot status"},{"line_number":63,"context_line":"        resp, body \u003d \\"},{"line_number":64,"context_line":"            self.admin_snapshots_client.reset_snapshot_status(snapshot_id,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FIN4%3D","line":61,"in_reply_to":"AAAATn%2F%2FP0k%3D","updated":"2013-11-14 03:51:34.000000000","message":"I agree with Ken\u0027ichi this isn\u0027t adding much value despite being shared. I\u0027d prefer to call self.admin_snapshots_client.reset_snapshot_status from within the test case","commit_id":"da6d72362f4dc0fc443124ec405a5e321f8c98ea"},{"author":{"_account_id":8286,"name":"zhangyanzi","email":"yanzi.zhang@samsung.com","username":"zhangyanzi"},"change_message_id":"a3668122221694c3d92a692f8e986b650fc1bdee","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        super(SnapshotsActionsTest, cls).tearDownClass()"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def _reset_snapshot_status(self, snapshot_id, status):"},{"line_number":62,"context_line":"        # Reset the snapshot status"},{"line_number":63,"context_line":"        resp, body \u003d \\"},{"line_number":64,"context_line":"            self.admin_snapshots_client.reset_snapshot_status(snapshot_id,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FP0k%3D","line":61,"in_reply_to":"AAAATn%2F%2FP2I%3D","updated":"2013-11-12 10:07:14.000000000","message":"Hi Ken\u0027ichi and wanghao:\nThe function \u0027_reset_snapshot_status\u0027 is not need in tearDown,\nbut also in test_reset_update_snapshot_status, so i separated this method.","commit_id":"da6d72362f4dc0fc443124ec405a5e321f8c98ea"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"a80670a978af1470675abad8bac86aea2ab41673","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        super(SnapshotsActionsTest, cls).tearDownClass()"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def _reset_snapshot_status(self, snapshot_id, status):"},{"line_number":62,"context_line":"        # Reset the snapshot status"},{"line_number":63,"context_line":"        resp, body \u003d \\"},{"line_number":64,"context_line":"            self.admin_snapshots_client.reset_snapshot_status(snapshot_id,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FP2I%3D","line":61,"in_reply_to":"AAAATn%2F%2FP8U%3D","updated":"2013-11-12 09:58:16.000000000","message":"This method calls reset_snapshot_status() only without any other behaviors.\nIf there are any additional behaviors, the separated method would be nice.\n\nHowever, there are not in this patchset. This method seems just a wrapper.","commit_id":"da6d72362f4dc0fc443124ec405a5e321f8c98ea"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"c0b2ac13aecfdef074a558616496aa51672db8d0","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        super(SnapshotsActionsTest, cls).tearDownClass()"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def _reset_snapshot_status(self, snapshot_id, status):"},{"line_number":62,"context_line":"        # Reset the snapshot status"},{"line_number":63,"context_line":"        resp, body \u003d \\"},{"line_number":64,"context_line":"            self.admin_snapshots_client.reset_snapshot_status(snapshot_id,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FP8U%3D","line":61,"in_reply_to":"AAAATn%2F%2FQAI%3D","updated":"2013-11-12 09:46:52.000000000","message":"Hi, I think it is better to separate \u0027_reset_snapshot_status\u0027 as a util function, not needed in each place. It is right?","commit_id":"da6d72362f4dc0fc443124ec405a5e321f8c98ea"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"aaf78a592c8c907221d9605020529b595531b9a9","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        self.assertEqual(200, resp_get.status)"},{"line_number":86,"context_line":"        self.assertEqual(status, snapshot_get[\u0027status\u0027])"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        # Update snapshot status to error"},{"line_number":89,"context_line":"        progress \u003d \u002780%\u0027"},{"line_number":90,"context_line":"        status \u003d \u0027error\u0027"},{"line_number":91,"context_line":"        progress_alias \u003d self._get_progress_alias()"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FP%2Fc%3D","line":88,"updated":"2013-11-12 09:11:07.000000000","message":"Why don\u0027t you separate the following test code from this method?\n\nWe will be able to specify the problem easily if each function is separated into multiple test methods.\n\nI guess you would do it because of preparing terDown() in this patchset.","commit_id":"da6d72362f4dc0fc443124ec405a5e321f8c98ea"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"3bd3a5d7b52599c9346ac87c95b4a022d74ffb57","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        self.assertEqual(200, resp_get.status)"},{"line_number":86,"context_line":"        self.assertEqual(status, snapshot_get[\u0027status\u0027])"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        # Update snapshot status to error"},{"line_number":89,"context_line":"        progress \u003d \u002780%\u0027"},{"line_number":90,"context_line":"        status \u003d \u0027error\u0027"},{"line_number":91,"context_line":"        progress_alias \u003d self._get_progress_alias()"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FILQ%3D","line":88,"in_reply_to":"AAAATn%2F%2FINU%3D","updated":"2013-11-14 03:58:09.000000000","message":"Thanks Giulio, zhangyanzi,\n\nI am OK for current TearDown() implementation now.","commit_id":"da6d72362f4dc0fc443124ec405a5e321f8c98ea"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"c0b2ac13aecfdef074a558616496aa51672db8d0","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        self.assertEqual(200, resp_get.status)"},{"line_number":86,"context_line":"        self.assertEqual(status, snapshot_get[\u0027status\u0027])"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        # Update snapshot status to error"},{"line_number":89,"context_line":"        progress \u003d \u002780%\u0027"},{"line_number":90,"context_line":"        status \u003d \u0027error\u0027"},{"line_number":91,"context_line":"        progress_alias \u003d self._get_progress_alias()"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FP4s%3D","line":88,"in_reply_to":"AAAATn%2F%2FP%2Fc%3D","updated":"2013-11-12 09:46:52.000000000","message":"Hi Ken\u0027ichi .  Do you think it should make two separate test methods for \u0027reset\u0027 and \u0027update\u0027 function ? But the updating snapshot status have to rely on the current status of snapshot, It must be \u0027creating\u0027 or \u0027deleting\u0027. So there would reset the status to creating or deleting at first.","commit_id":"da6d72362f4dc0fc443124ec405a5e321f8c98ea"},{"author":{"_account_id":8286,"name":"zhangyanzi","email":"yanzi.zhang@samsung.com","username":"zhangyanzi"},"change_message_id":"a3668122221694c3d92a692f8e986b650fc1bdee","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        self.assertEqual(200, resp_get.status)"},{"line_number":86,"context_line":"        self.assertEqual(status, snapshot_get[\u0027status\u0027])"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        # Update snapshot status to error"},{"line_number":89,"context_line":"        progress \u003d \u002780%\u0027"},{"line_number":90,"context_line":"        status \u003d \u0027error\u0027"},{"line_number":91,"context_line":"        progress_alias \u003d self._get_progress_alias()"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FPy4%3D","line":88,"in_reply_to":"AAAATn%2F%2FP1Y%3D","updated":"2013-11-12 10:07:14.000000000","message":"I think use \u0027TearDown()\u0027 method makes clearer and more convenient to extend","commit_id":"da6d72362f4dc0fc443124ec405a5e321f8c98ea"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"a80670a978af1470675abad8bac86aea2ab41673","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        self.assertEqual(200, resp_get.status)"},{"line_number":86,"context_line":"        self.assertEqual(status, snapshot_get[\u0027status\u0027])"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        # Update snapshot status to error"},{"line_number":89,"context_line":"        progress \u003d \u002780%\u0027"},{"line_number":90,"context_line":"        status \u003d \u0027error\u0027"},{"line_number":91,"context_line":"        progress_alias \u003d self._get_progress_alias()"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FP1Y%3D","line":88,"in_reply_to":"AAAATn%2F%2FP4s%3D","updated":"2013-11-12 09:58:16.000000000","message":"Hi wanghao,\n\nThanks for your explanation, I understand.\nIf there is one test case in this patchset, TearDown() method seems unnecessary. Could TearDown() be merged to TearDownClass()?","commit_id":"da6d72362f4dc0fc443124ec405a5e321f8c98ea"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"b6dd7c421f2570a1122a15d3ab4da96c2ee9ed1a","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        self.assertEqual(200, resp_get.status)"},{"line_number":86,"context_line":"        self.assertEqual(status, snapshot_get[\u0027status\u0027])"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        # Update snapshot status to error"},{"line_number":89,"context_line":"        progress \u003d \u002780%\u0027"},{"line_number":90,"context_line":"        status \u003d \u0027error\u0027"},{"line_number":91,"context_line":"        progress_alias \u003d self._get_progress_alias()"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FINU%3D","line":88,"in_reply_to":"AAAATn%2F%2FPy4%3D","updated":"2013-11-14 03:51:34.000000000","message":"yeah +1 from me on the usage of tearDown and split this in two methods","commit_id":"da6d72362f4dc0fc443124ec405a5e321f8c98ea"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"1489048ced4f2795bd9ea4b3aaa5e73d8df1ef0e","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        # Reset snapshot status to creating"},{"line_number":75,"context_line":"        status \u003d \u0027creating\u0027"},{"line_number":76,"context_line":"        resp, body \u003d self._reset_snapshot_status(self.snapshot[\u0027id\u0027],"},{"line_number":77,"context_line":"                                                 status)"},{"line_number":78,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":79,"context_line":"        resp_get, snapshot_get \\"},{"line_number":80,"context_line":"            \u003d self.admin_snapshots_client.get_snapshot(self.snapshot[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2Bsvg%3D","line":77,"updated":"2013-11-21 11:44:19.000000000","message":"Here should be admin_snapshots_client.reset_snapshot_status","commit_id":"eab68156ca4e5c7622a86479ed372105391948ea"},{"author":{"_account_id":8286,"name":"zhangyanzi","email":"yanzi.zhang@samsung.com","username":"zhangyanzi"},"change_message_id":"a8a4bd37e8f14eb6ff0d472ecd430223426acbbf","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        # Reset snapshot status to creating"},{"line_number":75,"context_line":"        status \u003d \u0027creating\u0027"},{"line_number":76,"context_line":"        resp, body \u003d self._reset_snapshot_status(self.snapshot[\u0027id\u0027],"},{"line_number":77,"context_line":"                                                 status)"},{"line_number":78,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":79,"context_line":"        resp_get, snapshot_get \\"},{"line_number":80,"context_line":"            \u003d self.admin_snapshots_client.get_snapshot(self.snapshot[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2BoaY%3D","line":77,"in_reply_to":"AAAATn%2F%2Bsvg%3D","updated":"2013-11-22 08:21:34.000000000","message":"Thank you very much for this mistake!","commit_id":"eab68156ca4e5c7622a86479ed372105391948ea"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"1489048ced4f2795bd9ea4b3aaa5e73d8df1ef0e","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    def test_update_snapshot_status(self):"},{"line_number":86,"context_line":"        # Reset snapshot status to creating"},{"line_number":87,"context_line":"        status \u003d \u0027creating\u0027"},{"line_number":88,"context_line":"        self._reset_snapshot_status(self.snapshot[\u0027id\u0027], status)"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        # Update snapshot status to error"},{"line_number":91,"context_line":"        progress \u003d \u002780%\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2BsvY%3D","line":88,"updated":"2013-11-21 11:44:19.000000000","message":"ditto","commit_id":"eab68156ca4e5c7622a86479ed372105391948ea"},{"author":{"_account_id":8286,"name":"zhangyanzi","email":"yanzi.zhang@samsung.com","username":"zhangyanzi"},"change_message_id":"a8a4bd37e8f14eb6ff0d472ecd430223426acbbf","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    def test_update_snapshot_status(self):"},{"line_number":86,"context_line":"        # Reset snapshot status to creating"},{"line_number":87,"context_line":"        status \u003d \u0027creating\u0027"},{"line_number":88,"context_line":"        self._reset_snapshot_status(self.snapshot[\u0027id\u0027], status)"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        # Update snapshot status to error"},{"line_number":91,"context_line":"        progress \u003d \u002780%\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2BoaU%3D","line":88,"in_reply_to":"AAAATn%2F%2BsvY%3D","updated":"2013-11-22 08:21:34.000000000","message":"Thank you very much for this mistake!","commit_id":"eab68156ca4e5c7622a86479ed372105391948ea"}],"tempest/services/volume/json/snapshots_client.py":[{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"b6dd7c421f2570a1122a15d3ab4da96c2ee9ed1a","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        return False"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    def reset_snapshot_status(self, snapshot_id, status):"},{"line_number":136,"context_line":"        \"\"\"Reset the Specified Volume\u0027s Status.\"\"\""},{"line_number":137,"context_line":"        post_body \u003d json.dumps({\u0027os-reset_status\u0027: {\"status\": status}})"},{"line_number":138,"context_line":"        resp, body \u003d self.post(\u0027snapshots/%s/action\u0027 % snapshot_id, post_body,"},{"line_number":139,"context_line":"                               self.headers)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FIOk%3D","line":136,"updated":"2013-11-14 03:51:34.000000000","message":"Reset snapshot status.","commit_id":"da6d72362f4dc0fc443124ec405a5e321f8c98ea"}],"tempest/services/volume/xml/snapshots_client.py":[{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"69fd677b486407e9da6f1c78755f24191bc2465a","unresolved":false,"context_lines":[{"line_number":155,"context_line":"                            )"},{"line_number":156,"context_line":"        url \u003d \u0027snapshots/%s/action\u0027 % str(snapshot_id)"},{"line_number":157,"context_line":"        resp, body \u003d self.post(url, str(Document(post_body)), self.headers)"},{"line_number":158,"context_line":"        if body:"},{"line_number":159,"context_line":"            body \u003d xml_to_json(etree.fromstring(body))"},{"line_number":160,"context_line":"        return resp, body"},{"line_number":161,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FXKY%3D","line":158,"updated":"2013-11-08 07:32:34.000000000","message":"really need this? I think remove it will be better. When things goes wrong, we can addressed it easily.","commit_id":"838ce743e595a66a3da97a778c1dca1211442881"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"69fd677b486407e9da6f1c78755f24191bc2465a","unresolved":false,"context_lines":[{"line_number":167,"context_line":"                            )"},{"line_number":168,"context_line":"        url \u003d \u0027snapshots/%s/action\u0027 % str(snapshot_id)"},{"line_number":169,"context_line":"        resp, body \u003d self.post(url, str(Document(post_body)), self.headers)"},{"line_number":170,"context_line":"        if body:"},{"line_number":171,"context_line":"            body \u003d xml_to_json(etree.fromstring(body))"},{"line_number":172,"context_line":"        return resp, body"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FXKg%3D","line":170,"updated":"2013-11-08 07:32:34.000000000","message":"ditto","commit_id":"838ce743e595a66a3da97a778c1dca1211442881"},{"author":{"_account_id":8286,"name":"zhangyanzi","email":"yanzi.zhang@samsung.com","username":"zhangyanzi"},"change_message_id":"26ff60040b2806d28bf93281d44c36a4750396d7","unresolved":false,"context_lines":[{"line_number":167,"context_line":"                            )"},{"line_number":168,"context_line":"        url \u003d \u0027snapshots/%s/action\u0027 % str(snapshot_id)"},{"line_number":169,"context_line":"        resp, body \u003d self.post(url, str(Document(post_body)), self.headers)"},{"line_number":170,"context_line":"        if body:"},{"line_number":171,"context_line":"            body \u003d xml_to_json(etree.fromstring(body))"},{"line_number":172,"context_line":"        return resp, body"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FXD0%3D","line":170,"in_reply_to":"AAAATn%2F%2FXKg%3D","updated":"2013-11-08 08:12:49.000000000","message":"I don\u0027t know what about your concern?\nAlmost all functions do it","commit_id":"838ce743e595a66a3da97a778c1dca1211442881"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"b6dd7c421f2570a1122a15d3ab4da96c2ee9ed1a","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        return False"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def reset_snapshot_status(self, snapshot_id, status):"},{"line_number":152,"context_line":"        \"\"\"Reset the Specified Snapshot\u0027s Status.\"\"\""},{"line_number":153,"context_line":"        post_body \u003d Element(\"os-reset_status\","},{"line_number":154,"context_line":"                            status\u003dstatus"},{"line_number":155,"context_line":"                            )"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2FIPI%3D","line":152,"updated":"2013-11-14 03:51:34.000000000","message":"Reset snapshot status.","commit_id":"da6d72362f4dc0fc443124ec405a5e321f8c98ea"}]}
