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/06/12 20:31:12 UTC

svn commit: r1492330 - in /airavata/trunk/modules: registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ rest/client/src/main/java/org/apache/airavata/rest/client/ rest/mappings/src/main/java/org/apache/airavata/rest/mappings/r...

Author: chathuri
Date: Wed Jun 12 18:31:10 2013
New Revision: 1492330

URL: http://svn.apache.org/r1492330
Log:
fixing AIRAVATA-868

Added:
    airavata/trunk/modules/rest/mappings/src/main/java/org/apache/airavata/rest/mappings/resourcemappings/ApplicationStatusDataList.java
Modified:
    airavata/trunk/modules/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ApplicationJobStatusData.java
    airavata/trunk/modules/rest/client/src/main/java/org/apache/airavata/rest/client/ProvenanceResourceClient.java
    airavata/trunk/modules/rest/client/src/main/java/org/apache/airavata/rest/client/RegistryClient.java
    airavata/trunk/modules/rest/mappings/src/main/java/org/apache/airavata/rest/mappings/utils/ResourcePathConstants.java
    airavata/trunk/modules/rest/service/src/main/java/org/apache/airavata/services/registry/rest/resources/ProvenanceRegistryResource.java

Modified: airavata/trunk/modules/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ApplicationJobStatusData.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ApplicationJobStatusData.java?rev=1492330&r1=1492329&r2=1492330&view=diff
==============================================================================
--- airavata/trunk/modules/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ApplicationJobStatusData.java (original)
+++ airavata/trunk/modules/registry/registry-api/src/main/java/org/apache/airavata/registry/api/workflow/ApplicationJobStatusData.java Wed Jun 12 18:31:10 2013
@@ -25,6 +25,12 @@ import java.util.Date;
 
 import org.apache.airavata.registry.api.workflow.ApplicationJob.ApplicationJobStatus;
 
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+
+@XmlRootElement
+@XmlAccessorType(XmlAccessType.FIELD)
 public class ApplicationJobStatusData {
 	private String jobId;
 	private ApplicationJobStatus status;

Modified: airavata/trunk/modules/rest/client/src/main/java/org/apache/airavata/rest/client/ProvenanceResourceClient.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/rest/client/src/main/java/org/apache/airavata/rest/client/ProvenanceResourceClient.java?rev=1492330&r1=1492329&r2=1492330&view=diff
==============================================================================
--- airavata/trunk/modules/rest/client/src/main/java/org/apache/airavata/rest/client/ProvenanceResourceClient.java (original)
+++ airavata/trunk/modules/rest/client/src/main/java/org/apache/airavata/rest/client/ProvenanceResourceClient.java Wed Jun 12 18:31:10 2013
@@ -2745,6 +2745,51 @@ public class ProvenanceResourceClient {
         }
     }
 
+    public List<ApplicationJobStatusData> getApplicationJobStatusHistory(String jobId){
+        webResource = getProvenanceRegistryBaseResource().path(
+                ResourcePathConstants.ProvenanceResourcePathConstants.GET_APPLICATION_JOBS_STATUS_HISTORY);
+        MultivaluedMap queryParams = new MultivaluedMapImpl();
+        queryParams.add("jobID", jobId);
+        builder = BasicAuthHeaderUtil.getBuilder(
+                webResource, queryParams, userName, null, cookie, gateway);
+        ClientResponse response = builder.accept(
+                MediaType.APPLICATION_JSON).get(ClientResponse.class);
+        int status = response.getStatus();
+
+        if (status == ClientConstant.HTTP_OK) {
+            if (response.getCookies().size() > 0) {
+                cookie = response.getCookies().get(0).toCookie();
+                CookieManager.setCookie(cookie);
+            }
+        } else if (status == ClientConstant.HTTP_UNAUTHORIZED) {
+            builder = BasicAuthHeaderUtil.getBuilder(
+                    webResource, queryParams, userName, callback.getPassword(userName), null, gateway);
+            response = builder.accept(MediaType.APPLICATION_JSON).get(ClientResponse.class);
+            status = response.getStatus();
+            if (status == ClientConstant.HTTP_NO_CONTENT) {
+                return null;
+            }
+            if (status != ClientConstant.HTTP_OK) {
+                logger.error(response.getEntity(String.class));
+                throw new RuntimeException("Failed : HTTP error code : "
+                        + status);
+            } else {
+                if (response.getCookies().size() > 0) {
+                    cookie = response.getCookies().get(0).toCookie();
+                    CookieManager.setCookie(cookie);
+                }
+            }
+        } else if (status == ClientConstant.HTTP_NO_CONTENT) {
+            return null;
+        } else {
+            logger.error(response.getEntity(String.class));
+            throw new RuntimeException("Failed : HTTP error code : "
+                    + status);
+        }
+        ApplicationStatusDataList gFacJobList = response.getEntity(ApplicationStatusDataList.class);
+        return gFacJobList.getApplicationJobStatusDataList();
+    }
+
     public List<WorkflowNodeIOData> searchWorkflowInstanceNodeInput(String experimentIdRegEx,
                                                                     String workflowNameRegEx,
                                                                     String nodeNameRegEx) {

Modified: airavata/trunk/modules/rest/client/src/main/java/org/apache/airavata/rest/client/RegistryClient.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/rest/client/src/main/java/org/apache/airavata/rest/client/RegistryClient.java?rev=1492330&r1=1492329&r2=1492330&view=diff
==============================================================================
--- airavata/trunk/modules/rest/client/src/main/java/org/apache/airavata/rest/client/RegistryClient.java (original)
+++ airavata/trunk/modules/rest/client/src/main/java/org/apache/airavata/rest/client/RegistryClient.java Wed Jun 12 18:31:10 2013
@@ -974,7 +974,6 @@ public class RegistryClient extends Aira
 	@Override
 	public List<ApplicationJobStatusData> getApplicationJobStatusHistory(
 			String jobId) throws RegistryException {
-		// TODO Auto-generated method stub
-		return null;
+		return getProvenanceResourceClient().getApplicationJobStatusHistory(jobId);
 	}
 }

Added: airavata/trunk/modules/rest/mappings/src/main/java/org/apache/airavata/rest/mappings/resourcemappings/ApplicationStatusDataList.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/rest/mappings/src/main/java/org/apache/airavata/rest/mappings/resourcemappings/ApplicationStatusDataList.java?rev=1492330&view=auto
==============================================================================
--- airavata/trunk/modules/rest/mappings/src/main/java/org/apache/airavata/rest/mappings/resourcemappings/ApplicationStatusDataList.java (added)
+++ airavata/trunk/modules/rest/mappings/src/main/java/org/apache/airavata/rest/mappings/resourcemappings/ApplicationStatusDataList.java Wed Jun 12 18:31:10 2013
@@ -0,0 +1,40 @@
+/*
+ *
+ * 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.rest.mappings.resourcemappings;
+
+import org.apache.airavata.registry.api.workflow.ApplicationJob;
+import org.apache.airavata.registry.api.workflow.ApplicationJobStatusData;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class ApplicationStatusDataList {
+    private List<ApplicationJobStatusData> applicationJobStatusDataList = new ArrayList<ApplicationJobStatusData>();
+
+    public List<ApplicationJobStatusData> getApplicationJobStatusDataList() {
+        return applicationJobStatusDataList;
+    }
+
+    public void setApplicationJobStatusDataList(List<ApplicationJobStatusData> applicationJobStatusDataList) {
+        this.applicationJobStatusDataList = applicationJobStatusDataList;
+    }
+}

Modified: airavata/trunk/modules/rest/mappings/src/main/java/org/apache/airavata/rest/mappings/utils/ResourcePathConstants.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/rest/mappings/src/main/java/org/apache/airavata/rest/mappings/utils/ResourcePathConstants.java?rev=1492330&r1=1492329&r2=1492330&view=diff
==============================================================================
--- airavata/trunk/modules/rest/mappings/src/main/java/org/apache/airavata/rest/mappings/utils/ResourcePathConstants.java (original)
+++ airavata/trunk/modules/rest/mappings/src/main/java/org/apache/airavata/rest/mappings/utils/ResourcePathConstants.java Wed Jun 12 18:31:10 2013
@@ -163,6 +163,8 @@ public class ResourcePathConstants {
         public static final String GET_APPLICATION_JOBS_FOR_DESCRIPTORS = "get/application/jobs/descriptors";
         public static final String GET_APPLICATION_JOBS = "get/application/jobs";
         public static final String APPLICATION_JOB_EXIST = "application/job/exists";
+        public static final String GET_APPLICATION_JOBS_STATUS_HISTORY = "get/application/status/history";
+
     }
 
     public final class PublishedWFConstants {

Modified: airavata/trunk/modules/rest/service/src/main/java/org/apache/airavata/services/registry/rest/resources/ProvenanceRegistryResource.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/rest/service/src/main/java/org/apache/airavata/services/registry/rest/resources/ProvenanceRegistryResource.java?rev=1492330&r1=1492329&r2=1492330&view=diff
==============================================================================
--- airavata/trunk/modules/rest/service/src/main/java/org/apache/airavata/services/registry/rest/resources/ProvenanceRegistryResource.java (original)
+++ airavata/trunk/modules/rest/service/src/main/java/org/apache/airavata/services/registry/rest/resources/ProvenanceRegistryResource.java Wed Jun 12 18:31:10 2013
@@ -1884,4 +1884,30 @@ public class ProvenanceRegistryResource 
             }
         }
     }
+
+    @GET
+    @Path(ResourcePathConstants.ProvenanceResourcePathConstants.GET_APPLICATION_JOBS_STATUS_HISTORY)
+    @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
+    public Response getApplicationJobStatusHistory(@QueryParam("jobID") String jobID) {
+        AiravataRegistry2 airavataRegistry = RegPoolUtils.acquireRegistry(context);
+        try {
+            ApplicationStatusDataList statusDataList = new ApplicationStatusDataList();
+            List<ApplicationJobStatusData> jobStatusHistory = airavataRegistry.getApplicationJobStatusHistory(jobID);
+            statusDataList.setApplicationJobStatusDataList(jobStatusHistory);
+            if (jobStatusHistory.size() != 0){
+                Response.ResponseBuilder builder = Response.status(Response.Status.OK);
+                builder.entity(statusDataList);
+                return builder.build();
+            } else {
+                Response.ResponseBuilder builder = Response.status(Response.Status.NO_CONTENT);
+                return builder.build();
+            }
+        } catch (Throwable e) {
+            return WebAppUtil.reportInternalServerError(ResourcePathConstants.ProvenanceResourcePathConstants.GET_APPLICATION_JOBS_STATUS_HISTORY, e);
+        } finally {
+            if (airavataRegistry != null) {
+                RegPoolUtils.releaseRegistry(context, airavataRegistry);
+            }
+        }
+    }
 }