)]}'
{"cinder/volume/drivers/nexenta/ns5/jsonrpc.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"33de62d5bf5ab8fc9ac39f51618b7a7c12bbb41b","unresolved":false,"context_lines":[{"line_number":76,"context_line":"            data \u003d jsonutils.dumps(data)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        LOG.debug((\u0027Sending JSON to url: %(path)s, data: %(data)s,\u0027"},{"line_number":79,"context_line":"                   \u0027 method: %(method)s\u0027) % {"},{"line_number":80,"context_line":"            \u0027path\u0027: path,"},{"line_number":81,"context_line":"            \u0027data\u0027: data,"},{"line_number":82,"context_line":"            \u0027method\u0027: method"}],"source_content_type":"text/x-python","patch_set":17,"id":"da6ed579_e0cd515e","line":79,"updated":"2016-01-16 15:12:25.000000000","message":"() around string not needed. Change % to , to pass in formatting values as args to logger.","commit_id":"c2525dcbc7754ca6adbf8a92780f869b44084a73"}],"cinder/volume/drivers/nexenta/ns5/nfs.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"3ef24770a5d0563581037e82c5edc8c582a7d28e","unresolved":false,"context_lines":[{"line_number":403,"context_line":"            \u0027Successfully shared filesystem %s\u0027 % \u0027/\u0027.join("},{"line_number":404,"context_line":"                [path, filesystem]))"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"    def _load_shares_config(self, share_file):"},{"line_number":407,"context_line":"        for line in self._read_config_file(share_file):"},{"line_number":408,"context_line":"            # A configuration line may be either:"},{"line_number":409,"context_line":"            # host:/share_name  http://user:pass@host:[port]/"}],"source_content_type":"text/x-python","patch_set":12,"id":"da6ed579_5be95a7f","line":406,"updated":"2016-01-13 16:10:51.000000000","message":"Please don\u0027t use the nfs_shares config file method in a new driver.  This can be done with nas_ip, nas_share_path, and nas_mount_options now.\n\nThe file-based config method will be removed from the base NFS driver soon.","commit_id":"ca7fec97c88546215f90e55e8b981bfb054278fb"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"33de62d5bf5ab8fc9ac39f51618b7a7c12bbb41b","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        url \u003d \u0027storage/pools/%s\u0027 % (pool_name)"},{"line_number":101,"context_line":"        if not self.nef(url):"},{"line_number":102,"context_line":"            raise LookupError(_(\"Pool %s does not exist in Nexenta \""},{"line_number":103,"context_line":"                                \"Store appliance\"), pool_name)"},{"line_number":104,"context_line":"        url \u003d \u0027storage/pools/%s/filesystems/%s\u0027 % ("},{"line_number":105,"context_line":"            pool_name, fs)"},{"line_number":106,"context_line":"        if not self.nef(url):"}],"source_content_type":"text/x-python","patch_set":17,"id":"da6ed579_c03e0d29","line":103,"range":{"start_line":103,"start_character":50,"end_line":103,"end_character":51},"updated":"2016-01-16 15:12:25.000000000","message":"String needs to be formatted before passed in to the exception constructor, so change , to % or else this ends up being a tuple.","commit_id":"c2525dcbc7754ca6adbf8a92780f869b44084a73"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"33de62d5bf5ab8fc9ac39f51618b7a7c12bbb41b","unresolved":false,"context_lines":[{"line_number":105,"context_line":"            pool_name, fs)"},{"line_number":106,"context_line":"        if not self.nef(url):"},{"line_number":107,"context_line":"            raise LookupError(_(\"filesystem %s does not exist in \""},{"line_number":108,"context_line":"                                \"Nexenta Store appliance\"), fs)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        path \u003d \u0027/\u0027.join([pool_name, fs])"},{"line_number":111,"context_line":"        shared \u003d False"}],"source_content_type":"text/x-python","patch_set":17,"id":"da6ed579_804815ce","line":108,"range":{"start_line":108,"start_character":58,"end_line":108,"end_character":59},"updated":"2016-01-16 15:12:25.000000000","message":", \u003d\u003e %","commit_id":"c2525dcbc7754ca6adbf8a92780f869b44084a73"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"33de62d5bf5ab8fc9ac39f51618b7a7c12bbb41b","unresolved":false,"context_lines":[{"line_number":116,"context_line":"                break"},{"line_number":117,"context_line":"        if not shared:"},{"line_number":118,"context_line":"            raise LookupError(_(\"Dataset %s is not shared in Nexenta \""},{"line_number":119,"context_line":"                                \"Store appliance\"), path)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    def initialize_connection(self, volume, connector):"},{"line_number":122,"context_line":"        \"\"\"Allow connection to connector and return connection info."}],"source_content_type":"text/x-python","patch_set":17,"id":"da6ed579_601641a9","line":119,"range":{"start_line":119,"start_character":50,"end_line":119,"end_character":51},"updated":"2016-01-16 15:12:25.000000000","message":", \u003d\u003e %","commit_id":"c2525dcbc7754ca6adbf8a92780f869b44084a73"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"33de62d5bf5ab8fc9ac39f51618b7a7c12bbb41b","unresolved":false,"context_lines":[{"line_number":189,"context_line":"                                \"%(vol)s/%(folder)s\"),"},{"line_number":190,"context_line":"                            {\u0027vol\u0027: pool, \u0027folder\u0027: \u0027/\u0027.join("},{"line_number":191,"context_line":"                                [fs, volume[\u0027name\u0027]])})"},{"line_number":192,"context_line":"            raise exc"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    def delete_volume(self, volume):"},{"line_number":195,"context_line":"        \"\"\"Deletes a logical volume."}],"source_content_type":"text/x-python","patch_set":17,"id":"da6ed579_2087e9d8","line":192,"range":{"start_line":192,"start_character":17,"end_line":192,"end_character":21},"updated":"2016-01-16 15:12:25.000000000","message":"This should just be \"raise\" not \"raise ex\" to keep the correct exception details.","commit_id":"c2525dcbc7754ca6adbf8a92780f869b44084a73"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"33de62d5bf5ab8fc9ac39f51618b7a7c12bbb41b","unresolved":false,"context_lines":[{"line_number":257,"context_line":"        except exception.NexentaException as exc:"},{"line_number":258,"context_line":"            if \u0027EBUSY\u0027 is exc:"},{"line_number":259,"context_line":"                LOG.warning(_LW("},{"line_number":260,"context_line":"                    \u0027Could not delete snapshot %s - it has dependencies\u0027) %"},{"line_number":261,"context_line":"                    snapshot[\u0027name\u0027])"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"    def create_volume_from_snapshot(self, volume, snapshot):"}],"source_content_type":"text/x-python","patch_set":17,"id":"da6ed579_a073d914","line":260,"range":{"start_line":260,"start_character":74,"end_line":260,"end_character":75},"updated":"2016-01-16 15:12:25.000000000","message":"% \u003d\u003e ,","commit_id":"c2525dcbc7754ca6adbf8a92780f869b44084a73"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"33de62d5bf5ab8fc9ac39f51618b7a7c12bbb41b","unresolved":false,"context_lines":[{"line_number":285,"context_line":"        except exception.NexentaException:"},{"line_number":286,"context_line":"            try:"},{"line_number":287,"context_line":"                url \u003d (\u0027storage/pools/%(pool)s/\u0027"},{"line_number":288,"context_line":"                       \u0027filesystems/%(fs)s\u0027), {"},{"line_number":289,"context_line":"                    \u0027pool\u0027: pool,"},{"line_number":290,"context_line":"                    \u0027fs\u0027: volume[\u0027name\u0027]"},{"line_number":291,"context_line":"                }"}],"source_content_type":"text/x-python","patch_set":17,"id":"da6ed579_0059858e","line":288,"range":{"start_line":288,"start_character":44,"end_line":288,"end_character":45},"updated":"2016-01-16 15:12:25.000000000","message":"I think you mean to format the URL here. If so, \",\" needs to be changed to \"%\" to perform the formatting.","commit_id":"c2525dcbc7754ca6adbf8a92780f869b44084a73"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"33de62d5bf5ab8fc9ac39f51618b7a7c12bbb41b","unresolved":false,"context_lines":[{"line_number":385,"context_line":"        self.nef(url, data)"},{"line_number":386,"context_line":""},{"line_number":387,"context_line":"        LOG.debug("},{"line_number":388,"context_line":"            \u0027Successfully shared filesystem %s\u0027 % \u0027/\u0027.join("},{"line_number":389,"context_line":"                [path, filesystem]))"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"    def _get_capacity_info(self, path):"}],"source_content_type":"text/x-python","patch_set":17,"id":"da6ed579_804d75c6","line":388,"range":{"start_line":388,"start_character":48,"end_line":388,"end_character":49},"updated":"2016-01-16 15:12:25.000000000","message":"% \u003d\u003e ,","commit_id":"c2525dcbc7754ca6adbf8a92780f869b44084a73"}]}
