| /** |
| * |
| * 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 getComputeResourceLoginUserName() { |
| // return loginUserName; |
| // } |
| // |
| // public void setLoginUserName(String loginUserName) { |
| // this.loginUserName = loginUserName; |
| // } |
| // |
| // public LocalEventPublisher getLocalEventPublisher() { |
| // return localEventPublisher; |
| // } |
| // |
| // public void setLocalEventPublisher(LocalEventPublisher localEventPublisher) { |
| // this.localEventPublisher = localEventPublisher; |
| // } |
| //} |