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);
+ }
+ }
+ }
}