)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"244215601b9d076a30b97616fc672efc8d2cbf29","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2017-10-24 14:08:38 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add support for enhanced features to the QNAP Cinder driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This adds enhanced supports to the QNAP Cinder driver:"},{"line_number":10,"context_line":" - CHAP"},{"line_number":11,"context_line":" - Thin Provision"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"3f4b6375_0140d634","line":8,"updated":"2017-10-31 16:24:08.000000000","message":"This appears to be adding the whole driver, and not just enhanced features for the driver.","commit_id":"c1610c56eb4f1754a80ea94680997d84c3e9c910"}],"cinder/tests/unit/volume/drivers/test_qnap.py":[{"author":{"_account_id":22255,"name":"Tuan","email":"tuanla@vn.fujitsu.com","username":"Tuan"},"change_message_id":"dc6a8fe32b3eb5ee7e79869bf51c27b0c25b3640","unresolved":false,"context_lines":[{"line_number":2200,"context_line":"    @mock.patch(\u0027cinder.volume.drivers.qnap.QnapAPIExecutor\u0027)"},{"line_number":2201,"context_line":"    def test_initialize_connection_with_target_exist_negative_wrong_provider_2("},{"line_number":2202,"context_line":"            self,"},{"line_number":2203,"context_line":"            mock_api_executor):"},{"line_number":2204,"context_line":"        \"\"\"Test initialize connection.\"\"\""},{"line_number":2205,"context_line":"        fake_volume \u003d VolumeClass("},{"line_number":2206,"context_line":"            \u0027fakeDisplayName\u0027, \u0027fakeId\u0027, 100, \u0027fakeLunName\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f4e5783_f10da637","line":2203,"range":{"start_line":2203,"start_character":6,"end_line":2203,"end_character":31},"updated":"2017-10-11 09:47:20.000000000","message":"don\u0027t need new line","commit_id":"91c56357eed3856144d757d8f8b7aab7fa1f35a5"},{"author":{"_account_id":26134,"name":"Chris Yang","email":"chrisyang@qnap.com","username":"chrisyang"},"change_message_id":"59de2f3a5ee9ec1b142c872e35c251b7456dfd13","unresolved":false,"context_lines":[{"line_number":2200,"context_line":"    @mock.patch(\u0027cinder.volume.drivers.qnap.QnapAPIExecutor\u0027)"},{"line_number":2201,"context_line":"    def test_initialize_connection_with_target_exist_negative_wrong_provider_2("},{"line_number":2202,"context_line":"            self,"},{"line_number":2203,"context_line":"            mock_api_executor):"},{"line_number":2204,"context_line":"        \"\"\"Test initialize connection.\"\"\""},{"line_number":2205,"context_line":"        fake_volume \u003d VolumeClass("},{"line_number":2206,"context_line":"            \u0027fakeDisplayName\u0027, \u0027fakeId\u0027, 100, \u0027fakeLunName\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_eae798ab","line":2203,"range":{"start_line":2203,"start_character":6,"end_line":2203,"end_character":31},"in_reply_to":"5f4e5783_f10da637","updated":"2017-10-24 07:13:22.000000000","message":"Done","commit_id":"91c56357eed3856144d757d8f8b7aab7fa1f35a5"},{"author":{"_account_id":22255,"name":"Tuan","email":"tuanla@vn.fujitsu.com","username":"Tuan"},"change_message_id":"dc6a8fe32b3eb5ee7e79869bf51c27b0c25b3640","unresolved":false,"context_lines":[{"line_number":2554,"context_line":"    @mock.patch(\u0027six.moves.http_client.HTTPConnection\u0027)"},{"line_number":2555,"context_line":"    def test_delete_lun_negative("},{"line_number":2556,"context_line":"            self,"},{"line_number":2557,"context_line":"            mock_http_connection):"},{"line_number":2558,"context_line":"        \"\"\"Test delete lun.\"\"\""},{"line_number":2559,"context_line":"        mock_http_connection.return_value.getresponse.side_effect \u003d (["},{"line_number":2560,"context_line":"            FakeLoginResponse(),"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f4e5783_7132d6f3","line":2557,"range":{"start_line":2557,"start_character":0,"end_line":2557,"end_character":34},"updated":"2017-10-11 09:47:20.000000000","message":"same","commit_id":"91c56357eed3856144d757d8f8b7aab7fa1f35a5"},{"author":{"_account_id":26134,"name":"Chris Yang","email":"chrisyang@qnap.com","username":"chrisyang"},"change_message_id":"59de2f3a5ee9ec1b142c872e35c251b7456dfd13","unresolved":false,"context_lines":[{"line_number":2554,"context_line":"    @mock.patch(\u0027six.moves.http_client.HTTPConnection\u0027)"},{"line_number":2555,"context_line":"    def test_delete_lun_negative("},{"line_number":2556,"context_line":"            self,"},{"line_number":2557,"context_line":"            mock_http_connection):"},{"line_number":2558,"context_line":"        \"\"\"Test delete lun.\"\"\""},{"line_number":2559,"context_line":"        mock_http_connection.return_value.getresponse.side_effect \u003d (["},{"line_number":2560,"context_line":"            FakeLoginResponse(),"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_caecdc90","line":2557,"range":{"start_line":2557,"start_character":0,"end_line":2557,"end_character":34},"in_reply_to":"5f4e5783_7132d6f3","updated":"2017-10-24 07:13:22.000000000","message":"Done","commit_id":"91c56357eed3856144d757d8f8b7aab7fa1f35a5"},{"author":{"_account_id":22255,"name":"Tuan","email":"tuanla@vn.fujitsu.com","username":"Tuan"},"change_message_id":"dc6a8fe32b3eb5ee7e79869bf51c27b0c25b3640","unresolved":false,"context_lines":[{"line_number":2850,"context_line":""},{"line_number":2851,"context_line":"    @mock.patch(\u0027six.moves.http_client.HTTPConnection\u0027)"},{"line_number":2852,"context_line":"    def test_add_target_init("},{"line_number":2853,"context_line":"            self,"},{"line_number":2854,"context_line":"            mock_http_connection):"},{"line_number":2855,"context_line":"        \"\"\"Test add target init.\"\"\""},{"line_number":2856,"context_line":"        mock_http_connection.return_value.getresponse.side_effect \u003d (["},{"line_number":2857,"context_line":"            FakeLoginResponse(),"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f4e5783_31521e15","line":2854,"range":{"start_line":2853,"start_character":0,"end_line":2854,"end_character":34},"updated":"2017-10-11 09:47:20.000000000","message":"same","commit_id":"91c56357eed3856144d757d8f8b7aab7fa1f35a5"},{"author":{"_account_id":26134,"name":"Chris Yang","email":"chrisyang@qnap.com","username":"chrisyang"},"change_message_id":"59de2f3a5ee9ec1b142c872e35c251b7456dfd13","unresolved":false,"context_lines":[{"line_number":2850,"context_line":""},{"line_number":2851,"context_line":"    @mock.patch(\u0027six.moves.http_client.HTTPConnection\u0027)"},{"line_number":2852,"context_line":"    def test_add_target_init("},{"line_number":2853,"context_line":"            self,"},{"line_number":2854,"context_line":"            mock_http_connection):"},{"line_number":2855,"context_line":"        \"\"\"Test add target init.\"\"\""},{"line_number":2856,"context_line":"        mock_http_connection.return_value.getresponse.side_effect \u003d (["},{"line_number":2857,"context_line":"            FakeLoginResponse(),"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_6afba846","line":2854,"range":{"start_line":2853,"start_character":0,"end_line":2854,"end_character":34},"in_reply_to":"5f4e5783_31521e15","updated":"2017-10-24 07:13:22.000000000","message":"Done","commit_id":"91c56357eed3856144d757d8f8b7aab7fa1f35a5"},{"author":{"_account_id":22255,"name":"Tuan","email":"tuanla@vn.fujitsu.com","username":"Tuan"},"change_message_id":"dc6a8fe32b3eb5ee7e79869bf51c27b0c25b3640","unresolved":false,"context_lines":[{"line_number":3134,"context_line":""},{"line_number":3135,"context_line":"    @mock.patch(\u0027six.moves.http_client.HTTPConnection\u0027)"},{"line_number":3136,"context_line":"    def test_disable_lun_negative("},{"line_number":3137,"context_line":"            self,"},{"line_number":3138,"context_line":"            mock_http_connection):"},{"line_number":3139,"context_line":"        \"\"\"Test disable lun.\"\"\""},{"line_number":3140,"context_line":"        mock_http_connection.return_value.getresponse.side_effect \u003d (["},{"line_number":3141,"context_line":"            FakeLoginResponse(),"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f4e5783_d1406a38","line":3138,"range":{"start_line":3137,"start_character":0,"end_line":3138,"end_character":34},"updated":"2017-10-11 09:47:20.000000000","message":"same","commit_id":"91c56357eed3856144d757d8f8b7aab7fa1f35a5"},{"author":{"_account_id":26134,"name":"Chris Yang","email":"chrisyang@qnap.com","username":"chrisyang"},"change_message_id":"59de2f3a5ee9ec1b142c872e35c251b7456dfd13","unresolved":false,"context_lines":[{"line_number":3134,"context_line":""},{"line_number":3135,"context_line":"    @mock.patch(\u0027six.moves.http_client.HTTPConnection\u0027)"},{"line_number":3136,"context_line":"    def test_disable_lun_negative("},{"line_number":3137,"context_line":"            self,"},{"line_number":3138,"context_line":"            mock_http_connection):"},{"line_number":3139,"context_line":"        \"\"\"Test disable lun.\"\"\""},{"line_number":3140,"context_line":"        mock_http_connection.return_value.getresponse.side_effect \u003d (["},{"line_number":3141,"context_line":"            FakeLoginResponse(),"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_4af8ec47","line":3138,"range":{"start_line":3137,"start_character":0,"end_line":3138,"end_character":34},"in_reply_to":"5f4e5783_d1406a38","updated":"2017-10-24 07:13:22.000000000","message":"Done","commit_id":"91c56357eed3856144d757d8f8b7aab7fa1f35a5"},{"author":{"_account_id":22255,"name":"Tuan","email":"tuanla@vn.fujitsu.com","username":"Tuan"},"change_message_id":"dc6a8fe32b3eb5ee7e79869bf51c27b0c25b3640","unresolved":false,"context_lines":[{"line_number":3354,"context_line":""},{"line_number":3355,"context_line":"    @mock.patch(\u0027six.moves.http_client.HTTPConnection\u0027)"},{"line_number":3356,"context_line":"    def test_get_lun_info("},{"line_number":3357,"context_line":"            self,"},{"line_number":3358,"context_line":"            mock_http_connection):"},{"line_number":3359,"context_line":"        \"\"\"Test get lun info.\"\"\""},{"line_number":3360,"context_line":"        mock_http_connection.return_value.getresponse.side_effect \u003d (["},{"line_number":3361,"context_line":"            FakeLoginResponse(),"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f4e5783_7147764d","line":3358,"range":{"start_line":3357,"start_character":0,"end_line":3358,"end_character":34},"updated":"2017-10-11 09:47:20.000000000","message":"same","commit_id":"91c56357eed3856144d757d8f8b7aab7fa1f35a5"},{"author":{"_account_id":26134,"name":"Chris Yang","email":"chrisyang@qnap.com","username":"chrisyang"},"change_message_id":"59de2f3a5ee9ec1b142c872e35c251b7456dfd13","unresolved":false,"context_lines":[{"line_number":3354,"context_line":""},{"line_number":3355,"context_line":"    @mock.patch(\u0027six.moves.http_client.HTTPConnection\u0027)"},{"line_number":3356,"context_line":"    def test_get_lun_info("},{"line_number":3357,"context_line":"            self,"},{"line_number":3358,"context_line":"            mock_http_connection):"},{"line_number":3359,"context_line":"        \"\"\"Test get lun info.\"\"\""},{"line_number":3360,"context_line":"        mock_http_connection.return_value.getresponse.side_effect \u003d (["},{"line_number":3361,"context_line":"            FakeLoginResponse(),"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_2a97f0ee","line":3358,"range":{"start_line":3357,"start_character":0,"end_line":3358,"end_character":34},"in_reply_to":"5f4e5783_7147764d","updated":"2017-10-24 07:13:22.000000000","message":"Done","commit_id":"91c56357eed3856144d757d8f8b7aab7fa1f35a5"},{"author":{"_account_id":22255,"name":"Tuan","email":"tuanla@vn.fujitsu.com","username":"Tuan"},"change_message_id":"dc6a8fe32b3eb5ee7e79869bf51c27b0c25b3640","unresolved":false,"context_lines":[{"line_number":4374,"context_line":""},{"line_number":4375,"context_line":"    @mock.patch(\u0027six.moves.http_client.HTTPConnection\u0027)"},{"line_number":4376,"context_line":"    def test_get_ethernet_ip_with_type_all("},{"line_number":4377,"context_line":"            self,"},{"line_number":4378,"context_line":"            mock_http_connection):"},{"line_number":4379,"context_line":"        \"\"\"Test get ethernet ip.\"\"\""},{"line_number":4380,"context_line":"        mock_http_connection.return_value.getresponse.side_effect \u003d (["},{"line_number":4381,"context_line":"            FakeLoginResponse(),"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f4e5783_519b5ac8","line":4378,"range":{"start_line":4377,"start_character":0,"end_line":4378,"end_character":34},"updated":"2017-10-11 09:47:20.000000000","message":"same","commit_id":"91c56357eed3856144d757d8f8b7aab7fa1f35a5"},{"author":{"_account_id":26134,"name":"Chris Yang","email":"chrisyang@qnap.com","username":"chrisyang"},"change_message_id":"59de2f3a5ee9ec1b142c872e35c251b7456dfd13","unresolved":false,"context_lines":[{"line_number":4374,"context_line":""},{"line_number":4375,"context_line":"    @mock.patch(\u0027six.moves.http_client.HTTPConnection\u0027)"},{"line_number":4376,"context_line":"    def test_get_ethernet_ip_with_type_all("},{"line_number":4377,"context_line":"            self,"},{"line_number":4378,"context_line":"            mock_http_connection):"},{"line_number":4379,"context_line":"        \"\"\"Test get ethernet ip.\"\"\""},{"line_number":4380,"context_line":"        mock_http_connection.return_value.getresponse.side_effect \u003d (["},{"line_number":4381,"context_line":"            FakeLoginResponse(),"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_0a9c340d","line":4378,"range":{"start_line":4377,"start_character":0,"end_line":4378,"end_character":34},"in_reply_to":"5f4e5783_519b5ac8","updated":"2017-10-24 07:13:22.000000000","message":"Done","commit_id":"91c56357eed3856144d757d8f8b7aab7fa1f35a5"},{"author":{"_account_id":22255,"name":"Tuan","email":"tuanla@vn.fujitsu.com","username":"Tuan"},"change_message_id":"dc6a8fe32b3eb5ee7e79869bf51c27b0c25b3640","unresolved":false,"context_lines":[{"line_number":5365,"context_line":"    @mock.patch(\u0027six.moves.http_client.HTTPConnection\u0027)"},{"line_number":5366,"context_line":"    def test_remove_target_init_negative_with_wrong_result("},{"line_number":5367,"context_line":"            self,"},{"line_number":5368,"context_line":"            mock_http_connection):"},{"line_number":5369,"context_line":"        \"\"\"Test remove target init.\"\"\""},{"line_number":5370,"context_line":"        mock_http_connection.return_value.getresponse.side_effect \u003d (["},{"line_number":5371,"context_line":"            FakeLoginResponse(),"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f4e5783_f1a926df","line":5368,"range":{"start_line":5368,"start_character":0,"end_line":5368,"end_character":34},"updated":"2017-10-11 09:47:20.000000000","message":"same","commit_id":"91c56357eed3856144d757d8f8b7aab7fa1f35a5"},{"author":{"_account_id":26134,"name":"Chris Yang","email":"chrisyang@qnap.com","username":"chrisyang"},"change_message_id":"59de2f3a5ee9ec1b142c872e35c251b7456dfd13","unresolved":false,"context_lines":[{"line_number":5365,"context_line":"    @mock.patch(\u0027six.moves.http_client.HTTPConnection\u0027)"},{"line_number":5366,"context_line":"    def test_remove_target_init_negative_with_wrong_result("},{"line_number":5367,"context_line":"            self,"},{"line_number":5368,"context_line":"            mock_http_connection):"},{"line_number":5369,"context_line":"        \"\"\"Test remove target init.\"\"\""},{"line_number":5370,"context_line":"        mock_http_connection.return_value.getresponse.side_effect \u003d (["},{"line_number":5371,"context_line":"            FakeLoginResponse(),"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_caa17c48","line":5368,"range":{"start_line":5368,"start_character":0,"end_line":5368,"end_character":34},"in_reply_to":"5f4e5783_f1a926df","updated":"2017-10-24 07:13:22.000000000","message":"Done","commit_id":"91c56357eed3856144d757d8f8b7aab7fa1f35a5"},{"author":{"_account_id":22255,"name":"Tuan","email":"tuanla@vn.fujitsu.com","username":"Tuan"},"change_message_id":"dc6a8fe32b3eb5ee7e79869bf51c27b0c25b3640","unresolved":false,"context_lines":[{"line_number":5389,"context_line":"    @mock.patch(\u0027six.moves.http_client.HTTPConnection\u0027)"},{"line_number":5390,"context_line":"    def test_get_target_info("},{"line_number":5391,"context_line":"            self,"},{"line_number":5392,"context_line":"            mock_http_connection):"},{"line_number":5393,"context_line":"        \"\"\"Test get get target info.\"\"\""},{"line_number":5394,"context_line":"        mock_http_connection.return_value.getresponse.side_effect \u003d (["},{"line_number":5395,"context_line":"            FakeLoginResponse(),"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f4e5783_d1ae2ae6","line":5392,"range":{"start_line":5392,"start_character":2,"end_line":5392,"end_character":34},"updated":"2017-10-11 09:47:20.000000000","message":"same","commit_id":"91c56357eed3856144d757d8f8b7aab7fa1f35a5"},{"author":{"_account_id":26134,"name":"Chris Yang","email":"chrisyang@qnap.com","username":"chrisyang"},"change_message_id":"59de2f3a5ee9ec1b142c872e35c251b7456dfd13","unresolved":false,"context_lines":[{"line_number":5389,"context_line":"    @mock.patch(\u0027six.moves.http_client.HTTPConnection\u0027)"},{"line_number":5390,"context_line":"    def test_get_target_info("},{"line_number":5391,"context_line":"            self,"},{"line_number":5392,"context_line":"            mock_http_connection):"},{"line_number":5393,"context_line":"        \"\"\"Test get get target info.\"\"\""},{"line_number":5394,"context_line":"        mock_http_connection.return_value.getresponse.side_effect \u003d (["},{"line_number":5395,"context_line":"            FakeLoginResponse(),"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_8a8704b6","line":5392,"range":{"start_line":5392,"start_character":2,"end_line":5392,"end_character":34},"in_reply_to":"5f4e5783_d1ae2ae6","updated":"2017-10-24 07:13:22.000000000","message":"Done","commit_id":"91c56357eed3856144d757d8f8b7aab7fa1f35a5"},{"author":{"_account_id":22255,"name":"Tuan","email":"tuanla@vn.fujitsu.com","username":"Tuan"},"change_message_id":"dc6a8fe32b3eb5ee7e79869bf51c27b0c25b3640","unresolved":false,"context_lines":[{"line_number":5524,"context_line":"    @mock.patch(\u0027six.moves.http_client.HTTPConnection\u0027)"},{"line_number":5525,"context_line":"    def test_get_ethernet_ip_negative("},{"line_number":5526,"context_line":"            self,"},{"line_number":5527,"context_line":"            mock_http_connection):"},{"line_number":5528,"context_line":"        \"\"\"Test get ethernet ip.\"\"\""},{"line_number":5529,"context_line":"        mock_http_connection.return_value.getresponse.side_effect \u003d (["},{"line_number":5530,"context_line":"            FakeLoginResponse(),"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f4e5783_91b8b22a","line":5527,"range":{"start_line":5527,"start_character":0,"end_line":5527,"end_character":34},"updated":"2017-10-11 09:47:20.000000000","message":"same","commit_id":"91c56357eed3856144d757d8f8b7aab7fa1f35a5"},{"author":{"_account_id":26134,"name":"Chris Yang","email":"chrisyang@qnap.com","username":"chrisyang"},"change_message_id":"59de2f3a5ee9ec1b142c872e35c251b7456dfd13","unresolved":false,"context_lines":[{"line_number":5524,"context_line":"    @mock.patch(\u0027six.moves.http_client.HTTPConnection\u0027)"},{"line_number":5525,"context_line":"    def test_get_ethernet_ip_negative("},{"line_number":5526,"context_line":"            self,"},{"line_number":5527,"context_line":"            mock_http_connection):"},{"line_number":5528,"context_line":"        \"\"\"Test get ethernet ip.\"\"\""},{"line_number":5529,"context_line":"        mock_http_connection.return_value.getresponse.side_effect \u003d (["},{"line_number":5530,"context_line":"            FakeLoginResponse(),"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f4b6375_6a9048ee","line":5527,"range":{"start_line":5527,"start_character":0,"end_line":5527,"end_character":34},"in_reply_to":"5f4e5783_91b8b22a","updated":"2017-10-24 07:13:22.000000000","message":"Done","commit_id":"91c56357eed3856144d757d8f8b7aab7fa1f35a5"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"10f90506bc84b93aa8d305cfa23729705628f5c9","unresolved":false,"context_lines":[{"line_number":31,"context_line":"from cinder import exception"},{"line_number":32,"context_line":"from cinder import test"},{"line_number":33,"context_line":"from cinder.volume.drivers import qnap"},{"line_number":34,"context_line":"import eventlet"},{"line_number":35,"context_line":"CONF \u003d cfg.CONF"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"FAKE_LUNNAA \u003d {\u0027LUNNAA\u0027: \u0027fakeLunNaa\u0027}"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff82abbf_ca5db047","line":34,"range":{"start_line":34,"start_character":7,"end_line":34,"end_character":15},"updated":"2017-11-28 17:11:36.000000000","message":"Needs to be moved up to third party lib import section above.","commit_id":"d213b0b9ca1673c88360952c71244eae88897ca5"},{"author":{"_account_id":26134,"name":"Chris Yang","email":"chrisyang@qnap.com","username":"chrisyang"},"change_message_id":"b1bbdc40fb64f2a7855313a9795d04a24a855aa2","unresolved":false,"context_lines":[{"line_number":31,"context_line":"from cinder import exception"},{"line_number":32,"context_line":"from cinder import test"},{"line_number":33,"context_line":"from cinder.volume.drivers import qnap"},{"line_number":34,"context_line":"import eventlet"},{"line_number":35,"context_line":"CONF \u003d cfg.CONF"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"FAKE_LUNNAA \u003d {\u0027LUNNAA\u0027: \u0027fakeLunNaa\u0027}"}],"source_content_type":"text/x-python","patch_set":10,"id":"ff82abbf_ff162aa8","line":34,"range":{"start_line":34,"start_character":7,"end_line":34,"end_character":15},"in_reply_to":"ff82abbf_ca5db047","updated":"2017-11-30 09:07:08.000000000","message":"Done","commit_id":"d213b0b9ca1673c88360952c71244eae88897ca5"}],"cinder/volume/drivers/qnap.py":[{"author":{"_account_id":27190,"name":"Leopard Ma","email":"mabao@inspur.com","username":"LeopardMa"},"change_message_id":"b0b7f16f344287fb79bc6bd9170e71319f88855f","unresolved":false,"context_lines":[{"line_number":294,"context_line":"                   \u0027qnap_deduplication\u0027: qnap_deduplication,"},{"line_number":295,"context_line":"                   \u0027qnap_ssd_cache\u0027: qnap_ssd_cache})"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"        if (qnap_deduplication and not qnap_thin_provision):"},{"line_number":298,"context_line":"            LOG.debug(\u0027Dedupe cannot be enabled without thin_provisioning.\u0027)"},{"line_number":299,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":300,"context_line":"                data\u003d_(\u0027Dedupe cannot be enabled without thin_provisioning.\u0027))"}],"source_content_type":"text/x-python","patch_set":9,"id":"ff82abbf_831007aa","line":297,"updated":"2017-11-28 02:18:31.000000000","message":"above-mentioned qnap_deduplication and qnap_thin_provision is a character type，this can work normally?","commit_id":"dccb1759ff66df806639cccc5c9c4ccb812d092f"},{"author":{"_account_id":26134,"name":"Chris Yang","email":"chrisyang@qnap.com","username":"chrisyang"},"change_message_id":"62494c7b6a02482915f23b3a038170201b01f202","unresolved":false,"context_lines":[{"line_number":294,"context_line":"                   \u0027qnap_deduplication\u0027: qnap_deduplication,"},{"line_number":295,"context_line":"                   \u0027qnap_ssd_cache\u0027: qnap_ssd_cache})"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"        if (qnap_deduplication and not qnap_thin_provision):"},{"line_number":298,"context_line":"            LOG.debug(\u0027Dedupe cannot be enabled without thin_provisioning.\u0027)"},{"line_number":299,"context_line":"            raise exception.VolumeBackendAPIException("},{"line_number":300,"context_line":"                data\u003d_(\u0027Dedupe cannot be enabled without thin_provisioning.\u0027))"}],"source_content_type":"text/x-python","patch_set":9,"id":"ff82abbf_6611515d","line":297,"in_reply_to":"ff82abbf_831007aa","updated":"2017-11-28 03:05:32.000000000","message":"After convert by self._parse_boolean_extra_spec(), the type of qnap_deduplication and qnap_thin_provision will be \"Boolean\" type. I think it just works fine.","commit_id":"dccb1759ff66df806639cccc5c9c4ccb812d092f"}],"releasenotes/notes/qnap-enhance-support-4ab5cbb110b3303b.yaml":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"10f90506bc84b93aa8d305cfa23729705628f5c9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add enhanced supports to the QNAP Cinder driver, including"},{"line_number":5,"context_line":"    \u0027CHAP\u0027, \u0027Thin Provision\u0027, \u0027SSD Cache\u0027, \u0027Dedup\u0027 and \u0027Compression\u0027."}],"source_content_type":"text/x-yaml","patch_set":10,"id":"ff82abbf_452bd181","line":4,"range":{"start_line":4,"start_character":17,"end_line":4,"end_character":25},"updated":"2017-11-28 17:11:36.000000000","message":"s/supports/support/","commit_id":"d213b0b9ca1673c88360952c71244eae88897ca5"},{"author":{"_account_id":26134,"name":"Chris Yang","email":"chrisyang@qnap.com","username":"chrisyang"},"change_message_id":"b1bbdc40fb64f2a7855313a9795d04a24a855aa2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add enhanced supports to the QNAP Cinder driver, including"},{"line_number":5,"context_line":"    \u0027CHAP\u0027, \u0027Thin Provision\u0027, \u0027SSD Cache\u0027, \u0027Dedup\u0027 and \u0027Compression\u0027."}],"source_content_type":"text/x-yaml","patch_set":10,"id":"ff82abbf_bf33c261","line":4,"range":{"start_line":4,"start_character":17,"end_line":4,"end_character":25},"in_reply_to":"ff82abbf_452bd181","updated":"2017-11-30 09:07:08.000000000","message":"Done","commit_id":"d213b0b9ca1673c88360952c71244eae88897ca5"}]}
