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 2012/10/24 23:21:16 UTC

svn commit: r1401892 - in /airavata/sandbox/airavata-registry-rest: ./ src/main/java/org/apache/airavata/services/registry/rest/resourcemappings/ src/main/java/org/apache/airavata/services/registry/rest/resources/

Author: chathuri
Date: Wed Oct 24 21:21:15 2012
New Revision: 1401892

URL: http://svn.apache.org/viewvc?rev=1401892&view=rev
Log:
updating workflow execution related methods

Added:
    airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resourcemappings/WorkflowInstanceMapping.java
    airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resourcemappings/WorkflowInstanceStatusMapping.java
Modified:
    airavata/sandbox/airavata-registry-rest/README.txt
    airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resourcemappings/WorkflowInstancesList.java
    airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/RegistryResource.java

Modified: airavata/sandbox/airavata-registry-rest/README.txt
URL: http://svn.apache.org/viewvc/airavata/sandbox/airavata-registry-rest/README.txt?rev=1401892&r1=1401891&r2=1401892&view=diff
==============================================================================
--- airavata/sandbox/airavata-registry-rest/README.txt (original)
+++ airavata/sandbox/airavata-registry-rest/README.txt Wed Oct 24 21:21:15 2012
@@ -75,6 +75,27 @@ To test
     curl --request DELETE 'http://localhost:9080/airavata-services/registry/api/delete/experiment?experimentId=eb9e67cf-6fe3-46f1-b50b-7b42936d347d
     curl --request GET 'http://localhost:9080/airavata-services/registry/api/get/experiments/all'
     curl --request GET 'http://localhost:9080/airavata-services/registry/api/get/experiments/project?projectName=default'
+    curl --request GET 'http://localhost:9080/airavata-services/registry/api/get/experiments/date?fromDate=2012-10-16%2000:00:00&toDate=2012-10-18%2000:00:00'
+    curl --request GET 'http://localhost:9080/airavata-services/registry/api/get/experiments/project/date?projectName=default&fromDate=2012-10-16%2000:00:00&toDate=2012-10-18%2000:00:00'
+    curl -H "Accept: text/plain" -X POST -d 'projectName=project1&experimentID=testexpID1&submittedDate=2012-10-18 00:00:00' http://localhost:9080/airavata-services/registry/api/add/experiment
+    curl --request GET 'http://localhost:9080/airavata-services/registry/api/experiment/exist?experimentId=testexpID1'
+    curl --request GET 'http://localhost:9080/airavata-services/registry/api/experiment/notexist/create?experimentId=testExpID2&createIfNotPresent=true'
+    curl -H "Accept: text/plain" -X POST -d 'experimentId=testExpID2&user=abc' http://localhost:9080/airavata-services/registry/api/update/experiment
+    curl --request GET 'http://localhost:9080/airavata-services/registry/api/get/experiment/executionuser?experimentId=testExpID2'
+    curl --request GET 'http://localhost:9080/airavata-services/registry/api/get/experiment/name?experimentId=testExpID2'
+    curl -H "Accept: text/plain" -X POST -d 'experimentId=testExpID2&experimentName=ddscsddsss111' http://localhost:9080/airavata-services/registry/api/update/experimentname
+    curl --request GET 'http://localhost:9080/airavata-services/registry/api/get/experimentmetadata?experimentId=testExpID2'
+    curl -H "Accept: text/plain" -X POST -d 'experimentId=testExpID2&metadata=aaaaaaa' http://localhost:9080/airavata-services/registry/api/update/experimentmetadata
+
+************* Workflow Execution *************************************
+    curl --request GET 'http://localhost:9080/airavata-services/registry/api/get/workflowtemplatename?workflowInstanceId=e00ddc5e-f8d5-4492-9eb2-10372efb103c'
+    curl -H "Accept: text/plain" -X POST -d 'workflowInstanceId=e00ddc5e-f8d5-4492-9eb2-10372efb103c&templateName=wftemplate1' http://localhost:9080/airavata-services/registry/api/update/workflowinstancetemplatename
+    curl --request GET 'http://localhost:9080/airavata-services/registry/api/get/experimentworkflowinstances?experimentId=ff7338c9-f9ad-4d86-b486-1e8e9c3a9cc4'
+    curl --request GET 'http://localhost:9080/airavata-services/registry/api/workflowinstance/exist/check?instanceId=e00ddc5e-f8d5-4492-9eb2-10372efb103c'
+    curl --request GET 'http://localhost:9080/airavata-services/registry/api/workflowinstance/exist/create?instanceId=testWFInstanceID&createIfNotPresent=true'
+    curl -H "Accept: text/plain" -X POST -d 'instanceId=testWFInstanceID&executionStatus=FINISHED' http://localhost:9080/airavata-services/registry/api/update/workflowinstancestatus/instanceid
+    curl -H "Accept: text/plain" -X POST -d 'experimentId=testWFInstanceID&workflowInstanceId=testWFInstanceID&executionStatus=STARTED&statusUpdateTime=2012-10-23 00:00:00' http://localhost:9080/airavata-services/registry/api/update/workflowinstancestatus/experimentid
+    curl --request GET 'http://localhost:9080/airavata-services/registry/api/get/workflowinstancestatus?instanceId=testWFInstanceID'
 
 
 

Added: airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resourcemappings/WorkflowInstanceMapping.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resourcemappings/WorkflowInstanceMapping.java?rev=1401892&view=auto
==============================================================================
--- airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resourcemappings/WorkflowInstanceMapping.java (added)
+++ airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resourcemappings/WorkflowInstanceMapping.java Wed Oct 24 21:21:15 2012
@@ -0,0 +1,58 @@
+/*
+ *
+ * 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.services.registry.rest.resourcemappings;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+@XmlRootElement
+public class WorkflowInstanceMapping {
+    private String experimentId;
+    private String workflowInstanceId;
+    private String templateName;
+
+    public WorkflowInstanceMapping() {
+    }
+
+    public String getExperimentId() {
+        return experimentId;
+    }
+
+    public String getWorkflowInstanceId() {
+        return workflowInstanceId;
+    }
+
+    public String getTemplateName() {
+        return templateName;
+    }
+
+    public void setExperimentId(String experimentId) {
+        this.experimentId = experimentId;
+    }
+
+    public void setWorkflowInstanceId(String workflowInstanceId) {
+        this.workflowInstanceId = workflowInstanceId;
+    }
+
+    public void setTemplateName(String templateName) {
+        this.templateName = templateName;
+    }
+}

Added: airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resourcemappings/WorkflowInstanceStatusMapping.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resourcemappings/WorkflowInstanceStatusMapping.java?rev=1401892&view=auto
==============================================================================
--- airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resourcemappings/WorkflowInstanceStatusMapping.java (added)
+++ airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resourcemappings/WorkflowInstanceStatusMapping.java Wed Oct 24 21:21:15 2012
@@ -0,0 +1,88 @@
+/*
+ *
+ * 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.services.registry.rest.resourcemappings;
+
+import javax.xml.bind.annotation.XmlRootElement;
+import java.util.Date;
+
+@XmlRootElement
+public class WorkflowInstanceStatusMapping {
+    private String executionStatus;
+    private Date statusUpdateTime = null;
+    private String experimentId;
+    private String workflowInstanceId;
+    private String templateName;
+
+    private WorkflowInstanceMapping workflowInstanceMapping;
+
+    public WorkflowInstanceStatusMapping() {
+    }
+
+    public String getExecutionStatus() {
+        return executionStatus;
+    }
+
+    public Date getStatusUpdateTime() {
+        return statusUpdateTime;
+    }
+
+
+    public void setExecutionStatus(String executionStatus) {
+        this.executionStatus = executionStatus;
+    }
+
+    public void setStatusUpdateTime(Date statusUpdateTime) {
+        this.statusUpdateTime = statusUpdateTime;
+    }
+
+    public void setWorkflowInstanceMapping(WorkflowInstanceMapping workflowInstanceStatusMapping) {
+        this.workflowInstanceMapping = workflowInstanceStatusMapping;
+    }
+
+    public String getExperimentId() {
+        return experimentId;
+    }
+
+    public String getWorkflowInstanceId() {
+        return workflowInstanceId;
+    }
+
+    public String getTemplateName() {
+        return templateName;
+    }
+
+    public WorkflowInstanceMapping getWorkflowInstanceMapping() {
+        return workflowInstanceMapping;
+    }
+
+    public void setExperimentId(String experimentId) {
+        this.experimentId = experimentId;
+    }
+
+    public void setWorkflowInstanceId(String workflowInstanceId) {
+        this.workflowInstanceId = workflowInstanceId;
+    }
+
+    public void setTemplateName(String templateName) {
+        this.templateName = templateName;
+    }
+}

Modified: airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resourcemappings/WorkflowInstancesList.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resourcemappings/WorkflowInstancesList.java?rev=1401892&r1=1401891&r2=1401892&view=diff
==============================================================================
--- airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resourcemappings/WorkflowInstancesList.java (original)
+++ airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resourcemappings/WorkflowInstancesList.java Wed Oct 24 21:21:15 2012
@@ -1,18 +1,16 @@
 package org.apache.airavata.services.registry.rest.resourcemappings;
 
-import org.apache.airavata.registry.api.workflow.WorkflowInstance;
-
 import javax.xml.bind.annotation.XmlRootElement;
 
 @XmlRootElement
 public class WorkflowInstancesList {
-    WorkflowInstance[] workflowInstances = null;
+    WorkflowInstanceMapping[] workflowInstanceMappings = null;
 
-    public WorkflowInstance[] getWorkflowInstances() {
-        return workflowInstances;
+    public WorkflowInstanceMapping[] getWorkflowInstanceMappings() {
+        return workflowInstanceMappings;
     }
 
-    public void setWorkflowInstances(WorkflowInstance[] workflowInstances) {
-        this.workflowInstances = workflowInstances;
+    public void setWorkflowInstanceMappings(WorkflowInstanceMapping[] workflowInstanceMappings) {
+        this.workflowInstanceMappings = workflowInstanceMappings;
     }
 }

Modified: airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/RegistryResource.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/RegistryResource.java?rev=1401892&r1=1401891&r2=1401892&view=diff
==============================================================================
--- airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/RegistryResource.java (original)
+++ airavata/sandbox/airavata-registry-rest/src/main/java/org/apache/airavata/services/registry/rest/resources/RegistryResource.java Wed Oct 24 21:21:15 2012
@@ -9,9 +9,9 @@ import org.apache.airavata.registry.api.
 import org.apache.airavata.registry.api.exception.gateway.*;
 import org.apache.airavata.registry.api.exception.worker.*;
 import org.apache.airavata.registry.api.workflow.*;
-import org.apache.airavata.registry.services.*;
 import org.apache.airavata.services.registry.rest.resourcemappings.*;
 import org.apache.airavata.registry.api.AiravataExperiment;
+import org.apache.airavata.services.registry.rest.resourcemappings.WorkflowInstanceMapping;
 import org.apache.airavata.services.registry.rest.utils.RestServicesConstants;
 import org.apache.xmlbeans.XmlException;
 import org.slf4j.Logger;
@@ -26,7 +26,6 @@ import java.net.URI;
 import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -1349,6 +1348,7 @@ import java.util.Map;
 
     @GET
     @Path("get/experiments/date")
+    @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
     @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
     public Response getExperimentsByDate(@QueryParam("fromDate") String fromDate,
                                          @QueryParam("toDate") String toDate) {
@@ -1390,6 +1390,7 @@ import java.util.Map;
 
     @GET
     @Path("get/experiments/project/date")
+    @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
     @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
     public Response getExperimentsByProjectDate(@QueryParam("projectName") String projectName,
                                                 @QueryParam("fromDate") String fromDate,
@@ -1432,6 +1433,7 @@ import java.util.Map;
 
     @POST
     @Path("add/experiment")
+    @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
     @Produces(MediaType.TEXT_PLAIN)
     public Response addExperiment(@FormParam("projectName") String projectName,
                                   @FormParam("experimentID") String experimentID,
@@ -1507,18 +1509,13 @@ import java.util.Map;
     @POST
     @Path("update/experiment")
     @Produces(MediaType.TEXT_PLAIN)
-    public Response updateExperimentExecutionUser(@QueryParam("experimentId") String experimentId,
-                                                  @QueryParam("user") String user) {
+    public Response updateExperimentExecutionUser(@FormParam("experimentId") String experimentId,
+                                                  @FormParam("user") String user) {
         airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
         try{
-            Boolean result = airavataRegistry.updateExperimentExecutionUser(experimentId,user);
-            if (result) {
-                Response.ResponseBuilder builder = Response.status(Response.Status.OK);
-                return builder.build();
-            } else {
-                Response.ResponseBuilder builder = Response.status(Response.Status.NOT_FOUND);
-                return builder.build();
-            }
+            airavataRegistry.updateExperimentExecutionUser(experimentId,user);
+            Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+            return builder.build();
         } catch (RegistryException e) {
             Response.ResponseBuilder builder = Response.status(Response.Status.NOT_FOUND);
             return builder.build();
@@ -1549,7 +1546,7 @@ import java.util.Map;
     @GET
     @Path("get/experiment/name")
     @Produces(MediaType.TEXT_PLAIN)
-    public Response getExperimentName(@QueryParam("experimentID") String experimentId) {
+    public Response getExperimentName(@QueryParam("experimentId") String experimentId) {
         airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
         try{
             String result = airavataRegistry.getExperimentName(experimentId);
@@ -1570,18 +1567,13 @@ import java.util.Map;
     @POST
     @Path("update/experimentname")
     @Produces(MediaType.TEXT_PLAIN)
-    public Response updateExperimentName(@QueryParam("experimentId") String experimentId,
-                                         @QueryParam("experimentName") String experimentName){
-        airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
+    public Response updateExperimentName(@FormParam("experimentId") String experimentId,
+                                         @FormParam("experimentName") String experimentName){
+            airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
         try{
-            Boolean result = airavataRegistry.updateExperimentName(experimentId, experimentName);
-            if (result) {
-                Response.ResponseBuilder builder = Response.status(Response.Status.OK);
-                return builder.build();
-            } else {
-                Response.ResponseBuilder builder = Response.status(Response.Status.NOT_FOUND);
-                return builder.build();
-            }
+            airavataRegistry.updateExperimentName(experimentId, experimentName);
+            Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+            return builder.build();
         } catch (RegistryException e) {
             Response.ResponseBuilder builder = Response.status(Response.Status.NOT_FOUND);
             return builder.build();
@@ -1617,14 +1609,9 @@ import java.util.Map;
                                              @FormParam("metadata") String metadata) {
         airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
         try{
-            Boolean result = airavataRegistry.updateExperimentMetadata(experimentId, metadata);
-            if (result) {
-                Response.ResponseBuilder builder = Response.status(Response.Status.OK);
-                return builder.build();
-            } else {
-                Response.ResponseBuilder builder = Response.status(Response.Status.NOT_FOUND);
-                return builder.build();
-            }
+            airavataRegistry.updateExperimentMetadata(experimentId, metadata);
+            Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+            return builder.build();
         } catch (RegistryException e) {
             Response.ResponseBuilder builder = Response.status(Response.Status.NOT_FOUND);
             return builder.build();
@@ -1676,11 +1663,16 @@ import java.util.Map;
         try{
             List<WorkflowInstance> experimentWorkflowInstances = airavataRegistry.getExperimentWorkflowInstances(experimentId);
             WorkflowInstancesList workflowInstancesList = new WorkflowInstancesList();
-            WorkflowInstance[] workflowInstances = new WorkflowInstance[experimentWorkflowInstances.size()];
+            WorkflowInstanceMapping[] workflowInstanceMappings = new WorkflowInstanceMapping[experimentWorkflowInstances.size()];
             for (int i=0; i<experimentWorkflowInstances.size(); i++){
-                workflowInstances[i] = experimentWorkflowInstances.get(i);
+                WorkflowInstanceMapping workflowInstanceMapping = new WorkflowInstanceMapping();
+                WorkflowInstance workflowInstance = experimentWorkflowInstances.get(i);
+                workflowInstanceMapping.setExperimentId(workflowInstance.getExperimentId());
+                workflowInstanceMapping.setTemplateName(workflowInstance.getTemplateName());
+                workflowInstanceMapping.setWorkflowInstanceId(workflowInstance.getWorkflowInstanceId());
+                workflowInstanceMappings[i] = workflowInstanceMapping;
             }
-            workflowInstancesList.setWorkflowInstances(workflowInstances);
+            workflowInstancesList.setWorkflowInstanceMappings(workflowInstanceMappings);
             if (experimentWorkflowInstances.size() != 0) {
                 Response.ResponseBuilder builder = Response.status(Response.Status.OK);
                 builder.entity(workflowInstancesList);
@@ -1704,9 +1696,11 @@ import java.util.Map;
             Boolean result = airavataRegistry.isWorkflowInstanceExists(instanceId);
             if (result) {
                 Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+                builder.entity("True");
                 return builder.build();
             } else {
                 Response.ResponseBuilder builder = Response.status(Response.Status.NOT_FOUND);
+                builder.entity("False");
                 return builder.build();
             }
         } catch (RegistryException e) {
@@ -1726,6 +1720,7 @@ import java.util.Map;
             Boolean result = airavataRegistry.isWorkflowInstanceExists(instanceId, createIfNotPresent);
             if (result) {
                 Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+                builder.entity("True");
                 return builder.build();
             } else {
                 Response.ResponseBuilder builder = Response.status(Response.Status.NOT_FOUND);
@@ -1745,14 +1740,9 @@ import java.util.Map;
         airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
         try{
             WorkflowInstanceStatus.ExecutionStatus status = WorkflowInstanceStatus.ExecutionStatus.valueOf(executionStatus);
-            Boolean result = airavataRegistry.updateWorkflowInstanceStatus(instanceId, status);
-            if (result) {
-                Response.ResponseBuilder builder = Response.status(Response.Status.OK);
-                return builder.build();
-            } else {
-                Response.ResponseBuilder builder = Response.status(Response.Status.NOT_FOUND);
-                return builder.build();
-            }
+            airavataRegistry.updateWorkflowInstanceStatus(instanceId, status);
+            Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+            return builder.build();
         } catch (RegistryException e) {
             Response.ResponseBuilder builder = Response.status(Response.Status.NOT_FOUND);
             return builder.build();
@@ -1760,41 +1750,51 @@ import java.util.Map;
     }
 
     @POST
-    @Path("update/workflowinstancestatus/experimentid")
+    @Path("update/workflowinstancestatus")
     @Produces(MediaType.TEXT_PLAIN)
-    public Response updateWorkflowInstanceStatusByExperiment(@FormParam("experimentId") String experimentId,
-                                                             @FormParam("workflowInstanceId") String workflowInstanceId,
-                                                             @FormParam("executionStatus") String executionStatus,
-                                                             @FormParam("statusUpdateTime") Date statusUpdateTime) {
+    public Response updateWorkflowInstanceStatus(@FormParam("workflowInstanceId") String workflowInstanceId,
+                                                 @FormParam("executionStatus") String executionStatus,
+                                                 @FormParam("statusUpdateTime") String statusUpdateTime) {
         airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
         try{
-            WorkflowInstance workflowInstance =  new WorkflowInstance(experimentId, workflowInstanceId);
+            DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            Date formattedDate = dateFormat.parse(statusUpdateTime);
+            WorkflowInstance workflowInstance = airavataRegistry.getWorkflowInstanceData(workflowInstanceId).getWorkflowInstance();
             WorkflowInstanceStatus.ExecutionStatus status = WorkflowInstanceStatus.ExecutionStatus.valueOf(executionStatus);
-            WorkflowInstanceStatus workflowInstanceStatus = new WorkflowInstanceStatus(workflowInstance, status, statusUpdateTime);
-            Boolean result = airavataRegistry.updateWorkflowInstanceStatus(workflowInstanceStatus);
-            if (result) {
-                Response.ResponseBuilder builder = Response.status(Response.Status.OK);
-                return builder.build();
-            } else {
-                Response.ResponseBuilder builder = Response.status(Response.Status.NOT_FOUND);
-                return builder.build();
-            }
+            WorkflowInstanceStatus workflowInstanceStatus = new WorkflowInstanceStatus(workflowInstance, status, formattedDate);
+            airavataRegistry.updateWorkflowInstanceStatus(workflowInstanceStatus);
+            Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+            return builder.build();
         } catch (RegistryException e) {
             Response.ResponseBuilder builder = Response.status(Response.Status.NOT_FOUND);
             return builder.build();
+        } catch (ParseException e) {
+            Response.ResponseBuilder builder = Response.status(Response.Status.NOT_FOUND);
+            return builder.build();
         }
     }
 
     @GET
     @Path("get/workflowinstancestatus")
-    @Produces(MediaType.TEXT_PLAIN)
+    @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
     public Response getWorkflowInstanceStatus(@QueryParam("instanceId") String instanceId) {
         airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
         try{
             WorkflowInstanceStatus workflowInstanceStatus = airavataRegistry.getWorkflowInstanceStatus(instanceId);
-            if(workflowInstanceStatus != null){
+            WorkflowInstanceStatusMapping workflowInstanceStatusMapping = new WorkflowInstanceStatusMapping();
+            workflowInstanceStatusMapping.setExecutionStatus(workflowInstanceStatus.getExecutionStatus().name());
+            workflowInstanceStatusMapping.setStatusUpdateTime(workflowInstanceStatus.getStatusUpdateTime());
+            WorkflowInstance workflowInstance = workflowInstanceStatus.getWorkflowInstance();
+            WorkflowInstanceMapping workflowInstanceMapping = new WorkflowInstanceMapping();
+            if(workflowInstance != null){
+                workflowInstanceStatusMapping.setExperimentId(workflowInstance.getExperimentId());
+                workflowInstanceStatusMapping.setTemplateName(workflowInstance.getTemplateName());
+                workflowInstanceStatusMapping.setWorkflowInstanceId(workflowInstance.getWorkflowInstanceId());
+            }
+//            workflowInstanceStatusMapping.setWorkflowInstanceMapping(workflowInstanceMapping);
+            if(workflowInstanceStatusMapping != null){
                 Response.ResponseBuilder builder = Response.status(Response.Status.OK);
-                builder.entity(workflowInstanceStatus);
+                builder.entity(workflowInstanceStatusMapping);
                 return builder.build();
             }else{
                 Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
@@ -1809,22 +1809,17 @@ import java.util.Map;
     @POST
     @Path("update/workflownodeinput")
     @Produces(MediaType.TEXT_PLAIN)
-    public Response updateWorkflowNodeInput(@FormParam("experimentID") String experimentID,
+    public Response updateWorkflowNodeInput(@FormParam("experimentId") String experimentID,
                                             @FormParam("nodeID") String nodeID,
-                                            @FormParam("workflowInstanceID") String workflowInstanceID,
+                                            @FormParam("workflowInstanceId") String workflowInstanceID,
                                             @FormParam("data") String data){
         airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
         try{
-            WorkflowInstance workflowInstance = new WorkflowInstance(experimentID, nodeID);
-            WorkflowInstanceNode workflowInstanceNode = new WorkflowInstanceNode(workflowInstance, nodeID);
-            boolean result = airavataRegistry.updateWorkflowNodeInput(workflowInstanceNode, data);
-            if (result) {
-                Response.ResponseBuilder builder = Response.status(Response.Status.OK);
-                return builder.build();
-            } else {
-                Response.ResponseBuilder builder = Response.status(Response.Status.NOT_FOUND);
-                return builder.build();
-            }
+            WorkflowInstanceData workflowInstanceData = airavataRegistry.getWorkflowInstanceData(workflowInstanceID);
+            WorkflowInstanceNode workflowInstanceNode = workflowInstanceData.getNodeData(nodeID).getWorkflowInstanceNode();
+            airavataRegistry.updateWorkflowNodeInput(workflowInstanceNode, data);
+            Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+            return builder.build();
         } catch (RegistryException e) {
             Response.ResponseBuilder builder = Response.status(Response.Status.NOT_FOUND);
             return builder.build();
@@ -1841,16 +1836,11 @@ import java.util.Map;
                                              @FormParam("data") String data) {
         airavataRegistry = (AiravataRegistry2) context.getAttribute(RestServicesConstants.AIRAVATA_REGISTRY);
         try{
-            WorkflowInstance workflowInstance = new WorkflowInstance(experimentID, nodeID);
-            WorkflowInstanceNode workflowInstanceNode = new WorkflowInstanceNode(workflowInstance, nodeID);
-            boolean result = airavataRegistry.updateWorkflowNodeOutput(workflowInstanceNode, data);
-            if (result) {
-                Response.ResponseBuilder builder = Response.status(Response.Status.OK);
-                return builder.build();
-            } else {
-                Response.ResponseBuilder builder = Response.status(Response.Status.NOT_FOUND);
-                return builder.build();
-            }
+            WorkflowInstanceData workflowInstanceData = airavataRegistry.getWorkflowInstanceData(workflowInstanceID);
+            WorkflowInstanceNode workflowInstanceNode = workflowInstanceData.getNodeData(nodeID).getWorkflowInstanceNode();
+            airavataRegistry.updateWorkflowNodeOutput(workflowInstanceNode, data);
+            Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+            return builder.build();
         } catch (RegistryException e) {
             Response.ResponseBuilder builder = Response.status(Response.Status.NOT_FOUND);
             return builder.build();