)]}'
{"tempest/api/volume/test_volumes_negative.py":[{"author":{"_account_id":6983,"name":"YangLei","email":"iamhappg@aliyun.com","username":"YangLei"},"change_message_id":"9ed6901918d29bae113928feb439010658c2b91b","unresolved":false,"context_lines":[{"line_number":190,"context_line":"                          str(uuid.uuid4()))"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":193,"context_line":"    def test_reserve_volume_with_negative_volume_status(self):"},{"line_number":194,"context_line":"        # to reserve a volume"},{"line_number":195,"context_line":"        resp, body \u003d self.client.reserve_volume(self.volume[\u0027id\u0027])"},{"line_number":196,"context_line":"        self.assertEqual(202, resp.status)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2F174%3D","line":193,"updated":"2013-10-28 02:50:30.000000000","message":"It seems as if we need a testcase for test_unreserve_volume_with_negative_volume_status too","commit_id":"425af8f251b998619290da245687de2d68b8b8c3"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"58ce9a5ad38b94b3a4e0b5a6d90d7e8f7e8e77ff","unresolved":false,"context_lines":[{"line_number":194,"context_line":"        # Mark volume as reserved."},{"line_number":195,"context_line":"        resp, body \u003d self.client.reserve_volume(self.volume[\u0027id\u0027])"},{"line_number":196,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":197,"context_line":"        # To get the volume info"},{"line_number":198,"context_line":"        resp, body \u003d self.client.get_volume(self.volume[\u0027id\u0027])"},{"line_number":199,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":200,"context_line":"        self.assertIn(\u0027attaching\u0027, body[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FpXE%3D","line":197,"updated":"2013-10-30 23:04:50.000000000","message":"this is only the negative test so I think you don\u0027t need lines from 197 to 200","commit_id":"5305b88bac51c8b4831760c01feea51156dc682d"},{"author":{"_account_id":8286,"name":"zhangyanzi","email":"yanzi.zhang@samsung.com","username":"zhangyanzi"},"change_message_id":"18f5ddfc70f0571be01495340eac951952feadc9","unresolved":false,"context_lines":[{"line_number":194,"context_line":"        # Mark volume as reserved."},{"line_number":195,"context_line":"        resp, body \u003d self.client.reserve_volume(self.volume[\u0027id\u0027])"},{"line_number":196,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":197,"context_line":"        # To get the volume info"},{"line_number":198,"context_line":"        resp, body \u003d self.client.get_volume(self.volume[\u0027id\u0027])"},{"line_number":199,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":200,"context_line":"        self.assertIn(\u0027attaching\u0027, body[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FpA8%3D","line":197,"in_reply_to":"AAAATn%2F%2FpXE%3D","updated":"2013-10-31 01:53:38.000000000","message":"I will change it,thanks!","commit_id":"5305b88bac51c8b4831760c01feea51156dc682d"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"58ce9a5ad38b94b3a4e0b5a6d90d7e8f7e8e77ff","unresolved":false,"context_lines":[{"line_number":205,"context_line":"        # Unmark volume as reserved."},{"line_number":206,"context_line":"        resp, body \u003d self.client.unreserve_volume(self.volume[\u0027id\u0027])"},{"line_number":207,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":208,"context_line":"        # To get the volume info"},{"line_number":209,"context_line":"        resp, body \u003d self.client.get_volume(self.volume[\u0027id\u0027])"},{"line_number":210,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":211,"context_line":"        self.assertIn(\u0027available\u0027, body[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FpW4%3D","line":208,"updated":"2013-10-30 23:04:50.000000000","message":"you also don\u0027t need lines from 208 to 211","commit_id":"5305b88bac51c8b4831760c01feea51156dc682d"},{"author":{"_account_id":8286,"name":"zhangyanzi","email":"yanzi.zhang@samsung.com","username":"zhangyanzi"},"change_message_id":"18f5ddfc70f0571be01495340eac951952feadc9","unresolved":false,"context_lines":[{"line_number":205,"context_line":"        # Unmark volume as reserved."},{"line_number":206,"context_line":"        resp, body \u003d self.client.unreserve_volume(self.volume[\u0027id\u0027])"},{"line_number":207,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":208,"context_line":"        # To get the volume info"},{"line_number":209,"context_line":"        resp, body \u003d self.client.get_volume(self.volume[\u0027id\u0027])"},{"line_number":210,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":211,"context_line":"        self.assertIn(\u0027available\u0027, body[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FpA4%3D","line":208,"in_reply_to":"AAAATn%2F%2FpW4%3D","updated":"2013-10-31 01:53:38.000000000","message":"I will change it,thanks!","commit_id":"5305b88bac51c8b4831760c01feea51156dc682d"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"58ce9a5ad38b94b3a4e0b5a6d90d7e8f7e8e77ff","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        self.assertIn(\u0027available\u0027, body[\u0027status\u0027])"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":214,"context_line":"    def test_unreserve_volume_with_negative_volume_status(self):"},{"line_number":215,"context_line":"        # Unmark volume which status is available as reserved."},{"line_number":216,"context_line":"        resp, body \u003d self.client.unreserve_volume(self.volume[\u0027id\u0027])"},{"line_number":217,"context_line":"        self.assertEqual(202, resp.status)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FpWE%3D","line":214,"updated":"2013-10-30 23:04:50.000000000","message":"isn\u0027t this an actual bug in the cinder api? why reserving twice a volume raises BadRequest and unreserving twice instead just exits silently?","commit_id":"5305b88bac51c8b4831760c01feea51156dc682d"},{"author":{"_account_id":8286,"name":"zhangyanzi","email":"yanzi.zhang@samsung.com","username":"zhangyanzi"},"change_message_id":"18f5ddfc70f0571be01495340eac951952feadc9","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        self.assertIn(\u0027available\u0027, body[\u0027status\u0027])"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":214,"context_line":"    def test_unreserve_volume_with_negative_volume_status(self):"},{"line_number":215,"context_line":"        # Unmark volume which status is available as reserved."},{"line_number":216,"context_line":"        resp, body \u003d self.client.unreserve_volume(self.volume[\u0027id\u0027])"},{"line_number":217,"context_line":"        self.assertEqual(202, resp.status)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2Fo8Y%3D","line":214,"in_reply_to":"AAAATn%2F%2FpWE%3D","updated":"2013-10-31 01:53:38.000000000","message":"Hi Giulio, I am not sure about this.\nI think unreserving twice either raises BadRequest or not is ok.\nI will send email about this question.\nThank you?","commit_id":"5305b88bac51c8b4831760c01feea51156dc682d"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"58ce9a5ad38b94b3a4e0b5a6d90d7e8f7e8e77ff","unresolved":false,"context_lines":[{"line_number":215,"context_line":"        # Unmark volume which status is available as reserved."},{"line_number":216,"context_line":"        resp, body \u003d self.client.unreserve_volume(self.volume[\u0027id\u0027])"},{"line_number":217,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":218,"context_line":"        # To get the volume info"},{"line_number":219,"context_line":"        resp, body \u003d self.client.get_volume(self.volume[\u0027id\u0027])"},{"line_number":220,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":221,"context_line":"        self.assertIn(\u0027available\u0027, body[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FpWo%3D","line":218,"updated":"2013-10-30 23:04:50.000000000","message":"again, I\u0027d drop lines from 218 to 221","commit_id":"5305b88bac51c8b4831760c01feea51156dc682d"},{"author":{"_account_id":8286,"name":"zhangyanzi","email":"yanzi.zhang@samsung.com","username":"zhangyanzi"},"change_message_id":"18f5ddfc70f0571be01495340eac951952feadc9","unresolved":false,"context_lines":[{"line_number":215,"context_line":"        # Unmark volume which status is available as reserved."},{"line_number":216,"context_line":"        resp, body \u003d self.client.unreserve_volume(self.volume[\u0027id\u0027])"},{"line_number":217,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":218,"context_line":"        # To get the volume info"},{"line_number":219,"context_line":"        resp, body \u003d self.client.get_volume(self.volume[\u0027id\u0027])"},{"line_number":220,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":221,"context_line":"        self.assertIn(\u0027available\u0027, body[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2FpA0%3D","line":218,"in_reply_to":"AAAATn%2F%2FpWo%3D","updated":"2013-10-31 01:53:38.000000000","message":"I will change it,thanks!","commit_id":"5305b88bac51c8b4831760c01feea51156dc682d"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"54e0dc7b87a6176e8cba31e6f9362c90f746f0f1","unresolved":false,"context_lines":[{"line_number":212,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.extend_volume,"},{"line_number":213,"context_line":"                          None, extend_size)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    def test_reserve_volume_with_nonexistent_volume_id(self):"},{"line_number":216,"context_line":"        self.assertRaises(exceptions.NotFound,"},{"line_number":217,"context_line":"                          self.client.reserve_volume,"},{"line_number":218,"context_line":"                          str(uuid.uuid4()))"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FaFg%3D","line":215,"updated":"2013-11-07 02:23:43.000000000","message":"I there the @attr missing?","commit_id":"c7a0b1780be19b74731d67dcf0302856ac120668"},{"author":{"_account_id":8286,"name":"zhangyanzi","email":"yanzi.zhang@samsung.com","username":"zhangyanzi"},"change_message_id":"1fcffdd6a3d904a6febb85107737568a868b19e5","unresolved":false,"context_lines":[{"line_number":212,"context_line":"        self.assertRaises(exceptions.NotFound, self.client.extend_volume,"},{"line_number":213,"context_line":"                          None, extend_size)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    def test_reserve_volume_with_nonexistent_volume_id(self):"},{"line_number":216,"context_line":"        self.assertRaises(exceptions.NotFound,"},{"line_number":217,"context_line":"                          self.client.reserve_volume,"},{"line_number":218,"context_line":"                          str(uuid.uuid4()))"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2FaD0%3D","line":215,"in_reply_to":"AAAATn%2F%2FaFg%3D","updated":"2013-11-07 02:30:50.000000000","message":"Yes, thank you very much!","commit_id":"c7a0b1780be19b74731d67dcf0302856ac120668"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"286d4cfe6f6a075510672144bdbb58b526cbe7e3","unresolved":false,"context_lines":[{"line_number":239,"context_line":""},{"line_number":240,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":241,"context_line":"    def test_unreserve_volume_with_negative_volume_status(self):"},{"line_number":242,"context_line":"        # Unmark volume which status is available as reserved."},{"line_number":243,"context_line":"        resp, body \u003d self.client.unreserve_volume(self.volume[\u0027id\u0027])"},{"line_number":244,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":245,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2FZUM%3D","line":242,"updated":"2013-11-07 09:39:47.000000000","message":"Thanks Ken\u0027ichi to bring this up. As discussed with giulivo on IRC, please simply remove this test or put a comment on it why this test is really needed.","commit_id":"d268b9e3ec79775fe3132c950c57167782b005bd"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"884f5344387bd649bec7008420748cf6686a6b0c","unresolved":false,"context_lines":[{"line_number":239,"context_line":""},{"line_number":240,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":241,"context_line":"    def test_unreserve_volume_with_negative_volume_status(self):"},{"line_number":242,"context_line":"        # Unmark volume which status is available as reserved."},{"line_number":243,"context_line":"        resp, body \u003d self.client.unreserve_volume(self.volume[\u0027id\u0027])"},{"line_number":244,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":245,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2FZ7k%3D","line":242,"updated":"2013-11-07 04:15:16.000000000","message":"This test seems a little strange for me.\nThis is a negative test, but there are not any exceptions.\n\nAccording to https://review.openstack.org/#/c/53578/4/tempest/api/volume/test_volumes_negative.py , Giulio would get the same feeling.\nIs there any consensus about this test?","commit_id":"d268b9e3ec79775fe3132c950c57167782b005bd"},{"author":{"_account_id":8286,"name":"zhangyanzi","email":"yanzi.zhang@samsung.com","username":"zhangyanzi"},"change_message_id":"6ea609955435c0ddaff0097c8d96b6daf17a6fcb","unresolved":false,"context_lines":[{"line_number":239,"context_line":""},{"line_number":240,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":241,"context_line":"    def test_unreserve_volume_with_negative_volume_status(self):"},{"line_number":242,"context_line":"        # Unmark volume which status is available as reserved."},{"line_number":243,"context_line":"        resp, body \u003d self.client.unreserve_volume(self.volume[\u0027id\u0027])"},{"line_number":244,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":245,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2FZqQ%3D","line":242,"in_reply_to":"AAAATn%2F%2FZ7k%3D","updated":"2013-11-07 07:01:12.000000000","message":"Done","commit_id":"d268b9e3ec79775fe3132c950c57167782b005bd"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"2c36b5fd04f571ef65037f74aa98dff4330e74e5","unresolved":false,"context_lines":[{"line_number":239,"context_line":""},{"line_number":240,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":241,"context_line":"    def test_unreserve_volume_with_negative_volume_status(self):"},{"line_number":242,"context_line":"        # Unmark volume which status is available as reserved."},{"line_number":243,"context_line":"        resp, body \u003d self.client.unreserve_volume(self.volume[\u0027id\u0027])"},{"line_number":244,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":245,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F%2FYOI%3D","line":242,"in_reply_to":"AAAATn%2F%2FZUM%3D","updated":"2013-11-07 20:26:45.000000000","message":"Thanks, Marc.\nI agree with you.","commit_id":"d268b9e3ec79775fe3132c950c57167782b005bd"}]}
