)]}'
{"manila/share/drivers/zfsonlinux/driver.py":[{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"d953e93a4a503a4d36705acfd6199645a5b8651b","unresolved":false,"context_lines":[{"line_number":1413,"context_line":"        cmd \u003d ("},{"line_number":1414,"context_line":"            \u0027sudo zfs send -vDR \u0027 + src_snapshot_name + \u0027 \u0027"},{"line_number":1415,"context_line":"            \u0027| ssh \u0027 + remote_ssh_cmd + \u0027 \u0027"},{"line_number":1416,"context_line":"            \u0027sudo zfs receive -v \u0027 + dst_dataset_name + \u0027 \u0027"},{"line_number":1417,"context_line":"        )"},{"line_number":1418,"context_line":"        filename \u003d dst_dataset_name.replace(\u0027/\u0027, \u0027_\u0027)"},{"line_number":1419,"context_line":"        with utils.tempdir() as tmpdir:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a89bdaa_9dd4cebd","line":1416,"range":{"start_line":1416,"start_character":56,"end_line":1416,"end_character":59},"updated":"2016-09-07 07:16:38.000000000","message":"could remove","commit_id":"bc22e25c57aadbb6bbe8463470cf36d400d0dcdc"},{"author":{"_account_id":6938,"name":"Alexey Ovchinnikov","email":"aovchinnikov@mirantis.com","username":"aovchinnikov"},"change_message_id":"2b48c3c8b390ca4b363e8d1d4995d986a38d841f","unresolved":false,"context_lines":[{"line_number":1416,"context_line":"            \u0027sudo zfs receive -v \u0027 + dst_dataset_name + \u0027 \u0027"},{"line_number":1417,"context_line":"        )"},{"line_number":1418,"context_line":"        filename \u003d dst_dataset_name.replace(\u0027/\u0027, \u0027_\u0027)"},{"line_number":1419,"context_line":"        with utils.tempdir() as tmpdir:"},{"line_number":1420,"context_line":"            tmpfilename \u003d os.path.join(tmpdir, \u0027%s.sh\u0027 % filename)"},{"line_number":1421,"context_line":"            with open(tmpfilename, \"w\") as migr_script:"},{"line_number":1422,"context_line":"                migr_script.write(cmd)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a89bdaa_11a2584b","line":1419,"updated":"2016-09-07 12:11:18.000000000","message":"I suggest this to be moved to either manila.utils or to default executor definition, since the problem is not specific to zfsonlinux driver only.","commit_id":"bc22e25c57aadbb6bbe8463470cf36d400d0dcdc"},{"author":{"_account_id":6938,"name":"Alexey Ovchinnikov","email":"aovchinnikov@mirantis.com","username":"aovchinnikov"},"change_message_id":"c0a465b48ab118326672facd97417ff90abe4111","unresolved":false,"context_lines":[{"line_number":1410,"context_line":"        self.execute(\u0027sudo\u0027, \u0027zfs\u0027, \u0027snapshot\u0027, src_snapshot_name)"},{"line_number":1411,"context_line":""},{"line_number":1412,"context_line":"        # Send/receive temporary snapshot"},{"line_number":1413,"context_line":"        cmd \u003d ("},{"line_number":1414,"context_line":"            \u0027sudo zfs send -vDR \u0027 + src_snapshot_name + \u0027 \u0027"},{"line_number":1415,"context_line":"            \u0027| ssh \u0027 + remote_ssh_cmd + \u0027 \u0027"},{"line_number":1416,"context_line":"            \u0027sudo zfs receive -v \u0027 + dst_dataset_name"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a89bdaa_1795a831","line":1413,"updated":"2016-09-08 12:29:02.000000000","message":"I suggest adding some clarification on why it is ever needed to use pipes here. It is not immediately obvious and looks somewhat surprising.","commit_id":"a5c2297ded51b46e034908230306d85e0447a136"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"b8c194056a4f6a1339c162008c2471b2b99e8425","unresolved":false,"context_lines":[{"line_number":1410,"context_line":"        self.execute(\u0027sudo\u0027, \u0027zfs\u0027, \u0027snapshot\u0027, src_snapshot_name)"},{"line_number":1411,"context_line":""},{"line_number":1412,"context_line":"        # Send/receive temporary snapshot"},{"line_number":1413,"context_line":"        cmd \u003d ("},{"line_number":1414,"context_line":"            \u0027sudo zfs send -vDR \u0027 + src_snapshot_name + \u0027 \u0027"},{"line_number":1415,"context_line":"            \u0027| ssh \u0027 + remote_ssh_cmd + \u0027 \u0027"},{"line_number":1416,"context_line":"            \u0027sudo zfs receive -v \u0027 + dst_dataset_name"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a89bdaa_52a73e0a","line":1413,"in_reply_to":"9a89bdaa_1795a831","updated":"2016-09-08 12:37:21.000000000","message":"It is not first appearance of pipes. Whole \"replication\" code uses same approach. So, even if do such thing, then separately.","commit_id":"a5c2297ded51b46e034908230306d85e0447a136"},{"author":{"_account_id":6938,"name":"Alexey Ovchinnikov","email":"aovchinnikov@mirantis.com","username":"aovchinnikov"},"change_message_id":"0b11a6f8f505386557295d873bf31e7e938f1cc3","unresolved":false,"context_lines":[{"line_number":1410,"context_line":"        self.execute(\u0027sudo\u0027, \u0027zfs\u0027, \u0027snapshot\u0027, src_snapshot_name)"},{"line_number":1411,"context_line":""},{"line_number":1412,"context_line":"        # Send/receive temporary snapshot"},{"line_number":1413,"context_line":"        cmd \u003d ("},{"line_number":1414,"context_line":"            \u0027sudo zfs send -vDR \u0027 + src_snapshot_name + \u0027 \u0027"},{"line_number":1415,"context_line":"            \u0027| ssh \u0027 + remote_ssh_cmd + \u0027 \u0027"},{"line_number":1416,"context_line":"            \u0027sudo zfs receive -v \u0027 + dst_dataset_name"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a89bdaa_7229a2e5","line":1413,"in_reply_to":"9a89bdaa_52a73e0a","updated":"2016-09-08 12:46:24.000000000","message":"Exactly. There is a metric ton and a half of pipes in this driver. Since it looks pretty stupid to comment on sections not actually touched by this particular change I\u0027ve used the opportunity to comment on the modified part. I\u0027d be happy with any sort of clear comment anywhere in the replication code. Probably this requires a section in devref. In such case an explicit pointer would have sufficed.","commit_id":"a5c2297ded51b46e034908230306d85e0447a136"}]}
