You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sc...@apache.org on 2015/06/22 14:01:39 UTC
[1/9] airavata git commit: fixing add methods in experiment registry
class
Repository: airavata
Updated Branches:
refs/heads/master cb5d3aef0 -> f9032d4dd
fixing add methods in experiment registry class
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/7ca8104a
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/7ca8104a
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/7ca8104a
Branch: refs/heads/master
Commit: 7ca8104a11013e24a83ccc976980cd40394916b4
Parents: cb5d3ae
Author: Supun Nakandala <sc...@apache.org>
Authored: Sun Jun 21 18:19:36 2015 +0530
Committer: Supun Nakandala <sc...@apache.org>
Committed: Sun Jun 21 18:19:36 2015 +0530
----------------------------------------------------------------------
.../catalog/impl/ExperimentCatalogImpl.java | 30 +-
.../catalog/impl/ExperimentRegistry.java | 880 ++++++++++---------
.../catalog/resources/ExperimentResource.java | 5 +
3 files changed, 497 insertions(+), 418 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/7ca8104a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
index e52e56a..33b1f15 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
@@ -23,13 +23,17 @@ package org.apache.airavata.registry.core.experiment.catalog.impl;
import org.apache.airavata.common.exception.ApplicationSettingsException;
import org.apache.airavata.common.utils.ServerSettings;
+import org.apache.airavata.model.application.io.InputDataObjectType;
import org.apache.airavata.model.application.io.OutputDataObjectType;
import org.apache.airavata.model.commons.ErrorModel;
import org.apache.airavata.model.experiment.ExperimentModel;
import org.apache.airavata.model.experiment.ExperimentSummaryModel;
import org.apache.airavata.model.experiment.UserConfigurationDataModel;
import org.apache.airavata.model.process.ProcessModel;
+import org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel;
import org.apache.airavata.model.status.ExperimentStatus;
+import org.apache.airavata.model.status.ProcessStatus;
+import org.apache.airavata.model.status.TaskStatus;
import org.apache.airavata.model.task.TaskModel;
import org.apache.airavata.model.workspace.Gateway;
import org.apache.airavata.model.workspace.Project;
@@ -112,7 +116,7 @@ public class ExperimentCatalogImpl implements ExperimentCatalog {
case PROJECT:
return projectRegistry.addProject((Project)newObjectToAdd, gatewayId);
case EXPERIMENT:
- return experimentRegistry.addExperiment((ExperimentModel) newObjectToAdd, gatewayId);
+ return experimentRegistry.addExperiment((ExperimentModel) newObjectToAdd);
case GATEWAY:
return gatewayRegistry.addGateway((Gateway)newObjectToAdd);
default:
@@ -143,24 +147,32 @@ public class ExperimentCatalogImpl implements ExperimentCatalog {
switch (dataType) {
case USER_CONFIGURATION_DATA:
return experimentRegistry.addUserConfigData((UserConfigurationDataModel) newObjectToAdd, (String) dependentIdentifier);
+ case EXPERIMENT_INPUT:
+ return experimentRegistry.addExpInputs((List<InputDataObjectType>) newObjectToAdd, (String) dependentIdentifier);
case EXPERIMENT_OUTPUT:
return experimentRegistry.addExpOutputs((List<OutputDataObjectType>) newObjectToAdd, (String) dependentIdentifier);
case EXPERIMENT_STATUS:
- return experimentRegistry.updateExperimentStatus((ExperimentStatus) newObjectToAdd, (String) dependentIdentifier);
+ return experimentRegistry.addExperimentStatus((ExperimentStatus) newObjectToAdd, (String) dependentIdentifier);
case EXPERIMENT_ERROR:
- return experimentRegistry.updateExperimentError((ErrorModel) newObjectToAdd, (String) dependentIdentifier);
+ return experimentRegistry.addExperimentError((ErrorModel) newObjectToAdd, (String) dependentIdentifier);
+ case PROCESS:
+ return experimentRegistry.addProcess((ProcessModel) newObjectToAdd, (String) dependentIdentifier);
case PROCESS_RESOURCE_SCHEDULE:
- return experimentRegistry.addUserConfigData((UserConfigurationDataModel) newObjectToAdd, (String) dependentIdentifier);
+ return experimentRegistry.addProcessResourceSchedule((ComputationalResourceSchedulingModel) newObjectToAdd, (String) dependentIdentifier);
+ case PROCESS_INPUT:
+ return experimentRegistry.addProcessInputs((List<InputDataObjectType>) newObjectToAdd, (String) dependentIdentifier);
case PROCESS_OUTPUT:
- return experimentRegistry.addExpOutputs((List<OutputDataObjectType>) newObjectToAdd, (String) dependentIdentifier);
+ return experimentRegistry.addProcessOutputs((List<OutputDataObjectType>) newObjectToAdd, (String) dependentIdentifier);
case PROCESS_STATUS:
- return experimentRegistry.updateExperimentStatus((ExperimentStatus) newObjectToAdd, (String) dependentIdentifier);
+ return experimentRegistry.addProcessStatus((ProcessStatus) newObjectToAdd, (String) dependentIdentifier);
case PROCESS_ERROR:
- return experimentRegistry.updateExperimentError((ErrorModel) newObjectToAdd, (String) dependentIdentifier);
+ return experimentRegistry.addProcessError((ErrorModel) newObjectToAdd, (String) dependentIdentifier);
+ case TASK:
+ return experimentRegistry.addTask((TaskModel) newObjectToAdd, (String) dependentIdentifier);
case TASK_STATUS:
- return experimentRegistry.updateExperimentStatus((ExperimentStatus) newObjectToAdd, (String) dependentIdentifier);
+ return experimentRegistry.addTaskStatus((TaskStatus) newObjectToAdd, (String) dependentIdentifier);
case TASK_ERROR:
- return experimentRegistry.updateExperimentError((ErrorModel) newObjectToAdd, (String) dependentIdentifier);
+ return experimentRegistry.addTaskError((ErrorModel) newObjectToAdd, (String) dependentIdentifier);
default:
logger.error("Unsupported dependent data type...", new UnsupportedOperationException());
throw new UnsupportedOperationException();
http://git-wip-us.apache.org/repos/asf/airavata/blob/7ca8104a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
index 7c31498..09b06e7 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
@@ -21,6 +21,7 @@
package org.apache.airavata.registry.core.experiment.catalog.impl;
+import org.apache.airavata.common.utils.AiravataUtils;
import org.apache.airavata.model.application.io.InputDataObjectType;
import org.apache.airavata.model.application.io.OutputDataObjectType;
import org.apache.airavata.model.commons.ErrorModel;
@@ -31,10 +32,7 @@ import org.apache.airavata.model.experiment.UserConfigurationDataModel;
import org.apache.airavata.model.job.JobModel;
import org.apache.airavata.model.process.ProcessModel;
import org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel;
-import org.apache.airavata.model.status.ExperimentState;
-import org.apache.airavata.model.status.ExperimentStatus;
-import org.apache.airavata.model.status.JobStatus;
-import org.apache.airavata.model.status.TaskStatus;
+import org.apache.airavata.model.status.*;
import org.apache.airavata.model.task.TaskModel;
import org.apache.airavata.registry.core.experiment.catalog.ExpCatResourceUtils;
import org.apache.airavata.registry.core.experiment.catalog.ExperimentCatResource;
@@ -46,6 +44,7 @@ import org.apache.airavata.registry.cpi.ExperimentCatalogModelType;
import org.apache.airavata.registry.cpi.RegistryException;
import org.apache.airavata.registry.cpi.ResultOrderType;
import org.apache.airavata.registry.cpi.utils.Constants;
+import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -70,260 +69,405 @@ public class ExperimentRegistry {
}
- public String addExperiment(ExperimentModel experiment, String gatewayId) throws RegistryException {
-// String experimentID;
-// try {
-// if (!ExpCatResourceUtils.isUserExist(experiment.getUserName())) {
-// ExpCatResourceUtils.addUser(experiment.getUserName(), null);
-// }
-//
-// experimentID = getExperimentID(experiment.getExperimentName());
-// experiment.setExperimentId(experimentID);
-// ExperimentResource experimentResource = new ExperimentResource();
-// experimentResource.setExpID(experimentID);
-// experimentResource.setExpName(experiment.getExperimentName());
-// experimentResource.setExecutionUser(experiment.getUserName());
-// experimentResource.setGatewayId(gatewayId);
-// experimentResource.setGatewayExecutionId(experiment.getGatewayExecutionId());
-// experimentResource.setEnableEmailNotifications(experiment.isEnableEmailNotification());
-// if (!workerResource.isProjectExists(experiment.getProjectId())) {
-// logger.error("Project does not exist in the system..");
-// throw new Exception("Project does not exist in the system, Please create the project first...");
-// }
-// experimentResource.setProjectId(experiment.getProjectId());
-// experimentResource.setCreationTime(AiravataUtils.getTime(experiment.getCreationTime()));
-// experimentResource.setDescription(experiment.getDescription());
-// experimentResource.setApplicationId(experiment.getExecutionId());
-// experimentResource.save();
-//
-// List<String> emailAddresses = experiment.getEmailAddresses();
-// if (emailAddresses != null && !emailAddresses.isEmpty()){
-// for (String email : emailAddresses){
-// NotificationEmailResource emailResource = new NotificationEmailResource();
-// emailResource.setExperimentId(experimentID);
-// emailResource.setEmailAddress(email);
-// emailResource.save();
-// }
-// }
-//
-// List<InputDataObjectType> experimentInputs = experiment.getExperimentInputs();
-// if (experimentInputs != null) {
-// addExpInputs(experimentInputs, experimentResource);
-// }
-//
-// UserConfigurationDataModel userConfigurationData = experiment.getUserConfigurationData();
-// if (userConfigurationData != null) {
-// addUserConfigData(userConfigurationData, experimentID);
-// }
-//
-// List<OutputDataObjectType> experimentOutputs = experiment.getExperimentOutputs();
-// if (experimentOutputs != null && !experimentOutputs.isEmpty()) {
-// //TODO: short change.
-//// for (DataObjectType output : experimentOutputs){
-//// output.setValue("");
-//// }
-// addExpOutputs(experimentOutputs, experimentID);
-// }
-//
-//// ExperimentStatus experimentStatus = experiment.getExperimentStatus();
-//// if (experimentStatus != null){
-//// updateExperimentStatus(experimentStatus, experimentID);
-//// }else {
-// ExperimentStatus experimentStatus = new ExperimentStatus();
-// experimentStatus.setState(ExperimentState.CREATED);
-// updateExperimentStatus(experimentStatus, experimentID);
-//// }
-//
-//// List<WorkflowNodeDetails> workflowNodeDetailsList = experiment.getWorkflowNodeDetailsList();
-//// if (workflowNodeDetailsList != null && !workflowNodeDetailsList.isEmpty()) {
-//// for (WorkflowNodeDetails wf : workflowNodeDetailsList) {
-//// addWorkflowNodeDetails(wf, experimentID);
-//// }
-//// }
-// List<ErrorModel> errors = experiment.getErrors();
-// if (errors != null && !errors.isEmpty()) {
-// for (ErrorModel errror : errors) {
-// addErrorDetails(errror, experimentID);
-// }
-// }
-// } catch (Exception e) {
-// logger.error("Error while saving experiment to registry", e);
-// throw new RegistryException(e);
-// }
-// return experimentID;
- return null;
+ //CPI Add Methods
+
+ public String addExperiment(ExperimentModel experiment) throws RegistryException {
+ String experimentId;
+ try {
+ if (!ExpCatResourceUtils.isUserExist(experiment.getUserName())) {
+ ExpCatResourceUtils.addUser(experiment.getUserName(), null);
+ }
+ if (!workerResource.isProjectExists(experiment.getProjectId())) {
+ logger.error("Project does not exist in the system..");
+ throw new Exception("Project does not exist in the system, Please create the project first...");
+ }
+ experimentId = getExperimentID(experiment.getExperimentName());
+ experiment.setExperimentId(experimentId);
+ ExperimentResource experimentResource = new ExperimentResource();
+ experimentResource.setExperimentId(experimentId);
+ experimentResource.setProjectId(experiment.getProjectId());
+ experimentResource.setExperimentType(experiment.getExperimentType().toString());
+ experimentResource.setUserName(experiment.getUserName());
+ experimentResource.setExperimentName(experiment.getExperimentName());
+ experimentResource.setCreationTime(AiravataUtils.getTime(experiment.getCreationTime()));
+ experimentResource.setDescription(experiment.getDescription());
+ experimentResource.setExecutionId(experiment.getExecutionId());
+ experimentResource.setGatewayExecutionId(experiment.getGatewayExecutionId());
+ if(experiment.isEnableEmailNotification()){
+ experimentResource.setEnableEmailNotification(true);
+ if(experiment.getEmailAddresses() != null){
+ experimentResource.setEmailAddresses(StringUtils.join(experiment.getEmailAddresses(), ","));
+ }
+ }else{
+ experimentResource.setEnableEmailNotification(false);
+ }
+ experimentResource.save();
+ if(experiment.getUserConfigurationData() != null) {
+ addUserConfigData(experiment.getUserConfigurationData(), experimentId);
+ }
+ if(experiment.getExperimentInputs() != null && experiment.getExperimentInputs().size() > 0) {
+ addExpInputs(experiment.getExperimentInputs(), experimentId);
+ }
+ if(experiment.getExperimentOutputs() != null && experiment.getExperimentOutputs().size() > 0) {
+ addExpOutputs(experiment.getExperimentOutputs(), experimentId);
+ }
+
+ ExperimentStatus experimentStatus = new ExperimentStatus();
+ experimentStatus.setState(ExperimentState.CREATED);
+ addExperimentStatus(experimentStatus, experimentId);
+
+ List<ErrorModel> errors = experiment.getErrors();
+ if (errors != null && !errors.isEmpty()) {
+ for (ErrorModel errror : errors) {
+ addExperimentError(errror, experimentId);
+ }
+ }
+ } catch (Exception e) {
+ logger.error("Error while saving experiment to registry", e);
+ throw new RegistryException(e);
+ }
+ return experimentId;
}
- public String addUserConfigData(UserConfigurationDataModel configurationData, String experimentID) throws RegistryException {
-// try {
-// ExperimentResource experiment = gatewayResource.getExperiment(experimentID);
-// ConfigDataResource configData = (ConfigDataResource) experiment.create(ResourceType.CONFIG_DATA);
-// configData.setExperimentId(experimentID);
-// configData.setAiravataAutoSchedule(configurationData.isAiravataAutoSchedule());
-// configData.setOverrideManualParams(configurationData.isOverrideManualScheduledParams());
-// configData.setShareExp(configurationData.isShareExperimentPublicly());
-// configData.setUserDn(configurationData.getUserDN());
-// configData.setGenerateCert(configurationData.isGenerateCert());
-// configData.save();
-// ComputationalResourceSchedulingModel resourceScheduling = configurationData.getComputationalResourceScheduling();
-// if (resourceScheduling != null) {
-// addComputationScheduling(resourceScheduling, experiment);
-// }
-//// AdvancedInputDataHandling inputDataHandling = configurationData.getAdvanceInputDataHandling();
-//// if (inputDataHandling != null) {
-//// addInputDataHandling(inputDataHandling, experiment);
-//// }
-////
-//// AdvancedOutputDataHandling outputDataHandling = configurationData.getAdvanceOutputDataHandling();
-//// if (outputDataHandling != null) {
-//// addOutputDataHandling(outputDataHandling, experiment);
-//// }
-////
-//// QualityOfServiceParams qosParams = configurationData.getQosParams();
-//// if (qosParams != null) {
-//// addQosParams(qosParams, experiment);
-//// }
-// } catch (Exception e) {
-// logger.error("Unable to save user config data", e);
-// throw new RegistryException(e);
-// }
-// return experimentID;
- return null;
+ public String addUserConfigData(UserConfigurationDataModel configurationData, String experimentId) throws RegistryException {
+ try {
+ UserConfigurationDataResource configDataResource = new UserConfigurationDataResource();
+ configDataResource.setExperimentId(experimentId);
+ configDataResource.setAiravataAutoSchedule(configurationData.isAiravataAutoSchedule());
+ configDataResource.setOverrideManualScheduledParams(configurationData.isOverrideManualScheduledParams());
+ configDataResource.setShareExperimentPublically(configurationData.isShareExperimentPublicly());
+ configDataResource.setThrottleResources(configurationData.isThrottleResources());
+ configDataResource.setUserDn(configurationData.getUserDN());
+ configDataResource.setGenerateCert(configurationData.isGenerateCert());
+ configDataResource.setResourceHostId(configurationData.getComputationalResourceScheduling().getResourceHostId());
+ configDataResource.setTotalCpuCount(configurationData.getComputationalResourceScheduling().getTotalCPUCount());
+ configDataResource.setNodeCount(configurationData.getComputationalResourceScheduling().getNodeCount());
+ configDataResource.setNumberOfThreads(configurationData.getComputationalResourceScheduling().getNumberOfThreads());
+ configDataResource.setQueueName(configurationData.getComputationalResourceScheduling().getQueueName());
+ configDataResource.setWallTimeLimit(configurationData.getComputationalResourceScheduling().getWallTimeLimit());
+ configDataResource.setTotalPhysicalMemory(configurationData.getComputationalResourceScheduling().getTotalPhysicalMemory());
+ configDataResource.save();
+ } catch (Exception e) {
+ logger.error("Unable to save user config data", e);
+ throw new RegistryException(e);
+ }
+ return experimentId;
}
-// public void addQosParams(QualityOfServiceParams qosParams, ExperimentCatResource resource) throws RegistryException {
-// try {
-// QosParamResource qosr = new QosParamResource();
-// if (resource instanceof ExperimentResource) {
-// ExperimentResource experiment = (ExperimentResource) resource;
-// qosr.setProcessId(experiment.getExpID());
-// }
-// if (resource instanceof TaskDetailResource) {
-// TaskDetailResource taskDetailResource = (TaskDetailResource) resource;
-// qosr.setTaskId(taskDetailResource.getTaskId());
-// String nodeId = taskDetailResource.getNodeId();
-// ExperimentResource experimentResource = new ExperimentResource();
-// WorkflowNodeDetailResource workflowNode = experimentResource.getWorkflowNode(nodeId);
-// qosr.setProcessId(workflowNode.getProcessId());
-// }
-// qosr.setStartExecutionAt(qosParams.getStartExecutionAt());
-// qosr.setExecuteBefore(qosParams.getExecuteBefore());
-// qosr.setNoOfRetries(qosParams.getNumberofRetries());
-// qosr.save();
-// } catch (Exception e) {
-// logger.error("Unable to save QOS params", e);
-// throw new RegistryException(e);
-// }
-//
-// }
+ public String addExpInputs(List<InputDataObjectType> exInputs, String experimentId) throws RegistryException {
+ try {
+ for (InputDataObjectType input : exInputs) {
+ ExperimentInputResource resource = new ExperimentInputResource();
+ resource.setExperimentId(experimentId);
+ resource.setInputName(input.getName());
+ resource.setInputValue(input.getValue());
+ if (input.getType() != null) {
+ resource.setDataType(input.getType().toString());
+ }
+ resource.setMetadata(input.getMetaData());
+ resource.setApplicationArgument(input.getApplicationArgument());
+ resource.setInputOrder(input.getInputOrder());
+ resource.setIsRequired(input.isIsRequired());
+ resource.setIsRequired(input.isRequiredToAddedToCommandLine());
+ resource.save();
+ }
+ } catch (Exception e) {
+ logger.error("Unable to save experiment inputs", e);
+ throw new RegistryException(e);
+ }
+ return experimentId;
+ }
-// public void addOutputDataHandling(AdvancedOutputDataHandling outputDataHandling, ExperimentCatResource resource) throws RegistryException {
-// AdvancedOutputDataHandlingResource adodh = new AdvancedOutputDataHandlingResource();
-// try {
-// if (resource instanceof ExperimentResource) {
-// ExperimentResource experiment = (ExperimentResource) resource;
-// adodh.setProcessId(experiment.getExpID());
-// }
-// if (resource instanceof TaskDetailResource) {
-// TaskDetailResource taskDetailResource = (TaskDetailResource) resource;
-// String nodeId = taskDetailResource.getNodeId();
-// ExperimentResource experimentResource = new ExperimentResource();
-// WorkflowNodeDetailResource workflowNode = experimentResource.getWorkflowNode(nodeId);
-// adodh.setProcessId(workflowNode.getProcessId());
-// adodh.setTaskId(taskDetailResource.getTaskId());
-// }
-// adodh.setOutputDataDir(outputDataHandling.getOutputDataDir());
-// adodh.setDataRegUrl(outputDataHandling.getDataRegistryURL());
-// adodh.setPersistOutputData(outputDataHandling.isPersistOutputData());
-// adodh.save();
-// } catch (Exception e) {
-// logger.error("Unable to save output data handling data", e);
-// throw new RegistryException(e);
-// }
-//
-// }
+ public String addExpOutputs(List<OutputDataObjectType> exOutput, String expId) throws RegistryException {
+ try {
+ for (OutputDataObjectType output : exOutput) {
+ ExperimentOutputResource resource = new ExperimentOutputResource();
+ resource.setExperimentId(expId);
+ resource.setOutputName(output.getName());
+ resource.setOutputValue(output.getValue());
+ if (output.getType() != null) {
+ resource.setDataType(output.getType().toString());
+ }
+ resource.setApplicationArgument(output.getApplicationArgument());
+ resource.setIsRequired(output.isIsRequired());
+ resource.setRequiredToAddedToCmd(output.isRequiredToAddedToCommandLine());
+ resource.setDataMovement(output.isDataMovement());
+ resource.setLocation(output.getLocation());
+ resource.setSearchQuery(output.getSearchQuery());
+ resource.save();
+ }
+ } catch (Exception e) {
+ logger.error("Error while adding experiment outputs...", e);
+ throw new RegistryException(e);
+ }
+ return expId;
+ }
-// public void addInputDataHandling(AdvancedInputDataHandling inputDataHandling, ExperimentCatResource resource) throws RegistryException {
-// AdvanceInputDataHandlingResource adidh = new AdvanceInputDataHandlingResource();
-// try {
-// if (resource instanceof ExperimentResource) {
-// ExperimentResource experiment = (ExperimentResource) resource;
-// adidh.setProcessId(experiment.getExpID());
-// }
-// if (resource instanceof TaskDetailResource) {
-// TaskDetailResource taskDetailResource = (TaskDetailResource) resource;
-// String nodeId = taskDetailResource.getNodeId();
-// ExperimentResource experimentResource = new ExperimentResource();
-// WorkflowNodeDetailResource workflowNode = experimentResource.getWorkflowNode(nodeId);
-// adidh.setProcessId(workflowNode.getProcessId());
-// adidh.setTaskId(taskDetailResource.getTaskId());
-// }
-// adidh.setWorkingDir(inputDataHandling.getUniqueWorkingDirectory());
-// adidh.setWorkingDirParent(inputDataHandling.getParentWorkingDirectory());
-// adidh.setStageInputFiles(inputDataHandling.isSetStageInputFilesToWorkingDir());
-// adidh.setCleanAfterJob(inputDataHandling.isCleanUpWorkingDirAfterJob());
-// adidh.save();
-// } catch (Exception e) {
-// logger.error("Unable to save input data handling data", e);
-// throw new RegistryException(e);
-// }
-//
-// }
+ public String addExperimentStatus(ExperimentStatus experimentStatus, String expId) throws RegistryException {
+ try {
+ ExperimentResource experiment = new ExperimentResource();
+ experiment.setExperimentId(expId);
+ ExperimentStatusResource status = experiment.getExperimentStatus();
+ if (status == null) {
+ status = (ExperimentStatusResource) experiment.create(ResourceType.EXPERIMENT_STATUS);
+ }
+ if (isValidStatusTransition(ExperimentState.valueOf(status.getState()), experimentStatus.getState())) {
+ status.setStatusId(getStatusID(expId));
+ status.setExperimentId(expId);
+ status.setTimeOfStateChange(AiravataUtils.getTime(experimentStatus.getTimeOfStateChange()));
+ status.setState(experimentStatus.getState().toString());
+ status.setReason(experimentStatus.getReason());
+ status.save();
+ logger.debug(expId, "Added experiment {} status to {}.", expId, experimentStatus.toString());
+ }
+ } catch (Exception e) {
+ logger.error(expId, "Error while adding experiment status...", e);
+ throw new RegistryException(e);
+ }
+ return expId;
+ }
- public void addComputationScheduling(ComputationalResourceSchedulingModel resourceScheduling, ExperimentCatResource resource) throws RegistryException {
-// ComputationSchedulingResource cmsr = new ComputationSchedulingResource();
-// try {
-// if (resource instanceof ExperimentResource) {
-// ExperimentResource experiment = (ExperimentResource) resource;
-// cmsr.setExperimentId(experiment.getExpID());
-// }
-// if (resource instanceof TaskDetailResource) {
-// TaskDetailResource taskDetailResource = (TaskDetailResource) resource;
-// String nodeId = taskDetailResource.getNodeId();
-// ExperimentResource experimentResource = new ExperimentResource();
-// WorkflowNodeDetailResource workflowNode = experimentResource.getWorkflowNode(nodeId);
-// cmsr.setExperimentId(workflowNode.getExperimentId());
-// cmsr.setTaskId(taskDetailResource.getTaskId());
-// }
-// cmsr.setResourceHostId(resourceScheduling.getResourceHostId());
-// cmsr.setCpuCount(resourceScheduling.getTotalCPUCount());
-// cmsr.setNodeCount(resourceScheduling.getNodeCount());
-// cmsr.setNumberOfThreads(resourceScheduling.getNumberOfThreads());
-// cmsr.setQueueName(resourceScheduling.getQueueName());
-// cmsr.setWalltimeLimit(resourceScheduling.getWallTimeLimit());
-// cmsr.setPhysicalMemory(resourceScheduling.getTotalPhysicalMemory());
-// cmsr.setChessisName(resourceScheduling.getChessisNumber());
-// cmsr.save();
-// } catch (Exception e) {
-// logger.error("Unable to save computational scheduling data", e);
-// throw new RegistryException(e);
-// }
+ public String addExperimentError(ErrorModel experimentError, String expId) throws RegistryException {
+ try {
+ ExperimentErrorResource error = new ExperimentErrorResource();
+ error.setErrorId(getErrorID(expId));
+ error.setExperimentId(expId);
+ error.setCreationTime(AiravataUtils.getTime(experimentError.getCreationTime()));
+ error.setActualErrorMessage(experimentError.getActualErrorMessage());
+ error.setUserFriendlyMessage(experimentError.getUserFriendlyMessage());
+ error.setTransientOrPersistent(experimentError.isTransientOrPersistent());
+ if(experimentError.getRootCauseErrorIdList() != null) {
+ error.setRootCauseErrorIdList(StringUtils.join(experimentError.getRootCauseErrorIdList(), ","));
+ }
+ error.save();
+ } catch (Exception e) {
+ logger.error(expId, "Error while updating experiment status...", e);
+ throw new RegistryException(e);
+ }
+ return expId;
+ }
+ public String addProcess(ProcessModel process, String expId) throws RegistryException {
+ try {
+ ProcessResource processResource = new ProcessResource();
+ processResource.setProcessId(getProcessID(expId));
+ processResource.setExperimentId(expId);
+ processResource.setCreationTime(AiravataUtils.getTime(process.getCreationTime()));
+ processResource.setLastUpdateTime(AiravataUtils.getTime(process.getLastUpdateTime()));
+ processResource.setProcessDetail(process.getProcessDetail());
+ processResource.setApplicationInterfaceId(process.getApplicationInterfaceId());
+ processResource.setTaskDag(process.getTaskDag());
+ processResource.save();
+
+ if(process.getResourceSchedule() != null) {
+ addProcessResourceSchedule(process.getResourceSchedule(), process.getProcessId());
+ }
+ if(process.getProcessInputs() != null && process.getProcessInputs().size() > 0) {
+ addProcessInputs(process.getProcessInputs(), process.getProcessId());
+ }
+ if(process.getProcessOutputs() != null && process.getProcessOutputs().size() > 0) {
+ addProcessOutputs(process.getProcessOutputs(), process.getProcessId());
+ }
+
+ ProcessStatus processStatus = new ProcessStatus();
+ processStatus.setState(ProcessState.CREATED);
+ addProcessStatus(processStatus, process.getProcessId());
+
+ if(process.getProcessError() != null) {
+ addProcessError(process.getProcessError(), process.getProcessId());
+ }
+ } catch (Exception e) {
+ logger.error(expId, "Error while adding process...", e);
+ throw new RegistryException(e);
+ }
+ return expId;
}
- public void addExpInputs(List<InputDataObjectType> exInputs, ExperimentResource experimentResource) throws RegistryException {
-// try {
-// for (InputDataObjectType input : exInputs) {
-// ExperimentInputResource resource = (ExperimentInputResource) experimentResource.create(ResourceType.EXPERIMENT_INPUT);
-// resource.setExperimentId(experimentResource.getExpID());
-// resource.setExperimentKey(input.getName());
-// resource.setValue(input.getValue());
-// if (input.getType() != null) {
-// resource.setDataType(input.getType().toString());
-// }
-// resource.setMetadata(input.getMetaData());
-// resource.setAppArgument(input.getApplicationArgument());
-// resource.setInputOrder(input.getInputOrder());
-// resource.setRequired(input.isIsRequired());
-// resource.setRequiredToCMD(input.isRequiredToAddedToCommandLine());
-// resource.save();
-// }
-// } catch (Exception e) {
-// logger.error("Unable to save experiment inputs", e);
-// throw new RegistryException(e);
-// }
+
+ public String addProcessResourceSchedule(ComputationalResourceSchedulingModel resourceSchedule, String processID) throws RegistryException {
+ try {
+ ProcessResourceScheduleResource processResourceSchedule = new ProcessResourceScheduleResource();
+ processResourceSchedule.setProcessId(processID);
+ processResourceSchedule.setResourceHostId(resourceSchedule.getResourceHostId());
+ processResourceSchedule.setTotalCpuCount(resourceSchedule.getTotalCPUCount());
+ processResourceSchedule.setNodeCount(resourceSchedule.getNodeCount());
+ processResourceSchedule.setNumberOfThreads(resourceSchedule.getNumberOfThreads());
+ processResourceSchedule.setQueueName(resourceSchedule.getQueueName());
+ processResourceSchedule.setWallTimeLimit(resourceSchedule.getWallTimeLimit());
+ processResourceSchedule.setTotalPhysicalMemory(resourceSchedule.getTotalPhysicalMemory());
+ processResourceSchedule.save();
+ } catch (Exception e) {
+ logger.error("Unable to save user config data", e);
+ throw new RegistryException(e);
+ }
+ return processID;
+ }
+
+ public String addProcessInputs(List<InputDataObjectType> processInputs, String processID) throws RegistryException {
+ try {
+ for (InputDataObjectType input : processInputs) {
+ ProcessInputResource resource = new ProcessInputResource();
+ resource.setProcessId(processID);
+ resource.setInputName(input.getName());
+ resource.setInputValue(input.getValue());
+ if (input.getType() != null) {
+ resource.setDataType(input.getType().toString());
+ }
+ resource.setMetadata(input.getMetaData());
+ resource.setApplicationArgument(input.getApplicationArgument());
+ resource.setInputOrder(input.getInputOrder());
+ resource.setIsRequired(input.isIsRequired());
+ resource.setIsRequired(input.isRequiredToAddedToCommandLine());
+ resource.save();
+ }
+ return processID;
+ } catch (Exception e) {
+ logger.error("Unable to save process inputs", e);
+ throw new RegistryException(e);
+ }
}
+ public String addProcessOutputs(List<OutputDataObjectType> processOutput, String processID) throws RegistryException {
+ try {
+ for (OutputDataObjectType output : processOutput) {
+ ProcessOutputResource resource = new ProcessOutputResource();
+ resource.setProcessId(processID);
+ resource.setOutputName(output.getName());
+ resource.setOutputValue(output.getValue());
+ if (output.getType() != null) {
+ resource.setDataType(output.getType().toString());
+ }
+ resource.setApplicationArgument(output.getApplicationArgument());
+ resource.setIsRequired(output.isIsRequired());
+ resource.setRequiredToAddedToCmd(output.isRequiredToAddedToCommandLine());
+ resource.setDataMovement(output.isDataMovement());
+ resource.setLocation(output.getLocation());
+ resource.setSearchQuery(output.getSearchQuery());
+ resource.save();
+ }
+ return processID;
+ } catch (Exception e) {
+ logger.error("Error while adding process outputs...", e);
+ throw new RegistryException(e);
+ }
+ }
+
+ public String addProcessStatus(ProcessStatus processStatus, String processID) throws RegistryException {
+ try {
+ ProcessResource processResource = new ProcessResource();
+ processResource.setProcessId(processID);
+ ProcessStatusResource status = processResource.getProcessStatus();
+ if (status == null) {
+ status = (ProcessStatusResource) processResource.create(ResourceType.EXPERIMENT_STATUS);
+ }
+ if (isValidStatusTransition(ProcessState.valueOf(status.getState()), processStatus.getState())) {
+ status.setStatusId(getStatusID(processID));
+ status.setProcessId(processID);
+ status.setTimeOfStateChange(AiravataUtils.getTime(processStatus.getTimeOfStateChange()));
+ status.setState(processStatus.getState().toString());
+ status.setReason(processStatus.getReason());
+ status.save();
+ logger.debug(processID, "Added process {} status to {}.", processID, processStatus.toString());
+ }
+ } catch (Exception e) {
+ logger.error(processID, "Error while adding process status...", e);
+ throw new RegistryException(e);
+ }
+ return processID;
+ }
+
+ public String addProcessError(ErrorModel processError, String processID) throws RegistryException {
+ try {
+ ProcessErrorResource error = new ProcessErrorResource();
+ error.setProcessId(processID);
+ error.setErrorId(getErrorID(processID));
+ error.setCreationTime(AiravataUtils.getTime(processError.getCreationTime()));
+ error.setActualErrorMessage(processError.getActualErrorMessage());
+ error.setUserFriendlyMessage(processError.getUserFriendlyMessage());
+ error.setTransientOrPersistent(processError.isTransientOrPersistent());
+ if(processError.getRootCauseErrorIdList() != null) {
+ error.setRootCauseErrorIdList(StringUtils.join(processError.getRootCauseErrorIdList(), ","));
+ }
+ error.save();
+ } catch (Exception e) {
+ logger.error(processID, "Error while adding process status...", e);
+ throw new RegistryException(e);
+ }
+ return processID;
+ }
+
+ public String addTask(TaskModel task, String processID) throws RegistryException {
+ try {
+ TaskResource taskResource = new TaskResource();
+ taskResource.setParentProcessId(getProcessID(processID));
+ taskResource.setTaskType(task.getTaskType().toString());
+ taskResource.setCreationTime(AiravataUtils.getTime(task.getCreationTime()));
+ taskResource.setLastUpdateTime(AiravataUtils.getTime(task.getLastUpdateTime()));
+ taskResource.setTaskDetail(task.getTaskDetail());
+ taskResource.setTaskInternalStore(task.getTaskInternalStore());
+ taskResource.save();
+
+ TaskStatus taskStatus = new TaskStatus();
+ taskStatus.setState(TaskState.CREATED);
+ addTaskStatus(taskStatus, task.getTaskId());
+
+ if(task.getTaskError() != null) {
+ addTaskError(task.getTaskError(), task.getTaskId());
+ }
+ } catch (Exception e) {
+ logger.error(processID, "Error while adding task...", e);
+ throw new RegistryException(e);
+ }
+ return processID;
+ }
+
+ public String addTaskStatus(TaskStatus taskStatus, String taskID) throws RegistryException {
+ try {
+ TaskResource taskResource = new TaskResource();
+ taskResource.setTaskId(taskID);
+ TaskStatusResource status = taskResource.getTaskStatus();
+ if (status == null) {
+ status = new TaskStatusResource();
+ }
+ if (isValidStatusTransition(ProcessState.valueOf(status.getState()), taskStatus.getState())) {
+ status.setStatusId(getStatusID(taskID));
+ status.setTaskId(taskID);
+ status.setTimeOfStateChange(AiravataUtils.getTime(taskStatus.getTimeOfStateChange()));
+ status.setState(taskStatus.getState().toString());
+ status.setReason(taskStatus.getReason());
+ status.save();
+ logger.debug(taskID, "Added task {} status to {}.", taskID, taskStatus.toString());
+ }
+ } catch (Exception e) {
+ logger.error(taskID, "Error while adding task status...", e);
+ throw new RegistryException(e);
+ }
+ return taskID;
+ }
+
+ public String addTaskError(ErrorModel taskError, String taskId) throws RegistryException {
+ try {
+ TaskErrorResource error = new TaskErrorResource();
+ error.setTaskId(taskId);
+ error.setErrorId(getErrorID(taskId));
+ error.setCreationTime(AiravataUtils.getTime(taskError.getCreationTime()));
+ error.setActualErrorMessage(taskError.getActualErrorMessage());
+ error.setUserFriendlyMessage(taskError.getUserFriendlyMessage());
+ error.setTransientOrPersistent(taskError.isTransientOrPersistent());
+ if(taskError.getRootCauseErrorIdList() != null) {
+ error.setRootCauseErrorIdList(StringUtils.join(taskError.getRootCauseErrorIdList(), ","));
+ }
+ error.save();
+ } catch (Exception e) {
+ logger.error(taskId, "Error while adding task status...", e);
+ throw new RegistryException(e);
+ }
+ return taskId;
+ }
+
+
+ //CPI Update Methods
+
public void updateExpInputs(List<InputDataObjectType> exInputs, ExperimentResource experimentResource) throws RegistryException {
// try {
// List<ExperimentInputResource> experimentInputs = experimentResource.getExperimentInputs();
@@ -350,34 +494,6 @@ public class ExperimentRegistry {
}
- public String addExpOutputs(List<OutputDataObjectType> exOutput, String expId) throws RegistryException {
-// try {
-// ExperimentResource experiment = gatewayResource.getExperiment(expId);
-// for (OutputDataObjectType output : exOutput) {
-// ExperimentOutputResource resource = (ExperimentOutputResource) experiment.create(ResourceType.EXPERIMENT_OUTPUT);
-// resource.setExperimentId(expId);
-// resource.setExperimentKey(output.getName());
-// resource.setValue(output.getValue());
-// if (output.getType() != null) {
-// resource.setDataType(output.getType().toString());
-// }
-// resource.setRequired(output.isIsRequired());
-// resource.setRequiredToCMD(output.isRequiredToAddedToCommandLine());
-// resource.setDataMovement(output.isDataMovement());
-// resource.setDataNameLocation(output.getLocation());
-// resource.setAppArgument(output.getApplicationArgument());
-// resource.setSearchQuery(output.getSearchQuery());
-//// resource.setMetadata(output.get());
-// resource.save();
-// }
-// } catch (Exception e) {
-// logger.error("Error while adding experiment outputs...", e);
-// throw new RegistryException(e);
-// }
-// return expId;
- return null;
- }
-
public void updateExpOutputs(List<OutputDataObjectType> exOutput, String expId) throws RegistryException {
// try {
// ExperimentResource experiment = gatewayResource.getExperiment(expId);
@@ -408,94 +524,6 @@ public class ExperimentRegistry {
// }
}
- public String addNodeOutputs(List<OutputDataObjectType> wfOutputs, CompositeIdentifier ids) throws RegistryException {
-// try {
-// ExperimentResource experiment = gatewayResource.getExperiment((String) ids.getTopLevelIdentifier());
-// WorkflowNodeDetailResource workflowNode = experiment.getWorkflowNode((String) ids.getSecondLevelIdentifier());
-// for (OutputDataObjectType output : wfOutputs) {
-// NodeOutputResource resource = (NodeOutputResource) workflowNode.create(ResourceType.NODE_OUTPUT);
-// resource.setNodeId(workflowNode.getNodeInstanceId());
-// resource.setOutputKey(output.getName());
-// resource.setValue(output.getValue());
-// if (output.getType() != null) {
-// resource.setDataType(output.getType().toString());
-// }
-// resource.setRequired(output.isIsRequired());
-// resource.setRequiredToCMD(output.isRequiredToAddedToCommandLine());
-// resource.setDataMovement(output.isDataMovement());
-// resource.setDataNameLocation(output.getLocation());
-// resource.setAppArgument(output.getApplicationArgument());
-// resource.setSearchQuery(output.getSearchQuery());
-//// resource.setMetadata(output.getMetaData());
-// resource.save();
-// }
-// } catch (Exception e) {
-// logger.error("Error while adding node outputs...", e);
-// throw new RegistryException(e);
-// }
-// return (String) ids.getSecondLevelIdentifier();
- return null;
- }
-
- public void updateNodeOutputs(List<OutputDataObjectType> wfOutputs, String nodeId) throws RegistryException {
-// try {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = experiment.getWorkflowNode(nodeId);
-// List<NodeOutputResource> nodeOutputs = workflowNode.getNodeOutputs();
-// for (OutputDataObjectType output : wfOutputs) {
-// for (NodeOutputResource resource : nodeOutputs) {
-// resource.setNodeId(workflowNode.getNodeInstanceId());
-// resource.setOutputKey(output.getName());
-// resource.setValue(output.getValue());
-// if (output.getType() != null) {
-// resource.setDataType(output.getType().toString());
-// }
-// resource.setRequired(output.isIsRequired());
-// resource.setRequiredToCMD(output.isRequiredToAddedToCommandLine());
-// resource.setDataMovement(output.isDataMovement());
-// resource.setDataNameLocation(output.getLocation());
-// resource.setAppArgument(output.getApplicationArgument());
-// resource.setSearchQuery(output.getSearchQuery());
-//// resource.setMetadata(output.getMetaData());
-// resource.save();
-// }
-// }
-// } catch (Exception e) {
-// logger.error("Error while updating node outputs...", e);
-// throw new RegistryException(e);
-// }
- }
-
- public String addApplicationOutputs(List<OutputDataObjectType> appOutputs, CompositeIdentifier ids) throws RegistryException {
-// try {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = experiment.getWorkflowNode((String) ids.getTopLevelIdentifier());
-// TaskDetailResource taskDetail = workflowNode.getTaskDetail((String) ids.getSecondLevelIdentifier());
-// for (OutputDataObjectType output : appOutputs) {
-// ApplicationOutputResource resource = (ApplicationOutputResource) taskDetail.create(ResourceType.APPLICATION_OUTPUT);
-// resource.setTaskId(taskDetail.getTaskId());
-// resource.setOutputKey(output.getName());
-// resource.setValue(output.getValue());
-// if (output.getType() != null) {
-// resource.setDataType(output.getType().toString());
-// }
-// resource.setRequired(output.isIsRequired());
-// resource.setRequiredToCMD(output.isRequiredToAddedToCommandLine());
-// resource.setDataMovement(output.isDataMovement());
-// resource.setDataNameLocation(output.getLocation());
-// resource.setAppArgument(output.getApplicationArgument());
-// resource.setSearchQuery(output.getSearchQuery());
-//// resource.setMetadata(output.getMetaData());
-// resource.save();
-// }
-// } catch (Exception e) {
-// logger.error("Error while adding application outputs...", e);
-// throw new RegistryException(e);
-// }
-// return (String) ids.getSecondLevelIdentifier();
- return null;
- }
-
public String updateExperimentStatus(ExperimentStatus experimentStatus, String expId) throws RegistryException {
// try {
// ExperimentResource experiment = gatewayResource.getExperiment(expId);
@@ -1427,24 +1455,30 @@ public class ExperimentRegistry {
return null;
}
- public String getNodeInstanceID(String nodeName) {
- String node = nodeName.replaceAll("\\s", "");
- return node + "_" + UUID.randomUUID();
- }
public String getExperimentID(String experimentName) {
String exp = experimentName.replaceAll("\\s", "");
return exp + "_" + UUID.randomUUID();
}
- public String getTaskID(String nodeName) {
- String node = nodeName.replaceAll("\\s", "");
- return node + "_" + UUID.randomUUID();
+ public String getProcessID(String experimentId) {
+ String process = experimentId.replaceAll("\\s", "");
+ return process + "_" + UUID.randomUUID();
+ }
+
+ public String getTaskID(String processId) {
+ String taskId = processId.replaceAll("\\s", "");
+ return taskId + "_" + UUID.randomUUID();
+ }
+
+ public String getStatusID(String parentId) {
+ String status = parentId.replaceAll("\\s", "");
+ return status + "_" + UUID.randomUUID();
}
- public String getDataTransferID(String taskId) {
- String task = taskId.replaceAll("\\s", "");
- return task + "_" + UUID.randomUUID();
+ public String getErrorID(String parentId) {
+ String error = parentId.replaceAll("\\s", "");
+ return error + "_" + UUID.randomUUID();
}
public void updateExperimentField(String expID, String fieldName, Object value) throws RegistryException {
@@ -2823,45 +2857,73 @@ public class ExperimentRegistry {
}
}
- public boolean isValidStatusTransition(ExperimentState oldState, ExperimentState nextState) {
- if (nextState == null) {
- return false;
- }
- switch (oldState) {
- case CREATED:
- return true;
- case VALIDATED:
- return nextState != ExperimentState.CREATED;
- case SCHEDULED:
- return nextState != ExperimentState.CREATED
- || nextState != ExperimentState.VALIDATED;
- case LAUNCHED:
- return nextState != ExperimentState.CREATED
- || nextState != ExperimentState.VALIDATED
- || nextState != ExperimentState.SCHEDULED;
- case EXECUTING:
- return nextState != ExperimentState.CREATED
- || nextState != ExperimentState.VALIDATED
- || nextState != ExperimentState.SCHEDULED
- || nextState != ExperimentState.LAUNCHED;
-
- case CANCELING:
- return nextState == ExperimentState.CANCELING
- || nextState == ExperimentState.CANCELED
- || nextState == ExperimentState.COMPLETED
- || nextState == ExperimentState.FAILED;
- case CANCELED:
- return nextState == ExperimentState.CANCELED;
- case COMPLETED:
- return nextState == ExperimentState.COMPLETED;
- case FAILED:
- return nextState == ExperimentState.FAILED;
- //case SUSPENDED: // We don't change state to SUSPEND
-// case UNKNOWN:
-// return true;
- default:
+ public boolean isValidStatusTransition(Object object1, Object object2) {
+ if(object1 instanceof ExperimentState && object2 instanceof ExperimentState){
+ ExperimentState oldState = (ExperimentState) object1;
+ ExperimentState nextState = (ExperimentState) object2;
+ if (nextState == null) {
+ return false;
+ }
+ switch (oldState) {
+ case CREATED:
+ return true;
+ case VALIDATED:
+ return nextState != ExperimentState.CREATED;
+ case SCHEDULED:
+ return nextState != ExperimentState.CREATED
+ || nextState != ExperimentState.VALIDATED;
+ case LAUNCHED:
+ return nextState != ExperimentState.CREATED
+ || nextState != ExperimentState.VALIDATED
+ || nextState != ExperimentState.SCHEDULED;
+ case EXECUTING:
+ return nextState != ExperimentState.CREATED
+ || nextState != ExperimentState.VALIDATED
+ || nextState != ExperimentState.SCHEDULED
+ || nextState != ExperimentState.LAUNCHED;
+
+ case CANCELING:
+ return nextState == ExperimentState.CANCELING
+ || nextState == ExperimentState.CANCELED
+ || nextState == ExperimentState.COMPLETED
+ || nextState == ExperimentState.FAILED;
+ case CANCELED:
+ return nextState == ExperimentState.CANCELED;
+ case COMPLETED:
+ return nextState == ExperimentState.COMPLETED;
+ case FAILED:
+ return nextState == ExperimentState.FAILED;
+ default:
+ return false;
+ }
+ }else if(object1 instanceof ProcessState && object2 instanceof ProcessState){
+ ProcessState oldState = (ProcessState) object1;
+ ProcessState nextState = (ProcessState) object2;
+ if (nextState == null) {
+ return false;
+ }
+ //TODO
+ switch (oldState) {
+ case CREATED:
+ return true;
+ default:
+ return false;
+ }
+ }else if(object1 instanceof TaskState && object2 instanceof TaskState){
+ TaskState oldState = (TaskState) object1;
+ TaskState nextState = (TaskState) object2;
+ if (nextState == null) {
return false;
+ }
+ //TODO
+ switch (oldState) {
+ case CREATED:
+ return true;
+ default:
+ return false;
+ }
}
+ return false;
}
public Object getExperimentInputs(String identifier) {
http://git-wip-us.apache.org/repos/asf/airavata/blob/7ca8104a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentResource.java
index 1702f4a..ae29a0d 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentResource.java
@@ -558,4 +558,9 @@ public class ExperimentResource extends AbstractExpCatResource {
}
return processResources;
}
+
+ public ProcessResource getProcess(String processID) throws RegistryException {
+ ExperimentCatResource resource = get(ResourceType.PROCESS, processID);
+ return (ProcessResource)resource;
+ }
}
[8/9] airavata git commit: Fixing isExists CPI methods in experiment
registry
Posted by sc...@apache.org.
Fixing isExists CPI methods in experiment registry
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/99808c54
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/99808c54
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/99808c54
Branch: refs/heads/master
Commit: 99808c54d607e6ba1c530da03afffe08aec5904e
Parents: 11a208b
Author: Supun Nakandala <sc...@apache.org>
Authored: Mon Jun 22 13:45:36 2015 +0530
Committer: Supun Nakandala <sc...@apache.org>
Committed: Mon Jun 22 13:45:36 2015 +0530
----------------------------------------------------------------------
.../catalog/impl/ExperimentCatalogImpl.java | 8 +-
.../catalog/impl/ExperimentRegistry.java | 1192 +-----------------
2 files changed, 68 insertions(+), 1132 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/99808c54/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
index 22b4e02..95707f3 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
@@ -636,13 +636,13 @@ public class ExperimentCatalogImpl implements ExperimentCatalog {
case EXPERIMENT:
return experimentRegistry.isExperimentExist((String) identifier);
case USER_CONFIGURATION_DATA:
- return experimentRegistry.isExperimentConfigDataExist((String) identifier);
+ return experimentRegistry.isUserConfigDataExist((String) identifier);
case PROCESS:
- return experimentRegistry.isWFNodeExist((String) identifier);
+ return experimentRegistry.isProcessExist((String) identifier);
case PROCESS_RESOURCE_SCHEDULE:
- return experimentRegistry.isComputationalSchedulingExist(dataType, (String) identifier);
+ return experimentRegistry.isProcessResourceScheduleExist((String) identifier);
case TASK:
- return experimentRegistry.isTaskDetailExist((String) identifier);
+ return experimentRegistry.isTaskExist((String) identifier);
default:
logger.error("Unsupported data type...", new UnsupportedOperationException());
throw new UnsupportedOperationException();
http://git-wip-us.apache.org/repos/asf/airavata/blob/99808c54/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
index 44bf0e6..a855808 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
@@ -29,18 +29,14 @@ import org.apache.airavata.model.experiment.ExperimentModel;
import org.apache.airavata.model.experiment.ExperimentStatistics;
import org.apache.airavata.model.experiment.ExperimentSummaryModel;
import org.apache.airavata.model.experiment.UserConfigurationDataModel;
-import org.apache.airavata.model.job.JobModel;
import org.apache.airavata.model.process.ProcessModel;
import org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel;
import org.apache.airavata.model.status.*;
import org.apache.airavata.model.task.TaskModel;
import org.apache.airavata.registry.core.experiment.catalog.ExpCatResourceUtils;
-import org.apache.airavata.registry.core.experiment.catalog.ExperimentCatResource;
import org.apache.airavata.registry.core.experiment.catalog.ResourceType;
import org.apache.airavata.registry.core.experiment.catalog.resources.*;
import org.apache.airavata.registry.core.experiment.catalog.utils.ThriftDataModelConversion;
-import org.apache.airavata.registry.cpi.CompositeIdentifier;
-import org.apache.airavata.registry.cpi.ExperimentCatalogModelType;
import org.apache.airavata.registry.cpi.RegistryException;
import org.apache.airavata.registry.cpi.ResultOrderType;
import org.apache.airavata.registry.cpi.utils.Constants;
@@ -478,7 +474,7 @@ public class ExperimentRegistry {
existingExperiment.setProjectId(experiment.getProjectId());
existingExperiment.setCreationTime(AiravataUtils.getTime(experiment.getCreationTime()));
existingExperiment.setDescription(experiment.getDescription());
- existingExperiment.setApplicationId(experiment.getExecutionId());
+ existingExperiment.setExecutionId(experiment.getExecutionId());
existingExperiment.setEnableEmailNotification(experiment.isEnableEmailNotification());
existingExperiment.save();
@@ -788,7 +784,8 @@ public class ExperimentRegistry {
public void updateUserConfigDataField(String expID, String fieldName, Object value) throws RegistryException {
try {
- ExperimentResource experiment = gatewayResource.getExperiment(expID);
+ ExperimentResource experiment = new ExperimentResource();
+ experiment.setExperimentId(expID);
UserConfigurationDataResource exConfigData = (UserConfigurationDataResource)
experiment.get(ResourceType.USER_CONFIGURATION_DATA, expID);
if (fieldName.equals(Constants.FieldConstants.UserConfigurationDataConstants.AIRAVATA_AUTO_SCHEDULE)) {
@@ -801,7 +798,7 @@ public class ExperimentRegistry {
exConfigData.setShareExperimentPublically((Boolean) value);
exConfigData.save();
} else if (fieldName.equals(Constants.FieldConstants.UserConfigurationDataConstants.COMPUTATIONAL_RESOURCE_SCHEDULING)) {
- updateSchedulingData((ComputationalResourceSchedulingModel) value, experiment);
+ updateComputeResourceScheduling((ComputationalResourceSchedulingModel) value, expID);
} else {
logger.error("Unsupported field type for Experiment config data");
}
@@ -812,6 +809,20 @@ public class ExperimentRegistry {
}
}
+ public void updateComputeResourceScheduling(ComputationalResourceSchedulingModel value, String expID) throws RegistryException {
+ ExperimentResource experiment = new ExperimentResource();
+ experiment.setExperimentId(expID);
+ UserConfigurationDataResource configDataResource = experiment.getUserConfigurationDataResource();
+ configDataResource.setResourceHostId(value.getResourceHostId());
+ configDataResource.setTotalCpuCount(value.getTotalCPUCount());
+ configDataResource.setNodeCount(value.getNodeCount());
+ configDataResource.setNumberOfThreads(value.getNumberOfThreads());
+ configDataResource.setQueueName(value.getQueueName());
+ configDataResource.setWallTimeLimit(value.getWallTimeLimit());
+ configDataResource.setTotalPhysicalMemory(value.getTotalPhysicalMemory());
+ configDataResource.save();
+ }
+
//CPI get methods
public Object getExperiment(String expId, String fieldName) throws RegistryException {
try {
@@ -1230,304 +1241,56 @@ public class ExperimentRegistry {
}
- // ids - taskId + jobid
- public void updateJobDetails(JobModel jobDetails, CompositeIdentifier ids) throws RegistryException {
-// try {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// String taskId = (String) ids.getTopLevelIdentifier();
-// TaskDetailResource taskDetail = workflowNode.getTaskDetail(taskId);
-// String jobId = (String) ids.getSecondLevelIdentifier();
-// JobDetailResource jobDetail = taskDetail.getJobDetail(jobId);
-// jobDetail.setTaskId(taskDetail.getTaskId());
-// jobDetail.setJobDescription(jobDetails.getJobDescription());
-// jobDetail.setCreationTime(AiravataUtils.getTime(jobDetails.getCreationTime()));
-// jobDetail.setComputeResourceConsumed(jobDetails.getComputeResourceConsumed());
-// jobDetail.setJobName(jobDetails.getJobName());
-// jobDetail.setWorkingDir(jobDetails.getWorkingDir());
-// jobDetail.save();
-// JobStatus jobStatus = jobDetails.getJobStatus();
-// if (jobStatus != null) {
-// JobStatus status = getJobStatus(ids);
-// if (status != null) {
-// updateJobStatus(jobStatus, ids);
-// } else {
-// addJobStatus(jobStatus, ids);
-// }
-// }
-// JobStatus applicationStatus = jobDetails.getJobStatus();
-// if (applicationStatus != null) {
-// JobStatus appStatus = getJobStatus(ids);
-// if (appStatus != null) {
-// updateJobStatus(applicationStatus, ids);
-// } else {
-// addJobStatus(applicationStatus, ids);
-// }
-// }
-//// List<ErrorDetails> errors = jobDetails.getErrors();
-//// if (errors != null && !errors.isEmpty()) {
-//// for (ErrorDetails error : errors) {
-//// addErrorDetails(error, jobId);
-//// }
-//// }
-// } catch (Exception e) {
-// logger.error("Error while updating job details...", e);
-// throw new RegistryException(e);
-// }
- }
-
-// public String addDataTransferDetails(DataTransferDetails transferDetails, String taskId) throws RegistryException {
-// try {
-// if (transferDetails.getTransferDescription() == null){
-// throw new RegistryException("Data transfer description cannot be empty");
-// }
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = workflowNode.getTaskDetail(taskId);
-// DataTransferDetailResource resource = (DataTransferDetailResource) taskDetail.create(ResourceType.DATA_TRANSFER_DETAIL);
-// resource.setTaskId(taskId);
-// resource.setTransferId(getDataTransferID(taskId));
-//
-// resource.setTransferDescription(transferDetails.getTransferDescription());
-// resource.setCreationTime(AiravataUtils.getTime(transferDetails.getCreationTime()));
-// resource.save();
-// String transferId = resource.getTransferId();
-// TransferStatus transferStatus = transferDetails.getTransferStatus();
-// if (transferStatus != null) {
-// TransferStatus status = getDataTransferStatus(transferId);
-// if (status != null) {
-// updateTransferStatus(transferStatus, transferId);
-// } else {
-// CompositeIdentifier ids = new CompositeIdentifier(taskId, transferId);
-// addTransferStatus(transferStatus, ids);
-// }
-// }
-// return resource.getTransferId();
-// } catch (Exception e) {
-// logger.error("Error while adding transfer details...", e);
-// throw new RegistryException(e);
-// }
-// }
-
-// public String updateDataTransferDetails(DataTransferDetails transferDetails, String transferId) throws RegistryException {
-// try {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = (TaskDetailResource) workflowNode.create(ResourceType.TASK_DETAIL);
-// DataTransferDetailResource resource = taskDetail.getDataTransferDetail(transferId);
-//// resource.setTaskDetailResource(taskDetail);
-// resource.setTransferDescription(transferDetails.getTransferDescription());
-// resource.setCreationTime(AiravataUtils.getTime(transferDetails.getCreationTime()));
-// resource.save();
-// String taskId = resource.getTaskId();
-// TransferStatus transferStatus = transferDetails.getTransferStatus();
-// if (transferStatus != null) {
-// TransferStatus status = getDataTransferStatus(transferId);
-// if (status != null) {
-// updateTransferStatus(transferStatus, transferId);
-// } else {
-// CompositeIdentifier ids = new CompositeIdentifier(taskId, transferId);
-// addTransferStatus(transferStatus, ids);
-// }
-// }
-// return resource.getTransferId();
-// } catch (Exception e) {
-// logger.error("Error while updating transfer details...", e);
-// throw new RegistryException(e);
-// }
-// }
-
- /**
- * @param scheduling computational resource object
- * @param ids contains expId and taskId, if it is an experiment, task id can be null
- * @return scheduling id
- */
- public String addComputationalResourceScheduling(ComputationalResourceSchedulingModel scheduling, CompositeIdentifier ids) throws RegistryException {
-// try {
-// ExperimentResource experiment = gatewayResource.getExperiment((String) ids.getTopLevelIdentifier());
-// ComputationSchedulingResource schedulingResource = (ComputationSchedulingResource) experiment.create(ResourceType.COMPUTATIONAL_RESOURCE_SCHEDULING);
-// if (ids.getSecondLevelIdentifier() != null) {
-// WorkflowNodeDetailResource nodeDetailResource = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = nodeDetailResource.getTaskDetail((String) ids.getSecondLevelIdentifier());
-// schedulingResource.setTaskId(taskDetail.getTaskId());
-// }
-// schedulingResource.setExperimentId(experiment.getExpID());
-// schedulingResource.setResourceHostId(scheduling.getResourceHostId());
-// schedulingResource.setCpuCount(scheduling.getTotalCPUCount());
-// schedulingResource.setNodeCount(scheduling.getNodeCount());
-// schedulingResource.setNumberOfThreads(scheduling.getNumberOfThreads());
-// schedulingResource.setQueueName(scheduling.getQueueName());
-// schedulingResource.setWalltimeLimit(scheduling.getWallTimeLimit());
-// schedulingResource.setPhysicalMemory(scheduling.getTotalPhysicalMemory());
-// schedulingResource.setChessisName(scheduling.getChessisNumber());
-// schedulingResource.save();
-// return String.valueOf(schedulingResource.getSchedulingId());
-// } catch (Exception e) {
-// logger.error("Error while adding scheduling parameters...", e);
-// throw new RegistryException(e);
-// }
- return null;
+ //isExists CPI methods
+ public boolean isExperimentExist(String expID) throws RegistryException {
+ try {
+ return gatewayResource.isExists(ResourceType.EXPERIMENT, expID);
+ } catch (Exception e) {
+ logger.error("Error while retrieving experiment...", e);
+ throw new RegistryException(e);
+ }
}
-// /**
-// * @param dataHandling advanced input data handling object
-// * @param ids contains expId and taskId
-// * @return data handling id
-// */
-// public String addInputDataHandling(AdvancedInputDataHandling dataHandling, CompositeIdentifier ids) throws RegistryException {
-// try {
-// ExperimentResource experiment = gatewayResource.getExperiment((String) ids.getTopLevelIdentifier());
-// AdvanceInputDataHandlingResource dataHandlingResource = (AdvanceInputDataHandlingResource) experiment.create(ResourceType.ADVANCE_INPUT_DATA_HANDLING);
-// if (ids.getSecondLevelIdentifier() != null) {
-// WorkflowNodeDetailResource nodeDetailResource = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = nodeDetailResource.getTaskDetail((String) ids.getSecondLevelIdentifier());
-// dataHandlingResource.setTaskId(taskDetail.getTaskId());
-// }
-// dataHandlingResource.setProcessId(experiment.getExpID());
-// dataHandlingResource.setWorkingDir(dataHandling.getUniqueWorkingDirectory());
-// dataHandlingResource.setWorkingDirParent(dataHandling.getParentWorkingDirectory());
-// dataHandlingResource.setStageInputFiles(dataHandling.isStageInputFilesToWorkingDir());
-// dataHandlingResource.setCleanAfterJob(dataHandling.isCleanUpWorkingDirAfterJob());
-// dataHandlingResource.save();
-// return String.valueOf(dataHandlingResource.getDataHandlingId());
-// } catch (Exception e) {
-// logger.error("Error while adding input data handling...", e);
-// throw new RegistryException(e);
-// }
-// }
-//
-// /**
-// * @param dataHandling advanced output data handling object
-// * @param ids contains expId and taskId
-// * @return data handling id
-// */
-// public String addOutputDataHandling(AdvancedOutputDataHandling dataHandling, CompositeIdentifier ids) throws RegistryException {
-// try {
-// ExperimentResource experiment = gatewayResource.getExperiment((String) ids.getTopLevelIdentifier());
-// AdvancedOutputDataHandlingResource dataHandlingResource = (AdvancedOutputDataHandlingResource) experiment.create(ResourceType.ADVANCE_OUTPUT_DATA_HANDLING);
-// if (ids.getSecondLevelIdentifier() != null) {
-// WorkflowNodeDetailResource nodeDetailResource = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = nodeDetailResource.getTaskDetail((String) ids.getSecondLevelIdentifier());
-// dataHandlingResource.setTaskId(taskDetail.getTaskId());
-// }
-// dataHandlingResource.setProcessId(experiment.getExpID());
-// dataHandlingResource.setOutputDataDir(dataHandling.getOutputDataDir());
-// dataHandlingResource.setDataRegUrl(dataHandling.getDataRegistryURL());
-// dataHandlingResource.setPersistOutputData(dataHandling.isPersistOutputData());
-// dataHandlingResource.save();
-// return String.valueOf(dataHandlingResource.getOutputDataHandlingId());
-// } catch (Exception e) {
-// logger.error("Error while adding output data handling...", e);
-// throw new RegistryException(e);
-// }
-// }
-
-// public String addQosParams(QualityOfServiceParams qosParams, CompositeIdentifier ids) throws RegistryException {
-// try {
-// ExperimentResource experiment = gatewayResource.getExperiment((String) ids.getTopLevelIdentifier());
-// QosParamResource qosParamResource = (QosParamResource) experiment.create(ResourceType.QOS_PARAM);
-// if (ids.getSecondLevelIdentifier() != null) {
-// WorkflowNodeDetailResource nodeDetailResource = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = nodeDetailResource.getTaskDetail((String) ids.getSecondLevelIdentifier());
-// qosParamResource.setTaskId(taskDetail.getTaskId());
-// }
-// qosParamResource.setProcessId(experiment.getExpID());
-// qosParamResource.setStartExecutionAt(qosParams.getStartExecutionAt());
-// qosParamResource.setExecuteBefore(qosParams.getExecuteBefore());
-// qosParamResource.setNoOfRetries(qosParams.getNumberofRetries());
-// qosParamResource.save();
-// return String.valueOf(qosParamResource.getQosId());
-// } catch (Exception e) {
-// logger.error("Error while adding QOS params...", e);
-// throw new RegistryException(e);
-// }
-// }
-
- public String addErrorDetails(ErrorModel error, Object id) throws RegistryException {
-// try {
-//
-// ErrorDetailResource errorResource = null;
-// ExperimentResource experiment;
-// TaskDetailResource taskDetail;
-// WorkflowNodeDetailResource workflowNode;
-// // figure out the id is an experiment, node task or job
-// if (id instanceof String) {
-// // FIXME : for .12 we only save task related errors
-//// if (isExperimentExist((String) id)) {
-//// experiment = gatewayResource.getExperiment((String) id);
-//// errorResource = (ErrorDetailResource) experiment.create(ResourceType.ERROR_DETAIL);
-//// } else if (isWFNodeExist((String) id)) {
-//// experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-//// workflowNode = experiment.getWorkflowNode((String) id);
-//// errorResource = (ErrorDetailResource) workflowNode.create(ResourceType.ERROR_DETAIL);
-//// errorResource.setExperimentResource(workflowNode.getExperimentResource());
-//// } else
-// if (isTaskDetailExist((String) id)) {
-// experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// taskDetail = workflowNode.getTaskDetail((String) id);
-// errorResource = (ErrorDetailResource) taskDetail.create(ResourceType.ERROR_DETAIL);
-// if (error.getErrorId() != null && !error.getErrorId().equals(airavata_commonsConstants.DEFAULT_ID)) {
-// List<ErrorDetailResource> errorDetailList = taskDetail.getErrorDetailList();
-// if (errorDetailList != null && !errorDetailList.isEmpty()) {
-// for (ErrorDetailResource errorDetailResource : errorDetailList) {
-// if (errorDetailResource.getErrorId() == Integer.parseInt(error.getErrorId())) {
-// errorResource = errorDetailResource;
-// }
-// }
-// }
-// }
-// errorResource.setTaskId(taskDetail.getTaskId());
-// errorResource.setNodeId(taskDetail.getNodeId());
-// workflowNode = experiment.getWorkflowNode(taskDetail.getNodeId());
-// errorResource.setExperimentId(workflowNode.getExperimentId());
-// } else {
-//// logger.error("The id provided is not an experiment id or a workflow id or a task id..");
-// }
-// } else if (id instanceof CompositeIdentifier) {
-// CompositeIdentifier cid = (CompositeIdentifier) id;
-// if (isJobDetailExist(cid)) {
-// experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// taskDetail = workflowNode.getTaskDetail((String) cid.getTopLevelIdentifier());
-// JobDetailResource jobDetail = taskDetail.getJobDetail((String) cid.getSecondLevelIdentifier());
-// errorResource = (ErrorDetailResource) jobDetail.create(ResourceType.ERROR_DETAIL);
-// if (error.getErrorId() != null && !error.getErrorId().equals(airavata_commonsConstants.DEFAULT_ID)) {
-// List<ErrorDetailResource> errorDetailList = taskDetail.getErrorDetailList();
-// if (errorDetailList != null && !errorDetailList.isEmpty()) {
-// for (ErrorDetailResource errorDetailResource : errorDetailList) {
-// if (errorDetailResource.getErrorId() == Integer.parseInt(error.getErrorId())) {
-// errorResource = errorDetailResource;
-// }
-// }
-// }
-// }
-// errorResource.setTaskId(taskDetail.getTaskId());
-// errorResource.setNodeId(taskDetail.getNodeId());
-// workflowNode = experiment.getWorkflowNode(taskDetail.getNodeId());
-// errorResource.setExperimentId(workflowNode.getExperimentId());
-// } else {
-// logger.error("The id provided is not a job in the system..");
-// }
-// } else {
-//// logger.error("The id provided is not an experiment id or a workflow id or a task id or a composite " +
-//// "identifier for job..");
-// }
-// if (errorResource != null) {
-// errorResource.setCreationTime(AiravataUtils.getTime(error.getCreationTime()));
-// errorResource.setActualErrorMsg(error.getActualErrorMessage());
-// errorResource.setUserFriendlyErrorMsg(error.getUserFriendlyMessage());
-// errorResource.setTransientPersistent(error.isTransientOrPersistent());
-// errorResource.save();
-// return String.valueOf(errorResource.getErrorId());
-// }
-// } catch (Exception e) {
-// logger.error("Unable to add error details...", e);
-// throw new RegistryException(e);
-// }
- return null;
+ public boolean isUserConfigDataExist(String expID) throws RegistryException {
+ try {
+ ExperimentResource experiment = gatewayResource.getExperiment(expID);
+ experiment.isExists(ResourceType.USER_CONFIGURATION_DATA, expID);
+ return true;
+ } catch (Exception e) {
+ logger.error("Error while retrieving experiment...", e);
+ throw new RegistryException(e);
+ }
}
+ public boolean isProcessExist(String processId) throws RegistryException {
+ try {
+ ExperimentResource experiment = new ExperimentResource();
+ return experiment.isExists(ResourceType.PROCESS, processId);
+ } catch (Exception e) {
+ logger.error("Error while retrieving process...", e);
+ throw new RegistryException(e);
+ }
+ }
+
+ public boolean isProcessResourceScheduleExist(String processId) throws RegistryException {
+ try {
+ ExperimentResource experiment = new ExperimentResource();
+ return experiment.isExists(ResourceType.PROCESS_RESOURCE_SCHEDULE, processId);
+ } catch (Exception e) {
+ logger.error("Error while retrieving process...", e);
+ throw new RegistryException(e);
+ }
+ }
+
+ public boolean isTaskExist(String taskId) throws RegistryException {
+ try {
+ ProcessResource process = new ProcessResource();
+ return process.isExists(ResourceType.TASK, taskId);
+ } catch (Exception e) {
+ logger.error("Error while retrieving task.....", e);
+ throw new RegistryException(e);
+ }
+ }
public String getExperimentID(String experimentName) {
String exp = experimentName.replaceAll("\\s", "");
@@ -1554,833 +1317,6 @@ public class ExperimentRegistry {
return error + "_" + UUID.randomUUID();
}
-// public void updateQosParams(QualityOfServiceParams qosParams, ExperimentCatResource resource) throws RegistryException {
-// try {
-// if (resource instanceof ExperimentResource) {
-// ExperimentResource expResource = (ExperimentResource) resource;
-// QosParamResource qosr = expResource.getQOSparams(expResource.getExpID());
-// qosr.setProcessId(expResource.getExpID());
-// qosr.setStartExecutionAt(qosParams.getStartExecutionAt());
-// qosr.setExecuteBefore(qosParams.getExecuteBefore());
-// qosr.setNoOfRetries(qosParams.getNumberofRetries());
-// qosr.save();
-// }
-// } catch (Exception e) {
-// logger.error("Error while updating QOS data...", e);
-// throw new RegistryException(e);
-// }
-//
-// }
-
-// public void updateOutputDataHandling(AdvancedOutputDataHandling outputDataHandling, ExperimentCatResource resource) throws RegistryException {
-// AdvancedOutputDataHandlingResource adodh;
-// try {
-// if (resource instanceof ExperimentResource) {
-// ExperimentResource expResource = (ExperimentResource) resource;
-// adodh = expResource.getOutputDataHandling(expResource.getExpID());
-// adodh.setProcessId(expResource.getExpID());
-// } else {
-// TaskDetailResource taskDetailResource = (TaskDetailResource) resource;
-// ExperimentResource experimentResource = new ExperimentResource();
-// adodh = taskDetailResource.getOutputDataHandling(taskDetailResource.getTaskId());
-// adodh.setTaskId(taskDetailResource.getTaskId());
-// WorkflowNodeDetailResource nodeDetailResource = experimentResource.getWorkflowNode(taskDetailResource.getNodeId());
-// adodh.setProcessId(nodeDetailResource.getProcessId());
-// }
-// adodh.setOutputDataDir(outputDataHandling.getOutputDataDir());
-// adodh.setDataRegUrl(outputDataHandling.getDataRegistryURL());
-// adodh.setPersistOutputData(outputDataHandling.isPersistOutputData());
-// adodh.save();
-// } catch (Exception e) {
-// logger.error("Error while updating output data handling...", e);
-// throw new RegistryException(e);
-// }
-//
-// }
-//
-// public void updateInputDataHandling(AdvancedInputDataHandling inputDataHandling, ExperimentCatResource resource) throws RegistryException {
-// AdvanceInputDataHandlingResource adidh;
-// try {
-// if (resource instanceof ExperimentResource) {
-// ExperimentResource expResource = (ExperimentResource) resource;
-// adidh = expResource.getInputDataHandling(expResource.getExpID());
-// adidh.setProcessId(expResource.getExpID());
-// } else {
-// TaskDetailResource taskDetailResource = (TaskDetailResource) resource;
-// ExperimentResource experimentResource = new ExperimentResource();
-// adidh = taskDetailResource.getInputDataHandling(taskDetailResource.getTaskId());
-// adidh.setTaskId(taskDetailResource.getTaskId());
-// WorkflowNodeDetailResource nodeDetailResource = experimentResource.getWorkflowNode(taskDetailResource.getNodeId());
-// adidh.setProcessId(nodeDetailResource.getProcessId());
-// }
-// adidh.setWorkingDir(inputDataHandling.getUniqueWorkingDirectory());
-// adidh.setWorkingDirParent(inputDataHandling.getParentWorkingDirectory());
-// adidh.setStageInputFiles(inputDataHandling.isSetStageInputFilesToWorkingDir());
-// adidh.setCleanAfterJob(inputDataHandling.isCleanUpWorkingDirAfterJob());
-// adidh.save();
-// } catch (Exception e) {
-// logger.error("Error while updating input data handling...", e);
-// throw new RegistryException(e);
-// }
-//
-// }
-
- public void updateSchedulingData(ComputationalResourceSchedulingModel resourceScheduling, ExperimentCatResource resource) throws RegistryException {
-// ComputationSchedulingResource cmsr;
-// try {
-// if (resource instanceof ExperimentResource) {
-// ExperimentResource expResource = (ExperimentResource) resource;
-// cmsr = expResource.getComputationScheduling(expResource.getExpID());
-// cmsr.setExperimentId(expResource.getExpID());
-// } else {
-// TaskDetailResource taskDetailResource = (TaskDetailResource) resource;
-// ExperimentResource experimentResource = new ExperimentResource();
-// cmsr = taskDetailResource.getComputationScheduling(taskDetailResource.getTaskId());
-// cmsr.setTaskId(taskDetailResource.getTaskId());
-// WorkflowNodeDetailResource nodeDetailResource = experimentResource.getWorkflowNode(taskDetailResource.getNodeId());
-// cmsr.setExperimentId(nodeDetailResource.getExperimentId());
-// }
-// cmsr.setResourceHostId(resourceScheduling.getResourceHostId());
-// cmsr.setCpuCount(resourceScheduling.getTotalCPUCount());
-// cmsr.setNodeCount(resourceScheduling.getNodeCount());
-// cmsr.setNumberOfThreads(resourceScheduling.getNumberOfThreads());
-// cmsr.setQueueName(resourceScheduling.getQueueName());
-// cmsr.setWalltimeLimit(resourceScheduling.getWallTimeLimit());
-// cmsr.setPhysicalMemory(resourceScheduling.getTotalPhysicalMemory());
-// cmsr.save();
-// } catch (Exception e) {
-// logger.error("Error while updating scheduling data...", e);
-// throw new RegistryException(e);
-// }
- }
-
-
- /**
- * Method to get matching experiment list with pagination and ordering
- * @param fieldName
- * @param value
- * @param limit
- * @param offset
- * @param orderByIdentifier
- * @param resultOrderType
- * @return
- * @throws RegistryException
- */
-
- public List<TaskModel> getTaskDetails(String fieldName, Object value) throws RegistryException {
-// try {
-// if (fieldName.equals(Constants.FieldConstants.TaskDetailConstants.NODE_ID)) {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = experiment.getWorkflowNode((String) value);
-// List<TaskDetailResource> taskDetails = workflowNode.getTaskDetails();
-// return ThriftDataModelConversion.getTaskDetailsList(taskDetails);
-// } else {
-// logger.error("Unsupported field name to retrieve task detail list...");
-// }
-// } catch (Exception e) {
-// logger.error("Error while getting task details...", e);
-// throw new RegistryException(e);
-// }
- return null;
- }
-
- public List<JobModel> getJobDetails(String fieldName, Object value) throws RegistryException {
-// try {
-// if (fieldName.equals(Constants.FieldConstants.JobDetaisConstants.TASK_ID)) {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = workflowNode.getTaskDetail((String) value);
-// List<JobDetailResource> jobDetailList = taskDetail.getJobDetailList();
-// return ThriftDataModelConversion.getJobDetailsList(jobDetailList);
-// } else {
-// logger.error("Unsupported field name to retrieve job details list...");
-// }
-// } catch (Exception e) {
-// logger.error("Error while job details...", e);
-// throw new RegistryException(e);
-// }
- return null;
- }
-//
-// public List<DataTransferDetails> getDataTransferDetails(String fieldName, Object value) throws RegistryException {
-// try {
-// if (fieldName.equals(Constants.FieldConstants.DataTransferDetailConstants.TASK_ID)) {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = workflowNode.getTaskDetail((String) value);
-// List<DataTransferDetailResource> dataTransferDetailList = taskDetail.getDataTransferDetailList();
-// return ThriftDataModelConversion.getDataTransferlList(dataTransferDetailList);
-// } else {
-// logger.error("Unsupported field name to retrieve job details list...");
-// }
-// } catch (Exception e) {
-// logger.error("Error while getting data transfer details...", e);
-// throw new RegistryException(e);
-// }
-// return null;
-// }
-
- public List<ErrorModel> getErrorDetails(String fieldName, Object value) throws RegistryException {
-// try {
-// if (fieldName.equals(Constants.FieldConstants.ErrorDetailsConstants.EXPERIMENT_ID)) {
-// ExperimentResource experiment = gatewayResource.getExperiment((String) value);
-// List<ErrorDetailResource> errorDetails = experiment.getErrorDetails();
-// return ThriftDataModelConversion.getErrorDetailList(errorDetails);
-// } else if (fieldName.equals(Constants.FieldConstants.ErrorDetailsConstants.NODE_ID)) {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = experiment.getWorkflowNode((String) value);
-// List<ErrorDetailResource> errorDetails = workflowNode.getErrorDetails();
-// return ThriftDataModelConversion.getErrorDetailList(errorDetails);
-// } else if (fieldName.equals(Constants.FieldConstants.ErrorDetailsConstants.TASK_ID)) {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = workflowNode.getTaskDetail((String) value);
-// List<ErrorDetailResource> errorDetailList = taskDetail.getErrorDetailList();
-// return ThriftDataModelConversion.getErrorDetailList(errorDetailList);
-// } else if (fieldName.equals(Constants.FieldConstants.ErrorDetailsConstants.JOB_ID)) {
-// CompositeIdentifier cid = (CompositeIdentifier) value;
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = workflowNode.getTaskDetail((String) cid.getTopLevelIdentifier());
-// JobDetailResource jobDetail = taskDetail.getJobDetail((String) cid.getSecondLevelIdentifier());
-// List<ErrorDetailResource> errorDetails = jobDetail.getErrorDetails();
-// return ThriftDataModelConversion.getErrorDetailList(errorDetails);
-// } else {
-// logger.error("Unsupported field name to retrieve job details list...");
-// }
-// } catch (Exception e) {
-// logger.error("Unable to get error details...", e);
-// throw new RegistryException(e);
-// }
- return null;
- }
-
- public ComputationalResourceSchedulingModel getComputationalScheduling(ExperimentCatalogModelType type, String id) throws RegistryException {
-// try {
-// ComputationSchedulingResource computationScheduling = null;
-// switch (type) {
-// case EXPERIMENT:
-// ExperimentResource resource = gatewayResource.getExperiment(id);
-// computationScheduling = resource.getComputationScheduling(id);
-// break;
-// case TASK_DETAIL:
-// ExperimentResource exp = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource wf = (WorkflowNodeDetailResource) exp.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = wf.getTaskDetail(id);
-// computationScheduling = taskDetail.getComputationScheduling(id);
-// break;
-// }
-// if (computationScheduling != null) {
-// return ThriftDataModelConversion.getComputationalResourceScheduling(computationScheduling);
-// }
-// } catch (Exception e) {
-// logger.error("Error while getting scheduling data..", e);
-// throw new RegistryException(e);
-// }
- return null;
- }
-
-// public AdvancedInputDataHandling getInputDataHandling(ExperimentCatalogModelType type, String id) throws RegistryException {
-// try {
-// AdvanceInputDataHandlingResource dataHandlingResource = null;
-// switch (type) {
-// case EXPERIMENT:
-// ExperimentResource resource = gatewayResource.getExperiment(id);
-// dataHandlingResource = resource.getInputDataHandling(id);
-// break;
-// case TASK_DETAIL:
-// ExperimentResource exp = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource wf = (WorkflowNodeDetailResource) exp.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = wf.getTaskDetail(id);
-// dataHandlingResource = taskDetail.getInputDataHandling(id);
-// break;
-// }
-// if (dataHandlingResource != null) {
-// return ThriftDataModelConversion.getAdvanceInputDataHandling(dataHandlingResource);
-// }
-// } catch (Exception e) {
-// logger.error("Error while getting input data handling..", e);
-// throw new RegistryException(e);
-// }
-// return null;
-// }
-//
-// public AdvancedOutputDataHandling getOutputDataHandling(ExperimentCatalogModelType type, String id) throws RegistryException {
-// try {
-// AdvancedOutputDataHandlingResource dataHandlingResource = null;
-// switch (type) {
-// case EXPERIMENT:
-// ExperimentResource resource = gatewayResource.getExperiment(id);
-// dataHandlingResource = resource.getOutputDataHandling(id);
-// break;
-// case TASK_DETAIL:
-// ExperimentResource exp = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource wf = (WorkflowNodeDetailResource) exp.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = wf.getTaskDetail(id);
-// dataHandlingResource = taskDetail.getOutputDataHandling(id);
-// break;
-// }
-// if (dataHandlingResource != null) {
-// return ThriftDataModelConversion.getAdvanceOutputDataHandling(dataHandlingResource);
-// }
-// } catch (Exception e) {
-// logger.error("Error while getting output data handling...", e);
-// throw new RegistryException(e);
-// }
-// return null;
-// }
-//
-// public QualityOfServiceParams getQosParams(ExperimentCatalogModelType type, String id) throws RegistryException {
-// try {
-// QosParamResource qosParamResource = null;
-// switch (type) {
-// case EXPERIMENT:
-// ExperimentResource resource = gatewayResource.getExperiment(id);
-// qosParamResource = resource.getQOSparams(id);
-// break;
-// }
-// if (qosParamResource != null) {
-// return ThriftDataModelConversion.getQOSParams(qosParamResource);
-// }
-// } catch (Exception e) {
-// logger.error("Error while getting qos params..", e);
-// throw new RegistryException(e);
-// }
-// return null;
-// }
-
-// private WorkflowNodeDetailResource getWorkflowNodeDetailResource(String nodeId) throws RegistryException {
-// try {
-// ExperimentResource resource = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// return resource.getWorkflowNode(nodeId);
-// } catch (Exception e) {
-// logger.error("Error while getting workflow node details...", e);
-// throw new RegistryException(e);
-// }
-// }
-//
-// public WorkflowNodeDetails getWorkflowNodeDetails(String nodeId) throws RegistryException {
-// try {
-// ExperimentResource resource = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = resource.getWorkflowNode(nodeId);
-// return ThriftDataModelConversion.getWorkflowNodeDetails(workflowNode);
-// } catch (Exception e) {
-// logger.error("Error while getting workflow node details...", e);
-// throw new RegistryException(e);
-// }
-// }
-//
-// public WorkflowNodeStatus getWorkflowNodeStatus(String nodeId) throws RegistryException {
-// try {
-// ExperimentResource resource = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = resource.getWorkflowNode(nodeId);
-// StatusResource workflowNodeStatus = workflowNode.getWorkflowNodeStatus();
-// return ThriftDataModelConversion.getWorkflowNodeStatus(workflowNodeStatus);
-// } catch (Exception e) {
-// logger.error("Error while getting workflow node status..", e);
-// throw new RegistryException(e);
-// }
-// }
-
- public List<OutputDataObjectType> getNodeOutputs(String nodeId) throws RegistryException {
-// try {
-// ExperimentResource resource = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = resource.getWorkflowNode(nodeId);
-// List<NodeOutputResource> nodeOutputs = workflowNode.getNodeOutputs();
-// return ThriftDataModelConversion.getNodeOutputs(nodeOutputs);
-// } catch (Exception e) {
-// logger.error("Error while getting node outputs..", e);
-// throw new RegistryException(e);
-// }
- return null;
- }
-
- public TaskModel getTaskDetails(String taskId) throws RegistryException {
-// try {
-// TaskDetailResource taskDetail = getTaskDetailResource(taskId);
-// return ThriftDataModelConversion.getTaskModel(taskDetail);
-// } catch (Exception e) {
-// logger.error("Error while getting task details..", e);
-// throw new RegistryException(e);
-// }
- return null;
- }
-
- private TaskResource getTaskDetailResource(String taskId) throws RegistryException {
-// try {
-// ExperimentResource resource = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) resource.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// return workflowNode.getTaskDetail(taskId);
-// } catch (Exception e) {
-// logger.error("Error while getting task details..", e);
-// throw new RegistryException(e);
-// }
- return null;
- }
-
- public List<OutputDataObjectType> getApplicationOutputs(String taskId) throws RegistryException {
-// try {
-// ExperimentResource resource = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) resource.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = workflowNode.getTaskDetail(taskId);
-// List<ApplicationOutputResource> applicationOutputs = taskDetail.getApplicationOutputs();
-// return ThriftDataModelConversion.getApplicationOutputs(applicationOutputs);
-// } catch (Exception e) {
-// logger.error("Error while getting application outputs..", e);
-// throw new RegistryException(e);
-// }
- return null;
- }
-
- public TaskStatus getTaskStatus(String taskId) throws RegistryException {
-// try {
-// ExperimentResource resource = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) resource.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = workflowNode.getTaskDetail(taskId);
-// StatusResource taskStatus = taskDetail.getTaskStatus();
-// return ThriftDataModelConversion.getTaskStatus(taskStatus);
-// } catch (Exception e) {
-// logger.error("Error while getting experiment outputs..", e);
-// throw new RegistryException(e);
-// }
- return null;
- }
-
-
- // ids contains task id + job id
- public JobModel getJobDetails(CompositeIdentifier ids) throws RegistryException {
-// try {
-// ExperimentResource resource = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) resource.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = workflowNode.getTaskDetail((String) ids.getTopLevelIdentifier());
-// JobDetailResource jobDetail = taskDetail.getJobDetail((String) ids.getSecondLevelIdentifier());
-// return ThriftDataModelConversion.getJobDetail(jobDetail);
-// } catch (Exception e) {
-// logger.error("Error while getting job details..", e);
-// throw new RegistryException(e);
-// }
- return null;
- }
-
- // ids contains task id + job id
- public JobStatus getJobStatus(CompositeIdentifier ids) throws RegistryException {
-// try {
-// ExperimentResource resource = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) resource.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = workflowNode.getTaskDetail((String) ids.getTopLevelIdentifier());
-// JobDetailResource jobDetail = taskDetail.getJobDetail((String) ids.getSecondLevelIdentifier());
-// StatusResource jobStatus = jobDetail.getJobStatus();
-// return ThriftDataModelConversion.getJobStatus(jobStatus);
-// } catch (Exception e) {
-// logger.error("Error while getting job status..", e);
-// throw new RegistryException(e);
-// }
- return null;
- }
-
-// public ApplicationStatus getApplicationStatus(CompositeIdentifier ids) throws RegistryException {
-// try {
-// ExperimentResource resource = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) resource.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = workflowNode.getTaskDetail((String) ids.getTopLevelIdentifier());
-// JobDetailResource jobDetail = taskDetail.getJobDetail((String) ids.getSecondLevelIdentifier());
-// StatusResource applicationStatus = jobDetail.getApplicationStatus();
-// return ThriftDataModelConversion.getApplicationStatus(applicationStatus);
-// } catch (Exception e) {
-// logger.error("Error while getting application status..", e);
-// throw new RegistryException(e);
-// }
-// }
-
-// public DataTransferDetails getDataTransferDetails(String transferId) throws RegistryException {
-// try {
-// ExperimentResource resource = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) resource.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = (TaskDetailResource) workflowNode.create(ResourceType.TASK_DETAIL);
-// DataTransferDetailResource dataTransferDetail = taskDetail.getDataTransferDetail(transferId);
-// return ThriftDataModelConversion.getDataTransferDetail(dataTransferDetail);
-// } catch (Exception e) {
-// logger.error("Error while getting data transfer details..", e);
-// throw new RegistryException(e);
-// }
-// }
-//
-// public TransferStatus getDataTransferStatus(String transferId) throws RegistryException {
-// try {
-// ExperimentResource resource = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) resource.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = (TaskDetailResource) workflowNode.create(ResourceType.TASK_DETAIL);
-// DataTransferDetailResource dataTransferDetail = taskDetail.getDataTransferDetail(transferId);
-// StatusResource dataTransferStatus = dataTransferDetail.getDataTransferStatus();
-// return ThriftDataModelConversion.getTransferStatus(dataTransferStatus);
-// } catch (Exception e) {
-// logger.error("Error while getting data transfer status..", e);
-// throw new RegistryException(e);
-// }
-// }
-
-// public List<String> getWorkflowNodeIds(String fieldName, Object value) throws RegistryException {
-// List<String> wfIds = new ArrayList<String>();
-// List<WorkflowNodeDetails> wfNodeDetails = getWFNodeDetails(fieldName, value);
-// for (WorkflowNodeDetails wf : wfNodeDetails) {
-// wfIds.add(wf.getNodeInstanceId());
-// }
-// return wfIds;
-// }
-
-//
-// public List<String> getTransferDetailIds(String fieldName, Object value) throws RegistryException {
-// List<String> transferIds = new ArrayList<String>();
-// List<DataTransferDetails> dataTransferDetails = getDataTransferDetails(fieldName, value);
-// for (DataTransferDetails dtd : dataTransferDetails) {
-// transferIds.add(dtd.getTransferID());
-// }
-// return transferIds;
-// }
-
-
- public void removeJobDetails(CompositeIdentifier ids) throws RegistryException {
-// try {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource nodeDetailResource = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetailResource = nodeDetailResource.getTaskDetail((String) ids.getTopLevelIdentifier());
-// taskDetailResource.remove(ResourceType.JOB_DETAIL, (String) ids.getSecondLevelIdentifier());
-// } catch (Exception e) {
-// logger.error("Error while removing job details..", e);
-// throw new RegistryException(e);
-// }
- }
-
- public void removeDataTransferDetails(String transferId) throws RegistryException {
-// try {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource nodeDetailResource = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = (TaskDetailResource) nodeDetailResource.create(ResourceType.TASK_DETAIL);
-// taskDetail.remove(ResourceType.DATA_TRANSFER_DETAIL, transferId);
-// } catch (Exception e) {
-// logger.error("Error while removing transfer details..", e);
-// throw new RegistryException(e);
-// }
- }
-
- public void removeComputationalScheduling(ExperimentCatalogModelType dataType, String id) throws RegistryException {
-// try {
-// switch (dataType) {
-// case EXPERIMENT:
-// ExperimentResource experiment = gatewayResource.getExperiment(id);
-// experiment.remove(ResourceType.COMPUTATIONAL_RESOURCE_SCHEDULING, id);
-// break;
-// case TASK_DETAIL:
-// ExperimentResource resource = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource wf = (WorkflowNodeDetailResource) resource.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = wf.getTaskDetail(id);
-// taskDetail.remove(ResourceType.COMPUTATIONAL_RESOURCE_SCHEDULING, id);
-// break;
-// default:
-// logger.error("Unsupported data type...");
-// }
-// } catch (Exception e) {
-// logger.error("Error while removing scheduling data..", e);
-// throw new RegistryException(e);
-// }
- }
-
- public void removeInputDataHandling(ExperimentCatalogModelType dataType, String id) throws RegistryException {
-// try {
-// switch (dataType) {
-// case EXPERIMENT:
-// ExperimentResource experiment = gatewayResource.getExperiment(id);
-// experiment.remove(ResourceType.ADVANCE_INPUT_DATA_HANDLING, id);
-// break;
-// case TASK_DETAIL:
-// ExperimentResource resource = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource wf = (WorkflowNodeDetailResource) resource.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = wf.getTaskDetail(id);
-// taskDetail.remove(ResourceType.ADVANCE_INPUT_DATA_HANDLING, id);
-// break;
-// default:
-// logger.error("Unsupported data type...");
-// }
-// } catch (Exception e) {
-// logger.error("Error while removing input data handling..", e);
-// throw new RegistryException(e);
-// }
- }
-
- public void removeOutputDataHandling(ExperimentCatalogModelType dataType, String id) throws RegistryException {
-// try {
-// switch (dataType) {
-// case EXPERIMENT:
-// ExperimentResource experiment = gatewayResource.getExperiment(id);
-// experiment.remove(ResourceType.ADVANCE_OUTPUT_DATA_HANDLING, id);
-// break;
-// case TASK_DETAIL:
-// ExperimentResource resource = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource wf = (WorkflowNodeDetailResource) resource.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = wf.getTaskDetail(id);
-// taskDetail.remove(ResourceType.ADVANCE_OUTPUT_DATA_HANDLING, id);
-// break;
-// default:
-// logger.error("Unsupported data type...");
-// }
-// } catch (Exception e) {
-// logger.error("Error while removing output data handling..", e);
-// throw new RegistryException(e);
-// }
- }
-
- public void removeQOSParams(ExperimentCatalogModelType dataType, String id) throws RegistryException {
-// try {
-// switch (dataType) {
-// case EXPERIMENT:
-// ExperimentResource experiment = gatewayResource.getExperiment(id);
-// experiment.remove(ResourceType.QOS_PARAM, id);
-// break;
-// default:
-// logger.error("Unsupported data type...");
-// }
-// } catch (Exception e) {
-// logger.error("Error while removing QOS params", e);
-// throw new RegistryException(e);
-// }
- }
-
- public boolean isExperimentExist(String expID) throws RegistryException {
- try {
- return gatewayResource.isExists(ResourceType.EXPERIMENT, expID);
- } catch (Exception e) {
- logger.error("Error while retrieving experiment...", e);
- throw new RegistryException(e);
- }
- }
-
- public boolean isExperimentConfigDataExist(String expID) throws RegistryException {
-// try {
-// ExperimentResource experiment = gatewayResource.getExperiment(expID);
-// experiment.isExists(ResourceType.CONFIG_DATA, expID);
-// return true;
-// } catch (Exception e) {
-// logger.error("Error while retrieving experiment...", e);
-// throw new RegistryException(e);
-// }
- return false;
- }
-
- public boolean isWFNodeExist(String nodeId) throws RegistryException {
-// try {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// return experiment.isExists(ResourceType.WORKFLOW_NODE_DETAIL, nodeId);
-// } catch (Exception e) {
-// logger.error("Error while retrieving workflow...", e);
-// throw new RegistryException(e);
-// }
- return false;
- }
-
- public boolean isTaskDetailExist(String taskId) throws RegistryException {
-// try {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource wf = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// return wf.isExists(ResourceType.TASK_DETAIL, taskId);
-// } catch (Exception e) {
-// logger.error("Error while retrieving task.....", e);
-// throw new RegistryException(e);
-// }
- return false;
- }
-
- public boolean isJobDetailExist(CompositeIdentifier ids) throws RegistryException {
-// try {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource wf = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = wf.getTaskDetail((String) ids.getTopLevelIdentifier());
-// return taskDetail.isExists(ResourceType.JOB_DETAIL, (String) ids.getSecondLevelIdentifier());
-// } catch (Exception e) {
-// logger.error("Error while retrieving job details.....", e);
-// throw new RegistryException(e);
-// }
- return false;
- }
-
- public boolean isTransferDetailExist(String transferId) throws RegistryException {
-// try {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource wf = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = (TaskDetailResource) wf.create(ResourceType.TASK_DETAIL);
-// return taskDetail.isExists(ResourceType.DATA_TRANSFER_DETAIL, transferId);
-// } catch (Exception e) {
-// logger.error("Error while retrieving transfer details.....", e);
-// throw new RegistryException(e);
-// }
- return false;
- }
-
- public boolean isComputationalSchedulingExist(ExperimentCatalogModelType dataType, String id) throws RegistryException {
-// try {
-// switch (dataType) {
-// case EXPERIMENT:
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// return experiment.isExists(ResourceType.COMPUTATIONAL_RESOURCE_SCHEDULING, id);
-// case TASK_DETAIL:
-// ExperimentResource exp = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource wf = (WorkflowNodeDetailResource) exp.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = wf.getTaskDetail(id);
-// return taskDetail.isExists(ResourceType.COMPUTATIONAL_RESOURCE_SCHEDULING, id);
-// default:
-// logger.error("Unsupported data type...");
-//
-// }
-// } catch (Exception e) {
-// logger.error("Error while retrieving scheduling data.....", e);
-// throw new RegistryException(e);
-// }
- return false;
- }
-
- public boolean isInputDataHandlingExist(ExperimentCatalogModelType dataType, String id) throws RegistryException {
-// try {
-// switch (dataType) {
-// case EXPERIMENT:
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// return experiment.isExists(ResourceType.ADVANCE_INPUT_DATA_HANDLING, id);
-// case TASK_DETAIL:
-// ExperimentResource exp = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource wf = (WorkflowNodeDetailResource) exp.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = wf.getTaskDetail(id);
-// return taskDetail.isExists(ResourceType.ADVANCE_INPUT_DATA_HANDLING, id);
-// default:
-// logger.error("Unsupported data type...");
-// }
-// } catch (Exception e) {
-// logger.error("Error while retrieving input data handling.....", e);
-// throw new RegistryException(e);
-// }
- return false;
- }
-
- public boolean isOutputDataHandlingExist(ExperimentCatalogModelType dataType, String id) throws RegistryException {
-// try {
-// switch (dataType) {
-// case EXPERIMENT:
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// return experiment.isExists(ResourceType.ADVANCE_OUTPUT_DATA_HANDLING, id);
-// case TASK_DETAIL:
-// ExperimentResource exp = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource wf = (WorkflowNodeDetailResource) exp.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = wf.getTaskDetail(id);
-// return taskDetail.isExists(ResourceType.ADVANCE_OUTPUT_DATA_HANDLING, id);
-// default:
-// logger.error("Unsupported data type...");
-// }
-// } catch (Exception e) {
-// logger.error("Error while retrieving output data handling..", e);
-// throw new RegistryException(e);
-// }
- return false;
- }
-
- public boolean isQOSParamsExist(ExperimentCatalogModelType dataType, String id) throws RegistryException {
-// try {
-// switch (dataType) {
-// case EXPERIMENT:
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// return experiment.isExists(ResourceType.QOS_PARAM, id);
-//// case TASK_DETAIL:
-//// ExperimentResource exp = (ExperimentResource)defaultGateway.create(ResourceType.EXPERIMENT);
-//// WorkflowNodeDetailResource wf = (WorkflowNodeDetailResource)exp.create(ResourceType.WORKFLOW_NODE_DETAIL);
-//// TaskDetailResource taskDetail = wf.getTaskDetail(id);
-//// return taskDetail.isExists(ResourceType.ADVANCE_OUTPUT_DATA_HANDLING, id);
-// default:
-// logger.error("Unsupported data type...");
-// }
-// } catch (Exception e) {
-// logger.error("Error while retrieving qos params..", e);
-// throw new RegistryException(e);
-// }
- return false;
- }
-
- public void updateScheduling(ComputationalResourceSchedulingModel scheduling, String id, String type) throws RegistryException {
-// try {
-// if (type.equals(ExperimentCatalogModelType.EXPERIMENT.toString())) {
-// ExperimentResource experiment = gatewayResource.getExperiment(id);
-// updateSchedulingData(scheduling, experiment);
-// } else if (type.equals(ExperimentCatalogModelType.TASK_DETAIL.toString())) {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = workflowNode.getTaskDetail(id);
-// updateSchedulingData(scheduling, taskDetail);
-// }
-// } catch (Exception e) {
-// logger.error("Error while updating scheduling..", e);
-// throw new RegistryException(e);
-// }
- }
-
-// public void updateInputDataHandling(AdvancedInputDataHandling dataHandling, String id, String type) throws RegistryException {
-// try {
-// if (type.equals(ExperimentCatalogModelType.EXPERIMENT.toString())) {
-// ExperimentResource experiment = gatewayResource.getExperiment(id);
-// updateInputDataHandling(dataHandling, experiment);
-// } else if (type.equals(ExperimentCatalogModelType.TASK_DETAIL.toString())) {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = workflowNode.getTaskDetail(id);
-// updateInputDataHandling(dataHandling, taskDetail);
-// }
-// } catch (Exception e) {
-// logger.error("Error while updating input data handling..", e);
-// throw new RegistryException(e);
-// }
-// }
-//
-// public void updateOutputDataHandling(AdvancedOutputDataHandling dataHandling, String id, String type) throws RegistryException {
-// try {
-// if (type.equals(ExperimentCatalogModelType.EXPERIMENT.toString())) {
-// ExperimentResource experiment = gatewayResource.getExperiment(id);
-// updateOutputDataHandling(dataHandling, experiment);
-// } else if (type.equals(ExperimentCatalogModelType.TASK_DETAIL.toString())) {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = workflowNode.getTaskDetail(id);
-// updateOutputDataHandling(dataHandling, taskDetail);
-// }
-// } catch (Exception e) {
-// logger.error("Error while updating output data handling", e);
-// throw new RegistryException(e);
-// }
-// }
-//
-// public void updateQOSParams(QualityOfServiceParams params, String id, String type) throws RegistryException {
-// try {
-// if (type.equals(ExperimentCatalogModelType.EXPERIMENT.toString())) {
-// ExperimentResource experiment = gatewayResource.getExperiment(id);
-// updateQosParams(params, experiment);
-// } else if (type.equals(ExperimentCatalogModelType.TASK_DETAIL.toString())) {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = workflowNode.getTaskDetail(id);
-// updateQosParams(params, taskDetail);
-// }
-// } catch (Exception e) {
-// logger.error("Error while updating QOS data..", e);
-// throw new RegistryException(e);
-// }
-// }
-
- /**
- * To search the experiments of user with the given filter criteria and retrieve the results with
- * pagination support. Results can be ordered based on an identifier (i.e column) either ASC or
- * DESC.
- *
- * @param filters
- * @param limit
- * @param offset
- * @param orderByIdentifier
- * @param resultOrderType
- * @return
- * @throws RegistryException
- */
public boolean isValidStatusTransition(Object object1, Object object2) {
if (object1 instanceof ExperimentState && object2 instanceof ExperimentState) {
[4/9] airavata git commit: Fixing get and search CPI methods in the
experiment registry class
Posted by sc...@apache.org.
Fixing get and search CPI methods in the experiment registry class
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/bce94ae9
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/bce94ae9
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/bce94ae9
Branch: refs/heads/master
Commit: bce94ae9379f937f1418500e22c50dd8540f8737
Parents: 1968ff4
Author: Supun Nakandala <sc...@apache.org>
Authored: Sun Jun 21 23:09:16 2015 +0530
Committer: Supun Nakandala <sc...@apache.org>
Committed: Sun Jun 21 23:09:16 2015 +0530
----------------------------------------------------------------------
.../catalog/impl/ExperimentCatalogImpl.java | 4 +-
.../catalog/impl/ExperimentRegistry.java | 1241 +++++-------------
.../resources/AbstractExpCatResource.java | 3 +
.../utils/ThriftDataModelConversion.java | 15 +
.../airavata/registry/cpi/utils/Constants.java | 62 +-
5 files changed, 346 insertions(+), 979 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/bce94ae9/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
index 4fa7a1b..97fa40e 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
@@ -317,7 +317,7 @@ public class ExperimentCatalogImpl implements ExperimentCatalog {
case EXPERIMENT_STATUS:
return experimentRegistry.getExperimentStatus((String) identifier);
case EXPERIMENT_ERROR:
- return experimentRegistry.getExperimentError((String) identifier);
+ return experimentRegistry.getExperimentErrors((String) identifier);
case PROCESS:
return experimentRegistry.getProcess((String) identifier, null);
case PROCESS_RESOURCE_SCHEDULE:
@@ -331,7 +331,7 @@ public class ExperimentCatalogImpl implements ExperimentCatalog {
case PROCESS_ERROR:
return experimentRegistry.getProcessError((String) identifier);
case TASK:
- return experimentRegistry.getTask((String) identifier);
+ return experimentRegistry.getTask((String) identifier, null);
case TASK_STATUS:
return experimentRegistry.getTaskStatus((String) identifier);
case TASK_ERROR:
http://git-wip-us.apache.org/repos/asf/airavata/blob/bce94ae9/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
index 442b6b8..aa0bb41 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
@@ -49,10 +49,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.sql.Timestamp;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
+import java.util.*;
public class ExperimentRegistry {
private GatewayResource gatewayResource;
@@ -608,13 +605,12 @@ public class ExperimentRegistry {
return experimentId;
}
- public void updateProcess(ProcessModel process, String experimentId) throws RegistryException {
+ public void updateProcess(ProcessModel process, String processId) throws RegistryException {
try {
ExperimentResource experimentResource = new ExperimentResource();
- experimentResource.setExperimentId(experimentId);
- ProcessResource processResource = experimentResource.getProcess(process.getProcessId());
+ ProcessResource processResource = experimentResource.getProcess(processId);
processResource.setProcessId(process.getProcessId());
- processResource.setExperimentId(experimentId);
+ processResource.setExperimentId(process.getExperimentId());
processResource.setCreationTime(AiravataUtils.getTime(process.getCreationTime()));
processResource.setLastUpdateTime(AiravataUtils.getTime(process.getLastUpdateTime()));
processResource.setProcessDetail(process.getProcessDetail());
@@ -735,12 +731,11 @@ public class ExperimentRegistry {
return addProcessError(processError, processID);
}
- public String updateTask(TaskModel task, String processID) throws RegistryException {
+ public String updateTask(TaskModel task, String taskID) throws RegistryException {
try {
ProcessResource processResource = new ProcessResource();
- processResource.setProcessId(processID);
- TaskResource taskResource = processResource.getTask(task.getTaskId());
- taskResource.setParentProcessId(getProcessID(processID));
+ TaskResource taskResource = processResource.getTask(taskID);
+ taskResource.setParentProcessId(task.getParentProcessId());
taskResource.setTaskType(task.getTaskType().toString());
taskResource.setCreationTime(AiravataUtils.getTime(task.getCreationTime()));
taskResource.setLastUpdateTime(AiravataUtils.getTime(task.getLastUpdateTime()));
@@ -755,10 +750,10 @@ public class ExperimentRegistry {
updateTaskError(task.getTaskError(), task.getTaskId());
}
} catch (Exception e) {
- logger.error(processID, "Error while adding task...", e);
+ logger.error(taskID, "Error while adding task...", e);
throw new RegistryException(e);
}
- return processID;
+ return taskID;
}
public String updateTaskStatus(TaskStatus taskStatus, String taskID) throws RegistryException {
@@ -779,13 +774,12 @@ public class ExperimentRegistry {
} else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.USER_NAME)) {
experiment.setUserName((String) value);
experiment.save();
- } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.EXPERIMENT_DESC)) {
+ } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.DESCRIPTION)) {
experiment.setDescription((String) value);
experiment.save();
} else {
logger.error("Unsupported field type for Experiment");
}
-
} catch (Exception e) {
logger.error("Error while updating fields in experiment...", e);
throw new RegistryException(e);
@@ -797,16 +791,16 @@ public class ExperimentRegistry {
ExperimentResource experiment = gatewayResource.getExperiment(expID);
UserConfigurationDataResource exConfigData = (UserConfigurationDataResource)
experiment.get(ResourceType.USER_CONFIGURATION_DATA, expID);
- if (fieldName.equals(Constants.FieldConstants.ConfigurationDataConstants.AIRAVATA_AUTO_SCHEDULE)) {
+ if (fieldName.equals(Constants.FieldConstants.UserConfigurationDataConstants.AIRAVATA_AUTO_SCHEDULE)) {
exConfigData.setAiravataAutoSchedule((Boolean) value);
exConfigData.save();
- } else if (fieldName.equals(Constants.FieldConstants.ConfigurationDataConstants.OVERRIDE_MANUAL_PARAMS)) {
+ } else if (fieldName.equals(Constants.FieldConstants.UserConfigurationDataConstants.OVERRIDE_MANUAL_PARAMS)) {
exConfigData.setOverrideManualScheduledParams((Boolean) value);
exConfigData.save();
- } else if (fieldName.equals(Constants.FieldConstants.ConfigurationDataConstants.SHARE_EXP)) {
+ } else if (fieldName.equals(Constants.FieldConstants.UserConfigurationDataConstants.SHARE_EXP)) {
exConfigData.setShareExperimentPublically((Boolean) value);
exConfigData.save();
- } else if (fieldName.equals(Constants.FieldConstants.ConfigurationDataConstants.COMPUTATIONAL_RESOURCE_SCHEDULING)) {
+ } else if (fieldName.equals(Constants.FieldConstants.UserConfigurationDataConstants.COMPUTATIONAL_RESOURCE_SCHEDULING)) {
updateSchedulingData((ComputationalResourceSchedulingModel) value, experiment);
} else {
logger.error("Unsupported field type for Experiment config data");
@@ -818,588 +812,319 @@ public class ExperimentRegistry {
}
}
+ //CPI get methods
+ public Object getExperiment(String expId, String fieldName) throws RegistryException {
+ try {
+ ExperimentResource resource = gatewayResource.getExperiment(expId);
+ if (fieldName == null) {
+ return ThriftDataModelConversion.getExperiment(resource);
+ } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.USER_NAME)) {
+ return resource.getUserName();
+ }else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.GATEWAY_EXECUTION_ID)) {
+ return resource.getGatewayExecutionId();
+ } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.EXPERIMENT_NAME)) {
+ return resource.getExperimentName();
+ } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.DESCRIPTION)) {
+ return resource.getDescription();
+ } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.EXECUTION_ID)) {
+ return resource.getExecutionId();
+ } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.PROJECT_ID)) {
+ return resource.getProjectId();
+ } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.EXPERIMENT_INPUTS)) {
+ return ThriftDataModelConversion.getExpInputs(resource.getExperimentInputs());
+ } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.EXPERIMENT_OUTPUTS)) {
+ return ThriftDataModelConversion.getExpOutputs(resource.getExperimentOutputs());
+ } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.EXPERIMENT_STATUS)) {
+ return ThriftDataModelConversion.getExperimentStatus(resource.getExperimentStatus());
+ } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.EXPERIMENT_ERRORS)) {
+ return ThriftDataModelConversion.getExperimentErrorList(resource.getExperimentErrors());
+ } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.USER_CONFIGURATION_DATA)) {
+ return ThriftDataModelConversion.getUserConfigData(resource.getUserConfigurationDataResource());
+ } else {
+ logger.error("Unsupported field name for experiment basic data..");
+ }
+ } catch (Exception e) {
+ logger.error("Error while getting experiment info...", e);
+ throw new RegistryException(e);
+ }
+ return null;
+ }
-// public String addWorkflowNodeStatus(WorkflowNodeStatus status, CompositeIdentifier ids) throws RegistryException {
-// try {
-// ExperimentResource experiment = gatewayResource.getExperiment((String) ids.getTopLevelIdentifier());
-// WorkflowNodeDetailResource workflowNode = experiment.getWorkflowNode((String) ids.getSecondLevelIdentifier());
-// StatusResource statusResource = (StatusResource) experiment.create(ResourceType.STATUS);
-// statusResource.setProcessId(experiment.getExpID());
-// statusResource.setNodeId(workflowNode.getNodeInstanceId());
-// statusResource.setStatusType(StatusType.WORKFLOW_NODE.toString());
-// statusResource.setStatusUpdateTime(AiravataUtils.getTime(status.getTimeOfStateChange()));
-// if (status.getWorkflowNodeState() == null) {
-// statusResource.setState(WorkflowNodeState.UNKNOWN.toString());
-// } else {
-// statusResource.setState(status.getWorkflowNodeState().toString());
-// }
-// statusResource.save();
-// return String.valueOf(statusResource.getStatusId());
-// } catch (Exception e) {
-// logger.error("Error while adding workflow node status...", e);
-// throw new RegistryException(e);
-// }
-// }
-//
-// public String updateWorkflowNodeStatus(WorkflowNodeStatus status, String nodeId) throws RegistryException {
-// try {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = experiment.getWorkflowNode(nodeId);
-// StatusResource statusResource = workflowNode.getWorkflowNodeStatus();
-// if (statusResource == null) {
-// statusResource = (StatusResource) workflowNode.create(ResourceType.STATUS);
-// }
-// statusResource.setProcessId(workflowNode.getProcessId());
-// statusResource.setNodeId(nodeId);
-// statusResource.setStatusType(StatusType.WORKFLOW_NODE.toString());
-// statusResource.setStatusUpdateTime(AiravataUtils.getTime(status.getTimeOfStateChange()));
-// statusResource.setState(status.getWorkflowNodeState().toString());
-// statusResource.save();
-// logger.debugId(nodeId, "Updated workflow node {} status to {}.", nodeId, status.toString());
-// return String.valueOf(statusResource.getStatusId());
-// } catch (Exception e) {
-// logger.errorId(nodeId, "Error while updating workflow node status to " + status.toString() + "...", e);
-// throw new RegistryException(e);
-// }
-// }
+ public Object getExperimentInputs(String expID) throws RegistryException {
+ return getExperiment(expID, Constants.FieldConstants.ExperimentConstants.EXPERIMENT_INPUTS);
+ }
- public String addTaskStatus(TaskStatus status, CompositeIdentifier ids) throws RegistryException {
-// try {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = experiment.getWorkflowNode((String) ids.getTopLevelIdentifier());
-// TaskDetailResource taskDetail = workflowNode.getTaskDetail((String) ids.getSecondLevelIdentifier());
-// StatusResource statusResource = (StatusResource) workflowNode.create(ResourceType.STATUS);
-// statusResource.setExperimentId(workflowNode.getExperimentId());
-// statusResource.setNodeId(workflowNode.getNodeInstanceId());
-// statusResource.setTaskId(taskDetail.getTaskId());
-// statusResource.setStatusType(StatusType.TASK.toString());
-// statusResource.setStatusUpdateTime(AiravataUtils.getTime(status.getTimeOfStateChange()));
-// if (status.getState() == null) {
-//// statusResource.setState(TaskState.UNKNOWN.toString());
-// } else {
-// statusResource.setState(status.getState().toString());
-// }
-// statusResource.save();
-// return String.valueOf(statusResource.getStatusId());
-// } catch (Exception e) {
-// logger.error("Error while adding task status...", e);
-// throw new RegistryException(e);
-// }
+ public Object getExperimentOutputs(String expID) throws RegistryException {
+ return getExperiment(expID, Constants.FieldConstants.ExperimentConstants.EXPERIMENT_OUTPUTS);
+ }
+
+ public Object getExperimentErrors(String expID) throws RegistryException {
+ return getExperiment(expID, Constants.FieldConstants.ExperimentConstants.EXPERIMENT_ERRORS);
+ }
+
+ public Object getExperimentStatus(String expID) throws RegistryException {
+ return getExperiment(expID, Constants.FieldConstants.ExperimentConstants.EXPERIMENT_STATUS);
+ }
+
+ public Object getUserConfigData(String expId, String fieldName) throws RegistryException {
+ try {
+ ExperimentResource resource = gatewayResource.getExperiment(expId);
+ UserConfigurationDataResource userConfigData = resource.getUserConfigurationDataResource();
+ if (fieldName == null) {
+ return ThriftDataModelConversion.getUserConfigData(userConfigData);
+ } else if (fieldName.equals(Constants.FieldConstants.UserConfigurationDataConstants.AIRAVATA_AUTO_SCHEDULE)) {
+ return userConfigData.getAiravataAutoSchedule();
+ } else if (fieldName.equals(Constants.FieldConstants.UserConfigurationDataConstants.OVERRIDE_MANUAL_PARAMS)) {
+ return userConfigData.getOverrideManualScheduledParams();
+ } else if (fieldName.equals(Constants.FieldConstants.UserConfigurationDataConstants.SHARE_EXP)) {
+ return userConfigData.getShareExperimentPublically();
+ } else if (fieldName.equals(Constants.FieldConstants.UserConfigurationDataConstants.COMPUTATIONAL_RESOURCE_SCHEDULING)){
+ return ThriftDataModelConversion.getComputationalResourceScheduling(userConfigData);
+ } else {
+ logger.error("Unsupported field name for experiment configuration data..");
+ }
+ } catch (Exception e) {
+ logger.error("Error while getting config data..", e);
+ throw new RegistryException(e);
+ }
return null;
}
- /**
- * @param status job status
- * @param ids composite id will contain taskid and jobid
- * @return status id
- */
- public String addJobStatus(JobStatus status, CompositeIdentifier ids) throws RegistryException {
-// try {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = workflowNode.getTaskDetail((String) ids.getTopLevelIdentifier());
-// workflowNode = experiment.getWorkflowNode(taskDetail.getNodeId());
-// JobDetailResource jobDetail = taskDetail.getJobDetail((String) ids.getSecondLevelIdentifier());
-// StatusResource statusResource = (StatusResource) jobDetail.create(ResourceType.STATUS);
-// statusResource.setExperimentId(workflowNode.getExperimentId());
-// statusResource.setNodeId(workflowNode.getNodeInstanceId());
-// statusResource.setTaskId(taskDetail.getTaskId());
-// statusResource.setStatusType(StatusType.JOB.toString());
-// statusResource.setStatusUpdateTime(AiravataUtils.getTime(status.getTimeOfStateChange()));
-// if (status.getJobState() == null) {
-// statusResource.setState(JobState.UNKNOWN.toString());
-// } else {
-// statusResource.setState(status.getJobState().toString());
-// }
-// statusResource.save();
-// return String.valueOf(statusResource.getStatusId());
-// } catch (Exception e) {
-// logger.error("Error while adding job status...", e);
-// throw new RegistryException(e);
-// }
+ //Todo
+ public Object getProcess(String processId, String fieldName) throws RegistryException {
+ try {
+ ExperimentResource experimentResource = new ExperimentResource();
+ ProcessResource resource = experimentResource.getProcess(processId);
+ if (fieldName == null) {
+ return ThriftDataModelConversion.getProcesModel(resource);
+ } else {
+ logger.error("Unsupported field name for experiment basic data..");
+ }
+ }catch (Exception e) {
+ logger.error("Error while getting process data..", e);
+ throw new RegistryException(e);
+ }
return null;
}
- public String updateJobStatus(JobStatus status, CompositeIdentifier ids) throws RegistryException {
-// try {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = workflowNode.getTaskDetail((String) ids.getTopLevelIdentifier());
-// JobDetailResource jobDetail = taskDetail.getJobDetail((String) ids.getSecondLevelIdentifier());
-// StatusResource statusResource = jobDetail.getJobStatus();
-// workflowNode = experiment.getWorkflowNode(taskDetail.getNodeId());
-// statusResource.setExperimentId(workflowNode.getExperimentId());
-// statusResource.setNodeId(workflowNode.getNodeInstanceId());
-// statusResource.setTaskId(taskDetail.getTaskId());
-// statusResource.setStatusType(StatusType.JOB.toString());
-// statusResource.setStatusUpdateTime(AiravataUtils.getTime(status.getTimeOfStateChange()));
-// statusResource.setState(status.getJobState().toString());
-// statusResource.save();
-// logger.info(ids.toString(), "Updated job status to {}", status.toString());
-// return String.valueOf(statusResource.getStatusId());
-// } catch (Exception e) {
-// logger.error(ids.toString(), "Error while updating job status to " + status.toString() + " ...", e);
-// throw new RegistryException(e);
-// }
+ public Object getProcessError(String identifier) {
return null;
}
-// /**
-// * @param status application status
-// * @param ids composite id will contain taskid and jobid
-// * @return status id
-// */
-// public String addApplicationStatus(ApplicationStatus status, CompositeIdentifier ids) throws RegistryException {
-// try {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = workflowNode.getTaskDetail((String) ids.getTopLevelIdentifier());
-// JobDetailResource jobDetail = taskDetail.getJobDetail((String) ids.getSecondLevelIdentifier());
-// StatusResource statusResource = (StatusResource) jobDetail.create(ResourceType.STATUS);
-// workflowNode = experiment.getWorkflowNode(taskDetail.getNodeId());
-// statusResource.setProcessId(workflowNode.getProcessId());
-// statusResource.setNodeId(workflowNode.getNodeInstanceId());
-// statusResource.setTaskId(taskDetail.getTaskId());
-// statusResource.setStatusType(StatusType.APPLICATION.toString());
-// statusResource.setStatusUpdateTime(AiravataUtils.getTime(status.getTimeOfStateChange()));
-// if (status.getApplicationState() == null) {
-// statusResource.setState("UNKNOWN");
-// } else {
-// statusResource.setState(status.getApplicationState());
-// }
-// statusResource.save();
-// return String.valueOf(statusResource.getStatusId());
-// } catch (Exception e) {
-// logger.error("Unable to read airavata-server properties", e);
-// throw new RegistryException(e);
-// }
-// }
-//
-// public void updateApplicationStatus(ApplicationStatus status, String jobId) throws RegistryException {
-// try {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = (TaskDetailResource) workflowNode.create(ResourceType.TASK_DETAIL);
-// JobDetailResource jobDetail = taskDetail.getJobDetail(jobId);
-// StatusResource statusResource = jobDetail.getApplicationStatus();
-// workflowNode = experiment.getWorkflowNode(taskDetail.getNodeId());
-// statusResource.setProcessId(workflowNode.getProcessId());
-// statusResource.setNodeId(workflowNode.getNodeInstanceId());
-// statusResource.setTaskId(taskDetail.getTaskId());
-// statusResource.setStatusType(StatusType.APPLICATION.toString());
-// statusResource.setStatusUpdateTime(AiravataUtils.getTime(status.getTimeOfStateChange()));
-// statusResource.setState(status.getApplicationState());
-// statusResource.save();
-// } catch (Exception e) {
-// logger.error("Error while updating application status...", e);
-// throw new RegistryException(e);
-// }
-// }
+ public Object getProcessStatus(String identifier) {
+ return null;
+ }
+ public Object getProcessInputs(String identifier) {
+ return null;
+ }
-// public String addTransferStatus(TransferStatus status, CompositeIdentifier ids) throws RegistryException {
-// try {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = workflowNode.getTaskDetail((String) ids.getTopLevelIdentifier());
-// DataTransferDetailResource dataTransferDetail = taskDetail.getDataTransferDetail((String) ids.getSecondLevelIdentifier());
-// StatusResource statusResource = (StatusResource) dataTransferDetail.create(ResourceType.STATUS);
-// workflowNode = experiment.getWorkflowNode(taskDetail.getNodeId());
-// statusResource.setProcessId(workflowNode.getProcessId());
-// statusResource.setNodeId(workflowNode.getNodeInstanceId());
-// statusResource.setTaskId(taskDetail.getTaskId());
-// statusResource.setTransferId(dataTransferDetail.getTransferId());
-// statusResource.setStatusType(StatusType.DATA_TRANSFER.toString());
-// statusResource.setStatusUpdateTime(AiravataUtils.getTime(status.getTimeOfStateChange()));
-// if (status.getTransferState() == null) {
-// statusResource.setState(TransferState.UNKNOWN.toString());
-// } else {
-// statusResource.setState(status.getTransferState().toString());
-// }
-// statusResource.save();
-// return String.valueOf(statusResource.getStatusId());
-// } catch (Exception e) {
-// logger.error("Error while adding transfer status...", e);
-// throw new RegistryException(e);
-// }
-// }
-//
-// public void updateTransferStatus(TransferStatus status, String transferId) throws RegistryException {
-// try {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = (TaskDetailResource) workflowNode.create(ResourceType.TASK_DETAIL);
-// DataTransferDetailResource dataTransferDetail = taskDetail.getDataTransferDetail(transferId);
-// StatusResource statusResource = dataTransferDetail.getDataTransferStatus();
-//
-// String taskId = dataTransferDetail.getTaskId();
-// taskDetail = workflowNode.getTaskDetail(taskId);
-// workflowNode = experiment.getWorkflowNode(taskDetail.getNodeId());
-// if (workflowNode != null) {
-// statusResource.setProcessId(workflowNode.getProcessId());
-// statusResource.setNodeId(workflowNode.getNodeInstanceId());
-// }
-// statusResource.setTaskId(taskId);
-// statusResource.setTransferId(transferId);
-// statusResource.setStatusType(StatusType.DATA_TRANSFER.toString());
-// statusResource.setStatusUpdateTime(AiravataUtils.getTime(status.getTimeOfStateChange()));
-// statusResource.setState(status.getTransferState().toString());
-// statusResource.save();
-// } catch (Exception e) {
-// logger.error("Error while updating transfer status...", e);
-// throw new RegistryException(e);
-// }
-// }
-//
-// public String addWorkflowNodeDetails(WorkflowNodeDetails nodeDetails, String expId) throws RegistryException {
-// try {
-// ExperimentResource experiment = gatewayResource.getExperiment(expId);
-// WorkflowNodeDetailResource resource = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// resource.setProcessId(expId);
-// resource.setNodeName(nodeDetails.getNodeName());
-// resource.setExecutionUnit(nodeDetails.getExecutionUnit().toString());
-// resource.setExecutionUnitData(nodeDetails.getExecutionUnitData());
-// resource.setCreationTime(AiravataUtils.getTime(nodeDetails.getCreationTime()));
-// resource.setNodeInstanceId(getNodeInstanceID(nodeDetails.getNodeName()));
-// resource.save();
-// String nodeId = resource.getNodeInstanceId();
-// List<InputDataObjectType> nodeInputs = nodeDetails.getNodeInputs();
-// if (nodeInputs != null) {
-// addWorkflowInputs(nodeDetails.getNodeInputs(), resource);
-// }
-// List<OutputDataObjectType> nodeOutputs = nodeDetails.getNodeOutputs();
-// if (nodeOutputs != null && !nodeOutputs.isEmpty()) {
-// CompositeIdentifier ids = new CompositeIdentifier(expId, nodeId);
-// addNodeOutputs(nodeOutputs, ids);
-// }
-// WorkflowNodeStatus workflowNodeStatus = nodeDetails.getWorkflowNodeStatus();
-// CompositeIdentifier ids = new CompositeIdentifier(expId, nodeId);
-// if (workflowNodeStatus == null) {
-// workflowNodeStatus = new WorkflowNodeStatus();
-// }
-//// if (workflowNodeStatus.getWorkflowNodeState() != null){
-//// WorkflowNodeStatus status = getWorkflowNodeStatus(nodeId);
-//// if (status != null){
-//// updateWorkflowNodeStatus(workflowNodeStatus, nodeId);
-//// }else {
-//// addWorkflowNodeStatus(workflowNodeStatus,ids);
-//// }
-//// }else {
-//// workflowNodeStatus.setWorkflowNodeState(WorkflowNodeState.UNKNOWN);
-//// addWorkflowNodeStatus(workflowNodeStatus, ids);
-//// }
-// workflowNodeStatus.setWorkflowNodeState(WorkflowNodeState.UNKNOWN);
-// addWorkflowNodeStatus(workflowNodeStatus, ids);
-// List<TaskDetails> taskDetails = nodeDetails.getTaskDetailsList();
-// if (taskDetails != null && !taskDetails.isEmpty()) {
-// for (TaskDetails task : taskDetails) {
-// addTaskDetails(task, nodeId);
-// }
-// }
-// List<ErrorDetails> errors = nodeDetails.getErrors();
-// if (errors != null && !errors.isEmpty()) {
-// for (ErrorDetails error : errors) {
-// addErrorDetails(error, nodeId);
-// }
-// }
-// return nodeId;
-// } catch (Exception e) {
-// logger.error("Error while adding workflow node details...", e);
-// throw new RegistryException(e);
-// }
-// }
-//
-// public void updateWorkflowNodeDetails(WorkflowNodeDetails nodeDetails, String nodeId) throws RegistryException {
-// try {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = experiment.getWorkflowNode(nodeId);
-// workflowNode.setNodeName(nodeDetails.getNodeName());
-// workflowNode.setExecutionUnit(nodeDetails.getExecutionUnit().toString());
-// workflowNode.setExecutionUnitData(nodeDetails.getExecutionUnitData());
-// workflowNode.setCreationTime(AiravataUtils.getTime(nodeDetails.getCreationTime()));
-// workflowNode.setNodeInstanceId(nodeId);
-// workflowNode.save();
-// String expID = workflowNode.getProcessId();
-// List<InputDataObjectType> nodeInputs = nodeDetails.getNodeInputs();
-// if (nodeInputs != null) {
-// updateWorkflowInputs(nodeDetails.getNodeInputs(), workflowNode);
-// }
-// List<OutputDataObjectType> nodeOutputs = nodeDetails.getNodeOutputs();
-// if (nodeOutputs != null && !nodeOutputs.isEmpty()) {
-// updateNodeOutputs(nodeOutputs, nodeId);
-// }
-// WorkflowNodeStatus workflowNodeStatus = nodeDetails.getWorkflowNodeStatus();
-// if (workflowNodeStatus != null) {
-// if (isWFNodeExist(nodeId)) {
-// updateWorkflowNodeStatus(workflowNodeStatus, nodeId);
-// } else {
-// CompositeIdentifier ids = new CompositeIdentifier(expID, nodeId);
-// addWorkflowNodeStatus(workflowNodeStatus, ids);
-// }
-// }
-// List<TaskDetails> taskDetails = nodeDetails.getTaskDetailsList();
-// if (taskDetails != null && !taskDetails.isEmpty()) {
-// for (TaskDetails task : taskDetails) {
-// String taskID = task.getTaskID();
-// if (isTaskDetailExist(taskID)) {
-// updateTaskDetails(task, taskID);
-// } else {
-// addTaskDetails(task, nodeId);
-// }
-// }
-// }
-// List<ErrorDetails> errors = nodeDetails.getErrors();
-// if (errors != null && !errors.isEmpty()) {
-// for (ErrorDetails error : errors) {
-// addErrorDetails(error, nodeId);
-// }
-// }
-// } catch (Exception e) {
-// logger.error("Error while updating workflow node details...", e);
-// throw new RegistryException(e);
-// }
-// }
+ public Object getProcessOutputs(String identifier) {
+ return null;
+ }
+ public Object getProcessResourceSchedule(String identifier, Object o) {
+ return null;
+ }
-// public String addTaskDetails(TaskModel taskDetails, String nodeId) throws RegistryException {
-// try {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = experiment.getWorkflowNode(nodeId);
-// TaskDetailResource taskDetail = (TaskDetailResource) workflowNode.create(ResourceType.TASK_DETAIL);
-// taskDetail.setNodeId(nodeId);
-// taskDetail.setTaskId(getTaskID(workflowNode.getNodeName()));
-// taskDetail.setApplicationId(taskDetails.getApplicationId());
-// taskDetail.setApplicationVersion(taskDetails.getApplicationVersion());
-// taskDetail.setCreationTime(AiravataUtils.getTime(taskDetails.getCreationTime()));
-// taskDetail.setEnableEmailNotifications(taskDetails.isEnableEmailNotification());
-// taskDetail.save();
-//
-// List<String> emailAddresses = taskDetails.getEmailAddresses();
-// if (emailAddresses != null && !emailAddresses.isEmpty()){
-// for (String email : emailAddresses){
-// NotificationEmailResource emailResource = new NotificationEmailResource();
-// emailResource.setProcessId(workflowNode.getProcessId());
-// emailResource.setTaskId(taskDetail.getTaskId());
-// emailResource.setEmailAddress(email);
-// emailResource.save();
-// }
-// }
-//
-// List<InputDataObjectType> applicationInputs = taskDetails.getApplicationInputs();
-// if (applicationInputs != null) {
-// addAppInputs(applicationInputs, taskDetail);
-// }
-// List<OutputDataObjectType> applicationOutput = taskDetails.getApplicationOutputs();
-// if (applicationOutput != null) {
-// addAppOutputs(applicationOutput, taskDetail);
-// }
-// ComputationalResourceSchedulingModel taskScheduling = taskDetails.getTaskScheduling();
-// if (taskScheduling != null) {
-// addComputationScheduling(taskScheduling, taskDetail);
-// }
-//// AdvancedInputDataHandling inputDataHandling = taskDetails.getAdvancedInputDataHandling();
-//// if (inputDataHandling != null) {
-//// addInputDataHandling(inputDataHandling, taskDetail);
-//// }
-//// AdvancedOutputDataHandling outputDataHandling = taskDetails.getAdvancedOutputDataHandling();
-//// if (outputDataHandling != null) {
-//// addOutputDataHandling(outputDataHandling, taskDetail);
-//// }
-//
-// List<JobModel> jobDetailsList = taskDetails.getJobDetailsList();
-// if (jobDetailsList != null && !jobDetailsList.isEmpty()) {
-// for (JobDetails job : jobDetailsList) {
-// CompositeIdentifier ids = new CompositeIdentifier(taskDetail.getTaskId(), job.getJobID());
-// addJobDetails(job, ids);
-// }
-// }
-//
-// List<DataTransferDetails> dataTransferDetailsList = taskDetails.getDataTransferDetailsList();
-// if (dataTransferDetailsList != null && !dataTransferDetailsList.isEmpty()) {
-// for (DataTransferDetails transferDetails : dataTransferDetailsList) {
-// addDataTransferDetails(transferDetails, taskDetail.getTaskId());
-// }
-// }
-//
-// List<ErrorDetails> errors = taskDetails.getErrors();
-// if (errors != null && !errors.isEmpty()) {
-// for (ErrorDetails error : errors) {
-// addErrorDetails(error, taskDetail.getTaskId());
-// }
-// }
-//
-// TaskStatus taskStatus = taskDetails.getTaskStatus();
-// CompositeIdentifier ids = new CompositeIdentifier(nodeId, taskDetail.getTaskId());
-// if (taskStatus != null) {
-// if (taskStatus.getExecutionState() != null) {
-// addTaskStatus(taskStatus, ids);
-// } else {
-// taskStatus.setExecutionState(TaskState.UNKNOWN);
-// addTaskStatus(taskStatus, ids);
-// }
-// } else {
-// TaskStatus status = new TaskStatus();
-// status.setExecutionState(TaskState.UNKNOWN);
-// addTaskStatus(status, ids);
-// }
-// return taskDetail.getTaskId();
-// } catch (Exception e) {
-// logger.error("Error while adding task details...", e);
-// throw new RegistryException(e);
-// }
-// }
+ public Object getTask(String taskId, String fieldName) throws RegistryException {
+ try {
+ ProcessResource processResource = new ProcessResource();
+ TaskResource resource = processResource.getTask(taskId);
+ if (fieldName == null) {
+ return ThriftDataModelConversion.getTaskModel(resource);
+ } else {
+ logger.error("Unsupported field name for experiment basic data..");
+ }
+ }catch (Exception e) {
+ logger.error("Error while getting process data..", e);
+ throw new RegistryException(e);
+ }
+ return null;
+ }
-// public String updateTaskDetails(TaskModel taskDetails, String taskId) throws RegistryException {
-// try {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = workflowNode.getTaskDetail(taskId);
-//// taskDetail.setWorkflowNodeDetailResource(workflowNode);
-// taskDetail.setApplicationId(taskDetails.getApplicationId());
-// taskDetail.setApplicationVersion(taskDetails.getApplicationVersion());
-// taskDetail.setCreationTime(AiravataUtils.getTime(taskDetails.getCreationTime()));
-// taskDetail.setApplicationDeploymentId(taskDetails.getApplicationDeploymentId());
-// taskDetail.setEnableEmailNotifications(taskDetails.isEnableEmailNotification());
-// taskDetail.save();
-//
-// workflowNode = experiment.getWorkflowNode(taskDetail.getNodeId());
-//
-// List<String> emailAddresses = taskDetails.getEmailAddresses();
-// // remove existing emails
-// taskDetail.remove(ResourceType.NOTIFICATION_EMAIL, taskId);
-// if (emailAddresses != null && !emailAddresses.isEmpty()){
-// for (String email : emailAddresses){
-// NotificationEmailResource emailResource = new NotificationEmailResource();
-// emailResource.setProcessId(workflowNode.getProcessId());
-// emailResource.setTaskId(taskId);
-// emailResource.setEmailAddress(email);
-// emailResource.save();
-// }
-// }
-// List<InputDataObjectType> applicationInputs = taskDetails.getApplicationInputs();
-// if (applicationInputs != null) {
-// updateAppInputs(applicationInputs, taskDetail);
-// }
-// ComputationalResourceScheduling taskScheduling = taskDetails.getTaskScheduling();
-// if (taskScheduling != null) {
-// updateSchedulingData(taskScheduling, taskDetail);
-// }
-// AdvancedInputDataHandling inputDataHandling = taskDetails.getAdvancedInputDataHandling();
-// if (inputDataHandling != null) {
-// updateInputDataHandling(inputDataHandling, taskDetail);
-// }
-// AdvancedOutputDataHandling outputDataHandling = taskDetails.getAdvancedOutputDataHandling();
-// if (outputDataHandling != null) {
-// updateOutputDataHandling(outputDataHandling, taskDetail);
-// }
-// List<JobDetails> jobDetailsList = taskDetails.getJobDetailsList();
-// if (jobDetailsList != null && !jobDetailsList.isEmpty()) {
-// for (JobDetails job : jobDetailsList) {
-// CompositeIdentifier ids = new CompositeIdentifier(taskId, job.getJobID());
-// updateJobDetails(job, ids);
-// }
-// }
-//
-// List<DataTransferDetails> dataTransferDetailsList = taskDetails.getDataTransferDetailsList();
-// if (dataTransferDetailsList != null && !dataTransferDetailsList.isEmpty()) {
-// for (DataTransferDetails transferDetails : dataTransferDetailsList) {
-// updateDataTransferDetails(transferDetails, transferDetails.getTransferID());
-// }
-// }
-//
-// List<ErrorDetails> errors = taskDetails.getErrors();
-// if (errors != null && !errors.isEmpty()) {
-// for (ErrorDetails error : errors) {
-// addErrorDetails(error, taskDetail.getTaskId());
-// }
-// }
-//
-// TaskStatus taskStatus = taskDetails.getTaskStatus();
-// if (taskStatus != null) {
-// updateTaskStatus(taskStatus, taskId);
-// }
-// return taskDetail.getTaskId();
-// } catch (Exception e) {
-// logger.error("Error while updating task details...", e);
-// throw new RegistryException(e);
-// }
-// }
+ public Object getTaskError(String identifier) {
+ return null;
+ }
+
+
+ public List<ExperimentModel> getExperimentList(String fieldName, Object value) throws RegistryException {
+ List<ExperimentModel> experiments = new ArrayList<ExperimentModel>();
+ try {
+ if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.USER_NAME)) {
+ WorkerResource resource = (WorkerResource) gatewayResource.create(ResourceType.GATEWAY_WORKER);
+ resource.setUser((String) value);
+ List<ExperimentResource> resources = resource.getExperiments();
+ for (ExperimentResource experimentResource : resources) {
+ ExperimentModel experiment = ThriftDataModelConversion.getExperiment(experimentResource);
+ experiments.add(experiment);
+ }
+ return experiments;
+ } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.PROJECT_ID)) {
+ ProjectResource project = workerResource.getProject((String) value);
+ List<ExperimentResource> resources = project.getExperiments();
+ for (ExperimentResource resource : resources) {
+ ExperimentModel experiment = ThriftDataModelConversion.getExperiment(resource);
+ experiments.add(experiment);
+ }
+ return experiments;
+ } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.GATEWAY_EXECUTION_ID)) {
+ List<ExperimentResource> resources = gatewayResource.getExperiments();
+ for (ExperimentResource resource : resources) {
+ ExperimentModel experiment = ThriftDataModelConversion.getExperiment(resource);
+ experiments.add(experiment);
+ }
+ return experiments;
+ } else {
+ logger.error("Unsupported field name to retrieve experiment list...");
+ }
+ } catch (Exception e) {
+ logger.error("Error while getting experiment list...", e);
+ throw new RegistryException(e);
+ }
+ return experiments;
+ }
+
+ //Todo
+ public List<ProcessModel> getProcessList(String fieldName, Object value) {
+ return null;
+ }
+
+ public List<TaskModel> getTaskList(String fieldName, Object value) {
+ return null;
+ }
+
+ public List<ExperimentModel> getExperimentList(String fieldName, Object value, int limit, int offset,
+ Object orderByIdentifier, ResultOrderType resultOrderType) throws RegistryException {
+ List<ExperimentModel> experiments = new ArrayList<ExperimentModel>();
+ try {
+ if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.USER_NAME)) {
+ WorkerResource resource = (WorkerResource) gatewayResource.create(ResourceType.GATEWAY_WORKER);
+ resource.setUser((String) value);
+ List<ExperimentResource> resources = resource.getExperiments(limit, offset,
+ orderByIdentifier, resultOrderType);
+ for (ExperimentResource experimentResource : resources) {
+ ExperimentModel experiment = ThriftDataModelConversion.getExperiment(experimentResource);
+ experiments.add(experiment);
+ }
+ return experiments;
+ } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.PROJECT_ID)) {
+ ProjectResource project = workerResource.getProject((String) value);
+ List<ExperimentResource> resources = project.getExperiments(limit, offset,
+ Constants.FieldConstants.ExperimentConstants.CREATION_TIME, ResultOrderType.DESC);
+ for (ExperimentResource resource : resources) {
+ ExperimentModel experiment = ThriftDataModelConversion.getExperiment(resource);
+ experiments.add(experiment);
+ }
+ return experiments;
+ }
+ logger.error("Unsupported field name to retrieve experiment list...");
+ } catch (Exception e) {
+ logger.error("Error while getting experiment list...", e);
+ throw new RegistryException(e);
+ }
+ return experiments;
+ }
+
+
+ //CPI Search Methods
+
+ public List<ExperimentSummaryModel> searchExperiments(Map<String, String> filters, int limit,
+ int offset, Object orderByIdentifier, ResultOrderType resultOrderType) throws RegistryException {
+ Map<String, String> fil = new HashMap<String, String>();
+ if (filters != null && filters.size() != 0) {
+ List<ExperimentSummaryModel> experimentSummaries = new ArrayList<>();
+ long fromTime = 0;
+ long toTime = 0;
+ try {
+ for (String field : filters.keySet()) {
+ if (field.equals(Constants.FieldConstants.ExperimentConstants.EXPERIMENT_NAME)) {
+ fil.put(AbstractExpCatResource.ExperimentConstants.EXPERIMENT_NAME, filters.get(field));
+ } else if (field.equals(Constants.FieldConstants.ExperimentConstants.USER_NAME)) {
+ fil.put(AbstractExpCatResource.ExperimentConstants.USER_NAME, filters.get(field));
+ }else if (field.equals(Constants.FieldConstants.ExperimentConstants.GATEWAY_EXECUTION_ID)) {
+ fil.put(AbstractExpCatResource.ExperimentConstants.GATEWAY_ID, filters.get(field));
+ } else if (field.equals(Constants.FieldConstants.ExperimentConstants.DESCRIPTION)) {
+ fil.put(AbstractExpCatResource.ExperimentConstants.DESCRIPTION, filters.get(field));
+ } else if (field.equals(Constants.FieldConstants.ExperimentConstants.EXECUTION_ID)) {
+ fil.put(AbstractExpCatResource.ExperimentConstants.EXECUTION_ID, filters.get(field));
+ } else if (field.equals(Constants.FieldConstants.ExperimentConstants.EXPERIMENT_STATUS)) {
+ fil.put(AbstractExpCatResource.ExperimentStatusConstants.STATE, filters.get(field));
+ } else if (field.equals(Constants.FieldConstants.ExperimentConstants.FROM_DATE)) {
+ fromTime = Long.parseLong(filters.get(field));
+ } else if (field.equals(Constants.FieldConstants.ExperimentConstants.TO_DATE)) {
+ toTime = Long.parseLong(filters.get(field));
+ }
+ }
+ List<ExperimentSummaryResource> experimentSummaryResources;
+ if (fromTime != 0 && toTime != 0) {
+ experimentSummaryResources = workerResource.searchExperiments(new Timestamp(fromTime), new Timestamp(toTime), fil
+ ,limit , offset, orderByIdentifier, resultOrderType);
+ } else {
+ experimentSummaryResources = workerResource
+ .searchExperiments(null, null, fil, limit, offset, orderByIdentifier, resultOrderType);
+ }
+ if (experimentSummaryResources != null && !experimentSummaryResources.isEmpty()) {
+ for (ExperimentSummaryResource ex : experimentSummaryResources) {
+ experimentSummaries.add(ThriftDataModelConversion.getExperimentSummary(ex));
+ }
+ }
+ return experimentSummaries;
+
+ } catch (Exception e) {
+ logger.error("Error while retrieving experiment summary from registry", e);
+ throw new RegistryException(e);
+ }
+ }
+ return null;
+ }
+
+ public ExperimentStatistics getExperimentStatistics(Map<String,String> filters) throws RegistryException {
+ try {
+ ExperimentStatistics experimentStatistics = new ExperimentStatistics();
+ ExperimentStatisticsResource experimentStatisticsResource = workerResource.getExperimentStatistics(
+ filters.get(Constants.FieldConstants.ExperimentConstants.GATEWAY_EXECUTION_ID),
+ new Timestamp(Long.parseLong(filters.get(Constants.FieldConstants.ExperimentConstants.FROM_DATE))),
+ new Timestamp(Long.parseLong(filters.get(Constants.FieldConstants.ExperimentConstants.TO_DATE)))
+ );
+
+ experimentStatistics.setAllExperimentCount(experimentStatisticsResource.getAllExperimentCount());
+ experimentStatistics.setCompletedExperimentCount(experimentStatisticsResource.getCompletedExperimentCount());
+ experimentStatistics.setFailedExperimentCount(experimentStatisticsResource.getFailedExperimentCount());
+ experimentStatistics.setCancelledExperimentCount(experimentStatisticsResource.getCancelledExperimentCount());
+
+ ArrayList<ExperimentSummaryModel> experimentSummaries = new ArrayList();
+ for (ExperimentSummaryResource ex : experimentStatisticsResource.getAllExperiments()) {
+ experimentSummaries.add(ThriftDataModelConversion.getExperimentSummary(ex));
+ }
+ experimentStatistics.setAllExperiments(experimentSummaries);
+
+ experimentSummaries = new ArrayList();
+ for (ExperimentSummaryResource ex : experimentStatisticsResource.getCompletedExperiments()) {
+ experimentSummaries.add(ThriftDataModelConversion.getExperimentSummary(ex));
+ }
+ experimentStatistics.setCompletedExperiments(experimentSummaries);
+
+ experimentSummaries = new ArrayList();
+ for (ExperimentSummaryResource ex : experimentStatisticsResource.getFailedExperiments()) {
+ experimentSummaries.add(ThriftDataModelConversion.getExperimentSummary(ex));
+ }
+ experimentStatistics.setFailedExperiments(experimentSummaries);
- public void updateAppOutputs(List<OutputDataObjectType> appOutputs, String taskId) throws RegistryException {
-// try {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = workflowNode.getTaskDetail(taskId);
-// List<ApplicationOutputResource> outputs = taskDetail.getApplicationOutputs();
-// for (OutputDataObjectType output : appOutputs) {
-// for (ApplicationOutputResource resource : outputs) {
-// resource.setTaskId(taskId);
-// resource.setOutputKey(output.getName());
-// resource.setValue(output.getValue());
-// if (output.getType() != null) {
-// resource.setDataType(output.getType().toString());
-// }
-// resource.setRequired(output.isIsRequired());
-// resource.setRequiredToCMD(output.isRequiredToAddedToCommandLine());
-// resource.setDataMovement(output.isDataMovement());
-// resource.setDataNameLocation(output.getLocation());
-// resource.setAppArgument(output.getApplicationArgument());
-// resource.setSearchQuery(output.getSearchQuery());
-//// resource.setMetadata(output.getMetaData());
-// resource.save();
-// }
-// }
-// } catch (Exception e) {
-// logger.error("Error while updating application outputs...", e);
-// throw new RegistryException(e);
-// }
- }
+ experimentSummaries = new ArrayList();
+ for (ExperimentSummaryResource ex : experimentStatisticsResource.getCancelledExperiments()) {
+ experimentSummaries.add(ThriftDataModelConversion.getExperimentSummary(ex));
+ }
+ experimentStatistics.setCancelledExperiments(experimentSummaries);
- public String addJobDetails(JobModel jobDetails, CompositeIdentifier ids) throws RegistryException {
-// try {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = workflowNode.getTaskDetail((String) ids.getTopLevelIdentifier());
-// JobDetailResource jobDetail = taskDetail.createJobDetail((String) ids.getSecondLevelIdentifier());
-// jobDetail.setTaskId(taskDetail.getTaskId());
-// jobDetail.setJobDescription(jobDetails.getJobDescription());
-// jobDetail.setCreationTime(AiravataUtils.getTime(jobDetails.getCreationTime()));
-// jobDetail.setComputeResourceConsumed(jobDetails.getComputeResourceConsumed());
-// jobDetail.setWorkingDir(jobDetails.getWorkingDir());
-// jobDetail.setJobName(jobDetails.getJobName());
-// jobDetail.save();
-// JobStatus jobStatus = jobDetails.getJobStatus();
-// if (jobStatus != null) {
-// JobStatus status = getJobStatus(ids);
-// if (status != null) {
-// updateJobStatus(jobStatus, ids);
-// } else {
-// addJobStatus(jobStatus, ids);
-// }
-// }
-// JobStatus applicationStatus = jobDetails.getJobStatus();
-// if (applicationStatus != null) {
-// JobStatus appStatus = getJobStatus(ids);
-// if (appStatus != null) {
-// updateJobStatus(applicationStatus, ids);
-// } else {
-// addJobStatus(applicationStatus, ids);
-// }
-// }
-//// List<ErrorModel> errors = jobDetails.getErrors();
-//// if (errors != null && !errors.isEmpty()) {
-//// for (ErrorDetails error : errors) {
-//// addErrorDetails(error, ids.getSecondLevelIdentifier());
-//// }
-//// }
-// return jobDetail.getJobId();
-// } catch (Exception e) {
-// logger.error("Error while adding job details...", e);
-// throw new RegistryException(e);
-// }
- return null;
+ return experimentStatistics;
+ } catch (RegistryException e) {
+ logger.error("Error while retrieving experiment statistics from registry", e);
+ throw new RegistryException(e);
+ }
}
+
// ids - taskId + jobid
public void updateJobDetails(JobModel jobDetails, CompositeIdentifier ids) throws RegistryException {
// try {
@@ -1824,66 +1549,6 @@ public class ExperimentRegistry {
// }
}
- /**
- * Method to get matching experiment list
- * @param fieldName
- * @param value
- * @return
- * @throws RegistryException
- */
- public List<ExperimentModel> getExperimentList(String fieldName, Object value) throws RegistryException {
-// List<ExperimentModel> experiments = new ArrayList<ExperimentModel>();
-// try {
-// if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.USER_NAME)) {
-// WorkerResource resource = (WorkerResource) gatewayResource.create(ResourceType.GATEWAY_WORKER);
-// resource.setUser((String) value);
-// List<ExperimentResource> resources = resource.getExperiments();
-// for (ExperimentResource experimentResource : resources) {
-// ExperimentModel experiment = ThriftDataModelConversion.getExperiment(experimentResource);
-// experiments.add(experiment);
-// }
-// return experiments;
-// } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.PROJECT_ID)) {
-// ProjectResource project = workerResource.getProject((String) value);
-// List<ExperimentResource> resources = project.getExperiments();
-// for (ExperimentResource resource : resources) {
-// ExperimentModel experiment = ThriftDataModelConversion.getExperiment(resource);
-// experiments.add(experiment);
-// }
-// return experiments;
-// } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.GATEWAY)) {
-// List<ExperimentResource> resources = gatewayResource.getExperiments();
-// for (ExperimentResource resource : resources) {
-// ExperimentModel experiment = ThriftDataModelConversion.getExperiment(resource);
-// experiments.add(experiment);
-// }
-// return experiments;
-// }
-//// if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.WORKFLOW_NODE_LIST)) {
-//// if (value instanceof List<?>) {
-//// return getExperimentList(fieldName, ((List<?>) value).get(0));
-//// } else if (value instanceof WorkflowNodeDetails) {
-//// WorkflowNodeDetailResource nodeDetailResource = getWorkflowNodeDetailResource(((WorkflowNodeDetails) value).getNodeInstanceId());
-//// if (nodeDetailResource != null) {
-//// String experimentId = nodeDetailResource.getProcessId();
-//// ExperimentResource experiment = gatewayResource.getExperiment(experimentId);
-//// return Arrays.asList(ThriftDataModelConversion
-//// .getExperiment(experiment));
-//// }
-//// } else {
-//// logger.error("Unsupported field value to retrieve workflow node detail list...");
-//// }
-////
-//// } else {
-//// logger.error("Unsupported field name to retrieve experiment list...");
-//// }
-// } catch (Exception e) {
-// logger.error("Error while getting experiment list...", e);
-// throw new RegistryException(e);
-// }
-// return experiments;
- return null;
- }
/**
* Method to get matching experiment list with pagination and ordering
@@ -1896,38 +1561,6 @@ public class ExperimentRegistry {
* @return
* @throws RegistryException
*/
- public List<ExperimentModel> getExperimentList(String fieldName, Object value, int limit, int offset,
- Object orderByIdentifier, ResultOrderType resultOrderType) throws RegistryException {
- List<ExperimentModel> experiments = new ArrayList<ExperimentModel>();
- try {
- if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.USER_NAME)) {
- WorkerResource resource = (WorkerResource) gatewayResource.create(ResourceType.GATEWAY_WORKER);
- resource.setUser((String) value);
- List<ExperimentResource> resources = resource.getExperiments(limit, offset,
- orderByIdentifier, resultOrderType);
- for (ExperimentResource experimentResource : resources) {
- ExperimentModel experiment = ThriftDataModelConversion.getExperiment(experimentResource);
- experiments.add(experiment);
- }
- return experiments;
- } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.PROJECT_ID)) {
- ProjectResource project = workerResource.getProject((String) value);
- List<ExperimentResource> resources = project.getExperiments(limit, offset,
- Constants.FieldConstants.ExperimentConstants.CREATION_TIME, ResultOrderType.DESC);
- for (ExperimentResource resource : resources) {
- ExperimentModel experiment = ThriftDataModelConversion.getExperiment(resource);
- experiments.add(experiment);
- }
- return experiments;
- }
- logger.error("Unsupported field name to retrieve experiment list...");
- } catch (Exception e) {
- logger.error("Error while getting experiment list...", e);
- throw new RegistryException(e);
- }
- return experiments;
- }
-
public List<TaskModel> getTaskDetails(String fieldName, Object value) throws RegistryException {
// try {
@@ -2017,111 +1650,6 @@ public class ExperimentRegistry {
return null;
}
- public Object getExperiment(String expId, String fieldName) throws RegistryException {
-// try {
-// ExperimentResource resource = gatewayResource.getExperiment(expId);
-// if (fieldName == null) {
-// return ThriftDataModelConversion.getExperiment(resource);
-// } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.USER_NAME)) {
-// return resource.getExecutionUser();
-// }else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.GATEWAY)) {
-// return resource.getGatewayId();
-// } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.EXPERIMENT_NAME)) {
-// return resource.getExpName();
-// } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.EXPERIMENT_DESC)) {
-// return resource.getDescription();
-// } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.APPLICATION_ID)) {
-// return resource.getApplicationId();
-// } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.PROJECT_ID)) {
-// return resource.getProjectId();
-// } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.APPLICATION_VERSION)) {
-// return resource.getApplicationVersion();
-// } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.WORKFLOW_TEMPLATE_ID)) {
-// return resource.getWorkflowTemplateId();
-// } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.WORKFLOW_TEMPLATE_VERSION)) {
-// return resource.getWorkflowTemplateId();
-// } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.EXPERIMENT_INPUTS)) {
-// return ThriftDataModelConversion.getExpInputs(resource.getExperimentInputs());
-// } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.EXPERIMENT_OUTPUTS)) {
-// return ThriftDataModelConversion.getExpOutputs(resource.getExperimentOutputs());
-// } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.EXPERIMENT_STATUS)) {
-// return ThriftDataModelConversion.getExperimentStatus(resource.getExperimentStatus());
-// } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.USER_CONFIGURATION_DATA)) {
-// return ThriftDataModelConversion.getUserConfigData(resource.getUserConfigData(expId));
-// } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.WORKFLOW_EXECUTION_ID)) {
-// return resource.getWorkflowExecutionId();
-// }
-//// else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.STATE_CHANGE_LIST)) {
-//// return ThriftDataModelConversion.getWorkflowNodeStatusList(resource.getWorkflowNodeStatuses());
-//// } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.WORKFLOW_NODE_LIST)) {
-//// return ThriftDataModelConversion.getWfNodeList(resource.getWorkflowNodeDetails());
-//// }
-// else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.ERROR_DETAIL_LIST)) {
-// return ThriftDataModelConversion.getErrorDetailList(resource.getErrorDetails());
-// } else {
-// logger.error("Unsupported field name for experiment basic data..");
-// }
-// } catch (Exception e) {
-// logger.error("Error while getting experiment info...", e);
-// throw new RegistryException(e);
-// }
- return null;
- }
-
- public Object getUserConfigData(String expId, String fieldName) throws RegistryException {
-// try {
-// ExperimentResource resource = gatewayResource.getExperiment(expId);
-// ConfigDataResource userConfigData = resource.getUserConfigData(expId);
-// if (fieldName == null) {
-// return ThriftDataModelConversion.getUserConfigData(userConfigData);
-// } else if (fieldName.equals(Constants.FieldConstants.ConfigurationDataConstants.AIRAVATA_AUTO_SCHEDULE)) {
-// return userConfigData.isAiravataAutoSchedule();
-// } else if (fieldName.equals(Constants.FieldConstants.ConfigurationDataConstants.OVERRIDE_MANUAL_PARAMS)) {
-// return userConfigData.isOverrideManualParams();
-// } else if (fieldName.equals(Constants.FieldConstants.ConfigurationDataConstants.SHARE_EXP)) {
-// return userConfigData.isShareExp();
-// } else if (fieldName.equals(Constants.FieldConstants.ConfigurationDataConstants.COMPUTATIONAL_RESOURCE_SCHEDULING)) {
-// return ThriftDataModelConversion.getComputationalResourceScheduling(resource.getComputationScheduling(expId));
-//// }
-//// else if (fieldName.equals(Constants.FieldConstants.ConfigurationDataConstants.ADVANCED_INPUT_HANDLING)) {
-//// return ThriftDataModelConversion.getAdvanceInputDataHandling(resource.getInputDataHandling(expId));
-//// } else if (fieldName.equals(Constants.FieldConstants.ConfigurationDataConstants.ADVANCED_OUTPUT_HANDLING)) {
-//// return ThriftDataModelConversion.getAdvanceOutputDataHandling(resource.getOutputDataHandling(expId));
-//// } else if (fieldName.equals(Constants.FieldConstants.ConfigurationDataConstants.QOS_PARAMS)) {
-//// return ThriftDataModelConversion.getQOSParams(resource.getQOSparams(expId));
-// } else {
-// logger.error("Unsupported field name for experiment configuration data..");
-// }
-// } catch (Exception e) {
-// logger.error("Error while getting config data..", e);
-// throw new RegistryException(e);
-// }
- return null;
- }
-
- public List<OutputDataObjectType> getExperimentOutputs(String expId) throws RegistryException {
-// try {
-// ExperimentResource resource = gatewayResource.getExperiment(expId);
-// List<ExperimentOutputResource> experimentOutputs = resource.getExperimentOutputs();
-// return ThriftDataModelConversion.getExpOutputs(experimentOutputs);
-// } catch (Exception e) {
-// logger.error("Error while getting experiment outputs...", e);
-// }
- return null;
- }
-
- public ExperimentStatus getExperimentStatus(String expId) throws RegistryException {
-// try {
-// ExperimentResource resource = gatewayResource.getExperiment(expId);
-// StatusResource experimentStatus = resource.getExperimentStatus();
-// return ThriftDataModelConversion.getExperimentStatus(experimentStatus);
-// } catch (Exception e) {
-// logger.error("Error while getting experiment status...", e);
-// throw new RegistryException(e);
-// }
- return null;
- }
-
public ComputationalResourceSchedulingModel getComputationalScheduling(ExperimentCatalogModelType type, String id) throws RegistryException {
// try {
// ComputationSchedulingResource computationScheduling = null;
@@ -2838,109 +2366,9 @@ public class ExperimentRegistry {
* @return
* @throws RegistryException
*/
- public List<ExperimentSummaryModel> searchExperiments(Map<String, String> filters, int limit,
- int offset, Object orderByIdentifier, ResultOrderType resultOrderType) throws RegistryException {
-// Map<String, String> fil = new HashMap<String, String>();
-// if (filters != null && filters.size() != 0) {
-// List<ExperimentSummaryModel> experimentSummaries = new ArrayList<>();
-// long fromTime = 0;
-// long toTime = 0;
-// try {
-// for (String field : filters.keySet()) {
-// if (field.equals(Constants.FieldConstants.ExperimentConstants.EXPERIMENT_NAME)) {
-// fil.put(AbstractExpCatResource.ExperimentConstants.EXPERIMENT_NAME, filters.get(field));
-// } else if (field.equals(Constants.FieldConstants.ExperimentConstants.USER_NAME)) {
-// fil.put(AbstractExpCatResource.ExperimentConstants.EXECUTION_USER, filters.get(field));
-// }else if (field.equals(Constants.FieldConstants.ExperimentConstants.GATEWAY)) {
-// fil.put(AbstractExpCatResource.ExperimentConstants.GATEWAY_ID, filters.get(field));
-// } else if (field.equals(Constants.FieldConstants.ExperimentConstants.EXPERIMENT_DESC)) {
-// fil.put(AbstractExpCatResource.ExperimentConstants.DESCRIPTION, filters.get(field));
-// } else if (field.equals(Constants.FieldConstants.ExperimentConstants.APPLICATION_ID)) {
-// fil.put(AbstractExpCatResource.ExperimentConstants.APPLICATION_ID, filters.get(field));
-// } else if (field.equals(Constants.FieldConstants.ExperimentConstants.EXPERIMENT_STATUS)) {
-// fil.put(AbstractExpCatResource.StatusConstants.STATE, filters.get(field));
-// } else if (field.equals(Constants.FieldConstants.ExperimentConstants.FROM_DATE)) {
-// fromTime = Long.parseLong(filters.get(field));
-// } else if (field.equals(Constants.FieldConstants.ExperimentConstants.TO_DATE)) {
-// toTime = Long.parseLong(filters.get(field));
-// }
-// }
-// List<ExperimentSummaryResource> experimentSummaryResources;
-// if (fromTime != 0 && toTime != 0) {
-// experimentSummaryResources = workerResource.searchExperiments(new Timestamp(fromTime), new Timestamp(toTime), fil
-// ,limit , offset, orderByIdentifier, resultOrderType);
-// } else {
-// experimentSummaryResources = workerResource
-// .searchExperiments(null, null, fil, limit, offset, orderByIdentifier, resultOrderType);
-// }
-// if (experimentSummaryResources != null && !experimentSummaryResources.isEmpty()) {
-// for (ExperimentSummaryResource ex : experimentSummaryResources) {
-// experimentSummaries.add(ThriftDataModelConversion.getExperimentSummary(ex));
-// }
-// }
-// return experimentSummaries;
-//
-// } catch (Exception e) {
-// logger.error("Error while retrieving experiment summary from registry", e);
-// throw new RegistryException(e);
-// }
-// }
- return null;
- }
-
- /**
- * Method to get experiment execution statistics for a specific time period
- * @param filters
- * @return
- * @throws RegistryException
- */
- public ExperimentStatistics getExperimentStatistics(Map<String,String> filters) throws RegistryException {
- try {
- ExperimentStatistics experimentStatistics = new ExperimentStatistics();
- ExperimentStatisticsResource experimentStatisticsResource = workerResource.getExperimentStatistics(
- filters.get(Constants.FieldConstants.ExperimentConstants.GATEWAY),
- new Timestamp(Long.parseLong(filters.get(Constants.FieldConstants.ExperimentConstants.FROM_DATE))),
- new Timestamp(Long.parseLong(filters.get(Constants.FieldConstants.ExperimentConstants.TO_DATE)))
- );
-
- experimentStatistics.setAllExperimentCount(experimentStatisticsResource.getAllExperimentCount());
- experimentStatistics.setCompletedExperimentCount(experimentStatisticsResource.getCompletedExperimentCount());
- experimentStatistics.setFailedExperimentCount(experimentStatisticsResource.getFailedExperimentCount());
- experimentStatistics.setCancelledExperimentCount(experimentStatisticsResource.getCancelledExperimentCount());
-
- ArrayList<ExperimentSummaryModel> experimentSummaries = new ArrayList();
- for (ExperimentSummaryResource ex : experimentStatisticsResource.getAllExperiments()) {
- experimentSummaries.add(ThriftDataModelConversion.getExperimentSummary(ex));
- }
- experimentStatistics.setAllExperiments(experimentSummaries);
-
- experimentSummaries = new ArrayList();
- for (ExperimentSummaryResource ex : experimentStatisticsResource.getCompletedExperiments()) {
- experimentSummaries.add(ThriftDataModelConversion.getExperimentSummary(ex));
- }
- experimentStatistics.setCompletedExperiments(experimentSummaries);
-
- experimentSummaries = new ArrayList();
- for (ExperimentSummaryResource ex : experimentStatisticsResource.getFailedExperiments()) {
- experimentSummaries.add(ThriftDataModelConversion.getExperimentSummary(ex));
- }
- experimentStatistics.setFailedExperiments(experimentSummaries);
-
- experimentSummaries = new ArrayList();
- for (ExperimentSummaryResource ex : experimentStatisticsResource.getCancelledExperiments()) {
- experimentSummaries.add(ThriftDataModelConversion.getExperimentSummary(ex));
- }
- experimentStatistics.setCancelledExperiments(experimentSummaries);
-
- return experimentStatistics;
- } catch (RegistryException e) {
- logger.error("Error while retrieving experiment statistics from registry", e);
- throw new RegistryException(e);
- }
- }
public boolean isValidStatusTransition(Object object1, Object object2) {
- if(object1 instanceof ExperimentState && object2 instanceof ExperimentState){
+ if (object1 instanceof ExperimentState && object2 instanceof ExperimentState) {
ExperimentState oldState = (ExperimentState) object1;
ExperimentState nextState = (ExperimentState) object2;
if (nextState == null) {
@@ -2978,7 +2406,7 @@ public class ExperimentRegistry {
default:
return false;
}
- }else if(object1 instanceof ProcessState && object2 instanceof ProcessState){
+ } else if (object1 instanceof ProcessState && object2 instanceof ProcessState) {
ProcessState oldState = (ProcessState) object1;
ProcessState nextState = (ProcessState) object2;
if (nextState == null) {
@@ -2991,7 +2419,7 @@ public class ExperimentRegistry {
default:
return false;
}
- }else if(object1 instanceof TaskState && object2 instanceof TaskState){
+ } else if (object1 instanceof TaskState && object2 instanceof TaskState) {
TaskState oldState = (TaskState) object1;
TaskState nextState = (TaskState) object2;
if (nextState == null) {
@@ -3007,53 +2435,4 @@ public class ExperimentRegistry {
}
return false;
}
-
- public Object getExperimentInputs(String identifier) {
- return null;
- }
-
- public Object getExperimentError(String identifier) {
- return null;
- }
-
- public Object getProcessError(String identifier) {
- return null;
- }
-
- public Object getProcessStatus(String identifier) {
- return null;
- }
-
- public Object getProcessInputs(String identifier) {
- return null;
- }
-
- public Object getProcessOutputs(String identifier) {
- return null;
- }
-
- public Object getProcessResourceSchedule(String identifier, Object o) {
- return null;
- }
-
- public Object getProcess(String identifier, Object o) {
- return null;
- }
-
- public Object getTask(String identifier) {
- return null;
- }
-
- public Object getTaskError(String identifier) {
- return null;
- }
-
- public List<ProcessModel> getProcessList(String fieldName, Object value) {
- return null;
- }
-
- public List<TaskModel> getTaskList(String fieldName, Object value) {
- return null;
- }
-
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/bce94ae9/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AbstractExpCatResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AbstractExpCatResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AbstractExpCatResource.java
index 5fc5e48..f4b4d37 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AbstractExpCatResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AbstractExpCatResource.java
@@ -92,6 +92,9 @@ public abstract class AbstractExpCatResource implements ExperimentCatResource {
public static final String PROJECT_ID = "projectId";
public static final String GATEWAY_ID = "gatewayId";
public static final String EXPERIMENT_ID = "experimentId";
+ public static final String EXECUTION_ID = "executionId";
+ public static final String EXPERIMENT_NAME = "experimentName";
+ public static final String DESCRIPTION = "description";
public static final String USER_NAME = "userName";
public static final String CREATION_TIME = "creationTime";
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/bce94ae9/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/utils/ThriftDataModelConversion.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/utils/ThriftDataModelConversion.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/utils/ThriftDataModelConversion.java
index edec50f..5dae874 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/utils/ThriftDataModelConversion.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/utils/ThriftDataModelConversion.java
@@ -447,4 +447,19 @@ public class ThriftDataModelConversion {
}
return null;
}
+
+ public static ComputationalResourceSchedulingModel getComputationalResourceScheduling(UserConfigurationDataResource resource) {
+ if (resource != null){
+ ComputationalResourceSchedulingModel resourceSchedulingModel = new ComputationalResourceSchedulingModel();
+ resourceSchedulingModel.setResourceHostId(resource.getResourceHostId());
+ resourceSchedulingModel.setTotalCPUCount(resource.getTotalCpuCount());
+ resourceSchedulingModel.setNodeCount(resource.getNodeCount());
+ resourceSchedulingModel.setNumberOfThreads(resource.getNumberOfThreads());
+ resourceSchedulingModel.setQueueName(resource.getQueueName());
+ resourceSchedulingModel.setWallTimeLimit(resource.getWallTimeLimit());
+ resourceSchedulingModel.setTotalPhysicalMemory(resource.getTotalPhysicalMemory());
+ return resourceSchedulingModel;
+ }
+ return null;
+ }
}
\ No newline at end of file
[7/9] airavata git commit: Fixing remove CPI methods in experiment
registry
Posted by sc...@apache.org.
Fixing remove CPI methods in experiment registry
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/11a208bd
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/11a208bd
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/11a208bd
Branch: refs/heads/master
Commit: 11a208bd17b1c1680dd7108b91cea4dc4cee3375
Parents: bf7db06
Author: Supun Nakandala <sc...@apache.org>
Authored: Mon Jun 22 13:32:12 2015 +0530
Committer: Supun Nakandala <sc...@apache.org>
Committed: Mon Jun 22 13:32:12 2015 +0530
----------------------------------------------------------------------
.../catalog/impl/ExperimentCatalogImpl.java | 6 +-
.../catalog/impl/ExperimentRegistry.java | 94 +++++++++++---------
2 files changed, 57 insertions(+), 43 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/11a208bd/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
index 19a7698..22b4e02 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
@@ -597,13 +597,13 @@ public class ExperimentCatalogImpl implements ExperimentCatalog {
experimentRegistry.removeUserConfigData((String) identifier);
break;
case PROCESS:
- experimentRegistry.removeWorkflowNode((String) identifier);
+ experimentRegistry.removeProcess((String) identifier);
break;
case PROCESS_RESOURCE_SCHEDULE:
- experimentRegistry.removeComputationalScheduling(dataType, (String) identifier);
+ experimentRegistry.removeProcessResourceSchedule((String) identifier);
break;
case TASK:
- experimentRegistry.removeTaskDetails((String) identifier);
+ experimentRegistry.removeTask((String) identifier);
break;
default:
logger.error("Unsupported data type...", new UnsupportedOperationException());
http://git-wip-us.apache.org/repos/asf/airavata/blob/11a208bd/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
index 9fa8daf..44bf0e6 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
@@ -1176,6 +1176,60 @@ public class ExperimentRegistry {
return taskIds;
}
+
+ //Remove CPI methods
+ public void removeExperiment(String experimentId) throws RegistryException {
+ try {
+ gatewayResource.remove(ResourceType.EXPERIMENT, experimentId);
+ } catch (Exception e) {
+ logger.error("Error while removing experiment..", e);
+ throw new RegistryException(e);
+ }
+ }
+
+ public void removeUserConfigData(String experimentId) throws RegistryException {
+ try {
+ ExperimentResource experiment = new ExperimentResource();
+ experiment.setExperimentId(experimentId);
+ experiment.remove(ResourceType.USER_CONFIGURATION_DATA, experimentId);
+ } catch (Exception e) {
+ logger.error("Error while removing experiment config..", e);
+ throw new RegistryException(e);
+ }
+ }
+
+
+ public void removeProcess(String processId) throws RegistryException {
+ try {
+ ExperimentResource experiment = new ExperimentResource();
+ experiment.remove(ResourceType.PROCESS, processId);
+ } catch (Exception e) {
+ logger.error("Error while removing workflow node..", e);
+ throw new RegistryException(e);
+ }
+ }
+
+ public void removeProcessResourceSchedule(String processId) throws RegistryException {
+ try {
+ ExperimentResource experiment = new ExperimentResource();
+ experiment.remove(ResourceType.PROCESS_RESOURCE_SCHEDULE, processId);
+ } catch (Exception e) {
+ logger.error("Error while removing workflow node..", e);
+ throw new RegistryException(e);
+ }
+ }
+
+ public void removeTask(String taskId) throws RegistryException {
+ try {
+ ProcessResource process = new ProcessResource();
+ process.remove(ResourceType.TASK, taskId);
+ } catch (Exception e) {
+ logger.error("Error while removing task details..", e);
+ throw new RegistryException(e);
+ }
+ }
+
+
// ids - taskId + jobid
public void updateJobDetails(JobModel jobDetails, CompositeIdentifier ids) throws RegistryException {
// try {
@@ -1985,46 +2039,6 @@ public class ExperimentRegistry {
// }
- public void removeExperiment(String experimentId) throws RegistryException {
- try {
- gatewayResource.remove(ResourceType.EXPERIMENT, experimentId);
- } catch (Exception e) {
- logger.error("Error while removing experiment..", e);
- throw new RegistryException(e);
- }
- }
-
- public void removeUserConfigData(String experimentId) throws RegistryException {
-// try {
-// ExperimentResource experiment = gatewayResource.getExperiment(experimentId);
-// experiment.remove(ResourceType.CONFIG_DATA, experimentId);
-// } catch (Exception e) {
-// logger.error("Error while removing experiment config..", e);
-// throw new RegistryException(e);
-// }
- }
-
- public void removeWorkflowNode(String nodeId) throws RegistryException {
-// try {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// experiment.remove(ResourceType.WORKFLOW_NODE_DETAIL, nodeId);
-// } catch (Exception e) {
-// logger.error("Error while removing workflow node..", e);
-// throw new RegistryException(e);
-// }
- }
-
- public void removeTaskDetails(String taskId) throws RegistryException {
-// try {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource nodeDetailResource = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// nodeDetailResource.remove(ResourceType.TASK_DETAIL, taskId);
-// } catch (Exception e) {
-// logger.error("Error while removing task details..", e);
-// throw new RegistryException(e);
-// }
- }
-
public void removeJobDetails(CompositeIdentifier ids) throws RegistryException {
// try {
// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
[3/9] airavata git commit: Fixing get and search CPI methods in the
experiment registry class
Posted by sc...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/bce94ae9/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/utils/Constants.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/utils/Constants.java b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/utils/Constants.java
index 034ee77..33d3c73 100644
--- a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/utils/Constants.java
+++ b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/utils/Constants.java
@@ -33,72 +33,42 @@ public class Constants {
}
public final class ExperimentConstants {
- public static final String EXPERIMENT_NAME = "experimentName";
- public static final String USER_NAME = "userName";
- public static final String GATEWAY = "gatewayId";
- public static final String EXPERIMENT_DESC = "experimentDescription";
+ public static final String EXPERIMENT_ID = "experimentId";
public static final String PROJECT_ID = "projectId";
+ public static final String EXPERIMENT_TYPE = "experimentType";
+ public static final String USER_NAME = "userName";
+ public static final String EXPERIMENT_NAME = "experimentName";
public static final String CREATION_TIME = "creationTime";
- public static final String APPLICATION_ID = "applicationId";
- public static final String APPLICATION_VERSION = "applicationVersion";
- public static final String WORKFLOW_TEMPLATE_ID = "workflowTemplateId";
- public static final String WORKFLOW_TEMPLATE_VERSION = "worklfowTemplateVersion";
- public static final String USER_CONFIGURATION_DATA = "userConfigurationData";
- public static final String WORKFLOW_EXECUTION_ID = "workflowExecutionInstanceId";
+ public static final String DESCRIPTION = "description";
+ public static final String EXECUTION_ID = "executionId";
+ public static final String GATEWAY_EXECUTION_ID = "gatewayExecutionId";
+ public static final String ENABLE_EMAIL_NOTIFICATION = "enableEmailNotification";
+ public static final String EMAIL_ADDRESSES = "emailAddresses";
public static final String EXPERIMENT_INPUTS = "experimentInputs";
public static final String EXPERIMENT_OUTPUTS = "experimentOutputs";
public static final String EXPERIMENT_STATUS = "experimentStatus";
- public static final String STATE_CHANGE_LIST = "stateChangeList";
- public static final String WORKFLOW_NODE_LIST = "workflowNodeDetailsList";
- public static final String ERROR_DETAIL_LIST = "errors";
+ public static final String EXPERIMENT_ERRORS = "experimentErrors";
+ public static final String USER_CONFIGURATION_DATA = "userConfigurationData";
public static final String FROM_DATE = "fromDate";
public static final String TO_DATE = "toDate";
-
}
- public final class ConfigurationDataConstants {
+ public final class UserConfigurationDataConstants {
public static final String EXPERIMENT_ID = "experimentId";
public static final String AIRAVATA_AUTO_SCHEDULE = "airavataAutoSchedule";
public static final String OVERRIDE_MANUAL_PARAMS = "overrideManualScheduledParams";
public static final String SHARE_EXP = "shareExperimentPublicly";
public static final String COMPUTATIONAL_RESOURCE_SCHEDULING = "computationalResourceScheduling";
- public static final String ADVANCED_INPUT_HANDLING = "advanceInputDataHandling";
- public static final String ADVANCED_OUTPUT_HANDLING = "advanceOutputDataHandling";
- public static final String QOS_PARAMS = "qosParams";
- }
-
- public final class WorkflowNodeConstants {
- public static final String EXPERIMENT_ID = "experimentId";
- public static final String NODE_NAME = "nodeName";
- public static final String NODE_INPUTS = "nodeInputs";
- public static final String NODE_OUTPUTS = "nodeOutputs";
- public static final String WF_NODE_STATUS = "workflowNodeStatus";
- public static final String TASK_LIST = "taskDetailsList";
- public static final String NODE_ERRORS = "errors";
}
- public final class TaskDetailConstants {
+ public final class ProcessConstants {
public static final String EXPERIMENT_ID = "experimentId";
- public static final String NODE_ID = "nodeId";
- }
-
- public final class JobDetaisConstants {
- public static final String TASK_ID = "taskId";
+ public static final String PROCESS_ID = "processId";
}
- public final class DataTransferDetailConstants {
- public static final String TASK_ID = "taskId";
- }
-
- public final class WorkflowNodeStatusConstants {
- public static final String EXPERIMENT_ID = "experimentId";
- }
-
- public final class ErrorDetailsConstants {
- public static final String EXPERIMENT_ID = "experimentId";
- public static final String NODE_ID = "nodeId";
+ public final class TaskConstants {
+ public static final String PARENT_PROCESS_ID = "parentProcessId";
public static final String TASK_ID = "taskId";
- public static final String JOB_ID = "jobId";
}
}
}
[5/9] airavata git commit: Removing application id field from
experiment table
Posted by sc...@apache.org.
Removing application id field from experiment table
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/fb30f5df
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/fb30f5df
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/fb30f5df
Branch: refs/heads/master
Commit: fb30f5df438f7acff649b550955a2600df9c84f7
Parents: bce94ae
Author: Supun Nakandala <sc...@apache.org>
Authored: Sun Jun 21 23:11:52 2015 +0530
Committer: Supun Nakandala <sc...@apache.org>
Committed: Sun Jun 21 23:11:52 2015 +0530
----------------------------------------------------------------------
.../src/main/java/META-INF/persistence.xml | 105 +++++++++++++++++++
.../experiment/catalog/model/Experiment.java | 14 ---
.../catalog/resources/ExperimentResource.java | 10 --
3 files changed, 105 insertions(+), 24 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/fb30f5df/modules/registry/registry-core/src/main/java/META-INF/persistence.xml
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/META-INF/persistence.xml b/modules/registry/registry-core/src/main/java/META-INF/persistence.xml
new file mode 100644
index 0000000..ddf1334
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/META-INF/persistence.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
+ <persistence-unit name="experiment_data">
+ <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.Experiment</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.ExperimentError</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.ExperimentInput</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.ExperimentOutput</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.ExperimentStatus</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.ExperimentSummary</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.Gateway</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.GatewayWorker</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.Process</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.ProcessError</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.ProcessInput</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.ProcessOutput</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.ProcessResourceSchedule</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.ProcessStatus</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.Project</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.ProjectUser</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.Task</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.TaskError</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.TaskStatus</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.User</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.UserConfigurationData</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.BatchQueue</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.LocalSubmission</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.JobManagerCommand</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.SshJobSubmission</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.ComputeResourceFileSystem</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.ErrorDetail</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.GridftpDataMovement</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.ScpDataMovement</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.PostJobCommand</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.ResourceJobManager</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.PreJobCommand</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.ComputeResource</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.GSISSHExport</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.ComputeResourcePreference</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.LocalDataMovement</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.DataTransferDetail</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.Gateway</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.WorkflowNodeDetail</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.Computational_Resource_Scheduling</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.JobDetail</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.ApplicationInput</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.TaskDetail</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.Workflow</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.ApplicationInterface</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.ApplicationOutput</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.Status</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.GatewayProfile</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.Project</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.AdvancedOutputDataHandling</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.ApplicationModule</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.Configuration</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.Experiment</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.CloudJobSubmission</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.Experiment_Output</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.QosParam</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.AdvancedInputDataHandling</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.ProjectUser</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.NodeInput</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.Experiment_Input</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.Configuration</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.ModuleLoadCmd</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.Gateway_Worker</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.NodeOutput</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.Users</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.ExperimentConfigData</class>
+ <class>org.apache.airavata.registry.core.experiment.catalog.model.Notification_Email</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.UnicoreDataMovement</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.UnicoreJobSubmission</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.ApplicationDeployment</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.HostAlias</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.HostIPAddress</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.LibraryApendPath</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.GSISSHSubmission</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.GlobusGKEndpoint</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.AppModuleMapping</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.LibraryPrepandPath</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.ApplicationIntInput</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.ApplicationIntOutput</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.WorkflowInput</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.WorkflowOutput</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.AppEnvironment</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.GlobusJobSubmission</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.DataMovementInterface</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.JobSubmissionInterface</class>
+ <class>org.apache.airavata.registry.core.app.catalog.model.GridftpEndpoint</class>
+ <exclude-unlisted-classes>true</exclude-unlisted-classes>
+ <properties>
+ <property name="openjpa.ConnectionURL"
+ value="jdbc:mysql://localhost:3306/experiment_catalog" />
+ <property name="openjpa.ConnectionDriverName" value="com.mysql.jdbc.Driver" />
+ <property name="openjpa.ConnectionUserName" value="root" />
+ <property name="openjpa.ConnectionPassword" value="" />
+ <property name="openjpa.DynamicEnhancementAgent" value="true" />
+ <property name="openjpa.RuntimeUnenhancedClasses" value="supported" />
+ <property name="openjpa.Log" value="SQL=TRACE" />
+ <property name="openjpa.ConnectionFactoryProperties"
+ value="PrettyPrint=true, PrettyPrintLineLength=72, PrintParameters=true, MaxActive=10, MaxIdle=5, MinIdle=2, MaxWait=60000" />
+ </properties>
+ </persistence-unit>
+</persistence>
http://git-wip-us.apache.org/repos/asf/airavata/blob/fb30f5df/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Experiment.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Experiment.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Experiment.java
index 537d2e5..da5a486 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Experiment.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Experiment.java
@@ -35,7 +35,6 @@ public class Experiment {
private String projectId;
private String experimentType;
private String userName;
- private String applicationId;
private String experimentName;
private Timestamp creationTime;
private String description;
@@ -93,16 +92,6 @@ public class Experiment {
}
@Basic
- @Column(name = "APPLICATION_ID")
- public String getApplicationId() {
- return applicationId;
- }
-
- public void setApplicationId(String applicationId) {
- this.applicationId = applicationId;
- }
-
- @Basic
@Column(name = "EXPERIMENT_NAME")
public String getExperimentName() {
return experimentName;
@@ -179,8 +168,6 @@ public class Experiment {
//
// Experiment that = (Experiment) o;
//
-// if (applicationId != null ? !applicationId.equals(that.applicationId) : that.applicationId != null)
-// return false;
// if (creationTime != null ? !creationTime.equals(that.creationTime) : that.creationTime != null) return false;
// if (description != null ? !description.equals(that.description) : that.description != null) return false;
// if (emailAddresses != null ? !emailAddresses.equals(that.emailAddresses) : that.emailAddresses != null)
@@ -207,7 +194,6 @@ public class Experiment {
// result = 31 * result + (projectId != null ? projectId.hashCode() : 0);
// result = 31 * result + (experimentType != null ? experimentType.hashCode() : 0);
// result = 31 * result + (userName != null ? userName.hashCode() : 0);
-// result = 31 * result + (applicationId != null ? applicationId.hashCode() : 0);
// result = 31 * result + (experimentName != null ? experimentName.hashCode() : 0);
// result = 31 * result + (creationTime != null ? creationTime.hashCode() : 0);
// result = 31 * result + (description != null ? description.hashCode() : 0);
http://git-wip-us.apache.org/repos/asf/airavata/blob/fb30f5df/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentResource.java
index ae29a0d..166ef01 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentResource.java
@@ -43,7 +43,6 @@ public class ExperimentResource extends AbstractExpCatResource {
private String projectId;
private String experimentType;
private String userName;
- private String applicationId;
private String experimentName;
private Timestamp creationTime;
private String description;
@@ -84,14 +83,6 @@ public class ExperimentResource extends AbstractExpCatResource {
this.userName = userName;
}
- public String getApplicationId() {
- return applicationId;
- }
-
- public void setApplicationId(String applicationId) {
- this.applicationId = applicationId;
- }
-
public String getExperimentName() {
return experimentName;
}
@@ -451,7 +442,6 @@ public class ExperimentResource extends AbstractExpCatResource {
experiment.setProjectId(projectId);
experiment.setExperimentType(experimentType);
experiment.setUserName(userName);
- experiment.setApplicationId(applicationId);
experiment.setExperimentName(experimentName);
experiment.setCreationTime(creationTime);
experiment.setDescription(description);
[9/9] airavata git commit: ProcessId, TaskId, ErrorId,
StatusId are unique. So can be retrieved directly without the parent
Id
Posted by sc...@apache.org.
ProcessId, TaskId, ErrorId, StatusId are unique. So can be retrieved directly without the parent Id
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/f9032d4d
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/f9032d4d
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/f9032d4d
Branch: refs/heads/master
Commit: f9032d4dd4ee32f9676e0474283ebce730a6e37c
Parents: 99808c5
Author: Supun Nakandala <sc...@apache.org>
Authored: Mon Jun 22 13:52:33 2015 +0530
Committer: Supun Nakandala <sc...@apache.org>
Committed: Mon Jun 22 13:52:33 2015 +0530
----------------------------------------------------------------------
.../core/experiment/catalog/resources/ExperimentResource.java | 5 -----
.../core/experiment/catalog/resources/ProcessResource.java | 6 ------
.../core/experiment/catalog/resources/TaskResource.java | 6 +-----
3 files changed, 1 insertion(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/f9032d4d/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentResource.java
index 166ef01..b81049f 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentResource.java
@@ -182,7 +182,6 @@ public class ExperimentResource extends AbstractExpCatResource {
switch (type) {
case EXPERIMENT_ERROR:
generator = new QueryGenerator(EXPERIMENT_ERROR);
- generator.setParameter(ExperimentErrorConstants.EXPERIMENT_ID, experimentId);
generator.setParameter(ExperimentErrorConstants.ERROR_ID, name);
q = generator.deleteQuery(em);
q.executeUpdate();
@@ -216,7 +215,6 @@ public class ExperimentResource extends AbstractExpCatResource {
break;
case PROCESS:
generator = new QueryGenerator(PROCESS);
- generator.setParameter(ProcessConstants.EXPERIMENT_ID, experimentId);
generator.setParameter(ProcessConstants.PROCESS_ID, name);
q = generator.deleteQuery(em);
q.executeUpdate();
@@ -252,7 +250,6 @@ public class ExperimentResource extends AbstractExpCatResource {
case EXPERIMENT_STATUS:
generator = new QueryGenerator(EXPERIMENT_STATUS);
generator.setParameter(ExperimentStatusConstants.STATUS_ID, name);
- generator.setParameter(ExperimentStatusConstants.EXPERIMENT_ID, experimentId);
q = generator.selectQuery(em);
ExperimentStatus status = (ExperimentStatus) q.getSingleResult();
ExperimentStatusResource statusResource = (ExperimentStatusResource) Utils.getResource(ResourceType.EXPERIMENT_STATUS, status);
@@ -262,7 +259,6 @@ public class ExperimentResource extends AbstractExpCatResource {
case EXPERIMENT_ERROR:
generator = new QueryGenerator(EXPERIMENT_ERROR);
generator.setParameter(ExperimentErrorConstants.ERROR_ID, name);
- generator.setParameter(ExperimentErrorConstants.EXPERIMENT_ID, experimentId);
q = generator.selectQuery(em);
ExperimentError experimentError = (ExperimentError) q.getSingleResult();
ExperimentErrorResource processErrorResource = (ExperimentErrorResource) Utils.getResource(ResourceType.EXPERIMENT_ERROR, experimentError);
@@ -302,7 +298,6 @@ public class ExperimentResource extends AbstractExpCatResource {
case PROCESS:
generator = new QueryGenerator(PROCESS);
generator.setParameter(ProcessConstants.PROCESS_ID, name);
- generator.setParameter(ProcessConstants.EXPERIMENT_ID, experimentId);
q = generator.selectQuery(em);
Process process = (Process) q.getSingleResult();
ProcessResource processResource = (ProcessResource) Utils.getResource(ResourceType.PROCESS, process);
http://git-wip-us.apache.org/repos/asf/airavata/blob/f9032d4d/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessResource.java
index a8919ff..2572129 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessResource.java
@@ -147,14 +147,12 @@ public class ProcessResource extends AbstractExpCatResource {
case PROCESS_ERROR:
generator = new QueryGenerator(PROCESS_ERROR);
generator.setParameter(ProcessErrorConstants.ERROR_ID, name);
- generator.setParameter(ProcessErrorConstants.PROCESS_ID, processId);
q = generator.deleteQuery(em);
q.executeUpdate();
break;
case PROCESS_STATUS:
generator = new QueryGenerator(PROCESS_STATUS);
generator.setParameter(ProcessStatusConstants.STATUS_ID, name);
- generator.setParameter(ProcessStatusConstants.PROCESS_ID, processId);
q = generator.deleteQuery(em);
q.executeUpdate();
break;
@@ -180,7 +178,6 @@ public class ProcessResource extends AbstractExpCatResource {
break;
case TASK:
generator = new QueryGenerator(TASK);
- generator.setParameter(TaskConstants.PROCESS_ID, processId);
generator.setParameter(TaskConstants.TASK_ID, name);
q = generator.deleteQuery(em);
q.executeUpdate();
@@ -216,7 +213,6 @@ public class ProcessResource extends AbstractExpCatResource {
case PROCESS_STATUS:
generator = new QueryGenerator(PROCESS_STATUS);
generator.setParameter(ProcessStatusConstants.STATUS_ID, name);
- generator.setParameter(ProcessStatusConstants.PROCESS_ID, processId);
q = generator.selectQuery(em);
ProcessStatus status = (ProcessStatus) q.getSingleResult();
ProcessStatusResource statusResource = (ProcessStatusResource) Utils.getResource(ResourceType.PROCESS_STATUS, status);
@@ -226,7 +222,6 @@ public class ProcessResource extends AbstractExpCatResource {
case PROCESS_ERROR:
generator = new QueryGenerator(PROCESS_ERROR);
generator.setParameter(ProcessErrorConstants.ERROR_ID, name);
- generator.setParameter(ProcessErrorConstants.PROCESS_ID, processId);
q = generator.selectQuery(em);
ProcessError processError = (ProcessError) q.getSingleResult();
ProcessErrorResource processErrorResource = (ProcessErrorResource) Utils.getResource(ResourceType.PROCESS_ERROR, processError);
@@ -266,7 +261,6 @@ public class ProcessResource extends AbstractExpCatResource {
case TASK:
generator = new QueryGenerator(TASK);
generator.setParameter(TaskConstants.TASK_ID, name);
- generator.setParameter(TaskConstants.PROCESS_ID, processId);
q = generator.selectQuery(em);
Task task = (Task) q.getSingleResult();
TaskResource taskResource = (TaskResource) Utils.getResource(ResourceType.TASK, task);
http://git-wip-us.apache.org/repos/asf/airavata/blob/f9032d4d/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/TaskResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/TaskResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/TaskResource.java
index 862c2a4..5193943 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/TaskResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/TaskResource.java
@@ -132,14 +132,12 @@ public class TaskResource extends AbstractExpCatResource {
case TASK_STATUS:
generator = new QueryGenerator(TASK_STATUS);
generator.setParameter(TaskStatusConstants.STATUS_ID, name);
- generator.setParameter(TaskStatusConstants.TASK_ID, taskId);
q = generator.deleteQuery(em);
q.executeUpdate();
break;
case TASK_ERROR:
generator = new QueryGenerator(TASK_ERROR);
generator.setParameter(TaskErrorConstants.ERROR_ID, name);
- generator.setParameter(TaskErrorConstants.TASK_ID, taskId);
q = generator.deleteQuery(em);
q.executeUpdate();
break;
@@ -174,7 +172,6 @@ public class TaskResource extends AbstractExpCatResource {
case TASK_STATUS:
generator = new QueryGenerator(TASK_STATUS);
generator.setParameter(TaskStatusConstants.STATUS_ID, name);
- generator.setParameter(TaskStatusConstants.TASK_ID, taskId);
q = generator.selectQuery(em);
TaskStatus status = (TaskStatus) q.getSingleResult();
TaskStatusResource statusResource = (TaskStatusResource) Utils.getResource(ResourceType.TASK_STATUS, status);
@@ -184,7 +181,6 @@ public class TaskResource extends AbstractExpCatResource {
case TASK_ERROR:
generator = new QueryGenerator(TASK_ERROR);
generator.setParameter(TaskErrorConstants.ERROR_ID, name);
- generator.setParameter(TaskErrorConstants.TASK_ID, taskId);
q = generator.selectQuery(em);
TaskError error = (TaskError) q.getSingleResult();
TaskErrorResource errorResource = (TaskErrorResource) Utils.getResource(
@@ -358,4 +354,4 @@ public class TaskResource extends AbstractExpCatResource {
return max;
}
}
-}
+}
\ No newline at end of file
[6/9] airavata git commit: Fixing getIds CPI methods in experiment
registry
Posted by sc...@apache.org.
Fixing getIds CPI methods in experiment registry
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/bf7db065
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/bf7db065
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/bf7db065
Branch: refs/heads/master
Commit: bf7db06539c8ca0ba10fd540a881af4e35396cc5
Parents: fb30f5d
Author: Supun Nakandala <sc...@apache.org>
Authored: Mon Jun 22 13:26:24 2015 +0530
Committer: Supun Nakandala <sc...@apache.org>
Committed: Mon Jun 22 13:26:24 2015 +0530
----------------------------------------------------------------------
.../catalog/impl/ExperimentCatalogImpl.java | 4 +-
.../catalog/impl/ExperimentRegistry.java | 101 ++++++++++---------
2 files changed, 53 insertions(+), 52 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/bf7db065/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
index 97fa40e..19a7698 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
@@ -558,9 +558,9 @@ public class ExperimentCatalogImpl implements ExperimentCatalog {
case EXPERIMENT:
return experimentRegistry.getExperimentIDs(fieldName, value);
case PROCESS:
- return experimentRegistry.getTaskDetailIds(fieldName, value);
+ return experimentRegistry.getProcessIds(fieldName, value);
case TASK:
- return experimentRegistry.getJobDetailIds(fieldName, value);
+ return experimentRegistry.getTaskIds(fieldName, value);
default:
logger.error("Unsupported data type...", new UnsupportedOperationException());
throw new UnsupportedOperationException();
http://git-wip-us.apache.org/repos/asf/airavata/blob/bf7db065/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
index aa0bb41..9fa8daf 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
@@ -1124,6 +1124,57 @@ public class ExperimentRegistry {
}
}
+ //CPI getIds method
+ public List<String> getExperimentIDs(String fieldName, Object value) throws RegistryException {
+ List<String> expIDs = new ArrayList<String>();
+ try {
+ if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.GATEWAY_EXECUTION_ID)) {
+ if (gatewayResource == null) {
+ logger.error("You should use an existing gateway in order to retrieve experiments..");
+ return null;
+ } else {
+ List<ExperimentResource> resources = gatewayResource.getExperiments();
+ for (ExperimentResource resource : resources) {
+ String expID = resource.getExperimentId();
+ expIDs.add(expID);
+ }
+ }
+ } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.USER_NAME)) {
+ List<ExperimentResource> resources = workerResource.getExperiments();
+ for (ExperimentResource resource : resources) {
+ expIDs.add(resource.getExperimentId());
+ }
+ } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.PROJECT_ID)) {
+ List<ExperimentResource> resources = workerResource.getExperiments();
+ for (ExperimentResource resource : resources) {
+ expIDs.add(resource.getExperimentId());
+ }
+ }
+ } catch (Exception e) {
+ logger.error("Error while retrieving experiment ids..", e);
+ throw new RegistryException(e);
+ }
+ return expIDs;
+ }
+
+
+ public List<String> getProcessIds(String fieldName, Object value) throws RegistryException {
+ List<String> processIds = new ArrayList<String>();
+ List<ProcessModel> processes = getProcessList(fieldName, value);
+ for (ProcessModel td : processes) {
+ processIds.add(td.getProcessId());
+ }
+ return processIds;
+ }
+
+ public List<String> getTaskIds(String fieldName, Object value) throws RegistryException {
+ List<String> taskIds = new ArrayList<String>();
+ List<TaskModel> tasks = getTaskList(fieldName, value);
+ for (TaskModel task : tasks) {
+ taskIds.add(task.getTaskId());
+ }
+ return taskIds;
+ }
// ids - taskId + jobid
public void updateJobDetails(JobModel jobDetails, CompositeIdentifier ids) throws RegistryException {
@@ -1914,39 +1965,6 @@ public class ExperimentRegistry {
// }
// }
- public List<String> getExperimentIDs(String fieldName, Object value) throws RegistryException {
-// List<String> expIDs = new ArrayList<String>();
-// try {
-// if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.GATEWAY)) {
-// if (gatewayResource == null) {
-// logger.error("You should use an existing gateway in order to retrieve experiments..");
-// return null;
-// } else {
-// List<ExperimentResource> resources = gatewayResource.getExperiments();
-// for (ExperimentResource resource : resources) {
-// String expID = resource.getExpID();
-// expIDs.add(expID);
-// }
-// }
-// } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.USER_NAME)) {
-// List<ExperimentResource> resources = workerResource.getExperiments();
-// for (ExperimentResource resource : resources) {
-// expIDs.add(resource.getExpID());
-// }
-// } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.PROJECT_ID)) {
-// List<ExperimentResource> resources = workerResource.getExperiments();
-// for (ExperimentResource resource : resources) {
-// expIDs.add(resource.getExpID());
-// }
-// }
-// } catch (Exception e) {
-// logger.error("Error while retrieving experiment ids..", e);
-// throw new RegistryException(e);
-// }
-// return expIDs;
- return null;
- }
-
// public List<String> getWorkflowNodeIds(String fieldName, Object value) throws RegistryException {
// List<String> wfIds = new ArrayList<String>();
// List<WorkflowNodeDetails> wfNodeDetails = getWFNodeDetails(fieldName, value);
@@ -1956,23 +1974,6 @@ public class ExperimentRegistry {
// return wfIds;
// }
- public List<String> getTaskDetailIds(String fieldName, Object value) throws RegistryException {
- List<String> taskDetailIds = new ArrayList<String>();
- List<TaskModel> taskDetails = getTaskDetails(fieldName, value);
- for (TaskModel td : taskDetails) {
- taskDetailIds.add(td.getTaskId());
- }
- return taskDetailIds;
- }
-
- public List<String> getJobDetailIds(String fieldName, Object value) throws RegistryException {
- List<String> jobIds = new ArrayList<String>();
- List<JobModel> jobDetails = getJobDetails(fieldName, value);
- for (JobModel jd : jobDetails) {
- jobIds.add(jd.getJobId());
- }
- return jobIds;
- }
//
// public List<String> getTransferDetailIds(String fieldName, Object value) throws RegistryException {
// List<String> transferIds = new ArrayList<String>();
[2/9] airavata git commit: Fixing Update CPI methods in the
experiment registry
Posted by sc...@apache.org.
Fixing Update CPI methods in the experiment registry
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/1968ff43
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/1968ff43
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/1968ff43
Branch: refs/heads/master
Commit: 1968ff434e77e602efbde315b87718e3cd1fbd1d
Parents: 7ca8104
Author: Supun Nakandala <sc...@apache.org>
Authored: Sun Jun 21 21:26:06 2015 +0530
Committer: Supun Nakandala <sc...@apache.org>
Committed: Sun Jun 21 21:26:06 2015 +0530
----------------------------------------------------------------------
.../catalog/impl/ExperimentCatalogImpl.java | 22 +-
.../catalog/impl/ExperimentRegistry.java | 605 +++++++++++--------
.../catalog/resources/ProcessResource.java | 5 +
3 files changed, 362 insertions(+), 270 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/1968ff43/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
index 33b1f15..4fa7a1b 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
@@ -211,6 +211,9 @@ public class ExperimentCatalogImpl implements ExperimentCatalog {
case USER_CONFIGURATION_DATA:
experimentRegistry.updateUserConfigData((UserConfigurationDataModel) newObjectToUpdate, (String) identifier);
break;
+ case EXPERIMENT_INPUT:
+ experimentRegistry.updateExpInputs((List<InputDataObjectType>) newObjectToUpdate, (String) identifier);
+ break;
case EXPERIMENT_OUTPUT:
experimentRegistry.updateExpOutputs((List<OutputDataObjectType>) newObjectToUpdate, (String) identifier);
break;
@@ -218,22 +221,28 @@ public class ExperimentCatalogImpl implements ExperimentCatalog {
experimentRegistry.updateExperimentStatus((ExperimentStatus) newObjectToUpdate, (String) identifier);
break;
case EXPERIMENT_ERROR:
- experimentRegistry.updateExperimentStatus((ExperimentStatus) newObjectToUpdate, (String) identifier);
+ experimentRegistry.updateExperimentError((ErrorModel) newObjectToUpdate, (String) identifier);
+ break;
+ case PROCESS:
+ experimentRegistry.updateProcess((ProcessModel) newObjectToUpdate, (String) identifier);
break;
case PROCESS_RESOURCE_SCHEDULE:
- experimentRegistry.updateExpOutputs((List<OutputDataObjectType>) newObjectToUpdate, (String) identifier);
+ experimentRegistry.updateProcessResourceSchedule((ComputationalResourceSchedulingModel) newObjectToUpdate, (String) identifier);
break;
case PROCESS_STATUS:
- experimentRegistry.updateExperimentStatus((ExperimentStatus) newObjectToUpdate, (String) identifier);
+ experimentRegistry.updateProcessStatus((ProcessStatus) newObjectToUpdate, (String) identifier);
break;
case PROCESS_ERROR:
- experimentRegistry.updateExperimentStatus((ExperimentStatus) newObjectToUpdate, (String) identifier);
+ experimentRegistry.updateProcessError((ErrorModel) newObjectToUpdate, (String) identifier);
+ break;
+ case TASK:
+ experimentRegistry.updateTask((TaskModel) newObjectToUpdate, (String) identifier);
break;
case TASK_STATUS:
- experimentRegistry.updateExperimentStatus((ExperimentStatus) newObjectToUpdate, (String) identifier);
+ experimentRegistry.updateTaskStatus((TaskStatus) newObjectToUpdate, (String) identifier);
break;
case TASK_ERROR:
- experimentRegistry.updateExperimentStatus((ExperimentStatus) newObjectToUpdate, (String) identifier);
+ experimentRegistry.updateTaskError((ErrorModel) newObjectToUpdate, (String) identifier);
break;
default:
logger.error("Unsupported data type...", new UnsupportedOperationException());
@@ -243,7 +252,6 @@ public class ExperimentCatalogImpl implements ExperimentCatalog {
logger.error("Error while updating the resource " + dataType.toString(), new RegistryException(e));
throw new RegistryException("Error while updating the resource.." + dataType.toString(), e);
}
-
}
/**
http://git-wip-us.apache.org/repos/asf/airavata/blob/1968ff43/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
index 09b06e7..442b6b8 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
@@ -467,89 +467,358 @@ public class ExperimentRegistry {
//CPI Update Methods
+ public void updateExperiment(ExperimentModel experiment, String expId) throws RegistryException {
+ try {
+ if (!workerResource.isProjectExists(experiment.getProjectId())) {
+ logger.error("Project does not exist in the system..");
+ throw new Exception("Project does not exist in the system, Please create the project first...");
+ }
+ ExperimentResource existingExperiment = gatewayResource.getExperiment(expId);
+ existingExperiment.setExperimentName(experiment.getExperimentName());
+ existingExperiment.setUserName(experiment.getUserName());
+ existingExperiment.setGatewayExecutionId(gatewayResource.getGatewayId());
+ existingExperiment.setGatewayExecutionId(experiment.getGatewayExecutionId());
+ existingExperiment.setProjectId(experiment.getProjectId());
+ existingExperiment.setCreationTime(AiravataUtils.getTime(experiment.getCreationTime()));
+ existingExperiment.setDescription(experiment.getDescription());
+ existingExperiment.setApplicationId(experiment.getExecutionId());
+ existingExperiment.setEnableEmailNotification(experiment.isEnableEmailNotification());
+
+ existingExperiment.save();
+
+ UserConfigurationDataModel userConfigurationData = experiment.getUserConfigurationData();
+ if (userConfigurationData != null) {
+ updateUserConfigData(userConfigurationData, expId);
+ }
- public void updateExpInputs(List<InputDataObjectType> exInputs, ExperimentResource experimentResource) throws RegistryException {
-// try {
-// List<ExperimentInputResource> experimentInputs = experimentResource.getExperimentInputs();
-// for (InputDataObjectType input : exInputs) {
-// for (ExperimentInputResource exinput : experimentInputs) {
-// if (exinput.getExperimentKey().equals(input.getName())) {
-// exinput.setValue(input.getValue());
-// if (input.getType() != null) {
-// exinput.setDataType(input.getType().toString());
-// }
-// exinput.setMetadata(input.getMetaData());
-// exinput.setAppArgument(input.getApplicationArgument());
-// exinput.setInputOrder(input.getInputOrder());
-// exinput.setRequired(input.isIsRequired());
-// exinput.setRequiredToCMD(input.isRequiredToAddedToCommandLine());
-// exinput.save();
-// }
-// }
-// }
-// } catch (Exception e) {
-// logger.error("Unable to update experiment inputs", e);
-// throw new RegistryException(e);
-// }
+ List<InputDataObjectType> experimentInputs = experiment.getExperimentInputs();
+ if (experimentInputs != null && !experimentInputs.isEmpty()) {
+ updateExpInputs(experimentInputs, expId);
+ }
+ List<OutputDataObjectType> experimentOutputs = experiment.getExperimentOutputs();
+ if (experimentOutputs != null && !experimentOutputs.isEmpty()) {
+ updateExpOutputs(experimentOutputs, expId);
+ }
+ ExperimentStatus experimentStatus = experiment.getExperimentStatus();
+ if (experimentStatus != null) {
+ updateExperimentStatus(experimentStatus, expId);
+ }
+ List<ErrorModel> errors = experiment.getErrors();
+ if (errors != null && !errors.isEmpty()) {
+ for (ErrorModel errror : errors) {
+ updateExperimentError(errror, expId);
+ }
+ }
+ } catch (Exception e) {
+ logger.error("Error while updating experiment...", e);
+ throw new RegistryException(e);
+ }
+ }
+
+ public void updateExpInputs(List<InputDataObjectType> exInputs, String expID) throws RegistryException {
+ try {
+ ExperimentResource experimentResource = new ExperimentResource();
+ experimentResource.setExperimentId(expID);
+ List<ExperimentInputResource> experimentInputs = experimentResource.getExperimentInputs();
+ for (InputDataObjectType input : exInputs) {
+ for (ExperimentInputResource exinput : experimentInputs) {
+ if (exinput.getInputName().equals(input.getName())) {
+ exinput.setInputValue(input.getValue());
+ exinput.setExperimentId(expID);
+ if (input.getType() != null) {
+ exinput.setDataType(input.getType().toString());
+ }
+ exinput.setMetadata(input.getMetaData());
+ exinput.setApplicationArgument(input.getApplicationArgument());
+ exinput.setInputOrder(input.getInputOrder());
+ exinput.setIsRequired(input.isIsRequired());
+ exinput.setRequiredToAddedToCmd(input.isRequiredToAddedToCommandLine());
+ exinput.save();
+ }
+ }
+ }
+ } catch (Exception e) {
+ logger.error("Unable to update experiment inputs", e);
+ throw new RegistryException(e);
+ }
}
public void updateExpOutputs(List<OutputDataObjectType> exOutput, String expId) throws RegistryException {
-// try {
-// ExperimentResource experiment = gatewayResource.getExperiment(expId);
-// List<ExperimentOutputResource> existingExpOutputs = experiment.getExperimentOutputs();
-// for (OutputDataObjectType output : exOutput) {
-// for (ExperimentOutputResource resource : existingExpOutputs) {
-// if (resource.getExperimentKey().equals(output.getName())) {
-// resource.setExperimentId(expId);
-// resource.setExperimentKey(output.getName());
-// resource.setValue(output.getValue());
-// if (output.getType() != null) {
-// resource.setDataType(output.getType().toString());
-// }
-// resource.setRequired(output.isIsRequired());
-// resource.setRequiredToCMD(output.isRequiredToAddedToCommandLine());
-// resource.setDataMovement(output.isDataMovement());
-// resource.setDataNameLocation(output.getLocation());
-// resource.setAppArgument(output.getApplicationArgument());
-// resource.setSearchQuery(output.getSearchQuery());
-//// resource.setMetadata(output.getMetaData());
-// resource.save();
-// }
-// }
-// }
-// } catch (Exception e) {
-// logger.error("Error while updating experiment outputs", e);
-// throw new RegistryException(e);
-// }
+ try {
+ ExperimentResource experiment = gatewayResource.getExperiment(expId);
+ List<ExperimentOutputResource> existingExpOutputs = experiment.getExperimentOutputs();
+ for (OutputDataObjectType output : exOutput) {
+ for (ExperimentOutputResource resource : existingExpOutputs) {
+ if (resource.getOutputName().equals(output.getName())) {
+ resource.setExperimentId(expId);
+ resource.setOutputName(output.getName());
+ resource.setOutputValue(output.getValue());
+ if (output.getType() != null) {
+ resource.setDataType(output.getType().toString());
+ }
+ resource.setIsRequired(output.isIsRequired());
+ resource.setRequiredToAddedToCmd(output.isRequiredToAddedToCommandLine());
+ resource.setDataMovement(output.isDataMovement());
+ resource.setLocation(output.getLocation());
+ resource.setApplicationArgument(output.getApplicationArgument());
+ resource.setSearchQuery(output.getSearchQuery());
+ resource.save();
+ }
+ }
+ }
+ } catch (Exception e) {
+ logger.error("Error while updating experiment outputs", e);
+ throw new RegistryException(e);
+ }
}
public String updateExperimentStatus(ExperimentStatus experimentStatus, String expId) throws RegistryException {
-// try {
-// ExperimentResource experiment = gatewayResource.getExperiment(expId);
-// StatusResource status = experiment.getExperimentStatus();
-// if (status == null) {
-// status = (StatusResource) experiment.create(ResourceType.STATUS);
-// }
-// status.setExperimentId(expId);
-// status.setStatusUpdateTime(AiravataUtils.getTime(experimentStatus.getTimeOfStateChange()));
-//// if (status.getState() == null) {
-//// status.setState(ExperimentState.UNKNOWN.name());
-//// }
-// if (isValidStatusTransition(ExperimentState.valueOf(status.getState()), experimentStatus.getState())) {
-// status.setState(experimentStatus.getState().toString());
-// status.setStatusType(StatusType.EXPERIMENT.toString());
-// status.save();
-// logger.debug(expId, "Updated experiment {} status to {}.", expId, experimentStatus.toString());
-// }
-// } catch (Exception e) {
-// logger.error(expId, "Error while updating experiment status...", e);
-// throw new RegistryException(e);
-// }
-// return expId;
- return null;
+ return addExperimentStatus(experimentStatus, expId);
+ }
+
+ public String updateExperimentError(ErrorModel experimentError, String expId) throws RegistryException {
+ return addExperimentError(experimentError, expId);
+ }
+
+ public String updateUserConfigData(UserConfigurationDataModel configurationData, String experimentId) throws RegistryException {
+ try {
+ ExperimentResource experimentResource = new ExperimentResource();
+ experimentResource.setExperimentId(experimentId);
+ UserConfigurationDataResource configDataResource = experimentResource.getUserConfigurationDataResource();
+ configDataResource.setExperimentId(experimentId);
+ configDataResource.setAiravataAutoSchedule(configurationData.isAiravataAutoSchedule());
+ configDataResource.setOverrideManualScheduledParams(configurationData.isOverrideManualScheduledParams());
+ configDataResource.setShareExperimentPublically(configurationData.isShareExperimentPublicly());
+ configDataResource.setThrottleResources(configurationData.isThrottleResources());
+ configDataResource.setUserDn(configurationData.getUserDN());
+ configDataResource.setGenerateCert(configurationData.isGenerateCert());
+ configDataResource.setResourceHostId(configurationData.getComputationalResourceScheduling().getResourceHostId());
+ configDataResource.setTotalCpuCount(configurationData.getComputationalResourceScheduling().getTotalCPUCount());
+ configDataResource.setNodeCount(configurationData.getComputationalResourceScheduling().getNodeCount());
+ configDataResource.setNumberOfThreads(configurationData.getComputationalResourceScheduling().getNumberOfThreads());
+ configDataResource.setQueueName(configurationData.getComputationalResourceScheduling().getQueueName());
+ configDataResource.setWallTimeLimit(configurationData.getComputationalResourceScheduling().getWallTimeLimit());
+ configDataResource.setTotalPhysicalMemory(configurationData.getComputationalResourceScheduling().getTotalPhysicalMemory());
+ configDataResource.save();
+ } catch (Exception e) {
+ logger.error("Unable to save user config data", e);
+ throw new RegistryException(e);
+ }
+ return experimentId;
+ }
+
+ public void updateProcess(ProcessModel process, String experimentId) throws RegistryException {
+ try {
+ ExperimentResource experimentResource = new ExperimentResource();
+ experimentResource.setExperimentId(experimentId);
+ ProcessResource processResource = experimentResource.getProcess(process.getProcessId());
+ processResource.setProcessId(process.getProcessId());
+ processResource.setExperimentId(experimentId);
+ processResource.setCreationTime(AiravataUtils.getTime(process.getCreationTime()));
+ processResource.setLastUpdateTime(AiravataUtils.getTime(process.getLastUpdateTime()));
+ processResource.setProcessDetail(process.getProcessDetail());
+ processResource.setApplicationInterfaceId(process.getApplicationInterfaceId());
+ processResource.setTaskDag(process.getTaskDag());
+ processResource.save();
+
+ if(process.getResourceSchedule() != null) {
+ updateProcessResourceSchedule(process.getResourceSchedule(), process.getProcessId());
+ }
+ if(process.getProcessInputs() != null && process.getProcessInputs().size() > 0) {
+ updateProcessInputs(process.getProcessInputs(), process.getProcessId());
+ }
+ if(process.getProcessOutputs() != null && process.getProcessOutputs().size() > 0) {
+ updateProcessOutputs(process.getProcessOutputs(), process.getProcessId());
+ }
+ if(process.getProcessStatus() != null) {
+ updateProcessStatus(process.getProcessStatus(), process.getProcessId());
+ }
+ if(process.getProcessError() != null) {
+ updateProcessError(process.getProcessError(), process.getProcessId());
+ }
+ if(process.getTasks() != null && process.getTasks().size() > 0){
+ for(TaskModel task : process.getTasks()){
+ updateTask(task, process.getProcessId());
+ }
+ }
+ } catch (Exception e) {
+ logger.error("Error while updating experiment...", e);
+ throw new RegistryException(e);
+ }
+ }
+
+ public String updateProcessResourceSchedule(ComputationalResourceSchedulingModel resourceSchedule, String processID) throws RegistryException {
+ try {
+ ProcessResource processResource = new ProcessResource();
+ processResource.setProcessId(processID);
+ ProcessResourceScheduleResource processResourceSchedule = processResource.getProcessResourceSchedule();
+ processResourceSchedule.setProcessId(processID);
+ processResourceSchedule.setResourceHostId(resourceSchedule.getResourceHostId());
+ processResourceSchedule.setTotalCpuCount(resourceSchedule.getTotalCPUCount());
+ processResourceSchedule.setNodeCount(resourceSchedule.getNodeCount());
+ processResourceSchedule.setNumberOfThreads(resourceSchedule.getNumberOfThreads());
+ processResourceSchedule.setQueueName(resourceSchedule.getQueueName());
+ processResourceSchedule.setWallTimeLimit(resourceSchedule.getWallTimeLimit());
+ processResourceSchedule.setTotalPhysicalMemory(resourceSchedule.getTotalPhysicalMemory());
+ processResourceSchedule.save();
+ } catch (Exception e) {
+ logger.error("Unable to save process resource schedule data", e);
+ throw new RegistryException(e);
+ }
+ return processID;
+ }
+
+ public void updateProcessInputs(List<InputDataObjectType> processInputs, String processID) throws RegistryException {
+ try {
+ ProcessResource processResource = new ProcessResource();
+ processResource.setProcessId(processID);
+ List<ProcessInputResource> existingProcessInputs = processResource.getProcessInputs();
+ for (InputDataObjectType input : processInputs) {
+ for (ProcessInputResource exinput : existingProcessInputs) {
+ if (exinput.getInputName().equals(input.getName())) {
+ exinput.setProcessId(processID);
+ exinput.setInputValue(input.getValue());
+ if (input.getType() != null) {
+ exinput.setDataType(input.getType().toString());
+ }
+ exinput.setMetadata(input.getMetaData());
+ exinput.setApplicationArgument(input.getApplicationArgument());
+ exinput.setInputOrder(input.getInputOrder());
+ exinput.setIsRequired(input.isIsRequired());
+ exinput.setRequiredToAddedToCmd(input.isRequiredToAddedToCommandLine());
+ exinput.save();
+ }
+ }
+ }
+ } catch (Exception e) {
+ logger.error("Unable to update experiment inputs", e);
+ throw new RegistryException(e);
+ }
+ }
+
+ public void updateProcessOutputs(List<OutputDataObjectType> processOutput, String processID) throws RegistryException {
+ try {
+ ProcessResource processResource = new ProcessResource();
+ processResource.setProcessId(processID);
+ List<ProcessOutputResource> existingProcessOutputs = processResource.getProcessOutputs();
+ for (OutputDataObjectType output : processOutput) {
+ for (ProcessOutputResource resource : existingProcessOutputs) {
+ if (resource.getOutputName().equals(output.getName())) {
+ resource.setProcessId(processID);
+ resource.setOutputName(output.getName());
+ resource.setOutputValue(output.getValue());
+ if (output.getType() != null) {
+ resource.setDataType(output.getType().toString());
+ }
+ resource.setIsRequired(output.isIsRequired());
+ resource.setRequiredToAddedToCmd(output.isRequiredToAddedToCommandLine());
+ resource.setDataMovement(output.isDataMovement());
+ resource.setLocation(output.getLocation());
+ resource.setApplicationArgument(output.getApplicationArgument());
+ resource.setSearchQuery(output.getSearchQuery());
+ resource.save();
+ }
+ }
+ }
+ } catch (Exception e) {
+ logger.error("Error while updating process outputs", e);
+ throw new RegistryException(e);
+ }
+ }
+
+ public String updateProcessStatus(ProcessStatus processStatus, String processID) throws RegistryException {
+ return addProcessStatus(processStatus, processID);
+ }
+
+ public String updateProcessError(ErrorModel processError, String processID) throws RegistryException {
+ return addProcessError(processError, processID);
+ }
+
+ public String updateTask(TaskModel task, String processID) throws RegistryException {
+ try {
+ ProcessResource processResource = new ProcessResource();
+ processResource.setProcessId(processID);
+ TaskResource taskResource = processResource.getTask(task.getTaskId());
+ taskResource.setParentProcessId(getProcessID(processID));
+ taskResource.setTaskType(task.getTaskType().toString());
+ taskResource.setCreationTime(AiravataUtils.getTime(task.getCreationTime()));
+ taskResource.setLastUpdateTime(AiravataUtils.getTime(task.getLastUpdateTime()));
+ taskResource.setTaskDetail(task.getTaskDetail());
+ taskResource.setTaskInternalStore(task.getTaskInternalStore());
+ taskResource.save();
+
+ if(task.getTaskError() != null) {
+ updateTaskError(task.getTaskError(), task.getTaskId());
+ }
+ if(task.getTaskError() != null) {
+ updateTaskError(task.getTaskError(), task.getTaskId());
+ }
+ } catch (Exception e) {
+ logger.error(processID, "Error while adding task...", e);
+ throw new RegistryException(e);
+ }
+ return processID;
+ }
+
+ public String updateTaskStatus(TaskStatus taskStatus, String taskID) throws RegistryException {
+ return addTaskStatus(taskStatus, taskID);
+ }
+
+ public String updateTaskError(ErrorModel taskError, String taskID) throws RegistryException {
+ return addTaskError(taskError, taskID);
+ }
+
+ //TODO
+ public void updateExperimentField(String expID, String fieldName, Object value) throws RegistryException {
+ try {
+ ExperimentResource experiment = gatewayResource.getExperiment(expID);
+ if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.EXPERIMENT_NAME)) {
+ experiment.setExperimentName((String) value);
+ experiment.save();
+ } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.USER_NAME)) {
+ experiment.setUserName((String) value);
+ experiment.save();
+ } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.EXPERIMENT_DESC)) {
+ experiment.setDescription((String) value);
+ experiment.save();
+ } else {
+ logger.error("Unsupported field type for Experiment");
+ }
+
+ } catch (Exception e) {
+ logger.error("Error while updating fields in experiment...", e);
+ throw new RegistryException(e);
+ }
}
+ public void updateUserConfigDataField(String expID, String fieldName, Object value) throws RegistryException {
+ try {
+ ExperimentResource experiment = gatewayResource.getExperiment(expID);
+ UserConfigurationDataResource exConfigData = (UserConfigurationDataResource)
+ experiment.get(ResourceType.USER_CONFIGURATION_DATA, expID);
+ if (fieldName.equals(Constants.FieldConstants.ConfigurationDataConstants.AIRAVATA_AUTO_SCHEDULE)) {
+ exConfigData.setAiravataAutoSchedule((Boolean) value);
+ exConfigData.save();
+ } else if (fieldName.equals(Constants.FieldConstants.ConfigurationDataConstants.OVERRIDE_MANUAL_PARAMS)) {
+ exConfigData.setOverrideManualScheduledParams((Boolean) value);
+ exConfigData.save();
+ } else if (fieldName.equals(Constants.FieldConstants.ConfigurationDataConstants.SHARE_EXP)) {
+ exConfigData.setShareExperimentPublically((Boolean) value);
+ exConfigData.save();
+ } else if (fieldName.equals(Constants.FieldConstants.ConfigurationDataConstants.COMPUTATIONAL_RESOURCE_SCHEDULING)) {
+ updateSchedulingData((ComputationalResourceSchedulingModel) value, experiment);
+ } else {
+ logger.error("Unsupported field type for Experiment config data");
+ }
+
+ } catch (Exception e) {
+ logger.error("Error while updating fields in experiment config...", e);
+ throw new RegistryException(e);
+ }
+ }
+
+
// public String addWorkflowNodeStatus(WorkflowNodeStatus status, CompositeIdentifier ids) throws RegistryException {
// try {
// ExperimentResource experiment = gatewayResource.getExperiment((String) ids.getTopLevelIdentifier());
@@ -619,32 +888,6 @@ public class ExperimentRegistry {
return null;
}
- public void updateTaskStatus(TaskStatus status, String taskId) throws RegistryException {
-// try {
-// ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-// WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-// TaskDetailResource taskDetail = workflowNode.getTaskDetail(taskId);
-// StatusResource statusResource;
-// if (taskDetail.isTaskStatusExist(taskId)) {
-// workflowNode = experiment.getWorkflowNode(taskDetail.getNodeId());
-// statusResource = workflowNode.getTaskStatus(taskId);
-// } else {
-// statusResource = (StatusResource) taskDetail.create(ResourceType.STATUS);
-// }
-// statusResource.setExperimentId(workflowNode.getExperimentId());
-// statusResource.setNodeId(workflowNode.getNodeInstanceId());
-// statusResource.setTaskId(taskId);
-// statusResource.setStatusType(StatusType.TASK.toString());
-// statusResource.setStatusUpdateTime(AiravataUtils.getTime(status.getTimeOfStateChange()));
-// statusResource.setState(status.getState().toString());
-// statusResource.save();
-// logger.info(taskId, "Updated task {} status to {}.", taskId, status.toString());
-// } catch (Exception e) {
-// logger.error(taskId, "Error while updating task status to " + status.toString() + "...", e);
-// throw new RegistryException(e);
-// }
- }
-
/**
* @param status job status
* @param ids composite id will contain taskid and jobid
@@ -1481,167 +1724,6 @@ public class ExperimentRegistry {
return error + "_" + UUID.randomUUID();
}
- public void updateExperimentField(String expID, String fieldName, Object value) throws RegistryException {
-// try {
-// ExperimentResource experiment = gatewayResource.getExperiment(expID);
-// if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.EXPERIMENT_NAME)) {
-// experiment.setExpName((String) value);
-// experiment.save();
-// } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.USER_NAME)) {
-// experiment.setExecutionUser((String) value);
-// experiment.save();
-// } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.EXPERIMENT_DESC)) {
-// experiment.setDescription((String) value);
-// experiment.save();
-// } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.APPLICATION_ID)) {
-// experiment.setApplicationId((String) value);
-// experiment.save();
-// } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.APPLICATION_VERSION)) {
-// experiment.setApplicationVersion((String) value);
-// experiment.save();
-// } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.WORKFLOW_TEMPLATE_ID)) {
-// experiment.setWorkflowTemplateId((String) value);
-// experiment.save();
-// } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.WORKFLOW_TEMPLATE_VERSION)) {
-// experiment.setWorkflowTemplateVersion((String) value);
-// experiment.save();
-// } else {
-// logger.error("Unsupported field type for Experiment");
-// }
-//
-// } catch (Exception e) {
-// logger.error("Error while updating fields in experiment...", e);
-// throw new RegistryException(e);
-// }
- }
-
- public void updateUserConfigDataField(String expID, String fieldName, Object value) throws RegistryException {
-// try {
-// ExperimentResource experiment = gatewayResource.getExperiment(expID);
-// ConfigDataResource exConfigData = (ConfigDataResource) experiment.get(ResourceType.CONFIG_DATA, expID);
-// if (fieldName.equals(Constants.FieldConstants.ConfigurationDataConstants.AIRAVATA_AUTO_SCHEDULE)) {
-// exConfigData.setAiravataAutoSchedule((Boolean) value);
-// exConfigData.save();
-// } else if (fieldName.equals(Constants.FieldConstants.ConfigurationDataConstants.OVERRIDE_MANUAL_PARAMS)) {
-// exConfigData.setOverrideManualParams((Boolean) value);
-// exConfigData.save();
-// } else if (fieldName.equals(Constants.FieldConstants.ConfigurationDataConstants.SHARE_EXP)) {
-// exConfigData.setShareExp((Boolean) value);
-// exConfigData.save();
-// } else if (fieldName.equals(Constants.FieldConstants.ConfigurationDataConstants.COMPUTATIONAL_RESOURCE_SCHEDULING)) {
-// updateSchedulingData((ComputationalResourceSchedulingModel) value, experiment);
-// } else {
-// logger.error("Unsupported field type for Experiment config data");
-// }
-//
-// } catch (Exception e) {
-// logger.error("Error while updating fields in experiment config...", e);
-// throw new RegistryException(e);
-// }
- }
-
- public void updateExperiment(ExperimentModel experiment, String expId) throws RegistryException {
-// try {
-// ExperimentResource existingExperiment = gatewayResource.getExperiment(expId);
-// existingExperiment.setExpName(experiment.getExperimentName());
-// existingExperiment.setExecutionUser(experiment.getUserName());
-// existingExperiment.setGatewayId(gatewayResource.getGatewayId());
-// existingExperiment.setGatewayExecutionId(experiment.getGatewayExecutionId());
-// if (!workerResource.isProjectExists(experiment.getProjectId())) {
-// logger.error("Project does not exist in the system..");
-// throw new Exception("Project does not exist in the system, Please create the project first...");
-// }
-// existingExperiment.setProjectId(experiment.getProjectId());
-// existingExperiment.setCreationTime(AiravataUtils.getTime(experiment.getCreationTime()));
-// existingExperiment.setDescription(experiment.getDescription());
-// existingExperiment.setApplicationId(experiment.getExecutionId());
-// existingExperiment.setEnableEmailNotifications(experiment.isEnableEmailNotification());
-// existingExperiment.save();
-//
-// List<String> emailAddresses = experiment.getEmailAddresses();
-// // remove existing email addresses
-// existingExperiment.remove(ResourceType.NOTIFICATION_EMAIL, expId);
-// if (emailAddresses != null && !emailAddresses.isEmpty()){
-// for (String email : emailAddresses){
-// NotificationEmailResource emailResource = new NotificationEmailResource();
-// emailResource.setExperimentId(expId);
-// emailResource.setEmailAddress(email);
-// emailResource.save();
-// }
-// }
-//
-// List<InputDataObjectType> experimentInputs = experiment.getExperimentInputs();
-// if (experimentInputs != null && !experimentInputs.isEmpty()) {
-// updateExpInputs(experimentInputs, existingExperiment);
-// }
-//
-// UserConfigurationDataModel userConfigurationData = experiment.getUserConfigurationData();
-// if (userConfigurationData != null) {
-// updateUserConfigData(userConfigurationData, expId);
-// }
-//
-// List<OutputDataObjectType> experimentOutputs = experiment.getExperimentOutputs();
-// if (experimentOutputs != null && !experimentOutputs.isEmpty()) {
-// updateExpOutputs(experimentOutputs, expId);
-// }
-// ExperimentStatus experimentStatus = experiment.getExperimentStatus();
-// if (experimentStatus != null) {
-// updateExperimentStatus(experimentStatus, expId);
-// }
-//// List<WorkflowNodeDetails> workflowNodeDetailsList = experiment.getWorkflowNodeDetailsList();
-//// if (workflowNodeDetailsList != null && !workflowNodeDetailsList.isEmpty()) {
-//// for (WorkflowNodeDetails wf : workflowNodeDetailsList) {
-//// updateWorkflowNodeDetails(wf, wf.getNodeInstanceId());
-//// }
-//// }
-// List<ErrorModel> errors = experiment.getErrors();
-// if (errors != null && !errors.isEmpty()) {
-// for (ErrorModel errror : errors) {
-// addErrorDetails(errror, expId);
-// }
-// }
-// } catch (Exception e) {
-// logger.error("Error while updating experiment...", e);
-// throw new RegistryException(e);
-// }
-
- }
-
- public void updateUserConfigData(UserConfigurationDataModel configData, String expId) throws RegistryException {
-// try {
-// ExperimentResource experiment = gatewayResource.getExperiment(expId);
-// ConfigDataResource resource = (ConfigDataResource) experiment.get(ResourceType.CONFIG_DATA, expId);
-// resource.setExperimentId(expId);
-// resource.setAiravataAutoSchedule(configData.isAiravataAutoSchedule());
-// resource.setOverrideManualParams(configData.isOverrideManualScheduledParams());
-// resource.setShareExp(configData.isShareExperimentPublicly());
-// resource.setUserDn(configData.getUserDN());
-// resource.setGenerateCert(configData.isGenerateCert());
-// resource.save();
-// ComputationalResourceSchedulingModel resourceScheduling = configData.getComputationalResourceScheduling();
-// if (resourceScheduling != null) {
-// updateSchedulingData(resourceScheduling, experiment);
-// }
-//// AdvancedInputDataHandling inputDataHandling = configData.getAdvanceInputDataHandling();
-//// if (inputDataHandling != null) {
-//// updateInputDataHandling(inputDataHandling, experiment);
-//// }
-//// AdvancedOutputDataHandling outputDataHandling = configData.getAdvanceOutputDataHandling();
-//// if (outputDataHandling != null) {
-//// updateOutputDataHandling(outputDataHandling, experiment);
-//// }
-////
-//// QualityOfServiceParams qosParams = configData.getQosParams();
-//// if (qosParams != null) {
-//// updateQosParams(qosParams, experiment);
-//// }
-// } catch (Exception e) {
-// logger.error("Error while updating user config data...", e);
-// throw new RegistryException(e);
-// }
-
- }
-
// public void updateQosParams(QualityOfServiceParams qosParams, ExperimentCatResource resource) throws RegistryException {
// try {
// if (resource instanceof ExperimentResource) {
@@ -2974,7 +3056,4 @@ public class ExperimentRegistry {
return null;
}
- public Object updateExperimentError(ErrorModel newObjectToAdd, String dependentIdentifier) {
- return null;
- }
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/1968ff43/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessResource.java
index 86933c4..a8919ff 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessResource.java
@@ -510,4 +510,9 @@ public class ProcessResource extends AbstractExpCatResource {
}
return taskResources;
}
+
+ public TaskResource getTask(String taskId) throws RegistryException {
+ ExperimentCatResource resource = get(ResourceType.TASK, taskId);
+ return (TaskResource)resource;
+ }
}