You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ch...@apache.org on 2015/06/24 16:15:06 UTC
[5/5] airavata git commit: fixing compilation issues
fixing compilation issues
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/df3fbe6a
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/df3fbe6a
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/df3fbe6a
Branch: refs/heads/master
Commit: df3fbe6aa3d8f477bab3275e620d77bfb924bae0
Parents: a2dce4f
Author: Chathuri Wimalasena <ch...@apache.org>
Authored: Wed Jun 24 10:14:54 2015 -0400
Committer: Chathuri Wimalasena <ch...@apache.org>
Committed: Wed Jun 24 10:14:54 2015 -0400
----------------------------------------------------------------------
.../gaussian/handler/GaussianHandler.java | 326 ++---
.../org/apache/airavata/gfac/core/GFac.java | 10 +-
.../apache/airavata/gfac/core/GFacUtils.java | 39 +-
.../SSHPublicKeyAuthentication.java | 2 +-
.../SSHPublicKeyFileAuthentication.java | 2 +-
.../gfac/core/context/JobExecutionContext.java | 988 +++++++--------
.../airavata/gfac/core/monitor/MonitorID.java | 30 +-
.../java/com/jcraft/jsch/GSSContextX509.java | 205 ++++
.../UserAuthGSSAPIWithMICGSSCredentials.java | 1 -
.../gfac/impl/task/SSHJobSubmissionTask.java | 26 +-
.../handler/LocalDirectorySetupHandler.java | 124 +-
.../gfac/local/handler/LocalInputHandler.java | 184 +--
.../gfac/local/provider/impl/LocalProvider.java | 618 +++++-----
.../gfac/local/utils/LocalProviderUtil.java | 102 +-
.../ssh/handler/AdvancedSCPInputHandler.java | 454 +++----
.../ssh/handler/AdvancedSCPOutputHandler.java | 450 +++----
.../gfac/ssh/handler/NewSSHOutputHandler.java | 156 +--
.../ssh/handler/SSHDirectorySetupHandler.java | 238 ++--
.../gfac/ssh/handler/SSHInputHandler.java | 386 +++---
.../gfac/ssh/handler/SSHOutputHandler.java | 510 ++++----
.../gfac/ssh/provider/impl/SSHProvider.java | 946 +++++++--------
.../airavata/gfac/ssh/util/GFACSSHUtils.java | 1124 +++++++++---------
.../airavata/gfac/ssh/util/HandleOutputs.java | 192 +--
.../apache/airavata/gfac/server/GfacServer.java | 4 +-
24 files changed, 3649 insertions(+), 3468 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/df3fbe6a/modules/gfac/gfac-application-specific-handlers/src/main/java/org/apache/airavata/application/gaussian/handler/GaussianHandler.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-application-specific-handlers/src/main/java/org/apache/airavata/application/gaussian/handler/GaussianHandler.java b/modules/gfac/gfac-application-specific-handlers/src/main/java/org/apache/airavata/application/gaussian/handler/GaussianHandler.java
index 074786a..2481ec9 100644
--- a/modules/gfac/gfac-application-specific-handlers/src/main/java/org/apache/airavata/application/gaussian/handler/GaussianHandler.java
+++ b/modules/gfac/gfac-application-specific-handlers/src/main/java/org/apache/airavata/application/gaussian/handler/GaussianHandler.java
@@ -1,163 +1,163 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.application.gaussian.handler;
-
-import org.apache.airavata.gfac.core.context.JobExecutionContext;
-import org.apache.airavata.gfac.core.handler.AbstractHandler;
-import org.apache.airavata.gfac.core.handler.GFacHandlerException;
-import org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType;
-import org.apache.airavata.model.experiment.ComputationalResourceScheduling;
-import org.apache.airavata.registry.cpi.ExperimentCatalogModelType;
-import org.apache.airavata.registry.cpi.RegistryException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-
-public class GaussianHandler extends AbstractHandler {
-
- private static final Logger logger = LoggerFactory.getLogger(GaussianHandler.class);
- public static final String LINK_SECTION = "%";
- public static final String ROUTE_SECTION = "#";
- public static final String PROC_SHARED = "procshared";
- public static final String MEM = "mem";
- public static final String CHK = "chk";
- public static final String PROC = "proc";
-
- public static final String EQUAL = "=";
- public static final String OPEN_PARENTHESES = "(";
- public static final String CLOSE_PARENTHESES = ")";
-
- private String mainInputFilePath;
- @Override
- public void invoke(JobExecutionContext jobExecutionContext) throws GFacHandlerException {
- super.invoke(jobExecutionContext);
- Map<String, String> configurations;
- Map<String, Object> parameters = jobExecutionContext.getInMessageContext().getParameters();
- // only get first input file, which is the main input file
- for (Object paraValue : parameters.values()) {
- if (paraValue instanceof InputDataObjectType) {
- InputDataObjectType inputDataObjectType = (InputDataObjectType) paraValue;
- mainInputFilePath = inputDataObjectType.getValue();
- break;
- }
- }
- if (mainInputFilePath != null) {
- File mainInputFile = new File(mainInputFilePath);
- if (mainInputFile.exists()) {
- try {
- configurations = parseGaussianInputFile(mainInputFile);
- ComputationalResourceScheduling taskScheduling = jobExecutionContext.getTaskData().getTaskScheduling();
- for (Map.Entry<String, String> inputConfig : configurations.entrySet()) {
- if (inputConfig.getKey().equals(PROC_SHARED)) {
- taskScheduling.setTotalCPUCount(Integer.parseInt(inputConfig.getValue()));
- } else if (inputConfig.getKey().equals(MEM)) {
- int userRequestedMem = Integer.parseInt(inputConfig.getValue());
- int additionalMem = (int) (userRequestedMem * 0.2);
- // TODO check (userRequestedMem + additionalMem) > maxNode or Queue allowed Mem
- taskScheduling.setTotalPhysicalMemory(userRequestedMem + additionalMem);
- } else if (inputConfig.getKey().equals(PROC)) {
- taskScheduling.setTotalCPUCount(Integer.parseInt(inputConfig.getValue()));
- } else {
- // TODO - handle other input configurations
- }
- logger.info("$$$$$$$$ " + inputConfig.getKey() + " --> " + inputConfig.getValue() + " $$$$$$$$$$$");
- }
- experimentCatalog.update(ExperimentCatalogModelType.TASK_DETAIL, jobExecutionContext.getTaskData(), jobExecutionContext.getTaskData().getTaskID());
- } catch (IOException e) {
- throw new GFacHandlerException("Error while reading main input file ", e);
- } catch (RegistryException e) {
- throw new GFacHandlerException("Error while updating task details", e);
- }
- } else {
- throw new GFacHandlerException("Main input file doesn't exists " + mainInputFilePath);
- }
-
- } else {
- throw new GFacHandlerException("Main input file path shouldn't be null");
- }
-
- }
-
- /* %procshared=6 , put this line to the map key:procshared , value:6
- keyword = option
- keyword(option)
- keyword=(option1, option2, …)
- keyword(option1, option2, …)*/
- // TODO - make this method private
- public Map<String, String> parseGaussianInputFile(File mainInputFile) throws IOException {
- Map<String, String> configs = new HashMap<String, String>();
- BufferedReader br = new BufferedReader(new FileReader(mainInputFile));
- String line = br.readLine();
- while (line != null) {
- line = line.trim();
- String keyword = null;
- String withoutKeyword = null;
- String option = null;
- if (line.startsWith(LINK_SECTION)) {
- int equalIndex = line.indexOf(EQUAL);
- int openParenthesesIndex = line.indexOf(OPEN_PARENTHESES);
- // read the keyword
- if (equalIndex > 0) {
- keyword = line.substring(1, equalIndex).trim();
- withoutKeyword = line.substring(equalIndex + 1, line.length()); // remove up to = sign
- } else if (openParenthesesIndex > 0) {
- keyword = line.substring(1, openParenthesesIndex).trim();
- withoutKeyword = line.substring(openParenthesesIndex, line.length()); // remove left side of ( sign
- } else {
- // TODO - malformed input configuration
- }
- // read the option
- if (openParenthesesIndex > 0) {
- if (withoutKeyword.endsWith(CLOSE_PARENTHESES)) {
- option = withoutKeyword.substring(1, withoutKeyword.length() - 1);
- } else {
- //TODO - malformed input configuration
- }
- } else {
- option = withoutKeyword.trim();
- }
- configs.put(keyword, option);
- } else if (line.startsWith(ROUTE_SECTION)) {
- // parse the line
- }
- line = br.readLine();
- }
- return configs;
- }
-
- @Override
- public void initProperties(Properties properties) throws GFacHandlerException {
-
- }
-
- @Override
- public void recover(JobExecutionContext jobExecutionContext) throws GFacHandlerException {
- // Implement this method if we need safe recover steps before rerun the task.
- }
-}
+///*
+// *
+// * Licensed to the Apache Software Foundation (ASF) under one
+// * or more contributor license agreements. See the NOTICE file
+// * distributed with this work for additional information
+// * regarding copyright ownership. The ASF licenses this file
+// * to you under the Apache License, Version 2.0 (the
+// * "License"); you may not use this file except in compliance
+// * with the License. You may obtain a copy of the License at
+// *
+// * http://www.apache.org/licenses/LICENSE-2.0
+// *
+// * Unless required by applicable law or agreed to in writing,
+// * software distributed under the License is distributed on an
+// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// * KIND, either express or implied. See the License for the
+// * specific language governing permissions and limitations
+// * under the License.
+// *
+// */
+//
+//package org.apache.airavata.application.gaussian.handler;
+//
+//import org.apache.airavata.gfac.core.context.JobExecutionContext;
+//import org.apache.airavata.gfac.core.handler.AbstractHandler;
+//import org.apache.airavata.gfac.core.handler.GFacHandlerException;
+//import org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType;
+//import org.apache.airavata.model.experiment.ComputationalResourceScheduling;
+//import org.apache.airavata.registry.cpi.ExperimentCatalogModelType;
+//import org.apache.airavata.registry.cpi.RegistryException;
+//import org.slf4j.Logger;
+//import org.slf4j.LoggerFactory;
+//
+//import java.io.BufferedReader;
+//import java.io.File;
+//import java.io.FileReader;
+//import java.io.IOException;
+//import java.util.HashMap;
+//import java.util.Map;
+//import java.util.Properties;
+//
+//public class GaussianHandler extends AbstractHandler {
+//
+// private static final Logger logger = LoggerFactory.getLogger(GaussianHandler.class);
+// public static final String LINK_SECTION = "%";
+// public static final String ROUTE_SECTION = "#";
+// public static final String PROC_SHARED = "procshared";
+// public static final String MEM = "mem";
+// public static final String CHK = "chk";
+// public static final String PROC = "proc";
+//
+// public static final String EQUAL = "=";
+// public static final String OPEN_PARENTHESES = "(";
+// public static final String CLOSE_PARENTHESES = ")";
+//
+// private String mainInputFilePath;
+// @Override
+// public void invoke(JobExecutionContext jobExecutionContext) throws GFacHandlerException {
+// super.invoke(jobExecutionContext);
+// Map<String, String> configurations;
+// Map<String, Object> parameters = jobExecutionContext.getInMessageContext().getParameters();
+// // only get first input file, which is the main input file
+// for (Object paraValue : parameters.values()) {
+// if (paraValue instanceof InputDataObjectType) {
+// InputDataObjectType inputDataObjectType = (InputDataObjectType) paraValue;
+// mainInputFilePath = inputDataObjectType.getValue();
+// break;
+// }
+// }
+// if (mainInputFilePath != null) {
+// File mainInputFile = new File(mainInputFilePath);
+// if (mainInputFile.exists()) {
+// try {
+// configurations = parseGaussianInputFile(mainInputFile);
+// ComputationalResourceScheduling taskScheduling = jobExecutionContext.getTaskData().getTaskScheduling();
+// for (Map.Entry<String, String> inputConfig : configurations.entrySet()) {
+// if (inputConfig.getKey().equals(PROC_SHARED)) {
+// taskScheduling.setTotalCPUCount(Integer.parseInt(inputConfig.getValue()));
+// } else if (inputConfig.getKey().equals(MEM)) {
+// int userRequestedMem = Integer.parseInt(inputConfig.getValue());
+// int additionalMem = (int) (userRequestedMem * 0.2);
+// // TODO check (userRequestedMem + additionalMem) > maxNode or Queue allowed Mem
+// taskScheduling.setTotalPhysicalMemory(userRequestedMem + additionalMem);
+// } else if (inputConfig.getKey().equals(PROC)) {
+// taskScheduling.setTotalCPUCount(Integer.parseInt(inputConfig.getValue()));
+// } else {
+// // TODO - handle other input configurations
+// }
+// logger.info("$$$$$$$$ " + inputConfig.getKey() + " --> " + inputConfig.getValue() + " $$$$$$$$$$$");
+// }
+// experimentCatalog.update(ExperimentCatalogModelType.TASK_DETAIL, jobExecutionContext.getTaskData(), jobExecutionContext.getTaskData().getTaskID());
+// } catch (IOException e) {
+// throw new GFacHandlerException("Error while reading main input file ", e);
+// } catch (RegistryException e) {
+// throw new GFacHandlerException("Error while updating task details", e);
+// }
+// } else {
+// throw new GFacHandlerException("Main input file doesn't exists " + mainInputFilePath);
+// }
+//
+// } else {
+// throw new GFacHandlerException("Main input file path shouldn't be null");
+// }
+//
+// }
+//
+// /* %procshared=6 , put this line to the map key:procshared , value:6
+// keyword = option
+// keyword(option)
+// keyword=(option1, option2, …)
+// keyword(option1, option2, …)*/
+// // TODO - make this method private
+// public Map<String, String> parseGaussianInputFile(File mainInputFile) throws IOException {
+// Map<String, String> configs = new HashMap<String, String>();
+// BufferedReader br = new BufferedReader(new FileReader(mainInputFile));
+// String line = br.readLine();
+// while (line != null) {
+// line = line.trim();
+// String keyword = null;
+// String withoutKeyword = null;
+// String option = null;
+// if (line.startsWith(LINK_SECTION)) {
+// int equalIndex = line.indexOf(EQUAL);
+// int openParenthesesIndex = line.indexOf(OPEN_PARENTHESES);
+// // read the keyword
+// if (equalIndex > 0) {
+// keyword = line.substring(1, equalIndex).trim();
+// withoutKeyword = line.substring(equalIndex + 1, line.length()); // remove up to = sign
+// } else if (openParenthesesIndex > 0) {
+// keyword = line.substring(1, openParenthesesIndex).trim();
+// withoutKeyword = line.substring(openParenthesesIndex, line.length()); // remove left side of ( sign
+// } else {
+// // TODO - malformed input configuration
+// }
+// // read the option
+// if (openParenthesesIndex > 0) {
+// if (withoutKeyword.endsWith(CLOSE_PARENTHESES)) {
+// option = withoutKeyword.substring(1, withoutKeyword.length() - 1);
+// } else {
+// //TODO - malformed input configuration
+// }
+// } else {
+// option = withoutKeyword.trim();
+// }
+// configs.put(keyword, option);
+// } else if (line.startsWith(ROUTE_SECTION)) {
+// // parse the line
+// }
+// line = br.readLine();
+// }
+// return configs;
+// }
+//
+// @Override
+// public void initProperties(Properties properties) throws GFacHandlerException {
+//
+// }
+//
+// @Override
+// public void recover(JobExecutionContext jobExecutionContext) throws GFacHandlerException {
+// // Implement this method if we need safe recover steps before rerun the task.
+// }
+//}
http://git-wip-us.apache.org/repos/asf/airavata/blob/df3fbe6a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFac.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFac.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFac.java
index ca3f5b2..4050ef0 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFac.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFac.java
@@ -21,8 +21,8 @@
package org.apache.airavata.gfac.core;
import org.apache.airavata.common.utils.LocalEventPublisher;
+import org.apache.airavata.gfac.core.context.ProcessContext;
import org.apache.airavata.registry.cpi.AppCatalog;
-import org.apache.airavata.gfac.core.context.JobExecutionContext;
import org.apache.airavata.registry.cpi.ExperimentCatalog;
import org.apache.curator.framework.CuratorFramework;
@@ -54,17 +54,17 @@ public interface GFac {
/**
* This method can be used in a handler to ivvoke outhandler asynchronously
- * @param jobExecutionContext
+ * @param processContext
* @throws GFacException
*/
- public void invokeOutFlowHandlers(JobExecutionContext jobExecutionContext) throws GFacException;
+ public void invokeOutFlowHandlers(ProcessContext processContext) throws GFacException;
/**
* This method can be used to handle re-run case asynchronously
- * @param jobExecutionContext
+ * @param processContext
* @throws GFacException
*/
- public void reInvokeOutFlowHandlers(JobExecutionContext jobExecutionContext) throws GFacException;
+ public void reInvokeOutFlowHandlers(ProcessContext processContext) throws GFacException;
/**
* This operation can be used to cancel an already running experiment
http://git-wip-us.apache.org/repos/asf/airavata/blob/df3fbe6a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java
index c7b2093..6a9f63a 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java
@@ -26,7 +26,6 @@ import org.apache.airavata.common.utils.DBUtil;
import org.apache.airavata.common.utils.ServerSettings;
import org.apache.airavata.credential.store.store.CredentialReader;
import org.apache.airavata.credential.store.store.impl.CredentialReaderImpl;
-import org.apache.airavata.gfac.core.context.JobExecutionContext;
import org.apache.airavata.gfac.core.context.ProcessContext;
import org.apache.airavata.gfac.core.context.TaskContext;
import org.apache.airavata.gfac.core.watcher.CancelRequestWatcher;
@@ -609,18 +608,18 @@ public class GFacUtils {
// }
// }
- public static String getHandlerData(JobExecutionContext jobExecutionContext, String className) throws Exception {
- CuratorFramework curatorClient = jobExecutionContext.getCuratorClient();
- if (curatorClient != null) {
- String expZnodeHandlerPath = AiravataZKUtils
- .getExpZnodeHandlerPath(
- jobExecutionContext.getExperimentID(),
- className);
- Stat exists = curatorClient.checkExists().forPath(expZnodeHandlerPath);
- return new String(jobExecutionContext.getCuratorClient().getData().storingStatIn(exists).forPath(expZnodeHandlerPath));
- }
- return null;
- }
+// public static String getHandlerData(ProcessContext processContext, String className) throws Exception {
+// CuratorFramework curatorClient = processContext.getCuratorClient();
+// if (curatorClient != null) {
+// String expZnodeHandlerPath = AiravataZKUtils
+// .getExpZnodeHandlerPath(
+// processContext.getExperimentID(),
+// className);
+// Stat exists = curatorClient.checkExists().forPath(expZnodeHandlerPath);
+// return new String(processContext.getCuratorClient().getData().storingStatIn(exists).forPath(expZnodeHandlerPath));
+// }
+// return null;
+// }
public static CredentialReader getCredentialReader()
throws ApplicationSettingsException, IllegalAccessException,
@@ -730,13 +729,13 @@ public class GFacUtils {
return details.getExperimentStatus().getState();
}
- public static boolean isFailedJob(JobExecutionContext jec) {
-// JobStatus jobStatus = jec.getJobDetails().getJobStatus();
-// if (jobStatus.getJobState() == JobState.FAILED) {
-// return true;
-// }
- return false;
- }
+// public static boolean isFailedJob(JobExecutionContext jec) {
+//// JobStatus jobStatus = jec.getJobDetails().getJobStatus();
+//// if (jobStatus.getJobState() == JobState.FAILED) {
+//// return true;
+//// }
+// return false;
+// }
public static boolean ackCancelRequest(String experimentId, CuratorFramework curatorClient) throws Exception {
String experimentEntry = GFacUtils.findExperimentEntry(experimentId, curatorClient);
http://git-wip-us.apache.org/repos/asf/airavata/blob/df3fbe6a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/authentication/SSHPublicKeyAuthentication.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/authentication/SSHPublicKeyAuthentication.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/authentication/SSHPublicKeyAuthentication.java
index 8824f5b..a579445 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/authentication/SSHPublicKeyAuthentication.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/authentication/SSHPublicKeyAuthentication.java
@@ -33,7 +33,7 @@ package org.apache.airavata.gfac.core.authentication;
* The public key and private key are returned as byte arrays. Useful when we store private key/public key
* in a secure storage such as credential store. API user should implement this.
*/
-public interface SSHPublicKeyAuthentication extends SSHKeyAuthentication {
+public interface SSHPublicKeyAuthentication extends AuthenticationInfo {
/**
* Gets the public key as byte array.
http://git-wip-us.apache.org/repos/asf/airavata/blob/df3fbe6a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/authentication/SSHPublicKeyFileAuthentication.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/authentication/SSHPublicKeyFileAuthentication.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/authentication/SSHPublicKeyFileAuthentication.java
index f98e945..25595fd 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/authentication/SSHPublicKeyFileAuthentication.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/authentication/SSHPublicKeyFileAuthentication.java
@@ -30,7 +30,7 @@ package org.apache.airavata.gfac.core.authentication;/*
* Public key authentication for vanilla SSH.
* The public key and private key stored files are returned. API user should implement this.
*/
-public interface SSHPublicKeyFileAuthentication extends SSHKeyAuthentication {
+public interface SSHPublicKeyFileAuthentication extends AuthenticationInfo {
/**
* The file which contains the public key.
http://git-wip-us.apache.org/repos/asf/airavata/blob/df3fbe6a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/JobExecutionContext.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/JobExecutionContext.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/JobExecutionContext.java
index 6c993e2..e3fa5ba 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/JobExecutionContext.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/JobExecutionContext.java
@@ -1,494 +1,494 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-package org.apache.airavata.gfac.core.context;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.airavata.common.utils.LocalEventPublisher;
-import org.apache.airavata.registry.core.experiment.catalog.impl.RegistryFactory;
-import org.apache.airavata.registry.cpi.AppCatalog;
-import org.apache.airavata.registry.cpi.AppCatalogException;
-import org.apache.airavata.gfac.core.GFacException;
-import org.apache.airavata.gfac.core.SecurityContext;
-import org.apache.airavata.gfac.core.GFac;
-import org.apache.airavata.gfac.core.provider.GFacProvider;
-import org.apache.airavata.model.appcatalog.computeresource.*;
-import org.apache.airavata.model.experiment.JobDetails;
-import org.apache.airavata.model.experiment.TaskDetails;
-import org.apache.airavata.model.experiment.WorkflowNodeDetails;
-import org.apache.airavata.registry.cpi.ExperimentCatalog;
-import org.apache.curator.framework.CuratorFramework;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class JobExecutionContext extends AbstractContext implements Serializable{
-
- private static final Logger log = LoggerFactory.getLogger(JobExecutionContext.class);
- private GFacConfiguration gfacConfiguration;
- private ApplicationContext applicationContext;
- private MessageContext inMessageContext;
- private MessageContext outMessageContext;
- //FIXME : not needed for gfac
- private Experiment experiment;
- private TaskDetails taskData;
- private JobDetails jobDetails;
- // FIXME : not needed for gfac
- private WorkflowNodeDetails workflowNodeDetails;
- private GFac gfac;
- private CuratorFramework curatorClient;
- private String credentialStoreToken;
- /**
- * User defined scratch/temp directory
- */
- private String scratchLocation;
- private String loginUserName;
- /**
- * User defined working directory.
- */
- private String workingDir;
- /**
- * Input data directory
- */
- private String inputDir;
- /**
- * Output data directory
- */
- private String outputDir;
- /**
- * standard output file path
- */
- private String standardOutput;
- /**
- * standard error file path
- */
- private String standardError;
- /**
- * User preferred job submission protocol.
- */
- private JobSubmissionProtocol preferredJobSubmissionProtocol;
- /**
- * User preferred data movement protocol.
- */
- private DataMovementProtocol preferredDataMovementProtocol;
- /**
- * List of job submission protocols sorted by priority order.
- */
- private List<JobSubmissionInterface> hostPrioritizedJobSubmissionInterfaces;
- /**
- * use preferred job submission protocol.
- */
- private JobSubmissionInterface preferredJobSubmissionInterface;
-
- private ResourceJobManager resourceJobManager;
- /**
- * List of job submission protocols sorted by priority order.
- */
- private List<DataMovementInterface> hostPrioritizedDataMovementInterfaces;
- /**
- * use preferred job submission protocol.
- */
- private DataMovementInterface preferredDataMovementInterface;
-
-// private ContextHeaderDocument.ContextHeader contextHeader;
-
- // Keep track of the current path of the message. Before hitting provider its in-path.
- // After provider its out-path.
- private boolean inPath = true;
-
- // Keep list of full qualified class names of GFac handlers which should invoked before
- // the provider. This is specific to current job being executed.
- private List<String> inHandlers = new ArrayList<String>();
-
- // Keep list of full qualified class names of GFac handlers which should invoked after
- // the provider. This is specific to current job being executed.
- private List<String> outHandlers = new ArrayList<String>();
-
- // During the execution of in-flow one of the handlers(Scheduling handler) will
- // set this and GFac API will get it from the JobExecutionContext and execute the provider.
- private GFacProvider provider;
-
- // Service description is used by GFac to mainly specify input/output parameters for a job
- // and to expose a job as a service to the outside world. This service concept abstract out
- // a scientific application(or algorithm) as a service. Service name is there to identify to
- // which service description we should refer during the execution of the current job represented
- // by this context instance.
- private String applicationName;
- private String experimentID;
- private AppCatalog appCatalog;
- private String gatewayID;
- private String status;
- private List<String> outputFileList;
- private ExperimentCatalog experimentCatalog;
- private LocalEventPublisher localEventPublisher;
-
- public String getGatewayID() {
- return gatewayID;
- }
-
- public void setGatewayID(String gatewayID) {
- this.gatewayID = gatewayID;
- }
-
-
- /**
- * Security context is used to handle authentication for input handlers and providers.
- * There can be multiple security requirement for a single job so this allows you to add multiple security types
- *
- */
- private Map<String, SecurityContext> securityContext = new HashMap<String, SecurityContext>();
-
- public JobExecutionContext(GFacConfiguration gFacConfiguration,String applicationName){
- this.gfacConfiguration = gFacConfiguration;
- setApplicationName(applicationName);
- outputFileList = new ArrayList<String>();
- }
-
- public AppCatalog getAppCatalog() {
- return appCatalog;
- }
-
- public void setAppCatalog(AppCatalog appCatalog) {
- if (appCatalog == null) {
- try {
- this.appCatalog = RegistryFactory.getAppCatalog();
- } catch (AppCatalogException e) {
- log.error("Unable to create app catalog instance", e);
- }
- } else {
- this.appCatalog = appCatalog;
- }
- }
-
- public String getExperimentID() {
- return experimentID;
- }
-
- public void setExperimentID(String experimentID) {
- this.experimentID = experimentID;
- }
-
- public ApplicationContext getApplicationContext() {
- return applicationContext;
- }
-
- public void setApplicationContext(ApplicationContext applicationContext) {
- this.applicationContext = applicationContext;
- }
-
- public MessageContext getInMessageContext() {
- return inMessageContext;
- }
-
- public void setInMessageContext(MessageContext inMessageContext) {
- this.inMessageContext = inMessageContext;
- }
-
- public MessageContext getOutMessageContext() {
- return outMessageContext;
- }
-
- public void setOutMessageContext(MessageContext outMessageContext) {
- this.outMessageContext = outMessageContext;
- }
-
- public GFacConfiguration getGFacConfiguration() {
- return gfacConfiguration;
- }
-
- public GFacProvider getProvider() {
- return provider;
- }
-
- public void setProvider(GFacProvider provider) {
- this.provider = provider;
- }
-
- public List<String> getInHandlers() {
- return inHandlers;
- }
-
- public void setInHandlers(List<String> inHandlers) {
- this.inHandlers = inHandlers;
- }
-
- public List<String> getOutHandlers() {
- return outHandlers;
- }
-
- public void setOutHandlers(List<String> outHandlers) {
- this.outHandlers = outHandlers;
- }
-
- public String getApplicationName() {
- return applicationName;
- }
-
- public void setApplicationName(String applicationName) {
- this.applicationName = applicationName;
- }
-
- public boolean isInPath() {
- return inPath;
- }
-
- public TaskDetails getTaskData() {
- return taskData;
- }
-
- public void setTaskData(TaskDetails taskData) {
- this.taskData = taskData;
- }
-
- public boolean isOutPath(){
- return !inPath;
- }
-
- public void setInPath() {
- this.inPath = true;
- }
-
- public void setOutPath(){
- this.inPath = false;
- }
-
- public ResourceJobManager getResourceJobManager() {
- return resourceJobManager;
- }
-
- public void setResourceJobManager(ResourceJobManager resourceJobManager) {
- this.resourceJobManager = resourceJobManager;
- }
-
- public SecurityContext getSecurityContext(String name) throws GFacException{
- SecurityContext secContext = securityContext.get(name);
- return secContext;
- }
-
- public void addSecurityContext(String name, SecurityContext value){
- securityContext.put(name, value);
- }
-
- public String getStatus() {
- return status;
- }
-
- public void setStatus(String status) {
- this.status = status;
- }
-
- public JobDetails getJobDetails() {
- return jobDetails;
- }
-
- public void setJobDetails(JobDetails jobDetails) {
- this.jobDetails = jobDetails;
- }
-
- public void addOutputFile(String file) {
- outputFileList.add(file);
- }
- public List<String> getOutputFiles(){
- return outputFileList;
- }
-
- public ExperimentCatalog getExperimentCatalog() {
- return experimentCatalog;
- }
-
- public Map<String, SecurityContext> getAllSecurityContexts(){
- return securityContext;
- }
-
- public void setExperimentCatalog(ExperimentCatalog experimentCatalog) {
- this.experimentCatalog = experimentCatalog;
- }
-
- public Experiment getExperiment() {
- return experiment;
- }
-
- public void setExperiment(Experiment experiment) {
- this.experiment = experiment;
- }
-
- public WorkflowNodeDetails getWorkflowNodeDetails() {
- return workflowNodeDetails;
- }
-
- public void setWorkflowNodeDetails(WorkflowNodeDetails workflowNodeDetails) {
- this.workflowNodeDetails = workflowNodeDetails;
- }
-
- public GFac getGfac() {
- return gfac;
- }
-
- public void setGfac(GFac gfac) {
- this.gfac = gfac;
- }
-
- public String getCredentialStoreToken() {
- return credentialStoreToken;
- }
-
- public void setCredentialStoreToken(String credentialStoreToken) {
- this.credentialStoreToken = credentialStoreToken;
- }
-
- public String getScratchLocation() {
- return scratchLocation;
- }
-
- public void setScratchLocation(String scratchLocation) {
- this.scratchLocation = scratchLocation;
- }
-
- public String getWorkingDir() {
- return workingDir;
- }
-
- public void setWorkingDir(String workingDir) {
- this.workingDir = workingDir;
- }
-
- public String getInputDir() {
- return inputDir;
- }
-
- public void setInputDir(String inputDir) {
- this.inputDir = inputDir;
- }
-
- public String getOutputDir() {
- return outputDir;
- }
-
- public void setOutputDir(String outputDir) {
- this.outputDir = outputDir;
- }
-
- public String getStandardOutput() {
- return standardOutput;
- }
-
- public void setStandardOutput(String standardOutput) {
- this.standardOutput = standardOutput;
- }
-
- public String getStandardError() {
- return standardError;
- }
-
- public void setStandardError(String standardError) {
- this.standardError = standardError;
- }
-
- public JobSubmissionProtocol getPreferredJobSubmissionProtocol() {
- return preferredJobSubmissionProtocol;
- }
-
- public void setPreferredJobSubmissionProtocol(JobSubmissionProtocol preferredJobSubmissionProtocol) {
- this.preferredJobSubmissionProtocol = preferredJobSubmissionProtocol;
- }
-
- public DataMovementProtocol getPreferredDataMovementProtocol() {
- return preferredDataMovementProtocol;
- }
-
- public void setPreferredDataMovementProtocol(DataMovementProtocol preferredDataMovementProtocol) {
- this.preferredDataMovementProtocol = preferredDataMovementProtocol;
- }
-
- public List<JobSubmissionInterface> getHostPrioritizedJobSubmissionInterfaces() {
- return hostPrioritizedJobSubmissionInterfaces;
- }
-
- public void setHostPrioritizedJobSubmissionInterfaces(List<JobSubmissionInterface> hostPrioritizedJobSubmissionInterfaces) {
- this.hostPrioritizedJobSubmissionInterfaces = hostPrioritizedJobSubmissionInterfaces;
- }
-
- public JobSubmissionInterface getPreferredJobSubmissionInterface() {
- return preferredJobSubmissionInterface;
- }
-
- public void setPreferredJobSubmissionInterface(JobSubmissionInterface preferredJobSubmissionInterface) {
- this.preferredJobSubmissionInterface = preferredJobSubmissionInterface;
- }
-
- public String getHostName() {
- return applicationContext.getComputeResourceDescription().getHostName();
- }
-
- public List<DataMovementInterface> getHostPrioritizedDataMovementInterfaces() {
- return hostPrioritizedDataMovementInterfaces;
- }
-
- public void setHostPrioritizedDataMovementInterfaces(List<DataMovementInterface> hostPrioritizedDataMovementInterfaces) {
- this.hostPrioritizedDataMovementInterfaces = hostPrioritizedDataMovementInterfaces;
- }
-
- public DataMovementInterface getPreferredDataMovementInterface() {
- return preferredDataMovementInterface;
- }
-
- public void setPreferredDataMovementInterface(DataMovementInterface preferredDataMovementInterface) {
- this.preferredDataMovementInterface = preferredDataMovementInterface;
- }
-
- public CuratorFramework getCuratorClient() {
- return curatorClient;
- }
-
- public void setCuratorClient(CuratorFramework curatorClient) {
- this.curatorClient = curatorClient;
- }
-
- public String getExecutablePath() {
- if (applicationContext == null || applicationContext.getApplicationDeploymentDescription() == null) {
- return null;
- } else {
- return applicationContext.getApplicationDeploymentDescription().getExecutablePath();
- }
- }
-
-
-
- public String getLoginUserName() {
- return loginUserName;
- }
-
- public void setLoginUserName(String loginUserName) {
- this.loginUserName = loginUserName;
- }
-
- public LocalEventPublisher getLocalEventPublisher() {
- return localEventPublisher;
- }
-
- public void setLocalEventPublisher(LocalEventPublisher localEventPublisher) {
- this.localEventPublisher = localEventPublisher;
- }
-}
+///*
+// *
+// * Licensed to the Apache Software Foundation (ASF) under one
+// * or more contributor license agreements. See the NOTICE file
+// * distributed with this work for additional information
+// * regarding copyright ownership. The ASF licenses this file
+// * to you under the Apache License, Version 2.0 (the
+// * "License"); you may not use this file except in compliance
+// * with the License. You may obtain a copy of the License at
+// *
+// * http://www.apache.org/licenses/LICENSE-2.0
+// *
+// * Unless required by applicable law or agreed to in writing,
+// * software distributed under the License is distributed on an
+// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// * KIND, either express or implied. See the License for the
+// * specific language governing permissions and limitations
+// * under the License.
+// *
+//*/
+//
+//package org.apache.airavata.gfac.core.context;
+//
+//import java.io.Serializable;
+//import java.util.ArrayList;
+//import java.util.HashMap;
+//import java.util.List;
+//import java.util.Map;
+//
+//import org.apache.airavata.common.utils.LocalEventPublisher;
+//import org.apache.airavata.registry.core.experiment.catalog.impl.RegistryFactory;
+//import org.apache.airavata.registry.cpi.AppCatalog;
+//import org.apache.airavata.registry.cpi.AppCatalogException;
+//import org.apache.airavata.gfac.core.GFacException;
+//import org.apache.airavata.gfac.core.SecurityContext;
+//import org.apache.airavata.gfac.core.GFac;
+//import org.apache.airavata.gfac.core.provider.GFacProvider;
+//import org.apache.airavata.model.appcatalog.computeresource.*;
+//import org.apache.airavata.model.experiment.JobDetails;
+//import org.apache.airavata.model.experiment.TaskDetails;
+//import org.apache.airavata.model.experiment.WorkflowNodeDetails;
+//import org.apache.airavata.registry.cpi.ExperimentCatalog;
+//import org.apache.curator.framework.CuratorFramework;
+//import org.slf4j.Logger;
+//import org.slf4j.LoggerFactory;
+//
+//public class JobExecutionContext extends AbstractContext implements Serializable{
+//
+// private static final Logger log = LoggerFactory.getLogger(JobExecutionContext.class);
+// private GFacConfiguration gfacConfiguration;
+// private ApplicationContext applicationContext;
+// private MessageContext inMessageContext;
+// private MessageContext outMessageContext;
+// //FIXME : not needed for gfac
+// private Experiment experiment;
+// private TaskDetails taskData;
+// private JobDetails jobDetails;
+// // FIXME : not needed for gfac
+// private WorkflowNodeDetails workflowNodeDetails;
+// private GFac gfac;
+// private CuratorFramework curatorClient;
+// private String credentialStoreToken;
+// /**
+// * User defined scratch/temp directory
+// */
+// private String scratchLocation;
+// private String loginUserName;
+// /**
+// * User defined working directory.
+// */
+// private String workingDir;
+// /**
+// * Input data directory
+// */
+// private String inputDir;
+// /**
+// * Output data directory
+// */
+// private String outputDir;
+// /**
+// * standard output file path
+// */
+// private String standardOutput;
+// /**
+// * standard error file path
+// */
+// private String standardError;
+// /**
+// * User preferred job submission protocol.
+// */
+// private JobSubmissionProtocol preferredJobSubmissionProtocol;
+// /**
+// * User preferred data movement protocol.
+// */
+// private DataMovementProtocol preferredDataMovementProtocol;
+// /**
+// * List of job submission protocols sorted by priority order.
+// */
+// private List<JobSubmissionInterface> hostPrioritizedJobSubmissionInterfaces;
+// /**
+// * use preferred job submission protocol.
+// */
+// private JobSubmissionInterface preferredJobSubmissionInterface;
+//
+// private ResourceJobManager resourceJobManager;
+// /**
+// * List of job submission protocols sorted by priority order.
+// */
+// private List<DataMovementInterface> hostPrioritizedDataMovementInterfaces;
+// /**
+// * use preferred job submission protocol.
+// */
+// private DataMovementInterface preferredDataMovementInterface;
+//
+//// private ContextHeaderDocument.ContextHeader contextHeader;
+//
+// // Keep track of the current path of the message. Before hitting provider its in-path.
+// // After provider its out-path.
+// private boolean inPath = true;
+//
+// // Keep list of full qualified class names of GFac handlers which should invoked before
+// // the provider. This is specific to current job being executed.
+// private List<String> inHandlers = new ArrayList<String>();
+//
+// // Keep list of full qualified class names of GFac handlers which should invoked after
+// // the provider. This is specific to current job being executed.
+// private List<String> outHandlers = new ArrayList<String>();
+//
+// // During the execution of in-flow one of the handlers(Scheduling handler) will
+// // set this and GFac API will get it from the JobExecutionContext and execute the provider.
+// private GFacProvider provider;
+//
+// // Service description is used by GFac to mainly specify input/output parameters for a job
+// // and to expose a job as a service to the outside world. This service concept abstract out
+// // a scientific application(or algorithm) as a service. Service name is there to identify to
+// // which service description we should refer during the execution of the current job represented
+// // by this context instance.
+// private String applicationName;
+// private String experimentID;
+// private AppCatalog appCatalog;
+// private String gatewayID;
+// private String status;
+// private List<String> outputFileList;
+// private ExperimentCatalog experimentCatalog;
+// private LocalEventPublisher localEventPublisher;
+//
+// public String getGatewayID() {
+// return gatewayID;
+// }
+//
+// public void setGatewayID(String gatewayID) {
+// this.gatewayID = gatewayID;
+// }
+//
+//
+// /**
+// * Security context is used to handle authentication for input handlers and providers.
+// * There can be multiple security requirement for a single job so this allows you to add multiple security types
+// *
+// */
+// private Map<String, SecurityContext> securityContext = new HashMap<String, SecurityContext>();
+//
+// public JobExecutionContext(GFacConfiguration gFacConfiguration,String applicationName){
+// this.gfacConfiguration = gFacConfiguration;
+// setApplicationName(applicationName);
+// outputFileList = new ArrayList<String>();
+// }
+//
+// public AppCatalog getAppCatalog() {
+// return appCatalog;
+// }
+//
+// public void setAppCatalog(AppCatalog appCatalog) {
+// if (appCatalog == null) {
+// try {
+// this.appCatalog = RegistryFactory.getAppCatalog();
+// } catch (AppCatalogException e) {
+// log.error("Unable to create app catalog instance", e);
+// }
+// } else {
+// this.appCatalog = appCatalog;
+// }
+// }
+//
+// public String getExperimentID() {
+// return experimentID;
+// }
+//
+// public void setExperimentID(String experimentID) {
+// this.experimentID = experimentID;
+// }
+//
+// public ApplicationContext getApplicationContext() {
+// return applicationContext;
+// }
+//
+// public void setApplicationContext(ApplicationContext applicationContext) {
+// this.applicationContext = applicationContext;
+// }
+//
+// public MessageContext getInMessageContext() {
+// return inMessageContext;
+// }
+//
+// public void setInMessageContext(MessageContext inMessageContext) {
+// this.inMessageContext = inMessageContext;
+// }
+//
+// public MessageContext getOutMessageContext() {
+// return outMessageContext;
+// }
+//
+// public void setOutMessageContext(MessageContext outMessageContext) {
+// this.outMessageContext = outMessageContext;
+// }
+//
+// public GFacConfiguration getGFacConfiguration() {
+// return gfacConfiguration;
+// }
+//
+// public GFacProvider getProvider() {
+// return provider;
+// }
+//
+// public void setProvider(GFacProvider provider) {
+// this.provider = provider;
+// }
+//
+// public List<String> getInHandlers() {
+// return inHandlers;
+// }
+//
+// public void setInHandlers(List<String> inHandlers) {
+// this.inHandlers = inHandlers;
+// }
+//
+// public List<String> getOutHandlers() {
+// return outHandlers;
+// }
+//
+// public void setOutHandlers(List<String> outHandlers) {
+// this.outHandlers = outHandlers;
+// }
+//
+// public String getApplicationName() {
+// return applicationName;
+// }
+//
+// public void setApplicationName(String applicationName) {
+// this.applicationName = applicationName;
+// }
+//
+// public boolean isInPath() {
+// return inPath;
+// }
+//
+// public TaskDetails getTaskData() {
+// return taskData;
+// }
+//
+// public void setTaskData(TaskDetails taskData) {
+// this.taskData = taskData;
+// }
+//
+// public boolean isOutPath(){
+// return !inPath;
+// }
+//
+// public void setInPath() {
+// this.inPath = true;
+// }
+//
+// public void setOutPath(){
+// this.inPath = false;
+// }
+//
+// public ResourceJobManager getResourceJobManager() {
+// return resourceJobManager;
+// }
+//
+// public void setResourceJobManager(ResourceJobManager resourceJobManager) {
+// this.resourceJobManager = resourceJobManager;
+// }
+//
+// public SecurityContext getSecurityContext(String name) throws GFacException{
+// SecurityContext secContext = securityContext.get(name);
+// return secContext;
+// }
+//
+// public void addSecurityContext(String name, SecurityContext value){
+// securityContext.put(name, value);
+// }
+//
+// public String getStatus() {
+// return status;
+// }
+//
+// public void setStatus(String status) {
+// this.status = status;
+// }
+//
+// public JobDetails getJobDetails() {
+// return jobDetails;
+// }
+//
+// public void setJobDetails(JobDetails jobDetails) {
+// this.jobDetails = jobDetails;
+// }
+//
+// public void addOutputFile(String file) {
+// outputFileList.add(file);
+// }
+// public List<String> getOutputFiles(){
+// return outputFileList;
+// }
+//
+// public ExperimentCatalog getExperimentCatalog() {
+// return experimentCatalog;
+// }
+//
+// public Map<String, SecurityContext> getAllSecurityContexts(){
+// return securityContext;
+// }
+//
+// public void setExperimentCatalog(ExperimentCatalog experimentCatalog) {
+// this.experimentCatalog = experimentCatalog;
+// }
+//
+// public Experiment getExperiment() {
+// return experiment;
+// }
+//
+// public void setExperiment(Experiment experiment) {
+// this.experiment = experiment;
+// }
+//
+// public WorkflowNodeDetails getWorkflowNodeDetails() {
+// return workflowNodeDetails;
+// }
+//
+// public void setWorkflowNodeDetails(WorkflowNodeDetails workflowNodeDetails) {
+// this.workflowNodeDetails = workflowNodeDetails;
+// }
+//
+// public GFac getGfac() {
+// return gfac;
+// }
+//
+// public void setGfac(GFac gfac) {
+// this.gfac = gfac;
+// }
+//
+// public String getCredentialStoreToken() {
+// return credentialStoreToken;
+// }
+//
+// public void setCredentialStoreToken(String credentialStoreToken) {
+// this.credentialStoreToken = credentialStoreToken;
+// }
+//
+// public String getScratchLocation() {
+// return scratchLocation;
+// }
+//
+// public void setScratchLocation(String scratchLocation) {
+// this.scratchLocation = scratchLocation;
+// }
+//
+// public String getWorkingDir() {
+// return workingDir;
+// }
+//
+// public void setWorkingDir(String workingDir) {
+// this.workingDir = workingDir;
+// }
+//
+// public String getInputDir() {
+// return inputDir;
+// }
+//
+// public void setInputDir(String inputDir) {
+// this.inputDir = inputDir;
+// }
+//
+// public String getOutputDir() {
+// return outputDir;
+// }
+//
+// public void setOutputDir(String outputDir) {
+// this.outputDir = outputDir;
+// }
+//
+// public String getStandardOutput() {
+// return standardOutput;
+// }
+//
+// public void setStandardOutput(String standardOutput) {
+// this.standardOutput = standardOutput;
+// }
+//
+// public String getStandardError() {
+// return standardError;
+// }
+//
+// public void setStandardError(String standardError) {
+// this.standardError = standardError;
+// }
+//
+// public JobSubmissionProtocol getPreferredJobSubmissionProtocol() {
+// return preferredJobSubmissionProtocol;
+// }
+//
+// public void setPreferredJobSubmissionProtocol(JobSubmissionProtocol preferredJobSubmissionProtocol) {
+// this.preferredJobSubmissionProtocol = preferredJobSubmissionProtocol;
+// }
+//
+// public DataMovementProtocol getPreferredDataMovementProtocol() {
+// return preferredDataMovementProtocol;
+// }
+//
+// public void setPreferredDataMovementProtocol(DataMovementProtocol preferredDataMovementProtocol) {
+// this.preferredDataMovementProtocol = preferredDataMovementProtocol;
+// }
+//
+// public List<JobSubmissionInterface> getHostPrioritizedJobSubmissionInterfaces() {
+// return hostPrioritizedJobSubmissionInterfaces;
+// }
+//
+// public void setHostPrioritizedJobSubmissionInterfaces(List<JobSubmissionInterface> hostPrioritizedJobSubmissionInterfaces) {
+// this.hostPrioritizedJobSubmissionInterfaces = hostPrioritizedJobSubmissionInterfaces;
+// }
+//
+// public JobSubmissionInterface getPreferredJobSubmissionInterface() {
+// return preferredJobSubmissionInterface;
+// }
+//
+// public void setPreferredJobSubmissionInterface(JobSubmissionInterface preferredJobSubmissionInterface) {
+// this.preferredJobSubmissionInterface = preferredJobSubmissionInterface;
+// }
+//
+// public String getHostName() {
+// return applicationContext.getComputeResourceDescription().getHostName();
+// }
+//
+// public List<DataMovementInterface> getHostPrioritizedDataMovementInterfaces() {
+// return hostPrioritizedDataMovementInterfaces;
+// }
+//
+// public void setHostPrioritizedDataMovementInterfaces(List<DataMovementInterface> hostPrioritizedDataMovementInterfaces) {
+// this.hostPrioritizedDataMovementInterfaces = hostPrioritizedDataMovementInterfaces;
+// }
+//
+// public DataMovementInterface getPreferredDataMovementInterface() {
+// return preferredDataMovementInterface;
+// }
+//
+// public void setPreferredDataMovementInterface(DataMovementInterface preferredDataMovementInterface) {
+// this.preferredDataMovementInterface = preferredDataMovementInterface;
+// }
+//
+// public CuratorFramework getCuratorClient() {
+// return curatorClient;
+// }
+//
+// public void setCuratorClient(CuratorFramework curatorClient) {
+// this.curatorClient = curatorClient;
+// }
+//
+// public String getExecutablePath() {
+// if (applicationContext == null || applicationContext.getApplicationDeploymentDescription() == null) {
+// return null;
+// } else {
+// return applicationContext.getApplicationDeploymentDescription().getExecutablePath();
+// }
+// }
+//
+//
+//
+// public String getLoginUserName() {
+// return loginUserName;
+// }
+//
+// public void setLoginUserName(String loginUserName) {
+// this.loginUserName = loginUserName;
+// }
+//
+// public LocalEventPublisher getLocalEventPublisher() {
+// return localEventPublisher;
+// }
+//
+// public void setLocalEventPublisher(LocalEventPublisher localEventPublisher) {
+// this.localEventPublisher = localEventPublisher;
+// }
+//}
http://git-wip-us.apache.org/repos/asf/airavata/blob/df3fbe6a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/monitor/MonitorID.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/monitor/MonitorID.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/monitor/MonitorID.java
index 5a0e597..5f3471c 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/monitor/MonitorID.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/monitor/MonitorID.java
@@ -20,7 +20,7 @@
*/
package org.apache.airavata.gfac.core.monitor;
-import org.apache.airavata.gfac.core.context.JobExecutionContext;
+import org.apache.airavata.gfac.core.context.ProcessContext;
import org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription;
import org.apache.airavata.model.status.JobState;
import org.slf4j.Logger;
@@ -61,7 +61,7 @@ public class MonitorID {
private JobState state;
- private JobExecutionContext jobExecutionContext;
+ private ProcessContext processContext;
public MonitorID() {
}
@@ -86,16 +86,16 @@ public class MonitorID {
this.jobName = jobName;
}
- public MonitorID(JobExecutionContext jobExecutionContext) {
-/* this.jobExecutionContext = jobExecutionContext;
- this.computeResourceDescription = jobExecutionContext.getApplicationContext().getComputeResourceDescription();
- userName = jobExecutionContext.getExperiment().getUserName();
- taskID = jobExecutionContext.getTaskData().getTaskID();
- experimentID = jobExecutionContext.getExperiment().getExperimentID();
- workflowNodeID = jobExecutionContext.getWorkflowNodeDetails().getNodeInstanceId();// at this point we only have one node todo: fix this
+ public MonitorID(ProcessContext processContext) {
+/* this.processContext = processContext;
+ this.computeResourceDescription = processContext.getApplicationContext().getComputeResourceDescription();
+ userName = processContext.getExperiment().getUserName();
+ taskID = processContext.getTaskData().getTaskID();
+ experimentID = processContext.getExperiment().getExperimentID();
+ workflowNodeID = processContext.getWorkflowNodeDetails().getNodeInstanceId();// at this point we only have one node todo: fix this
try {
- jobName = jobExecutionContext.getJobDetails().getJobName();
- jobID = jobExecutionContext.getJobDetails().getJobID();
+ jobName = processContext.getJobDetails().getJobName();
+ jobID = processContext.getJobDetails().getJobID();
}catch(NullPointerException e){
logger.error("There is not job created at this point");
// this is not a big deal we create MonitorId before having a jobId or job Name
@@ -210,12 +210,12 @@ public class MonitorID {
this.workflowNodeID = workflowNodeID;
}
- public JobExecutionContext getJobExecutionContext() {
- return jobExecutionContext;
+ public ProcessContext getProcessContext() {
+ return processContext;
}
- public void setJobExecutionContext(JobExecutionContext jobExecutionContext) {
- this.jobExecutionContext = jobExecutionContext;
+ public void setProcessContext(ProcessContext processContext) {
+ this.processContext = processContext;
}
public String getJobName() {
http://git-wip-us.apache.org/repos/asf/airavata/blob/df3fbe6a/modules/gfac/gfac-impl/src/main/java/com/jcraft/jsch/GSSContextX509.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/com/jcraft/jsch/GSSContextX509.java b/modules/gfac/gfac-impl/src/main/java/com/jcraft/jsch/GSSContextX509.java
new file mode 100644
index 0000000..06cd356
--- /dev/null
+++ b/modules/gfac/gfac-impl/src/main/java/com/jcraft/jsch/GSSContextX509.java
@@ -0,0 +1,205 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package com.jcraft.jsch;
+
+
+import org.globus.common.CoGProperties;
+import org.globus.gsi.gssapi.auth.HostAuthorization;
+import org.gridforum.jgss.ExtendedGSSCredential;
+import org.gridforum.jgss.ExtendedGSSManager;
+import org.ietf.jgss.GSSContext;
+import org.ietf.jgss.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+
+/**
+ * This class is based on GSSContextKrb5; it substitutes the globus
+ * ExtendedGSSManager and uses the SecurityUtils method to get the credential if
+ * one is not passed in from memory.
+ *
+ */
+public class GSSContextX509 implements com.jcraft.jsch.GSSContext {
+
+ private GSSContext context = null;
+ private GSSCredential credential;
+ private static final Logger logger = LoggerFactory.getLogger(GSSContextX509.class);
+
+ public void create(String user, String host) throws JSchException {
+ try {
+// ExtendedGSSManager manager = (ExtendedGSSManager) ExtendedGSSManager.getInstance();
+
+ if (credential == null) {
+ try {
+ credential = getCredential();
+ } catch (SecurityException t) {
+ System.out.printf("Could not get proxy: %s: %s\n", t.getClass().getSimpleName(), t.getMessage());
+ throw new JSchException(t.toString());
+ }
+ }
+
+ String cname = host;
+
+ try {
+ cname = InetAddress.getByName(cname).getCanonicalHostName();
+ } catch (UnknownHostException e) {
+ }
+
+ GSSName name = HostAuthorization.getInstance().getExpectedName(credential, cname);
+
+// context = manager.createContext(name, null, credential, GSSContext.DEFAULT_LIFETIME);
+//
+// // RFC4462 3.4. GSS-API Session
+// //
+// // When calling GSS_Init_sec_context(), the client MUST set
+// // integ_req_flag to "true" to request that per-message integrity
+// // protection be supported for this context. In addition,
+// // deleg_req_flag MAY be set to "true" to request access delegation,
+// // if
+// // requested by the user.
+// //
+// // Since the user authentication process by its nature authenticates
+// // only the client, the setting of mutual_req_flag is not needed for
+// // this process. This flag SHOULD be set to "false".
+//
+// // TODO: OpenSSH's sshd does accept 'false' for mutual_req_flag
+// // context.requestMutualAuth(false);
+// context.requestMutualAuth(true);
+// context.requestConf(true);
+// context.requestInteg(true); // for MIC
+// context.requestCredDeleg(true);
+// context.requestAnonymity(false);
+
+// context = new BCGSSContextImpl(name, (GlobusGSSCredentialImpl) credential);
+// context.requestLifetime(GSSCredential.DEFAULT_LIFETIME);
+// context.requestCredDeleg(true);
+// context.requestMutualAuth(true);
+// context.requestReplayDet(true);
+// context.requestSequenceDet(true);
+// context.requestConf(false);
+// context.requestInteg(true);
+// ((ExtendedGSSContext)context).setOption(GSSConstants.DELEGATION_TYPE, GSIConstants.DELEGATION_TYPE_FULL);
+
+ return;
+ } catch (GSSException ex) {
+ throw new JSchException(ex.toString());
+ }
+ }
+
+ private static GSSCredential getProxy() {
+ return getProxy(null, GSSCredential.DEFAULT_LIFETIME);
+ }
+
+ /**
+ * @param x509_USER_PROXY
+ * path to the proxy.
+ * @param credentialLifetime
+ * in seconds.
+ * @return valid credential.
+ * if proxy task throws exception (or if proxy cannot be found).
+ */
+ private static GSSCredential getProxy(String x509_USER_PROXY, int credentialLifetime) throws SecurityException {
+ if (x509_USER_PROXY == null)
+ x509_USER_PROXY = System.getProperty("x509.user.proxy");
+
+// if (x509_USER_PROXY == null) {
+// SystemUtils.envToProperties();
+// x509_USER_PROXY = System.getProperty("x509.user.proxy");
+// }
+
+ if (x509_USER_PROXY == null || "".equals(x509_USER_PROXY))
+ x509_USER_PROXY = CoGProperties.getDefault().getProxyFile();
+
+ if (x509_USER_PROXY == null)
+ throw new SecurityException("could not get credential; no location defined");
+
+ ExtendedGSSManager manager = (ExtendedGSSManager) ExtendedGSSManager.getInstance();
+
+ // file...load file into a buffer
+ try {
+ File f = new File(x509_USER_PROXY);
+ byte[] data = new byte[(int) f.length()];
+ FileInputStream in = new FileInputStream(f);
+ // read in the credential data
+ in.read(data);
+ in.close();
+ return manager.createCredential(data, ExtendedGSSCredential.IMPEXP_OPAQUE, credentialLifetime, null, // use
+ // default
+ // mechanism
+ // -
+ // GSI
+ GSSCredential.INITIATE_AND_ACCEPT);
+ } catch (Throwable t) {
+ throw new SecurityException("could not get credential from " + x509_USER_PROXY, t);
+ }
+ }
+
+ public boolean isEstablished() {
+ // this must check to see if the call returned GSS_S_COMPLETE
+ if (context != null){
+ return context.isEstablished();
+ }
+ return false;
+ }
+
+ public byte[] init(byte[] token, int s, int l) throws JSchException {
+ try {
+ if (context != null){
+ return context.initSecContext(token, s, l);
+ }else {
+ throw new JSchException("Context is null..");
+ }
+ } catch (GSSException ex) {
+ throw new JSchException(ex.toString());
+ }
+ }
+
+ public byte[] getMIC(byte[] message, int s, int l) {
+ try {
+ MessageProp prop = new MessageProp(0, false);
+ return context.getMIC(message, s, l, prop);
+ } catch (GSSException ex) {
+ logger.error(ex.getMessage(), ex);
+ return null;
+ }
+ }
+
+ public void dispose() {
+ try {
+ context.dispose();
+ } catch (GSSException ex) {
+ }
+ }
+
+ public void setCredential(GSSCredential credential) {
+ this.credential = credential;
+ }
+
+ public GSSCredential getCredential() {
+ return credential;
+ }
+}
+
http://git-wip-us.apache.org/repos/asf/airavata/blob/df3fbe6a/modules/gfac/gfac-impl/src/main/java/com/jcraft/jsch/UserAuthGSSAPIWithMICGSSCredentials.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/com/jcraft/jsch/UserAuthGSSAPIWithMICGSSCredentials.java b/modules/gfac/gfac-impl/src/main/java/com/jcraft/jsch/UserAuthGSSAPIWithMICGSSCredentials.java
index d0e98db..747338a 100644
--- a/modules/gfac/gfac-impl/src/main/java/com/jcraft/jsch/UserAuthGSSAPIWithMICGSSCredentials.java
+++ b/modules/gfac/gfac-impl/src/main/java/com/jcraft/jsch/UserAuthGSSAPIWithMICGSSCredentials.java
@@ -22,7 +22,6 @@
package com.jcraft.jsch;
import org.apache.airavata.gfac.core.authentication.GSIAuthenticationInfo;
-import org.apache.airavata.gfac.gsi.ssh.GSSContextX509;
import org.globus.gsi.gssapi.GSSConstants;
import org.ietf.jgss.GSSException;
import org.ietf.jgss.Oid;
http://git-wip-us.apache.org/repos/asf/airavata/blob/df3fbe6a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/SSHJobSubmissionTask.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/SSHJobSubmissionTask.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/SSHJobSubmissionTask.java
index 7f4c13a..9873de5 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/SSHJobSubmissionTask.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/task/SSHJobSubmissionTask.java
@@ -22,18 +22,14 @@
package org.apache.airavata.gfac.impl.task;
import org.apache.airavata.common.exception.ApplicationSettingsException;
-import org.apache.airavata.common.utils.Constants;
-import org.apache.airavata.common.utils.LocalEventPublisher;
import org.apache.airavata.gfac.core.*;
import org.apache.airavata.gfac.core.cluster.RemoteCluster;
import org.apache.airavata.gfac.core.context.ProcessContext;
import org.apache.airavata.gfac.core.context.TaskContext;
-import org.apache.airavata.gfac.core.monitor.MonitorID;
import org.apache.airavata.gfac.core.task.JobSubmissionTask;
import org.apache.airavata.gfac.core.task.TaskException;
import org.apache.airavata.gfac.impl.Factory;
import org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager;
-import org.apache.airavata.model.appcatalog.computeresource.ResourceJobManagerType;
import org.apache.airavata.model.job.JobModel;
import org.apache.airavata.model.status.JobState;
import org.apache.airavata.model.status.JobStatus;
@@ -67,26 +63,8 @@ public class SSHJobSubmissionTask implements JobSubmissionTask {
jobModel.setJobName(jobDescriptor.getJobName());
ResourceJobManager resourceJobManager = GFacUtils.getResourceJobManager(processContext);
JobManagerConfiguration jConfig = null;
- if (resourceJobManager != null){
- String installedParentPath = resourceJobManager.getJobManagerBinPath();
- if (installedParentPath == null) {
- installedParentPath = "/";
- }
- ResourceJobManagerType resourceJobManagerType = resourceJobManager.getResourceJobManagerType();
- if (resourceJobManagerType == null) {
- log.error("No Job Manager is configured, so we are picking pbs as the default job manager");
- jConfig = Factory.getPBSJobManager(installedParentPath);
- } else {
- if (ResourceJobManagerType.PBS == resourceJobManagerType) {
- jConfig = Factory.getPBSJobManager(installedParentPath);
- } else if (ResourceJobManagerType.SLURM == resourceJobManagerType) {
- jConfig = Factory.getSLURMJobManager(installedParentPath);
- } else if (ResourceJobManagerType.UGE == resourceJobManagerType) {
- jConfig = Factory.getUGEJobManager(installedParentPath);
- } else if (ResourceJobManagerType.LSF == resourceJobManagerType) {
- jConfig = Factory.getLSFJobManager(installedParentPath);
- }
- }
+ if (resourceJobManager != null) {
+ jConfig = Factory.getJobManagerConfiguration(resourceJobManager);
}
File jobFile = GFacUtils.createJobFile(jobDescriptor, jConfig);
if (jobFile != null && jobFile.exists()){
http://git-wip-us.apache.org/repos/asf/airavata/blob/df3fbe6a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/local/handler/LocalDirectorySetupHandler.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/local/handler/LocalDirectorySetupHandler.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/local/handler/LocalDirectorySetupHandler.java
index 2f9e3b0..a76a866 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/local/handler/LocalDirectorySetupHandler.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/local/handler/LocalDirectorySetupHandler.java
@@ -1,62 +1,62 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-package org.apache.airavata.gfac.local.handler;
-
-import org.apache.airavata.gfac.core.context.JobExecutionContext;
-import org.apache.airavata.gfac.core.handler.GFacHandler;
-import org.apache.airavata.gfac.core.handler.GFacHandlerException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.File;
-import java.util.Properties;
-
-public class LocalDirectorySetupHandler implements GFacHandler {
- private static final Logger log = LoggerFactory.getLogger(LocalDirectorySetupHandler.class);
-
- public void invoke(JobExecutionContext jobExecutionContext) throws GFacHandlerException {
- log.info("Invoking LocalDirectorySetupHandler ...");
- log.debug("working directory = " + jobExecutionContext.getWorkingDir());
- log.debug("temp directory = " + jobExecutionContext.getWorkingDir());
-
- makeFileSystemDir(jobExecutionContext.getWorkingDir());
- makeFileSystemDir(jobExecutionContext.getInputDir());
- makeFileSystemDir(jobExecutionContext.getOutputDir());
- }
-
- @Override
- public void recover(JobExecutionContext jobExecutionContext) throws GFacHandlerException {
- // TODO: Auto generated method body.
- }
-
- private void makeFileSystemDir(String dir) throws GFacHandlerException {
- File f = new File(dir);
- if (f.isDirectory() && f.exists()) {
- return;
- } else if (!new File(dir).mkdir()) {
- throw new GFacHandlerException("Cannot create directory " + dir);
- }
- }
-
- public void initProperties(Properties properties) throws GFacHandlerException {
-
- }
-}
+///*
+// *
+// * Licensed to the Apache Software Foundation (ASF) under one
+// * or more contributor license agreements. See the NOTICE file
+// * distributed with this work for additional information
+// * regarding copyright ownership. The ASF licenses this file
+// * to you under the Apache License, Version 2.0 (the
+// * "License"); you may not use this file except in compliance
+// * with the License. You may obtain a copy of the License at
+// *
+// * http://www.apache.org/licenses/LICENSE-2.0
+// *
+// * Unless required by applicable law or agreed to in writing,
+// * software distributed under the License is distributed on an
+// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// * KIND, either express or implied. See the License for the
+// * specific language governing permissions and limitations
+// * under the License.
+// *
+//*/
+//package org.apache.airavata.gfac.local.handler;
+//
+//import org.apache.airavata.gfac.core.context.JobExecutionContext;
+//import org.apache.airavata.gfac.core.handler.GFacHandler;
+//import org.apache.airavata.gfac.core.handler.GFacHandlerException;
+//import org.slf4j.Logger;
+//import org.slf4j.LoggerFactory;
+//
+//import java.io.File;
+//import java.util.Properties;
+//
+//public class LocalDirectorySetupHandler implements GFacHandler {
+// private static final Logger log = LoggerFactory.getLogger(LocalDirectorySetupHandler.class);
+//
+// public void invoke(JobExecutionContext jobExecutionContext) throws GFacHandlerException {
+// log.info("Invoking LocalDirectorySetupHandler ...");
+// log.debug("working directory = " + jobExecutionContext.getWorkingDir());
+// log.debug("temp directory = " + jobExecutionContext.getWorkingDir());
+//
+// makeFileSystemDir(jobExecutionContext.getWorkingDir());
+// makeFileSystemDir(jobExecutionContext.getInputDir());
+// makeFileSystemDir(jobExecutionContext.getOutputDir());
+// }
+//
+// @Override
+// public void recover(JobExecutionContext jobExecutionContext) throws GFacHandlerException {
+// // TODO: Auto generated method body.
+// }
+//
+// private void makeFileSystemDir(String dir) throws GFacHandlerException {
+// File f = new File(dir);
+// if (f.isDirectory() && f.exists()) {
+// return;
+// } else if (!new File(dir).mkdir()) {
+// throw new GFacHandlerException("Cannot create directory " + dir);
+// }
+// }
+//
+// public void initProperties(Properties properties) throws GFacHandlerException {
+//
+// }
+//}