From 0687d174de88ddbc49e92eeddd0ea81c813f33e7 Mon Sep 17 00:00:00 2001
From: Jan Kozusznik <jan@kozusznik.cz>
Date: Fri, 10 Nov 2017 10:26:40 +0100
Subject: [PATCH] fix upload

---
 .../it4i/fiji/haas_java_client/HaaSClient.java   |  8 ++++++--
 .../TestHaaSJavaClientWithSPIM.java              | 16 ++++++++++++++--
 .../java/cz/it4i/fiji/scpclient/ScpClient.java   |  4 +++-
 3 files changed, 23 insertions(+), 5 deletions(-)

diff --git a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/HaaSClient.java b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/HaaSClient.java
index ba8a5569..931adc63 100644
--- a/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/HaaSClient.java
+++ b/haas-java-client/src/main/java/cz/it4i/fiji/haas_java_client/HaaSClient.java
@@ -131,8 +131,12 @@ public class HaaSClient {
 
 				for (Path file : files) {
 					System.out.println("Uploading file: " + file.getFileName());
-					scpClient.upload(file, fileTransfer.getSharedBasepath() + "/" + file.getFileName());
-					System.out.println("File uploaded.");
+					String destFile = fileTransfer.getSharedBasepath() + "/" ;
+					boolean result = scpClient.upload(file, destFile);
+					System.out.println(result?"File uploaded.":"File not uploaded");
+					if(!result) {
+						throw new HaaSClientException("Uploading of " + file + " to " + destFile + " failed");
+					}
 				}
 			}
 			getFileTransfer().endFileTransfer(job.getId(), fileTransfer, getSessionID());
diff --git a/haas-java-client/src/test/java/cz/it4i/fiji/haas_java_client/TestHaaSJavaClientWithSPIM.java b/haas-java-client/src/test/java/cz/it4i/fiji/haas_java_client/TestHaaSJavaClientWithSPIM.java
index 3e973116..785c7071 100644
--- a/haas-java-client/src/test/java/cz/it4i/fiji/haas_java_client/TestHaaSJavaClientWithSPIM.java
+++ b/haas-java-client/src/test/java/cz/it4i/fiji/haas_java_client/TestHaaSJavaClientWithSPIM.java
@@ -4,6 +4,7 @@ import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
+import java.util.Collections;
 
 import javax.xml.rpc.ServiceException;
 
@@ -16,8 +17,8 @@ public class TestHaaSJavaClientWithSPIM {
 		HaaSClient client = new HaaSClient(2l, 9600, 6l, "DD-17-31");
 		Path baseDir = Paths.get("/home/koz01/Work/vyzkumnik/fiji/work/aaa");
 
-		long jobId = 36;// client.start(Collections.emptyList(), "TestOutRedirect",
-						// Collections.emptyList());
+		long jobId =  client.start(getAllFiles(baseDir.resolve("spim-data")), "TestOutRedirect",
+						 Collections.emptyList());
 		Path workDir = baseDir.resolve("" + jobId);
 		if (!Files.isDirectory(workDir)) {
 			Files.createDirectories(workDir);
@@ -47,6 +48,17 @@ public class TestHaaSJavaClientWithSPIM {
 				&& info.getState() != JobState.Finished);
 	}
 
+	private static Iterable<Path> getAllFiles(Path resolve) {
+		
+		return () -> {
+			try {
+				return Files.newDirectoryStream(resolve).iterator();
+			} catch (IOException e) {
+				throw new RuntimeException(e);
+			}
+		};
+	}
+
 	private static void addOffsetFilesForTask(Long taskId, SynchronizableFiles files) {
 		files.addFile(taskId, SynchronizableFileType.ProgressFile, 0);
 		files.addFile(taskId, SynchronizableFileType.StandardErrorFile, 0);
diff --git a/java-scpclient/src/main/java/cz/it4i/fiji/scpclient/ScpClient.java b/java-scpclient/src/main/java/cz/it4i/fiji/scpclient/ScpClient.java
index dc6e570a..41a8e8a9 100644
--- a/java-scpclient/src/main/java/cz/it4i/fiji/scpclient/ScpClient.java
+++ b/java-scpclient/src/main/java/cz/it4i/fiji/scpclient/ScpClient.java
@@ -34,7 +34,9 @@ public class ScpClient implements Closeable {
 	public ScpClient(String hostName, String userName, String keyFile, String pass) throws JSchException {
 		Identity id = IdentityFile.newInstance(keyFile, null, jsch);
 		try {
-			id.setPassphrase(pass.getBytes("UTF-8"));
+			if(pass != null) {
+				id.setPassphrase(pass.getBytes("UTF-8"));
+			}
 		} catch (UnsupportedEncodingException e) {
 			throw new RuntimeException(e);
 		}
-- 
GitLab