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 2013/05/08 23:07:15 UTC

svn commit: r1480461 - in /airavata/trunk/modules/registry: airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/ airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/ airavata-jpa-registry/...

Author: chathuri
Date: Wed May  8 21:07:14 2013
New Revision: 1480461

URL: http://svn.apache.org/r1480461
Log:
adding node error table

Added:
    airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Node_Error.java
    airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeErrorResource.java
Modified:
    airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/ResourceType.java
    airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/AbstractResource.java
    airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentDataResource.java
    airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeDataResource.java
    airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java
    airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/WorkflowDataResource.java
    airavata/trunk/modules/registry/airavata-jpa-registry/src/main/resources/META-INF/persistence.xml
    airavata/trunk/modules/registry/airavata-jpa-registry/src/main/resources/data-derby.sql
    airavata/trunk/modules/registry/airavata-jpa-registry/src/main/resources/data-mysql.sql
    airavata/trunk/modules/registry/airavata-jpa-registry/src/test/resources/data-derby.sql
    airavata/trunk/modules/registry/airavata-registry-test/src/test/resources/data-derby.sql

Modified: airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/ResourceType.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/ResourceType.java?rev=1480461&r1=1480460&r2=1480461&view=diff
==============================================================================
--- airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/ResourceType.java (original)
+++ airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/ResourceType.java Wed May  8 21:07:14 2013
@@ -36,6 +36,7 @@ public enum ResourceType {
     EXPERIMENT_METADATA,
     WORKFLOW_DATA,
     NODE_DATA,
-    GRAM_DATA
+    GRAM_DATA,
+    NODE_ERROR
 
 }

Added: airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Node_Error.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Node_Error.java?rev=1480461&view=auto
==============================================================================
--- airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Node_Error.java (added)
+++ airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Node_Error.java Wed May  8 21:07:14 2013
@@ -0,0 +1,147 @@
+/*
+ *
+ * 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.model;
+
+import javax.persistence.*;
+import java.security.Timestamp;
+
+@Entity
+public class Node_Error {
+    @Id @GeneratedValue
+    private int error_id;
+    private String experiment_ID;
+    private String workflow_instanceID;
+    private String node_id;
+    private String gfacJobID;
+    private String source_type;
+    private Timestamp error_date;
+
+    @ManyToOne()
+    @JoinColumn(name = "experiment_ID")
+    private Experiment_Data experiment_data;
+
+    @ManyToOne()
+    @JoinColumn(name = "workflow_instanceID")
+    private Workflow_Data workflow_Data;
+
+    @Lob
+    private String error_msg;
+    @Lob
+    private String error_des;
+    private String error_code;
+
+    public String getWorkflow_instanceID() {
+        return workflow_instanceID;
+    }
+
+    public String getNode_id() {
+        return node_id;
+    }
+
+    public Workflow_Data getWorkflow_Data() {
+        return workflow_Data;
+    }
+
+    public String getError_msg() {
+        return error_msg;
+    }
+
+    public String getError_des() {
+        return error_des;
+    }
+
+    public String getError_code() {
+        return error_code;
+    }
+
+    public void setWorkflow_instanceID(String workflow_instanceID) {
+        this.workflow_instanceID = workflow_instanceID;
+    }
+
+    public void setNode_id(String node_id) {
+        this.node_id = node_id;
+    }
+
+    public void setWorkflow_Data(Workflow_Data workflow_Data) {
+        this.workflow_Data = workflow_Data;
+    }
+
+    public void setError_msg(String error_msg) {
+        this.error_msg = error_msg;
+    }
+
+    public void setError_des(String error_des) {
+        this.error_des = error_des;
+    }
+
+    public void setError_code(String error_code) {
+        this.error_code = error_code;
+    }
+
+    public int getError_id() {
+        return error_id;
+    }
+
+    public String getExperiment_ID() {
+        return experiment_ID;
+    }
+
+    public String getGfacJobID() {
+        return gfacJobID;
+    }
+
+    public String getSource_type() {
+        return source_type;
+    }
+
+    public Timestamp getError_date() {
+        return error_date;
+    }
+
+    public Experiment_Data getExperiment_Data() {
+        return experiment_data;
+    }
+
+    public void setError_id(int error_id) {
+        this.error_id = error_id;
+    }
+
+    public void setExperiment_ID(String experiment_ID) {
+        this.experiment_ID = experiment_ID;
+    }
+
+    public void setGfacJobID(String gfacJobID) {
+        this.gfacJobID = gfacJobID;
+    }
+
+    public void setSource_type(String source_type) {
+        this.source_type = source_type;
+    }
+
+    public void setError_date(Timestamp error_date) {
+        this.error_date = error_date;
+    }
+
+    public void setExperiment_data(Experiment_Data experiment_data) {
+        this.experiment_data = experiment_data;
+    }
+}

Modified: airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/AbstractResource.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/AbstractResource.java?rev=1480461&r1=1480460&r2=1480461&view=diff
==============================================================================
--- airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/AbstractResource.java (original)
+++ airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/AbstractResource.java Wed May  8 21:07:14 2013
@@ -42,7 +42,8 @@ public abstract class AbstractResource i
     public static final String EXPERIMENT_DATA = "Experiment_Data";
     public static final String WORKFLOW_DATA = "Workflow_Data";
     public static final String EXPERIMENT_METADATA = "Experiment_Metadata";
-    
+    public static final String NODE_ERROR = "Node_Error";
+
     //Gateway Table
     public final class GatewayConstants {
         public static final String GATEWAY_NAME = "gateway_name";
@@ -173,8 +174,19 @@ public abstract class AbstractResource i
         public static final String RSL = "rsl";
         public static final String INVOKED_HOST = "invoked_host";
         public static final String LOCAL_JOB_ID = "local_Job_ID";
+    }
 
-
+    public final class NodeErrorConstants {
+        public static final String ERROR_ID = "error_id";
+        public static final String EXPERIMENT_ID = "experiment_ID";
+        public static final String WORKFLOW_ID = "workflow_instanceID";
+        public static final String NODE_ID = "node_id";
+        public static final String GFAC_JOB_ID = "gfacJobID";
+        public static final String SOURCE_TYPE = "source_type";
+        public static final String ERROR_DATE = "error_date";
+        public static final String ERROR_MSG = "error_msg";
+        public static final String ERROR_DES = "error_des";
+        public static final String ERROR_CODE = "error_code";
     }
 
     protected AbstractResource() {

Modified: airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentDataResource.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentDataResource.java?rev=1480461&r1=1480460&r2=1480461&view=diff
==============================================================================
--- airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentDataResource.java (original)
+++ airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentDataResource.java Wed May  8 21:07:14 2013
@@ -26,6 +26,7 @@ import org.apache.airavata.persistance.r
 import org.apache.airavata.persistance.registry.jpa.ResourceUtils;
 import org.apache.airavata.persistance.registry.jpa.model.Experiment_Data;
 import org.apache.airavata.persistance.registry.jpa.model.Experiment_Metadata;
+import org.apache.airavata.persistance.registry.jpa.model.Node_Error;
 import org.apache.airavata.persistance.registry.jpa.model.Workflow_Data;
 import org.apache.airavata.persistance.registry.jpa.utils.QueryGenerator;
 import org.slf4j.Logger;
@@ -179,6 +180,19 @@ public class ExperimentDataResource exte
                     }
                 }
                 break;
+            case NODE_ERROR:
+                generator = new QueryGenerator(NODE_ERROR);
+                generator.setParameter(NodeErrorConstants.EXPERIMENT_ID, experimentID);
+                q = generator.selectQuery(em);
+                results = q.getResultList();
+                if (results.size() != 0) {
+                    for (Object result : results) {
+                        Node_Error nodeError = (Node_Error)result;
+                        NodeErrorResource nodeErrorResource = (NodeErrorResource)Utils.getResource(ResourceType.NODE_ERROR, nodeError);
+                        resourceList.add(nodeErrorResource);
+                    }
+                }
+                break;
             default:
                 em.getTransaction().commit();
                 em.close();

Modified: airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeDataResource.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeDataResource.java?rev=1480461&r1=1480460&r2=1480461&view=diff
==============================================================================
--- airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeDataResource.java (original)
+++ airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeDataResource.java Wed May  8 21:07:14 2013
@@ -27,12 +27,16 @@ import org.apache.airavata.persistance.r
 import org.apache.airavata.persistance.registry.jpa.ResourceUtils;
 import org.apache.airavata.persistance.registry.jpa.model.Node_Data;
 import org.apache.airavata.persistance.registry.jpa.model.Node_DataPK;
+import org.apache.airavata.persistance.registry.jpa.model.Node_Error;
 import org.apache.airavata.persistance.registry.jpa.model.Workflow_Data;
+import org.apache.airavata.persistance.registry.jpa.utils.QueryGenerator;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import javax.persistence.EntityManager;
+import javax.persistence.Query;
 import java.sql.Timestamp;
+import java.util.ArrayList;
 import java.util.List;
 
 public class NodeDataResource extends AbstractResource{
@@ -127,8 +131,35 @@ public class NodeDataResource extends Ab
     }
 
     public List<Resource> get(ResourceType type) {
-        logger.error("Unsupported resource type for node data resource.", new UnsupportedOperationException());
-        throw new UnsupportedOperationException();
+        List<Resource> resourceList = new ArrayList<Resource>();
+        EntityManager em = ResourceUtils.getEntityManager();
+        em.getTransaction().begin();
+        Query q;
+        QueryGenerator generator;
+        List<?> results;
+        switch (type){
+            case  NODE_ERROR:
+                generator = new QueryGenerator(NODE_ERROR);
+                generator.setParameter(NodeErrorConstants.NODE_ID, nodeID);
+                q = generator.selectQuery(em);
+                results = q.getResultList();
+                if (results.size() != 0) {
+                    for (Object result : results) {
+                        Node_Error nodeError = (Node_Error)result;
+                        NodeErrorResource nodeErrorResource = (NodeErrorResource)Utils.getResource(ResourceType.NODE_ERROR, nodeError);
+                        resourceList.add(nodeErrorResource);
+                    }
+                }
+                break;
+            default:
+                em.getTransaction().commit();
+                em.close();
+                logger.error("Unsupported resource type for node data resource.", new IllegalArgumentException());
+                throw new IllegalArgumentException("Unsupported resource type for node data resource.");
+        }
+        em.getTransaction().commit();
+        em.close();
+        return resourceList;
     }
 
     public void save() {

Added: airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeErrorResource.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeErrorResource.java?rev=1480461&view=auto
==============================================================================
--- airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeErrorResource.java (added)
+++ airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeErrorResource.java Wed May  8 21:07:14 2013
@@ -0,0 +1,155 @@
+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.Experiment_Data;
+import org.apache.airavata.persistance.registry.jpa.model.Node_Error;
+import org.apache.airavata.persistance.registry.jpa.model.Workflow_Data;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.persistence.EntityManager;
+import java.security.Timestamp;
+import java.util.List;
+
+public class NodeErrorResource extends AbstractResource {
+    private final static Logger logger = LoggerFactory.getLogger(NodeErrorResource.class);
+    private ExperimentDataResource experimentDataResource;
+    private WorkflowDataResource workflowDataResource;
+    private String nodeID;
+    private String gfacJobID;
+    private String sourceType;
+    private Timestamp errorTime;
+    private String errorMsg;
+    private String errorDes;
+    private String errorCode;
+    private int errorID;
+
+    @Override
+    public Resource create(ResourceType type) {
+        logger.error("Unsupported resource type for node error resource.", new UnsupportedOperationException());
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void remove(ResourceType type, Object name) {
+        logger.error("Unsupported resource type for node error resource.", new UnsupportedOperationException());
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public Resource get(ResourceType type, Object name) {
+        logger.error("Unsupported resource type for node error resource.", new UnsupportedOperationException());
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public List<Resource> get(ResourceType type) {
+        logger.error("Unsupported resource type for node error resource.", new UnsupportedOperationException());
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public void save() {
+        EntityManager em = ResourceUtils.getEntityManager();
+        em.getTransaction().begin();
+
+        Node_Error node_error = new Node_Error();
+        node_error.setNode_id(nodeID);
+        Experiment_Data experiment_data = em.find(Experiment_Data.class, experimentDataResource.getExperimentID());
+        node_error.setExperiment_data(experiment_data);
+        Workflow_Data workflow_data = em.find(Workflow_Data.class, workflowDataResource.getWorkflowInstanceID());
+        node_error.setWorkflow_Data(workflow_data);
+        node_error.setError_code(errorCode);
+        node_error.setError_date(errorTime);
+        node_error.setError_des(errorDes);
+        node_error.setError_msg(errorMsg);
+        node_error.setSource_type(sourceType);
+        node_error.setGfacJobID(gfacJobID);
+
+        em.getTransaction().commit();
+        em.close();
+    }
+
+
+    public ExperimentDataResource getExperimentDataResource() {
+        return experimentDataResource;
+    }
+
+    public WorkflowDataResource getWorkflowDataResource() {
+        return workflowDataResource;
+    }
+
+    public String getNodeID() {
+        return nodeID;
+    }
+
+    public String getGfacJobID() {
+        return gfacJobID;
+    }
+
+    public String getSourceType() {
+        return sourceType;
+    }
+
+    public Timestamp getErrorTime() {
+        return errorTime;
+    }
+
+    public String getErrorMsg() {
+        return errorMsg;
+    }
+
+    public String getErrorDes() {
+        return errorDes;
+    }
+
+    public String getErrorCode() {
+        return errorCode;
+    }
+
+    public void setExperimentDataResource(ExperimentDataResource experimentDataResource) {
+        this.experimentDataResource = experimentDataResource;
+    }
+
+    public void setWorkflowDataResource(WorkflowDataResource workflowDataResource) {
+        this.workflowDataResource = workflowDataResource;
+    }
+
+    public void setNodeID(String nodeID) {
+        this.nodeID = nodeID;
+    }
+
+    public void setGfacJobID(String gfacJobID) {
+        this.gfacJobID = gfacJobID;
+    }
+
+    public void setSourceType(String sourceType) {
+        this.sourceType = sourceType;
+    }
+
+    public void setErrorTime(Timestamp errorTime) {
+        this.errorTime = errorTime;
+    }
+
+    public void setErrorMsg(String errorMsg) {
+        this.errorMsg = errorMsg;
+    }
+
+    public void setErrorDes(String errorDes) {
+        this.errorDes = errorDes;
+    }
+
+    public void setErrorCode(String errorCode) {
+        this.errorCode = errorCode;
+    }
+
+    public int getErrorID() {
+        return errorID;
+    }
+
+    public void setErrorID(int errorID) {
+        this.errorID = errorID;
+    }
+}

Modified: airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java?rev=1480461&r1=1480460&r2=1480461&view=diff
==============================================================================
--- airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java (original)
+++ airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java Wed May  8 21:07:14 2013
@@ -28,22 +28,7 @@ import java.util.Properties;
 import org.apache.airavata.persistance.registry.jpa.JPAConstants;
 import org.apache.airavata.persistance.registry.jpa.Resource;
 import org.apache.airavata.persistance.registry.jpa.ResourceType;
-import org.apache.airavata.persistance.registry.jpa.model.Application_Descriptor;
-import org.apache.airavata.persistance.registry.jpa.model.Configuration;
-import org.apache.airavata.persistance.registry.jpa.model.Experiment;
-import org.apache.airavata.persistance.registry.jpa.model.Experiment_Data;
-import org.apache.airavata.persistance.registry.jpa.model.Experiment_Metadata;
-import org.apache.airavata.persistance.registry.jpa.model.Gateway;
-import org.apache.airavata.persistance.registry.jpa.model.Gateway_Worker;
-import org.apache.airavata.persistance.registry.jpa.model.Gram_Data;
-import org.apache.airavata.persistance.registry.jpa.model.Host_Descriptor;
-import org.apache.airavata.persistance.registry.jpa.model.Node_Data;
-import org.apache.airavata.persistance.registry.jpa.model.Project;
-import org.apache.airavata.persistance.registry.jpa.model.Published_Workflow;
-import org.apache.airavata.persistance.registry.jpa.model.Service_Descriptor;
-import org.apache.airavata.persistance.registry.jpa.model.User_Workflow;
-import org.apache.airavata.persistance.registry.jpa.model.Users;
-import org.apache.airavata.persistance.registry.jpa.model.Workflow_Data;
+import org.apache.airavata.persistance.registry.jpa.model.*;
 import org.apache.airavata.registry.api.AiravataRegistryConnectionDataProvider;
 import org.apache.airavata.registry.api.AiravataRegistryFactory;
 import org.apache.airavata.registry.api.exception.RegistrySettingsException;
@@ -293,6 +278,13 @@ public class Utils {
                     logger.error("Object should be a Gram Data.", new IllegalArgumentException());
                     throw new IllegalArgumentException("Object should be a Gram Data.");
                 }
+            case NODE_ERROR:
+                if (o instanceof Node_Error){
+                    return createNodeError((Node_Error) o);
+                }else {
+                    logger.error("Object should be a Node Error type.", new IllegalArgumentException());
+                    throw new IllegalArgumentException("Object should be a Node Error.");
+                }
             default:
         }
         return null;
@@ -557,6 +549,23 @@ public class Utils {
         return gramDataResource;
     }
 
+    private static Resource createNodeError (Node_Error o){
+        NodeErrorResource nodeErrorResource = new NodeErrorResource();
+        ExperimentDataResource experimentDataResource = (ExperimentDataResource)createExperimentData(o.getExperiment_Data());
+        nodeErrorResource.setExperimentDataResource(experimentDataResource);
+        WorkflowDataResource workflowDataResource = (WorkflowDataResource)createWorkflowData(o.getWorkflow_Data());
+        nodeErrorResource.setWorkflowDataResource(workflowDataResource);
+        nodeErrorResource.setNodeID(o.getNode_id());
+        nodeErrorResource.setErrorID(o.getError_id());
+        nodeErrorResource.setGfacJobID(o.getGfacJobID());
+        nodeErrorResource.setSourceType(o.getSource_type());
+        nodeErrorResource.setErrorTime(o.getError_date());
+        nodeErrorResource.setErrorMsg(o.getError_msg());
+        nodeErrorResource.setErrorDes(o.getError_des());
+        nodeErrorResource.setErrorCode(o.getError_code());
+        return nodeErrorResource;
+    }
+
 //    public static byte[] getByteArray(String content){
 //        byte[] contentBytes = content.getBytes();
 //        return contentBytes;

Modified: airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/WorkflowDataResource.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/WorkflowDataResource.java?rev=1480461&r1=1480460&r2=1480461&view=diff
==============================================================================
--- airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/WorkflowDataResource.java (original)
+++ airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/WorkflowDataResource.java Wed May  8 21:07:14 2013
@@ -24,10 +24,7 @@ package org.apache.airavata.persistance.
 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.Experiment_Data;
-import org.apache.airavata.persistance.registry.jpa.model.Gram_Data;
-import org.apache.airavata.persistance.registry.jpa.model.Node_Data;
-import org.apache.airavata.persistance.registry.jpa.model.Workflow_Data;
+import org.apache.airavata.persistance.registry.jpa.model.*;
 import org.apache.airavata.persistance.registry.jpa.utils.QueryGenerator;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -42,6 +39,7 @@ public class WorkflowDataResource extend
     private final static Logger logger = LoggerFactory.getLogger(WorkflowDataResource.class);
     public static final String NODE_DATA = "Node_Data";
     public static final String GRAM_DATA = "Gram_Data";
+    public static final String NODE_ERROR = "Node_Error";
     private String experimentID;
     private String workflowInstanceID;
     private String templateName;
@@ -107,6 +105,9 @@ public class WorkflowDataResource extend
                GramDataResource gramDataResource = new GramDataResource();
                gramDataResource.setWorkflowDataResource(this);
                return gramDataResource;
+           case NODE_ERROR:
+               NodeErrorResource nodeErrorResource = new NodeErrorResource();
+               nodeErrorResource.setWorkflowDataResource(this);
            default:
                logger.error("Unsupported resource type for workflow data resource.", new IllegalArgumentException());
                throw new IllegalArgumentException("Unsupported resource type for workflow data resource.");
@@ -133,6 +134,12 @@ public class WorkflowDataResource extend
                 q = generator.deleteQuery(em);
                 q.executeUpdate();
                 break;
+            case NODE_ERROR:
+                generator = new QueryGenerator(NODE_ERROR);
+                generator.setParameter(NodeErrorConstants.ERROR_ID, name);
+                q = generator.deleteQuery(em);
+                q.executeUpdate();
+                break;
             default:
                 logger.error("Unsupported resource type for workflow data resource.", new IllegalArgumentException());
                 break;
@@ -167,6 +174,15 @@ public class WorkflowDataResource extend
                 em.getTransaction().commit();
                 em.close();
                 return gramDataResource;
+            case NODE_ERROR:
+                generator = new QueryGenerator(NODE_ERROR);
+                generator.setParameter(NodeErrorConstants.ERROR_ID, name);
+                q = generator.selectQuery(em);
+                Node_Error node_error = (Node_Error)q.getSingleResult();
+                NodeErrorResource nodeErrorResource = (NodeErrorResource)Utils.getResource(ResourceType.NODE_ERROR, node_error);
+                em.getTransaction().commit();
+                em.close();
+                return nodeErrorResource;
             default:
                 em.getTransaction().commit();
                 em.close();
@@ -212,6 +228,19 @@ public class WorkflowDataResource extend
                     }
                 }
                 break;
+            case  NODE_ERROR:
+                generator = new QueryGenerator(NODE_ERROR);
+                generator.setParameter(NodeErrorConstants.WORKFLOW_ID, workflowInstanceID);
+                q = generator.selectQuery(em);
+                results = q.getResultList();
+                if (results.size() != 0) {
+                    for (Object result : results) {
+                        Node_Error nodeError = (Node_Error)result;
+                        NodeErrorResource nodeErrorResource = (NodeErrorResource)Utils.getResource(ResourceType.NODE_ERROR, nodeError);
+                        resourceList.add(nodeErrorResource);
+                    }
+                }
+                break;
             default:
                 em.getTransaction().commit();
                 em.close();

Modified: airavata/trunk/modules/registry/airavata-jpa-registry/src/main/resources/META-INF/persistence.xml
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/resources/META-INF/persistence.xml?rev=1480461&r1=1480460&r2=1480461&view=diff
==============================================================================
--- airavata/trunk/modules/registry/airavata-jpa-registry/src/main/resources/META-INF/persistence.xml (original)
+++ airavata/trunk/modules/registry/airavata-jpa-registry/src/main/resources/META-INF/persistence.xml Wed May  8 21:07:14 2013
@@ -39,6 +39,7 @@
 		<class>org.apache.airavata.persistance.registry.jpa.model.Workflow_Data</class>
 		<class>org.apache.airavata.persistance.registry.jpa.model.Node_Data</class>
 		<class>org.apache.airavata.persistance.registry.jpa.model.Gram_Data</class>
+		<class>org.apache.airavata.persistance.registry.jpa.model.Node_Error</class>
         <!--properties>
             <property name="openjpa.ConnectionURL"
                       value="jdbc:mysql://localhost:3306/persitant_data" />

Modified: airavata/trunk/modules/registry/airavata-jpa-registry/src/main/resources/data-derby.sql
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/resources/data-derby.sql?rev=1480461&r1=1480460&r2=1480461&view=diff
==============================================================================
--- airavata/trunk/modules/registry/airavata-jpa-registry/src/main/resources/data-derby.sql (original)
+++ airavata/trunk/modules/registry/airavata-jpa-registry/src/main/resources/data-derby.sql Wed May  8 21:07:14 2013
@@ -218,6 +218,23 @@ CREATE TABLE CREDENTIALS
         PRIMARY KEY (GATEWAY_NAME, COMMUNITY_USER_NAME)
 );
 
+CREATE TABLE Node_Error
+(
+       error_id INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY,
+       experiment_ID varchar(255),
+       workflow_instanceID varchar(255),
+       node_id varchar(255),
+       gfacJobID varchar(255),
+       source_type varchar(255),
+       error_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+       error_msg CLOB,
+       error_des CLOB,
+       error_code varchar(255),
+       PRIMARY KEY(error_id),
+       FOREIGN KEY (workflow_instanceID) REFERENCES Workflow_Data(workflow_instanceID) ON DELETE CASCADE,
+       FOREIGN KEY (experiment_ID) REFERENCES Experiment_Data(experiment_ID) ON DELETE CASCADE
+);
+
 
 
 

Modified: airavata/trunk/modules/registry/airavata-jpa-registry/src/main/resources/data-mysql.sql
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/resources/data-mysql.sql?rev=1480461&r1=1480460&r2=1480461&view=diff
==============================================================================
--- airavata/trunk/modules/registry/airavata-jpa-registry/src/main/resources/data-mysql.sql (original)
+++ airavata/trunk/modules/registry/airavata-jpa-registry/src/main/resources/data-mysql.sql Wed May  8 21:07:14 2013
@@ -216,4 +216,21 @@ CREATE TABLE CREDENTIALS
         PRIMARY KEY (GATEWAY_NAME, COMMUNITY_USER_NAME)
 );
 
+CREATE TABLE Node_Error
+(
+       error_id INT NOT NULL AUTO_INCREMENT,
+       experiment_ID varchar(255),
+       workflow_instanceID varchar(255),
+       node_id varchar(255),
+       gfacJobID varchar(255),
+       source_type varchar(255),
+       error_date TIMESTAMP DEFAULT now() on update now(),
+       error_msg LONGTEXT,
+       error_des LONGTEXT,
+       error_code varchar(255),
+       PRIMARY KEY(error_id),
+       FOREIGN KEY (workflow_instanceID) REFERENCES Workflow_Data(workflow_instanceID) ON DELETE CASCADE,
+       FOREIGN KEY (experiment_ID) REFERENCES Experiment_Data(experiment_ID) ON DELETE CASCADE
+);
+
 

Modified: airavata/trunk/modules/registry/airavata-jpa-registry/src/test/resources/data-derby.sql
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-jpa-registry/src/test/resources/data-derby.sql?rev=1480461&r1=1480460&r2=1480461&view=diff
==============================================================================
--- airavata/trunk/modules/registry/airavata-jpa-registry/src/test/resources/data-derby.sql (original)
+++ airavata/trunk/modules/registry/airavata-jpa-registry/src/test/resources/data-derby.sql Wed May  8 21:07:14 2013
@@ -131,7 +131,7 @@ create table Application_Descriptor
 create table Experiment
 (
           project_name varchar(255),
-	      gateway_name varchar(255),
+	        gateway_name varchar(255),
           user_name varchar(255),
           experiment_ID varchar(255),
           submitted_date TIMESTAMP DEFAULT '0000-00-00 00:00:00',
@@ -218,6 +218,23 @@ CREATE TABLE CREDENTIALS
         PRIMARY KEY (GATEWAY_NAME, COMMUNITY_USER_NAME)
 );
 
+CREATE TABLE Node_Error
+(
+       error_id INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY,
+       experiment_ID varchar(255),
+       workflow_instanceID varchar(255),
+       node_id varchar(255),
+       gfacJobID varchar(255),
+       source_type varchar(255),,
+       error_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,,
+       error_msg CLOB,
+       error_des CLOB,
+       error_code varchar(255),
+       PRIMARY KEY(error_id),
+       FOREIGN KEY (workflow_instanceID) REFERENCES Workflow_Data(workflow_instanceID) ON DELETE CASCADE,
+       FOREIGN KEY (experiment_ID) REFERENCES Experiment_Data(experiment_ID) ON DELETE CASCADE
+);
+
 
 
 

Modified: airavata/trunk/modules/registry/airavata-registry-test/src/test/resources/data-derby.sql
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-registry-test/src/test/resources/data-derby.sql?rev=1480461&r1=1480460&r2=1480461&view=diff
==============================================================================
--- airavata/trunk/modules/registry/airavata-registry-test/src/test/resources/data-derby.sql (original)
+++ airavata/trunk/modules/registry/airavata-registry-test/src/test/resources/data-derby.sql Wed May  8 21:07:14 2013
@@ -218,6 +218,23 @@ CREATE TABLE CREDENTIALS
         PRIMARY KEY (GATEWAY_NAME, COMMUNITY_USER_NAME)
 );
 
+CREATE TABLE Node_Error
+(
+       error_id INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY,
+       experiment_ID varchar(255),
+       workflow_instanceID varchar(255),
+       node_id varchar(255),
+       gfacJobID varchar(255),
+       source_type varchar(255),
+       error_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+       error_msg CLOB,
+       error_des CLOB,
+       error_code varchar(255),
+       PRIMARY KEY(error_id),
+       FOREIGN KEY (workflow_instanceID) REFERENCES Workflow_Data(workflow_instanceID) ON DELETE CASCADE,
+       FOREIGN KEY (experiment_ID) REFERENCES Experiment_Data(experiment_ID) ON DELETE CASCADE
+);
+