You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sc...@apache.org on 2015/06/10 18:54:39 UTC

[4/4] airavata git commit: Adding getExperimentStatistics API method

Adding getExperimentStatistics API method


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/2c6620f0
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/2c6620f0
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/2c6620f0

Branch: refs/heads/master
Commit: 2c6620f03f5d5ba9d7255f65156adffbe687ff18
Parents: 3224e72
Author: Supun Nakandala <sc...@apache.org>
Authored: Wed Jun 10 22:23:17 2015 +0530
Committer: Supun Nakandala <sc...@apache.org>
Committed: Wed Jun 10 22:23:17 2015 +0530

----------------------------------------------------------------------
 .../server/handler/AiravataServerHandler.java   |    36 +
 .../java/org/apache/airavata/api/Airavata.java  | 16246 +++++++++--------
 .../experiment/ExperimentStatistics.java        |  1280 ++
 .../airavata-api/airavataAPI.thrift             |    15 +
 .../airavata-api/experimentModel.thrift         |    11 +
 .../catalog/impl/ExperimentCatalogImpl.java     |     3 +
 .../catalog/impl/ExperimentRegistry.java        |    51 +
 .../resources/ExperimentStatisticsResource.java |   133 +
 .../catalog/resources/WorkerResource.java       |   287 +-
 .../cpi/ExperimentCatalogModelType.java         |     1 +
 10 files changed, 10515 insertions(+), 7548 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/2c6620f0/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
index 3f0fc0d..915973a 100644
--- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
+++ b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
@@ -1003,6 +1003,42 @@ public class AiravataServerHandler implements Airavata.Iface {
     }
 
     /**
+     * Get Experiment execution statisitics by sending the gateway id and the time period interested in.
+     * This method will retrun an ExperimentStatistics object which contains the number of successfully
+     * completed experiments, failed experiments etc.
+     * @param gatewayId
+     * @param fromTime
+     * @param toTime
+     * @return
+     * @throws InvalidRequestException
+     * @throws AiravataClientException
+     * @throws AiravataSystemException
+     * @throws TException
+     */
+    @Override
+    public ExperimentStatistics getExperimentStatistics(String gatewayId, long fromTime, long toTime) throws InvalidRequestException, AiravataClientException, AiravataSystemException, TException {
+        if (!isGatewayExist(gatewayId)){
+            logger.error("Gateway does not exist.Please provide a valid gateway id...");
+            throw new AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+        }
+        try {
+            Map<String, String> filters = new HashMap();
+            filters.put(Constants.FieldConstants.ExperimentConstants.GATEWAY, gatewayId);
+            filters.put(Constants.FieldConstants.ExperimentConstants.FROM_DATE, fromTime+"");
+            filters.put(Constants.FieldConstants.ExperimentConstants.TO_DATE, toTime+"");
+
+            List<Object> results = experimentCatalog.search(ExperimentCatalogModelType.EXPERIMENT_STATISTICS, filters);
+            return (ExperimentStatistics) results.get(0);
+        }catch (Exception e) {
+            logger.error("Error while retrieving experiments", e);
+            AiravataSystemException exception = new AiravataSystemException();
+            exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
+            exception.setMessage("Error while retrieving experiments. More info : " + e.getMessage());
+            throw exception;
+        }
+    }
+
+    /**
      * Get all Experiments within a Project
      *
      * @param projectId