)]}'
{"tempest/api/volume/test_volumes_snapshots.py":[{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"8dd8a7098174c2d7efa80f2fb20545d49b575131","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":82,"context_line":"        self.snapshots_client.wait_for_resource_deletion(snapshot[\u0027id\u0027])"},{"line_number":83,"context_line":"        self.snapshots.remove(snapshot)"},{"line_number":84,"context_line":"        # Detach the volume"},{"line_number":85,"context_line":"        resp, body \u003d self.volumes_client.detach_volume("},{"line_number":86,"context_line":"            self.volume_origin[\u0027id\u0027])"},{"line_number":87,"context_line":"        self.assertEqual(202, resp.status)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FTmE%3D","line":84,"updated":"2014-01-15 08:33:33.000000000","message":"addCleanup is a better way to detach volume and delete test instance.","commit_id":"22f922ec9fdb8efa4d139138798905015f26bcbd"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"7e1a5cc9fee0de898c5fd9470497bd1ef489a56e","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":82,"context_line":"        self.snapshots_client.wait_for_resource_deletion(snapshot[\u0027id\u0027])"},{"line_number":83,"context_line":"        self.snapshots.remove(snapshot)"},{"line_number":84,"context_line":"        # Detach the volume"},{"line_number":85,"context_line":"        resp, body \u003d self.volumes_client.detach_volume("},{"line_number":86,"context_line":"            self.volume_origin[\u0027id\u0027])"},{"line_number":87,"context_line":"        self.assertEqual(202, resp.status)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FPGs%3D","line":84,"in_reply_to":"AAAAUH%2F%2FTmE%3D","updated":"2014-01-16 03:25:16.000000000","message":"ok, thanks, will use addCleanup to delete test instance, current way to detach volume is better than using addCleanup","commit_id":"22f922ec9fdb8efa4d139138798905015f26bcbd"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"227b243ca553036db3a74e8e2736181cd4aceb96","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        self.volumes_client.wait_for_volume_status(self.volume_origin[\u0027id\u0027],"},{"line_number":87,"context_line":"                                                   \u0027available\u0027)"},{"line_number":88,"context_line":"        # Delete the test instance"},{"line_number":89,"context_line":"        self.addCleanup(self.servers_client.delete_server, server[\u0027id\u0027])"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":92,"context_line":"    def test_snapshot_create_get_list_update_delete(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FN8E%3D","line":89,"updated":"2014-01-16 09:11:50.000000000","message":"this should be added after line 69","commit_id":"41e17630512cb1ff36cba27eb678af679e0730ad"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"695cb18db1f01ed3068caf631f20a8173ea22033","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        self.volumes_client.wait_for_volume_status(self.volume_origin[\u0027id\u0027],"},{"line_number":87,"context_line":"                                                   \u0027available\u0027)"},{"line_number":88,"context_line":"        # Delete the test instance"},{"line_number":89,"context_line":"        self.addCleanup(self.servers_client.delete_server, server[\u0027id\u0027])"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":92,"context_line":"    def test_snapshot_create_get_list_update_delete(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FI2g%3D","line":89,"in_reply_to":"AAAAUH%2F%2FN8E%3D","updated":"2014-01-17 03:21:33.000000000","message":"good, thanks, will change it","commit_id":"41e17630512cb1ff36cba27eb678af679e0730ad"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"b571018a27500b6d0729dccfb9eac986d3cb5bc8","unresolved":false,"context_lines":[{"line_number":67,"context_line":"                                                         self.image_ref,"},{"line_number":68,"context_line":"                                                         self.flavor_ref)"},{"line_number":69,"context_line":"        self.servers_client.wait_for_server_status(server[\u0027id\u0027], \u0027ACTIVE\u0027)"},{"line_number":70,"context_line":"        self.addCleanup(self.servers_client.delete_server, server[\u0027id\u0027])"},{"line_number":71,"context_line":"        mountpoint \u003d \u0027/dev/vdc\u0027"},{"line_number":72,"context_line":"        resp, body \u003d self.volumes_client.attach_volume("},{"line_number":73,"context_line":"            self.volume_origin[\u0027id\u0027], server[\u0027id\u0027], mountpoint)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F93X4%3D","line":70,"updated":"2014-02-03 05:17:48.000000000","message":"line65-70 can be merged to the following one line:\n\n resp, server \u003d self.create_test_server(wait_until\u003d\u0027ACTIVE\u0027)","commit_id":"327694f98511515d5378be4c82252f13a067f1d7"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"f62fccc638442918b3e25e10b0e4cab160a1f9ec","unresolved":false,"context_lines":[{"line_number":67,"context_line":"                                                         self.image_ref,"},{"line_number":68,"context_line":"                                                         self.flavor_ref)"},{"line_number":69,"context_line":"        self.servers_client.wait_for_server_status(server[\u0027id\u0027], \u0027ACTIVE\u0027)"},{"line_number":70,"context_line":"        self.addCleanup(self.servers_client.delete_server, server[\u0027id\u0027])"},{"line_number":71,"context_line":"        mountpoint \u003d \u0027/dev/vdc\u0027"},{"line_number":72,"context_line":"        resp, body \u003d self.volumes_client.attach_volume("},{"line_number":73,"context_line":"            self.volume_origin[\u0027id\u0027], server[\u0027id\u0027], mountpoint)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2Fuqk%3D","line":70,"in_reply_to":"AAAAUH%2F93X4%3D","updated":"2014-02-11 07:06:52.000000000","message":"Parent class of VolumesSnapshotTest is BaseVolumeV1Test, and is not BaseComputeTest, so do not contain function create_test_server.","commit_id":"327694f98511515d5378be4c82252f13a067f1d7"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"5f9383de3f8f40454fbec7cb78689bf8f936c4e2","unresolved":false,"context_lines":[{"line_number":67,"context_line":"                                                         self.image_ref,"},{"line_number":68,"context_line":"                                                         self.flavor_ref)"},{"line_number":69,"context_line":"        self.servers_client.wait_for_server_status(server[\u0027id\u0027], \u0027ACTIVE\u0027)"},{"line_number":70,"context_line":"        self.addCleanup(self.servers_client.delete_server, server[\u0027id\u0027])"},{"line_number":71,"context_line":"        mountpoint \u003d \u0027/dev/vdc\u0027"},{"line_number":72,"context_line":"        resp, body \u003d self.volumes_client.attach_volume("},{"line_number":73,"context_line":"            self.volume_origin[\u0027id\u0027], server[\u0027id\u0027], mountpoint)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2F55g%3D","line":70,"in_reply_to":"AAAAUH%2F93X4%3D","updated":"2014-02-10 02:48:28.000000000","message":"ok, thank you, will change it","commit_id":"327694f98511515d5378be4c82252f13a067f1d7"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"2aff7f3a1d1bf77e207ba3621077eef5574fda97","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                                                         self.flavor_ref)"},{"line_number":69,"context_line":"        self.servers_client.wait_for_server_status(server[\u0027id\u0027], \u0027ACTIVE\u0027)"},{"line_number":70,"context_line":"        self.addCleanup(self.servers_client.delete_server, server[\u0027id\u0027])"},{"line_number":71,"context_line":"        mountpoint \u003d \u0027/dev/vdc\u0027"},{"line_number":72,"context_line":"        resp, body \u003d self.volumes_client.attach_volume("},{"line_number":73,"context_line":"            self.volume_origin[\u0027id\u0027], server[\u0027id\u0027], mountpoint)"},{"line_number":74,"context_line":"        self.assertEqual(202, resp.status)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2BkmE%3D","line":71,"updated":"2014-01-24 09:22:39.000000000","message":"Can you use the \u0027volume_device_name\u0027  config option here ?","commit_id":"327694f98511515d5378be4c82252f13a067f1d7"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"b571018a27500b6d0729dccfb9eac986d3cb5bc8","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                                                         self.flavor_ref)"},{"line_number":69,"context_line":"        self.servers_client.wait_for_server_status(server[\u0027id\u0027], \u0027ACTIVE\u0027)"},{"line_number":70,"context_line":"        self.addCleanup(self.servers_client.delete_server, server[\u0027id\u0027])"},{"line_number":71,"context_line":"        mountpoint \u003d \u0027/dev/vdc\u0027"},{"line_number":72,"context_line":"        resp, body \u003d self.volumes_client.attach_volume("},{"line_number":73,"context_line":"            self.volume_origin[\u0027id\u0027], server[\u0027id\u0027], mountpoint)"},{"line_number":74,"context_line":"        self.assertEqual(202, resp.status)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F93Yg%3D","line":71,"in_reply_to":"AAAAUH%2F%2BkmE%3D","updated":"2014-02-03 05:17:48.000000000","message":"Nice idea, agreed.","commit_id":"327694f98511515d5378be4c82252f13a067f1d7"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"5f9383de3f8f40454fbec7cb78689bf8f936c4e2","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                                                         self.flavor_ref)"},{"line_number":69,"context_line":"        self.servers_client.wait_for_server_status(server[\u0027id\u0027], \u0027ACTIVE\u0027)"},{"line_number":70,"context_line":"        self.addCleanup(self.servers_client.delete_server, server[\u0027id\u0027])"},{"line_number":71,"context_line":"        mountpoint \u003d \u0027/dev/vdc\u0027"},{"line_number":72,"context_line":"        resp, body \u003d self.volumes_client.attach_volume("},{"line_number":73,"context_line":"            self.volume_origin[\u0027id\u0027], server[\u0027id\u0027], mountpoint)"},{"line_number":74,"context_line":"        self.assertEqual(202, resp.status)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2F55Y%3D","line":71,"in_reply_to":"AAAAUH%2F93Yg%3D","updated":"2014-02-10 02:48:28.000000000","message":"afazekas, nice, thank you, will change it","commit_id":"327694f98511515d5378be4c82252f13a067f1d7"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"1124dbce36185d32f07deabb3f8dff3a90c8c1d6","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":75,"context_line":"        self.volumes_client.wait_for_volume_status(self.volume_origin[\u0027id\u0027],"},{"line_number":76,"context_line":"                                                   \u0027in-use\u0027)"},{"line_number":77,"context_line":"        # Snapshot a volume even if it\u0027s attached to an instance"},{"line_number":78,"context_line":"        snapshot \u003d self.create_snapshot(self.volume_origin[\u0027id\u0027],"},{"line_number":79,"context_line":"                                        force\u003dTrue)"},{"line_number":80,"context_line":"        # Delete the snapshot"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUX%2F%2Fm2k%3D","line":77,"updated":"2014-02-12 02:19:18.000000000","message":"An addCleanUp is needed to detach the volume before this call.","commit_id":"0d134a61025ae78b186eb91592166e61b72f6212"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"e5133cf4fb9269d9ae9a85eb82bb9b218915b0e2","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":75,"context_line":"        self.volumes_client.wait_for_volume_status(self.volume_origin[\u0027id\u0027],"},{"line_number":76,"context_line":"                                                   \u0027in-use\u0027)"},{"line_number":77,"context_line":"        # Snapshot a volume even if it\u0027s attached to an instance"},{"line_number":78,"context_line":"        snapshot \u003d self.create_snapshot(self.volume_origin[\u0027id\u0027],"},{"line_number":79,"context_line":"                                        force\u003dTrue)"},{"line_number":80,"context_line":"        # Delete the snapshot"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUX%2F%2Fmyc%3D","line":77,"in_reply_to":"AAAAUX%2F%2Fm2k%3D","updated":"2014-02-12 02:33:18.000000000","message":"Hi, David, had detach the volume in line86, line87, I did not use addCleanUp for it because the order of AddCleanUp execution is reverse, but detaching volume contains two steps and current implement can be more clear, thank you.","commit_id":"0d134a61025ae78b186eb91592166e61b72f6212"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"0d5f6a0873c0f882d69c2d4a3a85f4682ece3508","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":75,"context_line":"        self.volumes_client.wait_for_volume_status(self.volume_origin[\u0027id\u0027],"},{"line_number":76,"context_line":"                                                   \u0027in-use\u0027)"},{"line_number":77,"context_line":"        # Snapshot a volume even if it\u0027s attached to an instance"},{"line_number":78,"context_line":"        snapshot \u003d self.create_snapshot(self.volume_origin[\u0027id\u0027],"},{"line_number":79,"context_line":"                                        force\u003dTrue)"},{"line_number":80,"context_line":"        # Delete the snapshot"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUX%2F%2Fmaw%3D","line":77,"in_reply_to":"AAAAUX%2F%2Fmcw%3D","updated":"2014-02-12 03:56:18.000000000","message":"Thanks, David, I will change code and submit a new patch.","commit_id":"0d134a61025ae78b186eb91592166e61b72f6212"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"539c32e8b434ad5c5711c670c86934f0312ab58b","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":75,"context_line":"        self.volumes_client.wait_for_volume_status(self.volume_origin[\u0027id\u0027],"},{"line_number":76,"context_line":"                                                   \u0027in-use\u0027)"},{"line_number":77,"context_line":"        # Snapshot a volume even if it\u0027s attached to an instance"},{"line_number":78,"context_line":"        snapshot \u003d self.create_snapshot(self.volume_origin[\u0027id\u0027],"},{"line_number":79,"context_line":"                                        force\u003dTrue)"},{"line_number":80,"context_line":"        # Delete the snapshot"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUX%2F%2Fmcw%3D","line":77,"in_reply_to":"AAAAUX%2F%2Fmyc%3D","updated":"2014-02-12 03:44:42.000000000","message":"I saw those lines 86,87 but the problem is that if create snapshot fails, they will never execute. And then I believe the server delete will fail.","commit_id":"0d134a61025ae78b186eb91592166e61b72f6212"}]}
