Refactored GFacHandler and GFacProvider inheritance, merged Recoverable interface with its correspond normal interface.
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/a3487e77 Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/a3487e77 Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/a3487e77 Branch: refs/heads/master Commit: a3487e770a29be9060ee72298fa91f9b0a71e4be Parents: 4819dbb Author: shamrath <[email protected]> Authored: Sun May 10 15:07:37 2015 -0400 Committer: shamrath <[email protected]> Committed: Sun May 10 15:07:37 2015 -0400 ---------------------------------------------------------------------- .../gaussian/handler/GaussianHandler.java | 4 +- .../gfac/bes/handlers/SMSByteIOInHandler.java | 9 +- .../gfac/bes/handlers/SMSByteIOOutHandler.java | 5 ++ .../gfac/bes/provider/impl/BESProvider.java | 9 +- .../airavata/gfac/core/cpi/BetterGfacImpl.java | 88 +++++++------------- .../gfac/core/handler/AbstractHandler.java | 25 +++++- .../handler/AbstractRecoverableHandler.java | 88 -------------------- .../core/handler/AppDescriptorCheckHandler.java | 2 +- .../airavata/gfac/core/handler/GFacHandler.java | 8 ++ .../core/handler/GFacRecoverableHandler.java | 45 ---------- .../provider/AbstractRecoverableProvider.java | 75 ----------------- .../gfac/core/provider/GFacProvider.java | 7 ++ .../core/provider/GFacRecoverableProvider.java | 44 ---------- .../gfac/core/states/GfacPluginState.java | 7 +- .../airavata/gfac/core/utils/GFacUtils.java | 20 +++-- .../apache/airavata/job/TestGlobalHandler.java | 6 ++ .../org/apache/airavata/job/TestInHandler.java | 6 ++ .../org/apache/airavata/job/TestOutHandler.java | 6 ++ .../org/apache/airavata/job/TestProvider.java | 5 ++ .../airavata/job/TestThreadedHandler.java | 6 ++ .../handler/GSISSHDirectorySetupHandler.java | 4 +- .../gfac/gsissh/handler/GSISSHInputHandler.java | 4 +- .../gsissh/handler/GSISSHOutputHandler.java | 4 +- .../gsissh/handler/NewGSISSHOutputHandler.java | 7 +- .../gsissh/provider/impl/GSISSHProvider.java | 5 +- .../handler/LocalDirectorySetupHandler.java | 6 ++ .../gfac/local/handler/LocalInputHandler.java | 5 +- .../gfac/local/provider/impl/LocalProvider.java | 5 ++ .../handlers/GridPullMonitorHandler.java | 6 ++ .../handlers/GridPushMonitorHandler.java | 5 ++ .../ssh/handler/AdvancedSCPInputHandler.java | 4 +- .../ssh/handler/AdvancedSCPOutputHandler.java | 5 ++ .../gfac/ssh/handler/NewSSHOutputHandler.java | 7 +- .../ssh/handler/SSHDirectorySetupHandler.java | 8 +- .../gfac/ssh/handler/SSHInputHandler.java | 5 ++ .../gfac/ssh/handler/SSHOutputHandler.java | 5 ++ .../gfac/ssh/provider/impl/SSHProvider.java | 5 +- 37 files changed, 208 insertions(+), 347 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/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 048ade6..0d21665 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 @@ -22,7 +22,7 @@ package org.apache.airavata.application.gaussian.handler; import org.apache.airavata.gfac.core.context.JobExecutionContext; -import org.apache.airavata.gfac.core.handler.AbstractRecoverableHandler; +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.workspace.experiment.ComputationalResourceScheduling; @@ -39,7 +39,7 @@ import java.util.HashMap; import java.util.Map; import java.util.Properties; -public class GaussianHandler extends AbstractRecoverableHandler { +public class GaussianHandler extends AbstractHandler { private static final Logger logger = LoggerFactory.getLogger(GaussianHandler.class); public static final String LINK_SECTION = "%"; http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/handlers/SMSByteIOInHandler.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/handlers/SMSByteIOInHandler.java b/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/handlers/SMSByteIOInHandler.java index 6bc6183..add8cb1 100644 --- a/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/handlers/SMSByteIOInHandler.java +++ b/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/handlers/SMSByteIOInHandler.java @@ -45,6 +45,11 @@ public class SMSByteIOInHandler extends AbstractSMSHandler implements GFacHandle } } - - + + @Override + public void recover(JobExecutionContext jobExecutionContext) throws GFacHandlerException { + // TODO: Auto generated method body. + } + + } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/handlers/SMSByteIOOutHandler.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/handlers/SMSByteIOOutHandler.java b/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/handlers/SMSByteIOOutHandler.java index 354abf6..1baa2d9 100644 --- a/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/handlers/SMSByteIOOutHandler.java +++ b/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/handlers/SMSByteIOOutHandler.java @@ -84,5 +84,10 @@ public class SMSByteIOOutHandler extends AbstractSMSHandler implements GFacHandl } } + + @Override + public void recover(JobExecutionContext jobExecutionContext) throws GFacHandlerException { + // TODO: Auto generated method body. + } } http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/provider/impl/BESProvider.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/provider/impl/BESProvider.java b/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/provider/impl/BESProvider.java index b301f2b..d505671 100644 --- a/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/provider/impl/BESProvider.java +++ b/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/provider/impl/BESProvider.java @@ -412,8 +412,13 @@ public class BESProvider extends AbstractProvider implements GFacProvider, throws GFacProviderException, GFacException { // TODO Auto-generated method stub } - - protected void waitUntilDone(FactoryClient factory, EndpointReferenceType activityEpr, JobDetails jobDetails) throws Exception { + + @Override + public void recover(JobExecutionContext jobExecutionContext) throws GFacProviderException, GFacException { + // TODO: Auto generated method body. + } + + protected void waitUntilDone(FactoryClient factory, EndpointReferenceType activityEpr, JobDetails jobDetails) throws Exception { try { while ((factory.getActivityStatus(activityEpr) != ActivityStateEnumeration.FINISHED) http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/cpi/BetterGfacImpl.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/cpi/BetterGfacImpl.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/cpi/BetterGfacImpl.java index 98ba942..d5e623e 100644 --- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/cpi/BetterGfacImpl.java +++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/cpi/BetterGfacImpl.java @@ -43,7 +43,6 @@ import org.apache.airavata.gfac.core.notification.events.ExecutionFailEvent; import org.apache.airavata.gfac.core.notification.listeners.LoggingListener; import org.apache.airavata.gfac.core.provider.GFacProvider; import org.apache.airavata.gfac.core.provider.GFacProviderException; -import org.apache.airavata.gfac.core.provider.GFacRecoverableProvider; import org.apache.airavata.gfac.core.states.GfacExperimentState; import org.apache.airavata.gfac.core.states.GfacPluginState; import org.apache.airavata.gfac.core.utils.GFacUtils; @@ -829,20 +828,16 @@ public class BetterGfacImpl implements GFac,Watcher { GFacProvider provider = jobExecutionContext.getProvider(); if (provider != null) { monitorPublisher.publish(new GfacExperimentStateChangeRequest(new MonitorID(jobExecutionContext), GfacExperimentState.PROVIDERINVOKING)); - String plState = GFacUtils.getPluginState(zk, jobExecutionContext, provider.getClass().getName()); - if (plState!=null && Integer.valueOf(plState) >= GfacPluginState.INVOKED.getValue()) { // this will make sure if a plugin crashes it will not launch from the scratch, but plugins have to save their invoked state - if (provider instanceof GFacRecoverableProvider) { - GFacUtils.createPluginZnode(zk, jobExecutionContext, provider.getClass().getName()); - ((GFacRecoverableProvider) provider).recover(jobExecutionContext); - GFacUtils.updatePluginState(zk, jobExecutionContext, provider.getClass().getName(), GfacPluginState.COMPLETED); - } - } else { - GFacUtils.createPluginZnode(zk, jobExecutionContext, provider.getClass().getName()); + GfacPluginState plState = GFacUtils.getPluginState(zk, jobExecutionContext, provider.getClass().getName()); + GFacUtils.createPluginZnode(zk, jobExecutionContext, provider.getClass().getName()); + if (plState != null && plState == GfacPluginState.INVOKING) { // this will make sure if a plugin crashes it will not launch from the scratch, but plugins have to save their invoked state initProvider(provider, jobExecutionContext); executeProvider(provider, jobExecutionContext); disposeProvider(provider, jobExecutionContext); - GFacUtils.updatePluginState(zk, jobExecutionContext, provider.getClass().getName(), GfacPluginState.COMPLETED); + } else { + provider.recover(jobExecutionContext); } + GFacUtils.updatePluginState(zk, jobExecutionContext, provider.getClass().getName(), GfacPluginState.COMPLETED); monitorPublisher.publish(new GfacExperimentStateChangeRequest(new MonitorID(jobExecutionContext), GfacExperimentState.PROVIDERINVOKED)); } @@ -868,24 +863,21 @@ public class BetterGfacImpl implements GFac,Watcher { } } + // TODO - Did refactoring, but need to recheck the logic again. private void reInvokeProviderCancel(JobExecutionContext jobExecutionContext) throws GFacException, GFacProviderException, ApplicationSettingsException, InterruptedException, KeeperException { GFacProvider provider = jobExecutionContext.getProvider(); if (provider != null) { monitorPublisher.publish(new GfacExperimentStateChangeRequest(new MonitorID(jobExecutionContext), GfacExperimentState.PROVIDERINVOKING)); - String plState = GFacUtils.getPluginState(zk, jobExecutionContext, provider.getClass().getName()); - if (Integer.valueOf(plState) >= GfacPluginState.INVOKED.getValue()) { // this will make sure if a plugin crashes it will not launch from the scratch, but plugins have to save their invoked state - if (provider instanceof GFacRecoverableProvider) { - GFacUtils.createPluginZnode(zk, jobExecutionContext, provider.getClass().getName()); - ((GFacRecoverableProvider) provider).recover(jobExecutionContext); - GFacUtils.updatePluginState(zk, jobExecutionContext, provider.getClass().getName(), GfacPluginState.COMPLETED); - } - } else { - GFacUtils.createPluginZnode(zk, jobExecutionContext, provider.getClass().getName()); + GfacPluginState plState = GFacUtils.getPluginState(zk, jobExecutionContext, provider.getClass().getName()); + GFacUtils.createPluginZnode(zk, jobExecutionContext, provider.getClass().getName()); + if (plState == GfacPluginState.UNKNOWN || plState == GfacPluginState.INVOKING) { // this will make sure if a plugin crashes it will not launch from the scratch, but plugins have to save their invoked state initProvider(provider, jobExecutionContext); cancelProvider(provider, jobExecutionContext); disposeProvider(provider, jobExecutionContext); - GFacUtils.updatePluginState(zk, jobExecutionContext, provider.getClass().getName(), GfacPluginState.COMPLETED); + } else { + provider.recover(jobExecutionContext); } + GFacUtils.updatePluginState(zk, jobExecutionContext, provider.getClass().getName(), GfacPluginState.COMPLETED); monitorPublisher.publish(new GfacExperimentStateChangeRequest(new MonitorID(jobExecutionContext), GfacExperimentState.PROVIDERINVOKED)); } @@ -1106,6 +1098,7 @@ public class BetterGfacImpl implements GFac,Watcher { * @param jobExecutionContext * @throws GFacException */ + // TODO - Did refactoring, but need to recheck the logic again. private void reInvokeInFlowHandlers(JobExecutionContext jobExecutionContext) throws GFacException { List<GFacHandlerConfig> handlers = jobExecutionContext.getGFacConfiguration().getInHandlers(); try { @@ -1117,31 +1110,18 @@ public class BetterGfacImpl implements GFac,Watcher { try { handlerClass = Class.forName(handlerClassName.getClassName().trim()).asSubclass(GFacHandler.class); handler = handlerClass.newInstance(); - String plState = GFacUtils.getPluginState(zk, jobExecutionContext, handlerClassName.getClassName()); - int state = 0; - try { - state = Integer.valueOf(plState); - } catch (NumberFormatException e) { - - } - if (state >= GfacPluginState.INVOKED.getValue()) { - if (handler instanceof GFacRecoverableHandler) { - // if these already ran we re-run only recoverable handlers - log.info(handlerClassName.getClassName() + " is a recoverable handler so we recover the handler"); - GFacUtils.createPluginZnode(zk, jobExecutionContext, handlerClassName.getClassName(), GfacPluginState.INVOKING); - handler.initProperties(handlerClassName.getProperties()); - ((GFacRecoverableHandler) handler).recover(jobExecutionContext); - GFacUtils.updatePluginState(zk, jobExecutionContext, handlerClassName.getClassName(), GfacPluginState.COMPLETED); - } else { - log.info(handlerClassName.getClassName() + " is not a recoverable handler so we do not run because it already ran in last-run"); - } - } else { + GfacPluginState plState = GFacUtils.getPluginState(zk, jobExecutionContext, handlerClassName.getClassName()); + GFacUtils.createPluginZnode(zk, jobExecutionContext, handlerClassName.getClassName(), GfacPluginState.INVOKING); + handler.initProperties(handlerClassName.getProperties()); + if (plState == GfacPluginState.UNKNOWN || plState == GfacPluginState.INVOKING) { log.info(handlerClassName.getClassName() + " never ran so we run this is normal mode"); - GFacUtils.createPluginZnode(zk, jobExecutionContext, handlerClassName.getClassName(), GfacPluginState.INVOKING); - handler.initProperties(handlerClassName.getProperties()); handler.invoke(jobExecutionContext); - GFacUtils.updatePluginState(zk, jobExecutionContext, handlerClassName.getClassName(), GfacPluginState.COMPLETED); + } else { + // if these already ran we re-run only recoverable handlers + log.info(handlerClassName.getClassName() + " is a recoverable handler so we recover the handler"); + handler.recover(jobExecutionContext); } + GFacUtils.updatePluginState(zk, jobExecutionContext, handlerClassName.getClassName(), GfacPluginState.COMPLETED); } catch (GFacHandlerException e) { throw new GFacException("Error Executing a InFlow Handler", e.getCause()); } catch (ClassNotFoundException e) { @@ -1166,6 +1146,7 @@ public class BetterGfacImpl implements GFac,Watcher { } } + // TODO - Did refactoring, but need to recheck the logic again. public void reInvokeOutFlowHandlers(JobExecutionContext jobExecutionContext) throws GFacException { String experimentPath = null; try { @@ -1211,24 +1192,17 @@ public class BetterGfacImpl implements GFac,Watcher { try { handlerClass = Class.forName(handlerClassName.getClassName().trim()).asSubclass(GFacHandler.class); handler = handlerClass.newInstance(); - String plState = GFacUtils.getPluginState(zk, jobExecutionContext, handlerClassName.getClassName()); - if (Integer.valueOf(plState) >= GfacPluginState.INVOKED.getValue()) { - if (handler instanceof GFacRecoverableHandler) { - // if these already ran we re-run only recoverable handlers - log.info(handlerClassName.getClassName() + " is a recoverable handler so we recover the handler"); - GFacUtils.createPluginZnode(zk, jobExecutionContext, handlerClassName.getClassName(), GfacPluginState.INVOKING); - ((GFacRecoverableHandler) handler).recover(jobExecutionContext); - GFacUtils.updatePluginState(zk, jobExecutionContext, handlerClassName.getClassName(), GfacPluginState.COMPLETED); - } else { - log.info(handlerClassName.getClassName() + " is not a recoverable handler so we do not run because it already ran in last-run"); - } - } else { + GfacPluginState plState = GFacUtils.getPluginState(zk, jobExecutionContext, handlerClassName.getClassName()); + GFacUtils.createPluginZnode(zk, jobExecutionContext, handlerClassName.getClassName(), GfacPluginState.INVOKING); + if (plState == GfacPluginState.UNKNOWN || plState == GfacPluginState.INVOKING) { log.info(handlerClassName.getClassName() + " never ran so we run this in normal mode"); - GFacUtils.createPluginZnode(zk, jobExecutionContext, handlerClassName.getClassName(), GfacPluginState.INVOKING); handler.initProperties(handlerClassName.getProperties()); handler.invoke(jobExecutionContext); - GFacUtils.updatePluginState(zk, jobExecutionContext, handlerClassName.getClassName(), GfacPluginState.COMPLETED); + } else { + // if these already ran we re-run only recoverable handlers + handler.recover(jobExecutionContext); } + GFacUtils.updatePluginState(zk, jobExecutionContext, handlerClassName.getClassName(), GfacPluginState.COMPLETED); } catch (ClassNotFoundException e) { try { StringWriter errors = new StringWriter(); http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/handler/AbstractHandler.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/handler/AbstractHandler.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/handler/AbstractHandler.java index b6cc359..1bdfa97 100644 --- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/handler/AbstractHandler.java +++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/handler/AbstractHandler.java @@ -23,12 +23,22 @@ package org.apache.airavata.gfac.core.handler; import org.apache.airavata.common.utils.MonitorPublisher; import org.apache.airavata.gfac.core.context.JobExecutionContext; import org.apache.airavata.gfac.core.cpi.BetterGfacImpl; +import org.apache.airavata.gfac.core.states.GfacPluginState; +import org.apache.airavata.gfac.core.utils.GFacUtils; +import org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType; +import org.apache.airavata.model.messaging.event.TaskIdentifier; +import org.apache.airavata.model.messaging.event.TaskOutputChangeEvent; import org.apache.airavata.persistance.registry.jpa.impl.RegistryFactory; import org.apache.airavata.registry.cpi.Registry; import org.apache.airavata.registry.cpi.RegistryException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.List; public abstract class AbstractHandler implements GFacHandler { - protected Registry registry = null; + private static final Logger logger = LoggerFactory.getLogger(AbstractHandler.class); + protected Registry registry = null; protected MonitorPublisher publisher = null; @@ -37,6 +47,11 @@ public abstract class AbstractHandler implements GFacHandler { } public void invoke(JobExecutionContext jobExecutionContext) throws GFacHandlerException { + try { + GFacUtils.updatePluginState(jobExecutionContext.getZk(), jobExecutionContext, this.getClass().getName(), GfacPluginState.INVOKED); + } catch (Exception e) { + logger.error("Error saving Recoverable provider state", e); + } registry = jobExecutionContext.getRegistry(); if(registry == null){ try { @@ -61,4 +76,12 @@ public abstract class AbstractHandler implements GFacHandler { public void setRegistry(Registry registry) { this.registry = registry; } + + protected void fireTaskOutputChangeEvent(JobExecutionContext jobExecutionContext, List<OutputDataObjectType> outputArray) { + TaskIdentifier taskIdentity = new TaskIdentifier(jobExecutionContext.getTaskData().getTaskID(), + jobExecutionContext.getWorkflowNodeDetails().getNodeInstanceId(), + jobExecutionContext.getExperimentID(), + jobExecutionContext.getGatewayID()); + publisher.publish(new TaskOutputChangeEvent(outputArray, taskIdentity)); + } } http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/handler/AbstractRecoverableHandler.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/handler/AbstractRecoverableHandler.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/handler/AbstractRecoverableHandler.java deleted file mode 100644 index 566a6ba..0000000 --- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/handler/AbstractRecoverableHandler.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * - * 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.handler; - -import org.apache.airavata.common.utils.MonitorPublisher; -import org.apache.airavata.gfac.core.context.JobExecutionContext; -import org.apache.airavata.gfac.core.cpi.BetterGfacImpl; -import org.apache.airavata.gfac.core.states.GfacPluginState; -import org.apache.airavata.gfac.core.utils.GFacUtils; -import org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType; -import org.apache.airavata.model.messaging.event.TaskIdentifier; -import org.apache.airavata.model.messaging.event.TaskOutputChangeEvent; -import org.apache.airavata.persistance.registry.jpa.impl.RegistryFactory; -import org.apache.airavata.registry.cpi.Registry; -import org.apache.airavata.registry.cpi.RegistryException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.List; - -public abstract class AbstractRecoverableHandler implements GFacRecoverableHandler { - private static final Logger logger = LoggerFactory.getLogger(AppDescriptorCheckHandler.class); - protected Registry registry = null; - - protected MonitorPublisher publisher = null; - - protected AbstractRecoverableHandler() { - publisher = BetterGfacImpl.getMonitorPublisher(); // This will not be null because this will be initialize in GFacIml - } - - public void invoke(JobExecutionContext jobExecutionContext) throws GFacHandlerException { - try { - GFacUtils.updatePluginState(jobExecutionContext.getZk(), jobExecutionContext, this.getClass().getName(), GfacPluginState.INVOKED); - } catch (Exception e) { - logger.error("Error saving Recoverable provider state", e); - } - registry = jobExecutionContext.getRegistry(); - if (registry == null) { - try { - registry = RegistryFactory.getDefaultRegistry(); - } catch (RegistryException e) { - throw new GFacHandlerException("unable to create registry instance", e); - } - } - } - - public MonitorPublisher getPublisher() { - return publisher; - } - - public void setPublisher(MonitorPublisher publisher) { - this.publisher = publisher; - } - - public Registry getRegistry() { - return registry; - } - - public void setRegistry(Registry registry) { - this.registry = registry; - } - - protected void fireTaskOutputChangeEvent(JobExecutionContext jobExecutionContext, List<OutputDataObjectType> outputArray) { - TaskIdentifier taskIdentity = new TaskIdentifier(jobExecutionContext.getTaskData().getTaskID(), - jobExecutionContext.getWorkflowNodeDetails().getNodeInstanceId(), - jobExecutionContext.getExperimentID(), - jobExecutionContext.getGatewayID()); - publisher.publish(new TaskOutputChangeEvent(outputArray, taskIdentity)); - } -} http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/handler/AppDescriptorCheckHandler.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/handler/AppDescriptorCheckHandler.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/handler/AppDescriptorCheckHandler.java index 34ea139..7302fcf 100644 --- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/handler/AppDescriptorCheckHandler.java +++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/handler/AppDescriptorCheckHandler.java @@ -29,7 +29,7 @@ import org.slf4j.LoggerFactory; import java.util.Properties; -public class AppDescriptorCheckHandler implements GFacRecoverableHandler { +public class AppDescriptorCheckHandler implements GFacHandler { private static final Logger logger = LoggerFactory.getLogger(AppDescriptorCheckHandler.class); public void invoke(JobExecutionContext jobExecutionContext) throws GFacHandlerException { http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/handler/GFacHandler.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/handler/GFacHandler.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/handler/GFacHandler.java index f820e29..15b86dd 100644 --- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/handler/GFacHandler.java +++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/handler/GFacHandler.java @@ -49,4 +49,12 @@ public interface GFacHandler { * @throws GFacHandlerException */ public void invoke(JobExecutionContext jobExecutionContext) throws GFacHandlerException; + + + /** + * This method can be used to implement recovering part of the stateful handler + * If you do not want to recover an already ran handler you leave this recover method empty. + * @param jobExecutionContext + */ + public void recover(JobExecutionContext jobExecutionContext)throws GFacHandlerException; } http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/handler/GFacRecoverableHandler.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/handler/GFacRecoverableHandler.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/handler/GFacRecoverableHandler.java deleted file mode 100644 index ab778b8..0000000 --- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/handler/GFacRecoverableHandler.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * - * 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.handler; - -import org.apache.airavata.gfac.core.context.JobExecutionContext; - -/** - * This handler type can be used to implement stateful Operation and - * we recommend to use the ZK client to store and retrieve the states - * of the handler implementation. Framework level we use - * ZK to decide handler ran successfully or not so each handler - * execution details can be found in following zk path - * /gfac-experiment/<gfac-node-name>/experimentId+taskId/full-qualified-handlername/state - * ex: /gfac-experiment/gfac-node0/echoExperiment_2c6c11b8-dea0-4ec8-9832-f3e69fe2e6bb+IDontNeedaNode_682faa66-6218-4897-9271-656bfb8b2bd1/org.apache.airavata.gfac.handlers.Test/state - */ -public interface GFacRecoverableHandler extends GFacHandler { - - - /** - * This method can be used to implement recovering part of the stateful handler - * If you do not want to recover an already ran handler you can simply implement - * GfacAbstract Handler or GFacHandler or leave this recover method empty. - * @param jobExecutionContext - */ - public void recover(JobExecutionContext jobExecutionContext)throws GFacHandlerException; - -} http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/provider/AbstractRecoverableProvider.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/provider/AbstractRecoverableProvider.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/provider/AbstractRecoverableProvider.java deleted file mode 100644 index c6a105e..0000000 --- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/provider/AbstractRecoverableProvider.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * - * 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.provider; - -import org.apache.airavata.common.utils.MonitorPublisher; -import org.apache.airavata.gfac.GFacException; -import org.apache.airavata.gfac.core.context.JobExecutionContext; -import org.apache.airavata.gfac.core.cpi.BetterGfacImpl; -import org.apache.airavata.model.workspace.experiment.JobDetails; -import org.apache.airavata.model.workspace.experiment.JobStatus; -import org.apache.airavata.persistance.registry.jpa.impl.RegistryFactory; -import org.apache.airavata.registry.cpi.Registry; -import org.apache.airavata.registry.cpi.RegistryException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public abstract class AbstractRecoverableProvider implements GFacRecoverableProvider { - private final Logger log = LoggerFactory.getLogger(this.getClass()); - - protected Registry registry = null; - protected JobDetails details; //todo we need to remove this and add methods to fill Job details, this is not a property of a provider - protected JobStatus status; //todo we need to remove this and add methods to fill Job details, this is not a property of a provider - protected JobExecutionContext jobExecutionContext; - - protected MonitorPublisher monitorPublisher; - - protected AbstractRecoverableProvider() { //todo this has to be fixed - this.monitorPublisher = BetterGfacImpl.getMonitorPublisher(); - if (this.monitorPublisher == null) { - this.monitorPublisher = BetterGfacImpl.getMonitorPublisher(); - } - } - - public void initialize(JobExecutionContext jobExecutionContext) throws GFacProviderException, GFacException { - log.debug("Initializing " + this.getClass().getName()); - if (jobExecutionContext.getRegistry() == null) { - try { - registry = RegistryFactory.getDefaultRegistry(); - } catch (RegistryException e) { - throw new GFacException("Unable to create registry instance", e); - } - } else { - registry = jobExecutionContext.getRegistry(); - } - details = new JobDetails(); - status = new JobStatus(); - this.jobExecutionContext = jobExecutionContext; - } - - public MonitorPublisher getMonitorPublisher() { - return monitorPublisher; - } - - public void setMonitorPublisher(MonitorPublisher monitorPublisher) { - this.monitorPublisher = monitorPublisher; - } -} http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/provider/GFacProvider.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/provider/GFacProvider.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/provider/GFacProvider.java index 031cf77..6006309 100644 --- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/provider/GFacProvider.java +++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/provider/GFacProvider.java @@ -59,4 +59,11 @@ public interface GFacProvider{ public void cancelJob(JobExecutionContext jobExecutionContext) throws GFacProviderException, GFacException; + /** + * This method can be used to implement recovering part of the stateful handler + * If you do not want to recover an already ran handler you leave this recover method empty. + * + * @param jobExecutionContext + */ + public void recover(JobExecutionContext jobExecutionContext)throws GFacProviderException,GFacException; } http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/provider/GFacRecoverableProvider.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/provider/GFacRecoverableProvider.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/provider/GFacRecoverableProvider.java deleted file mode 100644 index 6cc9820..0000000 --- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/provider/GFacRecoverableProvider.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * - * 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.provider; - -import org.apache.airavata.gfac.GFacException; -import org.apache.airavata.gfac.core.context.JobExecutionContext; - -/** - * This provider type can be used to implement stateful Operation and - * we recommend to use the ZK client to store and retrieve the states - * of the handler implementation. Framework level we use - * ZK to decide handler ran successfully or not so each handler - * execution details can be found in following zk path - * /gfac-experiment/<gfac-node-name>/experimentId+taskId/full-qualified-handlername/state - * ex: /gfac-experiment/gfac-node0/echoExperiment_2c6c11b8-dea0-4ec8-9832-f3e69fe2e6bb+IDontNeedaNode_682faa66-6218-4897-9271-656bfb8b2bd1/org.apache.airavata.gfac.handlers.Test/state - */ -public interface GFacRecoverableProvider extends GFacProvider { - /** - * This method can be used to implement recovering part of the stateful handler - * If you do not want to recover an already ran handler you can simply implement - * GfacAbstract Handler or GFacHandler or leave this recover method empty. - * - * @param jobExecutionContext - */ - public void recover(JobExecutionContext jobExecutionContext)throws GFacProviderException,GFacException; -} http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/states/GfacPluginState.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/states/GfacPluginState.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/states/GfacPluginState.java index b934303..818a144 100644 --- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/states/GfacPluginState.java +++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/states/GfacPluginState.java @@ -23,7 +23,8 @@ package org.apache.airavata.gfac.core.states; public enum GfacPluginState { INVOKING(0), INVOKED(1), - COMPLETED(2); + COMPLETED(2), + UNKNOWN(3); private final int value; @@ -49,8 +50,10 @@ public enum GfacPluginState { return INVOKING; case 1: return INVOKED; + case 2: + return COMPLETED; default: - return null; + return UNKNOWN; } } } http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/utils/GFacUtils.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/utils/GFacUtils.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/utils/GFacUtils.java index 2e2d501..434f6d4 100644 --- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/utils/GFacUtils.java +++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/utils/GFacUtils.java @@ -900,7 +900,10 @@ public class GFacUtils { InterruptedException { String expState = AiravataZKUtils.getExpState(zk, jobExecutionContext .getExperimentID()); - return GfacExperimentState.findByValue(Integer.parseInt(expState)); + if (expState == null || expState.isEmpty()) { + return GfacExperimentState.UNKNOWN; + } + return GfacExperimentState.findByValue(Integer.valueOf(expState)); } public static int getZKExperimentStateValue(ZooKeeper zk, @@ -1019,8 +1022,8 @@ public class GFacUtils { return false; } - public static String getPluginState(ZooKeeper zk, - JobExecutionContext jobExecutionContext, String className) { + public static GfacPluginState getPluginState(ZooKeeper zk, + JobExecutionContext jobExecutionContext, String className) { try { String expState = AiravataZKUtils.getExpZnodeHandlerPath( jobExecutionContext.getExperimentID(), className); @@ -1028,11 +1031,12 @@ public class GFacUtils { Stat exists = zk.exists(expState + File.separator + AiravataZKUtils.ZK_EXPERIMENT_STATE_NODE, false); if (exists != null) { - return new String(zk.getData(expState + File.separator - + AiravataZKUtils.ZK_EXPERIMENT_STATE_NODE, false, - exists)); - } - return null; // if the node doesn't exist or any other error we + String stateVal = new String(zk.getData(expState + File.separator + + AiravataZKUtils.ZK_EXPERIMENT_STATE_NODE, false, + exists)); + return GfacPluginState.findByValue(Integer.valueOf(stateVal)); + } + return GfacPluginState.UNKNOWN; // if the node doesn't exist or any other error we // return false } catch (Exception e) { log.error("Error occured while getting zk node status", e); http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestGlobalHandler.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestGlobalHandler.java b/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestGlobalHandler.java index 05eb735..67ee9b8 100644 --- a/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestGlobalHandler.java +++ b/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestGlobalHandler.java @@ -20,6 +20,7 @@ */ package org.apache.airavata.job; +import org.apache.airavata.gfac.core.context.JobExecutionContext; import org.apache.airavata.gfac.core.handler.AbstractHandler; import org.apache.airavata.gfac.core.handler.GFacHandlerException; @@ -29,4 +30,9 @@ public class TestGlobalHandler extends AbstractHandler { public void initProperties(Properties properties) throws GFacHandlerException { //To change body of implemented methods use File | Settings | File Templates. } + + @Override + public void recover(JobExecutionContext jobExecutionContext) throws GFacHandlerException { + // TODO: Auto generated method body. + } } http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestInHandler.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestInHandler.java b/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestInHandler.java index e50bfd6..7307ba5 100644 --- a/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestInHandler.java +++ b/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestInHandler.java @@ -20,6 +20,7 @@ */ package org.apache.airavata.job; +import org.apache.airavata.gfac.core.context.JobExecutionContext; import org.apache.airavata.gfac.core.handler.AbstractHandler; import org.apache.airavata.gfac.core.handler.GFacHandlerException; @@ -29,4 +30,9 @@ public class TestInHandler extends AbstractHandler { public void initProperties(Properties properties) throws GFacHandlerException { //To change body of implemented methods use File | Settings | File Templates. } + + @Override + public void recover(JobExecutionContext jobExecutionContext) throws GFacHandlerException { + // TODO: Auto generated method body. + } } http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestOutHandler.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestOutHandler.java b/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestOutHandler.java index 42dd00c..b19d646 100644 --- a/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestOutHandler.java +++ b/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestOutHandler.java @@ -20,6 +20,7 @@ */ package org.apache.airavata.job; +import org.apache.airavata.gfac.core.context.JobExecutionContext; import org.apache.airavata.gfac.core.handler.AbstractHandler; import org.apache.airavata.gfac.core.handler.GFacHandlerException; @@ -29,4 +30,9 @@ public class TestOutHandler extends AbstractHandler { public void initProperties(Properties properties) throws GFacHandlerException { //To change body of implemented methods use File | Settings | File Templates. } + + @Override + public void recover(JobExecutionContext jobExecutionContext) throws GFacHandlerException { + // TODO: Auto generated method body. + } } http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestProvider.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestProvider.java b/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestProvider.java index 151ee19..3829dae 100644 --- a/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestProvider.java +++ b/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestProvider.java @@ -33,6 +33,11 @@ public class TestProvider extends AbstractProvider { //To change body of implemented methods use File | Settings | File Templates. } + @Override + public void recover(JobExecutionContext jobExecutionContext) throws GFacProviderException, GFacException { + // TODO: Auto generated method body. + } + public void initProperties(Map<String, String> properties) throws GFacProviderException, GFacException { //To change body of implemented methods use File | Settings | File Templates. } http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestThreadedHandler.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestThreadedHandler.java b/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestThreadedHandler.java index 7ee54bd..f2788c5 100644 --- a/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestThreadedHandler.java +++ b/modules/gfac/gfac-core/src/test/java/org/apache/airavata/job/TestThreadedHandler.java @@ -21,6 +21,7 @@ package org.apache.airavata.job; import junit.framework.Assert; +import org.apache.airavata.gfac.core.context.JobExecutionContext; import org.apache.airavata.gfac.core.handler.GFacHandlerException; import org.apache.airavata.gfac.core.handler.ThreadedHandler; @@ -32,6 +33,11 @@ public class TestThreadedHandler extends ThreadedHandler { public void initProperties(Properties properties) throws GFacHandlerException { } + @Override + public void recover(JobExecutionContext jobExecutionContext) throws GFacHandlerException { + // TODO: Auto generated method body. + } + public void run() { System.out.println("Invoking TestThreadedHandler"); Assert.assertTrue(true); http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHDirectorySetupHandler.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHDirectorySetupHandler.java b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHDirectorySetupHandler.java index 26547b5..b4790c7 100644 --- a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHDirectorySetupHandler.java +++ b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHDirectorySetupHandler.java @@ -22,7 +22,7 @@ package org.apache.airavata.gfac.gsissh.handler; import org.apache.airavata.gfac.GFacException; import org.apache.airavata.gfac.core.context.JobExecutionContext; -import org.apache.airavata.gfac.core.handler.AbstractRecoverableHandler; +import org.apache.airavata.gfac.core.handler.AbstractHandler; import org.apache.airavata.gfac.core.handler.GFacHandlerException; import org.apache.airavata.gfac.core.utils.GFacUtils; import org.apache.airavata.gfac.gsissh.security.GSISecurityContext; @@ -37,7 +37,7 @@ import java.io.PrintWriter; import java.io.StringWriter; import java.util.Properties; -public class GSISSHDirectorySetupHandler extends AbstractRecoverableHandler { +public class GSISSHDirectorySetupHandler extends AbstractHandler { private static final Logger log = LoggerFactory.getLogger(GSISSHDirectorySetupHandler.class); public void invoke(JobExecutionContext jobExecutionContext) throws GFacHandlerException { http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHInputHandler.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHInputHandler.java b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHInputHandler.java index 70706ae..5fba1c1 100644 --- a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHInputHandler.java +++ b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHInputHandler.java @@ -24,7 +24,7 @@ import org.apache.airavata.common.exception.ApplicationSettingsException; import org.apache.airavata.gfac.GFacException; import org.apache.airavata.gfac.core.context.JobExecutionContext; import org.apache.airavata.gfac.core.context.MessageContext; -import org.apache.airavata.gfac.core.handler.AbstractRecoverableHandler; +import org.apache.airavata.gfac.core.handler.AbstractHandler; import org.apache.airavata.gfac.core.handler.GFacHandlerException; import org.apache.airavata.gfac.core.utils.GFacUtils; import org.apache.airavata.gfac.gsissh.security.GSISecurityContext; @@ -53,7 +53,7 @@ import java.util.Set; * Recoverability for this handler assumes the same input values will come in the second * run, and assume nobody is changing registry during the original submission and re-submission */ -public class GSISSHInputHandler extends AbstractRecoverableHandler { +public class GSISSHInputHandler extends AbstractHandler { private static final Logger log = LoggerFactory.getLogger(GSISSHInputHandler.class); http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHOutputHandler.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHOutputHandler.java b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHOutputHandler.java index 1064e1c..cfd5a40 100644 --- a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHOutputHandler.java +++ b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHOutputHandler.java @@ -24,7 +24,7 @@ package org.apache.airavata.gfac.gsissh.handler; //import org.apache.airavata.commons.gfac.type.MappingFactory; import org.apache.airavata.gfac.GFacException; import org.apache.airavata.gfac.core.context.JobExecutionContext; -import org.apache.airavata.gfac.core.handler.AbstractRecoverableHandler; +import org.apache.airavata.gfac.core.handler.AbstractHandler; import org.apache.airavata.gfac.core.handler.GFacHandlerException; import org.apache.airavata.gfac.core.provider.GFacProviderException; import org.apache.airavata.gfac.core.utils.GFacUtils; @@ -52,7 +52,7 @@ import java.util.Map; import java.util.Properties; import java.util.Set; -public class GSISSHOutputHandler extends AbstractRecoverableHandler { +public class GSISSHOutputHandler extends AbstractHandler { private static final Logger log = LoggerFactory.getLogger(GSISSHOutputHandler.class); public void invoke(JobExecutionContext jobExecutionContext) throws GFacHandlerException { http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/NewGSISSHOutputHandler.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/NewGSISSHOutputHandler.java b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/NewGSISSHOutputHandler.java index f4aaf72..ed94312 100644 --- a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/NewGSISSHOutputHandler.java +++ b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/NewGSISSHOutputHandler.java @@ -69,7 +69,12 @@ public class NewGSISSHOutputHandler extends AbstractHandler{ } } - @Override + @Override + public void recover(JobExecutionContext jobExecutionContext) throws GFacHandlerException { + // TODO: Auto generated method body. + } + + @Override public void initProperties(Properties properties) throws GFacHandlerException { // TODO Auto-generated method stub http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/provider/impl/GSISSHProvider.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/provider/impl/GSISSHProvider.java b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/provider/impl/GSISSHProvider.java index 1b0d283..c35445b 100644 --- a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/provider/impl/GSISSHProvider.java +++ b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/provider/impl/GSISSHProvider.java @@ -24,7 +24,6 @@ import org.airavata.appcatalog.cpi.AppCatalog; import org.airavata.appcatalog.cpi.AppCatalogException; import org.apache.airavata.common.exception.AiravataException; import org.apache.airavata.common.exception.ApplicationSettingsException; -import org.apache.airavata.common.utils.ServerSettings; import org.apache.airavata.gfac.ExecutionMode; import org.apache.airavata.gfac.GFacException; import org.apache.airavata.gfac.core.context.JobExecutionContext; @@ -32,7 +31,7 @@ import org.apache.airavata.gfac.core.cpi.BetterGfacImpl; import org.apache.airavata.gfac.core.handler.GFacHandlerException; import org.apache.airavata.gfac.core.handler.ThreadedHandler; import org.apache.airavata.gfac.core.notification.events.StartExecutionEvent; -import org.apache.airavata.gfac.core.provider.AbstractRecoverableProvider; +import org.apache.airavata.gfac.core.provider.AbstractProvider; import org.apache.airavata.gfac.core.provider.GFacProviderException; import org.apache.airavata.gfac.core.utils.GFacUtils; import org.apache.airavata.gfac.gsissh.security.GSISecurityContext; @@ -62,7 +61,7 @@ import java.util.Map; //import org.apache.airavata.schemas.gfac.GsisshHostType; -public class GSISSHProvider extends AbstractRecoverableProvider { +public class GSISSHProvider extends AbstractProvider { private static final Logger log = LoggerFactory.getLogger(GSISSHProvider.class); public void initProperties(Map<String, String> properties) throws GFacProviderException, GFacException { http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/handler/LocalDirectorySetupHandler.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/handler/LocalDirectorySetupHandler.java b/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/handler/LocalDirectorySetupHandler.java index 394cfaa..2f9e3b0 100644 --- a/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/handler/LocalDirectorySetupHandler.java +++ b/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/handler/LocalDirectorySetupHandler.java @@ -41,6 +41,12 @@ public class LocalDirectorySetupHandler implements GFacHandler { 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()) { http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/handler/LocalInputHandler.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/handler/LocalInputHandler.java b/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/handler/LocalInputHandler.java index d085fbf..884ccd5 100644 --- a/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/handler/LocalInputHandler.java +++ b/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/handler/LocalInputHandler.java @@ -20,9 +20,8 @@ */ package org.apache.airavata.gfac.local.handler; -import org.apache.airavata.gfac.GFacException; import org.apache.airavata.gfac.core.context.JobExecutionContext; -import org.apache.airavata.gfac.core.handler.AbstractRecoverableHandler; +import org.apache.airavata.gfac.core.handler.AbstractHandler; import org.apache.airavata.gfac.core.handler.GFacHandlerException; import org.apache.airavata.model.appcatalog.appinterface.DataType; import org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType; @@ -36,7 +35,7 @@ import java.util.Map; import java.util.Properties; -public class LocalInputHandler extends AbstractRecoverableHandler { +public class LocalInputHandler extends AbstractHandler { private static final Logger logger = LoggerFactory.getLogger(LocalInputHandler.class); @Override public void invoke(JobExecutionContext jobExecutionContext) throws GFacHandlerException { http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java b/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java index d62d3d7..df932b4 100644 --- a/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java +++ b/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java @@ -252,6 +252,11 @@ public class LocalProvider extends AbstractProvider { throw new NotImplementedException(); } + @Override + public void recover(JobExecutionContext jobExecutionContext) throws GFacProviderException, GFacException { + // TODO: Auto generated method body. + } + private void buildCommand() { cmdList.add(jobExecutionContext.getExecutablePath()); http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-monitor/gfac-hpc-monitor/src/main/java/org/apache/airavata/gfac/monitor/handlers/GridPullMonitorHandler.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-monitor/gfac-hpc-monitor/src/main/java/org/apache/airavata/gfac/monitor/handlers/GridPullMonitorHandler.java b/modules/gfac/gfac-monitor/gfac-hpc-monitor/src/main/java/org/apache/airavata/gfac/monitor/handlers/GridPullMonitorHandler.java index 24b300e..6fff840 100644 --- a/modules/gfac/gfac-monitor/gfac-hpc-monitor/src/main/java/org/apache/airavata/gfac/monitor/handlers/GridPullMonitorHandler.java +++ b/modules/gfac/gfac-monitor/gfac-hpc-monitor/src/main/java/org/apache/airavata/gfac/monitor/handlers/GridPullMonitorHandler.java @@ -107,6 +107,12 @@ public class GridPullMonitorHandler extends ThreadedHandler implements Watcher{ monitorID.getJobID(), monitorID.getExperimentID()); } } + + @Override + public void recover(JobExecutionContext jobExecutionContext) throws GFacHandlerException { + // TODO: Auto generated method body. + } + public AuthenticationInfo getAuthenticationInfo() { return authenticationInfo; } http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-monitor/gfac-hpc-monitor/src/main/java/org/apache/airavata/gfac/monitor/handlers/GridPushMonitorHandler.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-monitor/gfac-hpc-monitor/src/main/java/org/apache/airavata/gfac/monitor/handlers/GridPushMonitorHandler.java b/modules/gfac/gfac-monitor/gfac-hpc-monitor/src/main/java/org/apache/airavata/gfac/monitor/handlers/GridPushMonitorHandler.java index 0eb4526..bb36b28 100644 --- a/modules/gfac/gfac-monitor/gfac-hpc-monitor/src/main/java/org/apache/airavata/gfac/monitor/handlers/GridPushMonitorHandler.java +++ b/modules/gfac/gfac-monitor/gfac-hpc-monitor/src/main/java/org/apache/airavata/gfac/monitor/handlers/GridPushMonitorHandler.java @@ -85,6 +85,11 @@ public class GridPushMonitorHandler extends ThreadedHandler { amqpMonitor.getRunningQueue().add(monitorID); } + @Override + public void recover(JobExecutionContext jobExecutionContext) throws GFacHandlerException { + // TODO: Auto generated method body. + } + public AMQPMonitor getAmqpMonitor() { return amqpMonitor; } http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/AdvancedSCPInputHandler.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/AdvancedSCPInputHandler.java b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/AdvancedSCPInputHandler.java index 2fae3d5..a1c5278 100644 --- a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/AdvancedSCPInputHandler.java +++ b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/AdvancedSCPInputHandler.java @@ -23,7 +23,7 @@ package org.apache.airavata.gfac.ssh.handler; import org.apache.airavata.gfac.GFacException; import org.apache.airavata.gfac.core.context.JobExecutionContext; import org.apache.airavata.gfac.core.context.MessageContext; -import org.apache.airavata.gfac.core.handler.AbstractRecoverableHandler; +import org.apache.airavata.gfac.core.handler.AbstractHandler; import org.apache.airavata.gfac.core.handler.GFacHandlerException; import org.apache.airavata.gfac.core.utils.GFacUtils; import org.apache.airavata.gfac.ssh.security.SSHSecurityContext; @@ -57,7 +57,7 @@ import java.util.*; * <property name="hostName" value="gw98.iu.xsede.org"/> * <property name="inputPath" value="/home/airavata/outputData"/> */ -public class AdvancedSCPInputHandler extends AbstractRecoverableHandler { +public class AdvancedSCPInputHandler extends AbstractHandler { private static final Logger log = LoggerFactory.getLogger(AdvancedSCPInputHandler.class); public static final String ADVANCED_SSH_AUTH = "advanced.ssh.auth"; public static final int DEFAULT_SSH_PORT = 22; http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/AdvancedSCPOutputHandler.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/AdvancedSCPOutputHandler.java b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/AdvancedSCPOutputHandler.java index fac03e8..efed1bc 100644 --- a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/AdvancedSCPOutputHandler.java +++ b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/AdvancedSCPOutputHandler.java @@ -212,5 +212,10 @@ public class AdvancedSCPOutputHandler extends AbstractHandler { } } + @Override + public void recover(JobExecutionContext jobExecutionContext) throws GFacHandlerException { + // TODO: Auto generated method body. + } + } http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/NewSSHOutputHandler.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/NewSSHOutputHandler.java b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/NewSSHOutputHandler.java index f7efb34..93d0ed0 100644 --- a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/NewSSHOutputHandler.java +++ b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/NewSSHOutputHandler.java @@ -64,7 +64,12 @@ public class NewSSHOutputHandler extends AbstractHandler{ } - @Override + @Override + public void recover(JobExecutionContext jobExecutionContext) throws GFacHandlerException { + // TODO: Auto generated method body. + } + + @Override public void initProperties(Properties properties) throws GFacHandlerException { // TODO Auto-generated method stub http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHDirectorySetupHandler.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHDirectorySetupHandler.java b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHDirectorySetupHandler.java index 5c0d1f8..a985bd3 100644 --- a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHDirectorySetupHandler.java +++ b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHDirectorySetupHandler.java @@ -63,7 +63,13 @@ public class SSHDirectorySetupHandler extends AbstractHandler { makeDirectory(jobExecutionContext); } - private void makeDirectory(JobExecutionContext jobExecutionContext) throws GFacHandlerException { + + @Override + public void recover(JobExecutionContext jobExecutionContext) throws GFacHandlerException { + // TODO: Auto generated method body. + } + + private void makeDirectory(JobExecutionContext jobExecutionContext) throws GFacHandlerException { Cluster cluster = null; try{ String hostAddress = jobExecutionContext.getHostName(); http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHInputHandler.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHInputHandler.java b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHInputHandler.java index 27471d4..160c77d 100644 --- a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHInputHandler.java +++ b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHInputHandler.java @@ -153,6 +153,11 @@ public class SSHInputHandler extends AbstractHandler { jobExecutionContext.setInMessageContext(inputNew); } + @Override + public void recover(JobExecutionContext jobExecutionContext) throws GFacHandlerException { + // TODO: Auto generated method body. + } + private static String stageInputFiles(Cluster cluster, JobExecutionContext jobExecutionContext, String paramValue) throws IOException, GFacException { int i = paramValue.lastIndexOf(File.separator); String substring = paramValue.substring(i + 1); http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHOutputHandler.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHOutputHandler.java b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHOutputHandler.java index 9b7cd2e..f9eb1ef 100644 --- a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHOutputHandler.java +++ b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHOutputHandler.java @@ -243,6 +243,11 @@ public class SSHOutputHandler extends AbstractHandler { } + @Override + public void recover(JobExecutionContext jobExecutionContext) throws GFacHandlerException { + // TODO: Auto generated method body. + } + public void initProperties(Properties properties) throws GFacHandlerException { } http://git-wip-us.apache.org/repos/asf/airavata/blob/a3487e77/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/provider/impl/SSHProvider.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/provider/impl/SSHProvider.java b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/provider/impl/SSHProvider.java index 7023e3c..0f88327 100644 --- a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/provider/impl/SSHProvider.java +++ b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/provider/impl/SSHProvider.java @@ -21,7 +21,6 @@ package org.apache.airavata.gfac.ssh.provider.impl; -import org.airavata.appcatalog.cpi.AppCatalog; import org.airavata.appcatalog.cpi.AppCatalogException; import org.apache.airavata.common.exception.AiravataException; import org.apache.airavata.common.exception.ApplicationSettingsException; @@ -34,7 +33,7 @@ import org.apache.airavata.gfac.core.cpi.BetterGfacImpl; import org.apache.airavata.gfac.core.handler.GFacHandlerException; import org.apache.airavata.gfac.core.handler.ThreadedHandler; import org.apache.airavata.gfac.core.notification.events.StartExecutionEvent; -import org.apache.airavata.gfac.core.provider.AbstractRecoverableProvider; +import org.apache.airavata.gfac.core.provider.AbstractProvider; import org.apache.airavata.gfac.core.provider.GFacProviderException; import org.apache.airavata.gfac.core.utils.GFacUtils; import org.apache.airavata.gfac.monitor.email.EmailBasedMonitor; @@ -71,7 +70,7 @@ import java.util.*; /** * Execute application using remote SSH */ -public class SSHProvider extends AbstractRecoverableProvider { +public class SSHProvider extends AbstractProvider { private static final Logger log = LoggerFactory.getLogger(SSHProvider.class); private Cluster cluster; private String jobID = null;
