)]}'
{"manila/share/drivers/huawei/huawei_nas.py":[{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"4b33ba561f13292a21a708bbd015523d32682f15","unresolved":false,"context_lines":[{"line_number":197,"context_line":"        data \u003d dict("},{"line_number":198,"context_line":"            share_backend_name\u003dbackend_name or \u0027HUAWEI_NAS_Driver\u0027,"},{"line_number":199,"context_line":"            vendor_name\u003d\u0027Huawei\u0027,"},{"line_number":200,"context_line":"            driver_version\u003d\u00271.2\u0027,"},{"line_number":201,"context_line":"            storage_protocol\u003d\u0027NFS_CIFS\u0027,"},{"line_number":202,"context_line":"            qos\u003dTrue,"},{"line_number":203,"context_line":"            total_capacity_gb\u003d0.0,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_69e236d7","line":200,"range":{"start_line":200,"start_character":27,"end_line":200,"end_character":33},"updated":"2016-05-29 05:17:36.000000000","message":"This version already up to 1.3. s/1.2/1.3. or use the macro.\nAnd modify the unit test too.","commit_id":"e2a562395b68eb51d41f03c9ba374fb350cc520c"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"22746e63264e7fa5426481df419431f6e85072c6","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    \"\"\"Huawei Share Driver."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    Executes commands relating to Shares."},{"line_number":46,"context_line":"    API version history:"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        1.0 - Initial version."},{"line_number":49,"context_line":"        1.1 - Add shrink share."}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_18dd830e","line":46,"range":{"start_line":46,"start_character":4,"end_line":46,"end_character":7},"updated":"2016-06-07 11:51:41.000000000","message":"nit: \"Driver version history\"","commit_id":"5a9d301887e99b300566de61b4cf0443cf3ef6b2"}],"manila/share/drivers/huawei/v3/connection.py":[{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"ffbd7d1bfdeae78ae13fcfd739f78e4650a24f42","unresolved":false,"context_lines":[{"line_number":883,"context_line":"        if (snapshot_info[\u0027data\u0027][\u0027HEALTHSTATUS\u0027]"},{"line_number":884,"context_line":"                !\u003d constants.STATUS_FSSNAPSHOT_HEALTH):"},{"line_number":885,"context_line":"            msg \u003d (_(\"Can\u0027t import snapshot %s to Manila. \""},{"line_number":886,"context_line":"                     \"Snapshot status is not normal.\") % snapshot_name)"},{"line_number":887,"context_line":"            raise exception.ManageInvalidShareSnapshot("},{"line_number":888,"context_line":"                reason\u003dmsg)"},{"line_number":889,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_ab8164c5","line":886,"range":{"start_line":886,"start_character":22,"end_line":886,"end_character":37},"updated":"2016-05-31 11:48:17.000000000","message":"Please print the \"snapshot status\" in log. It\u0027s useful to debug.","commit_id":"e2a562395b68eb51d41f03c9ba374fb350cc520c"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"ffbd7d1bfdeae78ae13fcfd739f78e4650a24f42","unresolved":false,"context_lines":[{"line_number":884,"context_line":"                !\u003d constants.STATUS_FSSNAPSHOT_HEALTH):"},{"line_number":885,"context_line":"            msg \u003d (_(\"Can\u0027t import snapshot %s to Manila. \""},{"line_number":886,"context_line":"                     \"Snapshot status is not normal.\") % snapshot_name)"},{"line_number":887,"context_line":"            raise exception.ManageInvalidShareSnapshot("},{"line_number":888,"context_line":"                reason\u003dmsg)"},{"line_number":889,"context_line":""},{"line_number":890,"context_line":"    def manage_existing_snapshot(self, snapshot, driver_options):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_3e5490fd","line":887,"range":{"start_line":887,"start_character":11,"end_line":887,"end_character":17},"updated":"2016-05-31 11:48:17.000000000","message":"Add LOG.error(msg) before raise.","commit_id":"e2a562395b68eb51d41f03c9ba374fb350cc520c"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"ffbd7d1bfdeae78ae13fcfd739f78e4650a24f42","unresolved":false,"context_lines":[{"line_number":895,"context_line":"        share_storage \u003d self.helper._get_share_by_name(snapshot[\u0027share_name\u0027],"},{"line_number":896,"context_line":"                                                       share_url_type)"},{"line_number":897,"context_line":"        if not share_storage:"},{"line_number":898,"context_line":"            err_msg \u003d (_(\"Failed to import snapshot to Manila. \""},{"line_number":899,"context_line":"                         \"Snapshot source share %s does\u0027t exist on array \")"},{"line_number":900,"context_line":"                       % snapshot[\u0027share\u0027][\u0027share_id\u0027])"},{"line_number":901,"context_line":"            LOG.error(err_msg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_8b3e20d8","line":898,"range":{"start_line":898,"start_character":43,"end_line":898,"end_character":51},"updated":"2016-05-31 11:48:17.000000000","message":"It\u0027s better to print snapshot id or name.","commit_id":"e2a562395b68eb51d41f03c9ba374fb350cc520c"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"ffbd7d1bfdeae78ae13fcfd739f78e4650a24f42","unresolved":false,"context_lines":[{"line_number":896,"context_line":"                                                       share_url_type)"},{"line_number":897,"context_line":"        if not share_storage:"},{"line_number":898,"context_line":"            err_msg \u003d (_(\"Failed to import snapshot to Manila. \""},{"line_number":899,"context_line":"                         \"Snapshot source share %s does\u0027t exist on array \")"},{"line_number":900,"context_line":"                       % snapshot[\u0027share\u0027][\u0027share_id\u0027])"},{"line_number":901,"context_line":"            LOG.error(err_msg)"},{"line_number":902,"context_line":"            raise exception.InvalidShare(reason\u003derr_msg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_ab6b24f0","line":899,"range":{"start_line":899,"start_character":72,"end_line":899,"end_character":73},"updated":"2016-05-31 11:48:17.000000000","message":"s/ /.","commit_id":"e2a562395b68eb51d41f03c9ba374fb350cc520c"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"ffbd7d1bfdeae78ae13fcfd739f78e4650a24f42","unresolved":false,"context_lines":[{"line_number":896,"context_line":"                                                       share_url_type)"},{"line_number":897,"context_line":"        if not share_storage:"},{"line_number":898,"context_line":"            err_msg \u003d (_(\"Failed to import snapshot to Manila. \""},{"line_number":899,"context_line":"                         \"Snapshot source share %s does\u0027t exist on array \")"},{"line_number":900,"context_line":"                       % snapshot[\u0027share\u0027][\u0027share_id\u0027])"},{"line_number":901,"context_line":"            LOG.error(err_msg)"},{"line_number":902,"context_line":"            raise exception.InvalidShare(reason\u003derr_msg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_0b02300b","line":899,"range":{"start_line":899,"start_character":51,"end_line":899,"end_character":57},"updated":"2016-05-31 11:48:17.000000000","message":"s/does\u0027t/doesn\u0027t","commit_id":"e2a562395b68eb51d41f03c9ba374fb350cc520c"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"4b33ba561f13292a21a708bbd015523d32682f15","unresolved":false,"context_lines":[{"line_number":911,"context_line":"                       % snapshot[\u0027provider_location\u0027])"},{"line_number":912,"context_line":"            LOG.error(err_msg)"},{"line_number":913,"context_line":"            raise exception.ShareSnapshotNotFound("},{"line_number":914,"context_line":"                snapshot_id\u003dsnapshot[\u0027provider_location\u0027])"},{"line_number":915,"context_line":"        else:"},{"line_number":916,"context_line":"            self._check_snapshot_valid_for_manage(snapshot_info)"},{"line_number":917,"context_line":"            snapshot_name \u003d (\"share_snapshot_\""}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_e97466d0","line":914,"range":{"start_line":914,"start_character":28,"end_line":914,"end_character":57},"updated":"2016-05-29 05:17:36.000000000","message":"This is not snapshot id.","commit_id":"e2a562395b68eb51d41f03c9ba374fb350cc520c"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"22746e63264e7fa5426481df419431f6e85072c6","unresolved":false,"context_lines":[{"line_number":918,"context_line":"            self._check_snapshot_valid_for_manage(snapshot_info)"},{"line_number":919,"context_line":"            snapshot_name \u003d (\"share_snapshot_\""},{"line_number":920,"context_line":"                             + snapshot[\u0027id\u0027].replace(\"-\", \"_\"))"},{"line_number":921,"context_line":"            self.helper._rename_share_snapshot(snapshot_id, snapshot_name)"},{"line_number":922,"context_line":"        return snapshot_name"},{"line_number":923,"context_line":""},{"line_number":924,"context_line":"    def check_retype_change_opts(self, opts, poolinfo, fs):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_3b03190f","line":921,"range":{"start_line":921,"start_character":11,"end_line":921,"end_character":74},"updated":"2016-06-07 11:51:41.000000000","message":"why do you rename the share if you have all the info you need to reach it using the value saved in provider location?","commit_id":"5a9d301887e99b300566de61b4cf0443cf3ef6b2"},{"author":{"_account_id":17742,"name":"liucheng","email":"liucheng20@huawei.com","username":"liucheng"},"change_message_id":"5545cc92ba59427632167adbd8a5c85e66e4285f","unresolved":false,"context_lines":[{"line_number":918,"context_line":"            self._check_snapshot_valid_for_manage(snapshot_info)"},{"line_number":919,"context_line":"            snapshot_name \u003d (\"share_snapshot_\""},{"line_number":920,"context_line":"                             + snapshot[\u0027id\u0027].replace(\"-\", \"_\"))"},{"line_number":921,"context_line":"            self.helper._rename_share_snapshot(snapshot_id, snapshot_name)"},{"line_number":922,"context_line":"        return snapshot_name"},{"line_number":923,"context_line":""},{"line_number":924,"context_line":"    def check_retype_change_opts(self, opts, poolinfo, fs):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7aa08908_2202c109","line":921,"range":{"start_line":921,"start_character":12,"end_line":921,"end_character":74},"updated":"2016-06-12 01:20:13.000000000","message":"Once the share snapshot is managed by OpenStack, the format of snapshot name should be consistent with the names of snapshots that are created by OpenStack, so rename the share snapshot is necessary.","commit_id":"d1303438e9e4cccccb9743be73c1dd4d37e10673"}],"manila/share/drivers/huawei/v3/helper.py":[{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"4b33ba561f13292a21a708bbd015523d32682f15","unresolved":false,"context_lines":[{"line_number":600,"context_line":"            err_msg \u003d (_(\u0027%(err)s\\nresult: %(res)s.\u0027) % {\u0027err\u0027: err_str,"},{"line_number":601,"context_line":"                                                         \u0027res\u0027: snapshot_info})"},{"line_number":602,"context_line":"            LOG.error(err_msg)"},{"line_number":603,"context_line":"            raise exception.InvalidShare(reason\u003derr_msg)"},{"line_number":604,"context_line":""},{"line_number":605,"context_line":"    def _get_snapshot_by_id(self, snap_id):"},{"line_number":606,"context_line":"        \"\"\"Get snapshot by id\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_c96d2206","line":603,"range":{"start_line":603,"start_character":28,"end_line":603,"end_character":40},"updated":"2016-05-29 05:17:36.000000000","message":"This error is \u0027check the snapshot id exists error\u0027. Why raise InvalidShare?","commit_id":"e2a562395b68eb51d41f03c9ba374fb350cc520c"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"ffbd7d1bfdeae78ae13fcfd739f78e4650a24f42","unresolved":false,"context_lines":[{"line_number":606,"context_line":"        \"\"\"Get snapshot by id\"\"\""},{"line_number":607,"context_line":"        url_subfix \u003d \"/FSSNAPSHOT/\" + snap_id"},{"line_number":608,"context_line":""},{"line_number":609,"context_line":"        url \u003d url_subfix"},{"line_number":610,"context_line":"        result \u003d self.call(url, None, \"GET\")"},{"line_number":611,"context_line":"        return result"},{"line_number":612,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_fec32855","line":609,"range":{"start_line":609,"start_character":14,"end_line":609,"end_character":24},"updated":"2016-05-31 11:48:17.000000000","message":"url_subfix is unnecessary.","commit_id":"e2a562395b68eb51d41f03c9ba374fb350cc520c"}]}
