)]}'
{"manila/common/constants.py":[{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"3128f290c1e74133e3effeefc9a8dd620bda9840","unresolved":false,"context_lines":[{"line_number":49,"context_line":"TASK_STATE_MIGRATION_CANCELLED \u003d \u0027migration_cancelled\u0027"},{"line_number":50,"context_line":"TASK_STATE_MIGRATION_DRIVER_IN_PROGRESS \u003d \u0027migration_driver_in_progress\u0027"},{"line_number":51,"context_line":"TASK_STATE_MIGRATION_DRIVER_PHASE1_DONE \u003d \u0027migration_driver_phase1_done\u0027"},{"line_number":52,"context_line":"TASK_STATE_DATA_JOB_PREPARING \u003d \u0027data_copying_preparing\u0027"},{"line_number":53,"context_line":"TASK_STATE_DATA_COPYING_STARTING \u003d \u0027data_copying_starting\u0027"},{"line_number":54,"context_line":"TASK_STATE_DATA_COPYING_IN_PROGRESS \u003d \u0027data_copying_in_progress\u0027"},{"line_number":55,"context_line":"TASK_STATE_DATA_COPYING_COMPLETING \u003d \u0027data_copying_completing\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"dada55a8_3121b8a0","line":52,"range":{"start_line":52,"start_character":0,"end_line":52,"end_character":29},"updated":"2016-07-19 02:59:27.000000000","message":"I think changing the name to TASK_STATE_DATA_COPYING_PREPARING would be better.","commit_id":"0684d3957c4291f14fce34856a553841032e76c4"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"17d71738e1d92d921c5c5f13cd8e57b72a2079d2","unresolved":false,"context_lines":[{"line_number":49,"context_line":"TASK_STATE_MIGRATION_CANCELLED \u003d \u0027migration_cancelled\u0027"},{"line_number":50,"context_line":"TASK_STATE_MIGRATION_DRIVER_IN_PROGRESS \u003d \u0027migration_driver_in_progress\u0027"},{"line_number":51,"context_line":"TASK_STATE_MIGRATION_DRIVER_PHASE1_DONE \u003d \u0027migration_driver_phase1_done\u0027"},{"line_number":52,"context_line":"TASK_STATE_DATA_JOB_PREPARING \u003d \u0027data_copying_preparing\u0027"},{"line_number":53,"context_line":"TASK_STATE_DATA_COPYING_STARTING \u003d \u0027data_copying_starting\u0027"},{"line_number":54,"context_line":"TASK_STATE_DATA_COPYING_IN_PROGRESS \u003d \u0027data_copying_in_progress\u0027"},{"line_number":55,"context_line":"TASK_STATE_DATA_COPYING_COMPLETING \u003d \u0027data_copying_completing\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"dada55a8_857ee316","line":52,"range":{"start_line":52,"start_character":0,"end_line":52,"end_character":29},"in_reply_to":"dada55a8_3121b8a0","updated":"2016-07-21 03:08:18.000000000","message":"Done","commit_id":"0684d3957c4291f14fce34856a553841032e76c4"}],"manila/data/manager.py":[{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"3128f290c1e74133e3effeefc9a8dd620bda9840","unresolved":false,"context_lines":[{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        src_share \u003d self.db.share_get(context, src_share_id)"},{"line_number":177,"context_line":"        dest_share \u003d None"},{"line_number":178,"context_line":"        if dest_share_id and dest_share_id !\u003d src_share_id:"},{"line_number":179,"context_line":"            dest_share \u003d self.db.share_get(context, dest_share_id)"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"        share_rpcapi \u003d share_rpc.ShareAPI()"}],"source_content_type":"text/x-python","patch_set":7,"id":"dada55a8_347d266f","line":178,"updated":"2016-07-19 02:59:27.000000000","message":"if src_share_instance_id and dest_share_instance_id are the same, maybe we could directly return?","commit_id":"0684d3957c4291f14fce34856a553841032e76c4"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"17d71738e1d92d921c5c5f13cd8e57b72a2079d2","unresolved":false,"context_lines":[{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        src_share \u003d self.db.share_get(context, src_share_id)"},{"line_number":177,"context_line":"        dest_share \u003d None"},{"line_number":178,"context_line":"        if dest_share_id and dest_share_id !\u003d src_share_id:"},{"line_number":179,"context_line":"            dest_share \u003d self.db.share_get(context, dest_share_id)"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"        share_rpcapi \u003d share_rpc.ShareAPI()"}],"source_content_type":"text/x-python","patch_set":7,"id":"dada55a8_85a543a3","line":178,"in_reply_to":"dada55a8_347d266f","updated":"2016-07-21 03:08:18.000000000","message":"no, in that case, we allow access only once, the entity requesting the data copy may want to copy data from a super share to a sub share (HPE\u0027s use case)","commit_id":"0684d3957c4291f14fce34856a553841032e76c4"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"3128f290c1e74133e3effeefc9a8dd620bda9840","unresolved":false,"context_lines":[{"line_number":199,"context_line":"                connection_info_src, connection_info_dest, check_space,"},{"line_number":200,"context_line":"                copy_path_src, copy_path_dest)"},{"line_number":201,"context_line":"        except exception.ShareDataCopyCancelled:"},{"line_number":202,"context_line":"            share_rpcapi.data_job_complete(context, src_share, request)"},{"line_number":203,"context_line":"            return"},{"line_number":204,"context_line":"        except Exception:"},{"line_number":205,"context_line":"            for share in [x for x in (src_share, dest_share) if x is not None]:"}],"source_content_type":"text/x-python","patch_set":7,"id":"dada55a8_91ed04f2","line":202,"updated":"2016-07-19 02:59:27.000000000","message":"Maybe should set the task_state of shares to TASK_STATE_DATA_COPYING_CANCELLED here?","commit_id":"0684d3957c4291f14fce34856a553841032e76c4"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"17d71738e1d92d921c5c5f13cd8e57b72a2079d2","unresolved":false,"context_lines":[{"line_number":199,"context_line":"                connection_info_src, connection_info_dest, check_space,"},{"line_number":200,"context_line":"                copy_path_src, copy_path_dest)"},{"line_number":201,"context_line":"        except exception.ShareDataCopyCancelled:"},{"line_number":202,"context_line":"            share_rpcapi.data_job_complete(context, src_share, request)"},{"line_number":203,"context_line":"            return"},{"line_number":204,"context_line":"        except Exception:"},{"line_number":205,"context_line":"            for share in [x for x in (src_share, dest_share) if x is not None]:"}],"source_content_type":"text/x-python","patch_set":7,"id":"dada55a8_05b833c7","line":202,"in_reply_to":"dada55a8_91ed04f2","updated":"2016-07-21 03:08:18.000000000","message":"in _copy_share_data it is easier to be handled and set independently of whoever calls, migration_start or copy_share_data.","commit_id":"0684d3957c4291f14fce34856a553841032e76c4"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"3128f290c1e74133e3effeefc9a8dd620bda9840","unresolved":false,"context_lines":[{"line_number":328,"context_line":"                  {\u0027src_instance\u0027: share_instance_id, \u0027path\u0027: path})"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"    def _copy_share_data("},{"line_number":331,"context_line":"            self, context, copy, src_share, dest_share, share_instance_id,"},{"line_number":332,"context_line":"            dest_share_instance_id, connection_info_src, connection_info_dest,"},{"line_number":333,"context_line":"            check_space\u003dFalse, copy_path_src\u003dNone, copy_path_dest\u003dNone):"},{"line_number":334,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"dada55a8_51f42c86","line":331,"range":{"start_line":331,"start_character":56,"end_line":331,"end_character":73},"updated":"2016-07-19 02:59:27.000000000","message":"src_share_instance_id","commit_id":"0684d3957c4291f14fce34856a553841032e76c4"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"17d71738e1d92d921c5c5f13cd8e57b72a2079d2","unresolved":false,"context_lines":[{"line_number":328,"context_line":"                  {\u0027src_instance\u0027: share_instance_id, \u0027path\u0027: path})"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"    def _copy_share_data("},{"line_number":331,"context_line":"            self, context, copy, src_share, dest_share, share_instance_id,"},{"line_number":332,"context_line":"            dest_share_instance_id, connection_info_src, connection_info_dest,"},{"line_number":333,"context_line":"            check_space\u003dFalse, copy_path_src\u003dNone, copy_path_dest\u003dNone):"},{"line_number":334,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"dada55a8_e5e35fd7","line":331,"range":{"start_line":331,"start_character":56,"end_line":331,"end_character":73},"in_reply_to":"dada55a8_51f42c86","updated":"2016-07-21 03:08:18.000000000","message":"Done","commit_id":"0684d3957c4291f14fce34856a553841032e76c4"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"3128f290c1e74133e3effeefc9a8dd620bda9840","unresolved":false,"context_lines":[{"line_number":409,"context_line":"                connection_info_src[\u0027mount\u0027], mount_path, share_instance)"},{"line_number":410,"context_line":"        except Exception:"},{"line_number":411,"context_line":"            msg \u003d _(\"Data copy failed attempting to mount \""},{"line_number":412,"context_line":"                    \"share instance %s.\") % share_instance_id"},{"line_number":413,"context_line":"            LOG.exception(msg)"},{"line_number":414,"context_line":"            _call_cleanups([\u0027temp_folder_src\u0027, \u0027access_dest\u0027, \u0027access_src\u0027])"},{"line_number":415,"context_line":"            raise exception.ShareDataCopyFailed(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":7,"id":"dada55a8_b182c892","line":412,"range":{"start_line":412,"start_character":21,"end_line":412,"end_character":26},"updated":"2016-07-19 02:59:27.000000000","message":"src share","commit_id":"0684d3957c4291f14fce34856a553841032e76c4"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"17d71738e1d92d921c5c5f13cd8e57b72a2079d2","unresolved":false,"context_lines":[{"line_number":409,"context_line":"                connection_info_src[\u0027mount\u0027], mount_path, share_instance)"},{"line_number":410,"context_line":"        except Exception:"},{"line_number":411,"context_line":"            msg \u003d _(\"Data copy failed attempting to mount \""},{"line_number":412,"context_line":"                    \"share instance %s.\") % share_instance_id"},{"line_number":413,"context_line":"            LOG.exception(msg)"},{"line_number":414,"context_line":"            _call_cleanups([\u0027temp_folder_src\u0027, \u0027access_dest\u0027, \u0027access_src\u0027])"},{"line_number":415,"context_line":"            raise exception.ShareDataCopyFailed(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":7,"id":"dada55a8_65d00ff7","line":412,"range":{"start_line":412,"start_character":21,"end_line":412,"end_character":26},"in_reply_to":"dada55a8_b182c892","updated":"2016-07-21 03:08:18.000000000","message":"Done","commit_id":"0684d3957c4291f14fce34856a553841032e76c4"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"3128f290c1e74133e3effeefc9a8dd620bda9840","unresolved":false,"context_lines":[{"line_number":421,"context_line":"                    dest_share_instance)"},{"line_number":422,"context_line":"            except Exception:"},{"line_number":423,"context_line":"                msg \u003d _(\"Data copy failed attempting to mount \""},{"line_number":424,"context_line":"                        \"share instance %s.\") % dest_share_instance_id"},{"line_number":425,"context_line":"                LOG.exception(msg)"},{"line_number":426,"context_line":"                _call_cleanups([\u0027temp_folder_dest\u0027, \u0027unmount_src\u0027,"},{"line_number":427,"context_line":"                                \u0027temp_folder_src\u0027, \u0027access_dest\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"dada55a8_51ac2c35","line":424,"range":{"start_line":424,"start_character":25,"end_line":424,"end_character":30},"updated":"2016-07-19 02:59:27.000000000","message":"dest share","commit_id":"0684d3957c4291f14fce34856a553841032e76c4"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"17d71738e1d92d921c5c5f13cd8e57b72a2079d2","unresolved":false,"context_lines":[{"line_number":421,"context_line":"                    dest_share_instance)"},{"line_number":422,"context_line":"            except Exception:"},{"line_number":423,"context_line":"                msg \u003d _(\"Data copy failed attempting to mount \""},{"line_number":424,"context_line":"                        \"share instance %s.\") % dest_share_instance_id"},{"line_number":425,"context_line":"                LOG.exception(msg)"},{"line_number":426,"context_line":"                _call_cleanups([\u0027temp_folder_dest\u0027, \u0027unmount_src\u0027,"},{"line_number":427,"context_line":"                                \u0027temp_folder_src\u0027, \u0027access_dest\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"dada55a8_c5d9fb23","line":424,"range":{"start_line":424,"start_character":25,"end_line":424,"end_character":30},"in_reply_to":"dada55a8_51ac2c35","updated":"2016-07-21 03:08:18.000000000","message":"Done","commit_id":"0684d3957c4291f14fce34856a553841032e76c4"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"3128f290c1e74133e3effeefc9a8dd620bda9840","unresolved":false,"context_lines":[{"line_number":443,"context_line":"                        \u0027src\u0027: copy_path_src,"},{"line_number":444,"context_line":"                        \u0027dest\u0027: copy_path_dest"},{"line_number":445,"context_line":"                    }"},{"line_number":446,"context_line":"                    raise exception.ShareDataCopyFailed(reason\u003dmsg)"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"            for share in shares:"},{"line_number":449,"context_line":"                self.busy_tasks_shares[share[\u0027id\u0027]] \u003d copy"}],"source_content_type":"text/x-python","patch_set":7,"id":"dada55a8_74b03e44","line":446,"updated":"2016-07-19 02:59:27.000000000","message":"_call_cleanups?","commit_id":"0684d3957c4291f14fce34856a553841032e76c4"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"17d71738e1d92d921c5c5f13cd8e57b72a2079d2","unresolved":false,"context_lines":[{"line_number":443,"context_line":"                        \u0027src\u0027: copy_path_src,"},{"line_number":444,"context_line":"                        \u0027dest\u0027: copy_path_dest"},{"line_number":445,"context_line":"                    }"},{"line_number":446,"context_line":"                    raise exception.ShareDataCopyFailed(reason\u003dmsg)"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"            for share in shares:"},{"line_number":449,"context_line":"                self.busy_tasks_shares[share[\u0027id\u0027]] \u003d copy"}],"source_content_type":"text/x-python","patch_set":7,"id":"dada55a8_a51b27c9","line":446,"in_reply_to":"dada55a8_74b03e44","updated":"2016-07-21 03:08:18.000000000","message":"The exception will be captured below and the cleanups will be executed (unmount, deny)","commit_id":"0684d3957c4291f14fce34856a553841032e76c4"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"3128f290c1e74133e3effeefc9a8dd620bda9840","unresolved":false,"context_lines":[{"line_number":455,"context_line":""},{"line_number":456,"context_line":"            copy.run()"},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"            for share in shares:"},{"line_number":459,"context_line":"                self.db.share_update("},{"line_number":460,"context_line":"                    context, share[\u0027id\u0027],"},{"line_number":461,"context_line":"                    {\u0027task_state\u0027: ("}],"source_content_type":"text/x-python","patch_set":7,"id":"dada55a8_145bc22f","line":458,"updated":"2016-07-19 02:59:27.000000000","message":"Suggest encapsulating this task_state updating snippet to a method, cause it\u0027s used in a couple of places.","commit_id":"0684d3957c4291f14fce34856a553841032e76c4"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"17d71738e1d92d921c5c5f13cd8e57b72a2079d2","unresolved":false,"context_lines":[{"line_number":455,"context_line":""},{"line_number":456,"context_line":"            copy.run()"},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"            for share in shares:"},{"line_number":459,"context_line":"                self.db.share_update("},{"line_number":460,"context_line":"                    context, share[\u0027id\u0027],"},{"line_number":461,"context_line":"                    {\u0027task_state\u0027: ("}],"source_content_type":"text/x-python","patch_set":7,"id":"dada55a8_c591fbf2","line":458,"in_reply_to":"dada55a8_145bc22f","updated":"2016-07-21 03:08:18.000000000","message":"Done","commit_id":"0684d3957c4291f14fce34856a553841032e76c4"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"2b3d31d548f079d523079dbfeabb5531810a4f94","unresolved":false,"context_lines":[{"line_number":201,"context_line":"        except exception.ShareDataCopyCancelled:"},{"line_number":202,"context_line":"            share_rpcapi.data_job_complete(context, src_share, request)"},{"line_number":203,"context_line":"            return"},{"line_number":204,"context_line":"        except Exception:"},{"line_number":205,"context_line":"            shares \u003d [x for x in (src_share, dest_share) if x is not None]"},{"line_number":206,"context_line":"            self._set_shares_task_state("},{"line_number":207,"context_line":"                context, shares, constants.TASK_STATE_DATA_COPYING_ERROR)"}],"source_content_type":"text/x-python","patch_set":20,"id":"3ac371cc_b91db968","line":204,"range":{"start_line":204,"start_character":8,"end_line":204,"end_character":25},"updated":"2016-08-15 07:56:17.000000000","message":"please log this exception","commit_id":"c107b2a5161d2358f533505cc4485b6da3de3919"},{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"71dc2577874e39b24e97f33aaedae2714beeb383","unresolved":false,"context_lines":[{"line_number":201,"context_line":"        except exception.ShareDataCopyCancelled:"},{"line_number":202,"context_line":"            share_rpcapi.data_job_complete(context, src_share, request)"},{"line_number":203,"context_line":"            return"},{"line_number":204,"context_line":"        except Exception:"},{"line_number":205,"context_line":"            shares \u003d [x for x in (src_share, dest_share) if x is not None]"},{"line_number":206,"context_line":"            self._set_shares_task_state("},{"line_number":207,"context_line":"                context, shares, constants.TASK_STATE_DATA_COPYING_ERROR)"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa7ab95a_574119a8","line":204,"range":{"start_line":204,"start_character":8,"end_line":204,"end_character":25},"in_reply_to":"3ac371cc_187a7977","updated":"2016-08-30 05:13:32.000000000","message":"No. Line 211 logs some msg that you built. Doesn\u0027t capture what the Exception actually was. Do \"except Exception as e:\" and then log e somewhere (at least debug). I found that I had to add that code just to troubleshoot.","commit_id":"c107b2a5161d2358f533505cc4485b6da3de3919"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"35b9b9981cfcbbc8132a9bb2c0ac56136b1d3ba8","unresolved":false,"context_lines":[{"line_number":201,"context_line":"        except exception.ShareDataCopyCancelled:"},{"line_number":202,"context_line":"            share_rpcapi.data_job_complete(context, src_share, request)"},{"line_number":203,"context_line":"            return"},{"line_number":204,"context_line":"        except Exception:"},{"line_number":205,"context_line":"            shares \u003d [x for x in (src_share, dest_share) if x is not None]"},{"line_number":206,"context_line":"            self._set_shares_task_state("},{"line_number":207,"context_line":"                context, shares, constants.TASK_STATE_DATA_COPYING_ERROR)"}],"source_content_type":"text/x-python","patch_set":20,"id":"3ac371cc_187a7977","line":204,"range":{"start_line":204,"start_character":8,"end_line":204,"end_character":25},"in_reply_to":"3ac371cc_b91db968","updated":"2016-08-17 12:55:05.000000000","message":"isn\u0027t it logged in line 211?","commit_id":"c107b2a5161d2358f533505cc4485b6da3de3919"}],"manila/data/utils.py":[{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"2b1cae00f36b94776deb00115ab24af5e25ac4bc","unresolved":false,"context_lines":[{"line_number":51,"context_line":"                size \u003d 0"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"            total_progress \u003d 0"},{"line_number":54,"context_line":"            if self.total_size \u003e 0:"},{"line_number":55,"context_line":"                total_progress \u003d self.current_size * 100 / self.total_size"},{"line_number":56,"context_line":"            current_file_progress \u003d 0"},{"line_number":57,"context_line":"            if self.current_copy[\u0027size\u0027] \u003e 0:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_08725849","line":54,"range":{"start_line":54,"start_character":12,"end_line":54,"end_character":35},"updated":"2016-06-29 03:29:23.000000000","message":"I have a share w/ just one empty file. It doesn\u0027t complete successfully because total_progress and current_progress are 0. If I set 100 on line 53 and 56 then it works as expected (see my WIP patch). That fixes the progress number, but I\u0027m not sure what else might be added to indicate \"complete\". Seems like my 100% set here doesn\u0027t mean the stats part is done.","commit_id":"da386f72692b3c67426851cf2018fdc1b196bfc4"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"c9ae858f5741eba0efa09540293181929584a505","unresolved":false,"context_lines":[{"line_number":200,"context_line":"                msg \u003d _(\"Data corrupted while copying. Aborting data copy.\")"},{"line_number":201,"context_line":"                raise exception.ShareDataCopyFailed(reason\u003dmsg)"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    def _copy_item(self, src_item, dest_item, old_mod_time, overwrite_param):"},{"line_number":204,"context_line":"        utils.execute(\"cp\", \"-P%s\" % overwrite_param,"},{"line_number":205,"context_line":"                      \"--preserve\u003dall\", src_item,"},{"line_number":206,"context_line":"                      dest_item, run_as_root\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":10,"id":"dada55a8_4ae03829","line":203,"updated":"2016-07-22 03:17:11.000000000","message":"Maybe the retry logic could utilize the wrapper @utils.retry","commit_id":"1d89115569f0ffd8e59202cbfb72dc8229304b23"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"b87a3dd7ebbe2cfd6ad96628ac197298dfeb391a","unresolved":false,"context_lines":[{"line_number":200,"context_line":"                msg \u003d _(\"Data corrupted while copying. Aborting data copy.\")"},{"line_number":201,"context_line":"                raise exception.ShareDataCopyFailed(reason\u003dmsg)"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    def _copy_item(self, src_item, dest_item, old_mod_time, overwrite_param):"},{"line_number":204,"context_line":"        utils.execute(\"cp\", \"-P%s\" % overwrite_param,"},{"line_number":205,"context_line":"                      \"--preserve\u003dall\", src_item,"},{"line_number":206,"context_line":"                      dest_item, run_as_root\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":10,"id":"dada55a8_bac63947","line":203,"in_reply_to":"dada55a8_4ae03829","updated":"2016-07-22 18:47:08.000000000","message":"will look into it for next update.","commit_id":"1d89115569f0ffd8e59202cbfb72dc8229304b23"}],"manila/share/rpcapi.py":[{"author":{"_account_id":11047,"name":"Mark Sturdevant","email":"mark.sturdevant@ibm.com","username":"markstur"},"change_message_id":"2b3d31d548f079d523079dbfeabb5531810a4f94","unresolved":false,"context_lines":[{"line_number":341,"context_line":""},{"line_number":342,"context_line":"    def create_share_server(self, context, share_instance, share_server_id):"},{"line_number":343,"context_line":"        new_host \u003d utils.extract_host(share_instance[\u0027host\u0027])"},{"line_number":344,"context_line":"        call_context \u003d self.client.prepare(server\u003dnew_host, version\u003d\u00271.12\u0027)"},{"line_number":345,"context_line":"        call_context.cast(context,"},{"line_number":346,"context_line":"                          \u0027create_share_server\u0027,"},{"line_number":347,"context_line":"                          share_server_id\u003dshare_server_id)"}],"source_content_type":"text/x-python","patch_set":20,"id":"3ac371cc_ff78b1fa","line":344,"range":{"start_line":344,"start_character":71,"end_line":344,"end_character":73},"updated":"2016-08-15 07:56:17.000000000","message":"13","commit_id":"c107b2a5161d2358f533505cc4485b6da3de3919"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"35b9b9981cfcbbc8132a9bb2c0ac56136b1d3ba8","unresolved":false,"context_lines":[{"line_number":341,"context_line":""},{"line_number":342,"context_line":"    def create_share_server(self, context, share_instance, share_server_id):"},{"line_number":343,"context_line":"        new_host \u003d utils.extract_host(share_instance[\u0027host\u0027])"},{"line_number":344,"context_line":"        call_context \u003d self.client.prepare(server\u003dnew_host, version\u003d\u00271.12\u0027)"},{"line_number":345,"context_line":"        call_context.cast(context,"},{"line_number":346,"context_line":"                          \u0027create_share_server\u0027,"},{"line_number":347,"context_line":"                          share_server_id\u003dshare_server_id)"}],"source_content_type":"text/x-python","patch_set":20,"id":"3ac371cc_986029d1","line":344,"range":{"start_line":344,"start_character":71,"end_line":344,"end_character":73},"in_reply_to":"3ac371cc_ff78b1fa","updated":"2016-08-17 12:55:05.000000000","message":"humm this does not seem that should be 13... see version history above.","commit_id":"c107b2a5161d2358f533505cc4485b6da3de3919"}]}
