[ 
https://issues.apache.org/jira/browse/SUBMARINE-68?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16841418#comment-16841418
 ] 

Adam Antal commented on SUBMARINE-68:
-------------------------------------

Thanks for the patch [~snemeth]!

- It seems a bit red flag for me that {{MockRemoteDirectoryManager.java}}'s 
getJobStagingArea must be called before its methods are used. I don't have a 
constructive way to change this, but I'd rather call that function {{init()}} 
or explicitly say it in the javadoc of the class and that method how to use it.
- In the javadoc of {{downloadAndZip}} you should say "May _call the_ 
downloadInternal function.." rather than "May downloadInternal...".
- how many times will you be using {{getFilePathInTempDir}}? It makes sense to 
cache the output of {{System.getProperty("java.io.tmpdir")}} in as private 
attribute of the class.
- In {{downloadRemoteFile}} I'd rather say 
{noformat}
LOG.info("Downloaded {} remote file to this local path: {}.", remoteDir, 
zipDirPath);
{noformat}
- Also in {{validFileSize()}} I'd refine the log phrase to
{noformat}
LOG.info("{} file / directory path is {} with size {} bytes."
  + " Allowed max file / directory size is {} bytes",
  locationType, uri, actualSizeInBytes, maxFileSizeInBytes);
{noformat}
- In {{getMaxRemoteFileSizeMB()}} the JVM can optimize these constants better, 
if you move it to a static field (like lots of other places in hadoop) e.g.:
{noformat}
public class NodePage extends NMView {
  private static final long BYTES_IN_MB = 1024 * 1024;
{noformat}
- In {{Localizer$handleLocalizations}} this comment just does not make any 
sense. Could you care of that?
{noformat}
  // Non HDFS remote uri. Non directory, no need to zip
{noformat}
- Please use the other constructor to obtain a File object 
{{FileUtilitiesForTests $createDirInDir}}. So instead of this:
{noformat}
File file =
  new File(dir.toUri().getPath() + "/" + new Path(newDir).getName());
{noformat}
Use this:
{noformat}
File file =
  new File(dir.toUri().getPath(), newDir);
{noformat}
Also do we need to have this: _new Path(newDir).getName()_ ? Isn't enough to 
just simply call with parameter _newDir_?
Also if you ever came across the literal "/", I encourage you to rather use 
File.separator to be FileSystem-compatible (for e.g. to work with Windows).

Regarding the testcases:
- {{setupService()}} looks meaningless. You construct an object and discard it. 
You can remove it.
- For supportability you may move {{FILE_SCHEME}} to {{FileUtilitiesForTests}}.
- Also as I checked the files constructed in 
{{testUploadToRemoteFileMultipleFiles}} and other places by 
{{FileUtilitiesForTests}} object:
{noformat}
File testFile1 = fileUtils.createFileInTempDir("testFile1");
File testFile2 = fileUtils.createFileInTempDir("testFile2");
{noformat}
Are they getting cleaned up after the run? It seems to me that in 
{{FileUtilitiesForTests}} they're not getting added to the {{cleanupFiles}}.

> Add tests to FileSystemOperations class
> ---------------------------------------
>
>                 Key: SUBMARINE-68
>                 URL: https://issues.apache.org/jira/browse/SUBMARINE-68
>             Project: Hadoop Submarine
>          Issue Type: Improvement
>            Reporter: Szilard Nemeth
>            Assignee: Szilard Nemeth
>            Priority: Minor
>         Attachments: SUBMARINE-68.001.patch, SUBMARINE-68.002.patch, 
> SUBMARINE-68.003.patch
>
>




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to