)]}'
{"tempest/api/volume/test_volumes_snapshots.py":[{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"6cb6f0d957003c13c9e5ccb0222f615236c1d896","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        snapshot1 \u003d self.create_snapshot(self.volume_origin[\u0027id\u0027],"},{"line_number":161,"context_line":"                                         display_name\u003ds_name,"},{"line_number":162,"context_line":"                                         display_description\u003ddesc)"},{"line_number":163,"context_line":"        #Create a snapshot with same display_name and display_description"},{"line_number":164,"context_line":"        snapshot2 \u003d self.create_snapshot(self.volume_origin[\u0027id\u0027],"},{"line_number":165,"context_line":"                                         display_name\u003ds_name,"},{"line_number":166,"context_line":"                                         display_description\u003ddesc)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FcHE%3D","line":163,"updated":"2014-01-13 21:53:22.000000000","message":"Small nit: pep8 recommends to use space after #.","commit_id":"e381a08f359cd3931cc69fad9a70737d57f73856"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"146f78e693bd8f7cc5c72f8f6e5760a439848af4","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        snapshot1 \u003d self.create_snapshot(self.volume_origin[\u0027id\u0027],"},{"line_number":161,"context_line":"                                         display_name\u003ds_name,"},{"line_number":162,"context_line":"                                         display_description\u003ddesc)"},{"line_number":163,"context_line":"        #Create a snapshot with same display_name and display_description"},{"line_number":164,"context_line":"        snapshot2 \u003d self.create_snapshot(self.volume_origin[\u0027id\u0027],"},{"line_number":165,"context_line":"                                         display_name\u003ds_name,"},{"line_number":166,"context_line":"                                         display_description\u003ddesc)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FaM8%3D","line":163,"in_reply_to":"AAAAUH%2F%2FcHE%3D","updated":"2014-01-14 02:02:29.000000000","message":"ok, thanks","commit_id":"e381a08f359cd3931cc69fad9a70737d57f73856"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"eaf2ab7889110ce92eb059a915df63f04c62a70d","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        self.assertEqual(new_desc, updated_snapshot[\u0027display_description\u0027])"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        # Delete the snapshot"},{"line_number":149,"context_line":"        self.snapshots_client.delete_snapshot(snapshot[\u0027id\u0027])"},{"line_number":150,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":151,"context_line":"        self.snapshots_client.wait_for_resource_deletion(snapshot[\u0027id\u0027])"},{"line_number":152,"context_line":"        self.snapshots.remove(snapshot)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUX%2F%2B4Ns%3D","line":149,"updated":"2014-02-18 13:21:38.000000000","message":"Could you use instead something based on testtools\u0027 method addCleanup ?\n\nWith this patch, if there is an exception or an assertion failure before the \"# Delete the snapshot\" block, then the snapshot will not be deleted right ?","commit_id":"3fdbfd3d080228d0dc203f979620235da471920f"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"a547e8ea594108ad43e01d00ea6e1ae20928e2e0","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        self.assertEqual(new_desc, updated_snapshot[\u0027display_description\u0027])"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        # Delete the snapshot"},{"line_number":149,"context_line":"        self.snapshots_client.delete_snapshot(snapshot[\u0027id\u0027])"},{"line_number":150,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":151,"context_line":"        self.snapshots_client.wait_for_resource_deletion(snapshot[\u0027id\u0027])"},{"line_number":152,"context_line":"        self.snapshots.remove(snapshot)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUX%2F%2Bnlc%3D","line":149,"in_reply_to":"AAAAUX%2F%2B4Ns%3D","updated":"2014-02-20 06:54:55.000000000","message":"ok, will change it","commit_id":"3fdbfd3d080228d0dc203f979620235da471920f"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"05de97ce7832866884d9acf97f7baef641bda38f","unresolved":false,"context_lines":[{"line_number":137,"context_line":"        self.snapshots.remove(snapshot)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":140,"context_line":"    def test_snapshot_create_update_with_specific_characters(self):"},{"line_number":141,"context_line":"        # Create and update a snapshot which display_name and"},{"line_number":142,"context_line":"        # display_description contain specific_characters"},{"line_number":143,"context_line":"        s_name \u003d \u0027@#$%^* name\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2FamU%3D","line":140,"updated":"2014-03-06 07:59:08.000000000","message":"Would be better to modify the \u0027test_snapshot_create_get_list_update_delete\u0027 and the `special` characters as rand_name parameter.","commit_id":"640d84a3dea5a11773085337fb72540c1bd50bd0"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"adcb931ef37ff7f8a8d9704cffd80ecbad5310c7","unresolved":false,"context_lines":[{"line_number":137,"context_line":"        self.snapshots.remove(snapshot)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":140,"context_line":"    def test_snapshot_create_update_with_specific_characters(self):"},{"line_number":141,"context_line":"        # Create and update a snapshot which display_name and"},{"line_number":142,"context_line":"        # display_description contain specific_characters"},{"line_number":143,"context_line":"        s_name \u003d \u0027@#$%^* name\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAVn%2F%2FaRM%3D","line":140,"in_reply_to":"AAAAVn%2F%2FamU%3D","updated":"2014-03-06 08:49:21.000000000","message":"Hi, afazekas, new patch will use params instead of characters, I think test_snapshot_create_get_list_update_delete(self) had test rand names, this case is for testing specific params like \u0027#$%^\u0027. thank you :)","commit_id":"640d84a3dea5a11773085337fb72540c1bd50bd0"},{"author":{"_account_id":8623,"name":"Kaitlin Farr","email":"kaitlin.farr@jhuapl.edu","username":"kaitlin.farr"},"change_message_id":"7ceb9c2384f4785be6ca91ee821da437ffc9614c","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        self.volumes_client.detach_volume(volume_id)"},{"line_number":43,"context_line":"        self.volumes_client.wait_for_volume_status(volume_id, \u0027available\u0027)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def _delete_snapshot(self, snapshot):"},{"line_number":46,"context_line":"        \"\"\"Delete snapshot and remove it from snapshots list.\"\"\""},{"line_number":47,"context_line":"        self.snapshots_client.delete_snapshot(snapshot[\u0027id\u0027])"},{"line_number":48,"context_line":"        self.snapshots_client.wait_for_resource_deletion(snapshot[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAVn%2F%2FVMk%3D","line":45,"updated":"2014-03-06 20:37:51.000000000","message":"In patch set 3, a reviewer suggested deleting snapshots with addCleanup, but doesn\u0027t BaseVolumeTest\u0027s tearDownClass already clear the snapshots at the end of the test with clear_snapshots(), even if the test errors?  Please correct me if I\u0027m mistaken.\n\nIf you had a reason to add specific snapshots to the deletion queue, then this _delete_snapshot method is fine.  Otherwise, you could either delete the snapshot manually or use clear_snapshots directly in the test, like how test_volume_from_snapshot does, just FYI","commit_id":"06bf395ab650c242f73a503f13df88c5bbba2493"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"774ff99614784dfadd7e0f559c26abd4e72b9c19","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        self.volumes_client.detach_volume(volume_id)"},{"line_number":43,"context_line":"        self.volumes_client.wait_for_volume_status(volume_id, \u0027available\u0027)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def _delete_snapshot(self, snapshot):"},{"line_number":46,"context_line":"        \"\"\"Delete snapshot and remove it from snapshots list.\"\"\""},{"line_number":47,"context_line":"        self.snapshots_client.delete_snapshot(snapshot[\u0027id\u0027])"},{"line_number":48,"context_line":"        self.snapshots_client.wait_for_resource_deletion(snapshot[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F%2F4gg%3D","line":45,"in_reply_to":"AAAAVn%2F%2FVMk%3D","updated":"2014-03-13 06:57:44.000000000","message":"Hi, Kaitlin, thank you for detailed review first, I want to explain why I add this function.\n\nI do not think it is better to wait tearDownClass to clear the snapshots, because some exiting snapshot which we do not delete manually in one test case will affect the result of later test case, for example, in later case, including number checking of snapshots, may get unexpected result.\n\nIn my case, I can use clear_snapshot function instead because the setUpClass do not create one snapshot for all test case. but if setUpClass contain snapshot creating, clear_snapshot may delete it mistakenly. _delete_snapshot will not remove unrelated snapshots, it should be better. \n\nWhy test_volume_from_snapshot can use clear_snapshot, I think the reason is it is the last case in VolumesSnapshotTest, if If not for code read easier, can even delete it, because after executing the last case, will execute tearDownClass.","commit_id":"06bf395ab650c242f73a503f13df88c5bbba2493"},{"author":{"_account_id":8623,"name":"Kaitlin Farr","email":"kaitlin.farr@jhuapl.edu","username":"kaitlin.farr"},"change_message_id":"7ceb9c2384f4785be6ca91ee821da437ffc9614c","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        # Snapshot a volume even if it\u0027s attached to an instance"},{"line_number":90,"context_line":"        snapshot \u003d self.create_snapshot(self.volume_origin[\u0027id\u0027],"},{"line_number":91,"context_line":"                                        force\u003dTrue)"},{"line_number":92,"context_line":"        self.addCleanup(self._delete_snapshot, snapshot)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":95,"context_line":"    def test_snapshot_create_get_list_update_delete(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAVn%2F%2FU8s%3D","line":92,"updated":"2014-03-06 20:37:51.000000000","message":"If you change snapshot deletion in one existing method, you might also want to change the other existing methods to keep it consistent.  (You could probably do that in another patch.)  Either that or don\u0027t change any of the existing methods.","commit_id":"06bf395ab650c242f73a503f13df88c5bbba2493"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"774ff99614784dfadd7e0f559c26abd4e72b9c19","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        # Snapshot a volume even if it\u0027s attached to an instance"},{"line_number":90,"context_line":"        snapshot \u003d self.create_snapshot(self.volume_origin[\u0027id\u0027],"},{"line_number":91,"context_line":"                                        force\u003dTrue)"},{"line_number":92,"context_line":"        self.addCleanup(self._delete_snapshot, snapshot)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":95,"context_line":"    def test_snapshot_create_get_list_update_delete(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F%2F4d8%3D","line":92,"in_reply_to":"AAAAVn%2F%2FU8s%3D","updated":"2014-03-13 06:57:44.000000000","message":"I agree, will do this in another patch,Thank you, Kaitlin","commit_id":"06bf395ab650c242f73a503f13df88c5bbba2493"},{"author":{"_account_id":8623,"name":"Kaitlin Farr","email":"kaitlin.farr@jhuapl.edu","username":"kaitlin.farr"},"change_message_id":"7ceb9c2384f4785be6ca91ee821da437ffc9614c","unresolved":false,"context_lines":[{"line_number":140,"context_line":"    def test_snapshot_create_update_with_duplicated_specific_params(self):"},{"line_number":141,"context_line":"        # Create and update a snapshot which display_name and"},{"line_number":142,"context_line":"        # display_description contain specific characters"},{"line_number":143,"context_line":"        # Create and update snapshots with exist display_name and"},{"line_number":144,"context_line":"        # display_description"},{"line_number":145,"context_line":"        # Create two initial snapshots for duplicated params test"},{"line_number":146,"context_line":"        s_name1 \u003d \u0027@#$%^* name\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAVn%2F%2FU0k%3D","line":143,"updated":"2014-03-06 20:37:51.000000000","message":"small nit: *existing","commit_id":"06bf395ab650c242f73a503f13df88c5bbba2493"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"774ff99614784dfadd7e0f559c26abd4e72b9c19","unresolved":false,"context_lines":[{"line_number":140,"context_line":"    def test_snapshot_create_update_with_duplicated_specific_params(self):"},{"line_number":141,"context_line":"        # Create and update a snapshot which display_name and"},{"line_number":142,"context_line":"        # display_description contain specific characters"},{"line_number":143,"context_line":"        # Create and update snapshots with exist display_name and"},{"line_number":144,"context_line":"        # display_description"},{"line_number":145,"context_line":"        # Create two initial snapshots for duplicated params test"},{"line_number":146,"context_line":"        s_name1 \u003d \u0027@#$%^* name\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F%2F4d4%3D","line":143,"in_reply_to":"AAAAVn%2F%2FU0k%3D","updated":"2014-03-13 06:57:44.000000000","message":"Thank you, Kaitlin","commit_id":"06bf395ab650c242f73a503f13df88c5bbba2493"},{"author":{"_account_id":8623,"name":"Kaitlin Farr","email":"kaitlin.farr@jhuapl.edu","username":"kaitlin.farr"},"change_message_id":"7ceb9c2384f4785be6ca91ee821da437ffc9614c","unresolved":false,"context_lines":[{"line_number":169,"context_line":"                         \"Referred volume origin mismatch\")"},{"line_number":170,"context_line":"        self.assertEqual(s_name1, snap_get[\u0027display_name\u0027])"},{"line_number":171,"context_line":"        self.assertEqual(desc1, snap_get[\u0027display_description\u0027])"},{"line_number":172,"context_line":"        # Updates snapshot with exist values in initial_snapshot2"},{"line_number":173,"context_line":"        resp, update_snapshot \u003d \\"},{"line_number":174,"context_line":"            self.snapshots_client.update_snapshot(snapshot[\u0027id\u0027],"},{"line_number":175,"context_line":"                                                  display_name\u003ds_name2,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAVn%2F%2FUz8%3D","line":172,"updated":"2014-03-06 20:37:51.000000000","message":"another small nit: *existing","commit_id":"06bf395ab650c242f73a503f13df88c5bbba2493"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"774ff99614784dfadd7e0f559c26abd4e72b9c19","unresolved":false,"context_lines":[{"line_number":169,"context_line":"                         \"Referred volume origin mismatch\")"},{"line_number":170,"context_line":"        self.assertEqual(s_name1, snap_get[\u0027display_name\u0027])"},{"line_number":171,"context_line":"        self.assertEqual(desc1, snap_get[\u0027display_description\u0027])"},{"line_number":172,"context_line":"        # Updates snapshot with exist values in initial_snapshot2"},{"line_number":173,"context_line":"        resp, update_snapshot \u003d \\"},{"line_number":174,"context_line":"            self.snapshots_client.update_snapshot(snapshot[\u0027id\u0027],"},{"line_number":175,"context_line":"                                                  display_name\u003ds_name2,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F%2F4ds%3D","line":172,"in_reply_to":"AAAAVn%2F%2FUz8%3D","updated":"2014-03-13 06:57:44.000000000","message":"Thank you, Kaitlin","commit_id":"06bf395ab650c242f73a503f13df88c5bbba2493"},{"author":{"_account_id":8623,"name":"Kaitlin Farr","email":"kaitlin.farr@jhuapl.edu","username":"kaitlin.farr"},"change_message_id":"f1b690c5343d4bac73406044ab5f73274060e6a7","unresolved":false,"context_lines":[{"line_number":91,"context_line":"                                        force\u003dTrue)"},{"line_number":92,"context_line":"        # Delete the snapshot"},{"line_number":93,"context_line":"        self.snapshots_client.delete_snapshot(snapshot[\u0027id\u0027])"},{"line_number":94,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":95,"context_line":"        self.snapshots_client.wait_for_resource_deletion(snapshot[\u0027id\u0027])"},{"line_number":96,"context_line":"        self.snapshots.remove(snapshot)"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAWH%2F%2Fr3w%3D","line":94,"updated":"2014-03-14 14:19:10.000000000","message":"This error is in the logs for the patchset:\n\n2014-03-14 04:44:34.892 | Traceback (most recent call last):\n2014-03-14 04:44:34.892 |   File \"tempest/api/volume/test_volumes_snapshots.py\", line 94, in test_snapshot_create_with_volume_in_use\n2014-03-14 04:44:34.892 |     self.assertEqual(200, resp.status)\n2014-03-14 04:44:34.892 |   File \"/usr/local/lib/python2.7/dist-packages/testtools/testcase.py\", line 321, in assertEqual\n2014-03-14 04:44:34.893 |     self.assertThat(observed, matcher, message)\n2014-03-14 04:44:34.893 |   File \"/usr/local/lib/python2.7/dist-packages/testtools/testcase.py\", line 406, in assertThat\n2014-03-14 04:44:34.893 |     raise mismatch_error\n2014-03-14 04:44:34.893 | MismatchError: 200 !\u003d 202\n\nAccording to this documentation (http://docs.openstack.org/api/openstack-block-storage/2.0/content/Delete_Snapshot.html), the response is 202 -- what does 200 mean?","commit_id":"9888bb49567b23ba1557dc87a2432fd8c2674532"},{"author":{"_account_id":8651,"name":"Chen Xiao","email":"chenxiao@cn.ibm.com","username":"chenxiao"},"change_message_id":"fc5527acd0ca48d3139725208fd5311039f85719","unresolved":false,"context_lines":[{"line_number":91,"context_line":"                                        force\u003dTrue)"},{"line_number":92,"context_line":"        # Delete the snapshot"},{"line_number":93,"context_line":"        self.snapshots_client.delete_snapshot(snapshot[\u0027id\u0027])"},{"line_number":94,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":95,"context_line":"        self.snapshots_client.wait_for_resource_deletion(snapshot[\u0027id\u0027])"},{"line_number":96,"context_line":"        self.snapshots.remove(snapshot)"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAWH%2F%2FmQ0%3D","line":94,"in_reply_to":"AAAAWH%2F%2Fr3w%3D","updated":"2014-03-15 13:14:21.000000000","message":"my mistake, thank you, Kaitlin","commit_id":"9888bb49567b23ba1557dc87a2432fd8c2674532"}]}
