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