)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"02dbbf38ebc8cb4d91dba83a06a97a96cb9c1df3","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Volume reset to maintenance mode"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add to existing test maintenance reset-volume."},{"line_number":10,"context_line":"available-\u003eerror-\u003eavailable-\u003emaintenance-\u003eavailable"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I5226b000317b2a9ab034afa90c3461011db4a030"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ffe62b97_d656085d","line":10,"updated":"2017-03-27 09:56:00.000000000","message":"So, why do we should add only \u0027maintenance\u0027 in Tempest? Is there any other statuses to test? I think it\u0027s good to put the reason in the commit message.","commit_id":"cbbf1808ce3a8ffa214d6502d340dc7d227ac2c9"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"c6b36fa9d7affc8d7a3f6124a154b2ce90aeb4a2","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Update existing test with reset-volume state to maintenance."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"The purpose here is to verify that cinder state can be changed to maintenance."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Here are all valid states for cinder:"},{"line_number":14,"context_line":"https://docs.openstack.org/developer/cinder/api/cinder.api.contrib.admin_actions.html"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ffe62b97_9da98625","line":11,"updated":"2017-03-28 09:55:42.000000000","message":"So, why do you pick the only \u0027maintenance\u0027 status in this patch? According to the cinder docs page, there are more statuses like below. So I\u0027d like to know the reason.\n\n[\u0027available\u0027, \u0027creating\u0027, \u0027in-use\u0027, \u0027detaching\u0027, \u0027managing\u0027, \u0027error_deleting\u0027, \u0027attaching\u0027, \u0027maintenance\u0027, \u0027error\u0027, \u0027error_managing\u0027, \u0027deleting\u0027]","commit_id":"ba37ac443fed68c96e69b1643c77c5faad9e5459"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"091b50995898077d6970cd6bca487416f462a280","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Update existing test with reset-volume state to maintenance."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"The purpose here is to verify that cinder state can be changed to maintenance."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Here are all valid states for cinder:"},{"line_number":14,"context_line":"https://docs.openstack.org/developer/cinder/api/cinder.api.contrib.admin_actions.html"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ffe62b97_392b8383","line":11,"updated":"2017-03-29 04:02:35.000000000","message":"Thank you for your clarification :)\nI don\u0027t think we should test all statuses if possible. All status should be tested in Cinder side. So I just wanted to know the reason. And I also think it should be written in the commit message. Make sense?","commit_id":"ba37ac443fed68c96e69b1643c77c5faad9e5459"},{"author":{"_account_id":11075,"name":"Benny Kopilov","email":"bkopilov@redhat.com","username":"bkopilov"},"change_message_id":"d89367d9c3439172ae8a8e90ba0e0518df406369","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Update existing test with reset-volume state to maintenance."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"The purpose here is to verify that cinder state can be changed to maintenance."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Here are all valid states for cinder:"},{"line_number":14,"context_line":"https://docs.openstack.org/developer/cinder/api/cinder.api.contrib.admin_actions.html"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ffe62b97_59440747","line":11,"in_reply_to":"ffe62b97_392b8383","updated":"2017-03-29 04:07:23.000000000","message":"Yes sure , i agree with you and thanks a lot for your deep review and your time.\nBenny","commit_id":"ba37ac443fed68c96e69b1643c77c5faad9e5459"},{"author":{"_account_id":11075,"name":"Benny Kopilov","email":"bkopilov@redhat.com","username":"bkopilov"},"change_message_id":"e951ee3ae477c0f6853e9e2eb0acbcf1845575f7","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Update existing test with reset-volume state to maintenance."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"The purpose here is to verify that cinder state can be changed to maintenance."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Here are all valid states for cinder:"},{"line_number":14,"context_line":"https://docs.openstack.org/developer/cinder/api/cinder.api.contrib.admin_actions.html"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ffe62b97_5ba306b3","line":11,"in_reply_to":"ffe62b97_9da98625","updated":"2017-03-28 10:28:59.000000000","message":"I pick maintance because there is no test that covers this state .\nWhen we boot a volume the state goes via creating .. till available , attaching and detaching already tested  but maintenance has no coverage at all. user should do it manually .\n\nI dont mind to add all of these steps to the testcase.\nWhat do you think ?\nBenny","commit_id":"ba37ac443fed68c96e69b1643c77c5faad9e5459"}],"tempest/api/volume/admin/test_volumes_actions.py":[{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"dd61e80562770ebd9effee53bc2624124d513330","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    @decorators.idempotent_id(\u0027d063f96e-a2e0-4f34-8b8a-395c42de1845\u0027)"},{"line_number":32,"context_line":"    def test_volume_reset_status(self):"},{"line_number":33,"context_line":"        # test volume reset status : available-\u003eerror-\u003eavailable"},{"line_number":34,"context_line":"        volume \u003d self.create_volume()"},{"line_number":35,"context_line":"        for status in [\u0027error\u0027, \u0027available\u0027, \u0027maintenance\u0027]:"},{"line_number":36,"context_line":"            self.admin_volume_client.reset_volume_status("}],"source_content_type":"text/x-python","patch_set":1,"id":"ffe62b97_dd1cf114","line":33,"range":{"start_line":33,"start_character":8,"end_line":33,"end_character":64},"updated":"2017-03-27 06:20:53.000000000","message":"Hi Benny,\nPlease update the docstring.","commit_id":"b9809d6371c52dcefa6650119f69ae2ebecc1631"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"250588d8f6e098d07eb7fddb023f919fa4032d98","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    @decorators.idempotent_id(\u0027d063f96e-a2e0-4f34-8b8a-395c42de1845\u0027)"},{"line_number":32,"context_line":"    def test_volume_reset_status(self):"},{"line_number":33,"context_line":"        # test volume reset status : available-\u003eerror-\u003eavailable"},{"line_number":34,"context_line":"        volume \u003d self.create_volume()"},{"line_number":35,"context_line":"        for status in [\u0027error\u0027, \u0027available\u0027, \u0027maintenance\u0027]:"},{"line_number":36,"context_line":"            self.admin_volume_client.reset_volume_status("}],"source_content_type":"text/x-python","patch_set":1,"id":"ffe62b97_9d99c97a","line":33,"updated":"2017-03-27 06:09:22.000000000","message":"I think this comment should be updated, too.","commit_id":"b9809d6371c52dcefa6650119f69ae2ebecc1631"},{"author":{"_account_id":11075,"name":"Benny Kopilov","email":"bkopilov@redhat.com","username":"bkopilov"},"change_message_id":"d0c2a9420abf74bd27738e0eecec3d8de531c78a","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    @decorators.idempotent_id(\u0027d063f96e-a2e0-4f34-8b8a-395c42de1845\u0027)"},{"line_number":32,"context_line":"    def test_volume_reset_status(self):"},{"line_number":33,"context_line":"        # test volume reset status : available-\u003eerror-\u003eavailable"},{"line_number":34,"context_line":"        volume \u003d self.create_volume()"},{"line_number":35,"context_line":"        for status in [\u0027error\u0027, \u0027available\u0027, \u0027maintenance\u0027]:"},{"line_number":36,"context_line":"            self.admin_volume_client.reset_volume_status("}],"source_content_type":"text/x-python","patch_set":1,"id":"ffe62b97_cf4314af","line":33,"range":{"start_line":33,"start_character":8,"end_line":33,"end_character":64},"in_reply_to":"ffe62b97_dd1cf114","updated":"2017-03-27 07:12:56.000000000","message":"thanks","commit_id":"b9809d6371c52dcefa6650119f69ae2ebecc1631"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"250588d8f6e098d07eb7fddb023f919fa4032d98","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    def test_volume_reset_status(self):"},{"line_number":33,"context_line":"        # test volume reset status : available-\u003eerror-\u003eavailable"},{"line_number":34,"context_line":"        volume \u003d self.create_volume()"},{"line_number":35,"context_line":"        for status in [\u0027error\u0027, \u0027available\u0027, \u0027maintenance\u0027]:"},{"line_number":36,"context_line":"            self.admin_volume_client.reset_volume_status("},{"line_number":37,"context_line":"                volume[\u0027id\u0027], status\u003dstatus)"},{"line_number":38,"context_line":"            volume_get \u003d self.admin_volume_client.show_volume("}],"source_content_type":"text/x-python","patch_set":1,"id":"ffe62b97_7d8a851b","line":35,"updated":"2017-03-27 06:09:22.000000000","message":"In the api document[1], the document doesn\u0027t mention about the specific status values. I only found it in the developers document[2]. So, I\u0027m not sure we should test this in Tempest. If you have a clear reason for it, please put it in the commit message.\n\n[1] https://developer.openstack.org/api-ref/block-storage/v2/index.html?expanded\u003dreset-volume-statuses-detail#volume-actions-volumes-action\n[2] https://docs.openstack.org/developer/cinder/api/cinder.api.contrib.admin_actions.html","commit_id":"b9809d6371c52dcefa6650119f69ae2ebecc1631"},{"author":{"_account_id":11075,"name":"Benny Kopilov","email":"bkopilov@redhat.com","username":"bkopilov"},"change_message_id":"d0c2a9420abf74bd27738e0eecec3d8de531c78a","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    def test_volume_reset_status(self):"},{"line_number":33,"context_line":"        # test volume reset status : available-\u003eerror-\u003eavailable"},{"line_number":34,"context_line":"        volume \u003d self.create_volume()"},{"line_number":35,"context_line":"        for status in [\u0027error\u0027, \u0027available\u0027, \u0027maintenance\u0027]:"},{"line_number":36,"context_line":"            self.admin_volume_client.reset_volume_status("},{"line_number":37,"context_line":"                volume[\u0027id\u0027], status\u003dstatus)"},{"line_number":38,"context_line":"            volume_get \u003d self.admin_volume_client.show_volume("}],"source_content_type":"text/x-python","patch_set":1,"id":"ffe62b97_f2e6bf44","line":35,"in_reply_to":"ffe62b97_7d8a851b","updated":"2017-03-27 07:12:56.000000000","message":"Hi, \nPlease check here :\nhttps://docs.openstack.org/cli-reference/cinder.html#cinder-reset-state","commit_id":"b9809d6371c52dcefa6650119f69ae2ebecc1631"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"dd61e80562770ebd9effee53bc2624124d513330","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        # test volume reset status : available-\u003eerror-\u003eavailable"},{"line_number":34,"context_line":"        volume \u003d self.create_volume()"},{"line_number":35,"context_line":"        for status in [\u0027error\u0027, \u0027available\u0027, \u0027maintenance\u0027]:"},{"line_number":36,"context_line":"            self.admin_volume_client.reset_volume_status("},{"line_number":37,"context_line":"                volume[\u0027id\u0027], status\u003dstatus)"},{"line_number":38,"context_line":"            volume_get \u003d self.admin_volume_client.show_volume("},{"line_number":39,"context_line":"                volume[\u0027id\u0027])[\u0027volume\u0027]"},{"line_number":40,"context_line":"            self.assertEqual(status, volume_get[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"ffe62b97_ddfe3137","line":37,"range":{"start_line":36,"start_character":12,"end_line":37,"end_character":44},"updated":"2017-03-27 06:20:53.000000000","message":"You have to add the following line:\nself.addCleanup(self.admin_volume_client.reset_volume_status,\n                            volume[\u0027id\u0027], status\u003d\u0027available\u0027)\nOtherwise, the volume won\u0027t be deleted since volume with \u0027maintenance\u0027 status could not be deleted unless you force delete it.","commit_id":"b9809d6371c52dcefa6650119f69ae2ebecc1631"},{"author":{"_account_id":11075,"name":"Benny Kopilov","email":"bkopilov@redhat.com","username":"bkopilov"},"change_message_id":"d0c2a9420abf74bd27738e0eecec3d8de531c78a","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        # test volume reset status : available-\u003eerror-\u003eavailable"},{"line_number":34,"context_line":"        volume \u003d self.create_volume()"},{"line_number":35,"context_line":"        for status in [\u0027error\u0027, \u0027available\u0027, \u0027maintenance\u0027]:"},{"line_number":36,"context_line":"            self.admin_volume_client.reset_volume_status("},{"line_number":37,"context_line":"                volume[\u0027id\u0027], status\u003dstatus)"},{"line_number":38,"context_line":"            volume_get \u003d self.admin_volume_client.show_volume("},{"line_number":39,"context_line":"                volume[\u0027id\u0027])[\u0027volume\u0027]"},{"line_number":40,"context_line":"            self.assertEqual(status, volume_get[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"ffe62b97_d2ebbbd9","line":37,"range":{"start_line":36,"start_character":12,"end_line":37,"end_character":44},"in_reply_to":"ffe62b97_ddfe3137","updated":"2017-03-27 07:12:56.000000000","message":"Ok , updated the chain in the loop.\nBenny","commit_id":"b9809d6371c52dcefa6650119f69ae2ebecc1631"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"02dbbf38ebc8cb4d91dba83a06a97a96cb9c1df3","unresolved":false,"context_lines":[{"line_number":38,"context_line":"                volume[\u0027id\u0027], status\u003dstatus)"},{"line_number":39,"context_line":"            volume_get \u003d self.admin_volume_client.show_volume("},{"line_number":40,"context_line":"                volume[\u0027id\u0027])[\u0027volume\u0027]"},{"line_number":41,"context_line":"            self.assertEqual(status, volume_get[\u0027status\u0027])"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @decorators.idempotent_id(\u002721737d5a-92f2-46d7-b009-a0cc0ee7a570\u0027)"},{"line_number":44,"context_line":"    def test_volume_force_delete_when_volume_is_creating(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ffe62b97_b6514465","line":41,"updated":"2017-03-27 09:56:00.000000000","message":"@zhufl: Yeah, true. It should be added addCleanup() to change the status to \u0027available\u0027.\n But I feel we should force-delete volumes in the cleanup to avoid remaining resources...","commit_id":"cbbf1808ce3a8ffa214d6502d340dc7d227ac2c9"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"df9318daf7dcd982e3ff2282b9d1312651a7c52a","unresolved":false,"context_lines":[{"line_number":38,"context_line":"                volume[\u0027id\u0027], status\u003dstatus)"},{"line_number":39,"context_line":"            volume_get \u003d self.admin_volume_client.show_volume("},{"line_number":40,"context_line":"                volume[\u0027id\u0027])[\u0027volume\u0027]"},{"line_number":41,"context_line":"            self.assertEqual(status, volume_get[\u0027status\u0027])"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @decorators.idempotent_id(\u002721737d5a-92f2-46d7-b009-a0cc0ee7a570\u0027)"},{"line_number":44,"context_line":"    def test_volume_force_delete_when_volume_is_creating(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ffe62b97_fe1fa86d","line":41,"range":{"start_line":41,"start_character":17,"end_line":41,"end_character":28},"updated":"2017-03-27 08:53:50.000000000","message":"if assertEqual fails, the volume status may not be reset to available.","commit_id":"cbbf1808ce3a8ffa214d6502d340dc7d227ac2c9"},{"author":{"_account_id":11075,"name":"Benny Kopilov","email":"bkopilov@redhat.com","username":"bkopilov"},"change_message_id":"745a8ce5fe8aab0666395bcf63d8fd316cdb1fad","unresolved":false,"context_lines":[{"line_number":38,"context_line":"                volume[\u0027id\u0027], status\u003dstatus)"},{"line_number":39,"context_line":"            volume_get \u003d self.admin_volume_client.show_volume("},{"line_number":40,"context_line":"                volume[\u0027id\u0027])[\u0027volume\u0027]"},{"line_number":41,"context_line":"            self.assertEqual(status, volume_get[\u0027status\u0027])"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @decorators.idempotent_id(\u002721737d5a-92f2-46d7-b009-a0cc0ee7a570\u0027)"},{"line_number":44,"context_line":"    def test_volume_force_delete_when_volume_is_creating(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ffe62b97_beaea795","line":41,"in_reply_to":"ffe62b97_b6514465","updated":"2017-03-27 16:31:02.000000000","message":"Ok, i think force-delete will do the work here.\nThanks !","commit_id":"cbbf1808ce3a8ffa214d6502d340dc7d227ac2c9"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"4c1ca7c4fd7d749b8454bc5d79710764d37e7643","unresolved":false,"context_lines":[{"line_number":38,"context_line":"                volume[\u0027id\u0027], status\u003dstatus)"},{"line_number":39,"context_line":"            volume_get \u003d self.admin_volume_client.show_volume("},{"line_number":40,"context_line":"                volume[\u0027id\u0027])[\u0027volume\u0027]"},{"line_number":41,"context_line":"            self.assertEqual(status, volume_get[\u0027status\u0027])"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @decorators.idempotent_id(\u002721737d5a-92f2-46d7-b009-a0cc0ee7a570\u0027)"},{"line_number":44,"context_line":"    def test_volume_force_delete_when_volume_is_creating(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ffe62b97_4030bc9f","line":41,"in_reply_to":"ffe62b97_beaea795","updated":"2017-03-28 05:31:07.000000000","message":"or add addCleanup of reset_volume_status to \u0027available\u0027 after #35 can also work","commit_id":"cbbf1808ce3a8ffa214d6502d340dc7d227ac2c9"}]}
