You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ch...@apache.org on 2014/02/19 23:09:25 UTC
git commit: inital commit to registry cpi - AIRAVATA-1006
Repository: airavata
Updated Branches:
refs/heads/master b1a6edc2a -> 985151fc1
inital commit to registry cpi - AIRAVATA-1006
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/985151fc
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/985151fc
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/985151fc
Branch: refs/heads/master
Commit: 985151fc195dac2aed284087e3a72babac44542d
Parents: b1a6edc
Author: chathuri <ch...@apache.org>
Authored: Wed Feb 19 17:09:18 2014 -0500
Committer: chathuri <ch...@apache.org>
Committed: Wed Feb 19 17:09:18 2014 -0500
----------------------------------------------------------------------
.../registry/jpa/impl/ExperimentRegistry.java | 56 +--
.../registry/jpa/impl/RegistryImpl.java | 76 +++-
.../registry/jpa/model/ErrorDetail.java | 11 +
.../registry/jpa/model/JobDetail.java | 11 +
.../registry/jpa/model/QosParam.java | 2 +-
.../jpa/resources/AbstractResource.java | 1 +
.../jpa/resources/ErrorDetailResource.java | 11 +
.../jpa/resources/ExperimentResource.java | 70 +++-
.../jpa/resources/JobDetailResource.java | 81 +++-
.../jpa/resources/TaskDetailResource.java | 75 ++++
.../registry/jpa/resources/Utils.java | 2 +
.../resources/WorkflowNodeDetailResource.java | 52 +++
.../jpa/utils/ThriftDataModelConversion.java | 417 ++++++++++++++-----
.../src/main/resources/registry-derby.sql | 40 +-
.../src/main/resources/registry-mysql.sql | 40 +-
.../airavata/registry/cpi/ChildDataType.java | 21 +-
.../apache/airavata/registry/cpi/DataType.java | 23 +-
.../airavata/registry/cpi/ParentDataType.java | 2 +-
.../airavata/registry/cpi/utils/Constants.java | 20 +-
.../airavata/registry/cpi/utils/StatusType.java | 10 +
20 files changed, 801 insertions(+), 220 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/985151fc/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ExperimentRegistry.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ExperimentRegistry.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ExperimentRegistry.java
index 894fd46..e642cea 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ExperimentRegistry.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ExperimentRegistry.java
@@ -23,8 +23,8 @@ package org.apache.airavata.persistance.registry.jpa.impl;
import org.apache.airavata.common.exception.ApplicationSettingsException;
import org.apache.airavata.common.utils.ServerSettings;
-import org.apache.airavata.model.experiment.BasicMetadata;
-import org.apache.airavata.model.experiment.ConfigurationData;
+import org.apache.airavata.model.workspace.experiment.Experiment;
+import org.apache.airavata.model.workspace.experiment.UserConfigurationData;
import org.apache.airavata.persistance.registry.jpa.Resource;
import org.apache.airavata.persistance.registry.jpa.ResourceType;
import org.apache.airavata.persistance.registry.jpa.resources.GatewayResource;
@@ -36,28 +36,28 @@ import org.slf4j.LoggerFactory;
import java.sql.Timestamp;
import java.util.*;
-//import org.apache.airavata.persistance.registry.jpa.utils.ThriftDataModelConversion;
+import org.apache.airavata.persistance.registry.jpa.utils.ThriftDataModelConversion;
public class ExperimentRegistry {
private GatewayRegistry gatewayRegistry;
private UserReg userReg;
private final static Logger logger = LoggerFactory.getLogger(ExperimentRegistry.class);
- public String add(BasicMetadata basicMetadata) {
+ public String add(Experiment experiment) {
String experimentID = "";
try {
gatewayRegistry = new GatewayRegistry();
GatewayResource gateway = gatewayRegistry.getDefaultGateway();
userReg = new UserReg();
WorkerResource worker = userReg.getSysteUser();
- experimentID = getExperimentID(basicMetadata.getExperimentName());
+ experimentID = getExperimentID(experiment.getName());
// ExperimentMetadataResource exBasicData = gateway.createBasicMetada(experimentID);
-// exBasicData.setExperimentName(basicMetadata.getExperimentName());
-// exBasicData.setDescription(basicMetadata.getExperimentDescription());
-// exBasicData.setExecutionUser(basicMetadata.getUserName());
+// exBasicData.setExperimentName(experiment.getExperimentName());
+// exBasicData.setDescription(experiment.getExperimentDescription());
+// exBasicData.setExecutionUser(experiment.getUserName());
// exBasicData.setSubmittedDate(getCurrentTimestamp());
-// exBasicData.setShareExp(basicMetadata.isSetShareExperimentPublicly());
-// ProjectResource projectResource = worker.getProject(basicMetadata.getProjectID());
+// exBasicData.setShareExp(experiment.isSetShareExperimentPublicly());
+// ProjectResource projectResource = worker.getProject(experiment.getProjectID());
// exBasicData.setProject(projectResource);
// exBasicData.save();
} catch (ApplicationSettingsException e) {
@@ -66,13 +66,13 @@ public class ExperimentRegistry {
return experimentID;
}
- public void add(ConfigurationData configurationData, String experimentID) {
+ public void add(UserConfigurationData configurationData, String experimentID) {
try {
gatewayRegistry = new GatewayRegistry();
GatewayResource gateway = gatewayRegistry.getDefaultGateway();
// ExperimentMetadataResource exBasicData = (ExperimentMetadataResource) gateway.get(ResourceType.EXPERIMENT_METADATA, experimentID);
// ExperimentConfigDataResource exConfigData = (ExperimentConfigDataResource) exBasicData.create(ResourceType.EXPERIMENT_CONFIG_DATA);
-// BasicMetadata updatedBasicMetadata = configurationData.getBasicMetadata();
+// BasicMetadata updatedBasicMetadata = configurationData.getExperiment();
// if (updatedBasicMetadata != null) {
// if (updatedBasicMetadata.getExperimentName() != null && !updatedBasicMetadata.getExperimentName().equals("")) {
// exBasicData.setExperimentName(updatedBasicMetadata.getExperimentName());
@@ -151,10 +151,10 @@ public class ExperimentRegistry {
public void update(Object experimentObject, String expId) {
try {
gatewayRegistry = new GatewayRegistry();
- if (experimentObject instanceof BasicMetadata) {
- updateBasicData((BasicMetadata) experimentObject, expId);
- } else if (experimentObject instanceof ConfigurationData) {
- updateExpConfigData((ConfigurationData) experimentObject, expId);
+ if (experimentObject instanceof Experiment) {
+ updateBasicData((Experiment) experimentObject, expId);
+ } else if (experimentObject instanceof UserConfigurationData) {
+ updateExpConfigData((UserConfigurationData) experimentObject, expId);
}
} catch (ApplicationSettingsException e) {
@@ -260,7 +260,7 @@ public class ExperimentRegistry {
}
}
- public void updateBasicData(BasicMetadata basicMetadata, String expId) throws ApplicationSettingsException {
+ public void updateBasicData(Experiment experiment, String expId) throws ApplicationSettingsException {
GatewayResource gateway = gatewayRegistry.getDefaultGateway();
WorkerResource worker = userReg.getSysteUser();
// ExperimentMetadataResource exBasicData = (ExperimentMetadataResource) gateway.get(ResourceType.EXPERIMENT_METADATA, expId);
@@ -273,11 +273,11 @@ public class ExperimentRegistry {
// exBasicData.save();
}
- public void updateExpConfigData(ConfigurationData configData, String expId) throws ApplicationSettingsException {
+ public void updateExpConfigData(UserConfigurationData configData, String expId) throws ApplicationSettingsException {
GatewayResource gateway = gatewayRegistry.getDefaultGateway();
// ExperimentMetadataResource exBasicData = (ExperimentMetadataResource) gateway.get(ResourceType.EXPERIMENT_METADATA, expId);
// ExperimentConfigDataResource exConfigResource = (ExperimentConfigDataResource) exBasicData.get(ResourceType.EXPERIMENT_CONFIG_DATA, expId);
-// BasicMetadata updatedBasicMetadata = configData.getBasicMetadata();
+// BasicMetadata updatedBasicMetadata = configData.getExperiment();
// if (updatedBasicMetadata != null) {
// if (updatedBasicMetadata.getExperimentName() != null && !updatedBasicMetadata.getExperimentName().equals("")) {
// exBasicData.setExperimentName(updatedBasicMetadata.getExperimentName());
@@ -346,16 +346,16 @@ public class ExperimentRegistry {
// exConfigResource.save();
}
- public List<BasicMetadata> getExperimentMetaDataList (String fieldName, Object value){
- List<BasicMetadata> metadataList = new ArrayList<BasicMetadata>();
+ public List<Experiment> getExperimentMetaDataList (String fieldName, Object value){
+ List<Experiment> metadataList = new ArrayList<Experiment>();
try {
- if (fieldName.equals(Constants.FieldConstants.BasicMetadataConstants.USER_NAME)){
+ if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.USER_NAME)){
UserReg userRegistry = new UserReg();
WorkerResource worker = userRegistry.getExistingUser(ServerSettings.getSystemUserGateway(), (String)value);
List<Resource> resources = worker.get(ResourceType.EXPERIMENT);
for (Resource resource : resources){
// ExperimentMetadataResource ex = (ExperimentMetadataResource)resource;
-// BasicMetadata basicMetadata = ThriftDataModelConversion.getBasicMetadata(ex);
+// BasicMetadata basicMetadata = ThriftDataModelConversion.getExperiment(ex);
// metadataList.add(basicMetadata);
}
return metadataList;
@@ -368,8 +368,8 @@ public class ExperimentRegistry {
return metadataList;
}
- public List<ConfigurationData> getConfigurationDataList (String fieldName, Object value){
- List<ConfigurationData> configDataList = new ArrayList<ConfigurationData>();
+ public List<UserConfigurationData> getConfigurationDataList (String fieldName, Object value){
+ List<UserConfigurationData> configDataList = new ArrayList<UserConfigurationData>();
try {
gatewayRegistry = new GatewayRegistry();
GatewayResource gateway = gatewayRegistry.getDefaultGateway();
@@ -397,7 +397,7 @@ public class ExperimentRegistry {
GatewayResource gateway = gatewayRegistry.getDefaultGateway();
// ExperimentMetadataResource exBasicData = (ExperimentMetadataResource) gateway.get(ResourceType.EXPERIMENT_METADATA, expId);
// if (fieldName == null){
-// return ThriftDataModelConversion.getBasicMetadata(exBasicData);
+// return ThriftDataModelConversion.getExperiment(exBasicData);
// }else if (fieldName.equals(Constants.FieldConstants.BasicMetadataConstants.USER_NAME)){
// return exBasicData.getExecutionUser();
// }else if (fieldName.equals(Constants.FieldConstants.BasicMetadataConstants.EXPERIMENT_NAME)){
@@ -457,7 +457,7 @@ public class ExperimentRegistry {
public List<String> getExperimentIDs (String fieldName, Object value) {
List<String> expIDs = new ArrayList<String>();
try {
- if (fieldName.equals(Constants.FieldConstants.BasicMetadataConstants.GATEWAY)) {
+ if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.GATEWAY)) {
GatewayResource gateway = gatewayRegistry.getExistingGateway((String) value);
if (gateway == null) {
logger.error("You should use an existing gateway in order to retrieve experiments..");
@@ -469,7 +469,7 @@ public class ExperimentRegistry {
// expIDs.add(expID);
// }
}
- } else if (fieldName.equals(Constants.FieldConstants.BasicMetadataConstants.USER_NAME)) {
+ } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.USER_NAME)) {
WorkerResource workerResource = userReg.getExistingUser(ServerSettings.getSystemUserGateway(), (String)value);
List<Resource> resources = workerResource.get(ResourceType.EXPERIMENT);
for (Resource resource : resources) {
http://git-wip-us.apache.org/repos/asf/airavata/blob/985151fc/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/RegistryImpl.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/RegistryImpl.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/RegistryImpl.java
index 4657283..d6f8e7b 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/RegistryImpl.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/RegistryImpl.java
@@ -21,8 +21,8 @@
package org.apache.airavata.persistance.registry.jpa.impl;
-import org.apache.airavata.model.experiment.BasicMetadata;
-import org.apache.airavata.model.experiment.ConfigurationData;
+import org.apache.airavata.model.workspace.experiment.Experiment;
+import org.apache.airavata.model.workspace.experiment.UserConfigurationData;
import org.apache.airavata.registry.cpi.ChildDataType;
import org.apache.airavata.registry.cpi.DataType;
import org.apache.airavata.registry.cpi.ParentDataType;
@@ -30,7 +30,6 @@ import org.apache.airavata.registry.cpi.Registry;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.sql.rowset.serial.SerialStruct;
import java.util.ArrayList;
import java.util.List;
@@ -50,8 +49,8 @@ public class RegistryImpl implements Registry {
@Override
public Object add(ParentDataType dataType, Object newObjectToAdd) {
switch (dataType){
- case EXPERIMENT_BASIC_DATA:
- return experimentRegistry.add((BasicMetadata) newObjectToAdd);
+ case EXPERIMENT:
+ return experimentRegistry.add((Experiment) newObjectToAdd);
default:
logger.error("Unsupported top level type..", new UnsupportedOperationException());
throw new UnsupportedOperationException();
@@ -73,15 +72,48 @@ public class RegistryImpl implements Registry {
public void add(ChildDataType dataType, Object newObjectToAdd, String dependentIdentifier) {
switch (dataType){
case EXPERIMENT_CONFIGURATION_DATA:
- experimentRegistry.add((ConfigurationData)newObjectToAdd, (String)dependentIdentifier);
+ experimentRegistry.add((UserConfigurationData)newObjectToAdd, (String)dependentIdentifier);
break;
- case EXPERIMENT_SUMMARY:
+ case EXPERIMENT_INPUT:
// no thrift model yet
break;
- case EXPERIMENT_GENERATED_DATA:
+ case EXPERIMENT_OUTPUT:
// no thrift model yet
break;
- case EXECUTION_ERROR:
+ case TASK_DETAIL:
+ // no thrift model yet
+ break;
+ case ERROR_DETAIL:
+ // no thrift model yet
+ break;
+ case APPLICATION_INPUT:
+ // no thrift model yet
+ break;
+ case APPLICATION_OUTPUT:
+ // no thrift model yet
+ break;
+ case NODE_INPUT:
+ // no thrift model yet
+ break;
+ case JOB_DETAIL:
+ // no thrift model yet
+ break;
+ case DATA_TRANSFER_DETAIL:
+ // no thrift model yet
+ break;
+ case STATUS:
+ // no thrift model yet
+ break;
+ case ADVANCE_INPUT_DATA_HANDLING:
+ // no thrift model yet
+ break;
+ case COMPUTATIONAL_RESOURCE_SCHEDULING:
+ // no thrift model yet
+ break;
+ case ADVANCE_OUTPUT_DATA_HANDLING:
+ // no thrift model yet
+ break;
+ case QOS_PARAM:
// no thrift model yet
break;
default:
@@ -104,7 +136,7 @@ public class RegistryImpl implements Registry {
@Override
public void update(DataType dataType, Object newObjectToUpdate, String identifier) {
switch (dataType){
- case EXPERIMENT_BASIC_DATA:
+ case EXPERIMENT:
experimentRegistry.update(newObjectToUpdate, identifier);
break;
case EXPERIMENT_CONFIGURATION_DATA:
@@ -132,7 +164,7 @@ public class RegistryImpl implements Registry {
@Override
public void update(DataType dataType, String identifier, String fieldName, Object value) {
switch (dataType){
- case EXPERIMENT_BASIC_DATA:
+ case EXPERIMENT:
experimentRegistry.updateExpBasicMetadataField(identifier, fieldName, value);
break;
case EXPERIMENT_CONFIGURATION_DATA:
@@ -157,7 +189,7 @@ public class RegistryImpl implements Registry {
public Object get(DataType dataType, String identifier) {
switch (dataType){
- case EXPERIMENT_BASIC_DATA:
+ case EXPERIMENT:
return experimentRegistry.getBasicMetaData(identifier, null);
case EXPERIMENT_CONFIGURATION_DATA:
return experimentRegistry.getConfigData(identifier, null);
@@ -180,15 +212,15 @@ public class RegistryImpl implements Registry {
public List<Object> get(DataType dataType, String fieldName, Object value) {
List<Object> result = new ArrayList<Object>();
switch (dataType){
- case EXPERIMENT_BASIC_DATA:
- List<BasicMetadata> experimentMetaDataList = experimentRegistry.getExperimentMetaDataList(fieldName, value);
- for (BasicMetadata basicMetadata : experimentMetaDataList){
- result.add(basicMetadata);
+ case EXPERIMENT:
+ List<Experiment> experimentMetaDataList = experimentRegistry.getExperimentMetaDataList(fieldName, value);
+ for (Experiment experiment : experimentMetaDataList){
+ result.add(experiment);
}
return result;
case EXPERIMENT_CONFIGURATION_DATA:
- List<ConfigurationData> configurationDataList = experimentRegistry.getConfigurationDataList(fieldName, value);
- for (ConfigurationData configData : configurationDataList){
+ List<UserConfigurationData> configurationDataList = experimentRegistry.getConfigurationDataList(fieldName, value);
+ for (UserConfigurationData configData : configurationDataList){
result.add(configData);
}
return result;
@@ -212,7 +244,7 @@ public class RegistryImpl implements Registry {
@Override
public Object getValue(DataType dataType, String identifier, String field) {
switch (dataType){
- case EXPERIMENT_BASIC_DATA:
+ case EXPERIMENT:
return experimentRegistry.getBasicMetaData(identifier, field);
case EXPERIMENT_CONFIGURATION_DATA:
return experimentRegistry.getConfigData(identifier, field);
@@ -236,7 +268,7 @@ public class RegistryImpl implements Registry {
@Override
public List<String> getIds(DataType dataType, String fieldName, Object value) {
switch (dataType){
- case EXPERIMENT_BASIC_DATA:
+ case EXPERIMENT:
return experimentRegistry.getExperimentIDs(fieldName, value);
case EXPERIMENT_CONFIGURATION_DATA:
return experimentRegistry.getExperimentIDs(fieldName, value);
@@ -256,7 +288,7 @@ public class RegistryImpl implements Registry {
@Override
public void remove(DataType dataType, String identifier) {
switch (dataType){
- case EXPERIMENT_BASIC_DATA:
+ case EXPERIMENT:
experimentRegistry.removeExperiment(identifier);
break;
case EXPERIMENT_CONFIGURATION_DATA:
@@ -278,7 +310,7 @@ public class RegistryImpl implements Registry {
@Override
public boolean isExist(DataType dataType, String identifier) {
switch (dataType){
- case EXPERIMENT_BASIC_DATA:
+ case EXPERIMENT:
return experimentRegistry.isExperimentBasicDataExist(identifier);
case EXPERIMENT_CONFIGURATION_DATA:
return experimentRegistry.isExperimentConfigDataExist(identifier);
http://git-wip-us.apache.org/repos/asf/airavata/blob/985151fc/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/ErrorDetail.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/ErrorDetail.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/ErrorDetail.java
index 6c6e6cd..a99aa70 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/ErrorDetail.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/ErrorDetail.java
@@ -51,6 +51,9 @@ public class ErrorDetail {
private String correctiveAction;
@Column(name = "ACTIONABLE_GROUP")
private String actionableGroup;
+ @Column(name = "JOB_ID")
+ private String jobId;
+
@ManyToOne(cascade= CascadeType.MERGE)
@JoinColumn(name = "EXPERIMENT_ID")
@@ -175,4 +178,12 @@ public class ErrorDetail {
public void setCorrectiveAction(String correctiveAction) {
this.correctiveAction = correctiveAction;
}
+
+ public String getJobId() {
+ return jobId;
+ }
+
+ public void setJobId(String jobId) {
+ this.jobId = jobId;
+ }
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/985151fc/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/JobDetail.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/JobDetail.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/JobDetail.java
index a04e722..ba718a6 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/JobDetail.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/JobDetail.java
@@ -38,6 +38,9 @@ public class JobDetail {
private String jobDescription;
@Column(name = "CREATION_TIME")
private Timestamp creationTime;
+ @Column(name = "COMPUTE_RESOURCE_CONSUMED")
+ private String computeResourceConsumed;
+
@ManyToOne(cascade= CascadeType.MERGE)
@JoinColumn(name = "TASK_ID")
@@ -82,4 +85,12 @@ public class JobDetail {
public void setTask(TaskDetail task) {
this.task = task;
}
+
+ public String getComputeResourceConsumed() {
+ return computeResourceConsumed;
+ }
+
+ public void setComputeResourceConsumed(String computeResourceConsumed) {
+ this.computeResourceConsumed = computeResourceConsumed;
+ }
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/985151fc/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/QosParam.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/QosParam.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/QosParam.java
index 9c73497..32fa94a 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/QosParam.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/QosParam.java
@@ -38,7 +38,7 @@ public class QosParam {
private String startExecutionAt;
@Column(name = "EXECUTE_BEFORE")
private String executeBefore;
- @Column(name = "EXECUTE_BEFORE")
+ @Column(name = "NO_OF_RETRIES")
private int noOfRetries;
@ManyToOne(cascade= CascadeType.MERGE)
http://git-wip-us.apache.org/repos/asf/airavata/blob/985151fc/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/AbstractResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/AbstractResource.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/AbstractResource.java
index c824c46..f90a5b1 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/AbstractResource.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/AbstractResource.java
@@ -205,6 +205,7 @@ public abstract class AbstractResource implements Resource {
public static final String ERROR_ID = "error_id";
public static final String EXPERIMENT_ID = "experiment_id";
public static final String TASK_ID = "task_id";
+ public static final String JOB_ID = "job_id";
public static final String NODE_INSTANCE_ID = "node_instance_id";
public static final String CREATION_TIME = "creation_time";
public static final String ACTUAL_ERROR_MESSAGE = "actual_error_message";
http://git-wip-us.apache.org/repos/asf/airavata/blob/985151fc/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ErrorDetailResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ErrorDetailResource.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ErrorDetailResource.java
index 63d9d0f..3b958db 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ErrorDetailResource.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ErrorDetailResource.java
@@ -48,6 +48,7 @@ public class ErrorDetailResource extends AbstractResource {
private String errorCategory;
private String correctiveAction;
private String actionableGroup;
+ private String jobId;
public int getErrorId() {
return errorId;
@@ -137,6 +138,14 @@ public class ErrorDetailResource extends AbstractResource {
this.nodeDetail = nodeDetail;
}
+ public String getJobId() {
+ return jobId;
+ }
+
+ public void setJobId(String jobId) {
+ this.jobId = jobId;
+ }
+
@Override
public Resource create(ResourceType type) {
logger.error("Unsupported resource type for error details data resource.", new UnsupportedOperationException());
@@ -184,6 +193,7 @@ public class ErrorDetailResource extends AbstractResource {
errorDetail.setErrorCategory(errorCategory);
errorDetail.setCorrectiveAction(correctiveAction);
errorDetail.setActionableGroup(actionableGroup);
+ errorDetail.setJobId(jobId);
if (existingErrorDetail != null){
existingErrorDetail.setErrorID(errorId);
existingErrorDetail.setExperiment(experiment);
@@ -196,6 +206,7 @@ public class ErrorDetailResource extends AbstractResource {
existingErrorDetail.setErrorCategory(errorCategory);
existingErrorDetail.setCorrectiveAction(correctiveAction);
existingErrorDetail.setActionableGroup(actionableGroup);
+ existingErrorDetail.setJobId(jobId);
errorDetail = em.merge(existingErrorDetail);
}else {
em.merge(errorDetail);
http://git-wip-us.apache.org/repos/asf/airavata/blob/985151fc/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentResource.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentResource.java
index f0ae728..1e3273b 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentResource.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentResource.java
@@ -32,6 +32,7 @@ import org.apache.airavata.persistance.registry.jpa.ResourceType;
import org.apache.airavata.persistance.registry.jpa.ResourceUtils;
import org.apache.airavata.persistance.registry.jpa.model.*;
import org.apache.airavata.persistance.registry.jpa.utils.QueryGenerator;
+import org.apache.airavata.registry.cpi.utils.StatusType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -564,13 +565,64 @@ public class ExperimentResource extends AbstractResource {
this.project = project;
}
-// public ExperimentDataResource getData(){
-// if (isExists(ResourceType.EXPERIMENT_DATA, getExpID())){
-// return (ExperimentDataResource) get(ResourceType.EXPERIMENT_DATA, getExpID());
-// }else{
-// ExperimentDataResource data = (ExperimentDataResource) create(ResourceType.EXPERIMENT_DATA);
-// data.save();
-// return data;
-// }
-// }
+ public List<ExperimentInputResource> getExperimentInputs (){
+ List<ExperimentInputResource> expInputs = new ArrayList<ExperimentInputResource>();
+ List<Resource> resources = get(ResourceType.EXPERIMENT_INPUT);
+ for (Resource resource : resources) {
+ expInputs.add((ExperimentInputResource) resource);
+ }
+ return expInputs;
+ }
+
+ public List<ExperimentOutputResource> getExperimentOutputs (){
+ List<ExperimentOutputResource> expOutputs = new ArrayList<ExperimentOutputResource>();
+ List<Resource> resources = get(ResourceType.EXPERIMENT_OUTPUT);
+ for (Resource resource : resources) {
+ expOutputs.add((ExperimentOutputResource) resource);
+ }
+ return expOutputs;
+ }
+
+ public StatusResource getExperimentStatus(){
+ List<Resource> resources = get(ResourceType.STATUS);
+ for (Resource resource : resources) {
+ StatusResource expStatus = (StatusResource) resource;
+ if(expStatus.getStatusType().equals(StatusType.EXPERIMENT)){
+ return expStatus;
+ }
+ }
+ return null;
+ }
+
+ public List<StatusResource> getWorkflowNodeStatuses(){
+ List<StatusResource> statuses = new ArrayList<StatusResource>();
+ List<Resource> resources = get(ResourceType.STATUS);
+ for (Resource resource : resources) {
+ StatusResource workflowNodeStatus = (StatusResource) resource;
+ if(workflowNodeStatus.getStatusType().equals(StatusType.WORKFLOW_NODE)){
+ statuses.add(workflowNodeStatus);
+ }
+ }
+ return statuses;
+ }
+
+ public List<WorkflowNodeDetailResource> getWorkflowNodeDetails (){
+ List<WorkflowNodeDetailResource> workflowNodeDetailResourceList = new ArrayList<WorkflowNodeDetailResource>();
+ List<Resource> resources = get(ResourceType.WORKFLOW_NODE_DETAIL);
+ for (Resource resource : resources) {
+ WorkflowNodeDetailResource nodeDetailResource = (WorkflowNodeDetailResource) resource;
+ workflowNodeDetailResourceList.add(nodeDetailResource);
+ }
+ return workflowNodeDetailResourceList;
+ }
+
+ public List<ErrorDetailResource> getErrorDetails (){
+ List<ErrorDetailResource> errorDetailResources = new ArrayList<ErrorDetailResource>();
+ List<Resource> resources = get(ResourceType.ERROR_DETAIL);
+ for (Resource resource : resources) {
+ ErrorDetailResource errorDetailResource = (ErrorDetailResource) resource;
+ errorDetailResources.add(errorDetailResource);
+ }
+ return errorDetailResources;
+ }
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/985151fc/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/JobDetailResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/JobDetailResource.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/JobDetailResource.java
index 13a889e..cf9be66 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/JobDetailResource.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/JobDetailResource.java
@@ -24,11 +24,9 @@ package org.apache.airavata.persistance.registry.jpa.resources;
import org.apache.airavata.persistance.registry.jpa.Resource;
import org.apache.airavata.persistance.registry.jpa.ResourceType;
import org.apache.airavata.persistance.registry.jpa.ResourceUtils;
-import org.apache.airavata.persistance.registry.jpa.model.JobDetail;
-import org.apache.airavata.persistance.registry.jpa.model.JobDetails_PK;
-import org.apache.airavata.persistance.registry.jpa.model.Status;
-import org.apache.airavata.persistance.registry.jpa.model.TaskDetail;
+import org.apache.airavata.persistance.registry.jpa.model.*;
import org.apache.airavata.persistance.registry.jpa.utils.QueryGenerator;
+import org.apache.airavata.registry.cpi.utils.StatusType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -44,6 +42,7 @@ public class JobDetailResource extends AbstractResource {
private TaskDetailResource taskDetailResource;
private String jobDescription;
private Timestamp creationTime;
+ private String computeResourceConsumed;
public String getJobId() {
return jobId;
@@ -77,6 +76,14 @@ public class JobDetailResource extends AbstractResource {
this.creationTime = creationTime;
}
+ public String getComputeResourceConsumed() {
+ return computeResourceConsumed;
+ }
+
+ public void setComputeResourceConsumed(String computeResourceConsumed) {
+ this.computeResourceConsumed = computeResourceConsumed;
+ }
+
@Override
public Resource create(ResourceType type) {
switch (type){
@@ -84,6 +91,10 @@ public class JobDetailResource extends AbstractResource {
StatusResource statusResource = new StatusResource();
statusResource.setJobId(jobId);
return statusResource;
+ case ERROR_DETAIL:
+ ErrorDetailResource errorDetailResource = new ErrorDetailResource();
+ errorDetailResource.setJobId(jobId);
+ return errorDetailResource;
default:
logger.error("Unsupported resource type for job details data resource.", new UnsupportedOperationException());
throw new UnsupportedOperationException();
@@ -103,6 +114,12 @@ public class JobDetailResource extends AbstractResource {
q = generator.deleteQuery(em);
q.executeUpdate();
break;
+ case ERROR_DETAIL:
+ generator = new QueryGenerator(STATUS);
+ generator.setParameter(ErrorDetailConstants.JOB_ID, name);
+ q = generator.deleteQuery(em);
+ q.executeUpdate();
+ break;
default:
logger.error("Unsupported resource type for job details resource.", new IllegalArgumentException());
break;
@@ -127,6 +144,15 @@ public class JobDetailResource extends AbstractResource {
em.getTransaction().commit();
em.close();
return statusResource;
+ case ERROR_DETAIL:
+ generator = new QueryGenerator(ERROR_DETAIL);
+ generator.setParameter(ErrorDetailConstants.JOB_ID, name);
+ q = generator.selectQuery(em);
+ ErrorDetail errorDetail = (ErrorDetail)q.getSingleResult();
+ ErrorDetailResource errorDetailResource = (ErrorDetailResource)Utils.getResource(ResourceType.ERROR_DETAIL, errorDetail);
+ em.getTransaction().commit();
+ em.close();
+ return errorDetailResource;
default:
em.getTransaction().commit();
em.close();
@@ -158,6 +184,20 @@ public class JobDetailResource extends AbstractResource {
}
}
break;
+ case ERROR_DETAIL:
+ generator = new QueryGenerator(ERROR_DETAIL);
+ generator.setParameter(ErrorDetailConstants.JOB_ID, jobId);
+ q = generator.selectQuery(em);
+ results = q.getResultList();
+ if (results.size() != 0) {
+ for (Object result : results) {
+ ErrorDetail errorDetail = (ErrorDetail) result;
+ ErrorDetailResource errorDetailResource =
+ (ErrorDetailResource)Utils.getResource(ResourceType.ERROR_DETAIL, errorDetail);
+ resourceList.add(errorDetailResource);
+ }
+ }
+ break;
default:
em.getTransaction().commit();
em.close();
@@ -184,12 +224,14 @@ public class JobDetailResource extends AbstractResource {
jobDetail.setTaskId(taskDetailResource.getTaskId());
jobDetail.setCreationTime(creationTime);
jobDetail.setJobDescription(jobDescription);
+ jobDetail.setComputeResourceConsumed(computeResourceConsumed);
if (existingJobDetail != null){
existingJobDetail.setJobId(jobId);
existingJobDetail.setTask(taskDetail);
existingJobDetail.setTaskId(taskDetailResource.getTaskId());
existingJobDetail.setCreationTime(creationTime);
existingJobDetail.setJobDescription(jobDescription);
+ existingJobDetail.setComputeResourceConsumed(computeResourceConsumed);
jobDetail = em.merge(existingJobDetail);
}else {
em.merge(jobDetail);
@@ -197,4 +239,35 @@ public class JobDetailResource extends AbstractResource {
em.getTransaction().commit();
em.close();
}
+
+ public StatusResource getJobStatus(){
+ List<Resource> resources = get(ResourceType.STATUS);
+ for (Resource resource : resources) {
+ StatusResource jobStatus = (StatusResource) resource;
+ if(jobStatus.getStatusType().equals(StatusType.JOB)){
+ return jobStatus;
+ }
+ }
+ return null;
+ }
+
+ public StatusResource getApplicationStatus(){
+ List<Resource> resources = get(ResourceType.STATUS);
+ for (Resource resource : resources) {
+ StatusResource appStatus = (StatusResource) resource;
+ if(appStatus.getStatusType().equals(StatusType.APPLICATION)){
+ return appStatus;
+ }
+ }
+ return null;
+ }
+
+ public List<ErrorDetailResource> getErrorDetails (){
+ List<ErrorDetailResource> errorDetailResources = new ArrayList<ErrorDetailResource>();
+ List<Resource> resources = get(ResourceType.ERROR_DETAIL);
+ for(Resource resource : resources){
+ errorDetailResources.add((ErrorDetailResource)resource);
+ }
+ return errorDetailResources;
+ }
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/985151fc/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/TaskDetailResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/TaskDetailResource.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/TaskDetailResource.java
index e1f0a21..d64c05c 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/TaskDetailResource.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/TaskDetailResource.java
@@ -26,6 +26,7 @@ import org.apache.airavata.persistance.registry.jpa.ResourceType;
import org.apache.airavata.persistance.registry.jpa.ResourceUtils;
import org.apache.airavata.persistance.registry.jpa.model.*;
import org.apache.airavata.persistance.registry.jpa.utils.QueryGenerator;
+import org.apache.airavata.registry.cpi.utils.StatusType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -446,4 +447,78 @@ public class TaskDetailResource extends AbstractResource {
em.getTransaction().commit();
em.close();
}
+
+ public List<ApplicationInputResource> getApplicationInputs() {
+ List<ApplicationInputResource> applicationInputResources = new ArrayList<ApplicationInputResource>();
+ List<Resource> resources = get(ResourceType.APPLICATION_INPUT);
+ for (Resource resource : resources) {
+ ApplicationInputResource inputResource = (ApplicationInputResource) resource;
+ applicationInputResources.add(inputResource);
+ }
+ return applicationInputResources;
+ }
+
+ public List<ApplicationOutputResource> getApplicationOutputs(){
+ List<ApplicationOutputResource> outputResources = new ArrayList<ApplicationOutputResource>();
+ List<Resource> resources = get(ResourceType.APPLICATION_OUTPUT);
+ for (Resource resource : resources) {
+ ApplicationOutputResource outputResource = (ApplicationOutputResource) resource;
+ outputResources.add(outputResource);
+ }
+ return outputResources;
+ }
+
+ public StatusResource getTaskStatus(){
+ List<Resource> resources = get(ResourceType.STATUS);
+ for (Resource resource : resources) {
+ StatusResource taskStatus = (StatusResource) resource;
+ if(taskStatus.getStatusType().equals(StatusType.TASK)){
+ return taskStatus;
+ }
+ }
+ return null;
+ }
+
+ public List<JobDetailResource> getJobDetailList(){
+ List<JobDetailResource> jobDetailResources = new ArrayList<JobDetailResource>();
+ List<Resource> resources = get(ResourceType.JOB_DETAIL);
+ for (Resource resource : resources) {
+ JobDetailResource jobDetailResource = (JobDetailResource) resource;
+ jobDetailResources.add(jobDetailResource);
+ }
+ return jobDetailResources;
+ }
+
+ public List<DataTransferDetailResource> getDataTransferDetailList(){
+ List<DataTransferDetailResource> transferDetails = new ArrayList<DataTransferDetailResource>();
+ List<Resource> resources = get(ResourceType.DATA_TRANSFER_DETAIL);
+ for (Resource resource : resources) {
+ DataTransferDetailResource transferDetailResource = (DataTransferDetailResource) resource;
+ transferDetails.add(transferDetailResource);
+ }
+ return transferDetails;
+ }
+
+ public List<ErrorDetailResource> getErrorDetailList(){
+ List<ErrorDetailResource> errorDetailResources = new ArrayList<ErrorDetailResource>();
+ List<Resource> resources = get(ResourceType.ERROR_DETAIL);
+ for (Resource resource : resources) {
+ ErrorDetailResource errorDetailResource = (ErrorDetailResource) resource;
+ errorDetailResources.add(errorDetailResource);
+ }
+ return errorDetailResources;
+ }
+
+ public ComputationSchedulingResource getComputationScheduling (String taskId){
+ return (ComputationSchedulingResource)get(ResourceType.COMPUTATIONAL_RESOURCE_SCHEDULING, taskId);
+ }
+
+ public AdvanceInputDataHandlingResource getInputDataHandling (String taskId){
+ return (AdvanceInputDataHandlingResource)get(ResourceType.ADVANCE_INPUT_DATA_HANDLING, taskId);
+ }
+
+ public AdvancedOutputDataHandlingResource getOutputDataHandling (String taskId){
+ return (AdvancedOutputDataHandlingResource)get(ResourceType.ADVANCE_OUTPUT_DATA_HANDLING, taskId);
+ }
+
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/985151fc/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java
index e4c8265..597a036 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java
@@ -636,6 +636,7 @@ public class Utils {
WorkflowNodeDetailResource nodeDetailResource = (WorkflowNodeDetailResource)createWorkflowNodeDetail(o.getNodeDetails());
errorDetailResource.setNodeDetail(nodeDetailResource);
errorDetailResource.setErrorId(o.getErrorID());
+ errorDetailResource.setJobId(o.getJobId());
errorDetailResource.setCreationTime(o.getCreationTime());
errorDetailResource.setActualErrorMsg(o.getActualErrorMsg());
errorDetailResource.setUserFriendlyErrorMsg(o.getUserFriendlyErrorMsg());
@@ -697,6 +698,7 @@ public class Utils {
jobDetailResource.setJobDescription(o.getJobDescription());
jobDetailResource.setJobId(o.getJobId());
jobDetailResource.setCreationTime(o.getCreationTime());
+ jobDetailResource.setComputeResourceConsumed(o.getComputeResourceConsumed());
return jobDetailResource;
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/985151fc/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/WorkflowNodeDetailResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/WorkflowNodeDetailResource.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/WorkflowNodeDetailResource.java
index cc3e2c2..48ae4e6 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/WorkflowNodeDetailResource.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/WorkflowNodeDetailResource.java
@@ -26,6 +26,7 @@ import org.apache.airavata.persistance.registry.jpa.ResourceType;
import org.apache.airavata.persistance.registry.jpa.ResourceUtils;
import org.apache.airavata.persistance.registry.jpa.model.*;
import org.apache.airavata.persistance.registry.jpa.utils.QueryGenerator;
+import org.apache.airavata.registry.cpi.utils.StatusType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -325,4 +326,55 @@ public class WorkflowNodeDetailResource extends AbstractResource {
em.getTransaction().commit();
em.close();
}
+
+ public List<NodeInputResource> getNodeInputs(){
+ List<NodeInputResource> nodeInputResourceList = new ArrayList<NodeInputResource>();
+ List<Resource> resources = get(ResourceType.NODE_INPUT);
+ for (Resource resource : resources) {
+ NodeInputResource nodeInputResource = (NodeInputResource) resource;
+ nodeInputResourceList.add(nodeInputResource);
+ }
+ return nodeInputResourceList;
+ }
+
+ public List<NodeOutputResource> getNodeOutputs(){
+ List<NodeOutputResource> outputResources = new ArrayList<NodeOutputResource>();
+ List<Resource> resources = get(ResourceType.NODE_OUTPUT);
+ for (Resource resource : resources) {
+ NodeOutputResource nodeOutputResource = (NodeOutputResource) resource;
+ outputResources.add(nodeOutputResource);
+ }
+ return outputResources;
+ }
+
+ public StatusResource getWorkflowNodeStatus(){
+ List<Resource> resources = get(ResourceType.STATUS);
+ for (Resource resource : resources) {
+ StatusResource nodeStatus = (StatusResource) resource;
+ if(nodeStatus.getStatusType().equals(StatusType.WORKFLOW_NODE)){
+ return nodeStatus;
+ }
+ }
+ return null;
+ }
+
+ public List<TaskDetailResource> getTaskDetails(){
+ List<TaskDetailResource> taskDetailResources = new ArrayList<TaskDetailResource>();
+ List<Resource> resources = get(ResourceType.TASK_DETAIL);
+ for (Resource resource : resources) {
+ TaskDetailResource taskDetailResource = (TaskDetailResource) resource;
+ taskDetailResources.add(taskDetailResource);
+ }
+ return taskDetailResources;
+ }
+
+ public List<ErrorDetailResource> getErrorDetails(){
+ List<ErrorDetailResource> errorDetails = new ArrayList<ErrorDetailResource>();
+ List<Resource> resources = get(ResourceType.TASK_DETAIL);
+ for (Resource resource : resources) {
+ ErrorDetailResource errorDetailResource = (ErrorDetailResource) resource;
+ errorDetails.add(errorDetailResource);
+ }
+ return errorDetails;
+ }
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/985151fc/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/utils/ThriftDataModelConversion.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/utils/ThriftDataModelConversion.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/utils/ThriftDataModelConversion.java
index d5c425b..9d837a3 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/utils/ThriftDataModelConversion.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/utils/ThriftDataModelConversion.java
@@ -1,54 +1,280 @@
-///*
-// *
-// * Licensed to the Apache Software Foundation (ASF) under one
-// * or more contributor license agreements. See the NOTICE file
-// * distributed with this work for additional information
-// * regarding copyright ownership. The ASF licenses this file
-// * to you under the Apache License, Version 2.0 (the
-// * "License"); you may not use this file except in compliance
-// * with the License. You may obtain a copy of the License at
-// *
-// * http://www.apache.org/licenses/LICENSE-2.0
-// *
-// * Unless required by applicable law or agreed to in writing,
-// * software distributed under the License is distributed on an
-// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// * KIND, either express or implied. See the License for the
-// * specific language governing permissions and limitations
-// * under the License.
-// *
-// */
-//
-//package org.apache.airavata.persistance.registry.jpa.utils;
-//
-//import org.apache.airavata.model.experiment.*;
-//import org.apache.airavata.persistance.registry.jpa.Resource;
-//import org.apache.airavata.persistance.registry.jpa.ResourceType;
-//import org.apache.airavata.persistance.registry.jpa.resources.ExperimentConfigDataResource;
-//import org.apache.airavata.persistance.registry.jpa.resources.ExperimentInputResource;
-//import org.apache.airavata.persistance.registry.jpa.resources.ExperimentMetadataResource;
-//import org.slf4j.Logger;
-//import org.slf4j.LoggerFactory;
-//
-//import java.util.HashMap;
-//import java.util.List;
-//import java.util.Map;
-//
-//public class ThriftDataModelConversion {
-// private final static Logger logger = LoggerFactory.getLogger(ThriftDataModelConversion.class);
-//
-// public static BasicMetadata getBasicMetadata (ExperimentMetadataResource exmetadata){
-// BasicMetadata bsmd = new BasicMetadata();
-// bsmd.setUserName(exmetadata.getExecutionUser());
-// bsmd.setShareExperimentPublicly(exmetadata.isShareExp());
-// bsmd.setExperimentDescription(exmetadata.getDescription());
-// bsmd.setExperimentName(exmetadata.getExperimentName());
-// return bsmd;
-// }
-//
+/*
+*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements. See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership. The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied. See the License for the
+* specific language governing permissions and limitations
+* under the License.
+*
+*/
+
+package org.apache.airavata.persistance.registry.jpa.utils;
+
+import org.apache.airavata.model.workspace.experiment.*;
+import org.apache.airavata.persistance.registry.jpa.resources.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class ThriftDataModelConversion {
+ private final static Logger logger = LoggerFactory.getLogger(ThriftDataModelConversion.class);
+
+ public static Experiment getExperiment(ExperimentResource experimentResource){
+ Experiment experiment = new Experiment();
+ experiment.setProjectID(experimentResource.getProject().getName());
+ experiment.setCreationTime(experimentResource.getCreationTime().getTime());
+ experiment.setUserName(experimentResource.getWorker().getUser());
+ experiment.setName(experimentResource.getExpName());
+ experiment.setDescription(experimentResource.getDescription());
+ experiment.setApplicationId(experimentResource.getApplicationId());
+ experiment.setApplicationVersion(experimentResource.getApplicationVersion());
+ experiment.setWorkflowTemplateId(experimentResource.getWorkflowTemplateId());
+ experiment.setWorkflowTemplateVersion(experimentResource.getWorkflowTemplateVersion());
+ experiment.setWorkflowExecutionInstanceId(experimentResource.getWorkflowExecutionId());
+ List<ExperimentInputResource> experimentInputs = experimentResource.getExperimentInputs();
+ experiment.setExperimentInputs(getExpInputs(experimentInputs));
+ List<ExperimentOutputResource> experimentOutputs = experimentResource.getExperimentOutputs();
+ experiment.setExperimentOutputs(getExpOutputs(experimentOutputs));
+ StatusResource experimentStatus = experimentResource.getExperimentStatus();
+ experiment.setExperimentStatus(getExperimentStatus(experimentStatus));
+ List<StatusResource> changeList = experimentResource.getWorkflowNodeStatuses();
+ experiment.setStateChangeList(getWorkflowNodeStatusList(changeList));
+ List<WorkflowNodeDetailResource> workflowNodeDetails = experimentResource.getWorkflowNodeDetails();
+
+// experiment.setWorkflowNodeDetailsList();
+
+ return experiment;
+ }
+
+ public static DataObjectType getInputOutput(Object object){
+ DataObjectType dataObjectType = new DataObjectType();
+ if (object instanceof ExperimentInputResource){
+ ExperimentInputResource expInput = (ExperimentInputResource) object;
+ dataObjectType.setKey(expInput.getExperimentKey());
+ dataObjectType.setValue(expInput.getValue());
+ dataObjectType.setType(expInput.getInputType());
+ dataObjectType.setMetaData(expInput.getMetadata());
+ return dataObjectType;
+ }else if (object instanceof ExperimentOutputResource){
+ ExperimentOutputResource expOutput = (ExperimentOutputResource)object;
+ dataObjectType.setKey(expOutput.getExperimentKey());
+ dataObjectType.setValue(expOutput.getValue());
+ dataObjectType.setType(expOutput.getOutputType());
+ dataObjectType.setMetaData(expOutput.getMetadata());
+ return dataObjectType;
+ }else if (object instanceof NodeInputResource){
+ NodeInputResource nodeInputResource = (NodeInputResource)object;
+ dataObjectType.setKey(nodeInputResource.getInputKey());
+ dataObjectType.setValue(nodeInputResource.getValue());
+ dataObjectType.setType(nodeInputResource.getInputType());
+ dataObjectType.setMetaData(nodeInputResource.getMetadata());
+ return dataObjectType;
+ }else if (object instanceof NodeOutputResource){
+ NodeOutputResource nodeOutputResource = (NodeOutputResource)object;
+ dataObjectType.setKey(nodeOutputResource.getOutputKey());
+ dataObjectType.setValue(nodeOutputResource.getValue());
+ dataObjectType.setType(nodeOutputResource.getOutputType());
+ dataObjectType.setMetaData(nodeOutputResource.getMetadata());
+ return dataObjectType;
+ }else if (object instanceof ApplicationInputResource){
+ ApplicationInputResource inputResource = (ApplicationInputResource)object;
+ dataObjectType.setKey(inputResource.getInputKey());
+ dataObjectType.setValue(inputResource.getValue());
+ dataObjectType.setType(inputResource.getInputType());
+ dataObjectType.setMetaData(inputResource.getMetadata());
+ return dataObjectType;
+ }else if (object instanceof ApplicationOutputResource){
+ ApplicationOutputResource outputResource = (ApplicationOutputResource)object;
+ dataObjectType.setKey(outputResource.getOutputKey());
+ dataObjectType.setValue(outputResource.getValue());
+ dataObjectType.setType(outputResource.getOutputType());
+ dataObjectType.setMetaData(outputResource.getMetadata());
+ return dataObjectType;
+ }else {
+ return null;
+ }
+ }
+
+ public static List<DataObjectType> getExpInputs (List<ExperimentInputResource> exInputList){
+ List<DataObjectType> expInputs = new ArrayList<DataObjectType>();
+ for (ExperimentInputResource inputResource : exInputList){
+ DataObjectType exInput = getInputOutput(inputResource);
+ expInputs.add(exInput);
+ }
+ return expInputs;
+ }
+
+ public static List<DataObjectType> getExpOutputs (List<ExperimentOutputResource> experimentOutputResourceList){
+ List<DataObjectType> exOutputs = new ArrayList<DataObjectType>();
+ for (ExperimentOutputResource outputResource : experimentOutputResourceList){
+ DataObjectType output = getInputOutput(outputResource);
+ exOutputs.add(output);
+ }
+ return exOutputs;
+ }
+
+ public static List<DataObjectType> getNodeInputs (List<NodeInputResource> nodeInputResources){
+ List<DataObjectType> nodeInputs = new ArrayList<DataObjectType>();
+ for (NodeInputResource inputResource : nodeInputResources){
+ DataObjectType nodeInput = getInputOutput(inputResource);
+ nodeInputs.add(nodeInput);
+ }
+ return nodeInputs;
+ }
+
+ public static List<DataObjectType> getNodeOutputs (List<NodeOutputResource> nodeOutputResourceList){
+ List<DataObjectType> nodeOutputs = new ArrayList<DataObjectType>();
+ for (NodeOutputResource outputResource : nodeOutputResourceList){
+ DataObjectType output = getInputOutput(outputResource);
+ nodeOutputs.add(output);
+ }
+ return nodeOutputs;
+ }
+
+ public static List<DataObjectType> getApplicationInputs (List<ApplicationInputResource> applicationInputResources){
+ List<DataObjectType> appInputs = new ArrayList<DataObjectType>();
+ for (ApplicationInputResource inputResource : applicationInputResources){
+ DataObjectType appInput = getInputOutput(inputResource);
+ appInputs.add(appInput);
+ }
+ return appInputs;
+ }
+
+ public static List<DataObjectType> getApplicationOutputs (List<ApplicationOutputResource> outputResources){
+ List<DataObjectType> appOutputs = new ArrayList<DataObjectType>();
+ for (ApplicationOutputResource outputResource : outputResources){
+ DataObjectType output = getInputOutput(outputResource);
+ appOutputs.add(output);
+ }
+ return appOutputs;
+ }
+
+ public static ExperimentStatus getExperimentStatus(StatusResource status){
+ ExperimentStatus experimentStatus = new ExperimentStatus();
+ experimentStatus.setExperimentState(ExperimentState.valueOf(status.getState()));
+ experimentStatus.setTimeOfStateChange(status.getStatusUpdateTime().getTime());
+ return experimentStatus;
+ }
+
+ public static WorkflowNodeStatus getWorkflowNodeStatus (StatusResource status){
+ WorkflowNodeStatus workflowNodeStatus = new WorkflowNodeStatus();
+ workflowNodeStatus.setWorkflowNodeState(WorkflowNodeState.valueOf(status.getState()));
+ workflowNodeStatus.setTimeOfStateChange(status.getStatusUpdateTime().getTime());
+ return workflowNodeStatus;
+ }
+
+ public static TaskStatus getTaskStatus (StatusResource status){
+ TaskStatus taskStatus = new TaskStatus();
+ taskStatus.setExecutionState(TaskState.valueOf(status.getState()));
+ taskStatus.setTimeOfStateChange(status.getStatusUpdateTime().getTime());
+ return taskStatus;
+ }
+
+ public static JobStatus getJobStatus (StatusResource status){
+ JobStatus jobStatus = new JobStatus();
+ jobStatus.setJobState(JobState.valueOf(status.getState()));
+ jobStatus.setTimeOfStateChange(status.getStatusUpdateTime().getTime());
+ return jobStatus;
+ }
+
+ public static ApplicationStatus getApplicationStatus (StatusResource status){
+ ApplicationStatus applicationStatus = new ApplicationStatus();
+ applicationStatus.setApplicationState(status.getState());
+ applicationStatus.setTimeOfStateChange(status.getStatusUpdateTime().getTime());
+ return applicationStatus;
+ }
+
+ public static List<WorkflowNodeStatus> getWorkflowNodeStatusList(List<StatusResource> statuses){
+ List<WorkflowNodeStatus> wfNodeStatuses = new ArrayList<WorkflowNodeStatus>();
+ for (StatusResource statusResource : statuses){
+ wfNodeStatuses.add(getWorkflowNodeStatus(statusResource));
+ }
+ return wfNodeStatuses;
+ }
+
+ public static WorkflowNodeDetails getWorkflowNodeDetails(WorkflowNodeDetailResource nodeDetailResource){
+ WorkflowNodeDetails wfNode = new WorkflowNodeDetails();
+ wfNode.setNodeInstanceId(nodeDetailResource.getNodeInstanceId());
+ wfNode.setCreationTime(nodeDetailResource.getCreationTime().getTime());
+ wfNode.setNodeName(nodeDetailResource.getNodeName());
+ List<NodeInputResource> nodeInputs = nodeDetailResource.getNodeInputs();
+ wfNode.setNodeInputs(getNodeInputs(nodeInputs));
+ List<NodeOutputResource> nodeOutputs = nodeDetailResource.getNodeOutputs();
+ wfNode.setNodeOutputs(getNodeOutputs(nodeOutputs));
+ List<TaskDetailResource> taskDetails = nodeDetailResource.getTaskDetails();
+
+ //get taskdetails
+ //get workflownodestatus
+ //geterrordetails
+ return wfNode;
+ }
+
+ public static TaskDetails getTaskDetail (TaskDetailResource taskDetailResource){
+ TaskDetails taskDetails = new TaskDetails();
+ taskDetails.setTaskID(taskDetailResource.getTaskId());
+ taskDetails.setApplicationId(taskDetailResource.getApplicationId());
+ taskDetails.setApplicationVersion(taskDetailResource.getApplicationVersion());
+ List<ApplicationInputResource> applicationInputs = taskDetailResource.getApplicationInputs();
+ taskDetails.setApplicationInputs(getApplicationInputs(applicationInputs));
+ List<ApplicationOutputResource> applicationOutputs = taskDetailResource.getApplicationOutputs();
+ taskDetails.setApplicationOutputs(getApplicationOutputs(applicationOutputs));
+ ComputationSchedulingResource computationScheduling = taskDetailResource.getComputationScheduling(taskDetailResource.getTaskId());
+ taskDetails.setTaskScheduling(getComputationalResourceScheduling(computationScheduling));
+ AdvanceInputDataHandlingResource inputDataHandling = taskDetailResource.getInputDataHandling(taskDetailResource.getTaskId());
+ taskDetails.setAdvancedInputDataHandling(getAdvanceInputDataHandling(inputDataHandling));
+ AdvancedOutputDataHandlingResource outputDataHandling = taskDetailResource.getOutputDataHandling(taskDetailResource.getTaskId());
+ taskDetails.setAdvancedOutputDataHandling(getAdvanceOutputDataHandling(outputDataHandling));
+ taskDetails.setTaskStatus(getTaskStatus(taskDetailResource.getTaskStatus()));
+ List<JobDetailResource> jobDetailList = taskDetailResource.getJobDetailList();
+ return taskDetails;
+ }
+
+ public static JobDetails getJobDetail(JobDetailResource jobDetailResource){
+ JobDetails jobDetails = new JobDetails();
+ jobDetails.setJobID(jobDetailResource.getJobId());
+ jobDetails.setJobDescription(jobDetailResource.getJobDescription());
+ jobDetails.setCreationTime(jobDetailResource.getCreationTime().getTime());
+ StatusResource jobStatus = jobDetailResource.getJobStatus();
+ jobDetails.setJobStatus(getJobStatus(jobStatus));
+ StatusResource applicationStatus = jobDetailResource.getApplicationStatus();
+ jobDetails.setApplicationStatus(getApplicationStatus(applicationStatus));
+ List<ErrorDetailResource> errorDetails = jobDetailResource.getErrorDetails();
+ return jobDetails;
+
+ }
+
+ public static ErrorDetails getErrorDetails (ErrorDetailResource resource){
+ ErrorDetails errorDetails = new ErrorDetails();
+ errorDetails.setErrorID(String.valueOf(resource.getErrorId()));
+ errorDetails.setCreationTime(resource.getCreationTime().getTime());
+ errorDetails.setActualErrorMessage(resource.getActualErrorMsg());
+ errorDetails.setUserFriendlyMessage(resource.getUserFriendlyErrorMsg());
+ errorDetails.setErrorCategory(ErrorCategory.valueOf(resource.getErrorCategory()));
+ errorDetails.setTransientOrPersistent(resource.isTransientPersistent());
+ errorDetails.setCorrectiveAction(CorrectiveAction.valueOf(resource.getCorrectiveAction()));
+ errorDetails.setActionableGroup(ActionableGroup.valueOf(resource.getActionableGroup()));
+// errorDetails.setRootCauseErrorIdList();
+ return errorDetails;
+
+ }
+
+
// public static ConfigurationData getConfigurationData (ExperimentConfigDataResource excd){
// ConfigurationData configData = new ConfigurationData();
-// configData.setBasicMetadata(getBasicMetadata(excd.getExMetadata()));
+// configData.setBasicMetadata(getExperiment(excd.getExMetadata()));
// configData.setApplicationId(excd.getApplicationID());
// configData.setApplicationVersion(excd.getApplicationVersion());
// configData.setWorkflowTemplateId(excd.getWorkflowTemplateId());
@@ -60,55 +286,44 @@
// configData.setQosParams(getQOSParams(excd));
// return configData;
// }
-//
-// public static Map<String, String> getExperimentInputs (ExperimentMetadataResource exmdr){
-// List<Resource> resources = exmdr.get(ResourceType.EXPERIMENT_INPUT);
-// Map<String, String> exInputs = new HashMap<String, String>();
-// for (Resource resource : resources){
-// ExperimentInputResource exInput = (ExperimentInputResource)resource;
-// exInputs.put(exInput.getExperimentKey(), exInput.getValue());
-// }
-// return exInputs;
-// }
-//
-// public static ComputationalResourceScheduling getComputationalResourceScheduling (ExperimentConfigDataResource excdr){
-// ComputationalResourceScheduling scheduling = new ComputationalResourceScheduling();
-// scheduling.setAiravataAutoSchedule(excdr.isAiravataAutoSchedule());
-// scheduling.setOverrideManualScheduledParams(excdr.isOverrideManualSchedule());
-// scheduling.setResourceHostId(excdr.getResourceHostID());
-// scheduling.setTotalCPUCount(excdr.getCpuCount());
-// scheduling.setNodeCount(excdr.getNodeCount());
-// scheduling.setNumberOfThreads(excdr.getNumberOfThreads());
-// scheduling.setQueueName(excdr.getQueueName());
-// scheduling.setWallTimeLimit(excdr.getWallTimeLimit());
-// scheduling.setJobStartTime((int)excdr.getJobStartTime().getTime());
-// scheduling.setTotalPhysicalMemory(excdr.getPhysicalMemory());
-// scheduling.setComputationalProjectAccount(excdr.getProjectAccount());
-// return scheduling;
-// }
-//
-// public static AdvancedInputDataHandling getAdvanceInputDataHandling(ExperimentConfigDataResource excd){
-// AdvancedInputDataHandling adih = new AdvancedInputDataHandling();
-// adih.setStageInputFilesToWorkingDir(excd.isStageInputsToWDir());
-// adih.setWorkingDirectoryParent(excd.getWorkingDirParent());
-// adih.setUniqueWorkingDirectory(excd.getWorkingDir());
-// adih.setCleanUpWorkingDirAfterJob(excd.isCleanAfterJob());
-// return adih;
-// }
-//
-// public static AdvancedOutputDataHandling getAdvanceOutputDataHandling(ExperimentConfigDataResource excd){
-// AdvancedOutputDataHandling outputDataHandling = new AdvancedOutputDataHandling();
-// outputDataHandling.setOutputdataDir(excd.getOutputDataDir());
-// outputDataHandling.setDataRegistryURL(excd.getDataRegURL());
-// outputDataHandling.setPersistOutputData(excd.isPersistOutputData());
-// return outputDataHandling;
-// }
-//
-// public static QualityOfServiceParams getQOSParams (ExperimentConfigDataResource excd){
-// QualityOfServiceParams qosParams = new QualityOfServiceParams();
-// qosParams.setStartExecutionAt(excd.getStartExecutionAt());
-// qosParams.setExecuteBefore(excd.getExecuteBefore());
-// qosParams.setNumberofRetries(excd.getNumberOfRetries());
-// return qosParams;
-// }
-//}
+
+
+ public static ComputationalResourceScheduling getComputationalResourceScheduling (ComputationSchedulingResource csr){
+ ComputationalResourceScheduling scheduling = new ComputationalResourceScheduling();
+ scheduling.setResourceHostId(csr.getResourceHostId());
+ scheduling.setTotalCPUCount(csr.getCpuCount());
+ scheduling.setNodeCount(csr.getNodeCount());
+ scheduling.setNumberOfThreads(csr.getNumberOfThreads());
+ scheduling.setQueueName(csr.getQueueName());
+ scheduling.setWallTimeLimit(csr.getWalltimeLimit());
+ scheduling.setJobStartTime((int)csr.getJobStartTime().getTime());
+ scheduling.setTotalPhysicalMemory(csr.getPhysicalMemory());
+ scheduling.setComputationalProjectAccount(csr.getProjectName());
+ return scheduling;
+ }
+
+ public static AdvancedInputDataHandling getAdvanceInputDataHandling(AdvanceInputDataHandlingResource adhr){
+ AdvancedInputDataHandling adih = new AdvancedInputDataHandling();
+ adih.setStageInputFilesToWorkingDir(adhr.isStageInputFiles());
+ adih.setParentWorkingDirectory(adhr.getWorkingDirParent());
+ adih.setUniqueWorkingDirectory(adhr.getWorkingDir());
+ adih.setCleanUpWorkingDirAfterJob(adhr.isCleanAfterJob());
+ return adih;
+ }
+
+ public static AdvancedOutputDataHandling getAdvanceOutputDataHandling(AdvancedOutputDataHandlingResource adodh){
+ AdvancedOutputDataHandling outputDataHandling = new AdvancedOutputDataHandling();
+ outputDataHandling.setOutputDataDir(adodh.getOutputDataDir());
+ outputDataHandling.setDataRegistryURL(adodh.getDataRegUrl());
+ outputDataHandling.setPersistOutputData(adodh.isPersistOutputData());
+ return outputDataHandling;
+ }
+
+ public static QualityOfServiceParams getQOSParams (QosParamResource qos){
+ QualityOfServiceParams qosParams = new QualityOfServiceParams();
+ qosParams.setStartExecutionAt(qos.getStartExecutionAt());
+ qosParams.setExecuteBefore(qos.getExecuteBefore());
+ qosParams.setNumberofRetries(qos.getNoOfRetries());
+ return qosParams;
+ }
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/985151fc/modules/registry/airavata-jpa-registry/src/main/resources/registry-derby.sql
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/resources/registry-derby.sql b/modules/registry/airavata-jpa-registry/src/main/resources/registry-derby.sql
index fd88e4d..9313c27 100644
--- a/modules/registry/airavata-jpa-registry/src/main/resources/registry-derby.sql
+++ b/modules/registry/airavata-jpa-registry/src/main/resources/registry-derby.sql
@@ -187,25 +187,6 @@ CREATE TABLE TASK_DETAIL
FOREIGN KEY (NODE_INSTANCE_ID) REFERENCES WORKFLOW_NODE_DETAIL(NODE_INSTANCE_ID) ON DELETE CASCADE
);
-CREATE TABLE ERROR_DETAIL
-(
- ERROR_ID INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY,
- EXPERIMENT_ID VARCHAR(255),
- TASK_ID VARCHAR(255),
- NODE_INSTANCE_ID VARCHAR(255),
- CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,,
- ACTUAL_ERROR_MESSAGE CLOB,
- USER_FRIEDNLY_ERROR_MSG VARCHAR(255),
- TRANSIENT_OR_PERSISTENT SMALLINT,
- ERROR_CATEGORY VARCHAR(255),
- CORRECTIVE_ACTION VARCHAR(255),
- ACTIONABLE_GROUP VARCHAR(255),
- PRIMARY KEY(ERROR_ID),
- FOREIGN KEY (EXPERIMENT_ID) REFERENCES EXPERIMENT(EXPERIMENT_ID) ON DELETE CASCADE,
- FOREIGN KEY (TASK_ID) REFERENCES TASK_DETAIL(TASK_ID) ON DELETE CASCADE,
- FOREIGN KEY (NODE_INSTANCE_ID) REFERENCES WORKFLOW_NODE_DETAIL(NODE_INSTANCE_ID) ON DELETE CASCADE
-);
-
CREATE TABLE APPLICATION_INPUT
(
TASK_ID VARCHAR(255),
@@ -256,6 +237,7 @@ CREATE TABLE JOB_DETAIL
TASK_ID VARCHAR(255),
JOB_DESCRIPTION VARCHAR(255),
CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+ COMPUTE_RESOURCE_CONSUMED VARCHAR(255),
PRIMARY KEY (TASK_ID, JOB_ID),
FOREIGN KEY (TASK_ID) REFERENCES TASK_DETAIL(TASK_ID) ON DELETE CASCADE
);
@@ -270,6 +252,26 @@ CREATE TABLE DATA_TRANSFER_DETAIL
FOREIGN KEY (TASK_ID) REFERENCES TASK_DETAIL(TASK_ID) ON DELETE CASCADE
);
+CREATE TABLE ERROR_DETAIL
+(
+ ERROR_ID INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY,
+ EXPERIMENT_ID VARCHAR(255),
+ TASK_ID VARCHAR(255),
+ NODE_INSTANCE_ID VARCHAR(255),
+ JOB_ID VARCHAR(255),
+ CREATION_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP,,
+ ACTUAL_ERROR_MESSAGE CLOB,
+ USER_FRIEDNLY_ERROR_MSG VARCHAR(255),
+ TRANSIENT_OR_PERSISTENT SMALLINT,
+ ERROR_CATEGORY VARCHAR(255),
+ CORRECTIVE_ACTION VARCHAR(255),
+ ACTIONABLE_GROUP VARCHAR(255),
+ PRIMARY KEY(ERROR_ID),
+ FOREIGN KEY (EXPERIMENT_ID) REFERENCES EXPERIMENT(EXPERIMENT_ID) ON DELETE CASCADE,
+ FOREIGN KEY (TASK_ID) REFERENCES TASK_DETAIL(TASK_ID) ON DELETE CASCADE,
+ FOREIGN KEY (NODE_INSTANCE_ID) REFERENCES WORKFLOW_NODE_DETAIL(NODE_INSTANCE_ID) ON DELETE CASCADE
+);
+
CREATE TABLE STATUS
(
STATUS_ID INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY,
http://git-wip-us.apache.org/repos/asf/airavata/blob/985151fc/modules/registry/airavata-jpa-registry/src/main/resources/registry-mysql.sql
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/resources/registry-mysql.sql b/modules/registry/airavata-jpa-registry/src/main/resources/registry-mysql.sql
index 304cad6..1b2039c 100644
--- a/modules/registry/airavata-jpa-registry/src/main/resources/registry-mysql.sql
+++ b/modules/registry/airavata-jpa-registry/src/main/resources/registry-mysql.sql
@@ -187,24 +187,7 @@ CREATE TABLE TASK_DETAIL
FOREIGN KEY (NODE_INSTANCE_ID) REFERENCES WORKFLOW_NODE_DETAIL(NODE_INSTANCE_ID) ON DELETE CASCADE
);
-CREATE TABLE ERROR_DETAIL
-(
- ERROR_ID INTEGER NOT NULL AUTO_INCREMENT,
- EXPERIMENT_ID VARCHAR(255),
- TASK_ID VARCHAR(255),
- NODE_INSTANCE_ID VARCHAR(255),
- CREATION_TIME TIMESTAMP DEFAULT NOW(),
- ACTUAL_ERROR_MESSAGE LONGTEXT,
- USER_FRIEDNLY_ERROR_MSG VARCHAR(255),
- TRANSIENT_OR_PERSISTENT SMALLINT,
- ERROR_CATEGORY VARCHAR(255),
- CORRECTIVE_ACTION VARCHAR(255),
- ACTIONABLE_GROUP VARCHAR(255),
- PRIMARY KEY(ERROR_ID),
- FOREIGN KEY (EXPERIMENT_ID) REFERENCES EXPERIMENT(EXPERIMENT_ID) ON DELETE CASCADE,
- FOREIGN KEY (TASK_ID) REFERENCES TASK_DETAIL(TASK_ID) ON DELETE CASCADE,
- FOREIGN KEY (NODE_INSTANCE_ID) REFERENCES WORKFLOW_NODE_DETAIL(NODE_INSTANCE_ID) ON DELETE CASCADE
-);
+
CREATE TABLE APPLICATION_INPUT
(
@@ -256,6 +239,7 @@ CREATE TABLE JOB_DETAIL
TASK_ID VARCHAR(255),
JOB_DESCRIPTION VARCHAR(255),
CREATION_TIME TIMESTAMP DEFAULT NOW(),
+ COMPUTE_RESOURCE_CONSUMED VARCHAR(255),
PRIMARY KEY (TASK_ID, JOB_ID),
FOREIGN KEY (TASK_ID) REFERENCES TASK_DETAIL(TASK_ID) ON DELETE CASCADE
);
@@ -270,6 +254,26 @@ CREATE TABLE DATA_TRANSFER_DETAIL
FOREIGN KEY (TASK_ID) REFERENCES TASK_DETAIL(TASK_ID) ON DELETE CASCADE
);
+CREATE TABLE ERROR_DETAIL
+(
+ ERROR_ID INTEGER NOT NULL AUTO_INCREMENT,
+ EXPERIMENT_ID VARCHAR(255),
+ TASK_ID VARCHAR(255),
+ NODE_INSTANCE_ID VARCHAR(255),
+ JOB_ID VARCHAR(255),
+ CREATION_TIME TIMESTAMP DEFAULT NOW(),
+ ACTUAL_ERROR_MESSAGE LONGTEXT,
+ USER_FRIEDNLY_ERROR_MSG VARCHAR(255),
+ TRANSIENT_OR_PERSISTENT SMALLINT,
+ ERROR_CATEGORY VARCHAR(255),
+ CORRECTIVE_ACTION VARCHAR(255),
+ ACTIONABLE_GROUP VARCHAR(255),
+ PRIMARY KEY(ERROR_ID),
+ FOREIGN KEY (EXPERIMENT_ID) REFERENCES EXPERIMENT(EXPERIMENT_ID) ON DELETE CASCADE,
+ FOREIGN KEY (TASK_ID) REFERENCES TASK_DETAIL(TASK_ID) ON DELETE CASCADE,
+ FOREIGN KEY (NODE_INSTANCE_ID) REFERENCES WORKFLOW_NODE_DETAIL(NODE_INSTANCE_ID) ON DELETE CASCADE
+);
+
CREATE TABLE STATUS
(
STATUS_ID INTEGER NOT NULL AUTO_INCREMENT,
http://git-wip-us.apache.org/repos/asf/airavata/blob/985151fc/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ChildDataType.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ChildDataType.java b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ChildDataType.java
index 749e974..27c1231 100644
--- a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ChildDataType.java
+++ b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ChildDataType.java
@@ -1,10 +1,21 @@
package org.apache.airavata.registry.cpi;
public enum ChildDataType {
- EXPERIMENT_SUMMARY,
+ EXPERIMENT_INPUT,
+ EXPERIMENT_OUTPUT,
+ WORKFLOW_NODE_DETAIL,
+ TASK_DETAIL,
+ ERROR_DETAIL,
+ APPLICATION_INPUT,
+ APPLICATION_OUTPUT,
+ NODE_INPUT,
+ NODE_OUTPUT,
+ JOB_DETAIL,
+ DATA_TRANSFER_DETAIL,
+ STATUS,
EXPERIMENT_CONFIGURATION_DATA,
- EXPERIMENT_GENERATED_DATA,
- MONITORING_DATA,
- PROVENANCE_DATA,
- EXECUTION_ERROR
+ COMPUTATIONAL_RESOURCE_SCHEDULING,
+ ADVANCE_INPUT_DATA_HANDLING,
+ ADVANCE_OUTPUT_DATA_HANDLING,
+ QOS_PARAM
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/985151fc/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/DataType.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/DataType.java b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/DataType.java
index b9099ce..99d23ee 100644
--- a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/DataType.java
+++ b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/DataType.java
@@ -5,11 +5,22 @@ public enum DataType {
GROUP,
USER,
PROJECT,
- EXPERIMENT_BASIC_DATA,
- EXPERIMENT_SUMMARY,
+ EXPERIMENT,
+ EXPERIMENT_INPUT,
+ EXPERIMENT_OUTPUT,
+ WORKFLOW_NODE_DETAIL,
+ TASK_DETAIL,
+ ERROR_DETAIL,
+ APPLICATION_INPUT,
+ APPLICATION_OUTPUT,
+ NODE_INPUT,
+ NODE_OUTPUT,
+ JOB_DETAIL,
+ DATA_TRANSFER_DETAIL,
+ STATUS,
EXPERIMENT_CONFIGURATION_DATA,
- EXPERIMENT_GENERATED_DATA,
- MONITORING_DATA,
- PROVENANCE_DATA,
- EXECUTION_ERROR
+ COMPUTATIONAL_RESOURCE_SCHEDULING,
+ ADVANCE_INPUT_DATA_HANDLING,
+ ADVANCE_OUTPUT_DATA_HANDLING,
+ QOS_PARAM
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/985151fc/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ParentDataType.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ParentDataType.java b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ParentDataType.java
index ea210d5..0432d49 100644
--- a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ParentDataType.java
+++ b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/ParentDataType.java
@@ -5,7 +5,7 @@ public enum ParentDataType {
GROUP,
USER,
PROJECT,
- EXPERIMENT_BASIC_DATA
+ EXPERIMENT
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/985151fc/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 6919a08..4828e0f 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
@@ -23,23 +23,31 @@ package org.apache.airavata.registry.cpi.utils;
public class Constants {
public final class FieldConstants {
- public final class BasicMetadataConstants {
+ public final class ExperimentConstants {
public static final String EXPERIMENT_NAME = "experimentName";
public static final String USER_NAME = "userName";
public static final String GATEWAY = "gateway";
public static final String EXPERIMENT_DESC = "experimentDescription";
public static final String SHARE_EXP_PUBLIC = "shareExperimentPublicly";
public static final String PROJECT_NAME = "project";
- public static final String SUBMITTED_DATE = "submitted_date";
- }
-
- public final class ConfigurationDataConstants {
- public static final String EXPERIMENT_ID = "experimentId";
+ 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 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 final class ConfigurationDataConstants {
+ public static final String EXPERIMENT_ID = "experimentId";
public static final String COMPUTATIONAL_RESOURCE_SCHEDULING = "computationalResourceScheduling";
public static final String ADVANCED_INPUT_HANDLING = "advanceInputDataHandling";
public static final String ADVANCED_OUTPUT_HANDLING = "advanceOutputDataHandling";
http://git-wip-us.apache.org/repos/asf/airavata/blob/985151fc/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/utils/StatusType.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/utils/StatusType.java b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/utils/StatusType.java
new file mode 100644
index 0000000..ced8013
--- /dev/null
+++ b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/utils/StatusType.java
@@ -0,0 +1,10 @@
+package org.apache.airavata.registry.cpi.utils;
+
+public enum StatusType {
+ EXPERIMENT,
+ WORKFLOW_NODE,
+ TASK,
+ JOB,
+ DATA_TRANSFER,
+ APPLICATION
+}