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/07/01 21:11:17 UTC

[04/10] airavata git commit: adding missing API functionality to xsede branch from master

http://git-wip-us.apache.org/repos/asf/airavata/blob/811fd17e/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
index 8bdcb39..4a55771 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
@@ -62,6 +62,8 @@ class AiravataIf {
   virtual void searchExperimentsByStatusWithPagination(std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> & _return, const std::string& gatewayId, const std::string& userName, const  ::apache::airavata::model::workspace::experiment::ExperimentState::type experimentState, const int32_t limit, const int32_t offset) = 0;
   virtual void searchExperimentsByCreationTime(std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> & _return, const std::string& gatewayId, const std::string& userName, const int64_t fromTime, const int64_t toTime) = 0;
   virtual void searchExperimentsByCreationTimeWithPagination(std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> & _return, const std::string& gatewayId, const std::string& userName, const int64_t fromTime, const int64_t toTime, const int32_t limit, const int32_t offset) = 0;
+  virtual void searchExperiments(std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> & _return, const std::string& gatewayId, const std::string& userName, const std::map< ::apache::airavata::model::workspace::experiment::ExperimentSearchFields::type, std::string> & filters, const int32_t limit, const int32_t offset) = 0;
+  virtual void getExperimentStatistics( ::apache::airavata::model::workspace::experiment::ExperimentStatistics& _return, const std::string& gatewayId, const int64_t fromTime, const int64_t toTime) = 0;
   virtual void getAllExperimentsInProject(std::vector< ::apache::airavata::model::workspace::experiment::Experiment> & _return, const std::string& projectId) = 0;
   virtual void getAllExperimentsInProjectWithPagination(std::vector< ::apache::airavata::model::workspace::experiment::Experiment> & _return, const std::string& projectId, const int32_t limit, const int32_t offset) = 0;
   virtual void getAllUserExperiments(std::vector< ::apache::airavata::model::workspace::experiment::Experiment> & _return, const std::string& gatewayId, const std::string& userName) = 0;
@@ -280,6 +282,12 @@ class AiravataNull : virtual public AiravataIf {
   void searchExperimentsByCreationTimeWithPagination(std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> & /* _return */, const std::string& /* gatewayId */, const std::string& /* userName */, const int64_t /* fromTime */, const int64_t /* toTime */, const int32_t /* limit */, const int32_t /* offset */) {
     return;
   }
+  void searchExperiments(std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> & /* _return */, const std::string& /* gatewayId */, const std::string& /* userName */, const std::map< ::apache::airavata::model::workspace::experiment::ExperimentSearchFields::type, std::string> & /* filters */, const int32_t /* limit */, const int32_t /* offset */) {
+    return;
+  }
+  void getExperimentStatistics( ::apache::airavata::model::workspace::experiment::ExperimentStatistics& /* _return */, const std::string& /* gatewayId */, const int64_t /* fromTime */, const int64_t /* toTime */) {
+    return;
+  }
   void getAllExperimentsInProject(std::vector< ::apache::airavata::model::workspace::experiment::Experiment> & /* _return */, const std::string& /* projectId */) {
     return;
   }
@@ -640,11 +648,12 @@ class Airavata_getAPIVersion_pargs {
 };
 
 typedef struct _Airavata_getAPIVersion_result__isset {
-  _Airavata_getAPIVersion_result__isset() : success(false), ire(false), ace(false), ase(false) {}
+  _Airavata_getAPIVersion_result__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
   bool success;
   bool ire;
   bool ace;
   bool ase;
+  bool ae;
 } _Airavata_getAPIVersion_result__isset;
 
 class Airavata_getAPIVersion_result {
@@ -659,6 +668,7 @@ class Airavata_getAPIVersion_result {
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::AiravataClientException ace;
    ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
 
   _Airavata_getAPIVersion_result__isset __isset;
 
@@ -678,6 +688,10 @@ class Airavata_getAPIVersion_result {
     ase = val;
   }
 
+  void __set_ae(const  ::apache::airavata::api::error::AuthorizationException& val) {
+    ae = val;
+  }
+
   bool operator == (const Airavata_getAPIVersion_result & rhs) const
   {
     if (!(success == rhs.success))
@@ -688,6 +702,8 @@ class Airavata_getAPIVersion_result {
       return false;
     if (!(ase == rhs.ase))
       return false;
+    if (!(ae == rhs.ae))
+      return false;
     return true;
   }
   bool operator != (const Airavata_getAPIVersion_result &rhs) const {
@@ -702,11 +718,12 @@ class Airavata_getAPIVersion_result {
 };
 
 typedef struct _Airavata_getAPIVersion_presult__isset {
-  _Airavata_getAPIVersion_presult__isset() : success(false), ire(false), ace(false), ase(false) {}
+  _Airavata_getAPIVersion_presult__isset() : success(false), ire(false), ace(false), ase(false), ae(false) {}
   bool success;
   bool ire;
   bool ace;
   bool ase;
+  bool ae;
 } _Airavata_getAPIVersion_presult__isset;
 
 class Airavata_getAPIVersion_presult {
@@ -719,6 +736,7 @@ class Airavata_getAPIVersion_presult {
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::AiravataClientException ace;
    ::apache::airavata::api::error::AiravataSystemException ase;
+   ::apache::airavata::api::error::AuthorizationException ae;
 
   _Airavata_getAPIVersion_presult__isset __isset;
 
@@ -4972,6 +4990,324 @@ class Airavata_searchExperimentsByCreationTimeWithPagination_presult {
 
 };
 
+typedef struct _Airavata_searchExperiments_args__isset {
+  _Airavata_searchExperiments_args__isset() : filters(false) {}
+  bool filters;
+} _Airavata_searchExperiments_args__isset;
+
+class Airavata_searchExperiments_args {
+ public:
+
+  Airavata_searchExperiments_args() : gatewayId(), userName(), limit(0), offset(0) {
+  }
+
+  virtual ~Airavata_searchExperiments_args() throw() {}
+
+  std::string gatewayId;
+  std::string userName;
+  std::map< ::apache::airavata::model::workspace::experiment::ExperimentSearchFields::type, std::string>  filters;
+  int32_t limit;
+  int32_t offset;
+
+  _Airavata_searchExperiments_args__isset __isset;
+
+  void __set_gatewayId(const std::string& val) {
+    gatewayId = val;
+  }
+
+  void __set_userName(const std::string& val) {
+    userName = val;
+  }
+
+  void __set_filters(const std::map< ::apache::airavata::model::workspace::experiment::ExperimentSearchFields::type, std::string> & val) {
+    filters = val;
+  }
+
+  void __set_limit(const int32_t val) {
+    limit = val;
+  }
+
+  void __set_offset(const int32_t val) {
+    offset = val;
+  }
+
+  bool operator == (const Airavata_searchExperiments_args & rhs) const
+  {
+    if (!(gatewayId == rhs.gatewayId))
+      return false;
+    if (!(userName == rhs.userName))
+      return false;
+    if (!(filters == rhs.filters))
+      return false;
+    if (!(limit == rhs.limit))
+      return false;
+    if (!(offset == rhs.offset))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_searchExperiments_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_searchExperiments_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_searchExperiments_pargs {
+ public:
+
+
+  virtual ~Airavata_searchExperiments_pargs() throw() {}
+
+  const std::string* gatewayId;
+  const std::string* userName;
+  const std::map< ::apache::airavata::model::workspace::experiment::ExperimentSearchFields::type, std::string> * filters;
+  const int32_t* limit;
+  const int32_t* offset;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_searchExperiments_result__isset {
+  _Airavata_searchExperiments_result__isset() : success(false), ire(false), ace(false), ase(false) {}
+  bool success;
+  bool ire;
+  bool ace;
+  bool ase;
+} _Airavata_searchExperiments_result__isset;
+
+class Airavata_searchExperiments_result {
+ public:
+
+  Airavata_searchExperiments_result() {
+  }
+
+  virtual ~Airavata_searchExperiments_result() throw() {}
+
+  std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary>  success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+
+  _Airavata_searchExperiments_result__isset __isset;
+
+  void __set_success(const std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> & val) {
+    success = val;
+  }
+
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val) {
+    ire = val;
+  }
+
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val) {
+    ace = val;
+  }
+
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val) {
+    ase = val;
+  }
+
+  bool operator == (const Airavata_searchExperiments_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_searchExperiments_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_searchExperiments_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_searchExperiments_presult__isset {
+  _Airavata_searchExperiments_presult__isset() : success(false), ire(false), ace(false), ase(false) {}
+  bool success;
+  bool ire;
+  bool ace;
+  bool ase;
+} _Airavata_searchExperiments_presult__isset;
+
+class Airavata_searchExperiments_presult {
+ public:
+
+
+  virtual ~Airavata_searchExperiments_presult() throw() {}
+
+  std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> * success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+
+  _Airavata_searchExperiments_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
+
+class Airavata_getExperimentStatistics_args {
+ public:
+
+  Airavata_getExperimentStatistics_args() : gatewayId(), fromTime(0), toTime(0) {
+  }
+
+  virtual ~Airavata_getExperimentStatistics_args() throw() {}
+
+  std::string gatewayId;
+  int64_t fromTime;
+  int64_t toTime;
+
+  void __set_gatewayId(const std::string& val) {
+    gatewayId = val;
+  }
+
+  void __set_fromTime(const int64_t val) {
+    fromTime = val;
+  }
+
+  void __set_toTime(const int64_t val) {
+    toTime = val;
+  }
+
+  bool operator == (const Airavata_getExperimentStatistics_args & rhs) const
+  {
+    if (!(gatewayId == rhs.gatewayId))
+      return false;
+    if (!(fromTime == rhs.fromTime))
+      return false;
+    if (!(toTime == rhs.toTime))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getExperimentStatistics_args &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getExperimentStatistics_args & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+
+class Airavata_getExperimentStatistics_pargs {
+ public:
+
+
+  virtual ~Airavata_getExperimentStatistics_pargs() throw() {}
+
+  const std::string* gatewayId;
+  const int64_t* fromTime;
+  const int64_t* toTime;
+
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getExperimentStatistics_result__isset {
+  _Airavata_getExperimentStatistics_result__isset() : success(false), ire(false), ace(false), ase(false) {}
+  bool success;
+  bool ire;
+  bool ace;
+  bool ase;
+} _Airavata_getExperimentStatistics_result__isset;
+
+class Airavata_getExperimentStatistics_result {
+ public:
+
+  Airavata_getExperimentStatistics_result() {
+  }
+
+  virtual ~Airavata_getExperimentStatistics_result() throw() {}
+
+   ::apache::airavata::model::workspace::experiment::ExperimentStatistics success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+
+  _Airavata_getExperimentStatistics_result__isset __isset;
+
+  void __set_success(const  ::apache::airavata::model::workspace::experiment::ExperimentStatistics& val) {
+    success = val;
+  }
+
+  void __set_ire(const  ::apache::airavata::api::error::InvalidRequestException& val) {
+    ire = val;
+  }
+
+  void __set_ace(const  ::apache::airavata::api::error::AiravataClientException& val) {
+    ace = val;
+  }
+
+  void __set_ase(const  ::apache::airavata::api::error::AiravataSystemException& val) {
+    ase = val;
+  }
+
+  bool operator == (const Airavata_getExperimentStatistics_result & rhs) const
+  {
+    if (!(success == rhs.success))
+      return false;
+    if (!(ire == rhs.ire))
+      return false;
+    if (!(ace == rhs.ace))
+      return false;
+    if (!(ase == rhs.ase))
+      return false;
+    return true;
+  }
+  bool operator != (const Airavata_getExperimentStatistics_result &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const Airavata_getExperimentStatistics_result & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+typedef struct _Airavata_getExperimentStatistics_presult__isset {
+  _Airavata_getExperimentStatistics_presult__isset() : success(false), ire(false), ace(false), ase(false) {}
+  bool success;
+  bool ire;
+  bool ace;
+  bool ase;
+} _Airavata_getExperimentStatistics_presult__isset;
+
+class Airavata_getExperimentStatistics_presult {
+ public:
+
+
+  virtual ~Airavata_getExperimentStatistics_presult() throw() {}
+
+   ::apache::airavata::model::workspace::experiment::ExperimentStatistics* success;
+   ::apache::airavata::api::error::InvalidRequestException ire;
+   ::apache::airavata::api::error::AiravataClientException ace;
+   ::apache::airavata::api::error::AiravataSystemException ase;
+
+  _Airavata_getExperimentStatistics_presult__isset __isset;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+
+};
+
 
 class Airavata_getAllExperimentsInProject_args {
  public:
@@ -18224,6 +18560,12 @@ class AiravataClient : virtual public AiravataIf {
   void searchExperimentsByCreationTimeWithPagination(std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> & _return, const std::string& gatewayId, const std::string& userName, const int64_t fromTime, const int64_t toTime, const int32_t limit, const int32_t offset);
   void send_searchExperimentsByCreationTimeWithPagination(const std::string& gatewayId, const std::string& userName, const int64_t fromTime, const int64_t toTime, const int32_t limit, const int32_t offset);
   void recv_searchExperimentsByCreationTimeWithPagination(std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> & _return);
+  void searchExperiments(std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> & _return, const std::string& gatewayId, const std::string& userName, const std::map< ::apache::airavata::model::workspace::experiment::ExperimentSearchFields::type, std::string> & filters, const int32_t limit, const int32_t offset);
+  void send_searchExperiments(const std::string& gatewayId, const std::string& userName, const std::map< ::apache::airavata::model::workspace::experiment::ExperimentSearchFields::type, std::string> & filters, const int32_t limit, const int32_t offset);
+  void recv_searchExperiments(std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> & _return);
+  void getExperimentStatistics( ::apache::airavata::model::workspace::experiment::ExperimentStatistics& _return, const std::string& gatewayId, const int64_t fromTime, const int64_t toTime);
+  void send_getExperimentStatistics(const std::string& gatewayId, const int64_t fromTime, const int64_t toTime);
+  void recv_getExperimentStatistics( ::apache::airavata::model::workspace::experiment::ExperimentStatistics& _return);
   void getAllExperimentsInProject(std::vector< ::apache::airavata::model::workspace::experiment::Experiment> & _return, const std::string& projectId);
   void send_getAllExperimentsInProject(const std::string& projectId);
   void recv_getAllExperimentsInProject(std::vector< ::apache::airavata::model::workspace::experiment::Experiment> & _return);
@@ -18557,6 +18899,8 @@ class AiravataProcessor : public ::apache::thrift::TDispatchProcessor {
   void process_searchExperimentsByStatusWithPagination(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_searchExperimentsByCreationTime(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_searchExperimentsByCreationTimeWithPagination(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_searchExperiments(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
+  void process_getExperimentStatistics(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_getAllExperimentsInProject(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_getAllExperimentsInProjectWithPagination(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
   void process_getAllUserExperiments(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext);
@@ -18686,6 +19030,8 @@ class AiravataProcessor : public ::apache::thrift::TDispatchProcessor {
     processMap_["searchExperimentsByStatusWithPagination"] = &AiravataProcessor::process_searchExperimentsByStatusWithPagination;
     processMap_["searchExperimentsByCreationTime"] = &AiravataProcessor::process_searchExperimentsByCreationTime;
     processMap_["searchExperimentsByCreationTimeWithPagination"] = &AiravataProcessor::process_searchExperimentsByCreationTimeWithPagination;
+    processMap_["searchExperiments"] = &AiravataProcessor::process_searchExperiments;
+    processMap_["getExperimentStatistics"] = &AiravataProcessor::process_getExperimentStatistics;
     processMap_["getAllExperimentsInProject"] = &AiravataProcessor::process_getAllExperimentsInProject;
     processMap_["getAllExperimentsInProjectWithPagination"] = &AiravataProcessor::process_getAllExperimentsInProjectWithPagination;
     processMap_["getAllUserExperiments"] = &AiravataProcessor::process_getAllUserExperiments;
@@ -19105,6 +19451,26 @@ class AiravataMultiface : virtual public AiravataIf {
     return;
   }
 
+  void searchExperiments(std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> & _return, const std::string& gatewayId, const std::string& userName, const std::map< ::apache::airavata::model::workspace::experiment::ExperimentSearchFields::type, std::string> & filters, const int32_t limit, const int32_t offset) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->searchExperiments(_return, gatewayId, userName, filters, limit, offset);
+    }
+    ifaces_[i]->searchExperiments(_return, gatewayId, userName, filters, limit, offset);
+    return;
+  }
+
+  void getExperimentStatistics( ::apache::airavata::model::workspace::experiment::ExperimentStatistics& _return, const std::string& gatewayId, const int64_t fromTime, const int64_t toTime) {
+    size_t sz = ifaces_.size();
+    size_t i = 0;
+    for (; i < (sz - 1); ++i) {
+      ifaces_[i]->getExperimentStatistics(_return, gatewayId, fromTime, toTime);
+    }
+    ifaces_[i]->getExperimentStatistics(_return, gatewayId, fromTime, toTime);
+    return;
+  }
+
   void getAllExperimentsInProject(std::vector< ::apache::airavata::model::workspace::experiment::Experiment> & _return, const std::string& projectId) {
     size_t sz = ifaces_.size();
     size_t i = 0;

http://git-wip-us.apache.org/repos/asf/airavata/blob/811fd17e/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
index faf8c0f..f031bc9 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
@@ -189,6 +189,16 @@ class AiravataHandler : virtual public AiravataIf {
     printf("searchExperimentsByCreationTimeWithPagination\n");
   }
 
+  void searchExperiments(std::vector< ::apache::airavata::model::workspace::experiment::ExperimentSummary> & _return, const std::string& gatewayId, const std::string& userName, const std::map< ::apache::airavata::model::workspace::experiment::ExperimentSearchFields::type, std::string> & filters, const int32_t limit, const int32_t offset) {
+    // Your implementation goes here
+    printf("searchExperiments\n");
+  }
+
+  void getExperimentStatistics( ::apache::airavata::model::workspace::experiment::ExperimentStatistics& _return, const std::string& gatewayId, const int64_t fromTime, const int64_t toTime) {
+    // Your implementation goes here
+    printf("getExperimentStatistics\n");
+  }
+
   void getAllExperimentsInProject(std::vector< ::apache::airavata::model::workspace::experiment::Experiment> & _return, const std::string& projectId) {
     // Your implementation goes here
     printf("getAllExperimentsInProject\n");

http://git-wip-us.apache.org/repos/asf/airavata/blob/811fd17e/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp
index 34e4aa6..1bc5369 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp
@@ -55,6 +55,24 @@ const char* _kExperimentStateNames[] = {
 };
 const std::map<int, const char*> _ExperimentState_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(11, _kExperimentStateValues, _kExperimentStateNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
 
+int _kExperimentSearchFieldsValues[] = {
+  ExperimentSearchFields::EXPERIMENT_NAME,
+  ExperimentSearchFields::EXPERIMENT_DESC,
+  ExperimentSearchFields::APPLICATION_ID,
+  ExperimentSearchFields::FROM_DATE,
+  ExperimentSearchFields::TO_DATE,
+  ExperimentSearchFields::STATUS
+};
+const char* _kExperimentSearchFieldsNames[] = {
+  "EXPERIMENT_NAME",
+  "EXPERIMENT_DESC",
+  "APPLICATION_ID",
+  "FROM_DATE",
+  "TO_DATE",
+  "STATUS"
+};
+const std::map<int, const char*> _ExperimentSearchFields_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(6, _kExperimentSearchFieldsValues, _kExperimentSearchFieldsNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
+
 int _kWorkflowNodeStateValues[] = {
   WorkflowNodeState::INVOKED,
   WorkflowNodeState::EXECUTING,
@@ -3221,8 +3239,8 @@ void swap(Experiment &a, Experiment &b) {
   swap(a.__isset, b.__isset);
 }
 
-const char* ExperimentSummary::ascii_fingerprint = "44FD485ABF32F5EB94D6F393F51241B6";
-const uint8_t ExperimentSummary::binary_fingerprint[16] = {0x44,0xFD,0x48,0x5A,0xBF,0x32,0xF5,0xEB,0x94,0xD6,0xF3,0x93,0xF5,0x12,0x41,0xB6};
+const char* ExperimentSummary::ascii_fingerprint = "A1A9DDD1C0AA5DEEDC8413E553960BEF";
+const uint8_t ExperimentSummary::binary_fingerprint[16] = {0xA1,0xA9,0xDD,0xD1,0xC0,0xAA,0x5D,0xEE,0xDC,0x84,0x13,0xE5,0x53,0x96,0x0B,0xEF};
 
 uint32_t ExperimentSummary::read(::apache::thrift::protocol::TProtocol* iprot) {
 
@@ -3312,26 +3330,6 @@ uint32_t ExperimentSummary::read(::apache::thrift::protocol::TProtocol* iprot) {
           xfer += iprot->skip(ftype);
         }
         break;
-      case 9:
-        if (ftype == ::apache::thrift::protocol::T_LIST) {
-          {
-            this->errors.clear();
-            uint32_t _size123;
-            ::apache::thrift::protocol::TType _etype126;
-            xfer += iprot->readListBegin(_etype126, _size123);
-            this->errors.resize(_size123);
-            uint32_t _i127;
-            for (_i127 = 0; _i127 < _size123; ++_i127)
-            {
-              xfer += this->errors[_i127].read(iprot);
-            }
-            xfer += iprot->readListEnd();
-          }
-          this->__isset.errors = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -3392,19 +3390,6 @@ uint32_t ExperimentSummary::write(::apache::thrift::protocol::TProtocol* oprot)
     xfer += this->experimentStatus.write(oprot);
     xfer += oprot->writeFieldEnd();
   }
-  if (this->__isset.errors) {
-    xfer += oprot->writeFieldBegin("errors", ::apache::thrift::protocol::T_LIST, 9);
-    {
-      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->errors.size()));
-      std::vector<ErrorDetails> ::const_iterator _iter128;
-      for (_iter128 = this->errors.begin(); _iter128 != this->errors.end(); ++_iter128)
-      {
-        xfer += (*_iter128).write(oprot);
-      }
-      xfer += oprot->writeListEnd();
-    }
-    xfer += oprot->writeFieldEnd();
-  }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   return xfer;
@@ -3420,7 +3405,255 @@ void swap(ExperimentSummary &a, ExperimentSummary &b) {
   swap(a.description, b.description);
   swap(a.applicationId, b.applicationId);
   swap(a.experimentStatus, b.experimentStatus);
-  swap(a.errors, b.errors);
+  swap(a.__isset, b.__isset);
+}
+
+const char* ExperimentStatistics::ascii_fingerprint = "30185B02179FA7FA5FE94244EB7C415D";
+const uint8_t ExperimentStatistics::binary_fingerprint[16] = {0x30,0x18,0x5B,0x02,0x17,0x9F,0xA7,0xFA,0x5F,0xE9,0x42,0x44,0xEB,0x7C,0x41,0x5D};
+
+uint32_t ExperimentStatistics::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+  bool isset_allExperimentCount = false;
+  bool isset_completedExperimentCount = false;
+  bool isset_failedExperimentCount = false;
+  bool isset_allExperiments = false;
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          xfer += iprot->readI32(this->allExperimentCount);
+          isset_allExperimentCount = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          xfer += iprot->readI32(this->completedExperimentCount);
+          isset_completedExperimentCount = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          xfer += iprot->readI32(this->cancelledExperimentCount);
+          this->__isset.cancelledExperimentCount = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          xfer += iprot->readI32(this->failedExperimentCount);
+          isset_failedExperimentCount = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 5:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->allExperiments.clear();
+            uint32_t _size123;
+            ::apache::thrift::protocol::TType _etype126;
+            xfer += iprot->readListBegin(_etype126, _size123);
+            this->allExperiments.resize(_size123);
+            uint32_t _i127;
+            for (_i127 = 0; _i127 < _size123; ++_i127)
+            {
+              xfer += this->allExperiments[_i127].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
+          isset_allExperiments = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 6:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->completedExperiments.clear();
+            uint32_t _size128;
+            ::apache::thrift::protocol::TType _etype131;
+            xfer += iprot->readListBegin(_etype131, _size128);
+            this->completedExperiments.resize(_size128);
+            uint32_t _i132;
+            for (_i132 = 0; _i132 < _size128; ++_i132)
+            {
+              xfer += this->completedExperiments[_i132].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.completedExperiments = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 7:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->failedExperiments.clear();
+            uint32_t _size133;
+            ::apache::thrift::protocol::TType _etype136;
+            xfer += iprot->readListBegin(_etype136, _size133);
+            this->failedExperiments.resize(_size133);
+            uint32_t _i137;
+            for (_i137 = 0; _i137 < _size133; ++_i137)
+            {
+              xfer += this->failedExperiments[_i137].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.failedExperiments = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 8:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->cancelledExperiments.clear();
+            uint32_t _size138;
+            ::apache::thrift::protocol::TType _etype141;
+            xfer += iprot->readListBegin(_etype141, _size138);
+            this->cancelledExperiments.resize(_size138);
+            uint32_t _i142;
+            for (_i142 = 0; _i142 < _size138; ++_i142)
+            {
+              xfer += this->cancelledExperiments[_i142].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.cancelledExperiments = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  if (!isset_allExperimentCount)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_completedExperimentCount)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_failedExperimentCount)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  if (!isset_allExperiments)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t ExperimentStatistics::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("ExperimentStatistics");
+
+  xfer += oprot->writeFieldBegin("allExperimentCount", ::apache::thrift::protocol::T_I32, 1);
+  xfer += oprot->writeI32(this->allExperimentCount);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("completedExperimentCount", ::apache::thrift::protocol::T_I32, 2);
+  xfer += oprot->writeI32(this->completedExperimentCount);
+  xfer += oprot->writeFieldEnd();
+
+  if (this->__isset.cancelledExperimentCount) {
+    xfer += oprot->writeFieldBegin("cancelledExperimentCount", ::apache::thrift::protocol::T_I32, 3);
+    xfer += oprot->writeI32(this->cancelledExperimentCount);
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldBegin("failedExperimentCount", ::apache::thrift::protocol::T_I32, 4);
+  xfer += oprot->writeI32(this->failedExperimentCount);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("allExperiments", ::apache::thrift::protocol::T_LIST, 5);
+  {
+    xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->allExperiments.size()));
+    std::vector<ExperimentSummary> ::const_iterator _iter143;
+    for (_iter143 = this->allExperiments.begin(); _iter143 != this->allExperiments.end(); ++_iter143)
+    {
+      xfer += (*_iter143).write(oprot);
+    }
+    xfer += oprot->writeListEnd();
+  }
+  xfer += oprot->writeFieldEnd();
+
+  if (this->__isset.completedExperiments) {
+    xfer += oprot->writeFieldBegin("completedExperiments", ::apache::thrift::protocol::T_LIST, 6);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->completedExperiments.size()));
+      std::vector<ExperimentSummary> ::const_iterator _iter144;
+      for (_iter144 = this->completedExperiments.begin(); _iter144 != this->completedExperiments.end(); ++_iter144)
+      {
+        xfer += (*_iter144).write(oprot);
+      }
+      xfer += oprot->writeListEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.failedExperiments) {
+    xfer += oprot->writeFieldBegin("failedExperiments", ::apache::thrift::protocol::T_LIST, 7);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->failedExperiments.size()));
+      std::vector<ExperimentSummary> ::const_iterator _iter145;
+      for (_iter145 = this->failedExperiments.begin(); _iter145 != this->failedExperiments.end(); ++_iter145)
+      {
+        xfer += (*_iter145).write(oprot);
+      }
+      xfer += oprot->writeListEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  }
+  if (this->__isset.cancelledExperiments) {
+    xfer += oprot->writeFieldBegin("cancelledExperiments", ::apache::thrift::protocol::T_LIST, 8);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->cancelledExperiments.size()));
+      std::vector<ExperimentSummary> ::const_iterator _iter146;
+      for (_iter146 = this->cancelledExperiments.begin(); _iter146 != this->cancelledExperiments.end(); ++_iter146)
+      {
+        xfer += (*_iter146).write(oprot);
+      }
+      xfer += oprot->writeListEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  }
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+void swap(ExperimentStatistics &a, ExperimentStatistics &b) {
+  using ::std::swap;
+  swap(a.allExperimentCount, b.allExperimentCount);
+  swap(a.completedExperimentCount, b.completedExperimentCount);
+  swap(a.cancelledExperimentCount, b.cancelledExperimentCount);
+  swap(a.failedExperimentCount, b.failedExperimentCount);
+  swap(a.allExperiments, b.allExperiments);
+  swap(a.completedExperiments, b.completedExperiments);
+  swap(a.failedExperiments, b.failedExperiments);
+  swap(a.cancelledExperiments, b.cancelledExperiments);
   swap(a.__isset, b.__isset);
 }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/811fd17e/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h
index 3f7f2b7..d041d2f 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h
@@ -54,6 +54,19 @@ struct ExperimentState {
 
 extern const std::map<int, const char*> _ExperimentState_VALUES_TO_NAMES;
 
+struct ExperimentSearchFields {
+  enum type {
+    EXPERIMENT_NAME = 0,
+    EXPERIMENT_DESC = 1,
+    APPLICATION_ID = 2,
+    FROM_DATE = 3,
+    TO_DATE = 4,
+    STATUS = 5
+  };
+};
+
+extern const std::map<int, const char*> _ExperimentSearchFields_VALUES_TO_NAMES;
+
 struct WorkflowNodeState {
   enum type {
     INVOKED = 0,
@@ -2008,19 +2021,18 @@ class Experiment {
 void swap(Experiment &a, Experiment &b);
 
 typedef struct _ExperimentSummary__isset {
-  _ExperimentSummary__isset() : creationTime(false), description(false), applicationId(false), experimentStatus(false), errors(false) {}
+  _ExperimentSummary__isset() : creationTime(false), description(false), applicationId(false), experimentStatus(false) {}
   bool creationTime;
   bool description;
   bool applicationId;
   bool experimentStatus;
-  bool errors;
 } _ExperimentSummary__isset;
 
 class ExperimentSummary {
  public:
 
-  static const char* ascii_fingerprint; // = "44FD485ABF32F5EB94D6F393F51241B6";
-  static const uint8_t binary_fingerprint[16]; // = {0x44,0xFD,0x48,0x5A,0xBF,0x32,0xF5,0xEB,0x94,0xD6,0xF3,0x93,0xF5,0x12,0x41,0xB6};
+  static const char* ascii_fingerprint; // = "A1A9DDD1C0AA5DEEDC8413E553960BEF";
+  static const uint8_t binary_fingerprint[16]; // = {0xA1,0xA9,0xDD,0xD1,0xC0,0xAA,0x5D,0xEE,0xDC,0x84,0x13,0xE5,0x53,0x96,0x0B,0xEF};
 
   ExperimentSummary() : experimentID(), projectID(), creationTime(0), userName(), name(), description(), applicationId() {
   }
@@ -2035,7 +2047,6 @@ class ExperimentSummary {
   std::string description;
   std::string applicationId;
   ExperimentStatus experimentStatus;
-  std::vector<ErrorDetails>  errors;
 
   _ExperimentSummary__isset __isset;
 
@@ -2075,11 +2086,6 @@ class ExperimentSummary {
     __isset.experimentStatus = true;
   }
 
-  void __set_errors(const std::vector<ErrorDetails> & val) {
-    errors = val;
-    __isset.errors = true;
-  }
-
   bool operator == (const ExperimentSummary & rhs) const
   {
     if (!(experimentID == rhs.experimentID))
@@ -2106,10 +2112,6 @@ class ExperimentSummary {
       return false;
     else if (__isset.experimentStatus && !(experimentStatus == rhs.experimentStatus))
       return false;
-    if (__isset.errors != rhs.__isset.errors)
-      return false;
-    else if (__isset.errors && !(errors == rhs.errors))
-      return false;
     return true;
   }
   bool operator != (const ExperimentSummary &rhs) const {
@@ -2125,6 +2127,113 @@ class ExperimentSummary {
 
 void swap(ExperimentSummary &a, ExperimentSummary &b);
 
+typedef struct _ExperimentStatistics__isset {
+  _ExperimentStatistics__isset() : cancelledExperimentCount(false), completedExperiments(false), failedExperiments(false), cancelledExperiments(false) {}
+  bool cancelledExperimentCount;
+  bool completedExperiments;
+  bool failedExperiments;
+  bool cancelledExperiments;
+} _ExperimentStatistics__isset;
+
+class ExperimentStatistics {
+ public:
+
+  static const char* ascii_fingerprint; // = "30185B02179FA7FA5FE94244EB7C415D";
+  static const uint8_t binary_fingerprint[16]; // = {0x30,0x18,0x5B,0x02,0x17,0x9F,0xA7,0xFA,0x5F,0xE9,0x42,0x44,0xEB,0x7C,0x41,0x5D};
+
+  ExperimentStatistics() : allExperimentCount(0), completedExperimentCount(0), cancelledExperimentCount(0), failedExperimentCount(0) {
+  }
+
+  virtual ~ExperimentStatistics() throw() {}
+
+  int32_t allExperimentCount;
+  int32_t completedExperimentCount;
+  int32_t cancelledExperimentCount;
+  int32_t failedExperimentCount;
+  std::vector<ExperimentSummary>  allExperiments;
+  std::vector<ExperimentSummary>  completedExperiments;
+  std::vector<ExperimentSummary>  failedExperiments;
+  std::vector<ExperimentSummary>  cancelledExperiments;
+
+  _ExperimentStatistics__isset __isset;
+
+  void __set_allExperimentCount(const int32_t val) {
+    allExperimentCount = val;
+  }
+
+  void __set_completedExperimentCount(const int32_t val) {
+    completedExperimentCount = val;
+  }
+
+  void __set_cancelledExperimentCount(const int32_t val) {
+    cancelledExperimentCount = val;
+    __isset.cancelledExperimentCount = true;
+  }
+
+  void __set_failedExperimentCount(const int32_t val) {
+    failedExperimentCount = val;
+  }
+
+  void __set_allExperiments(const std::vector<ExperimentSummary> & val) {
+    allExperiments = val;
+  }
+
+  void __set_completedExperiments(const std::vector<ExperimentSummary> & val) {
+    completedExperiments = val;
+    __isset.completedExperiments = true;
+  }
+
+  void __set_failedExperiments(const std::vector<ExperimentSummary> & val) {
+    failedExperiments = val;
+    __isset.failedExperiments = true;
+  }
+
+  void __set_cancelledExperiments(const std::vector<ExperimentSummary> & val) {
+    cancelledExperiments = val;
+    __isset.cancelledExperiments = true;
+  }
+
+  bool operator == (const ExperimentStatistics & rhs) const
+  {
+    if (!(allExperimentCount == rhs.allExperimentCount))
+      return false;
+    if (!(completedExperimentCount == rhs.completedExperimentCount))
+      return false;
+    if (__isset.cancelledExperimentCount != rhs.__isset.cancelledExperimentCount)
+      return false;
+    else if (__isset.cancelledExperimentCount && !(cancelledExperimentCount == rhs.cancelledExperimentCount))
+      return false;
+    if (!(failedExperimentCount == rhs.failedExperimentCount))
+      return false;
+    if (!(allExperiments == rhs.allExperiments))
+      return false;
+    if (__isset.completedExperiments != rhs.__isset.completedExperiments)
+      return false;
+    else if (__isset.completedExperiments && !(completedExperiments == rhs.completedExperiments))
+      return false;
+    if (__isset.failedExperiments != rhs.__isset.failedExperiments)
+      return false;
+    else if (__isset.failedExperiments && !(failedExperiments == rhs.failedExperiments))
+      return false;
+    if (__isset.cancelledExperiments != rhs.__isset.cancelledExperiments)
+      return false;
+    else if (__isset.cancelledExperiments && !(cancelledExperiments == rhs.cancelledExperiments))
+      return false;
+    return true;
+  }
+  bool operator != (const ExperimentStatistics &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const ExperimentStatistics & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+void swap(ExperimentStatistics &a, ExperimentStatistics &b);
+
 }}}}} // namespace
 
 #endif