Added WebHDFS rewritten to provide correct Error object and localized error messages (#4223)

This commit is contained in:
Gene Lee
2019-03-04 15:23:50 -08:00
committed by GitHub
parent 2309b16bd4
commit f4365dbd3a
6 changed files with 840 additions and 138 deletions

View File

@@ -281,17 +281,14 @@ export class FileNode extends HdfsFileSourceNode implements IFileNode {
public writeFileContentsToDisk(localPath: string, cancelToken?: vscode.CancellationTokenSource): Promise<vscode.Uri> {
return new Promise((resolve, reject) => {
let readStream: fs.ReadStream = this.fileSource.createReadStream(this.hdfsPath);
readStream.on('error', (err) => {
reject(err);
});
let error: string | Error = undefined;
let writeStream = fs.createWriteStream(localPath, {
encoding: 'utf8'
});
let cancelable = new CancelableStream(cancelToken);
cancelable.on('error', (err) => {
reject(err);
});
readStream.pipe(cancelable).pipe(writeStream);
let error: string | Error = undefined;
writeStream.on('error', (err) => {
error = err;
reject(error);
@@ -301,6 +298,13 @@ export class FileNode extends HdfsFileSourceNode implements IFileNode {
resolve(vscode.Uri.file(localPath));
}
});
let cancelable = new CancelableStream(cancelToken);
cancelable.on('error', (err) => {
reject(err);
});
readStream.pipe(cancelable).pipe(writeStream);
});
}