)]}'
{"cinder/backup/drivers/disco.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ade0a7972f89731944482ff1c8d97fcdf90229c4","unresolved":false,"context_lines":[{"line_number":40,"context_line":"               default\u003dNone,"},{"line_number":41,"context_line":"               help\u003d\u0027Path or URL to Disco configuration file\u0027),"},{"line_number":42,"context_line":"    cfg.PortOpt(\u0027disco_block_size\u0027,"},{"line_number":43,"context_line":"                default\u003d\u00274096\u0027,"},{"line_number":44,"context_line":"                help\u003d\u0027Block size for dd.\u0027),"},{"line_number":45,"context_line":"    cfg.IntOpt(\u0027backup_policy_id\u0027,"},{"line_number":46,"context_line":"               default\u003d617,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_f2aaf183","line":43,"updated":"2016-08-11 14:19:25.000000000","message":"I don\u0027t think you can set this as a string and use PortOpt.","commit_id":"74f7008d8a705f31aa102d92911e3b5d9c18e5c8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ade0a7972f89731944482ff1c8d97fcdf90229c4","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                help\u003d\u0027Block size for dd.\u0027),"},{"line_number":45,"context_line":"    cfg.IntOpt(\u0027backup_policy_id\u0027,"},{"line_number":46,"context_line":"               default\u003d617,"},{"line_number":47,"context_line":"               help\u003d\u0027backup policy for zone id 833 backup backend\u0027),"},{"line_number":48,"context_line":"    cfg.StrOpt(\u0027volume_zone_id\u0027,"},{"line_number":49,"context_line":"               default\u003d1,"},{"line_number":50,"context_line":"               help\u003d\u0027zone id of the source DISCO backend\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_8da1d8fa","line":47,"range":{"start_line":47,"start_character":39,"end_line":47,"end_character":65},"updated":"2016-08-11 14:19:25.000000000","message":"Maybe this makes sense for DISCO users, but it might be good to reword this help text to be a little more descriptive.","commit_id":"74f7008d8a705f31aa102d92911e3b5d9c18e5c8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ade0a7972f89731944482ff1c8d97fcdf90229c4","unresolved":false,"context_lines":[{"line_number":46,"context_line":"               default\u003d617,"},{"line_number":47,"context_line":"               help\u003d\u0027backup policy for zone id 833 backup backend\u0027),"},{"line_number":48,"context_line":"    cfg.StrOpt(\u0027volume_zone_id\u0027,"},{"line_number":49,"context_line":"               default\u003d1,"},{"line_number":50,"context_line":"               help\u003d\u0027zone id of the source DISCO backend\u0027),"},{"line_number":51,"context_line":"    cfg.StrOpt(\u0027backup_volume_name_prefix\u0027,"},{"line_number":52,"context_line":"               default\u003d\u0027openstack-backup-volume-\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_0dae88e5","line":49,"updated":"2016-08-11 14:19:25.000000000","message":"Should be a string for StrOpt.","commit_id":"74f7008d8a705f31aa102d92911e3b5d9c18e5c8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ade0a7972f89731944482ff1c8d97fcdf90229c4","unresolved":false,"context_lines":[{"line_number":50,"context_line":"               help\u003d\u0027zone id of the source DISCO backend\u0027),"},{"line_number":51,"context_line":"    cfg.StrOpt(\u0027backup_volume_name_prefix\u0027,"},{"line_number":52,"context_line":"               default\u003d\u0027openstack-backup-volume-\u0027,"},{"line_number":53,"context_line":"               help\u003d\u0027Prefix before volume name to\u0027"},{"line_number":54,"context_line":"                    \u0027know that this volume is for backup\u0027),"},{"line_number":55,"context_line":"    cfg.StrOpt(\u0027disco_dev_prefix\u0027,"},{"line_number":56,"context_line":"               default\u003d\u0027/dev/dms\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_ed7b3479","line":53,"updated":"2016-08-11 14:19:25.000000000","message":"Need space on the end so it doesn\u0027t combine as toknow.","commit_id":"74f7008d8a705f31aa102d92911e3b5d9c18e5c8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ade0a7972f89731944482ff1c8d97fcdf90229c4","unresolved":false,"context_lines":[{"line_number":59,"context_line":"              default\u003d\u002710.211.12.6\u0027,"},{"line_number":60,"context_line":"              help\u003d\u0027The IP of DISCO destination API\u0027),"},{"line_number":61,"context_line":"    cfg.PortOpt(\u0027disco_dst_api_port\u0027,"},{"line_number":62,"context_line":"                default\u003d\u00278080\u0027,"},{"line_number":63,"context_line":"                help\u003d\u0027The port of DISCO destination API\u0027),"},{"line_number":64,"context_line":"    cfg.IntOpt(\u0027backup_check_timeout\u0027,"},{"line_number":65,"context_line":"               default\u003d\u002786400\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_adec9c2a","line":62,"updated":"2016-08-11 14:19:25.000000000","message":"Shouldn\u0027t be a string.","commit_id":"74f7008d8a705f31aa102d92911e3b5d9c18e5c8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ade0a7972f89731944482ff1c8d97fcdf90229c4","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                default\u003d\u00278080\u0027,"},{"line_number":63,"context_line":"                help\u003d\u0027The port of DISCO destination API\u0027),"},{"line_number":64,"context_line":"    cfg.IntOpt(\u0027backup_check_timeout\u0027,"},{"line_number":65,"context_line":"               default\u003d\u002786400\u0027,"},{"line_number":66,"context_line":"               help\u003d\u0027How long we check whether a backup \u0027"},{"line_number":67,"context_line":"                    \u0027is finished before we give up\u0027),"},{"line_number":68,"context_line":"    cfg.IntOpt(\u0027restore_backup_check_timeout\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_edf21405","line":65,"updated":"2016-08-11 14:19:25.000000000","message":"Shouldn\u0027t be a string.","commit_id":"74f7008d8a705f31aa102d92911e3b5d9c18e5c8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ade0a7972f89731944482ff1c8d97fcdf90229c4","unresolved":false,"context_lines":[{"line_number":66,"context_line":"               help\u003d\u0027How long we check whether a backup \u0027"},{"line_number":67,"context_line":"                    \u0027is finished before we give up\u0027),"},{"line_number":68,"context_line":"    cfg.IntOpt(\u0027restore_backup_check_timeout\u0027,"},{"line_number":69,"context_line":"               default\u003d\u002786400\u0027,"},{"line_number":70,"context_line":"               help\u003d\u0027How long we check whether a backup restore \u0027"},{"line_number":71,"context_line":"                    \u0027is finished before we give up\u0027)"},{"line_number":72,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_2de1cc2d","line":69,"updated":"2016-08-11 14:19:25.000000000","message":"Shouldn\u0027t be a string.","commit_id":"74f7008d8a705f31aa102d92911e3b5d9c18e5c8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ade0a7972f89731944482ff1c8d97fcdf90229c4","unresolved":false,"context_lines":[{"line_number":75,"context_line":"CONF.register_opts(service_opts)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"class DiscoBackupDriver(driver.BackupDriver):"},{"line_number":79,"context_line":"    \"\"\"Backup Cinder volumes to DISCO."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    DISCO lets the user to do backup between two DISCO instances."}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_cdcc70bd","line":78,"updated":"2016-08-11 14:19:25.000000000","message":"Please add @interface.backupdriver to this.\n\nhttps://github.com/openstack/cinder/blob/master/cinder/backup/drivers/google.py#L118","commit_id":"74f7008d8a705f31aa102d92911e3b5d9c18e5c8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ade0a7972f89731944482ff1c8d97fcdf90229c4","unresolved":false,"context_lines":[{"line_number":123,"context_line":"    def _backup_disco_volume(self, volume_id, description, incremental):"},{"line_number":124,"context_line":"        \"\"\"Backup a DISCO volume to another DISCO instance.\"\"\""},{"line_number":125,"context_line":"        # 1. Retreive the source volume info from DISCO."},{"line_number":126,"context_line":"        response_volume_info \u003d \\"},{"line_number":127,"context_line":"            self.disco_src_api.volume_detail_by_id(volume_id)"},{"line_number":128,"context_line":"        status \u003d response_volume_info[\u0027status\u0027]"},{"line_number":129,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_8d3278a5","line":126,"range":{"start_line":126,"start_character":31,"end_line":126,"end_character":32},"updated":"2016-08-11 14:19:25.000000000","message":"Please reformat throughout to avoid using \\ to span lines. You can wrap in () if needed.","commit_id":"74f7008d8a705f31aa102d92911e3b5d9c18e5c8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ade0a7972f89731944482ff1c8d97fcdf90229c4","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        status \u003d response_volume_info[\u0027status\u0027]"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        if status !\u003d 0:"},{"line_number":131,"context_line":"            msg \u003d (_(\"Error[%s]\""},{"line_number":132,"context_line":"                     \"while getting volume detail.\"), six.text_type(status))"},{"line_number":133,"context_line":"            LOG.error(msg)"},{"line_number":134,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_8dd9d859","line":131,"updated":"2016-08-11 14:19:25.000000000","message":"Might look better if you add some spacing here.","commit_id":"74f7008d8a705f31aa102d92911e3b5d9c18e5c8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ade0a7972f89731944482ff1c8d97fcdf90229c4","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        result \u003d response_backup[\u0027result\u0027]"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"        if status !\u003d 0:"},{"line_number":165,"context_line":"            msg \u003d (_(\"Error while creating backup\""},{"line_number":166,"context_line":"                     \"[status] %(stat)s - [result] %(res)s\") %"},{"line_number":167,"context_line":"                   {\u0027stat\u0027: six.text_type(status), \u0027res\u0027: result})"},{"line_number":168,"context_line":"            LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_adbdbcd9","line":165,"updated":"2016-08-11 14:19:25.000000000","message":"Add space to the end.","commit_id":"74f7008d8a705f31aa102d92911e3b5d9c18e5c8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ade0a7972f89731944482ff1c8d97fcdf90229c4","unresolved":false,"context_lines":[{"line_number":189,"context_line":"            disco_volume_id \u003d response_create[\u0027result\u0027]"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"            if status_create !\u003d 0:"},{"line_number":192,"context_line":"                msg \u003d (_(\"Error on creating the volume\""},{"line_number":193,"context_line":"                         \"[status] %(stat)s - [result] %(res)s\") %"},{"line_number":194,"context_line":"                       {\u0027stat\u0027: six.text_type(status_create),"},{"line_number":195,"context_line":"                        \u0027res\u0027: disco_volume_id})"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_0d94c840","line":192,"updated":"2016-08-11 14:19:25.000000000","message":"Add space to the end.","commit_id":"74f7008d8a705f31aa102d92911e3b5d9c18e5c8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ade0a7972f89731944482ff1c8d97fcdf90229c4","unresolved":false,"context_lines":[{"line_number":256,"context_line":"            incremental \u003d parent_id is not None"},{"line_number":257,"context_line":"            disco_volume_id \u003d volume[\u0027provider_location\u0027]"},{"line_number":258,"context_line":"            LOG.debug(\"Backup DISCO volume : %(disco_id)s\","},{"line_number":259,"context_line":"                      {\u0027disco_id\u0027: six.text_type(disco_volume_id)})"},{"line_number":260,"context_line":"            self._backup_disco_volume("},{"line_number":261,"context_line":"                disco_volume_id, description, incremental)"},{"line_number":262,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_ede694e6","line":259,"range":{"start_line":259,"start_character":35,"end_line":259,"end_character":49},"updated":"2016-08-11 14:19:25.000000000","message":"Remove six.text_type when passing in as a format argument to the logger.","commit_id":"74f7008d8a705f31aa102d92911e3b5d9c18e5c8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ade0a7972f89731944482ff1c8d97fcdf90229c4","unresolved":false,"context_lines":[{"line_number":291,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"        LOG.debug(\"restoreFromSnapshot : [status] %(stat)s \""},{"line_number":294,"context_line":"                  \"- [result] %(res)s \" %"},{"line_number":295,"context_line":"                  {\u0027stat\u0027: six.text_type(status), \u0027res\u0027: restore_id})"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"        # Looping call"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_0df7a88b","line":294,"range":{"start_line":294,"start_character":39,"end_line":294,"end_character":41},"updated":"2016-08-11 14:19:25.000000000","message":"% \u003e ,","commit_id":"74f7008d8a705f31aa102d92911e3b5d9c18e5c8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ade0a7972f89731944482ff1c8d97fcdf90229c4","unresolved":false,"context_lines":[{"line_number":292,"context_line":""},{"line_number":293,"context_line":"        LOG.debug(\"restoreFromSnapshot : [status] %(stat)s \""},{"line_number":294,"context_line":"                  \"- [result] %(res)s \" %"},{"line_number":295,"context_line":"                  {\u0027stat\u0027: six.text_type(status), \u0027res\u0027: restore_id})"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"        # Looping call"},{"line_number":298,"context_line":"        self._monitor_end_restore(restore_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_4ded20b6","line":295,"range":{"start_line":295,"start_character":27,"end_line":295,"end_character":41},"updated":"2016-08-11 14:19:25.000000000","message":"Remove","commit_id":"74f7008d8a705f31aa102d92911e3b5d9c18e5c8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ade0a7972f89731944482ff1c8d97fcdf90229c4","unresolved":false,"context_lines":[{"line_number":321,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"        LOG.debug(\"restoreFromSnapshot : [status] %(stat)s \""},{"line_number":324,"context_line":"                  \"- [result] %(res)s \" %"},{"line_number":325,"context_line":"                  {\u0027stat\u0027: six.text_type(status), \u0027res\u0027: restore_id})"},{"line_number":326,"context_line":"        # monitor restore status"},{"line_number":327,"context_line":"        self._monitor_end_restore(restore_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_0d3e8827","line":324,"range":{"start_line":324,"start_character":39,"end_line":324,"end_character":41},"updated":"2016-08-11 14:19:25.000000000","message":"% \u003e ,","commit_id":"74f7008d8a705f31aa102d92911e3b5d9c18e5c8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ade0a7972f89731944482ff1c8d97fcdf90229c4","unresolved":false,"context_lines":[{"line_number":322,"context_line":""},{"line_number":323,"context_line":"        LOG.debug(\"restoreFromSnapshot : [status] %(stat)s \""},{"line_number":324,"context_line":"                  \"- [result] %(res)s \" %"},{"line_number":325,"context_line":"                  {\u0027stat\u0027: six.text_type(status), \u0027res\u0027: restore_id})"},{"line_number":326,"context_line":"        # monitor restore status"},{"line_number":327,"context_line":"        self._monitor_end_restore(restore_id)"},{"line_number":328,"context_line":"        # get the volume information"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_6d4904d0","line":325,"range":{"start_line":325,"start_character":27,"end_line":325,"end_character":40},"updated":"2016-08-11 14:19:25.000000000","message":"Remove","commit_id":"74f7008d8a705f31aa102d92911e3b5d9c18e5c8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ade0a7972f89731944482ff1c8d97fcdf90229c4","unresolved":false,"context_lines":[{"line_number":331,"context_line":"        status \u003d response_volume_info[\u0027status\u0027]"},{"line_number":332,"context_line":"        if status !\u003d 0:"},{"line_number":333,"context_line":"            msg \u003d (_(\"Error[%s] while getting volume detail.\")"},{"line_number":334,"context_line":"                   % six.text_type(status))"},{"line_number":335,"context_line":"            LOG.error(msg)"},{"line_number":336,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":337,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_adcadc18","line":334,"range":{"start_line":334,"start_character":35,"end_line":334,"end_character":41},"updated":"2016-08-11 14:19:25.000000000","message":"Can status contain unicode characters? I think you should be able to just format the string without having to call six.text_type.  (\"Error[%s]\" % status)","commit_id":"74f7008d8a705f31aa102d92911e3b5d9c18e5c8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ade0a7972f89731944482ff1c8d97fcdf90229c4","unresolved":false,"context_lines":[{"line_number":340,"context_line":"        volume_connection \u003d {}"},{"line_number":341,"context_line":"        volume_connection[\u0027name\u0027] \u003d volume_name"},{"line_number":342,"context_line":"        volume_connection[\u0027provider_location\u0027] \u003d temporary_volume_id"},{"line_number":343,"context_line":"        LOG.debug(\"Get the detail of the volume\""},{"line_number":344,"context_line":"                  \"[status] %(stat)s - [result] %(res)s\" %"},{"line_number":345,"context_line":"                  {\u0027stat\u0027: six.text_type(status), \u0027res\u0027: temporary_volume_id})"},{"line_number":346,"context_line":"        volume_path \u003d os.path.realpath(volume_file.name)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_cdd3d0d3","line":343,"updated":"2016-08-11 14:19:25.000000000","message":"Add space.","commit_id":"74f7008d8a705f31aa102d92911e3b5d9c18e5c8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ade0a7972f89731944482ff1c8d97fcdf90229c4","unresolved":false,"context_lines":[{"line_number":341,"context_line":"        volume_connection[\u0027name\u0027] \u003d volume_name"},{"line_number":342,"context_line":"        volume_connection[\u0027provider_location\u0027] \u003d temporary_volume_id"},{"line_number":343,"context_line":"        LOG.debug(\"Get the detail of the volume\""},{"line_number":344,"context_line":"                  \"[status] %(stat)s - [result] %(res)s\" %"},{"line_number":345,"context_line":"                  {\u0027stat\u0027: six.text_type(status), \u0027res\u0027: temporary_volume_id})"},{"line_number":346,"context_line":"        volume_path \u003d os.path.realpath(volume_file.name)"},{"line_number":347,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_0dda08e8","line":344,"range":{"start_line":344,"start_character":56,"end_line":344,"end_character":58},"updated":"2016-08-11 14:19:25.000000000","message":"% \u003e ,","commit_id":"74f7008d8a705f31aa102d92911e3b5d9c18e5c8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ade0a7972f89731944482ff1c8d97fcdf90229c4","unresolved":false,"context_lines":[{"line_number":342,"context_line":"        volume_connection[\u0027provider_location\u0027] \u003d temporary_volume_id"},{"line_number":343,"context_line":"        LOG.debug(\"Get the detail of the volume\""},{"line_number":344,"context_line":"                  \"[status] %(stat)s - [result] %(res)s\" %"},{"line_number":345,"context_line":"                  {\u0027stat\u0027: six.text_type(status), \u0027res\u0027: temporary_volume_id})"},{"line_number":346,"context_line":"        volume_path \u003d os.path.realpath(volume_file.name)"},{"line_number":347,"context_line":"        try:"},{"line_number":348,"context_line":"            self._copy_data(self.local_path(temporary_volume_id),"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_4de08096","line":345,"range":{"start_line":345,"start_character":27,"end_line":345,"end_character":40},"updated":"2016-08-11 14:19:25.000000000","message":"Remove","commit_id":"74f7008d8a705f31aa102d92911e3b5d9c18e5c8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ade0a7972f89731944482ff1c8d97fcdf90229c4","unresolved":false,"context_lines":[{"line_number":388,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":389,"context_line":"        temporary_volume_id \u003d \\"},{"line_number":390,"context_line":"            response_volume_info[\u0027volumeInfoResult\u0027][\u0027volumeId\u0027]"},{"line_number":391,"context_line":"        LOG.debug(\"Get the detail of the volume\""},{"line_number":392,"context_line":"                  \"[status] %(stat)s - [result] %(res)s\" %"},{"line_number":393,"context_line":"                  {\u0027stat\u0027: six.text_type(status), \u0027res\u0027: temporary_volume_id})"},{"line_number":394,"context_line":"        response_delete \u003d self.disco_dst_api.volume_delete("}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_ad981c1d","line":391,"range":{"start_line":391,"start_character":46,"end_line":391,"end_character":47},"updated":"2016-08-11 14:19:25.000000000","message":"Add space","commit_id":"74f7008d8a705f31aa102d92911e3b5d9c18e5c8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ade0a7972f89731944482ff1c8d97fcdf90229c4","unresolved":false,"context_lines":[{"line_number":389,"context_line":"        temporary_volume_id \u003d \\"},{"line_number":390,"context_line":"            response_volume_info[\u0027volumeInfoResult\u0027][\u0027volumeId\u0027]"},{"line_number":391,"context_line":"        LOG.debug(\"Get the detail of the volume\""},{"line_number":392,"context_line":"                  \"[status] %(stat)s - [result] %(res)s\" %"},{"line_number":393,"context_line":"                  {\u0027stat\u0027: six.text_type(status), \u0027res\u0027: temporary_volume_id})"},{"line_number":394,"context_line":"        response_delete \u003d self.disco_dst_api.volume_delete("},{"line_number":395,"context_line":"            temporary_volume_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_6d93c4fa","line":392,"range":{"start_line":392,"start_character":56,"end_line":392,"end_character":58},"updated":"2016-08-11 14:19:25.000000000","message":"Change to ,","commit_id":"74f7008d8a705f31aa102d92911e3b5d9c18e5c8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ade0a7972f89731944482ff1c8d97fcdf90229c4","unresolved":false,"context_lines":[{"line_number":390,"context_line":"            response_volume_info[\u0027volumeInfoResult\u0027][\u0027volumeId\u0027]"},{"line_number":391,"context_line":"        LOG.debug(\"Get the detail of the volume\""},{"line_number":392,"context_line":"                  \"[status] %(stat)s - [result] %(res)s\" %"},{"line_number":393,"context_line":"                  {\u0027stat\u0027: six.text_type(status), \u0027res\u0027: temporary_volume_id})"},{"line_number":394,"context_line":"        response_delete \u003d self.disco_dst_api.volume_delete("},{"line_number":395,"context_line":"            temporary_volume_id)"},{"line_number":396,"context_line":"        status \u003d response_delete[\u0027status\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_2db42c7e","line":393,"range":{"start_line":393,"start_character":27,"end_line":393,"end_character":40},"updated":"2016-08-11 14:19:25.000000000","message":"Remove","commit_id":"74f7008d8a705f31aa102d92911e3b5d9c18e5c8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ade0a7972f89731944482ff1c8d97fcdf90229c4","unresolved":false,"context_lines":[{"line_number":436,"context_line":"                                                  \"restore_detail\")"},{"line_number":437,"context_line":"        restore_request._monitor_request(CONF.restore_backup_check_timeout)"},{"line_number":438,"context_line":"        total_time \u003d int(time.time()) - start_time"},{"line_number":439,"context_line":"        LOG.debug(\"Backup terminated in %s seconds\", six.text_type(total_time))"},{"line_number":440,"context_line":""},{"line_number":441,"context_line":"    def _monitor_end_snapshot(self, snapshot_id):"},{"line_number":442,"context_line":"        \"\"\"Monitor until a snapshot terminates.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_8d50b833","line":439,"range":{"start_line":439,"start_character":53,"end_line":439,"end_character":66},"updated":"2016-08-11 14:19:25.000000000","message":"There is no need to do this string conversion for an int.","commit_id":"74f7008d8a705f31aa102d92911e3b5d9c18e5c8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ade0a7972f89731944482ff1c8d97fcdf90229c4","unresolved":false,"context_lines":[{"line_number":495,"context_line":"                          check_exit_code\u003d0)"},{"line_number":496,"context_line":"            return True"},{"line_number":497,"context_line":"        except putils.ProcessExecutionError as e:"},{"line_number":498,"context_line":"            msg \u003d (_(\"Error while copying data \""},{"line_number":499,"context_line":"                     \"[error] %s.\") % e)"},{"line_number":500,"context_line":"            LOG.error(msg)"},{"line_number":501,"context_line":"            return False"},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"    def _copy_data(self, src_volume, dst_volume, volume_info, size):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_2d29cc9e","line":500,"range":{"start_line":498,"start_character":12,"end_line":500,"end_character":26},"updated":"2016-08-11 14:19:25.000000000","message":"Should be _LE.\nChange this to LOG.exception and get rid of formatting the exception into the message text.","commit_id":"74f7008d8a705f31aa102d92911e3b5d9c18e5c8"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"6b54f2bbfcb40945d0828225abf841686d0be9c0","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                help\u003d\u0027Block size for dd.\u0027),"},{"line_number":46,"context_line":"    cfg.IntOpt(\u0027backup_policy_id\u0027,"},{"line_number":47,"context_line":"               default\u003d617,"},{"line_number":48,"context_line":"               help\u003d\u0027backup policy id to know that the backup \u0027"},{"line_number":49,"context_line":"               \u0027will be saved in this backup backend\u0027),"},{"line_number":50,"context_line":"    cfg.StrOpt(\u0027volume_zone_id\u0027,"},{"line_number":51,"context_line":"               default\u003d\u00271\u0027,"},{"line_number":52,"context_line":"               help\u003d\u0027zone id of the source DISCO backend\u0027),"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa7ab95a_cfd05722","line":49,"range":{"start_line":48,"start_character":21,"end_line":49,"end_character":52},"updated":"2016-08-29 15:26:33.000000000","message":"Could you please rephrase this help message?","commit_id":"b3afd58484d1fb8753eef5878564da29d9b4e55b"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"6b54f2bbfcb40945d0828225abf841686d0be9c0","unresolved":false,"context_lines":[{"line_number":49,"context_line":"               \u0027will be saved in this backup backend\u0027),"},{"line_number":50,"context_line":"    cfg.StrOpt(\u0027volume_zone_id\u0027,"},{"line_number":51,"context_line":"               default\u003d\u00271\u0027,"},{"line_number":52,"context_line":"               help\u003d\u0027zone id of the source DISCO backend\u0027),"},{"line_number":53,"context_line":"    cfg.StrOpt(\u0027backup_volume_name_prefix\u0027,"},{"line_number":54,"context_line":"               default\u003d\u0027openstack-backup-volume-\u0027,"},{"line_number":55,"context_line":"               help\u003d\u0027Prefix before volume name to \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa7ab95a_6fa82b8e","line":52,"range":{"start_line":52,"start_character":21,"end_line":52,"end_character":25},"updated":"2016-08-29 15:26:33.000000000","message":"nit: Zone","commit_id":"b3afd58484d1fb8753eef5878564da29d9b4e55b"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"ba6e4cfe7ae813cfd6807307625650bc6df29164","unresolved":false,"context_lines":[{"line_number":58,"context_line":"               default\u003d\u0027/dev/dms\u0027,"},{"line_number":59,"context_line":"               help\u003d\u0027DISCO device name prefix\u0027),"},{"line_number":60,"context_line":"    cfg.IPOpt(\u0027disco_dst_api_ip\u0027,"},{"line_number":61,"context_line":"              default\u003d\u002710.211.12.6\u0027,"},{"line_number":62,"context_line":"              help\u003d\u0027The IP of DISCO destination API\u0027),"},{"line_number":63,"context_line":"    cfg.PortOpt(\u0027disco_dst_api_port\u0027,"},{"line_number":64,"context_line":"                default\u003d8080,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a8ec9b2_80506460","line":61,"updated":"2016-09-19 17:16:22.000000000","message":"This should not have a default set.","commit_id":"b3afd58484d1fb8753eef5878564da29d9b4e55b"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"6b54f2bbfcb40945d0828225abf841686d0be9c0","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                help\u003d\u0027The port of DISCO destination API\u0027),"},{"line_number":66,"context_line":"    cfg.IntOpt(\u0027backup_check_timeout\u0027,"},{"line_number":67,"context_line":"               default\u003d86400,"},{"line_number":68,"context_line":"               help\u003d\u0027How long we check whether a backup \u0027"},{"line_number":69,"context_line":"                    \u0027is finished before we give up\u0027),"},{"line_number":70,"context_line":"    cfg.IntOpt(\u0027restore_backup_check_timeout\u0027,"},{"line_number":71,"context_line":"               default\u003d86400,"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa7ab95a_af85d307","line":68,"updated":"2016-08-29 15:26:33.000000000","message":"Please mention the time unit.","commit_id":"b3afd58484d1fb8753eef5878564da29d9b4e55b"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"6b54f2bbfcb40945d0828225abf841686d0be9c0","unresolved":false,"context_lines":[{"line_number":69,"context_line":"                    \u0027is finished before we give up\u0027),"},{"line_number":70,"context_line":"    cfg.IntOpt(\u0027restore_backup_check_timeout\u0027,"},{"line_number":71,"context_line":"               default\u003d86400,"},{"line_number":72,"context_line":"               help\u003d\u0027How long we check whether a backup restore \u0027"},{"line_number":73,"context_line":"                    \u0027is finished before we give up\u0027)"},{"line_number":74,"context_line":"]"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa7ab95a_ef7b5b26","line":72,"updated":"2016-08-29 15:26:33.000000000","message":"Same comment.","commit_id":"b3afd58484d1fb8753eef5878564da29d9b4e55b"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"6b54f2bbfcb40945d0828225abf841686d0be9c0","unresolved":false,"context_lines":[{"line_number":120,"context_line":"    def _file_is_disco(self, volume_file):"},{"line_number":121,"context_line":"        \"\"\"Return True if the volume_file is a DISCO volume.\"\"\""},{"line_number":122,"context_line":"        vol_name \u003d volume_file.name"},{"line_number":123,"context_line":"        return vol_name.startswith(CONF.disco_dev_prefix, 0,"},{"line_number":124,"context_line":"                                   len(CONF.disco_dev_prefix))"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    def _backup_disco_volume(self, volume_id, description, incremental):"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa7ab95a_4f336714","line":123,"updated":"2016-08-29 15:26:33.000000000","message":"return vol_name.startswith(CONF.disco_dev_prefix)","commit_id":"b3afd58484d1fb8753eef5878564da29d9b4e55b"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"6b54f2bbfcb40945d0828225abf841686d0be9c0","unresolved":false,"context_lines":[{"line_number":202,"context_line":"            disco_volume_id \u003d vol_info[\u0027volumeInfoResult\u0027][\u0027volumeId\u0027]"},{"line_number":203,"context_line":"            volume_size \u003d vol_info[\u0027volumeInfoResult\u0027][\u0027volSizeMb\u0027]"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"            if volume_size !\u003d size:"},{"line_number":206,"context_line":"                LOG.debug(\"Extend the disco volume size\")"},{"line_number":207,"context_line":"                extend_response \u003d ("},{"line_number":208,"context_line":"                    self.disco_dst_api.volume_extend(disco_volume_id, size))"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa7ab95a_5a76c7a4","line":205,"updated":"2016-08-29 15:26:33.000000000","message":"volume_size \u003c size","commit_id":"b3afd58484d1fb8753eef5878564da29d9b4e55b"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"6b54f2bbfcb40945d0828225abf841686d0be9c0","unresolved":false,"context_lines":[{"line_number":318,"context_line":"                     \"[status] %(stat)s - [result] %(res)s\") %"},{"line_number":319,"context_line":"                   {\u0027stat\u0027: six.text_type(status), \u0027res\u0027: restore_id})"},{"line_number":320,"context_line":"            LOG.error(msg)"},{"line_number":321,"context_line":"            # thre restoration has failed. We need to delete"},{"line_number":322,"context_line":"            # the created temporary volume used for the restoration"},{"line_number":323,"context_line":"            self._restore_failed_delete_volume(volume_name)"},{"line_number":324,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa7ab95a_fa95db86","line":321,"range":{"start_line":321,"start_character":14,"end_line":321,"end_character":18},"updated":"2016-08-29 15:26:33.000000000","message":"typo","commit_id":"b3afd58484d1fb8753eef5878564da29d9b4e55b"}],"cinder/tests/unit/backup/drivers/disco/test_backup_disco_to_disco.py":[{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"6b54f2bbfcb40945d0828225abf841686d0be9c0","unresolved":false,"context_lines":[{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    def test_backup_disco_to_disco(self):"},{"line_number":143,"context_line":"        \"\"\"Test the method to backup a disco volume to a disco backend.\"\"\""},{"line_number":144,"context_line":"        with mock.patch.object(self.driver, \u0027_file_is_disco\u0027) as \\"},{"line_number":145,"context_line":"                mock_file_is_disco:"},{"line_number":146,"context_line":"            mock_file_is_disco.side_effect \u003d self.fake_source_volume_type"},{"line_number":147,"context_line":"            with mock.patch.object(self.driver.disco_src_api, \u0027volume_detail_by_id\u0027) as \\"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa7ab95a_9afccf73","line":144,"updated":"2016-08-29 15:26:33.000000000","message":"Please use decorators instead of nested context managers.","commit_id":"b3afd58484d1fb8753eef5878564da29d9b4e55b"}]}
