[ 
https://issues.apache.org/jira/browse/HADOOP-5732?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12706591#action_12706591
 ] 

Chris Douglas commented on HADOOP-5732:
---------------------------------------

bq. It was based on the method used in the FTP FileSystem which used a runtime 
exception. Should I use IOException then? For example if it throws an 
IOException at "exists" method, the API should be changed, I think that's why 
they used FTPException. In this case, should I just solve the exception 
locally? or throwing the SFTPException?

Yikes; I didn't know it did that. Yes, please throw IOException and not 
RuntimeException. Applications won't expect the latter.

bq. Done, it extends FSInputStream. Should I modify something in order to do it 
package-private?

Top-level classes without a visibility modifier are package-private, i.e. are 
not visible to classes outside the package. No other classes should be creating 
SFTPInputStream instances, right?

bq. I work with hadoop 0.19, which defines this methods, I prefer specifying it 
as deprecated.

I see. As a new feature, the earliest branch to which it should be committed is 
0.21, so the {...@override}} annotations should fail. If you'd like to attach 
patches for 0.19 and/or 0.20 on this issue for others to use in their own 
deployments, that's great, but the version committed to the mainline should not 
include these as they should have no callers.

bq. > Any particular reason for not supporting setting the working directory?
bq. It is the same problem with FTPFileSystem: "Directory on the server is 
changed to the parent directory of the file. The FTP client connection is 
closed when close() is called on the FSDataInputStream."

That makes sense. Since the working directory can be a Path member in the 
FileSystem handle, you could make all paths relative to that path instead of 
the default directory, right? Applications referencing generic filesystems 
might use the working directory abstraction, which would have unexpected 
results with this FileSystem. If FTPFileSystem has the same quirk and you've 
documented it, it's OK if you want to leave it that way, but I'd lean towards 
supporting it. Applications that deal with generic FileSystems- like DistCp- 
usually end up creating absolute paths to avoid edge cases like this one, but 
it would be nice if that were unnecessary. It's up to you.

bq. How do you plan to test this, incidentally? I'd recommend having some 
test.* properties that, if set, would let you sftp back in to localhost or 
another named host.

The unit tests should not require the user running the tests to have an ssh 
login on the host machine, neither should it be necessary to configure such a 
user. If jsch has a clever way to run its unit tests without actually 
performing these checks- perhaps in its development branch- that would be 
hugely, hugely preferred. If that's not possible... then like KFS, there's not 
much to be done to prevent regressions.

Please create a unified patch with the ivy changes that applies to 0.21. Once 
that's done, you can submit the patch to automated testing using the "Submit 
Patch" link to the left.

> SFTP FileSystem
> ---------------
>
>                 Key: HADOOP-5732
>                 URL: https://issues.apache.org/jira/browse/HADOOP-5732
>             Project: Hadoop Core
>          Issue Type: New Feature
>          Components: fs
>         Environment: Any environment
>            Reporter: Íñigo Goiri
>            Priority: Minor
>         Attachments: HADOOP-FS-SFTP.patch, HADOOP-FS-SFTP.patch, 
> ivy-for-hadoop-7532.patch, ivy-for-hadoop-7532.patch, SFTPException.java, 
> SFTPFileSystem.java, SFTPInputStream.java
>
>   Original Estimate: 0h
>  Remaining Estimate: 0h
>
> I have implemented a FileSystem that supports SFTP. It uses JSch 
> (http://www.jcraft.com/jsch/) in order to manage SFTP.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to