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 23:01:57 UTC

[1/2] airavata git commit: orchestrator level changes

Repository: airavata
Updated Branches:
  refs/heads/master a393b735e -> 636a733bf


http://git-wip-us.apache.org/repos/asf/airavata/blob/636a733b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/validator/impl/BatchQueueValidator.java
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/validator/impl/BatchQueueValidator.java b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/validator/impl/BatchQueueValidator.java
index 664fcfe..b210a2a 100644
--- a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/validator/impl/BatchQueueValidator.java
+++ b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/validator/impl/BatchQueueValidator.java
@@ -27,7 +27,6 @@ import org.apache.airavata.model.error.ValidatorResult;
 import org.apache.airavata.model.experiment.*;
 import org.apache.airavata.model.process.ProcessModel;
 import org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel;
-import org.apache.airavata.model.task.TaskModel;
 import org.apache.airavata.orchestrator.core.validator.JobMetadataValidator;
 import org.apache.airavata.registry.core.experiment.catalog.impl.RegistryFactory;
 import org.apache.airavata.registry.cpi.*;
@@ -54,7 +53,7 @@ public class BatchQueueValidator implements JobMetadataValidator {
         }
     }
 
-    public ValidationResults validate(ExperimentModel experiment, ProcessModel processModel, TaskModel taskModel) {
+    public ValidationResults validate(ExperimentModel experiment, ProcessModel processModel) {
         ValidationResults validationResults = new ValidationResults();
         validationResults.setValidationState(true);
         try {

http://git-wip-us.apache.org/repos/asf/airavata/blob/636a733b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/validator/impl/ExperimentStatusValidator.java
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/validator/impl/ExperimentStatusValidator.java b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/validator/impl/ExperimentStatusValidator.java
index faae1bf..9d7fa0e 100644
--- a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/validator/impl/ExperimentStatusValidator.java
+++ b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/validator/impl/ExperimentStatusValidator.java
@@ -36,7 +36,7 @@ import java.util.List;
 public class ExperimentStatusValidator implements JobMetadataValidator {
     private static Logger log = LoggerFactory.getLogger(ExperimentStatusValidator.class);
 
-    public ValidationResults validate(ExperimentModel experiment, ProcessModel processModel, TaskModel taskModel) {
+    public ValidationResults validate(ExperimentModel experiment, ProcessModel processModel) {
         String error = "During the validation step experiment status should be CREATED, But this experiment status is : ";
         ValidationResults validationResults = new ValidationResults();
         validationResults.setValidationState(true);

http://git-wip-us.apache.org/repos/asf/airavata/blob/636a733b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/cpi/Orchestrator.java
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/cpi/Orchestrator.java b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/cpi/Orchestrator.java
index 7bb9d5f..3671ad9 100644
--- a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/cpi/Orchestrator.java
+++ b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/cpi/Orchestrator.java
@@ -24,10 +24,8 @@ import org.apache.airavata.model.error.LaunchValidationException;
 import org.apache.airavata.model.error.ValidationResults;
 import org.apache.airavata.model.experiment.ExperimentModel;
 import org.apache.airavata.model.process.ProcessModel;
-import org.apache.airavata.model.task.TaskModel;
 import org.apache.airavata.orchestrator.core.exception.OrchestratorException;
 
-import javax.validation.Validation;
 import java.util.List;
 
 /*
@@ -41,12 +39,10 @@ public interface Orchestrator {
      * sure the experiment is ready to launch and if its not this will return false
      * @param experiment
      * @param processModel
-     * @param taskModel
      * @return boolean if the experiments are valids after executing all the validators return true otherwise it iwll return false
      * @throws OrchestratorException
      */
-     ValidationResults validateExperiment(ExperimentModel experiment, ProcessModel processModel,
-                            TaskModel taskModel) throws OrchestratorException,LaunchValidationException;
+     ValidationResults validateExperiment(ExperimentModel experiment, ProcessModel processModel) throws OrchestratorException,LaunchValidationException;
     /**
      * After creating the experiment Data user have the
      * experimentID as the handler to the experiment, during the launchExperiment
@@ -56,8 +52,7 @@ public interface Orchestrator {
      * @return launchExperiment status
      * @throws OrchestratorException
      */
-    boolean launchExperiment(ExperimentModel experiment, ProcessModel processModel,
-                            TaskModel taskModel,String tokenId) throws OrchestratorException;
+    boolean launchExperiment(ExperimentModel experiment, ProcessModel processModel,String tokenId) throws OrchestratorException;
 
 
     /**
@@ -67,7 +62,7 @@ public interface Orchestrator {
      * @return
      * @throws OrchestratorException
      */
-    public List<TaskModel> createTasks(String experimentId) throws OrchestratorException;
+    public List<ProcessModel> createProcesses(String experimentId) throws OrchestratorException;
 
     /**
      * After creating the experiment Data user have the
@@ -76,11 +71,10 @@ public interface Orchestrator {
      *
      * @param experiment
      * @param processModel
-     * @param task
      * @param tokenId
      * @throws OrchestratorException
      */
-    void cancelExperiment(ExperimentModel experiment, ProcessModel processModel, TaskModel task,String tokenId) throws OrchestratorException;
+    void cancelExperiment(ExperimentModel experiment, ProcessModel processModel, String tokenId) throws OrchestratorException;
     //todo have to add another method to handle failed or jobs to be recovered by orchestrator
     //todo if you don't add these this is not an orchestrator, its just an intemediate component which invoke gfac
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/636a733b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/cpi/impl/SimpleOrchestratorImpl.java
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/cpi/impl/SimpleOrchestratorImpl.java b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/cpi/impl/SimpleOrchestratorImpl.java
index bed31ce..ec942a1 100644
--- a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/cpi/impl/SimpleOrchestratorImpl.java
+++ b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/cpi/impl/SimpleOrchestratorImpl.java
@@ -25,8 +25,6 @@ import org.apache.airavata.model.error.LaunchValidationException;
 import org.apache.airavata.model.error.ValidationResults;
 import org.apache.airavata.model.error.ValidatorResult;
 import org.apache.airavata.model.process.ProcessModel;
-import org.apache.airavata.model.task.TaskModel;
-import org.apache.airavata.model.util.ExperimentModelUtil;
 import org.apache.airavata.model.experiment.*;
 import org.apache.airavata.orchestrator.core.exception.OrchestratorException;
 import org.apache.airavata.orchestrator.core.impl.GFACPassiveJobSubmitter;
@@ -67,14 +65,14 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator{
         }
     }
 
-    public boolean launchExperiment(ExperimentModel experiment, ProcessModel processModel, TaskModel task,String tokenId) throws OrchestratorException {
+    public boolean launchExperiment(ExperimentModel experiment, ProcessModel processModel, String tokenId) throws OrchestratorException {
         // we give higher priority to userExperimentID
         String experimentId = experiment.getExperimentId();
-        String taskId = task.getTaskId();
+        String processId = processModel.getProcessId();
         // creating monitorID to register with monitoring queue
         // this is a special case because amqp has to be in place before submitting the job
         try {
-            return jobSubmitter.submit(experimentId, taskId,tokenId);
+            return jobSubmitter.submit(experimentId, processId, tokenId);
         } catch (Exception e) {
             throw new OrchestratorException("Error launching the job", e);
         }
@@ -88,9 +86,9 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator{
      * @return
      * @throws OrchestratorException
      */
-    public List<TaskModel> createTasks(String experimentId) throws OrchestratorException {
+    public List<ProcessModel> createProcesses(String experimentId) throws OrchestratorException {
         ExperimentModel experiment = null;
-        List<TaskModel> tasks = new ArrayList<TaskModel>();
+        List<ProcessModel> processModels = new ArrayList<ProcessModel>();
         // FIXME : should change as create processes
 //        try {
 //            Registry newRegistry = orchestratorContext.getNewRegistry();
@@ -109,16 +107,16 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator{
 //
 //                TaskDetails taskDetails = ExperimentModelUtil.cloneTaskFromExperiment(experiment);
 //                taskDetails.setTaskID((String) newRegistry.getExperimentCatalog().add(ExpCatChildDataType.TASK_DETAIL, taskDetails, nodeID));
-//                tasks.add(taskDetails);
+//                processModels.add(taskDetails);
 //            }
 
 //        } catch (Exception e) {
 //            throw new OrchestratorException("Error during creating a task");
 //        }
-        return tasks;
+        return processModels;
     }
 
-    public ValidationResults validateExperiment(ExperimentModel experiment, ProcessModel processModel, TaskModel taskModel) throws OrchestratorException,LaunchValidationException {
+    public ValidationResults validateExperiment(ExperimentModel experiment, ProcessModel processModel) throws OrchestratorException,LaunchValidationException {
         org.apache.airavata.model.error.ValidationResults validationResults = new org.apache.airavata.model.error.ValidationResults();
         validationResults.setValidationState(true); // initially making it to success, if atleast one failed them simply mark it failed.
         String errorMsg = "Validation Errors : ";
@@ -128,7 +126,7 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator{
                 try {
                     Class<? extends JobMetadataValidator> vClass = Class.forName(validator.trim()).asSubclass(JobMetadataValidator.class);
                     JobMetadataValidator jobMetadataValidator = vClass.newInstance();
-                    validationResults = jobMetadataValidator.validate(experiment, processModel, taskModel);
+                    validationResults = jobMetadataValidator.validate(experiment, processModel);
                     if (validationResults.isValidationState()) {
                         logger.info("Validation of " + validator + " is SUCCESSFUL");
                     } else {
@@ -147,8 +145,8 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator{
                             ErrorModel details = new ErrorModel();
                             details.setActualErrorMessage(errorMsg);
                             details.setCreationTime(Calendar.getInstance().getTimeInMillis());
-                            orchestratorContext.getNewRegistry().getExperimentCatalog().add(ExpCatChildDataType.TASK_ERROR, details,
-                                    taskModel.getTaskId());
+                            orchestratorContext.getNewRegistry().getExperimentCatalog().add(ExpCatChildDataType.PROCESS_ERROR, details,
+                                    processModel.getProcessId());
                         } catch (RegistryException e) {
                             logger.error("Error while saving error details to registry", e);
                         }
@@ -177,7 +175,7 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator{
         }
     }
 
-    public void cancelExperiment(ExperimentModel experiment, ProcessModel processModel, TaskModel task, String tokenId)
+    public void cancelExperiment(ExperimentModel experiment, ProcessModel processModel, String tokenId)
             throws OrchestratorException {
         // FIXME
 //        List<JobDetails> jobDetailsList = task.getJobDetailsList();

http://git-wip-us.apache.org/repos/asf/airavata/blob/636a733b/modules/orchestrator/orchestrator-service/src/main/java/org/apache/airavata/orchestrator/server/OrchestratorServerHandler.java
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-service/src/main/java/org/apache/airavata/orchestrator/server/OrchestratorServerHandler.java b/modules/orchestrator/orchestrator-service/src/main/java/org/apache/airavata/orchestrator/server/OrchestratorServerHandler.java
index 38bdbc5..589b707 100644
--- a/modules/orchestrator/orchestrator-service/src/main/java/org/apache/airavata/orchestrator/server/OrchestratorServerHandler.java
+++ b/modules/orchestrator/orchestrator-service/src/main/java/org/apache/airavata/orchestrator/server/OrchestratorServerHandler.java
@@ -22,9 +22,12 @@
 package org.apache.airavata.orchestrator.server;
 
 import org.apache.airavata.common.exception.AiravataException;
+import org.apache.airavata.common.exception.ApplicationSettingsException;
+import org.apache.airavata.common.utils.AiravataUtils;
 import org.apache.airavata.common.utils.ServerSettings;
 import org.apache.airavata.credential.store.store.CredentialReader;
 import org.apache.airavata.gfac.core.GFacUtils;
+import org.apache.airavata.gfac.core.scheduler.HostScheduler;
 import org.apache.airavata.messaging.core.MessageContext;
 import org.apache.airavata.messaging.core.MessageHandler;
 import org.apache.airavata.messaging.core.MessagingConstants;
@@ -32,38 +35,39 @@ import org.apache.airavata.messaging.core.Publisher;
 import org.apache.airavata.messaging.core.PublisherFactory;
 import org.apache.airavata.messaging.core.impl.RabbitMQProcessConsumer;
 import org.apache.airavata.messaging.core.impl.RabbitMQProcessPublisher;
+import org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription;
 import org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription;
+import org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription;
 import org.apache.airavata.model.error.LaunchValidationException;
 import org.apache.airavata.model.experiment.ExperimentModel;
 import org.apache.airavata.model.experiment.ExperimentType;
+import org.apache.airavata.model.messaging.event.ExperimentStatusChangeEvent;
+import org.apache.airavata.model.messaging.event.MessageType;
 import org.apache.airavata.model.messaging.event.ProcessSubmitEvent;
 import org.apache.airavata.model.process.ProcessModel;
-import org.apache.airavata.model.task.TaskModel;
+import org.apache.airavata.model.status.ExperimentState;
+import org.apache.airavata.model.status.ExperimentStatus;
 import org.apache.airavata.orchestrator.core.exception.OrchestratorException;
 import org.apache.airavata.orchestrator.cpi.OrchestratorService;
 import org.apache.airavata.orchestrator.cpi.impl.SimpleOrchestratorImpl;
 import org.apache.airavata.orchestrator.cpi.orchestrator_cpi_serviceConstants;
 import org.apache.airavata.orchestrator.util.OrchestratorServerThreadPoolExecutor;
+import org.apache.airavata.registry.core.app.catalog.resources.AppCatAbstractResource;
 import org.apache.airavata.registry.core.experiment.catalog.impl.RegistryFactory;
 import org.apache.airavata.registry.core.experiment.catalog.resources.AbstractExpCatResource;
-import org.apache.airavata.registry.cpi.AppCatalog;
-import org.apache.airavata.registry.cpi.AppCatalogException;
-import org.apache.airavata.registry.cpi.ExperimentCatalog;
-import org.apache.airavata.registry.cpi.ExperimentCatalogModelType;
-import org.apache.airavata.registry.cpi.RegistryException;
+import org.apache.airavata.registry.cpi.*;
 import org.apache.thrift.TBase;
 import org.apache.thrift.TException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 public class OrchestratorServerHandler implements OrchestratorService.Iface {
 	private static Logger log = LoggerFactory.getLogger(OrchestratorServerHandler.class);
 	private SimpleOrchestratorImpl orchestrator = null;
 	private ExperimentCatalog experimentCatalog;
+    private AppCatalog appCatalog;
 	private static Integer mutex = new Integer(-1);
 	private String airavataUserName;
 	private String gatewayName;
@@ -79,7 +83,6 @@ public class OrchestratorServerHandler implements OrchestratorService.Iface {
 	}
 
 	public OrchestratorServerHandler() throws OrchestratorException{
-		// registering with zk
 		try {
 	        publisher = PublisherFactory.createActivityPublisher();
             setAiravataUserName(ServerSettings.getDefaultUser());
@@ -93,6 +96,7 @@ public class OrchestratorServerHandler implements OrchestratorService.Iface {
 			// the required properties
 			orchestrator = new SimpleOrchestratorImpl();
 			experimentCatalog = RegistryFactory.getDefaultExpCatalog();
+            appCatalog = RegistryFactory.getAppCatalog();
 			orchestrator.initialize();
 			orchestrator.getOrchestratorContext().setPublisher(this.publisher);
             startProcessConsumer();
@@ -102,8 +106,11 @@ public class OrchestratorServerHandler implements OrchestratorService.Iface {
 		} catch (RegistryException e) {
             log.error(e.getMessage(), e);
             throw new OrchestratorException("Error while initializing orchestrator service", e);
-		}
-	}
+		} catch (AppCatalogException e) {
+            log.error(e.getMessage(), e);
+            throw new OrchestratorException("Error while initializing orchestrator service", e);
+        }
+    }
 
     private void startProcessConsumer() throws OrchestratorException {
         try {
@@ -111,7 +118,6 @@ public class OrchestratorServerHandler implements OrchestratorService.Iface {
             ProcessConsumer processConsumer = new ProcessConsumer();
             Thread thread = new Thread(processConsumer);
             thread.start();
-
         } catch (AiravataException e) {
             throw new OrchestratorException("Error while starting process consumer", e);
         }
@@ -177,41 +183,16 @@ public class OrchestratorServerHandler implements OrchestratorService.Iface {
 	 * @return
 	 * @throws TException
 	 */
-	public boolean validateExperiment(String experimentId) throws TException,
-			LaunchValidationException {
-		// TODO: Write the Orchestrator implementaion
+	public boolean validateExperiment(String experimentId) throws TException, LaunchValidationException {
 		try {
-			List<TaskModel> tasks = orchestrator.createTasks(experimentId);
-			if (tasks.size() > 1) {
-				log.info("There are multiple tasks for this experiment, So Orchestrator will launch multiple Jobs");
-			}
-			List<String> ids = experimentCatalog.getIds(
-					ExperimentCatalogModelType.PROCESS,
-					AbstractExpCatResource.ProcessConstants.EXPERIMENT_ID, experimentId);
-			for (String processId : ids) {
-				ProcessModel processModel = (ProcessModel) experimentCatalog
-						.get(ExperimentCatalogModelType.PROCESS,
-								processId);
-                // FIXME : no need to create tasks at orchestrator level
-//				List<Object> taskDetailList = experimentCatalog.get(
-//						ExperimentCatalogModelType.TASK_DETAIL,
-////						TaskDetailConstants.NODE_ID, processId);
-//				for (Object o : taskDetailList) {
-//					TaskDetails taskID = (TaskDetails) o;
-//					// iterate through all the generated tasks and performs the
-//					// job submisssion+monitoring
-//					Experiment experiment = (Experiment) experimentCatalog.get(
-//							ExperimentCatalogModelType.EXPERIMENT, experimentId);
-//					if (experiment == null) {
-//						log.errorId(experimentId, "Error retrieving the Experiment by the given experimentID: {}.",
-//                                experimentId);
-//						return false;
-//					}
-//					return orchestrator.validateExperiment(experiment,
-//							processModel, taskID).isSetValidationState();
-//				}
-			}
-
+            ExperimentModel experimentModel = (ExperimentModel)experimentCatalog.get(ExperimentCatalogModelType.EXPERIMENT, experimentId);
+			List<String> ids = experimentCatalog.getIds(ExperimentCatalogModelType.PROCESS,AbstractExpCatResource.ProcessConstants.EXPERIMENT_ID, experimentId);
+			if (ids != null && !ids.isEmpty()){
+                for (String processId : ids) {
+                    ProcessModel processModel = (ProcessModel) experimentCatalog.get(ExperimentCatalogModelType.PROCESS,processId);
+                    return orchestrator.validateExperiment(experimentModel,processModel).isSetValidationState();
+                }
+            }
 		} catch (OrchestratorException e) {
             log.error(experimentId, "Error while validating experiment", e);
 			throw new TException(e);
@@ -252,79 +233,58 @@ public class OrchestratorServerHandler implements OrchestratorService.Iface {
 	}
 
 	@Override
-	public boolean launchTask(String taskId, String airavataCredStoreToken) throws TException {
-        // FIXME : should be launch process instead of the task
-//		try {
-//			TaskDetails taskData = (TaskDetails) experimentCatalog.get(
-//					ExperimentCatalogModelType.TASK_DETAIL, taskId);
-//			String applicationId = taskData.getApplicationId();
-//			if (applicationId == null) {
-//                log.errorId(taskId, "Application id shouldn't be null.");
-//				throw new OrchestratorException("Error executing the job, application id shouldn't be null.");
-//			}
-//			ApplicationDeploymentDescription applicationDeploymentDescription = getAppDeployment(taskData, applicationId);
-//            taskData.setApplicationDeploymentId(applicationDeploymentDescription.getAppDeploymentId());
-//			experimentCatalog.update(ExperimentCatalogModelType.TASK_DETAIL, taskData,taskData.getTaskID());
-//			List<Object> workflowNodeDetailList = experimentCatalog.get(ExperimentCatalogModelType.WORKFLOW_NODE_DETAIL,
-//							org.apache.airavata.registry.cpi.utils.Constants.FieldConstants.WorkflowNodeConstants.TASK_LIST, taskData);
-//			if (workflowNodeDetailList != null
-//					&& workflowNodeDetailList.size() > 0) {
-//				List<Object> experimentList = experimentCatalog.get(ExperimentCatalogModelType.EXPERIMENT,
-//								org.apache.airavata.registry.cpi.utils.Constants.FieldConstants.ExperimentConstants.WORKFLOW_NODE_LIST,
-//								(WorkflowNodeDetails) workflowNodeDetailList.get(0));
-//				if (experimentList != null && experimentList.size() > 0) {
-//					return orchestrator
-//							.launchExperiment(
-//									(Experiment) experimentList.get(0),
-//									(WorkflowNodeDetails) workflowNodeDetailList
-//											.get(0), taskData,airavataCredStoreToken);
-//				}
-//			}
-//		} catch (Exception e) {
-//            log.errorId(taskId, "Error while launching task ", e);
-//            throw new TException(e);
-//        }
-//        log.infoId(taskId, "No experiment found associated in task {}", taskId);
-        return false;
+	public boolean launchProcess(String processId, String airavataCredStoreToken) throws TException {
+		try {
+			ProcessModel processModel = (ProcessModel) experimentCatalog.get(
+					ExperimentCatalogModelType.PROCESS, processId);
+            String experimentId = processModel.getExperimentId();
+            ExperimentModel experimentModel = (ExperimentModel)experimentCatalog.get(ExperimentCatalogModelType.EXPERIMENT, experimentId);
+            String applicationId = processModel.getApplicationInterfaceId();
+			if (applicationId == null) {
+                log.error(processId, "Application interface id shouldn't be null.");
+				throw new OrchestratorException("Error executing the job, application interface id shouldn't be null.");
+			}
+            ApplicationDeploymentDescription applicationDeploymentDescription = getAppDeployment(processModel, applicationId);
+            processModel.setApplicationDeploymentId(applicationDeploymentDescription.getAppDeploymentId());
+			experimentCatalog.update(ExperimentCatalogModelType.PROCESS, processModel,processModel.getProcessId());
+		    return orchestrator.launchExperiment(experimentModel, processModel, airavataCredStoreToken);
+		} catch (Exception e) {
+            log.error(processId, "Error while launching process ", e);
+            throw new TException(e);
+        }
 	}
 
-//	private ApplicationDeploymentDescription getAppDeployment(
-//			TaskDetails taskData, String applicationId)
-//			throws AppCatalogException, OrchestratorException,
-//			ClassNotFoundException, ApplicationSettingsException,
-//			InstantiationException, IllegalAccessException {
-//		AppCatalog appCatalog = RegistryFactory.getAppCatalog();
-//		String selectedModuleId = getModuleId(appCatalog, applicationId);
-//		ApplicationDeploymentDescription applicationDeploymentDescription = getAppDeployment(
-//				appCatalog, taskData, selectedModuleId);
-//		return applicationDeploymentDescription;
-//	}
-
-//	private ApplicationDeploymentDescription getAppDeployment(
-//			AppCatalog appCatalog, TaskDetails taskData, String selectedModuleId)
-//			throws AppCatalogException, ClassNotFoundException,
-//			ApplicationSettingsException, InstantiationException,
-//			IllegalAccessException {
-//		Map<String, String> moduleIdFilter = new HashMap<String, String>();
-//		moduleIdFilter.put(AppCatAbstractResource.ApplicationDeploymentConstants.APP_MODULE_ID, selectedModuleId);
-//		if (taskData.getTaskScheduling()!=null && taskData.getTaskScheduling().getResourceHostId() != null) {
-//		    moduleIdFilter.put(AppCatAbstractResource.ApplicationDeploymentConstants.COMPUTE_HOST_ID, taskData.getTaskScheduling().getResourceHostId());
-//		}
-//		List<ApplicationDeploymentDescription> applicationDeployements = appCatalog.getApplicationDeployment().getApplicationDeployements(moduleIdFilter);
-//		Map<ComputeResourceDescription, ApplicationDeploymentDescription> deploymentMap = new HashMap<ComputeResourceDescription, ApplicationDeploymentDescription>();
-//		ComputeResource computeResource = appCatalog.getComputeResource();
-//		for (ApplicationDeploymentDescription deploymentDescription : applicationDeployements) {
-//			deploymentMap.put(computeResource.getComputeResource(deploymentDescription.getComputeHostId()),deploymentDescription);
-//		}
-//		List<ComputeResourceDescription> computeHostList = Arrays.asList(deploymentMap.keySet().toArray(new ComputeResourceDescription[]{}));
-//		Class<? extends HostScheduler> aClass = Class.forName(
-//				ServerSettings.getHostScheduler()).asSubclass(
-//				HostScheduler.class);
-//		HostScheduler hostScheduler = aClass.newInstance();
-//		ComputeResourceDescription ComputeResourceDescription = hostScheduler.schedule(computeHostList);
-//		ApplicationDeploymentDescription applicationDeploymentDescription = deploymentMap.get(ComputeResourceDescription);
-//		return applicationDeploymentDescription;
-//	}
+    private ApplicationDeploymentDescription getAppDeployment(ProcessModel processModel, String applicationId)
+            throws AppCatalogException, OrchestratorException,
+            ClassNotFoundException, ApplicationSettingsException,
+            InstantiationException, IllegalAccessException {
+        String selectedModuleId = getModuleId(appCatalog, applicationId);
+        return getAppDeploymentForModule(processModel, selectedModuleId);
+    }
+
+    private ApplicationDeploymentDescription getAppDeploymentForModule(ProcessModel processModel, String selectedModuleId)
+            throws AppCatalogException, ClassNotFoundException,
+            ApplicationSettingsException, InstantiationException,
+            IllegalAccessException {
+        Map<String, String> moduleIdFilter = new HashMap<String, String>();
+        moduleIdFilter.put(AppCatAbstractResource.ApplicationDeploymentConstants.APP_MODULE_ID, selectedModuleId);
+        if (processModel.getResourceSchedule() != null && processModel.getResourceSchedule().getResourceHostId() != null) {
+            moduleIdFilter.put(AppCatAbstractResource.ApplicationDeploymentConstants.COMPUTE_HOST_ID, processModel.getResourceSchedule().getResourceHostId());
+        }
+        List<ApplicationDeploymentDescription> applicationDeployements = appCatalog.getApplicationDeployment().getApplicationDeployements(moduleIdFilter);
+        Map<ComputeResourceDescription, ApplicationDeploymentDescription> deploymentMap = new HashMap<ComputeResourceDescription, ApplicationDeploymentDescription>();
+        ComputeResource computeResource = appCatalog.getComputeResource();
+        for (ApplicationDeploymentDescription deploymentDescription : applicationDeployements) {
+            deploymentMap.put(computeResource.getComputeResource(deploymentDescription.getComputeHostId()), deploymentDescription);
+        }
+        List<ComputeResourceDescription> computeHostList = Arrays.asList(deploymentMap.keySet().toArray(new ComputeResourceDescription[]{}));
+        Class<? extends HostScheduler> aClass = Class.forName(
+                ServerSettings.getHostScheduler()).asSubclass(
+                HostScheduler.class);
+        HostScheduler hostScheduler = aClass.newInstance();
+        ComputeResourceDescription ComputeResourceDescription = hostScheduler.schedule(computeHostList);
+        return deploymentMap.get(ComputeResourceDescription);
+    }
 
 	private String getModuleId(AppCatalog appCatalog, String applicationId)
 			throws AppCatalogException, OrchestratorException {
@@ -495,65 +455,45 @@ public class OrchestratorServerHandler implements OrchestratorService.Iface {
             }
         }
 
-        // FIXME
         private boolean launchSingleAppExperiment() throws TException {
-//            ExperimentModel experiment = null;
-//            try {
-//                List<String> ids = experimentCatalog.getIds(ExperimentCatalogModelType.WORKFLOW_NODE_DETAIL, WorkflowNodeConstants.EXPERIMENT_ID, experimentId);
-//                for (String workflowNodeId : ids) {
-////                WorkflowNodeDetails workflowNodeDetail = (WorkflowNodeDetails) registry.get(RegistryModelType.WORKFLOW_NODE_DETAIL, workflowNodeId);
-//                    List<Object> taskDetailList = experimentCatalog.get(ExperimentCatalogModelType.TASK_DETAIL, TaskDetailConstants.NODE_ID, workflowNodeId);
-//                    for (Object o : taskDetailList) {
-//                        TaskDetails taskData = (TaskDetails) o;
-//                        //iterate through all the generated tasks and performs the job submisssion+monitoring
-//                        experiment = (Experiment) experimentCatalog.get(ExperimentCatalogModelType.EXPERIMENT, experimentId);
-//                        if (experiment == null) {
-//                            log.errorId(experimentId, "Error retrieving the Experiment by the given experimentID: {}", experimentId);
-//                            return false;
-//                        }
-//                        String gatewayId = null;
-//                        CredentialReader credentialReader = GFacUtils.getCredentialReader();
-//                        if (credentialReader != null) {
-//                            try {
-//                                gatewayId = credentialReader.getGatewayID(airavataCredStoreToken);
-//                            } catch (Exception e) {
-//                                log.error(e.getLocalizedMessage());
-//                            }
-//                        }
-//                        if (gatewayId == null || gatewayId.isEmpty()) {
-//                            gatewayId = ServerSettings.getDefaultUserGateway();
-//                        }
-//                        ExperimentStatusChangeEvent event = new ExperimentStatusChangeEvent(ExperimentState.LAUNCHED,
-//                                experimentId,
-//                                gatewayId);
-//                        String messageId = AiravataUtils.getId("EXPERIMENT");
-//                        MessageContext messageContext = new MessageContext(event, MessageType.EXPERIMENT, messageId, gatewayId);
-//                        messageContext.setUpdatedTime(AiravataUtils.getCurrentTimestamp());
-//                        publisher.publish(messageContext);
-//                        experimentCatalog.update(ExperimentCatalogModelType.TASK_DETAIL, taskData, taskData.getTaskID());
-//                        //launching the experiment
-//                        launchTask(taskData.getTaskID(), airavataCredStoreToken);
-//                    }
-//                }
-//
-//            } catch (Exception e) {
-//                // Here we really do not have to do much because only potential failure can happen
-//                // is in gfac, if there are errors in gfac, it will handle the experiment/task/job statuses
-//                // We might get failures in registry access before submitting the jobs to gfac, in that case we
-//                // leave the status of these as created.
-//                ExperimentStatus status = new ExperimentStatus();
-//                status.setExperimentState(ExperimentState.FAILED);
-//                status.setTimeOfStateChange(Calendar.getInstance().getTimeInMillis());
-//                experiment.setExperimentStatus(status);
-//                try {
-//                    experimentCatalog.update(ExperimentCatalogModelType.EXPERIMENT_STATUS, status, experimentId);
-//                } catch (RegistryException e1) {
-//                    log.errorId(experimentId, "Error while updating experiment status to " + status.toString(), e);
-//                    throw new TException(e);
-//                }
-//                log.errorId(experimentId, "Error while updating task status, hence updated experiment status to " + status.toString(), e);
-//                throw new TException(e);
-//            }
+            try {
+                List<String> processIds = experimentCatalog.getIds(ExperimentCatalogModelType.PROCESS, AbstractExpCatResource.ProcessConstants.EXPERIMENT_ID, experimentId);
+                for (String processId : processIds) {
+                    String gatewayId = null;
+                    CredentialReader credentialReader = GFacUtils.getCredentialReader();
+                    if (credentialReader != null) {
+                        try {
+                            gatewayId = credentialReader.getGatewayID(airavataCredStoreToken);
+                        } catch (Exception e) {
+                            log.error(e.getLocalizedMessage());
+                        }
+                    }
+                    if (gatewayId == null || gatewayId.isEmpty()) {
+                        gatewayId = ServerSettings.getDefaultUserGateway();
+                    }
+                    ExperimentStatusChangeEvent event = new ExperimentStatusChangeEvent(ExperimentState.LAUNCHED,
+                            experimentId,
+                            gatewayId);
+                    String messageId = AiravataUtils.getId("EXPERIMENT");
+                    MessageContext messageContext = new MessageContext(event, MessageType.EXPERIMENT, messageId, gatewayId);
+                    messageContext.setUpdatedTime(AiravataUtils.getCurrentTimestamp());
+                    publisher.publish(messageContext);
+                    launchProcess(processId, airavataCredStoreToken);
+                }
+
+            } catch (Exception e) {
+                ExperimentStatus status = new ExperimentStatus();
+                status.setState(ExperimentState.FAILED);
+                status.setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime());
+                try {
+                    experimentCatalog.update(ExperimentCatalogModelType.EXPERIMENT_STATUS, status, experimentId);
+                } catch (RegistryException e1) {
+                    log.error(experimentId, "Error while updating experiment status to " + status.toString(), e);
+                    throw new TException(e);
+                }
+                log.error(experimentId, "Error while updating task status, hence updated experiment status to " + status.toString(), e);
+                throw new TException(e);
+            }
             return true;
         }
     }
@@ -584,9 +524,9 @@ public class OrchestratorServerHandler implements OrchestratorService.Iface {
             if (event instanceof ProcessSubmitEvent) {
                 ProcessSubmitEvent processSubmitEvent = (ProcessSubmitEvent) event;
                 try {
-                    launchTask(processSubmitEvent.getTaskId(), processSubmitEvent.getCredentialToken());
+                    launchProcess(processSubmitEvent.getProcessId(), processSubmitEvent.getCredentialToken());
                 } catch (TException e) {
-                    log.error("Error while launching task : " + processSubmitEvent.getTaskId());
+                    log.error("Error while launching task : " + processSubmitEvent.getProcessId());
                 }
             }
         }

http://git-wip-us.apache.org/repos/asf/airavata/blob/636a733b/thrift-interface-descriptions/airavata-api/messaging_events.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/airavata-api/messaging_events.thrift b/thrift-interface-descriptions/airavata-api/messaging_events.thrift
index e20d8ba..a863edc 100644
--- a/thrift-interface-descriptions/airavata-api/messaging_events.thrift
+++ b/thrift-interface-descriptions/airavata-api/messaging_events.thrift
@@ -110,7 +110,7 @@ struct JobIdentifier {
 // }
 
 struct ProcessSubmitEvent{
-    1: required string taskId;
+    1: required string processId;
     2: required string credentialToken;
 }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/636a733b/thrift-interface-descriptions/orchestrator-cpi/orchestrator.cpi.service.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/orchestrator-cpi/orchestrator.cpi.service.thrift b/thrift-interface-descriptions/orchestrator-cpi/orchestrator.cpi.service.thrift
index 62a6d8d..b24de58 100644
--- a/thrift-interface-descriptions/orchestrator-cpi/orchestrator.cpi.service.thrift
+++ b/thrift-interface-descriptions/orchestrator-cpi/orchestrator.cpi.service.thrift
@@ -26,7 +26,7 @@
 include "../airavata-api/airavata_errors.thrift"
 namespace java org.apache.airavata.orchestrator.cpi
 
-const string ORCHESTRATOR_CPI_VERSION = "0.13.0"
+const string ORCHESTRATOR_CPI_VERSION = "0.16.0"
 
 service OrchestratorService {
 
@@ -46,15 +46,15 @@ service OrchestratorService {
 
     /**
      * In order to run single applications users should create an associating 
-     * WorkflowNodeDetails and a TaskDetails for it and hand it over for execution
+     * process and hand it over for execution
      * along with a credential store token for authentication
      *
-     * @param taskId
+     * @param processId
      * @param airavataCredStoreToken
      * @return sucess/failure
      *
     **/
-  bool launchTask (1: required string taskId, 2: required string airavataCredStoreToken),
+  bool launchProcess (1: required string processId, 2: required string airavataCredStoreToken),
 
     /**
      *


[2/2] airavata git commit: orchestrator level changes

Posted by ch...@apache.org.
orchestrator level changes


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/636a733b
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/636a733b
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/636a733b

Branch: refs/heads/master
Commit: 636a733bffd536f96b31bfd8be4917426d4d3eeb
Parents: a393b73
Author: Chathuri Wimalasena <ch...@apache.org>
Authored: Wed Jun 24 17:01:50 2015 -0400
Committer: Chathuri Wimalasena <ch...@apache.org>
Committed: Wed Jun 24 17:01:50 2015 -0400

----------------------------------------------------------------------
 .../Airavata/Model/Messaging/Event/Types.php    | 379 +++++++++++++++++--
 .../airavata/model/messaging/event/ttypes.py    | 335 ++++++++++++++--
 .../messaging/event/ProcessSubmitEvent.java     | 110 +++---
 .../apache/airavata/gfac/core/GFacUtils.java    |   5 +-
 .../orchestrator/cpi/OrchestratorService.java   | 314 +++++++--------
 .../cpi/orchestrator_cpi_serviceConstants.java  |   2 +-
 .../core/validator/JobMetadataValidator.java    |   3 +-
 .../validator/impl/BatchQueueValidator.java     |   3 +-
 .../impl/ExperimentStatusValidator.java         |   2 +-
 .../airavata/orchestrator/cpi/Orchestrator.java |  14 +-
 .../cpi/impl/SimpleOrchestratorImpl.java        |  26 +-
 .../server/OrchestratorServerHandler.java       | 296 ++++++---------
 .../airavata-api/messaging_events.thrift        |   2 +-
 .../orchestrator.cpi.service.thrift             |   8 +-
 14 files changed, 1008 insertions(+), 491 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/636a733b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Messaging/Event/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Messaging/Event/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Messaging/Event/Types.php
index d6a9711..b60e34e 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Messaging/Event/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Messaging/Event/Types.php
@@ -33,7 +33,7 @@ final class MessageLevel {
 final class MessageType {
   const EXPERIMENT = 0;
   const TASK = 1;
-  const WORKFLOWNODE = 2;
+  const PROCESS = 2;
   const JOB = 3;
   const LAUNCHTASK = 4;
   const TERMINATETASK = 5;
@@ -41,7 +41,7 @@ final class MessageType {
   static public $__names = array(
     0 => 'EXPERIMENT',
     1 => 'TASK',
-    2 => 'WORKFLOWNODE',
+    2 => 'PROCESS',
     3 => 'JOB',
     4 => 'LAUNCHTASK',
     5 => 'TERMINATETASK',
@@ -170,6 +170,127 @@ class ExperimentStatusChangeEvent {
 
 }
 
+class ProcessIdentifier {
+  static $_TSPEC;
+
+  /**
+   * @var string
+   */
+  public $processId = null;
+  /**
+   * @var string
+   */
+  public $experimentId = null;
+  /**
+   * @var string
+   */
+  public $gatewayId = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'processId',
+          'type' => TType::STRING,
+          ),
+        2 => array(
+          'var' => 'experimentId',
+          'type' => TType::STRING,
+          ),
+        3 => array(
+          'var' => 'gatewayId',
+          'type' => TType::STRING,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['processId'])) {
+        $this->processId = $vals['processId'];
+      }
+      if (isset($vals['experimentId'])) {
+        $this->experimentId = $vals['experimentId'];
+      }
+      if (isset($vals['gatewayId'])) {
+        $this->gatewayId = $vals['gatewayId'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'ProcessIdentifier';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->processId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->experimentId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->gatewayId);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('ProcessIdentifier');
+    if ($this->processId !== null) {
+      $xfer += $output->writeFieldBegin('processId', TType::STRING, 1);
+      $xfer += $output->writeString($this->processId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->experimentId !== null) {
+      $xfer += $output->writeFieldBegin('experimentId', TType::STRING, 2);
+      $xfer += $output->writeString($this->experimentId);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->gatewayId !== null) {
+      $xfer += $output->writeFieldBegin('gatewayId', TType::STRING, 3);
+      $xfer += $output->writeString($this->gatewayId);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
 class TaskIdentifier {
   static $_TSPEC;
 
@@ -180,7 +301,7 @@ class TaskIdentifier {
   /**
    * @var string
    */
-  public $workflowNodeId = null;
+  public $processId = null;
   /**
    * @var string
    */
@@ -198,7 +319,7 @@ class TaskIdentifier {
           'type' => TType::STRING,
           ),
         2 => array(
-          'var' => 'workflowNodeId',
+          'var' => 'processId',
           'type' => TType::STRING,
           ),
         3 => array(
@@ -215,8 +336,8 @@ class TaskIdentifier {
       if (isset($vals['taskId'])) {
         $this->taskId = $vals['taskId'];
       }
-      if (isset($vals['workflowNodeId'])) {
-        $this->workflowNodeId = $vals['workflowNodeId'];
+      if (isset($vals['processId'])) {
+        $this->processId = $vals['processId'];
       }
       if (isset($vals['experimentId'])) {
         $this->experimentId = $vals['experimentId'];
@@ -255,7 +376,7 @@ class TaskIdentifier {
           break;
         case 2:
           if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->workflowNodeId);
+            $xfer += $input->readString($this->processId);
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -292,9 +413,9 @@ class TaskIdentifier {
       $xfer += $output->writeString($this->taskId);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->workflowNodeId !== null) {
-      $xfer += $output->writeFieldBegin('workflowNodeId', TType::STRING, 2);
-      $xfer += $output->writeString($this->workflowNodeId);
+    if ($this->processId !== null) {
+      $xfer += $output->writeFieldBegin('processId', TType::STRING, 2);
+      $xfer += $output->writeString($this->processId);
       $xfer += $output->writeFieldEnd();
     }
     if ($this->experimentId !== null) {
@@ -520,6 +641,212 @@ class TaskStatusChangeRequestEvent {
 
 }
 
+class ProcessStatusChangeEvent {
+  static $_TSPEC;
+
+  /**
+   * @var int
+   */
+  public $state = null;
+  /**
+   * @var \Airavata\Model\Messaging\Event\ProcessIdentifier
+   */
+  public $processIdentity = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'state',
+          'type' => TType::I32,
+          ),
+        2 => array(
+          'var' => 'processIdentity',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\Messaging\Event\ProcessIdentifier',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['state'])) {
+        $this->state = $vals['state'];
+      }
+      if (isset($vals['processIdentity'])) {
+        $this->processIdentity = $vals['processIdentity'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'ProcessStatusChangeEvent';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->state);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRUCT) {
+            $this->processIdentity = new \Airavata\Model\Messaging\Event\ProcessIdentifier();
+            $xfer += $this->processIdentity->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('ProcessStatusChangeEvent');
+    if ($this->state !== null) {
+      $xfer += $output->writeFieldBegin('state', TType::I32, 1);
+      $xfer += $output->writeI32($this->state);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->processIdentity !== null) {
+      if (!is_object($this->processIdentity)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('processIdentity', TType::STRUCT, 2);
+      $xfer += $this->processIdentity->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class ProcessStatusChangeRequestEvent {
+  static $_TSPEC;
+
+  /**
+   * @var int
+   */
+  public $state = null;
+  /**
+   * @var \Airavata\Model\Messaging\Event\ProcessIdentifier
+   */
+  public $processIdentity = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'state',
+          'type' => TType::I32,
+          ),
+        2 => array(
+          'var' => 'processIdentity',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\Messaging\Event\ProcessIdentifier',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['state'])) {
+        $this->state = $vals['state'];
+      }
+      if (isset($vals['processIdentity'])) {
+        $this->processIdentity = $vals['processIdentity'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'ProcessStatusChangeRequestEvent';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->state);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRUCT) {
+            $this->processIdentity = new \Airavata\Model\Messaging\Event\ProcessIdentifier();
+            $xfer += $this->processIdentity->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('ProcessStatusChangeRequestEvent');
+    if ($this->state !== null) {
+      $xfer += $output->writeFieldBegin('state', TType::I32, 1);
+      $xfer += $output->writeI32($this->state);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->processIdentity !== null) {
+      if (!is_object($this->processIdentity)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('processIdentity', TType::STRUCT, 2);
+      $xfer += $this->processIdentity->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
 class TaskOutputChangeEvent {
   static $_TSPEC;
 
@@ -665,7 +992,7 @@ class JobIdentifier {
   /**
    * @var string
    */
-  public $workflowNodeId = null;
+  public $processId = null;
   /**
    * @var string
    */
@@ -687,7 +1014,7 @@ class JobIdentifier {
           'type' => TType::STRING,
           ),
         3 => array(
-          'var' => 'workflowNodeId',
+          'var' => 'processId',
           'type' => TType::STRING,
           ),
         4 => array(
@@ -707,8 +1034,8 @@ class JobIdentifier {
       if (isset($vals['taskId'])) {
         $this->taskId = $vals['taskId'];
       }
-      if (isset($vals['workflowNodeId'])) {
-        $this->workflowNodeId = $vals['workflowNodeId'];
+      if (isset($vals['processId'])) {
+        $this->processId = $vals['processId'];
       }
       if (isset($vals['experimentId'])) {
         $this->experimentId = $vals['experimentId'];
@@ -754,7 +1081,7 @@ class JobIdentifier {
           break;
         case 3:
           if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->workflowNodeId);
+            $xfer += $input->readString($this->processId);
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -796,9 +1123,9 @@ class JobIdentifier {
       $xfer += $output->writeString($this->taskId);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->workflowNodeId !== null) {
-      $xfer += $output->writeFieldBegin('workflowNodeId', TType::STRING, 3);
-      $xfer += $output->writeString($this->workflowNodeId);
+    if ($this->processId !== null) {
+      $xfer += $output->writeFieldBegin('processId', TType::STRING, 3);
+      $xfer += $output->writeString($this->processId);
       $xfer += $output->writeFieldEnd();
     }
     if ($this->experimentId !== null) {
@@ -824,7 +1151,7 @@ class ProcessSubmitEvent {
   /**
    * @var string
    */
-  public $taskId = null;
+  public $processId = null;
   /**
    * @var string
    */
@@ -834,7 +1161,7 @@ class ProcessSubmitEvent {
     if (!isset(self::$_TSPEC)) {
       self::$_TSPEC = array(
         1 => array(
-          'var' => 'taskId',
+          'var' => 'processId',
           'type' => TType::STRING,
           ),
         2 => array(
@@ -844,8 +1171,8 @@ class ProcessSubmitEvent {
         );
     }
     if (is_array($vals)) {
-      if (isset($vals['taskId'])) {
-        $this->taskId = $vals['taskId'];
+      if (isset($vals['processId'])) {
+        $this->processId = $vals['processId'];
       }
       if (isset($vals['credentialToken'])) {
         $this->credentialToken = $vals['credentialToken'];
@@ -874,7 +1201,7 @@ class ProcessSubmitEvent {
       {
         case 1:
           if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->taskId);
+            $xfer += $input->readString($this->processId);
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -899,9 +1226,9 @@ class ProcessSubmitEvent {
   public function write($output) {
     $xfer = 0;
     $xfer += $output->writeStructBegin('ProcessSubmitEvent');
-    if ($this->taskId !== null) {
-      $xfer += $output->writeFieldBegin('taskId', TType::STRING, 1);
-      $xfer += $output->writeString($this->taskId);
+    if ($this->processId !== null) {
+      $xfer += $output->writeFieldBegin('processId', TType::STRING, 1);
+      $xfer += $output->writeString($this->processId);
       $xfer += $output->writeFieldEnd();
     }
     if ($this->credentialToken !== null) {

http://git-wip-us.apache.org/repos/asf/airavata/blob/636a733b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/messaging/event/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/messaging/event/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/messaging/event/ttypes.py
index 2bb74be..c3f5ab7 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/messaging/event/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/messaging/event/ttypes.py
@@ -42,7 +42,7 @@ class MessageLevel:
 class MessageType:
   EXPERIMENT = 0
   TASK = 1
-  WORKFLOWNODE = 2
+  PROCESS = 2
   JOB = 3
   LAUNCHTASK = 4
   TERMINATETASK = 5
@@ -51,7 +51,7 @@ class MessageType:
   _VALUES_TO_NAMES = {
     0: "EXPERIMENT",
     1: "TASK",
-    2: "WORKFLOWNODE",
+    2: "PROCESS",
     3: "JOB",
     4: "LAUNCHTASK",
     5: "TERMINATETASK",
@@ -61,7 +61,7 @@ class MessageType:
   _NAMES_TO_VALUES = {
     "EXPERIMENT": 0,
     "TASK": 1,
-    "WORKFLOWNODE": 2,
+    "PROCESS": 2,
     "JOB": 3,
     "LAUNCHTASK": 4,
     "TERMINATETASK": 5,
@@ -166,11 +166,108 @@ class ExperimentStatusChangeEvent:
   def __ne__(self, other):
     return not (self == other)
 
+class ProcessIdentifier:
+  """
+  Attributes:
+   - processId
+   - experimentId
+   - gatewayId
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.STRING, 'processId', None, None, ), # 1
+    (2, TType.STRING, 'experimentId', None, None, ), # 2
+    (3, TType.STRING, 'gatewayId', None, None, ), # 3
+  )
+
+  def __init__(self, processId=None, experimentId=None, gatewayId=None,):
+    self.processId = processId
+    self.experimentId = experimentId
+    self.gatewayId = gatewayId
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.STRING:
+          self.processId = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRING:
+          self.experimentId = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      elif fid == 3:
+        if ftype == TType.STRING:
+          self.gatewayId = iprot.readString();
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('ProcessIdentifier')
+    if self.processId is not None:
+      oprot.writeFieldBegin('processId', TType.STRING, 1)
+      oprot.writeString(self.processId)
+      oprot.writeFieldEnd()
+    if self.experimentId is not None:
+      oprot.writeFieldBegin('experimentId', TType.STRING, 2)
+      oprot.writeString(self.experimentId)
+      oprot.writeFieldEnd()
+    if self.gatewayId is not None:
+      oprot.writeFieldBegin('gatewayId', TType.STRING, 3)
+      oprot.writeString(self.gatewayId)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.processId is None:
+      raise TProtocol.TProtocolException(message='Required field processId is unset!')
+    if self.experimentId is None:
+      raise TProtocol.TProtocolException(message='Required field experimentId is unset!')
+    if self.gatewayId is None:
+      raise TProtocol.TProtocolException(message='Required field gatewayId is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.processId)
+    value = (value * 31) ^ hash(self.experimentId)
+    value = (value * 31) ^ hash(self.gatewayId)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
 class TaskIdentifier:
   """
   Attributes:
    - taskId
-   - workflowNodeId
+   - processId
    - experimentId
    - gatewayId
   """
@@ -178,14 +275,14 @@ class TaskIdentifier:
   thrift_spec = (
     None, # 0
     (1, TType.STRING, 'taskId', None, None, ), # 1
-    (2, TType.STRING, 'workflowNodeId', None, None, ), # 2
+    (2, TType.STRING, 'processId', None, None, ), # 2
     (3, TType.STRING, 'experimentId', None, None, ), # 3
     (4, TType.STRING, 'gatewayId', None, None, ), # 4
   )
 
-  def __init__(self, taskId=None, workflowNodeId=None, experimentId=None, gatewayId=None,):
+  def __init__(self, taskId=None, processId=None, experimentId=None, gatewayId=None,):
     self.taskId = taskId
-    self.workflowNodeId = workflowNodeId
+    self.processId = processId
     self.experimentId = experimentId
     self.gatewayId = gatewayId
 
@@ -205,7 +302,7 @@ class TaskIdentifier:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.STRING:
-          self.workflowNodeId = iprot.readString();
+          self.processId = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 3:
@@ -232,9 +329,9 @@ class TaskIdentifier:
       oprot.writeFieldBegin('taskId', TType.STRING, 1)
       oprot.writeString(self.taskId)
       oprot.writeFieldEnd()
-    if self.workflowNodeId is not None:
-      oprot.writeFieldBegin('workflowNodeId', TType.STRING, 2)
-      oprot.writeString(self.workflowNodeId)
+    if self.processId is not None:
+      oprot.writeFieldBegin('processId', TType.STRING, 2)
+      oprot.writeString(self.processId)
       oprot.writeFieldEnd()
     if self.experimentId is not None:
       oprot.writeFieldBegin('experimentId', TType.STRING, 3)
@@ -250,8 +347,8 @@ class TaskIdentifier:
   def validate(self):
     if self.taskId is None:
       raise TProtocol.TProtocolException(message='Required field taskId is unset!')
-    if self.workflowNodeId is None:
-      raise TProtocol.TProtocolException(message='Required field workflowNodeId is unset!')
+    if self.processId is None:
+      raise TProtocol.TProtocolException(message='Required field processId is unset!')
     if self.experimentId is None:
       raise TProtocol.TProtocolException(message='Required field experimentId is unset!')
     if self.gatewayId is None:
@@ -262,7 +359,7 @@ class TaskIdentifier:
   def __hash__(self):
     value = 17
     value = (value * 31) ^ hash(self.taskId)
-    value = (value * 31) ^ hash(self.workflowNodeId)
+    value = (value * 31) ^ hash(self.processId)
     value = (value * 31) ^ hash(self.experimentId)
     value = (value * 31) ^ hash(self.gatewayId)
     return value
@@ -444,6 +541,172 @@ class TaskStatusChangeRequestEvent:
   def __ne__(self, other):
     return not (self == other)
 
+class ProcessStatusChangeEvent:
+  """
+  Attributes:
+   - state
+   - processIdentity
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.I32, 'state', None, None, ), # 1
+    (2, TType.STRUCT, 'processIdentity', (ProcessIdentifier, ProcessIdentifier.thrift_spec), None, ), # 2
+  )
+
+  def __init__(self, state=None, processIdentity=None,):
+    self.state = state
+    self.processIdentity = processIdentity
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.I32:
+          self.state = iprot.readI32();
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRUCT:
+          self.processIdentity = ProcessIdentifier()
+          self.processIdentity.read(iprot)
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('ProcessStatusChangeEvent')
+    if self.state is not None:
+      oprot.writeFieldBegin('state', TType.I32, 1)
+      oprot.writeI32(self.state)
+      oprot.writeFieldEnd()
+    if self.processIdentity is not None:
+      oprot.writeFieldBegin('processIdentity', TType.STRUCT, 2)
+      self.processIdentity.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.state is None:
+      raise TProtocol.TProtocolException(message='Required field state is unset!')
+    if self.processIdentity is None:
+      raise TProtocol.TProtocolException(message='Required field processIdentity is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.state)
+    value = (value * 31) ^ hash(self.processIdentity)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
+class ProcessStatusChangeRequestEvent:
+  """
+  Attributes:
+   - state
+   - processIdentity
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.I32, 'state', None, None, ), # 1
+    (2, TType.STRUCT, 'processIdentity', (ProcessIdentifier, ProcessIdentifier.thrift_spec), None, ), # 2
+  )
+
+  def __init__(self, state=None, processIdentity=None,):
+    self.state = state
+    self.processIdentity = processIdentity
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.I32:
+          self.state = iprot.readI32();
+        else:
+          iprot.skip(ftype)
+      elif fid == 2:
+        if ftype == TType.STRUCT:
+          self.processIdentity = ProcessIdentifier()
+          self.processIdentity.read(iprot)
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('ProcessStatusChangeRequestEvent')
+    if self.state is not None:
+      oprot.writeFieldBegin('state', TType.I32, 1)
+      oprot.writeI32(self.state)
+      oprot.writeFieldEnd()
+    if self.processIdentity is not None:
+      oprot.writeFieldBegin('processIdentity', TType.STRUCT, 2)
+      self.processIdentity.write(oprot)
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    if self.state is None:
+      raise TProtocol.TProtocolException(message='Required field state is unset!')
+    if self.processIdentity is None:
+      raise TProtocol.TProtocolException(message='Required field processIdentity is unset!')
+    return
+
+
+  def __hash__(self):
+    value = 17
+    value = (value * 31) ^ hash(self.state)
+    value = (value * 31) ^ hash(self.processIdentity)
+    return value
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
 class TaskOutputChangeEvent:
   """
   Attributes:
@@ -541,7 +804,7 @@ class JobIdentifier:
   Attributes:
    - jobId
    - taskId
-   - workflowNodeId
+   - processId
    - experimentId
    - gatewayId
   """
@@ -550,15 +813,15 @@ class JobIdentifier:
     None, # 0
     (1, TType.STRING, 'jobId', None, None, ), # 1
     (2, TType.STRING, 'taskId', None, None, ), # 2
-    (3, TType.STRING, 'workflowNodeId', None, None, ), # 3
+    (3, TType.STRING, 'processId', None, None, ), # 3
     (4, TType.STRING, 'experimentId', None, None, ), # 4
     (5, TType.STRING, 'gatewayId', None, None, ), # 5
   )
 
-  def __init__(self, jobId=None, taskId=None, workflowNodeId=None, experimentId=None, gatewayId=None,):
+  def __init__(self, jobId=None, taskId=None, processId=None, experimentId=None, gatewayId=None,):
     self.jobId = jobId
     self.taskId = taskId
-    self.workflowNodeId = workflowNodeId
+    self.processId = processId
     self.experimentId = experimentId
     self.gatewayId = gatewayId
 
@@ -583,7 +846,7 @@ class JobIdentifier:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.STRING:
-          self.workflowNodeId = iprot.readString();
+          self.processId = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 4:
@@ -614,9 +877,9 @@ class JobIdentifier:
       oprot.writeFieldBegin('taskId', TType.STRING, 2)
       oprot.writeString(self.taskId)
       oprot.writeFieldEnd()
-    if self.workflowNodeId is not None:
-      oprot.writeFieldBegin('workflowNodeId', TType.STRING, 3)
-      oprot.writeString(self.workflowNodeId)
+    if self.processId is not None:
+      oprot.writeFieldBegin('processId', TType.STRING, 3)
+      oprot.writeString(self.processId)
       oprot.writeFieldEnd()
     if self.experimentId is not None:
       oprot.writeFieldBegin('experimentId', TType.STRING, 4)
@@ -634,8 +897,8 @@ class JobIdentifier:
       raise TProtocol.TProtocolException(message='Required field jobId is unset!')
     if self.taskId is None:
       raise TProtocol.TProtocolException(message='Required field taskId is unset!')
-    if self.workflowNodeId is None:
-      raise TProtocol.TProtocolException(message='Required field workflowNodeId is unset!')
+    if self.processId is None:
+      raise TProtocol.TProtocolException(message='Required field processId is unset!')
     if self.experimentId is None:
       raise TProtocol.TProtocolException(message='Required field experimentId is unset!')
     if self.gatewayId is None:
@@ -647,7 +910,7 @@ class JobIdentifier:
     value = 17
     value = (value * 31) ^ hash(self.jobId)
     value = (value * 31) ^ hash(self.taskId)
-    value = (value * 31) ^ hash(self.workflowNodeId)
+    value = (value * 31) ^ hash(self.processId)
     value = (value * 31) ^ hash(self.experimentId)
     value = (value * 31) ^ hash(self.gatewayId)
     return value
@@ -666,18 +929,18 @@ class JobIdentifier:
 class ProcessSubmitEvent:
   """
   Attributes:
-   - taskId
+   - processId
    - credentialToken
   """
 
   thrift_spec = (
     None, # 0
-    (1, TType.STRING, 'taskId', None, None, ), # 1
+    (1, TType.STRING, 'processId', None, None, ), # 1
     (2, TType.STRING, 'credentialToken', None, None, ), # 2
   )
 
-  def __init__(self, taskId=None, credentialToken=None,):
-    self.taskId = taskId
+  def __init__(self, processId=None, credentialToken=None,):
+    self.processId = processId
     self.credentialToken = credentialToken
 
   def read(self, iprot):
@@ -691,7 +954,7 @@ class ProcessSubmitEvent:
         break
       if fid == 1:
         if ftype == TType.STRING:
-          self.taskId = iprot.readString();
+          self.processId = iprot.readString();
         else:
           iprot.skip(ftype)
       elif fid == 2:
@@ -709,9 +972,9 @@ class ProcessSubmitEvent:
       oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
       return
     oprot.writeStructBegin('ProcessSubmitEvent')
-    if self.taskId is not None:
-      oprot.writeFieldBegin('taskId', TType.STRING, 1)
-      oprot.writeString(self.taskId)
+    if self.processId is not None:
+      oprot.writeFieldBegin('processId', TType.STRING, 1)
+      oprot.writeString(self.processId)
       oprot.writeFieldEnd()
     if self.credentialToken is not None:
       oprot.writeFieldBegin('credentialToken', TType.STRING, 2)
@@ -721,8 +984,8 @@ class ProcessSubmitEvent:
     oprot.writeStructEnd()
 
   def validate(self):
-    if self.taskId is None:
-      raise TProtocol.TProtocolException(message='Required field taskId is unset!')
+    if self.processId is None:
+      raise TProtocol.TProtocolException(message='Required field processId is unset!')
     if self.credentialToken is None:
       raise TProtocol.TProtocolException(message='Required field credentialToken is unset!')
     return
@@ -730,7 +993,7 @@ class ProcessSubmitEvent:
 
   def __hash__(self):
     value = 17
-    value = (value * 31) ^ hash(self.taskId)
+    value = (value * 31) ^ hash(self.processId)
     value = (value * 31) ^ hash(self.credentialToken)
     return value
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/636a733b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
index 78fe6cb..3513b8b 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/ProcessSubmitEvent.java
@@ -55,7 +55,7 @@ import org.slf4j.LoggerFactory;
 public class ProcessSubmitEvent implements org.apache.thrift.TBase<ProcessSubmitEvent, ProcessSubmitEvent._Fields>, java.io.Serializable, Cloneable, Comparable<ProcessSubmitEvent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProcessSubmitEvent");
 
-  private static final org.apache.thrift.protocol.TField TASK_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("taskId", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField PROCESS_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("processId", org.apache.thrift.protocol.TType.STRING, (short)1);
   private static final org.apache.thrift.protocol.TField CREDENTIAL_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("credentialToken", org.apache.thrift.protocol.TType.STRING, (short)2);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
@@ -64,12 +64,12 @@ public class ProcessSubmitEvent implements org.apache.thrift.TBase<ProcessSubmit
     schemes.put(TupleScheme.class, new ProcessSubmitEventTupleSchemeFactory());
   }
 
-  private String taskId; // required
+  private String processId; // required
   private String credentialToken; // required
 
   /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
   public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-    TASK_ID((short)1, "taskId"),
+    PROCESS_ID((short)1, "processId"),
     CREDENTIAL_TOKEN((short)2, "credentialToken");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
@@ -85,8 +85,8 @@ public class ProcessSubmitEvent implements org.apache.thrift.TBase<ProcessSubmit
      */
     public static _Fields findByThriftId(int fieldId) {
       switch(fieldId) {
-        case 1: // TASK_ID
-          return TASK_ID;
+        case 1: // PROCESS_ID
+          return PROCESS_ID;
         case 2: // CREDENTIAL_TOKEN
           return CREDENTIAL_TOKEN;
         default:
@@ -132,7 +132,7 @@ public class ProcessSubmitEvent implements org.apache.thrift.TBase<ProcessSubmit
   public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
   static {
     Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-    tmpMap.put(_Fields.TASK_ID, new org.apache.thrift.meta_data.FieldMetaData("taskId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+    tmpMap.put(_Fields.PROCESS_ID, new org.apache.thrift.meta_data.FieldMetaData("processId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     tmpMap.put(_Fields.CREDENTIAL_TOKEN, new org.apache.thrift.meta_data.FieldMetaData("credentialToken", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
@@ -144,11 +144,11 @@ public class ProcessSubmitEvent implements org.apache.thrift.TBase<ProcessSubmit
   }
 
   public ProcessSubmitEvent(
-    String taskId,
+    String processId,
     String credentialToken)
   {
     this();
-    this.taskId = taskId;
+    this.processId = processId;
     this.credentialToken = credentialToken;
   }
 
@@ -156,8 +156,8 @@ public class ProcessSubmitEvent implements org.apache.thrift.TBase<ProcessSubmit
    * Performs a deep copy on <i>other</i>.
    */
   public ProcessSubmitEvent(ProcessSubmitEvent other) {
-    if (other.isSetTaskId()) {
-      this.taskId = other.taskId;
+    if (other.isSetProcessId()) {
+      this.processId = other.processId;
     }
     if (other.isSetCredentialToken()) {
       this.credentialToken = other.credentialToken;
@@ -170,30 +170,30 @@ public class ProcessSubmitEvent implements org.apache.thrift.TBase<ProcessSubmit
 
   @Override
   public void clear() {
-    this.taskId = null;
+    this.processId = null;
     this.credentialToken = null;
   }
 
-  public String getTaskId() {
-    return this.taskId;
+  public String getProcessId() {
+    return this.processId;
   }
 
-  public void setTaskId(String taskId) {
-    this.taskId = taskId;
+  public void setProcessId(String processId) {
+    this.processId = processId;
   }
 
-  public void unsetTaskId() {
-    this.taskId = null;
+  public void unsetProcessId() {
+    this.processId = null;
   }
 
-  /** Returns true if field taskId is set (has been assigned a value) and false otherwise */
-  public boolean isSetTaskId() {
-    return this.taskId != null;
+  /** Returns true if field processId is set (has been assigned a value) and false otherwise */
+  public boolean isSetProcessId() {
+    return this.processId != null;
   }
 
-  public void setTaskIdIsSet(boolean value) {
+  public void setProcessIdIsSet(boolean value) {
     if (!value) {
-      this.taskId = null;
+      this.processId = null;
     }
   }
 
@@ -222,11 +222,11 @@ public class ProcessSubmitEvent implements org.apache.thrift.TBase<ProcessSubmit
 
   public void setFieldValue(_Fields field, Object value) {
     switch (field) {
-    case TASK_ID:
+    case PROCESS_ID:
       if (value == null) {
-        unsetTaskId();
+        unsetProcessId();
       } else {
-        setTaskId((String)value);
+        setProcessId((String)value);
       }
       break;
 
@@ -243,8 +243,8 @@ public class ProcessSubmitEvent implements org.apache.thrift.TBase<ProcessSubmit
 
   public Object getFieldValue(_Fields field) {
     switch (field) {
-    case TASK_ID:
-      return getTaskId();
+    case PROCESS_ID:
+      return getProcessId();
 
     case CREDENTIAL_TOKEN:
       return getCredentialToken();
@@ -260,8 +260,8 @@ public class ProcessSubmitEvent implements org.apache.thrift.TBase<ProcessSubmit
     }
 
     switch (field) {
-    case TASK_ID:
-      return isSetTaskId();
+    case PROCESS_ID:
+      return isSetProcessId();
     case CREDENTIAL_TOKEN:
       return isSetCredentialToken();
     }
@@ -281,12 +281,12 @@ public class ProcessSubmitEvent implements org.apache.thrift.TBase<ProcessSubmit
     if (that == null)
       return false;
 
-    boolean this_present_taskId = true && this.isSetTaskId();
-    boolean that_present_taskId = true && that.isSetTaskId();
-    if (this_present_taskId || that_present_taskId) {
-      if (!(this_present_taskId && that_present_taskId))
+    boolean this_present_processId = true && this.isSetProcessId();
+    boolean that_present_processId = true && that.isSetProcessId();
+    if (this_present_processId || that_present_processId) {
+      if (!(this_present_processId && that_present_processId))
         return false;
-      if (!this.taskId.equals(that.taskId))
+      if (!this.processId.equals(that.processId))
         return false;
     }
 
@@ -306,10 +306,10 @@ public class ProcessSubmitEvent implements org.apache.thrift.TBase<ProcessSubmit
   public int hashCode() {
     List<Object> list = new ArrayList<Object>();
 
-    boolean present_taskId = true && (isSetTaskId());
-    list.add(present_taskId);
-    if (present_taskId)
-      list.add(taskId);
+    boolean present_processId = true && (isSetProcessId());
+    list.add(present_processId);
+    if (present_processId)
+      list.add(processId);
 
     boolean present_credentialToken = true && (isSetCredentialToken());
     list.add(present_credentialToken);
@@ -327,12 +327,12 @@ public class ProcessSubmitEvent implements org.apache.thrift.TBase<ProcessSubmit
 
     int lastComparison = 0;
 
-    lastComparison = Boolean.valueOf(isSetTaskId()).compareTo(other.isSetTaskId());
+    lastComparison = Boolean.valueOf(isSetProcessId()).compareTo(other.isSetProcessId());
     if (lastComparison != 0) {
       return lastComparison;
     }
-    if (isSetTaskId()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.taskId, other.taskId);
+    if (isSetProcessId()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processId, other.processId);
       if (lastComparison != 0) {
         return lastComparison;
       }
@@ -367,11 +367,11 @@ public class ProcessSubmitEvent implements org.apache.thrift.TBase<ProcessSubmit
     StringBuilder sb = new StringBuilder("ProcessSubmitEvent(");
     boolean first = true;
 
-    sb.append("taskId:");
-    if (this.taskId == null) {
+    sb.append("processId:");
+    if (this.processId == null) {
       sb.append("null");
     } else {
-      sb.append(this.taskId);
+      sb.append(this.processId);
     }
     first = false;
     if (!first) sb.append(", ");
@@ -388,8 +388,8 @@ public class ProcessSubmitEvent implements org.apache.thrift.TBase<ProcessSubmit
 
   public void validate() throws org.apache.thrift.TException {
     // check for required fields
-    if (!isSetTaskId()) {
-      throw new org.apache.thrift.protocol.TProtocolException("Required field 'taskId' is unset! Struct:" + toString());
+    if (!isSetProcessId()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'processId' is unset! Struct:" + toString());
     }
 
     if (!isSetCredentialToken()) {
@@ -433,10 +433,10 @@ public class ProcessSubmitEvent implements org.apache.thrift.TBase<ProcessSubmit
           break;
         }
         switch (schemeField.id) {
-          case 1: // TASK_ID
+          case 1: // PROCESS_ID
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.taskId = iprot.readString();
-              struct.setTaskIdIsSet(true);
+              struct.processId = iprot.readString();
+              struct.setProcessIdIsSet(true);
             } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
@@ -462,9 +462,9 @@ public class ProcessSubmitEvent implements org.apache.thrift.TBase<ProcessSubmit
       struct.validate();
 
       oprot.writeStructBegin(STRUCT_DESC);
-      if (struct.taskId != null) {
-        oprot.writeFieldBegin(TASK_ID_FIELD_DESC);
-        oprot.writeString(struct.taskId);
+      if (struct.processId != null) {
+        oprot.writeFieldBegin(PROCESS_ID_FIELD_DESC);
+        oprot.writeString(struct.processId);
         oprot.writeFieldEnd();
       }
       if (struct.credentialToken != null) {
@@ -489,15 +489,15 @@ public class ProcessSubmitEvent implements org.apache.thrift.TBase<ProcessSubmit
     @Override
     public void write(org.apache.thrift.protocol.TProtocol prot, ProcessSubmitEvent struct) throws org.apache.thrift.TException {
       TTupleProtocol oprot = (TTupleProtocol) prot;
-      oprot.writeString(struct.taskId);
+      oprot.writeString(struct.processId);
       oprot.writeString(struct.credentialToken);
     }
 
     @Override
     public void read(org.apache.thrift.protocol.TProtocol prot, ProcessSubmitEvent struct) throws org.apache.thrift.TException {
       TTupleProtocol iprot = (TTupleProtocol) prot;
-      struct.taskId = iprot.readString();
-      struct.setTaskIdIsSet(true);
+      struct.processId = iprot.readString();
+      struct.setProcessIdIsSet(true);
       struct.credentialToken = iprot.readString();
       struct.setCredentialTokenIsSet(true);
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/636a733b/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 6a9f63a..a76dbc1 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
@@ -241,10 +241,7 @@ public class GFacUtils {
             JobStatus status = new JobStatus();
             status.setJobState(state);
             jobModel.setJobStatus(status);
-            // FIXME - Should change according to the experiment catalog impl
-//            experimentCatalog.add(ExpCatChildDataType.JOB_DETAIL, jobModel,
-//                    new CompositeIdentifier(jobExecutionContext.getTaskData()
-//                            .getTaskID(), jobModel.getJobID()));
+            experimentCatalog.add(ExpCatChildDataType.JOB_STATUS, status, jobModel.getJobId());
             JobIdentifier identifier = new JobIdentifier(jobModel.getJobId(), taskContext.getTaskModel().getTaskId(),
                     processContext.getProcessId(), processContext.getProcessModel().getExperimentId(),
                     processContext.getGatewayId());

http://git-wip-us.apache.org/repos/asf/airavata/blob/636a733b/modules/orchestrator/orchestrator-client/src/main/java/org/apache/airavata/orchestrator/cpi/OrchestratorService.java
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-client/src/main/java/org/apache/airavata/orchestrator/cpi/OrchestratorService.java b/modules/orchestrator/orchestrator-client/src/main/java/org/apache/airavata/orchestrator/cpi/OrchestratorService.java
index d80ffeb..298e12d 100644
--- a/modules/orchestrator/orchestrator-client/src/main/java/org/apache/airavata/orchestrator/cpi/OrchestratorService.java
+++ b/modules/orchestrator/orchestrator-client/src/main/java/org/apache/airavata/orchestrator/cpi/OrchestratorService.java
@@ -50,7 +50,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-6-18")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-6-24")
 public class OrchestratorService {
 
   public interface Iface {
@@ -77,19 +77,19 @@ public class OrchestratorService {
 
     /**
      *  * In order to run single applications users should create an associating
-     *  * WorkflowNodeDetails and a TaskDetails for it and hand it over for execution
+     *  * process and hand it over for execution
      *  * along with a credential store token for authentication
      *  *
-     *  * @param taskId
+     *  * @param processId
      *  * @param airavataCredStoreToken
      *  * @return sucess/failure
      *  *
      * *
      * 
-     * @param taskId
+     * @param processId
      * @param airavataCredStoreToken
      */
-    public boolean launchTask(String taskId, String airavataCredStoreToken) throws org.apache.thrift.TException;
+    public boolean launchProcess(String processId, String airavataCredStoreToken) throws org.apache.thrift.TException;
 
     /**
      *  *
@@ -126,7 +126,7 @@ public class OrchestratorService {
 
     public void launchExperiment(String experimentId, String airavataCredStoreToken, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
-    public void launchTask(String taskId, String airavataCredStoreToken, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+    public void launchProcess(String processId, String airavataCredStoreToken, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
     public void validateExperiment(String experimentId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
 
@@ -200,28 +200,28 @@ public class OrchestratorService {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "launchExperiment failed: unknown result");
     }
 
-    public boolean launchTask(String taskId, String airavataCredStoreToken) throws org.apache.thrift.TException
+    public boolean launchProcess(String processId, String airavataCredStoreToken) throws org.apache.thrift.TException
     {
-      send_launchTask(taskId, airavataCredStoreToken);
-      return recv_launchTask();
+      send_launchProcess(processId, airavataCredStoreToken);
+      return recv_launchProcess();
     }
 
-    public void send_launchTask(String taskId, String airavataCredStoreToken) throws org.apache.thrift.TException
+    public void send_launchProcess(String processId, String airavataCredStoreToken) throws org.apache.thrift.TException
     {
-      launchTask_args args = new launchTask_args();
-      args.setTaskId(taskId);
+      launchProcess_args args = new launchProcess_args();
+      args.setProcessId(processId);
       args.setAiravataCredStoreToken(airavataCredStoreToken);
-      sendBase("launchTask", args);
+      sendBase("launchProcess", args);
     }
 
-    public boolean recv_launchTask() throws org.apache.thrift.TException
+    public boolean recv_launchProcess() throws org.apache.thrift.TException
     {
-      launchTask_result result = new launchTask_result();
-      receiveBase(result, "launchTask");
+      launchProcess_result result = new launchProcess_result();
+      receiveBase(result, "launchProcess");
       if (result.isSetSuccess()) {
         return result.success;
       }
-      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "launchTask failed: unknown result");
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "launchProcess failed: unknown result");
     }
 
     public boolean validateExperiment(String experimentId) throws org.apache.airavata.model.error.LaunchValidationException, org.apache.thrift.TException
@@ -356,26 +356,26 @@ public class OrchestratorService {
       }
     }
 
-    public void launchTask(String taskId, String airavataCredStoreToken, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+    public void launchProcess(String processId, String airavataCredStoreToken, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
       checkReady();
-      launchTask_call method_call = new launchTask_call(taskId, airavataCredStoreToken, resultHandler, this, ___protocolFactory, ___transport);
+      launchProcess_call method_call = new launchProcess_call(processId, airavataCredStoreToken, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
       ___manager.call(method_call);
     }
 
-    public static class launchTask_call extends org.apache.thrift.async.TAsyncMethodCall {
-      private String taskId;
+    public static class launchProcess_call extends org.apache.thrift.async.TAsyncMethodCall {
+      private String processId;
       private String airavataCredStoreToken;
-      public launchTask_call(String taskId, String airavataCredStoreToken, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      public launchProcess_call(String processId, String airavataCredStoreToken, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
-        this.taskId = taskId;
+        this.processId = processId;
         this.airavataCredStoreToken = airavataCredStoreToken;
       }
 
       public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
-        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("launchTask", org.apache.thrift.protocol.TMessageType.CALL, 0));
-        launchTask_args args = new launchTask_args();
-        args.setTaskId(taskId);
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("launchProcess", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        launchProcess_args args = new launchProcess_args();
+        args.setProcessId(processId);
         args.setAiravataCredStoreToken(airavataCredStoreToken);
         args.write(prot);
         prot.writeMessageEnd();
@@ -387,7 +387,7 @@ public class OrchestratorService {
         }
         org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
         org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
-        return (new Client(prot)).recv_launchTask();
+        return (new Client(prot)).recv_launchProcess();
       }
     }
 
@@ -473,7 +473,7 @@ public class OrchestratorService {
     private static <I extends Iface> Map<String,  org.apache.thrift.ProcessFunction<I, ? extends  org.apache.thrift.TBase>> getProcessMap(Map<String,  org.apache.thrift.ProcessFunction<I, ? extends  org.apache.thrift.TBase>> processMap) {
       processMap.put("getOrchestratorCPIVersion", new getOrchestratorCPIVersion());
       processMap.put("launchExperiment", new launchExperiment());
-      processMap.put("launchTask", new launchTask());
+      processMap.put("launchProcess", new launchProcess());
       processMap.put("validateExperiment", new validateExperiment());
       processMap.put("terminateExperiment", new terminateExperiment());
       return processMap;
@@ -520,22 +520,22 @@ public class OrchestratorService {
       }
     }
 
-    public static class launchTask<I extends Iface> extends org.apache.thrift.ProcessFunction<I, launchTask_args> {
-      public launchTask() {
-        super("launchTask");
+    public static class launchProcess<I extends Iface> extends org.apache.thrift.ProcessFunction<I, launchProcess_args> {
+      public launchProcess() {
+        super("launchProcess");
       }
 
-      public launchTask_args getEmptyArgsInstance() {
-        return new launchTask_args();
+      public launchProcess_args getEmptyArgsInstance() {
+        return new launchProcess_args();
       }
 
       protected boolean isOneway() {
         return false;
       }
 
-      public launchTask_result getResult(I iface, launchTask_args args) throws org.apache.thrift.TException {
-        launchTask_result result = new launchTask_result();
-        result.success = iface.launchTask(args.taskId, args.airavataCredStoreToken);
+      public launchProcess_result getResult(I iface, launchProcess_args args) throws org.apache.thrift.TException {
+        launchProcess_result result = new launchProcess_result();
+        result.success = iface.launchProcess(args.processId, args.airavataCredStoreToken);
         result.setSuccessIsSet(true);
         return result;
       }
@@ -602,7 +602,7 @@ public class OrchestratorService {
     private static <I extends AsyncIface> Map<String,  org.apache.thrift.AsyncProcessFunction<I, ? extends  org.apache.thrift.TBase,?>> getProcessMap(Map<String,  org.apache.thrift.AsyncProcessFunction<I, ? extends  org.apache.thrift.TBase, ?>> processMap) {
       processMap.put("getOrchestratorCPIVersion", new getOrchestratorCPIVersion());
       processMap.put("launchExperiment", new launchExperiment());
-      processMap.put("launchTask", new launchTask());
+      processMap.put("launchProcess", new launchProcess());
       processMap.put("validateExperiment", new validateExperiment());
       processMap.put("terminateExperiment", new terminateExperiment());
       return processMap;
@@ -711,20 +711,20 @@ public class OrchestratorService {
       }
     }
 
-    public static class launchTask<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, launchTask_args, Boolean> {
-      public launchTask() {
-        super("launchTask");
+    public static class launchProcess<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, launchProcess_args, Boolean> {
+      public launchProcess() {
+        super("launchProcess");
       }
 
-      public launchTask_args getEmptyArgsInstance() {
-        return new launchTask_args();
+      public launchProcess_args getEmptyArgsInstance() {
+        return new launchProcess_args();
       }
 
       public AsyncMethodCallback<Boolean> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
         return new AsyncMethodCallback<Boolean>() { 
           public void onComplete(Boolean o) {
-            launchTask_result result = new launchTask_result();
+            launchProcess_result result = new launchProcess_result();
             result.success = o;
             result.setSuccessIsSet(true);
             try {
@@ -738,7 +738,7 @@ public class OrchestratorService {
           public void onError(Exception e) {
             byte msgType = org.apache.thrift.protocol.TMessageType.REPLY;
             org.apache.thrift.TBase msg;
-            launchTask_result result = new launchTask_result();
+            launchProcess_result result = new launchProcess_result();
             {
               msgType = org.apache.thrift.protocol.TMessageType.EXCEPTION;
               msg = (org.apache.thrift.TBase)new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.INTERNAL_ERROR, e.getMessage());
@@ -758,8 +758,8 @@ public class OrchestratorService {
         return false;
       }
 
-      public void start(I iface, launchTask_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
-        iface.launchTask(args.taskId, args.airavataCredStoreToken,resultHandler);
+      public void start(I iface, launchProcess_args args, org.apache.thrift.async.AsyncMethodCallback<Boolean> resultHandler) throws TException {
+        iface.launchProcess(args.processId, args.airavataCredStoreToken,resultHandler);
       }
     }
 
@@ -2300,24 +2300,24 @@ public class OrchestratorService {
 
   }
 
-  public static class launchTask_args implements org.apache.thrift.TBase<launchTask_args, launchTask_args._Fields>, java.io.Serializable, Cloneable, Comparable<launchTask_args>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("launchTask_args");
+  public static class launchProcess_args implements org.apache.thrift.TBase<launchProcess_args, launchProcess_args._Fields>, java.io.Serializable, Cloneable, Comparable<launchProcess_args>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("launchProcess_args");
 
-    private static final org.apache.thrift.protocol.TField TASK_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("taskId", org.apache.thrift.protocol.TType.STRING, (short)1);
+    private static final org.apache.thrift.protocol.TField PROCESS_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("processId", org.apache.thrift.protocol.TType.STRING, (short)1);
     private static final org.apache.thrift.protocol.TField AIRAVATA_CRED_STORE_TOKEN_FIELD_DESC = new org.apache.thrift.protocol.TField("airavataCredStoreToken", org.apache.thrift.protocol.TType.STRING, (short)2);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
     static {
-      schemes.put(StandardScheme.class, new launchTask_argsStandardSchemeFactory());
-      schemes.put(TupleScheme.class, new launchTask_argsTupleSchemeFactory());
+      schemes.put(StandardScheme.class, new launchProcess_argsStandardSchemeFactory());
+      schemes.put(TupleScheme.class, new launchProcess_argsTupleSchemeFactory());
     }
 
-    public String taskId; // required
+    public String processId; // required
     public String airavataCredStoreToken; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-      TASK_ID((short)1, "taskId"),
+      PROCESS_ID((short)1, "processId"),
       AIRAVATA_CRED_STORE_TOKEN((short)2, "airavataCredStoreToken");
 
       private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
@@ -2333,8 +2333,8 @@ public class OrchestratorService {
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 1: // TASK_ID
-            return TASK_ID;
+          case 1: // PROCESS_ID
+            return PROCESS_ID;
           case 2: // AIRAVATA_CRED_STORE_TOKEN
             return AIRAVATA_CRED_STORE_TOKEN;
           default:
@@ -2380,69 +2380,69 @@ public class OrchestratorService {
     public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-      tmpMap.put(_Fields.TASK_ID, new org.apache.thrift.meta_data.FieldMetaData("taskId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+      tmpMap.put(_Fields.PROCESS_ID, new org.apache.thrift.meta_data.FieldMetaData("processId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       tmpMap.put(_Fields.AIRAVATA_CRED_STORE_TOKEN, new org.apache.thrift.meta_data.FieldMetaData("airavataCredStoreToken", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(launchTask_args.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(launchProcess_args.class, metaDataMap);
     }
 
-    public launchTask_args() {
+    public launchProcess_args() {
     }
 
-    public launchTask_args(
-      String taskId,
+    public launchProcess_args(
+      String processId,
       String airavataCredStoreToken)
     {
       this();
-      this.taskId = taskId;
+      this.processId = processId;
       this.airavataCredStoreToken = airavataCredStoreToken;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public launchTask_args(launchTask_args other) {
-      if (other.isSetTaskId()) {
-        this.taskId = other.taskId;
+    public launchProcess_args(launchProcess_args other) {
+      if (other.isSetProcessId()) {
+        this.processId = other.processId;
       }
       if (other.isSetAiravataCredStoreToken()) {
         this.airavataCredStoreToken = other.airavataCredStoreToken;
       }
     }
 
-    public launchTask_args deepCopy() {
-      return new launchTask_args(this);
+    public launchProcess_args deepCopy() {
+      return new launchProcess_args(this);
     }
 
     @Override
     public void clear() {
-      this.taskId = null;
+      this.processId = null;
       this.airavataCredStoreToken = null;
     }
 
-    public String getTaskId() {
-      return this.taskId;
+    public String getProcessId() {
+      return this.processId;
     }
 
-    public launchTask_args setTaskId(String taskId) {
-      this.taskId = taskId;
+    public launchProcess_args setProcessId(String processId) {
+      this.processId = processId;
       return this;
     }
 
-    public void unsetTaskId() {
-      this.taskId = null;
+    public void unsetProcessId() {
+      this.processId = null;
     }
 
-    /** Returns true if field taskId is set (has been assigned a value) and false otherwise */
-    public boolean isSetTaskId() {
-      return this.taskId != null;
+    /** Returns true if field processId is set (has been assigned a value) and false otherwise */
+    public boolean isSetProcessId() {
+      return this.processId != null;
     }
 
-    public void setTaskIdIsSet(boolean value) {
+    public void setProcessIdIsSet(boolean value) {
       if (!value) {
-        this.taskId = null;
+        this.processId = null;
       }
     }
 
@@ -2450,7 +2450,7 @@ public class OrchestratorService {
       return this.airavataCredStoreToken;
     }
 
-    public launchTask_args setAiravataCredStoreToken(String airavataCredStoreToken) {
+    public launchProcess_args setAiravataCredStoreToken(String airavataCredStoreToken) {
       this.airavataCredStoreToken = airavataCredStoreToken;
       return this;
     }
@@ -2472,11 +2472,11 @@ public class OrchestratorService {
 
     public void setFieldValue(_Fields field, Object value) {
       switch (field) {
-      case TASK_ID:
+      case PROCESS_ID:
         if (value == null) {
-          unsetTaskId();
+          unsetProcessId();
         } else {
-          setTaskId((String)value);
+          setProcessId((String)value);
         }
         break;
 
@@ -2493,8 +2493,8 @@ public class OrchestratorService {
 
     public Object getFieldValue(_Fields field) {
       switch (field) {
-      case TASK_ID:
-        return getTaskId();
+      case PROCESS_ID:
+        return getProcessId();
 
       case AIRAVATA_CRED_STORE_TOKEN:
         return getAiravataCredStoreToken();
@@ -2510,8 +2510,8 @@ public class OrchestratorService {
       }
 
       switch (field) {
-      case TASK_ID:
-        return isSetTaskId();
+      case PROCESS_ID:
+        return isSetProcessId();
       case AIRAVATA_CRED_STORE_TOKEN:
         return isSetAiravataCredStoreToken();
       }
@@ -2522,21 +2522,21 @@ public class OrchestratorService {
     public boolean equals(Object that) {
       if (that == null)
         return false;
-      if (that instanceof launchTask_args)
-        return this.equals((launchTask_args)that);
+      if (that instanceof launchProcess_args)
+        return this.equals((launchProcess_args)that);
       return false;
     }
 
-    public boolean equals(launchTask_args that) {
+    public boolean equals(launchProcess_args that) {
       if (that == null)
         return false;
 
-      boolean this_present_taskId = true && this.isSetTaskId();
-      boolean that_present_taskId = true && that.isSetTaskId();
-      if (this_present_taskId || that_present_taskId) {
-        if (!(this_present_taskId && that_present_taskId))
+      boolean this_present_processId = true && this.isSetProcessId();
+      boolean that_present_processId = true && that.isSetProcessId();
+      if (this_present_processId || that_present_processId) {
+        if (!(this_present_processId && that_present_processId))
           return false;
-        if (!this.taskId.equals(that.taskId))
+        if (!this.processId.equals(that.processId))
           return false;
       }
 
@@ -2556,10 +2556,10 @@ public class OrchestratorService {
     public int hashCode() {
       List<Object> list = new ArrayList<Object>();
 
-      boolean present_taskId = true && (isSetTaskId());
-      list.add(present_taskId);
-      if (present_taskId)
-        list.add(taskId);
+      boolean present_processId = true && (isSetProcessId());
+      list.add(present_processId);
+      if (present_processId)
+        list.add(processId);
 
       boolean present_airavataCredStoreToken = true && (isSetAiravataCredStoreToken());
       list.add(present_airavataCredStoreToken);
@@ -2570,19 +2570,19 @@ public class OrchestratorService {
     }
 
     @Override
-    public int compareTo(launchTask_args other) {
+    public int compareTo(launchProcess_args other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
 
       int lastComparison = 0;
 
-      lastComparison = Boolean.valueOf(isSetTaskId()).compareTo(other.isSetTaskId());
+      lastComparison = Boolean.valueOf(isSetProcessId()).compareTo(other.isSetProcessId());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetTaskId()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.taskId, other.taskId);
+      if (isSetProcessId()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.processId, other.processId);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -2614,14 +2614,14 @@ public class OrchestratorService {
 
     @Override
     public String toString() {
-      StringBuilder sb = new StringBuilder("launchTask_args(");
+      StringBuilder sb = new StringBuilder("launchProcess_args(");
       boolean first = true;
 
-      sb.append("taskId:");
-      if (this.taskId == null) {
+      sb.append("processId:");
+      if (this.processId == null) {
         sb.append("null");
       } else {
-        sb.append(this.taskId);
+        sb.append(this.processId);
       }
       first = false;
       if (!first) sb.append(", ");
@@ -2638,8 +2638,8 @@ public class OrchestratorService {
 
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
-      if (taskId == null) {
-        throw new org.apache.thrift.protocol.TProtocolException("Required field 'taskId' was not present! Struct: " + toString());
+      if (processId == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'processId' was not present! Struct: " + toString());
       }
       if (airavataCredStoreToken == null) {
         throw new org.apache.thrift.protocol.TProtocolException("Required field 'airavataCredStoreToken' was not present! Struct: " + toString());
@@ -2663,15 +2663,15 @@ public class OrchestratorService {
       }
     }
 
-    private static class launchTask_argsStandardSchemeFactory implements SchemeFactory {
-      public launchTask_argsStandardScheme getScheme() {
-        return new launchTask_argsStandardScheme();
+    private static class launchProcess_argsStandardSchemeFactory implements SchemeFactory {
+      public launchProcess_argsStandardScheme getScheme() {
+        return new launchProcess_argsStandardScheme();
       }
     }
 
-    private static class launchTask_argsStandardScheme extends StandardScheme<launchTask_args> {
+    private static class launchProcess_argsStandardScheme extends StandardScheme<launchProcess_args> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, launchTask_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, launchProcess_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -2681,10 +2681,10 @@ public class OrchestratorService {
             break;
           }
           switch (schemeField.id) {
-            case 1: // TASK_ID
+            case 1: // PROCESS_ID
               if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-                struct.taskId = iprot.readString();
-                struct.setTaskIdIsSet(true);
+                struct.processId = iprot.readString();
+                struct.setProcessIdIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
@@ -2708,13 +2708,13 @@ public class OrchestratorService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, launchTask_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, launchProcess_args struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
-        if (struct.taskId != null) {
-          oprot.writeFieldBegin(TASK_ID_FIELD_DESC);
-          oprot.writeString(struct.taskId);
+        if (struct.processId != null) {
+          oprot.writeFieldBegin(PROCESS_ID_FIELD_DESC);
+          oprot.writeString(struct.processId);
           oprot.writeFieldEnd();
         }
         if (struct.airavataCredStoreToken != null) {
@@ -2728,26 +2728,26 @@ public class OrchestratorService {
 
     }
 
-    private static class launchTask_argsTupleSchemeFactory implements SchemeFactory {
-      public launchTask_argsTupleScheme getScheme() {
-        return new launchTask_argsTupleScheme();
+    private static class launchProcess_argsTupleSchemeFactory implements SchemeFactory {
+      public launchProcess_argsTupleScheme getScheme() {
+        return new launchProcess_argsTupleScheme();
       }
     }
 
-    private static class launchTask_argsTupleScheme extends TupleScheme<launchTask_args> {
+    private static class launchProcess_argsTupleScheme extends TupleScheme<launchProcess_args> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, launchTask_args struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, launchProcess_args struct) throws org.apache.thrift.TException {
         TTupleProtocol oprot = (TTupleProtocol) prot;
-        oprot.writeString(struct.taskId);
+        oprot.writeString(struct.processId);
         oprot.writeString(struct.airavataCredStoreToken);
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, launchTask_args struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, launchProcess_args struct) throws org.apache.thrift.TException {
         TTupleProtocol iprot = (TTupleProtocol) prot;
-        struct.taskId = iprot.readString();
-        struct.setTaskIdIsSet(true);
+        struct.processId = iprot.readString();
+        struct.setProcessIdIsSet(true);
         struct.airavataCredStoreToken = iprot.readString();
         struct.setAiravataCredStoreTokenIsSet(true);
       }
@@ -2755,15 +2755,15 @@ public class OrchestratorService {
 
   }
 
-  public static class launchTask_result implements org.apache.thrift.TBase<launchTask_result, launchTask_result._Fields>, java.io.Serializable, Cloneable, Comparable<launchTask_result>   {
-    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("launchTask_result");
+  public static class launchProcess_result implements org.apache.thrift.TBase<launchProcess_result, launchProcess_result._Fields>, java.io.Serializable, Cloneable, Comparable<launchProcess_result>   {
+    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("launchProcess_result");
 
     private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.BOOL, (short)0);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
     static {
-      schemes.put(StandardScheme.class, new launchTask_resultStandardSchemeFactory());
-      schemes.put(TupleScheme.class, new launchTask_resultTupleSchemeFactory());
+      schemes.put(StandardScheme.class, new launchProcess_resultStandardSchemeFactory());
+      schemes.put(TupleScheme.class, new launchProcess_resultTupleSchemeFactory());
     }
 
     public boolean success; // required
@@ -2835,13 +2835,13 @@ public class OrchestratorService {
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
-      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(launchTask_result.class, metaDataMap);
+      org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(launchProcess_result.class, metaDataMap);
     }
 
-    public launchTask_result() {
+    public launchProcess_result() {
     }
 
-    public launchTask_result(
+    public launchProcess_result(
       boolean success)
     {
       this();
@@ -2852,13 +2852,13 @@ public class OrchestratorService {
     /**
      * Performs a deep copy on <i>other</i>.
      */
-    public launchTask_result(launchTask_result other) {
+    public launchProcess_result(launchProcess_result other) {
       __isset_bitfield = other.__isset_bitfield;
       this.success = other.success;
     }
 
-    public launchTask_result deepCopy() {
-      return new launchTask_result(this);
+    public launchProcess_result deepCopy() {
+      return new launchProcess_result(this);
     }
 
     @Override
@@ -2871,7 +2871,7 @@ public class OrchestratorService {
       return this.success;
     }
 
-    public launchTask_result setSuccess(boolean success) {
+    public launchProcess_result setSuccess(boolean success) {
       this.success = success;
       setSuccessIsSet(true);
       return this;
@@ -2929,12 +2929,12 @@ public class OrchestratorService {
     public boolean equals(Object that) {
       if (that == null)
         return false;
-      if (that instanceof launchTask_result)
-        return this.equals((launchTask_result)that);
+      if (that instanceof launchProcess_result)
+        return this.equals((launchProcess_result)that);
       return false;
     }
 
-    public boolean equals(launchTask_result that) {
+    public boolean equals(launchProcess_result that) {
       if (that == null)
         return false;
 
@@ -2963,7 +2963,7 @@ public class OrchestratorService {
     }
 
     @Override
-    public int compareTo(launchTask_result other) {
+    public int compareTo(launchProcess_result other) {
       if (!getClass().equals(other.getClass())) {
         return getClass().getName().compareTo(other.getClass().getName());
       }
@@ -2997,7 +2997,7 @@ public class OrchestratorService {
 
     @Override
     public String toString() {
-      StringBuilder sb = new StringBuilder("launchTask_result(");
+      StringBuilder sb = new StringBuilder("launchProcess_result(");
       boolean first = true;
 
       sb.append("success:");
@@ -3030,15 +3030,15 @@ public class OrchestratorService {
       }
     }
 
-    private static class launchTask_resultStandardSchemeFactory implements SchemeFactory {
-      public launchTask_resultStandardScheme getScheme() {
-        return new launchTask_resultStandardScheme();
+    private static class launchProcess_resultStandardSchemeFactory implements SchemeFactory {
+      public launchProcess_resultStandardScheme getScheme() {
+        return new launchProcess_resultStandardScheme();
       }
     }
 
-    private static class launchTask_resultStandardScheme extends StandardScheme<launchTask_result> {
+    private static class launchProcess_resultStandardScheme extends StandardScheme<launchProcess_result> {
 
-      public void read(org.apache.thrift.protocol.TProtocol iprot, launchTask_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol iprot, launchProcess_result struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TField schemeField;
         iprot.readStructBegin();
         while (true)
@@ -3067,7 +3067,7 @@ public class OrchestratorService {
         struct.validate();
       }
 
-      public void write(org.apache.thrift.protocol.TProtocol oprot, launchTask_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol oprot, launchProcess_result struct) throws org.apache.thrift.TException {
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
@@ -3082,16 +3082,16 @@ public class OrchestratorService {
 
     }
 
-    private static class launchTask_resultTupleSchemeFactory implements SchemeFactory {
-      public launchTask_resultTupleScheme getScheme() {
-        return new launchTask_resultTupleScheme();
+    private static class launchProcess_resultTupleSchemeFactory implements SchemeFactory {
+      public launchProcess_resultTupleScheme getScheme() {
+        return new launchProcess_resultTupleScheme();
       }
     }
 
-    private static class launchTask_resultTupleScheme extends TupleScheme<launchTask_result> {
+    private static class launchProcess_resultTupleScheme extends TupleScheme<launchProcess_result> {
 
       @Override
-      public void write(org.apache.thrift.protocol.TProtocol prot, launchTask_result struct) throws org.apache.thrift.TException {
+      public void write(org.apache.thrift.protocol.TProtocol prot, launchProcess_result struct) throws org.apache.thrift.TException {
         TTupleProtocol oprot = (TTupleProtocol) prot;
         BitSet optionals = new BitSet();
         if (struct.isSetSuccess()) {
@@ -3104,7 +3104,7 @@ public class OrchestratorService {
       }
 
       @Override
-      public void read(org.apache.thrift.protocol.TProtocol prot, launchTask_result struct) throws org.apache.thrift.TException {
+      public void read(org.apache.thrift.protocol.TProtocol prot, launchProcess_result struct) throws org.apache.thrift.TException {
         TTupleProtocol iprot = (TTupleProtocol) prot;
         BitSet incoming = iprot.readBitSet(1);
         if (incoming.get(0)) {

http://git-wip-us.apache.org/repos/asf/airavata/blob/636a733b/modules/orchestrator/orchestrator-client/src/main/java/org/apache/airavata/orchestrator/cpi/orchestrator_cpi_serviceConstants.java
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-client/src/main/java/org/apache/airavata/orchestrator/cpi/orchestrator_cpi_serviceConstants.java b/modules/orchestrator/orchestrator-client/src/main/java/org/apache/airavata/orchestrator/cpi/orchestrator_cpi_serviceConstants.java
index 691c696..5bf9119 100644
--- a/modules/orchestrator/orchestrator-client/src/main/java/org/apache/airavata/orchestrator/cpi/orchestrator_cpi_serviceConstants.java
+++ b/modules/orchestrator/orchestrator-client/src/main/java/org/apache/airavata/orchestrator/cpi/orchestrator_cpi_serviceConstants.java
@@ -52,6 +52,6 @@ import org.slf4j.LoggerFactory;
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
 public class orchestrator_cpi_serviceConstants {
 
-  public static final String ORCHESTRATOR_CPI_VERSION = "0.13.0";
+  public static final String ORCHESTRATOR_CPI_VERSION = "0.16.0";
 
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/636a733b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/validator/JobMetadataValidator.java
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/validator/JobMetadataValidator.java b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/validator/JobMetadataValidator.java
index a897a19..fba493c 100644
--- a/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/validator/JobMetadataValidator.java
+++ b/modules/orchestrator/orchestrator-core/src/main/java/org/apache/airavata/orchestrator/core/validator/JobMetadataValidator.java
@@ -39,8 +39,7 @@ public interface JobMetadataValidator {
      * thrown to the client side
      * @param experiment
      * @param processModel
-     * @param taskModel
      * @return
      */
-    ValidationResults validate(ExperimentModel experiment, ProcessModel processModel, TaskModel taskModel);
+    ValidationResults validate(ExperimentModel experiment, ProcessModel processModel);
 }