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/02 22:53:06 UTC

[2/3] airavata git commit: Adding updated thrift data models (includes Security API changes)

Adding updated thrift data models (includes Security API changes)


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

Branch: refs/heads/master
Commit: 7ab87e5319312e93b6308384dd54f6a352639065
Parents: f515c35
Author: Supun Nakandala <sc...@apache.org>
Authored: Wed Jun 3 01:43:44 2015 +0530
Committer: Supun Nakandala <sc...@apache.org>
Committed: Wed Jun 3 01:43:44 2015 +0530

----------------------------------------------------------------------
 .../main/resources/lib/airavata/Airavata.cpp    | 61 +++++++++++++++++--
 .../src/main/resources/lib/airavata/Airavata.h  | 38 ++++++++----
 .../lib/airavata/Airavata_server.skeleton.cpp   |  2 +-
 .../resources/lib/airavata/airavataAPI_types.h  |  1 +
 .../lib/airavata/airavataDataModel_types.h      |  1 +
 .../resources/lib/Airavata/API/Airavata.php     | 63 ++++++++++++++++++--
 .../lib/apache/airavata/api/Airavata-remote     |  8 +--
 .../lib/apache/airavata/api/Airavata.py         | 57 ++++++++++++++++--
 .../resources/lib/apache/airavata/api/ttypes.py |  1 +
 .../lib/apache/airavata/model/ttypes.py         |  1 +
 10 files changed, 202 insertions(+), 31 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/7ab87e53/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
index 52751cc..a46e7e5 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
@@ -36,6 +36,7 @@ uint32_t Airavata_getAPIVersion_args::read(::apache::thrift::protocol::TProtocol
 
   using ::apache::thrift::protocol::TProtocolException;
 
+  bool isset_authzToken = false;
 
   while (true)
   {
@@ -43,12 +44,27 @@ uint32_t Airavata_getAPIVersion_args::read(::apache::thrift::protocol::TProtocol
     if (ftype == ::apache::thrift::protocol::T_STOP) {
       break;
     }
-    xfer += iprot->skip(ftype);
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->authzToken.read(iprot);
+          isset_authzToken = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
     xfer += iprot->readFieldEnd();
   }
 
   xfer += iprot->readStructEnd();
 
+  if (!isset_authzToken)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
   return xfer;
 }
 
@@ -56,6 +72,10 @@ uint32_t Airavata_getAPIVersion_args::write(::apache::thrift::protocol::TProtoco
   uint32_t xfer = 0;
   xfer += oprot->writeStructBegin("Airavata_getAPIVersion_args");
 
+  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += this->authzToken.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   return xfer;
@@ -65,6 +85,10 @@ uint32_t Airavata_getAPIVersion_pargs::write(::apache::thrift::protocol::TProtoc
   uint32_t xfer = 0;
   xfer += oprot->writeStructBegin("Airavata_getAPIVersion_pargs");
 
+  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += (*(this->authzToken)).write(oprot);
+  xfer += oprot->writeFieldEnd();
+
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   return xfer;
@@ -122,6 +146,14 @@ uint32_t Airavata_getAPIVersion_result::read(::apache::thrift::protocol::TProtoc
           xfer += iprot->skip(ftype);
         }
         break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ae.read(iprot);
+          this->__isset.ae = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -156,6 +188,10 @@ uint32_t Airavata_getAPIVersion_result::write(::apache::thrift::protocol::TProto
     xfer += oprot->writeFieldBegin("ase", ::apache::thrift::protocol::T_STRUCT, 3);
     xfer += this->ase.write(oprot);
     xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ae) {
+    xfer += oprot->writeFieldBegin("ae", ::apache::thrift::protocol::T_STRUCT, 4);
+    xfer += this->ae.write(oprot);
+    xfer += oprot->writeFieldEnd();
   }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
@@ -214,6 +250,14 @@ uint32_t Airavata_getAPIVersion_presult::read(::apache::thrift::protocol::TProto
           xfer += iprot->skip(ftype);
         }
         break;
+      case 4:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ae.read(iprot);
+          this->__isset.ae = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -32132,18 +32176,19 @@ uint32_t Airavata_isWorkflowExistWithName_presult::read(::apache::thrift::protoc
   return xfer;
 }
 
-void AiravataClient::getAPIVersion(std::string& _return)
+void AiravataClient::getAPIVersion(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken)
 {
-  send_getAPIVersion();
+  send_getAPIVersion(authzToken);
   recv_getAPIVersion(_return);
 }
 
-void AiravataClient::send_getAPIVersion()
+void AiravataClient::send_getAPIVersion(const  ::apache::airavata::model::security::AuthzToken& authzToken)
 {
   int32_t cseqid = 0;
   oprot_->writeMessageBegin("getAPIVersion", ::apache::thrift::protocol::T_CALL, cseqid);
 
   Airavata_getAPIVersion_pargs args;
+  args.authzToken = &authzToken;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -32195,6 +32240,9 @@ void AiravataClient::recv_getAPIVersion(std::string& _return)
   if (result.__isset.ase) {
     throw result.ase;
   }
+  if (result.__isset.ae) {
+    throw result.ae;
+  }
   throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getAPIVersion failed: unknown result");
 }
 
@@ -40785,7 +40833,7 @@ void AiravataProcessor::process_getAPIVersion(int32_t seqid, ::apache::thrift::p
 
   Airavata_getAPIVersion_result result;
   try {
-    iface_->getAPIVersion(result.success);
+    iface_->getAPIVersion(result.success, args.authzToken);
     result.__isset.success = true;
   } catch ( ::apache::airavata::api::error::InvalidRequestException &ire) {
     result.ire = ire;
@@ -40796,6 +40844,9 @@ void AiravataProcessor::process_getAPIVersion(int32_t seqid, ::apache::thrift::p
   } catch ( ::apache::airavata::api::error::AiravataSystemException &ase) {
     result.ase = ase;
     result.__isset.ase = true;
+  } catch ( ::apache::airavata::api::error::AuthorizationException &ae) {
+    result.ae = ae;
+    result.__isset.ae = true;
   } catch (const std::exception& e) {
     if (this->eventHandler_.get() != NULL) {
       this->eventHandler_->handlerError(ctx, "Airavata.getAPIVersion");

http://git-wip-us.apache.org/repos/asf/airavata/blob/7ab87e53/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 bc8071c..08503bd 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
@@ -32,7 +32,7 @@ namespace apache { namespace airavata { namespace api {
 class AiravataIf {
  public:
   virtual ~AiravataIf() {}
-  virtual void getAPIVersion(std::string& _return) = 0;
+  virtual void getAPIVersion(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken) = 0;
   virtual void addGateway(std::string& _return, const  ::apache::airavata::model::workspace::Gateway& gateway) = 0;
   virtual void updateGateway(const std::string& gatewayId, const  ::apache::airavata::model::workspace::Gateway& updatedGateway) = 0;
   virtual void getGateway( ::apache::airavata::model::workspace::Gateway& _return, const std::string& gatewayId) = 0;
@@ -188,7 +188,7 @@ class AiravataIfSingletonFactory : virtual public AiravataIfFactory {
 class AiravataNull : virtual public AiravataIf {
  public:
   virtual ~AiravataNull() {}
-  void getAPIVersion(std::string& /* _return */) {
+  void getAPIVersion(std::string& /* _return */, const  ::apache::airavata::model::security::AuthzToken& /* authzToken */) {
     return;
   }
   void addGateway(std::string& /* _return */, const  ::apache::airavata::model::workspace::Gateway& /* gateway */) {
@@ -615,9 +615,16 @@ class Airavata_getAPIVersion_args {
 
   virtual ~Airavata_getAPIVersion_args() throw() {}
 
+   ::apache::airavata::model::security::AuthzToken authzToken;
 
-  bool operator == (const Airavata_getAPIVersion_args & /* rhs */) const
+  void __set_authzToken(const  ::apache::airavata::model::security::AuthzToken& val) {
+    authzToken = val;
+  }
+
+  bool operator == (const Airavata_getAPIVersion_args & rhs) const
   {
+    if (!(authzToken == rhs.authzToken))
+      return false;
     return true;
   }
   bool operator != (const Airavata_getAPIVersion_args &rhs) const {
@@ -638,17 +645,19 @@ class Airavata_getAPIVersion_pargs {
 
   virtual ~Airavata_getAPIVersion_pargs() throw() {}
 
+  const  ::apache::airavata::model::security::AuthzToken* authzToken;
 
   uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
 
 };
 
 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 {
@@ -663,6 +672,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;
 
@@ -682,6 +692,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))
@@ -692,6 +706,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 {
@@ -706,11 +722,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 {
@@ -723,6 +740,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;
 
@@ -18308,8 +18326,8 @@ class AiravataClient : virtual public AiravataIf {
   boost::shared_ptr< ::apache::thrift::protocol::TProtocol> getOutputProtocol() {
     return poprot_;
   }
-  void getAPIVersion(std::string& _return);
-  void send_getAPIVersion();
+  void getAPIVersion(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken);
+  void send_getAPIVersion(const  ::apache::airavata::model::security::AuthzToken& authzToken);
   void recv_getAPIVersion(std::string& _return);
   void addGateway(std::string& _return, const  ::apache::airavata::model::workspace::Gateway& gateway);
   void send_addGateway(const  ::apache::airavata::model::workspace::Gateway& gateway);
@@ -18989,13 +19007,13 @@ class AiravataMultiface : virtual public AiravataIf {
     ifaces_.push_back(iface);
   }
  public:
-  void getAPIVersion(std::string& _return) {
+  void getAPIVersion(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken) {
     size_t sz = ifaces_.size();
     size_t i = 0;
     for (; i < (sz - 1); ++i) {
-      ifaces_[i]->getAPIVersion(_return);
+      ifaces_[i]->getAPIVersion(_return, authzToken);
     }
-    ifaces_[i]->getAPIVersion(_return);
+    ifaces_[i]->getAPIVersion(_return, authzToken);
     return;
   }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/7ab87e53/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 d027257..ea886ac 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
@@ -39,7 +39,7 @@ class AiravataHandler : virtual public AiravataIf {
     // Your initialization goes here
   }
 
-  void getAPIVersion(std::string& _return) {
+  void getAPIVersion(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken) {
     // Your implementation goes here
     printf("getAPIVersion\n");
   }

http://git-wip-us.apache.org/repos/asf/airavata/blob/7ab87e53/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavataAPI_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavataAPI_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavataAPI_types.h
index 54edb43..294487b 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavataAPI_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavataAPI_types.h
@@ -39,6 +39,7 @@
 #include "applicationInterfaceModel_types.h"
 #include "gatewayResourceProfileModel_types.h"
 #include "workflowDataModel_types.h"
+#include "securityModel_types.h"
 
 
 namespace apache { namespace airavata { namespace api {

http://git-wip-us.apache.org/repos/asf/airavata/blob/7ab87e53/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavataDataModel_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavataDataModel_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavataDataModel_types.h
index dfaad45..1ee8be5 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavataDataModel_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/airavataDataModel_types.h
@@ -33,6 +33,7 @@
 #include "workspaceModel_types.h"
 #include "airavataErrors_types.h"
 #include "messagingEvents_types.h"
+#include "securityModel_types.h"
 
 
 namespace apache { namespace airavata { namespace model {

http://git-wip-us.apache.org/repos/asf/airavata/blob/7ab87e53/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
index 4a509b2..2532766 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
@@ -17,7 +17,7 @@ use Thrift\Exception\TApplicationException;
 
 
 interface AiravataIf {
-  public function getAPIVersion();
+  public function getAPIVersion(\Airavata\Model\Security\AuthzToken $authzToken);
   public function addGateway(\Airavata\Model\Workspace\Gateway $gateway);
   public function updateGateway($gatewayId, \Airavata\Model\Workspace\Gateway $updatedGateway);
   public function getGateway($gatewayId);
@@ -157,15 +157,16 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     $this->output_ = $output ? $output : $input;
   }
 
-  public function getAPIVersion()
+  public function getAPIVersion(\Airavata\Model\Security\AuthzToken $authzToken)
   {
-    $this->send_getAPIVersion();
+    $this->send_getAPIVersion($authzToken);
     return $this->recv_getAPIVersion();
   }
 
-  public function send_getAPIVersion()
+  public function send_getAPIVersion(\Airavata\Model\Security\AuthzToken $authzToken)
   {
     $args = new \Airavata\API\Airavata_getAPIVersion_args();
+    $args->authzToken = $authzToken;
     $bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
     if ($bin_accel)
     {
@@ -213,6 +214,9 @@ class AiravataClient implements \Airavata\API\AiravataIf {
     if ($result->ase !== null) {
       throw $result->ase;
     }
+    if ($result->ae !== null) {
+      throw $result->ae;
+    }
     throw new \Exception("getAPIVersion failed: unknown result");
   }
 
@@ -7904,12 +7908,23 @@ class AiravataClient implements \Airavata\API\AiravataIf {
 class Airavata_getAPIVersion_args {
   static $_TSPEC;
 
+  public $authzToken = null;
 
-  public function __construct() {
+  public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
       self::$_TSPEC = array(
+        1 => array(
+          'var' => 'authzToken',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\Model\Security\AuthzToken',
+          ),
         );
     }
+    if (is_array($vals)) {
+      if (isset($vals['authzToken'])) {
+        $this->authzToken = $vals['authzToken'];
+      }
+    }
   }
 
   public function getName() {
@@ -7931,6 +7946,14 @@ class Airavata_getAPIVersion_args {
       }
       switch ($fid)
       {
+        case 1:
+          if ($ftype == TType::STRUCT) {
+            $this->authzToken = new \Airavata\Model\Security\AuthzToken();
+            $xfer += $this->authzToken->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -7944,6 +7967,14 @@ class Airavata_getAPIVersion_args {
   public function write($output) {
     $xfer = 0;
     $xfer += $output->writeStructBegin('Airavata_getAPIVersion_args');
+    if ($this->authzToken !== null) {
+      if (!is_object($this->authzToken)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('authzToken', TType::STRUCT, 1);
+      $xfer += $this->authzToken->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
     $xfer += $output->writeFieldStop();
     $xfer += $output->writeStructEnd();
     return $xfer;
@@ -7958,6 +7989,7 @@ class Airavata_getAPIVersion_result {
   public $ire = null;
   public $ace = null;
   public $ase = null;
+  public $ae = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -7981,6 +8013,11 @@ class Airavata_getAPIVersion_result {
           'type' => TType::STRUCT,
           'class' => '\Airavata\API\Error\AiravataSystemException',
           ),
+        4 => array(
+          'var' => 'ae',
+          'type' => TType::STRUCT,
+          'class' => '\Airavata\API\Error\AuthorizationException',
+          ),
         );
     }
     if (is_array($vals)) {
@@ -7996,6 +8033,9 @@ class Airavata_getAPIVersion_result {
       if (isset($vals['ase'])) {
         $this->ase = $vals['ase'];
       }
+      if (isset($vals['ae'])) {
+        $this->ae = $vals['ae'];
+      }
     }
   }
 
@@ -8049,6 +8089,14 @@ class Airavata_getAPIVersion_result {
             $xfer += $input->skip($ftype);
           }
           break;
+        case 4:
+          if ($ftype == TType::STRUCT) {
+            $this->ae = new \Airavata\API\Error\AuthorizationException();
+            $xfer += $this->ae->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -8082,6 +8130,11 @@ class Airavata_getAPIVersion_result {
       $xfer += $this->ase->write($output);
       $xfer += $output->writeFieldEnd();
     }
+    if ($this->ae !== null) {
+      $xfer += $output->writeFieldBegin('ae', TType::STRUCT, 4);
+      $xfer += $this->ae->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
     $xfer += $output->writeFieldStop();
     $xfer += $output->writeStructEnd();
     return $xfer;

http://git-wip-us.apache.org/repos/asf/airavata/blob/7ab87e53/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
index ebd0d04..296fce8 100755
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata-remote
@@ -23,7 +23,7 @@ if len(sys.argv) <= 1 or sys.argv[1] == '--help':
   print 'Usage: ' + sys.argv[0] + ' [-h host[:port]] [-u url] [-f[ramed]] function [arg1 [arg2...]]'
   print ''
   print 'Functions:'
-  print '  string getAPIVersion()'
+  print '  string getAPIVersion(AuthzToken authzToken)'
   print '  string addGateway(Gateway gateway)'
   print '  void updateGateway(string gatewayId, Gateway updatedGateway)'
   print '  Gateway getGateway(string gatewayId)'
@@ -202,10 +202,10 @@ client = Airavata.Client(protocol)
 transport.open()
 
 if cmd == 'getAPIVersion':
-  if len(args) != 0:
-    print 'getAPIVersion requires 0 args'
+  if len(args) != 1:
+    print 'getAPIVersion requires 1 args'
     sys.exit(1)
-  pp.pprint(client.getAPIVersion())
+  pp.pprint(client.getAPIVersion(eval(args[0]),))
 
 elif cmd == 'addGateway':
   if len(args) != 1:

http://git-wip-us.apache.org/repos/asf/airavata/blob/7ab87e53/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
index 6378dad..6a81820 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/Airavata.py
@@ -18,9 +18,12 @@ except:
 
 
 class Iface:
-  def getAPIVersion(self):
+  def getAPIVersion(self, authzToken):
     """
     Fetch Apache Airavata API version
+
+    Parameters:
+     - authzToken
     """
     pass
 
@@ -2144,16 +2147,20 @@ class Client(Iface):
       self._oprot = oprot
     self._seqid = 0
 
-  def getAPIVersion(self):
+  def getAPIVersion(self, authzToken):
     """
     Fetch Apache Airavata API version
+
+    Parameters:
+     - authzToken
     """
-    self.send_getAPIVersion()
+    self.send_getAPIVersion(authzToken)
     return self.recv_getAPIVersion()
 
-  def send_getAPIVersion(self):
+  def send_getAPIVersion(self, authzToken):
     self._oprot.writeMessageBegin('getAPIVersion', TMessageType.CALL, self._seqid)
     args = getAPIVersion_args()
+    args.authzToken = authzToken
     args.write(self._oprot)
     self._oprot.writeMessageEnd()
     self._oprot.trans.flush()
@@ -2176,6 +2183,8 @@ class Client(Iface):
       raise result.ace
     if result.ase is not None:
       raise result.ase
+    if result.ae is not None:
+      raise result.ae
     raise TApplicationException(TApplicationException.MISSING_RESULT, "getAPIVersion failed: unknown result");
 
   def addGateway(self, gateway):
@@ -8216,13 +8225,15 @@ class Processor(Iface, TProcessor):
     iprot.readMessageEnd()
     result = getAPIVersion_result()
     try:
-      result.success = self._handler.getAPIVersion()
+      result.success = self._handler.getAPIVersion(args.authzToken)
     except apache.airavata.api.error.ttypes.InvalidRequestException, ire:
       result.ire = ire
     except apache.airavata.api.error.ttypes.AiravataClientException, ace:
       result.ace = ace
     except apache.airavata.api.error.ttypes.AiravataSystemException, ase:
       result.ase = ase
+    except apache.airavata.api.error.ttypes.AuthorizationException, ae:
+      result.ae = ae
     oprot.writeMessageBegin("getAPIVersion", TMessageType.REPLY, seqid)
     result.write(oprot)
     oprot.writeMessageEnd()
@@ -10522,10 +10533,19 @@ class Processor(Iface, TProcessor):
 # HELPER FUNCTIONS AND STRUCTURES
 
 class getAPIVersion_args:
+  """
+  Attributes:
+   - authzToken
+  """
 
   thrift_spec = (
+    None, # 0
+    (1, TType.STRUCT, 'authzToken', (apache.airavata.model.security.ttypes.AuthzToken, apache.airavata.model.security.ttypes.AuthzToken.thrift_spec), None, ), # 1
   )
 
+  def __init__(self, authzToken=None,):
+    self.authzToken = authzToken
+
   def read(self, iprot):
     if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
       fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
@@ -10535,6 +10555,12 @@ class getAPIVersion_args:
       (fname, ftype, fid) = iprot.readFieldBegin()
       if ftype == TType.STOP:
         break
+      if fid == 1:
+        if ftype == TType.STRUCT:
+          self.authzToken = apache.airavata.model.security.ttypes.AuthzToken()
+          self.authzToken.read(iprot)
+        else:
+          iprot.skip(ftype)
       else:
         iprot.skip(ftype)
       iprot.readFieldEnd()
@@ -10545,10 +10571,16 @@ class getAPIVersion_args:
       oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
       return
     oprot.writeStructBegin('getAPIVersion_args')
+    if self.authzToken is not None:
+      oprot.writeFieldBegin('authzToken', TType.STRUCT, 1)
+      self.authzToken.write(oprot)
+      oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
 
   def validate(self):
+    if self.authzToken is None:
+      raise TProtocol.TProtocolException(message='Required field authzToken is unset!')
     return
 
 
@@ -10570,6 +10602,7 @@ class getAPIVersion_result:
    - ire
    - ace
    - ase
+   - ae
   """
 
   thrift_spec = (
@@ -10577,13 +10610,15 @@ class getAPIVersion_result:
     (1, TType.STRUCT, 'ire', (apache.airavata.api.error.ttypes.InvalidRequestException, apache.airavata.api.error.ttypes.InvalidRequestException.thrift_spec), None, ), # 1
     (2, TType.STRUCT, 'ace', (apache.airavata.api.error.ttypes.AiravataClientException, apache.airavata.api.error.ttypes.AiravataClientException.thrift_spec), None, ), # 2
     (3, TType.STRUCT, 'ase', (apache.airavata.api.error.ttypes.AiravataSystemException, apache.airavata.api.error.ttypes.AiravataSystemException.thrift_spec), None, ), # 3
+    (4, TType.STRUCT, 'ae', (apache.airavata.api.error.ttypes.AuthorizationException, apache.airavata.api.error.ttypes.AuthorizationException.thrift_spec), None, ), # 4
   )
 
-  def __init__(self, success=None, ire=None, ace=None, ase=None,):
+  def __init__(self, success=None, ire=None, ace=None, ase=None, ae=None,):
     self.success = success
     self.ire = ire
     self.ace = ace
     self.ase = ase
+    self.ae = ae
 
   def read(self, iprot):
     if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
@@ -10617,6 +10652,12 @@ class getAPIVersion_result:
           self.ase.read(iprot)
         else:
           iprot.skip(ftype)
+      elif fid == 4:
+        if ftype == TType.STRUCT:
+          self.ae = apache.airavata.api.error.ttypes.AuthorizationException()
+          self.ae.read(iprot)
+        else:
+          iprot.skip(ftype)
       else:
         iprot.skip(ftype)
       iprot.readFieldEnd()
@@ -10643,6 +10684,10 @@ class getAPIVersion_result:
       oprot.writeFieldBegin('ase', TType.STRUCT, 3)
       self.ase.write(oprot)
       oprot.writeFieldEnd()
+    if self.ae is not None:
+      oprot.writeFieldBegin('ae', TType.STRUCT, 4)
+      self.ae.write(oprot)
+      oprot.writeFieldEnd()
     oprot.writeFieldStop()
     oprot.writeStructEnd()
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/7ab87e53/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/ttypes.py
index 09140d0..75fe7b6 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/api/ttypes.py
@@ -16,6 +16,7 @@ import apache.airavata.model.appcatalog.appdeployment.ttypes
 import apache.airavata.model.appcatalog.appinterface.ttypes
 import apache.airavata.model.appcatalog.gatewayprofile.ttypes
 import apache.airavata.model.workflow.ttypes
+import apache.airavata.model.security.ttypes
 
 
 from thrift.transport import TTransport

http://git-wip-us.apache.org/repos/asf/airavata/blob/7ab87e53/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/ttypes.py
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/ttypes.py b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/ttypes.py
index 5356eb5..3b6f0fe 100644
--- a/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/ttypes.py
+++ b/airavata-api/airavata-client-sdks/airavata-python-sdk/src/main/resources/lib/apache/airavata/model/ttypes.py
@@ -10,6 +10,7 @@ from thrift.Thrift import TType, TMessageType, TException, TApplicationException
 import apache.airavata.model.workspace.ttypes
 import apache.airavata.api.error.ttypes
 import apache.airavata.model.messaging.event.ttypes
+import apache.airavata.model.security.ttypes
 
 
 from thrift.transport import TTransport