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/25 19:52:28 UTC
git commit: adding remove and isExists cpi implementations -
AIRAVATA-1006
Repository: airavata
Updated Branches:
refs/heads/master ee2824e2d -> 49bb74874
adding remove and isExists cpi implementations - AIRAVATA-1006
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/49bb7487
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/49bb7487
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/49bb7487
Branch: refs/heads/master
Commit: 49bb74874a2c7708f8235c8b30edc48b052333aa
Parents: ee2824e
Author: chathuri <ch...@apache.org>
Authored: Tue Feb 25 13:52:15 2014 -0500
Committer: chathuri <ch...@apache.org>
Committed: Tue Feb 25 13:52:15 2014 -0500
----------------------------------------------------------------------
.../registry/jpa/impl/ExperimentRegistry.java | 262 +++++++++++++++++++
.../registry/jpa/impl/RegistryImpl.java | 53 +++-
.../jpa/resources/TaskDetailResource.java | 6 +-
3 files changed, 314 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/49bb7487/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 8c93165..5f39c4f 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
@@ -37,6 +37,7 @@ import org.apache.airavata.registry.cpi.utils.StatusType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import javax.xml.crypto.Data;
import java.sql.Timestamp;
import java.util.*;
@@ -1707,6 +1708,133 @@ public class ExperimentRegistry {
}
}
+ public void removeWorkflowNode (String nodeId){
+ try {
+ GatewayResource defaultGateway = gatewayRegistry.getDefaultGateway();
+ ExperimentResource experiment = (ExperimentResource)defaultGateway.create(ResourceType.EXPERIMENT);
+ experiment.remove(ResourceType.WORKFLOW_NODE_DETAIL, nodeId);
+ } catch (ApplicationSettingsException e) {
+ logger.error("Unable to read airavata-server properties..", e.getMessage());
+ }
+ }
+
+ public void removeTaskDetails (String taskId){
+ try {
+ GatewayResource defaultGateway = gatewayRegistry.getDefaultGateway();
+ ExperimentResource experiment = (ExperimentResource)defaultGateway.create(ResourceType.EXPERIMENT);
+ WorkflowNodeDetailResource nodeDetailResource = (WorkflowNodeDetailResource)experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
+ nodeDetailResource.remove(ResourceType.TASK_DETAIL, taskId);
+ } catch (ApplicationSettingsException e) {
+ logger.error("Unable to read airavata-server properties..", e.getMessage());
+ }
+ }
+
+ public void removeJobDetails (CompositeIdentifier ids){
+ try {
+ GatewayResource defaultGateway = gatewayRegistry.getDefaultGateway();
+ ExperimentResource experiment = (ExperimentResource)defaultGateway.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 (ApplicationSettingsException e) {
+ logger.error("Unable to read airavata-server properties..", e.getMessage());
+ }
+ }
+
+ public void removeDataTransferDetails (String transferId){
+ try {
+ GatewayResource defaultGateway = gatewayRegistry.getDefaultGateway();
+ ExperimentResource experiment = (ExperimentResource)defaultGateway.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 (ApplicationSettingsException e) {
+ logger.error("Unable to read airavata-server properties..", e.getMessage());
+ }
+ }
+
+ public void removeComputationalScheduling (DataType dataType, String id){
+ try {
+ GatewayResource defaultGateway = gatewayRegistry.getDefaultGateway();
+ switch (dataType){
+ case EXPERIMENT:
+ ExperimentResource experiment = defaultGateway.getExperiment(id);
+ experiment.remove(ResourceType.COMPUTATIONAL_RESOURCE_SCHEDULING, id);
+ break;
+ case TASK_DETAIL:
+ ExperimentResource resource = (ExperimentResource)defaultGateway.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 (ApplicationSettingsException e) {
+ logger.error("Unable to read airavata-server properties..", e.getMessage());
+ }
+ }
+
+ public void removeInputDataHandling (DataType dataType, String id){
+ try {
+ GatewayResource defaultGateway = gatewayRegistry.getDefaultGateway();
+ switch (dataType){
+ case EXPERIMENT:
+ ExperimentResource experiment = defaultGateway.getExperiment(id);
+ experiment.remove(ResourceType.ADVANCE_INPUT_DATA_HANDLING, id);
+ break;
+ case TASK_DETAIL:
+ ExperimentResource resource = (ExperimentResource)defaultGateway.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 (ApplicationSettingsException e) {
+ logger.error("Unable to read airavata-server properties..", e.getMessage());
+ }
+ }
+
+ public void removeOutputDataHandling (DataType dataType, String id){
+ try {
+ GatewayResource defaultGateway = gatewayRegistry.getDefaultGateway();
+ switch (dataType){
+ case EXPERIMENT:
+ ExperimentResource experiment = defaultGateway.getExperiment(id);
+ experiment.remove(ResourceType.ADVANCE_OUTPUT_DATA_HANDLING, id);
+ break;
+ case TASK_DETAIL:
+ ExperimentResource resource = (ExperimentResource)defaultGateway.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 (ApplicationSettingsException e) {
+ logger.error("Unable to read airavata-server properties..", e.getMessage());
+ }
+ }
+
+ public void removeQOSParams (DataType dataType, String id){
+ try {
+ GatewayResource defaultGateway = gatewayRegistry.getDefaultGateway();
+ switch (dataType){
+ case EXPERIMENT:
+ ExperimentResource experiment = defaultGateway.getExperiment(id);
+ experiment.remove(ResourceType.QOS_PARAM, id);
+ break;
+ default:
+ logger.error("Unsupported data type...");
+ }
+ } catch (ApplicationSettingsException e) {
+ logger.error("Unable to read airavata-server properties..", e.getMessage());
+ }
+ }
+
public boolean isExperimentExist(String expID) {
try{
GatewayResource defaultGateway = gatewayRegistry.getDefaultGateway();
@@ -1730,6 +1858,140 @@ public class ExperimentRegistry {
return false;
}
+ public boolean isWFNodeExist(String nodeId) {
+ try {
+ GatewayResource defaultGateway = gatewayRegistry.getDefaultGateway();
+ ExperimentResource experiment = (ExperimentResource)defaultGateway.create(ResourceType.EXPERIMENT);
+ return experiment.isExists(ResourceType.WORKFLOW_NODE_DETAIL, nodeId);
+ } catch (ApplicationSettingsException e) {
+ logger.error("Unable to read airavata-server properties..", e.getMessage());
+ }
+ return false;
+ }
+
+ public boolean isTaskDetailExist(String taskId) {
+ try {
+ GatewayResource defaultGateway = gatewayRegistry.getDefaultGateway();
+ ExperimentResource experiment = (ExperimentResource)defaultGateway.create(ResourceType.EXPERIMENT);
+ WorkflowNodeDetailResource wf = (WorkflowNodeDetailResource)experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
+ return wf.isExists(ResourceType.TASK_DETAIL, taskId);
+ } catch (ApplicationSettingsException e) {
+ logger.error("Unable to read airavata-server properties..", e.getMessage());
+ }
+ return false;
+ }
+
+ public boolean isJobDetailExist(CompositeIdentifier ids) {
+ try {
+ GatewayResource defaultGateway = gatewayRegistry.getDefaultGateway();
+ ExperimentResource experiment = (ExperimentResource)defaultGateway.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 (ApplicationSettingsException e) {
+ logger.error("Unable to read airavata-server properties..", e.getMessage());
+ }
+ return false;
+ }
+
+ public boolean isTransferDetailExist(String transferId) {
+ try {
+ GatewayResource defaultGateway = gatewayRegistry.getDefaultGateway();
+ ExperimentResource experiment = (ExperimentResource)defaultGateway.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 (ApplicationSettingsException e) {
+ logger.error("Unable to read airavata-server properties..", e.getMessage());
+ }
+ return false;
+ }
+
+ public boolean isComputationalSchedulingExist(DataType dataType, String id ) {
+ try {
+ GatewayResource defaultGateway = gatewayRegistry.getDefaultGateway();
+ switch (dataType){
+ case EXPERIMENT:
+ ExperimentResource experiment = (ExperimentResource)defaultGateway.create(ResourceType.EXPERIMENT);
+ return experiment.isExists(ResourceType.COMPUTATIONAL_RESOURCE_SCHEDULING, 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.COMPUTATIONAL_RESOURCE_SCHEDULING, id);
+ default:
+ logger.error("Unsupported data type...");
+
+ }
+ } catch (ApplicationSettingsException e) {
+ logger.error("Unable to read airavata-server properties..", e.getMessage());
+ }
+ return false;
+ }
+
+ public boolean isInputDataHandlingExist(DataType dataType, String id ) {
+ try {
+ GatewayResource defaultGateway = gatewayRegistry.getDefaultGateway();
+ switch (dataType){
+ case EXPERIMENT:
+ ExperimentResource experiment = (ExperimentResource)defaultGateway.create(ResourceType.EXPERIMENT);
+ return experiment.isExists(ResourceType.ADVANCE_INPUT_DATA_HANDLING, 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_INPUT_DATA_HANDLING, id);
+ default:
+ logger.error("Unsupported data type...");
+ }
+ } catch (ApplicationSettingsException e) {
+ logger.error("Unable to read airavata-server properties..", e.getMessage());
+ }
+ return false;
+ }
+
+ public boolean isOutputDataHandlingExist(DataType dataType, String id ) {
+ try {
+ GatewayResource defaultGateway = gatewayRegistry.getDefaultGateway();
+ switch (dataType){
+ case EXPERIMENT:
+ ExperimentResource experiment = (ExperimentResource)defaultGateway.create(ResourceType.EXPERIMENT);
+ return experiment.isExists(ResourceType.ADVANCE_OUTPUT_DATA_HANDLING, 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 (ApplicationSettingsException e) {
+ logger.error("Unable to read airavata-server properties..", e.getMessage());
+ }
+ return false;
+ }
+
+ public boolean isQOSParamsExist(DataType dataType, String id ) {
+ try {
+ GatewayResource defaultGateway = gatewayRegistry.getDefaultGateway();
+ switch (dataType){
+ case EXPERIMENT:
+ ExperimentResource experiment = (ExperimentResource)defaultGateway.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 (ApplicationSettingsException e) {
+ logger.error("Unable to read airavata-server properties..", e.getMessage());
+ }
+ return false;
+ }
+
public void updateScheduling(ComputationalResourceScheduling scheduling, String id, String type){
try {
GatewayResource defaultGateway = gatewayRegistry.getDefaultGateway();
http://git-wip-us.apache.org/repos/asf/airavata/blob/49bb7487/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 bf0a4e3..5a91f04 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
@@ -170,10 +170,10 @@ public class RegistryImpl implements Registry {
case COMPUTATIONAL_RESOURCE_SCHEDULING:
experimentRegistry.updateScheduling((ComputationalResourceScheduling) newObjectToUpdate, (String) identifier, dataType.toString());
break;
- case ADVANCE_OUTPUT_DATA_HANDLING:
+ case ADVANCE_INPUT_DATA_HANDLING:
experimentRegistry.updateInputDataHandling((AdvancedInputDataHandling)newObjectToUpdate, (String)identifier, dataType.toString());
break;
- case ADVANCE_INPUT_DATA_HANDLING:
+ case ADVANCE_OUTPUT_DATA_HANDLING:
experimentRegistry.updateOutputDataHandling((AdvancedOutputDataHandling) newObjectToUpdate, (String) identifier, dataType.toString());
break;
case QOS_PARAM:
@@ -257,9 +257,9 @@ public class RegistryImpl implements Registry {
return experimentRegistry.getDataTransferStatus((String)identifier);
case COMPUTATIONAL_RESOURCE_SCHEDULING:
return experimentRegistry.getComputationalScheduling(dataType, (String) identifier);
- case ADVANCE_OUTPUT_DATA_HANDLING:
- return experimentRegistry.getInputDataHandling(dataType, (String) identifier);
case ADVANCE_INPUT_DATA_HANDLING:
+ return experimentRegistry.getInputDataHandling(dataType, (String) identifier);
+ case ADVANCE_OUTPUT_DATA_HANDLING:
return experimentRegistry.getOutputDataHandling(dataType, (String) identifier);
case QOS_PARAM:
return experimentRegistry.getQosParams(dataType, (String) identifier);
@@ -395,6 +395,31 @@ public class RegistryImpl implements Registry {
break;
case EXPERIMENT_CONFIGURATION_DATA:
experimentRegistry.removeExperimentConfigData((String)identifier);
+ break;
+ case WORKFLOW_NODE_DETAIL:
+ experimentRegistry.removeWorkflowNode((String) identifier);
+ break;
+ case TASK_DETAIL:
+ experimentRegistry.removeTaskDetails((String) identifier);
+ break;
+ case JOB_DETAIL:
+ experimentRegistry.removeJobDetails((CompositeIdentifier)identifier);
+ break;
+ case DATA_TRANSFER_DETAIL:
+ experimentRegistry.removeDataTransferDetails((String)identifier);
+ break;
+ case COMPUTATIONAL_RESOURCE_SCHEDULING:
+ experimentRegistry.removeComputationalScheduling(dataType, (String) identifier);
+ break;
+ case ADVANCE_OUTPUT_DATA_HANDLING:
+ experimentRegistry.removeOutputDataHandling(dataType, (String) identifier);
+ break;
+ case ADVANCE_INPUT_DATA_HANDLING:
+ experimentRegistry.removeInputDataHandling(dataType, (String) identifier);
+ break;
+ case QOS_PARAM:
+ experimentRegistry.removeQOSParams(dataType, (String) identifier);
+ break;
default:
logger.error("Unsupported data type...", new UnsupportedOperationException());
throw new UnsupportedOperationException();
@@ -416,7 +441,25 @@ public class RegistryImpl implements Registry {
return experimentRegistry.isExperimentExist((String)identifier);
case EXPERIMENT_CONFIGURATION_DATA:
return experimentRegistry.isExperimentConfigDataExist((String)identifier);
+ case WORKFLOW_NODE_DETAIL:
+ return experimentRegistry.isWFNodeExist((String) identifier);
+ case TASK_DETAIL:
+ return experimentRegistry.isTaskDetailExist((String) identifier);
+ case JOB_DETAIL:
+ return experimentRegistry.isJobDetailExist((CompositeIdentifier)identifier);
+ case DATA_TRANSFER_DETAIL:
+ return experimentRegistry.isTransferDetailExist((String)identifier);
+ case COMPUTATIONAL_RESOURCE_SCHEDULING:
+ return experimentRegistry.isComputationalSchedulingExist(dataType, (String) identifier);
+ case ADVANCE_INPUT_DATA_HANDLING:
+ return experimentRegistry.isInputDataHandlingExist(dataType, (String) identifier);
+ case ADVANCE_OUTPUT_DATA_HANDLING:
+ return experimentRegistry.isOutputDataHandlingExist(dataType, (String) identifier);
+ case QOS_PARAM:
+ return experimentRegistry.isQOSParamsExist(dataType, (String) identifier);
+ default:
+ logger.error("Unsupported data type...", new UnsupportedOperationException());
+ throw new UnsupportedOperationException();
}
- return false;
}
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/49bb7487/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 641b7bd..2d4dc5b 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.Constants;
import org.apache.airavata.registry.cpi.utils.StatusType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -160,13 +161,14 @@ public class TaskDetailResource extends AbstractResource {
break;
case JOB_DETAIL:
generator = new QueryGenerator(JOB_DETAIL);
- generator.setParameter(JobDetailConstants.TASK_ID, name);
+ generator.setParameter(JobDetailConstants.TASK_ID, taskId);
+ generator.setParameter(JobDetailConstants.JOB_ID, name);
q = generator.deleteQuery(em);
q.executeUpdate();
break;
case DATA_TRANSFER_DETAIL:
generator = new QueryGenerator(DATA_TRANSFER_DETAIL);
- generator.setParameter(DataTransferDetailConstants.TASK_ID, name);
+ generator.setParameter(DataTransferDetailConstants.TRANSFER_ID, name);
q = generator.deleteQuery(em);
q.executeUpdate();
break;