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 2016/03/24 19:41:40 UTC

[4/7] airavata git commit: adding API methods to get parent and child products

http://git-wip-us.apache.org/repos/asf/airavata/blob/02cbb8dc/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 262de5e..54a0771 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
@@ -42866,6 +42866,616 @@ uint32_t Airavata_registerReplicaLocation_presult::read(::apache::thrift::protoc
   return xfer;
 }
 
+
+Airavata_getParentDataProduct_args::~Airavata_getParentDataProduct_args() throw() {
+}
+
+
+uint32_t Airavata_getParentDataProduct_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*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_authzToken = false;
+  bool isset_productUri = 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_STRUCT) {
+          xfer += this->authzToken.read(iprot);
+          isset_authzToken = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->productUri);
+          isset_productUri = 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);
+  if (!isset_productUri)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t Airavata_getParentDataProduct_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("Airavata_getParentDataProduct_args");
+
+  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += this->authzToken.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("productUri", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->productUri);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+Airavata_getParentDataProduct_pargs::~Airavata_getParentDataProduct_pargs() throw() {
+}
+
+
+uint32_t Airavata_getParentDataProduct_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("Airavata_getParentDataProduct_pargs");
+
+  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += (*(this->authzToken)).write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("productUri", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString((*(this->productUri)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+Airavata_getParentDataProduct_result::~Airavata_getParentDataProduct_result() throw() {
+}
+
+
+uint32_t Airavata_getParentDataProduct_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*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;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->success.read(iprot);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          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;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t Airavata_getParentDataProduct_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += oprot->writeStructBegin("Airavata_getParentDataProduct_result");
+
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_STRUCT, 0);
+    xfer += this->success.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ire) {
+    xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
+    xfer += this->ire.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ace) {
+    xfer += oprot->writeFieldBegin("ace", ::apache::thrift::protocol::T_STRUCT, 2);
+    xfer += this->ace.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ase) {
+    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();
+  return xfer;
+}
+
+
+Airavata_getParentDataProduct_presult::~Airavata_getParentDataProduct_presult() throw() {
+}
+
+
+uint32_t Airavata_getParentDataProduct_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*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;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += (*(this->success)).read(iprot);
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          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;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+
+Airavata_getChildDataProducts_args::~Airavata_getChildDataProducts_args() throw() {
+}
+
+
+uint32_t Airavata_getChildDataProducts_args::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*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_authzToken = false;
+  bool isset_productUri = 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_STRUCT) {
+          xfer += this->authzToken.read(iprot);
+          isset_authzToken = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRING) {
+          xfer += iprot->readString(this->productUri);
+          isset_productUri = 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);
+  if (!isset_productUri)
+    throw TProtocolException(TProtocolException::INVALID_DATA);
+  return xfer;
+}
+
+uint32_t Airavata_getChildDataProducts_args::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("Airavata_getChildDataProducts_args");
+
+  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += this->authzToken.write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("productUri", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString(this->productUri);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+Airavata_getChildDataProducts_pargs::~Airavata_getChildDataProducts_pargs() throw() {
+}
+
+
+uint32_t Airavata_getChildDataProducts_pargs::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
+  xfer += oprot->writeStructBegin("Airavata_getChildDataProducts_pargs");
+
+  xfer += oprot->writeFieldBegin("authzToken", ::apache::thrift::protocol::T_STRUCT, 1);
+  xfer += (*(this->authzToken)).write(oprot);
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldBegin("productUri", ::apache::thrift::protocol::T_STRING, 2);
+  xfer += oprot->writeString((*(this->productUri)));
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+
+Airavata_getChildDataProducts_result::~Airavata_getChildDataProducts_result() throw() {
+}
+
+
+uint32_t Airavata_getChildDataProducts_result::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*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;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->success.clear();
+            uint32_t _size414;
+            ::apache::thrift::protocol::TType _etype417;
+            xfer += iprot->readListBegin(_etype417, _size414);
+            this->success.resize(_size414);
+            uint32_t _i418;
+            for (_i418 = 0; _i418 < _size414; ++_i418)
+            {
+              xfer += this->success[_i418].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          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;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t Airavata_getChildDataProducts_result::write(::apache::thrift::protocol::TProtocol* oprot) const {
+
+  uint32_t xfer = 0;
+
+  xfer += oprot->writeStructBegin("Airavata_getChildDataProducts_result");
+
+  if (this->__isset.success) {
+    xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
+    {
+      xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
+      std::vector< ::apache::airavata::model::data::replica::DataProductModel> ::const_iterator _iter419;
+      for (_iter419 = this->success.begin(); _iter419 != this->success.end(); ++_iter419)
+      {
+        xfer += (*_iter419).write(oprot);
+      }
+      xfer += oprot->writeListEnd();
+    }
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ire) {
+    xfer += oprot->writeFieldBegin("ire", ::apache::thrift::protocol::T_STRUCT, 1);
+    xfer += this->ire.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ace) {
+    xfer += oprot->writeFieldBegin("ace", ::apache::thrift::protocol::T_STRUCT, 2);
+    xfer += this->ace.write(oprot);
+    xfer += oprot->writeFieldEnd();
+  } else if (this->__isset.ase) {
+    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();
+  return xfer;
+}
+
+
+Airavata_getChildDataProducts_presult::~Airavata_getChildDataProducts_presult() throw() {
+}
+
+
+uint32_t Airavata_getChildDataProducts_presult::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  apache::thrift::protocol::TInputRecursionTracker tracker(*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;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 0:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            (*(this->success)).clear();
+            uint32_t _size420;
+            ::apache::thrift::protocol::TType _etype423;
+            xfer += iprot->readListBegin(_etype423, _size420);
+            (*(this->success)).resize(_size420);
+            uint32_t _i424;
+            for (_i424 = 0; _i424 < _size420; ++_i424)
+            {
+              xfer += (*(this->success))[_i424].read(iprot);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.success = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ire.read(iprot);
+          this->__isset.ire = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 2:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ace.read(iprot);
+          this->__isset.ace = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      case 3:
+        if (ftype == ::apache::thrift::protocol::T_STRUCT) {
+          xfer += this->ase.read(iprot);
+          this->__isset.ase = true;
+        } else {
+          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;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
 void AiravataClient::getAPIVersion(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken)
 {
   send_getAPIVersion(authzToken);
@@ -52390,23 +53000,165 @@ void AiravataClient::recv_getWorkflowTemplateId(std::string& _return)
   if (result.__isset.ae) {
     throw result.ae;
   }
-  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getWorkflowTemplateId failed: unknown result");
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getWorkflowTemplateId failed: unknown result");
+}
+
+bool AiravataClient::isWorkflowExistWithName(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& workflowName)
+{
+  send_isWorkflowExistWithName(authzToken, workflowName);
+  return recv_isWorkflowExistWithName();
+}
+
+void AiravataClient::send_isWorkflowExistWithName(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& workflowName)
+{
+  int32_t cseqid = 0;
+  oprot_->writeMessageBegin("isWorkflowExistWithName", ::apache::thrift::protocol::T_CALL, cseqid);
+
+  Airavata_isWorkflowExistWithName_pargs args;
+  args.authzToken = &authzToken;
+  args.workflowName = &workflowName;
+  args.write(oprot_);
+
+  oprot_->writeMessageEnd();
+  oprot_->getTransport()->writeEnd();
+  oprot_->getTransport()->flush();
+}
+
+bool AiravataClient::recv_isWorkflowExistWithName()
+{
+
+  int32_t rseqid = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TMessageType mtype;
+
+  iprot_->readMessageBegin(fname, mtype, rseqid);
+  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
+    ::apache::thrift::TApplicationException x;
+    x.read(iprot_);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+    throw x;
+  }
+  if (mtype != ::apache::thrift::protocol::T_REPLY) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  if (fname.compare("isWorkflowExistWithName") != 0) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  bool _return;
+  Airavata_isWorkflowExistWithName_presult result;
+  result.success = &_return;
+  result.read(iprot_);
+  iprot_->readMessageEnd();
+  iprot_->getTransport()->readEnd();
+
+  if (result.__isset.success) {
+    return _return;
+  }
+  if (result.__isset.ire) {
+    throw result.ire;
+  }
+  if (result.__isset.ace) {
+    throw result.ace;
+  }
+  if (result.__isset.ase) {
+    throw result.ase;
+  }
+  if (result.__isset.ae) {
+    throw result.ae;
+  }
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "isWorkflowExistWithName failed: unknown result");
+}
+
+void AiravataClient::registerDataProduct(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::replica::DataProductModel& dataProductModel)
+{
+  send_registerDataProduct(authzToken, dataProductModel);
+  recv_registerDataProduct(_return);
+}
+
+void AiravataClient::send_registerDataProduct(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::replica::DataProductModel& dataProductModel)
+{
+  int32_t cseqid = 0;
+  oprot_->writeMessageBegin("registerDataProduct", ::apache::thrift::protocol::T_CALL, cseqid);
+
+  Airavata_registerDataProduct_pargs args;
+  args.authzToken = &authzToken;
+  args.dataProductModel = &dataProductModel;
+  args.write(oprot_);
+
+  oprot_->writeMessageEnd();
+  oprot_->getTransport()->writeEnd();
+  oprot_->getTransport()->flush();
+}
+
+void AiravataClient::recv_registerDataProduct(std::string& _return)
+{
+
+  int32_t rseqid = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TMessageType mtype;
+
+  iprot_->readMessageBegin(fname, mtype, rseqid);
+  if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
+    ::apache::thrift::TApplicationException x;
+    x.read(iprot_);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+    throw x;
+  }
+  if (mtype != ::apache::thrift::protocol::T_REPLY) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  if (fname.compare("registerDataProduct") != 0) {
+    iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+    iprot_->readMessageEnd();
+    iprot_->getTransport()->readEnd();
+  }
+  Airavata_registerDataProduct_presult result;
+  result.success = &_return;
+  result.read(iprot_);
+  iprot_->readMessageEnd();
+  iprot_->getTransport()->readEnd();
+
+  if (result.__isset.success) {
+    // _return pointer has now been filled
+    return;
+  }
+  if (result.__isset.ire) {
+    throw result.ire;
+  }
+  if (result.__isset.ace) {
+    throw result.ace;
+  }
+  if (result.__isset.ase) {
+    throw result.ase;
+  }
+  if (result.__isset.ae) {
+    throw result.ae;
+  }
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "registerDataProduct failed: unknown result");
 }
 
-bool AiravataClient::isWorkflowExistWithName(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& workflowName)
+void AiravataClient::getDataProduct( ::apache::airavata::model::data::replica::DataProductModel& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& dataProductUri)
 {
-  send_isWorkflowExistWithName(authzToken, workflowName);
-  return recv_isWorkflowExistWithName();
+  send_getDataProduct(authzToken, dataProductUri);
+  recv_getDataProduct(_return);
 }
 
-void AiravataClient::send_isWorkflowExistWithName(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& workflowName)
+void AiravataClient::send_getDataProduct(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& dataProductUri)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("isWorkflowExistWithName", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("getDataProduct", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_isWorkflowExistWithName_pargs args;
+  Airavata_getDataProduct_pargs args;
   args.authzToken = &authzToken;
-  args.workflowName = &workflowName;
+  args.dataProductUri = &dataProductUri;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -52414,7 +53166,7 @@ void AiravataClient::send_isWorkflowExistWithName(const  ::apache::airavata::mod
   oprot_->getTransport()->flush();
 }
 
-bool AiravataClient::recv_isWorkflowExistWithName()
+void AiravataClient::recv_getDataProduct( ::apache::airavata::model::data::replica::DataProductModel& _return)
 {
 
   int32_t rseqid = 0;
@@ -52434,20 +53186,20 @@ bool AiravataClient::recv_isWorkflowExistWithName()
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("isWorkflowExistWithName") != 0) {
+  if (fname.compare("getDataProduct") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  bool _return;
-  Airavata_isWorkflowExistWithName_presult result;
+  Airavata_getDataProduct_presult result;
   result.success = &_return;
   result.read(iprot_);
   iprot_->readMessageEnd();
   iprot_->getTransport()->readEnd();
 
   if (result.__isset.success) {
-    return _return;
+    // _return pointer has now been filled
+    return;
   }
   if (result.__isset.ire) {
     throw result.ire;
@@ -52461,23 +53213,23 @@ bool AiravataClient::recv_isWorkflowExistWithName()
   if (result.__isset.ae) {
     throw result.ae;
   }
-  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "isWorkflowExistWithName failed: unknown result");
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getDataProduct failed: unknown result");
 }
 
-void AiravataClient::registerDataProduct(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::replica::DataProductModel& dataProductModel)
+void AiravataClient::registerReplicaLocation(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::replica::DataReplicaLocationModel& replicaLocationModel)
 {
-  send_registerDataProduct(authzToken, dataProductModel);
-  recv_registerDataProduct(_return);
+  send_registerReplicaLocation(authzToken, replicaLocationModel);
+  recv_registerReplicaLocation(_return);
 }
 
-void AiravataClient::send_registerDataProduct(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::replica::DataProductModel& dataProductModel)
+void AiravataClient::send_registerReplicaLocation(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::replica::DataReplicaLocationModel& replicaLocationModel)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("registerDataProduct", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("registerReplicaLocation", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_registerDataProduct_pargs args;
+  Airavata_registerReplicaLocation_pargs args;
   args.authzToken = &authzToken;
-  args.dataProductModel = &dataProductModel;
+  args.replicaLocationModel = &replicaLocationModel;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -52485,7 +53237,7 @@ void AiravataClient::send_registerDataProduct(const  ::apache::airavata::model::
   oprot_->getTransport()->flush();
 }
 
-void AiravataClient::recv_registerDataProduct(std::string& _return)
+void AiravataClient::recv_registerReplicaLocation(std::string& _return)
 {
 
   int32_t rseqid = 0;
@@ -52505,12 +53257,12 @@ void AiravataClient::recv_registerDataProduct(std::string& _return)
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("registerDataProduct") != 0) {
+  if (fname.compare("registerReplicaLocation") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  Airavata_registerDataProduct_presult result;
+  Airavata_registerReplicaLocation_presult result;
   result.success = &_return;
   result.read(iprot_);
   iprot_->readMessageEnd();
@@ -52532,23 +53284,23 @@ void AiravataClient::recv_registerDataProduct(std::string& _return)
   if (result.__isset.ae) {
     throw result.ae;
   }
-  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "registerDataProduct failed: unknown result");
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "registerReplicaLocation failed: unknown result");
 }
 
-void AiravataClient::getDataProduct( ::apache::airavata::model::data::replica::DataProductModel& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& dataProductUri)
+void AiravataClient::getParentDataProduct( ::apache::airavata::model::data::replica::DataProductModel& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& productUri)
 {
-  send_getDataProduct(authzToken, dataProductUri);
-  recv_getDataProduct(_return);
+  send_getParentDataProduct(authzToken, productUri);
+  recv_getParentDataProduct(_return);
 }
 
-void AiravataClient::send_getDataProduct(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& dataProductUri)
+void AiravataClient::send_getParentDataProduct(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& productUri)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("getDataProduct", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("getParentDataProduct", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_getDataProduct_pargs args;
+  Airavata_getParentDataProduct_pargs args;
   args.authzToken = &authzToken;
-  args.dataProductUri = &dataProductUri;
+  args.productUri = &productUri;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -52556,7 +53308,7 @@ void AiravataClient::send_getDataProduct(const  ::apache::airavata::model::secur
   oprot_->getTransport()->flush();
 }
 
-void AiravataClient::recv_getDataProduct( ::apache::airavata::model::data::replica::DataProductModel& _return)
+void AiravataClient::recv_getParentDataProduct( ::apache::airavata::model::data::replica::DataProductModel& _return)
 {
 
   int32_t rseqid = 0;
@@ -52576,12 +53328,12 @@ void AiravataClient::recv_getDataProduct( ::apache::airavata::model::data::repli
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("getDataProduct") != 0) {
+  if (fname.compare("getParentDataProduct") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  Airavata_getDataProduct_presult result;
+  Airavata_getParentDataProduct_presult result;
   result.success = &_return;
   result.read(iprot_);
   iprot_->readMessageEnd();
@@ -52603,23 +53355,23 @@ void AiravataClient::recv_getDataProduct( ::apache::airavata::model::data::repli
   if (result.__isset.ae) {
     throw result.ae;
   }
-  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getDataProduct failed: unknown result");
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getParentDataProduct failed: unknown result");
 }
 
-void AiravataClient::registerReplicaLocation(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::replica::DataReplicaLocationModel& replicaLocationModel)
+void AiravataClient::getChildDataProducts(std::vector< ::apache::airavata::model::data::replica::DataProductModel> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& productUri)
 {
-  send_registerReplicaLocation(authzToken, replicaLocationModel);
-  recv_registerReplicaLocation(_return);
+  send_getChildDataProducts(authzToken, productUri);
+  recv_getChildDataProducts(_return);
 }
 
-void AiravataClient::send_registerReplicaLocation(const  ::apache::airavata::model::security::AuthzToken& authzToken, const  ::apache::airavata::model::data::replica::DataReplicaLocationModel& replicaLocationModel)
+void AiravataClient::send_getChildDataProducts(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& productUri)
 {
   int32_t cseqid = 0;
-  oprot_->writeMessageBegin("registerReplicaLocation", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("getChildDataProducts", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_registerReplicaLocation_pargs args;
+  Airavata_getChildDataProducts_pargs args;
   args.authzToken = &authzToken;
-  args.replicaLocationModel = &replicaLocationModel;
+  args.productUri = &productUri;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -52627,7 +53379,7 @@ void AiravataClient::send_registerReplicaLocation(const  ::apache::airavata::mod
   oprot_->getTransport()->flush();
 }
 
-void AiravataClient::recv_registerReplicaLocation(std::string& _return)
+void AiravataClient::recv_getChildDataProducts(std::vector< ::apache::airavata::model::data::replica::DataProductModel> & _return)
 {
 
   int32_t rseqid = 0;
@@ -52647,12 +53399,12 @@ void AiravataClient::recv_registerReplicaLocation(std::string& _return)
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  if (fname.compare("registerReplicaLocation") != 0) {
+  if (fname.compare("getChildDataProducts") != 0) {
     iprot_->skip(::apache::thrift::protocol::T_STRUCT);
     iprot_->readMessageEnd();
     iprot_->getTransport()->readEnd();
   }
-  Airavata_registerReplicaLocation_presult result;
+  Airavata_getChildDataProducts_presult result;
   result.success = &_return;
   result.read(iprot_);
   iprot_->readMessageEnd();
@@ -52674,7 +53426,7 @@ void AiravataClient::recv_registerReplicaLocation(std::string& _return)
   if (result.__isset.ae) {
     throw result.ae;
   }
-  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "registerReplicaLocation failed: unknown result");
+  throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getChildDataProducts failed: unknown result");
 }
 
 bool AiravataProcessor::dispatchCall(::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, const std::string& fname, int32_t seqid, void* callContext) {
@@ -61744,6 +62496,138 @@ void AiravataProcessor::process_registerReplicaLocation(int32_t seqid, ::apache:
   }
 }
 
+void AiravataProcessor::process_getParentDataProduct(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext)
+{
+  void* ctx = NULL;
+  if (this->eventHandler_.get() != NULL) {
+    ctx = this->eventHandler_->getContext("Airavata.getParentDataProduct", callContext);
+  }
+  ::apache::thrift::TProcessorContextFreer freer(this->eventHandler_.get(), ctx, "Airavata.getParentDataProduct");
+
+  if (this->eventHandler_.get() != NULL) {
+    this->eventHandler_->preRead(ctx, "Airavata.getParentDataProduct");
+  }
+
+  Airavata_getParentDataProduct_args args;
+  args.read(iprot);
+  iprot->readMessageEnd();
+  uint32_t bytes = iprot->getTransport()->readEnd();
+
+  if (this->eventHandler_.get() != NULL) {
+    this->eventHandler_->postRead(ctx, "Airavata.getParentDataProduct", bytes);
+  }
+
+  Airavata_getParentDataProduct_result result;
+  try {
+    iface_->getParentDataProduct(result.success, args.authzToken, args.productUri);
+    result.__isset.success = true;
+  } catch ( ::apache::airavata::api::error::InvalidRequestException &ire) {
+    result.ire = ire;
+    result.__isset.ire = true;
+  } catch ( ::apache::airavata::api::error::AiravataClientException &ace) {
+    result.ace = ace;
+    result.__isset.ace = true;
+  } 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.getParentDataProduct");
+    }
+
+    ::apache::thrift::TApplicationException x(e.what());
+    oprot->writeMessageBegin("getParentDataProduct", ::apache::thrift::protocol::T_EXCEPTION, seqid);
+    x.write(oprot);
+    oprot->writeMessageEnd();
+    oprot->getTransport()->writeEnd();
+    oprot->getTransport()->flush();
+    return;
+  }
+
+  if (this->eventHandler_.get() != NULL) {
+    this->eventHandler_->preWrite(ctx, "Airavata.getParentDataProduct");
+  }
+
+  oprot->writeMessageBegin("getParentDataProduct", ::apache::thrift::protocol::T_REPLY, seqid);
+  result.write(oprot);
+  oprot->writeMessageEnd();
+  bytes = oprot->getTransport()->writeEnd();
+  oprot->getTransport()->flush();
+
+  if (this->eventHandler_.get() != NULL) {
+    this->eventHandler_->postWrite(ctx, "Airavata.getParentDataProduct", bytes);
+  }
+}
+
+void AiravataProcessor::process_getChildDataProducts(int32_t seqid, ::apache::thrift::protocol::TProtocol* iprot, ::apache::thrift::protocol::TProtocol* oprot, void* callContext)
+{
+  void* ctx = NULL;
+  if (this->eventHandler_.get() != NULL) {
+    ctx = this->eventHandler_->getContext("Airavata.getChildDataProducts", callContext);
+  }
+  ::apache::thrift::TProcessorContextFreer freer(this->eventHandler_.get(), ctx, "Airavata.getChildDataProducts");
+
+  if (this->eventHandler_.get() != NULL) {
+    this->eventHandler_->preRead(ctx, "Airavata.getChildDataProducts");
+  }
+
+  Airavata_getChildDataProducts_args args;
+  args.read(iprot);
+  iprot->readMessageEnd();
+  uint32_t bytes = iprot->getTransport()->readEnd();
+
+  if (this->eventHandler_.get() != NULL) {
+    this->eventHandler_->postRead(ctx, "Airavata.getChildDataProducts", bytes);
+  }
+
+  Airavata_getChildDataProducts_result result;
+  try {
+    iface_->getChildDataProducts(result.success, args.authzToken, args.productUri);
+    result.__isset.success = true;
+  } catch ( ::apache::airavata::api::error::InvalidRequestException &ire) {
+    result.ire = ire;
+    result.__isset.ire = true;
+  } catch ( ::apache::airavata::api::error::AiravataClientException &ace) {
+    result.ace = ace;
+    result.__isset.ace = true;
+  } 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.getChildDataProducts");
+    }
+
+    ::apache::thrift::TApplicationException x(e.what());
+    oprot->writeMessageBegin("getChildDataProducts", ::apache::thrift::protocol::T_EXCEPTION, seqid);
+    x.write(oprot);
+    oprot->writeMessageEnd();
+    oprot->getTransport()->writeEnd();
+    oprot->getTransport()->flush();
+    return;
+  }
+
+  if (this->eventHandler_.get() != NULL) {
+    this->eventHandler_->preWrite(ctx, "Airavata.getChildDataProducts");
+  }
+
+  oprot->writeMessageBegin("getChildDataProducts", ::apache::thrift::protocol::T_REPLY, seqid);
+  result.write(oprot);
+  oprot->writeMessageEnd();
+  bytes = oprot->getTransport()->writeEnd();
+  oprot->getTransport()->flush();
+
+  if (this->eventHandler_.get() != NULL) {
+    this->eventHandler_->postWrite(ctx, "Airavata.getChildDataProducts", bytes);
+  }
+}
+
 ::boost::shared_ptr< ::apache::thrift::TProcessor > AiravataProcessorFactory::getProcessor(const ::apache::thrift::TConnectionInfo& connInfo) {
   ::apache::thrift::ReleaseHandler< AiravataIfFactory > cleanup(handlerFactory_);
   ::boost::shared_ptr< AiravataIf > handler(handlerFactory_->getHandler(connInfo), cleanup);
@@ -73807,7 +74691,109 @@ void AiravataConcurrentClient::recv_getGatewayComputeResourcePreference( ::apach
         iprot_->readMessageEnd();
         iprot_->getTransport()->readEnd();
       }
-      if (fname.compare("getGatewayComputeResourcePreference") != 0) {
+      if (fname.compare("getGatewayComputeResourcePreference") != 0) {
+        iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+        iprot_->readMessageEnd();
+        iprot_->getTransport()->readEnd();
+
+        // in a bad state, don't commit
+        using ::apache::thrift::protocol::TProtocolException;
+        throw TProtocolException(TProtocolException::INVALID_DATA);
+      }
+      Airavata_getGatewayComputeResourcePreference_presult result;
+      result.success = &_return;
+      result.read(iprot_);
+      iprot_->readMessageEnd();
+      iprot_->getTransport()->readEnd();
+
+      if (result.__isset.success) {
+        // _return pointer has now been filled
+        sentry.commit();
+        return;
+      }
+      if (result.__isset.ire) {
+        sentry.commit();
+        throw result.ire;
+      }
+      if (result.__isset.ace) {
+        sentry.commit();
+        throw result.ace;
+      }
+      if (result.__isset.ase) {
+        sentry.commit();
+        throw result.ase;
+      }
+      if (result.__isset.ae) {
+        sentry.commit();
+        throw result.ae;
+      }
+      // in a bad state, don't commit
+      throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getGatewayComputeResourcePreference failed: unknown result");
+    }
+    // seqid != rseqid
+    this->sync_.updatePending(fname, mtype, rseqid);
+
+    // this will temporarily unlock the readMutex, and let other clients get work done
+    this->sync_.waitForWork(seqid);
+  } // end while(true)
+}
+
+void AiravataConcurrentClient::getGatewayStoragePreference( ::apache::airavata::model::appcatalog::gatewayprofile::StoragePreference& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& storageResourceId)
+{
+  int32_t seqid = send_getGatewayStoragePreference(authzToken, gatewayID, storageResourceId);
+  recv_getGatewayStoragePreference(_return, seqid);
+}
+
+int32_t AiravataConcurrentClient::send_getGatewayStoragePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& storageResourceId)
+{
+  int32_t cseqid = this->sync_.generateSeqId();
+  ::apache::thrift::async::TConcurrentSendSentry sentry(&this->sync_);
+  oprot_->writeMessageBegin("getGatewayStoragePreference", ::apache::thrift::protocol::T_CALL, cseqid);
+
+  Airavata_getGatewayStoragePreference_pargs args;
+  args.authzToken = &authzToken;
+  args.gatewayID = &gatewayID;
+  args.storageResourceId = &storageResourceId;
+  args.write(oprot_);
+
+  oprot_->writeMessageEnd();
+  oprot_->getTransport()->writeEnd();
+  oprot_->getTransport()->flush();
+
+  sentry.commit();
+  return cseqid;
+}
+
+void AiravataConcurrentClient::recv_getGatewayStoragePreference( ::apache::airavata::model::appcatalog::gatewayprofile::StoragePreference& _return, const int32_t seqid)
+{
+
+  int32_t rseqid = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TMessageType mtype;
+
+  // the read mutex gets dropped and reacquired as part of waitForWork()
+  // The destructor of this sentry wakes up other clients
+  ::apache::thrift::async::TConcurrentRecvSentry sentry(&this->sync_, seqid);
+
+  while(true) {
+    if(!this->sync_.getPending(fname, mtype, rseqid)) {
+      iprot_->readMessageBegin(fname, mtype, rseqid);
+    }
+    if(seqid == rseqid) {
+      if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
+        ::apache::thrift::TApplicationException x;
+        x.read(iprot_);
+        iprot_->readMessageEnd();
+        iprot_->getTransport()->readEnd();
+        sentry.commit();
+        throw x;
+      }
+      if (mtype != ::apache::thrift::protocol::T_REPLY) {
+        iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+        iprot_->readMessageEnd();
+        iprot_->getTransport()->readEnd();
+      }
+      if (fname.compare("getGatewayStoragePreference") != 0) {
         iprot_->skip(::apache::thrift::protocol::T_STRUCT);
         iprot_->readMessageEnd();
         iprot_->getTransport()->readEnd();
@@ -73816,7 +74802,7 @@ void AiravataConcurrentClient::recv_getGatewayComputeResourcePreference( ::apach
         using ::apache::thrift::protocol::TProtocolException;
         throw TProtocolException(TProtocolException::INVALID_DATA);
       }
-      Airavata_getGatewayComputeResourcePreference_presult result;
+      Airavata_getGatewayStoragePreference_presult result;
       result.success = &_return;
       result.read(iprot_);
       iprot_->readMessageEnd();
@@ -73844,7 +74830,7 @@ void AiravataConcurrentClient::recv_getGatewayComputeResourcePreference( ::apach
         throw result.ae;
       }
       // in a bad state, don't commit
-      throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getGatewayComputeResourcePreference failed: unknown result");
+      throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getGatewayStoragePreference failed: unknown result");
     }
     // seqid != rseqid
     this->sync_.updatePending(fname, mtype, rseqid);
@@ -73854,22 +74840,21 @@ void AiravataConcurrentClient::recv_getGatewayComputeResourcePreference( ::apach
   } // end while(true)
 }
 
-void AiravataConcurrentClient::getGatewayStoragePreference( ::apache::airavata::model::appcatalog::gatewayprofile::StoragePreference& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& storageResourceId)
+void AiravataConcurrentClient::getAllGatewayComputeResourcePreferences(std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID)
 {
-  int32_t seqid = send_getGatewayStoragePreference(authzToken, gatewayID, storageResourceId);
-  recv_getGatewayStoragePreference(_return, seqid);
+  int32_t seqid = send_getAllGatewayComputeResourcePreferences(authzToken, gatewayID);
+  recv_getAllGatewayComputeResourcePreferences(_return, seqid);
 }
 
-int32_t AiravataConcurrentClient::send_getGatewayStoragePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& storageResourceId)
+int32_t AiravataConcurrentClient::send_getAllGatewayComputeResourcePreferences(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID)
 {
   int32_t cseqid = this->sync_.generateSeqId();
   ::apache::thrift::async::TConcurrentSendSentry sentry(&this->sync_);
-  oprot_->writeMessageBegin("getGatewayStoragePreference", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("getAllGatewayComputeResourcePreferences", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_getGatewayStoragePreference_pargs args;
+  Airavata_getAllGatewayComputeResourcePreferences_pargs args;
   args.authzToken = &authzToken;
   args.gatewayID = &gatewayID;
-  args.storageResourceId = &storageResourceId;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -73880,7 +74865,7 @@ int32_t AiravataConcurrentClient::send_getGatewayStoragePreference(const  ::apac
   return cseqid;
 }
 
-void AiravataConcurrentClient::recv_getGatewayStoragePreference( ::apache::airavata::model::appcatalog::gatewayprofile::StoragePreference& _return, const int32_t seqid)
+void AiravataConcurrentClient::recv_getAllGatewayComputeResourcePreferences(std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference> & _return, const int32_t seqid)
 {
 
   int32_t rseqid = 0;
@@ -73909,7 +74894,7 @@ void AiravataConcurrentClient::recv_getGatewayStoragePreference( ::apache::airav
         iprot_->readMessageEnd();
         iprot_->getTransport()->readEnd();
       }
-      if (fname.compare("getGatewayStoragePreference") != 0) {
+      if (fname.compare("getAllGatewayComputeResourcePreferences") != 0) {
         iprot_->skip(::apache::thrift::protocol::T_STRUCT);
         iprot_->readMessageEnd();
         iprot_->getTransport()->readEnd();
@@ -73918,7 +74903,7 @@ void AiravataConcurrentClient::recv_getGatewayStoragePreference( ::apache::airav
         using ::apache::thrift::protocol::TProtocolException;
         throw TProtocolException(TProtocolException::INVALID_DATA);
       }
-      Airavata_getGatewayStoragePreference_presult result;
+      Airavata_getAllGatewayComputeResourcePreferences_presult result;
       result.success = &_return;
       result.read(iprot_);
       iprot_->readMessageEnd();
@@ -73946,7 +74931,7 @@ void AiravataConcurrentClient::recv_getGatewayStoragePreference( ::apache::airav
         throw result.ae;
       }
       // in a bad state, don't commit
-      throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getGatewayStoragePreference failed: unknown result");
+      throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getAllGatewayComputeResourcePreferences failed: unknown result");
     }
     // seqid != rseqid
     this->sync_.updatePending(fname, mtype, rseqid);
@@ -73956,19 +74941,19 @@ void AiravataConcurrentClient::recv_getGatewayStoragePreference( ::apache::airav
   } // end while(true)
 }
 
-void AiravataConcurrentClient::getAllGatewayComputeResourcePreferences(std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID)
+void AiravataConcurrentClient::getAllGatewayStoragePreferences(std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::StoragePreference> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID)
 {
-  int32_t seqid = send_getAllGatewayComputeResourcePreferences(authzToken, gatewayID);
-  recv_getAllGatewayComputeResourcePreferences(_return, seqid);
+  int32_t seqid = send_getAllGatewayStoragePreferences(authzToken, gatewayID);
+  recv_getAllGatewayStoragePreferences(_return, seqid);
 }
 
-int32_t AiravataConcurrentClient::send_getAllGatewayComputeResourcePreferences(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID)
+int32_t AiravataConcurrentClient::send_getAllGatewayStoragePreferences(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID)
 {
   int32_t cseqid = this->sync_.generateSeqId();
   ::apache::thrift::async::TConcurrentSendSentry sentry(&this->sync_);
-  oprot_->writeMessageBegin("getAllGatewayComputeResourcePreferences", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("getAllGatewayStoragePreferences", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_getAllGatewayComputeResourcePreferences_pargs args;
+  Airavata_getAllGatewayStoragePreferences_pargs args;
   args.authzToken = &authzToken;
   args.gatewayID = &gatewayID;
   args.write(oprot_);
@@ -73981,7 +74966,7 @@ int32_t AiravataConcurrentClient::send_getAllGatewayComputeResourcePreferences(c
   return cseqid;
 }
 
-void AiravataConcurrentClient::recv_getAllGatewayComputeResourcePreferences(std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference> & _return, const int32_t seqid)
+void AiravataConcurrentClient::recv_getAllGatewayStoragePreferences(std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::StoragePreference> & _return, const int32_t seqid)
 {
 
   int32_t rseqid = 0;
@@ -74010,7 +74995,7 @@ void AiravataConcurrentClient::recv_getAllGatewayComputeResourcePreferences(std:
         iprot_->readMessageEnd();
         iprot_->getTransport()->readEnd();
       }
-      if (fname.compare("getAllGatewayComputeResourcePreferences") != 0) {
+      if (fname.compare("getAllGatewayStoragePreferences") != 0) {
         iprot_->skip(::apache::thrift::protocol::T_STRUCT);
         iprot_->readMessageEnd();
         iprot_->getTransport()->readEnd();
@@ -74019,7 +75004,7 @@ void AiravataConcurrentClient::recv_getAllGatewayComputeResourcePreferences(std:
         using ::apache::thrift::protocol::TProtocolException;
         throw TProtocolException(TProtocolException::INVALID_DATA);
       }
-      Airavata_getAllGatewayComputeResourcePreferences_presult result;
+      Airavata_getAllGatewayStoragePreferences_presult result;
       result.success = &_return;
       result.read(iprot_);
       iprot_->readMessageEnd();
@@ -74047,7 +75032,7 @@ void AiravataConcurrentClient::recv_getAllGatewayComputeResourcePreferences(std:
         throw result.ae;
       }
       // in a bad state, don't commit
-      throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getAllGatewayComputeResourcePreferences failed: unknown result");
+      throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getAllGatewayStoragePreferences failed: unknown result");
     }
     // seqid != rseqid
     this->sync_.updatePending(fname, mtype, rseqid);
@@ -74057,21 +75042,20 @@ void AiravataConcurrentClient::recv_getAllGatewayComputeResourcePreferences(std:
   } // end while(true)
 }
 
-void AiravataConcurrentClient::getAllGatewayStoragePreferences(std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::StoragePreference> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID)
+void AiravataConcurrentClient::getAllGatewayResourceProfiles(std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::GatewayResourceProfile> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken)
 {
-  int32_t seqid = send_getAllGatewayStoragePreferences(authzToken, gatewayID);
-  recv_getAllGatewayStoragePreferences(_return, seqid);
+  int32_t seqid = send_getAllGatewayResourceProfiles(authzToken);
+  recv_getAllGatewayResourceProfiles(_return, seqid);
 }
 
-int32_t AiravataConcurrentClient::send_getAllGatewayStoragePreferences(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID)
+int32_t AiravataConcurrentClient::send_getAllGatewayResourceProfiles(const  ::apache::airavata::model::security::AuthzToken& authzToken)
 {
   int32_t cseqid = this->sync_.generateSeqId();
   ::apache::thrift::async::TConcurrentSendSentry sentry(&this->sync_);
-  oprot_->writeMessageBegin("getAllGatewayStoragePreferences", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("getAllGatewayResourceProfiles", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_getAllGatewayStoragePreferences_pargs args;
+  Airavata_getAllGatewayResourceProfiles_pargs args;
   args.authzToken = &authzToken;
-  args.gatewayID = &gatewayID;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -74082,7 +75066,7 @@ int32_t AiravataConcurrentClient::send_getAllGatewayStoragePreferences(const  ::
   return cseqid;
 }
 
-void AiravataConcurrentClient::recv_getAllGatewayStoragePreferences(std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::StoragePreference> & _return, const int32_t seqid)
+void AiravataConcurrentClient::recv_getAllGatewayResourceProfiles(std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::GatewayResourceProfile> & _return, const int32_t seqid)
 {
 
   int32_t rseqid = 0;
@@ -74111,7 +75095,7 @@ void AiravataConcurrentClient::recv_getAllGatewayStoragePreferences(std::vector<
         iprot_->readMessageEnd();
         iprot_->getTransport()->readEnd();
       }
-      if (fname.compare("getAllGatewayStoragePreferences") != 0) {
+      if (fname.compare("getAllGatewayResourceProfiles") != 0) {
         iprot_->skip(::apache::thrift::protocol::T_STRUCT);
         iprot_->readMessageEnd();
         iprot_->getTransport()->readEnd();
@@ -74120,7 +75104,7 @@ void AiravataConcurrentClient::recv_getAllGatewayStoragePreferences(std::vector<
         using ::apache::thrift::protocol::TProtocolException;
         throw TProtocolException(TProtocolException::INVALID_DATA);
       }
-      Airavata_getAllGatewayStoragePreferences_presult result;
+      Airavata_getAllGatewayResourceProfiles_presult result;
       result.success = &_return;
       result.read(iprot_);
       iprot_->readMessageEnd();
@@ -74148,7 +75132,7 @@ void AiravataConcurrentClient::recv_getAllGatewayStoragePreferences(std::vector<
         throw result.ae;
       }
       // in a bad state, don't commit
-      throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getAllGatewayStoragePreferences failed: unknown result");
+      throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getAllGatewayResourceProfiles failed: unknown result");
     }
     // seqid != rseqid
     this->sync_.updatePending(fname, mtype, rseqid);
@@ -74158,20 +75142,23 @@ void AiravataConcurrentClient::recv_getAllGatewayStoragePreferences(std::vector<
   } // end while(true)
 }
 
-void AiravataConcurrentClient::getAllGatewayResourceProfiles(std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::GatewayResourceProfile> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken)
+bool AiravataConcurrentClient::updateGatewayComputeResourcePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& computeResourceId, const  ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference& computeResourcePreference)
 {
-  int32_t seqid = send_getAllGatewayResourceProfiles(authzToken);
-  recv_getAllGatewayResourceProfiles(_return, seqid);
+  int32_t seqid = send_updateGatewayComputeResourcePreference(authzToken, gatewayID, computeResourceId, computeResourcePreference);
+  return recv_updateGatewayComputeResourcePreference(seqid);
 }
 
-int32_t AiravataConcurrentClient::send_getAllGatewayResourceProfiles(const  ::apache::airavata::model::security::AuthzToken& authzToken)
+int32_t AiravataConcurrentClient::send_updateGatewayComputeResourcePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& computeResourceId, const  ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference& computeResourcePreference)
 {
   int32_t cseqid = this->sync_.generateSeqId();
   ::apache::thrift::async::TConcurrentSendSentry sentry(&this->sync_);
-  oprot_->writeMessageBegin("getAllGatewayResourceProfiles", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("updateGatewayComputeResourcePreference", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_getAllGatewayResourceProfiles_pargs args;
+  Airavata_updateGatewayComputeResourcePreference_pargs args;
   args.authzToken = &authzToken;
+  args.gatewayID = &gatewayID;
+  args.computeResourceId = &computeResourceId;
+  args.computeResourcePreference = &computeResourcePreference;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -74182,7 +75169,7 @@ int32_t AiravataConcurrentClient::send_getAllGatewayResourceProfiles(const  ::ap
   return cseqid;
 }
 
-void AiravataConcurrentClient::recv_getAllGatewayResourceProfiles(std::vector< ::apache::airavata::model::appcatalog::gatewayprofile::GatewayResourceProfile> & _return, const int32_t seqid)
+bool AiravataConcurrentClient::recv_updateGatewayComputeResourcePreference(const int32_t seqid)
 {
 
   int32_t rseqid = 0;
@@ -74211,7 +75198,7 @@ void AiravataConcurrentClient::recv_getAllGatewayResourceProfiles(std::vector< :
         iprot_->readMessageEnd();
         iprot_->getTransport()->readEnd();
       }
-      if (fname.compare("getAllGatewayResourceProfiles") != 0) {
+      if (fname.compare("updateGatewayComputeResourcePreference") != 0) {
         iprot_->skip(::apache::thrift::protocol::T_STRUCT);
         iprot_->readMessageEnd();
         iprot_->getTransport()->readEnd();
@@ -74220,16 +75207,16 @@ void AiravataConcurrentClient::recv_getAllGatewayResourceProfiles(std::vector< :
         using ::apache::thrift::protocol::TProtocolException;
         throw TProtocolException(TProtocolException::INVALID_DATA);
       }
-      Airavata_getAllGatewayResourceProfiles_presult result;
+      bool _return;
+      Airavata_updateGatewayComputeResourcePreference_presult result;
       result.success = &_return;
       result.read(iprot_);
       iprot_->readMessageEnd();
       iprot_->getTransport()->readEnd();
 
       if (result.__isset.success) {
-        // _return pointer has now been filled
         sentry.commit();
-        return;
+        return _return;
       }
       if (result.__isset.ire) {
         sentry.commit();
@@ -74248,7 +75235,7 @@ void AiravataConcurrentClient::recv_getAllGatewayResourceProfiles(std::vector< :
         throw result.ae;
       }
       // in a bad state, don't commit
-      throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getAllGatewayResourceProfiles failed: unknown result");
+      throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "updateGatewayComputeResourcePreference failed: unknown result");
     }
     // seqid != rseqid
     this->sync_.updatePending(fname, mtype, rseqid);
@@ -74258,23 +75245,125 @@ void AiravataConcurrentClient::recv_getAllGatewayResourceProfiles(std::vector< :
   } // end while(true)
 }
 
-bool AiravataConcurrentClient::updateGatewayComputeResourcePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& computeResourceId, const  ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference& computeResourcePreference)
+bool AiravataConcurrentClient::updateGatewayStoragePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& storageId, const  ::apache::airavata::model::appcatalog::gatewayprofile::StoragePreference& storagePreference)
 {
-  int32_t seqid = send_updateGatewayComputeResourcePreference(authzToken, gatewayID, computeResourceId, computeResourcePreference);
-  return recv_updateGatewayComputeResourcePreference(seqid);
+  int32_t seqid = send_updateGatewayStoragePreference(authzToken, gatewayID, storageId, storagePreference);
+  return recv_updateGatewayStoragePreference(seqid);
 }
 
-int32_t AiravataConcurrentClient::send_updateGatewayComputeResourcePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& computeResourceId, const  ::apache::airavata::model::appcatalog::gatewayprofile::ComputeResourcePreference& computeResourcePreference)
+int32_t AiravataConcurrentClient::send_updateGatewayStoragePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& storageId, const  ::apache::airavata::model::appcatalog::gatewayprofile::StoragePreference& storagePreference)
 {
   int32_t cseqid = this->sync_.generateSeqId();
   ::apache::thrift::async::TConcurrentSendSentry sentry(&this->sync_);
-  oprot_->writeMessageBegin("updateGatewayComputeResourcePreference", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("updateGatewayStoragePreference", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_updateGatewayComputeResourcePreference_pargs args;
+  Airavata_updateGatewayStoragePreference_pargs args;
+  args.authzToken = &authzToken;
+  args.gatewayID = &gatewayID;
+  args.storageId = &storageId;
+  args.storagePreference = &storagePreference;
+  args.write(oprot_);
+
+  oprot_->writeMessageEnd();
+  oprot_->getTransport()->writeEnd();
+  oprot_->getTransport()->flush();
+
+  sentry.commit();
+  return cseqid;
+}
+
+bool AiravataConcurrentClient::recv_updateGatewayStoragePreference(const int32_t seqid)
+{
+
+  int32_t rseqid = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TMessageType mtype;
+
+  // the read mutex gets dropped and reacquired as part of waitForWork()
+  // The destructor of this sentry wakes up other clients
+  ::apache::thrift::async::TConcurrentRecvSentry sentry(&this->sync_, seqid);
+
+  while(true) {
+    if(!this->sync_.getPending(fname, mtype, rseqid)) {
+      iprot_->readMessageBegin(fname, mtype, rseqid);
+    }
+    if(seqid == rseqid) {
+      if (mtype == ::apache::thrift::protocol::T_EXCEPTION) {
+        ::apache::thrift::TApplicationException x;
+        x.read(iprot_);
+        iprot_->readMessageEnd();
+        iprot_->getTransport()->readEnd();
+        sentry.commit();
+        throw x;
+      }
+      if (mtype != ::apache::thrift::protocol::T_REPLY) {
+        iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+        iprot_->readMessageEnd();
+        iprot_->getTransport()->readEnd();
+      }
+      if (fname.compare("updateGatewayStoragePreference") != 0) {
+        iprot_->skip(::apache::thrift::protocol::T_STRUCT);
+        iprot_->readMessageEnd();
+        iprot_->getTransport()->readEnd();
+
+        // in a bad state, don't commit
+        using ::apache::thrift::protocol::TProtocolException;
+        throw TProtocolException(TProtocolException::INVALID_DATA);
+      }
+      bool _return;
+      Airavata_updateGatewayStoragePreference_presult result;
+      result.success = &_return;
+      result.read(iprot_);
+      iprot_->readMessageEnd();
+      iprot_->getTransport()->readEnd();
+
+      if (result.__isset.success) {
+        sentry.commit();
+        return _return;
+      }
+      if (result.__isset.ire) {
+        sentry.commit();
+        throw result.ire;
+      }
+      if (result.__isset.ace) {
+        sentry.commit();
+        throw result.ace;
+      }
+      if (result.__isset.ase) {
+        sentry.commit();
+        throw result.ase;
+      }
+      if (result.__isset.ae) {
+        sentry.commit();
+        throw result.ae;
+      }
+      // in a bad state, don't commit
+      throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "updateGatewayStoragePreference failed: unknown result");
+    }
+    // seqid != rseqid
+    this->sync_.updatePending(fname, mtype, rseqid);
+
+    // this will temporarily unlock the readMutex, and let other clients get work done
+    this->sync_.waitForWork(seqid);
+  } // end while(true)
+}
+
+bool AiravataConcurrentClient::deleteGatewayComputeResourcePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& computeResourceId)
+{
+  int32_t seqid = send_deleteGatewayComputeResourcePreference(authzToken, gatewayID, computeResourceId);
+  return recv_deleteGatewayComputeResourcePreference(seqid);
+}
+
+int32_t AiravataConcurrentClient::send_deleteGatewayComputeResourcePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& computeResourceId)
+{
+  int32_t cseqid = this->sync_.generateSeqId();
+  ::apache::thrift::async::TConcurrentSendSentry sentry(&this->sync_);
+  oprot_->writeMessageBegin("deleteGatewayComputeResourcePreference", ::apache::thrift::protocol::T_CALL, cseqid);
+
+  Airavata_deleteGatewayComputeResourcePreference_pargs args;
   args.authzToken = &authzToken;
   args.gatewayID = &gatewayID;
   args.computeResourceId = &computeResourceId;
-  args.computeResourcePreference = &computeResourcePreference;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -74285,7 +75374,7 @@ int32_t AiravataConcurrentClient::send_updateGatewayComputeResourcePreference(co
   return cseqid;
 }
 
-bool AiravataConcurrentClient::recv_updateGatewayComputeResourcePreference(const int32_t seqid)
+bool AiravataConcurrentClient::recv_deleteGatewayComputeResourcePreference(const int32_t seqid)
 {
 
   int32_t rseqid = 0;
@@ -74314,7 +75403,7 @@ bool AiravataConcurrentClient::recv_updateGatewayComputeResourcePreference(const
         iprot_->readMessageEnd();
         iprot_->getTransport()->readEnd();
       }
-      if (fname.compare("updateGatewayComputeResourcePreference") != 0) {
+      if (fname.compare("deleteGatewayComputeResourcePreference") != 0) {
         iprot_->skip(::apache::thrift::protocol::T_STRUCT);
         iprot_->readMessageEnd();
         iprot_->getTransport()->readEnd();
@@ -74324,7 +75413,7 @@ bool AiravataConcurrentClient::recv_updateGatewayComputeResourcePreference(const
         throw TProtocolException(TProtocolException::INVALID_DATA);
       }
       bool _return;
-      Airavata_updateGatewayComputeResourcePreference_presult result;
+      Airavata_deleteGatewayComputeResourcePreference_presult result;
       result.success = &_return;
       result.read(iprot_);
       iprot_->readMessageEnd();
@@ -74351,7 +75440,7 @@ bool AiravataConcurrentClient::recv_updateGatewayComputeResourcePreference(const
         throw result.ae;
       }
       // in a bad state, don't commit
-      throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "updateGatewayComputeResourcePreference failed: unknown result");
+      throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "deleteGatewayComputeResourcePreference failed: unknown result");
     }
     // seqid != rseqid
     this->sync_.updatePending(fname, mtype, rseqid);
@@ -74361,23 +75450,22 @@ bool AiravataConcurrentClient::recv_updateGatewayComputeResourcePreference(const
   } // end while(true)
 }
 
-bool AiravataConcurrentClient::updateGatewayStoragePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& storageId, const  ::apache::airavata::model::appcatalog::gatewayprofile::StoragePreference& storagePreference)
+bool AiravataConcurrentClient::deleteGatewayStoragePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& storageId)
 {
-  int32_t seqid = send_updateGatewayStoragePreference(authzToken, gatewayID, storageId, storagePreference);
-  return recv_updateGatewayStoragePreference(seqid);
+  int32_t seqid = send_deleteGatewayStoragePreference(authzToken, gatewayID, storageId);
+  return recv_deleteGatewayStoragePreference(seqid);
 }
 
-int32_t AiravataConcurrentClient::send_updateGatewayStoragePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& storageId, const  ::apache::airavata::model::appcatalog::gatewayprofile::StoragePreference& storagePreference)
+int32_t AiravataConcurrentClient::send_deleteGatewayStoragePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& storageId)
 {
   int32_t cseqid = this->sync_.generateSeqId();
   ::apache::thrift::async::TConcurrentSendSentry sentry(&this->sync_);
-  oprot_->writeMessageBegin("updateGatewayStoragePreference", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("deleteGatewayStoragePreference", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_updateGatewayStoragePreference_pargs args;
+  Airavata_deleteGatewayStoragePreference_pargs args;
   args.authzToken = &authzToken;
   args.gatewayID = &gatewayID;
   args.storageId = &storageId;
-  args.storagePreference = &storagePreference;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -74388,7 +75476,7 @@ int32_t AiravataConcurrentClient::send_updateGatewayStoragePreference(const  ::a
   return cseqid;
 }
 
-bool AiravataConcurrentClient::recv_updateGatewayStoragePreference(const int32_t seqid)
+bool AiravataConcurrentClient::recv_deleteGatewayStoragePreference(const int32_t seqid)
 {
 
   int32_t rseqid = 0;
@@ -74417,7 +75505,7 @@ bool AiravataConcurrentClient::recv_updateGatewayStoragePreference(const int32_t
         iprot_->readMessageEnd();
         iprot_->getTransport()->readEnd();
       }
-      if (fname.compare("updateGatewayStoragePreference") != 0) {
+      if (fname.compare("deleteGatewayStoragePreference") != 0) {
         iprot_->skip(::apache::thrift::protocol::T_STRUCT);
         iprot_->readMessageEnd();
         iprot_->getTransport()->readEnd();
@@ -74427,7 +75515,7 @@ bool AiravataConcurrentClient::recv_updateGatewayStoragePreference(const int32_t
         throw TProtocolException(TProtocolException::INVALID_DATA);
       }
       bool _return;
-      Airavata_updateGatewayStoragePreference_presult result;
+      Airavata_deleteGatewayStoragePreference_presult result;
       result.success = &_return;
       result.read(iprot_);
       iprot_->readMessageEnd();
@@ -74454,7 +75542,7 @@ bool AiravataConcurrentClient::recv_updateGatewayStoragePreference(const int32_t
         throw result.ae;
       }
       // in a bad state, don't commit
-      throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "updateGatewayStoragePreference failed: unknown result");
+      throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "deleteGatewayStoragePreference failed: unknown result");
     }
     // seqid != rseqid
     this->sync_.updatePending(fname, mtype, rseqid);
@@ -74464,22 +75552,21 @@ bool AiravataConcurrentClient::recv_updateGatewayStoragePreference(const int32_t
   } // end while(true)
 }
 
-bool AiravataConcurrentClient::deleteGatewayComputeResourcePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& computeResourceId)
+void AiravataConcurrentClient::getAllWorkflows(std::vector<std::string> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId)
 {
-  int32_t seqid = send_deleteGatewayComputeResourcePreference(authzToken, gatewayID, computeResourceId);
-  return recv_deleteGatewayComputeResourcePreference(seqid);
+  int32_t seqid = send_getAllWorkflows(authzToken, gatewayId);
+  recv_getAllWorkflows(_return, seqid);
 }
 
-int32_t AiravataConcurrentClient::send_deleteGatewayComputeResourcePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& computeResourceId)
+int32_t AiravataConcurrentClient::send_getAllWorkflows(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId)
 {
   int32_t cseqid = this->sync_.generateSeqId();
   ::apache::thrift::async::TConcurrentSendSentry sentry(&this->sync_);
-  oprot_->writeMessageBegin("deleteGatewayComputeResourcePreference", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("getAllWorkflows", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_deleteGatewayComputeResourcePreference_pargs args;
+  Airavata_getAllWorkflows_pargs args;
   args.authzToken = &authzToken;
-  args.gatewayID = &gatewayID;
-  args.computeResourceId = &computeResourceId;
+  args.gatewayId = &gatewayId;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -74490,7 +75577,7 @@ int32_t AiravataConcurrentClient::send_deleteGatewayComputeResourcePreference(co
   return cseqid;
 }
 
-bool AiravataConcurrentClient::recv_deleteGatewayComputeResourcePreference(const int32_t seqid)
+void AiravataConcurrentClient::recv_getAllWorkflows(std::vector<std::string> & _return, const int32_t seqid)
 {
 
   int32_t rseqid = 0;
@@ -74519,7 +75606,7 @@ bool AiravataConcurrentClient::recv_deleteGatewayComputeResourcePreference(const
         iprot_->readMessageEnd();
         iprot_->getTransport()->readEnd();
       }
-      if (fname.compare("deleteGatewayComputeResourcePreference") != 0) {
+      if (fname.compare("getAllWorkflows") != 0) {
         iprot_->skip(::apache::thrift::protocol::T_STRUCT);
         iprot_->readMessageEnd();
         iprot_->getTransport()->readEnd();
@@ -74528,16 +75615,16 @@ bool AiravataConcurrentClient::recv_deleteGatewayComputeResourcePreference(const
         using ::apache::thrift::protocol::TProtocolException;
         throw TProtocolException(TProtocolException::INVALID_DATA);
       }
-      bool _return;
-      Airavata_deleteGatewayComputeResourcePreference_presult result;
+      Airavata_getAllWorkflows_presult result;
       result.success = &_return;
       result.read(iprot_);
       iprot_->readMessageEnd();
       iprot_->getTransport()->readEnd();
 
       if (result.__isset.success) {
+        // _return pointer has now been filled
         sentry.commit();
-        return _return;
+        return;
       }
       if (result.__isset.ire) {
         sentry.commit();
@@ -74556,7 +75643,7 @@ bool AiravataConcurrentClient::recv_deleteGatewayComputeResourcePreference(const
         throw result.ae;
       }
       // in a bad state, don't commit
-      throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "deleteGatewayComputeResourcePreference failed: unknown result");
+      throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getAllWorkflows failed: unknown result");
     }
     // seqid != rseqid
     this->sync_.updatePending(fname, mtype, rseqid);
@@ -74566,22 +75653,21 @@ bool AiravataConcurrentClient::recv_deleteGatewayComputeResourcePreference(const
   } // end while(true)
 }
 
-bool AiravataConcurrentClient::deleteGatewayStoragePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& storageId)
+void AiravataConcurrentClient::getWorkflow( ::WorkflowModel& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& workflowTemplateId)
 {
-  int32_t seqid = send_deleteGatewayStoragePreference(authzToken, gatewayID, storageId);
-  return recv_deleteGatewayStoragePreference(seqid);
+  int32_t seqid = send_getWorkflow(authzToken, workflowTemplateId);
+  recv_getWorkflow(_return, seqid);
 }
 
-int32_t AiravataConcurrentClient::send_deleteGatewayStoragePreference(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayID, const std::string& storageId)
+int32_t AiravataConcurrentClient::send_getWorkflow(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& workflowTemplateId)
 {
   int32_t cseqid = this->sync_.generateSeqId();
   ::apache::thrift::async::TConcurrentSendSentry sentry(&this->sync_);
-  oprot_->writeMessageBegin("deleteGatewayStoragePreference", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("getWorkflow", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_deleteGatewayStoragePreference_pargs args;
+  Airavata_getWorkflow_pargs args;
   args.authzToken = &authzToken;
-  args.gatewayID = &gatewayID;
-  args.storageId = &storageId;
+  args.workflowTemplateId = &workflowTemplateId;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -74592,7 +75678,7 @@ int32_t AiravataConcurrentClient::send_deleteGatewayStoragePreference(const  ::a
   return cseqid;
 }
 
-bool AiravataConcurrentClient::recv_deleteGatewayStoragePreference(const int32_t seqid)
+void AiravataConcurrentClient::recv_getWorkflow( ::WorkflowModel& _return, const int32_t seqid)
 {
 
   int32_t rseqid = 0;
@@ -74621,7 +75707,7 @@ bool AiravataConcurrentClient::recv_deleteGatewayStoragePreference(const int32_t
         iprot_->readMessageEnd();
         iprot_->getTransport()->readEnd();
       }
-      if (fname.compare("deleteGatewayStoragePreference") != 0) {
+      if (fname.compare("getWorkflow") != 0) {
         iprot_->skip(::apache::thrift::protocol::T_STRUCT);
         iprot_->readMessageEnd();
         iprot_->getTransport()->readEnd();
@@ -74630,16 +75716,16 @@ bool AiravataConcurrentClient::recv_deleteGatewayStoragePreference(const int32_t
         using ::apache::thrift::protocol::TProtocolException;
         throw TProtocolException(TProtocolException::INVALID_DATA);
       }
-      bool _return;
-      Airavata_deleteGatewayStoragePreference_presult result;
+      Airavata_getWorkflow_presult result;
       result.success = &_return;
       result.read(iprot_);
       iprot_->readMessageEnd();
       iprot_->getTransport()->readEnd();
 
       if (result.__isset.success) {
+        // _return pointer has now been filled
         sentry.commit();
-        return _return;
+        return;
       }
       if (result.__isset.ire) {
         sentry.commit();
@@ -74658,7 +75744,7 @@ bool AiravataConcurrentClient::recv_deleteGatewayStoragePreference(const int32_t
         throw result.ae;
       }
       // in a bad state, don't commit
-      throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "deleteGatewayStoragePreference failed: unknown result");
+      throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getWorkflow failed: unknown result");
     }
     // seqid != rseqid
     this->sync_.updatePending(fname, mtype, rseqid);
@@ -74668,21 +75754,21 @@ bool AiravataConcurrentClient::recv_deleteGatewayStoragePreference(const int32_t
   } // end while(true)
 }
 
-void AiravataConcurrentClient::getAllWorkflows(std::vector<std::string> & _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId)
+void AiravataConcurrentClient::deleteWorkflow(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& workflowTemplateId)
 {
-  int32_t seqid = send_getAllWorkflows(authzToken, gatewayId);
-  recv_getAllWorkflows(_return, seqid);
+  int32_t seqid = send_deleteWorkflow(authzToken, workflowTemplateId);
+  recv_deleteWorkflow(seqid);
 }
 
-int32_t AiravataConcurrentClient::send_getAllWorkflows(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId)
+int32_t AiravataConcurrentClient::send_deleteWorkflow(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& workflowTemplateId)
 {
   int32_t cseqid = this->sync_.generateSeqId();
   ::apache::thrift::async::TConcurrentSendSentry sentry(&this->sync_);
-  oprot_->writeMessageBegin("getAllWorkflows", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("deleteWorkflow", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_getAllWorkflows_pargs args;
+  Airavata_deleteWorkflow_pargs args;
   args.authzToken = &authzToken;
-  args.gatewayId = &gatewayId;
+  args.workflowTemplateId = &workflowTemplateId;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -74693,7 +75779,7 @@ int32_t AiravataConcurrentClient::send_getAllWorkflows(const  ::apache::airavata
   return cseqid;
 }
 
-void AiravataConcurrentClient::recv_getAllWorkflows(std::vector<std::string> & _return, const int32_t seqid)
+void AiravataConcurrentClient::recv_deleteWorkflow(const int32_t seqid)
 {
 
   int32_t rseqid = 0;
@@ -74722,7 +75808,7 @@ void AiravataConcurrentClient::recv_getAllWorkflows(std::vector<std::string> & _
         iprot_->readMessageEnd();
         iprot_->getTransport()->readEnd();
       }
-      if (fname.compare("getAllWorkflows") != 0) {
+      if (fname.compare("deleteWorkflow") != 0) {
         iprot_->skip(::apache::thrift::protocol::T_STRUCT);
         iprot_->readMessageEnd();
         iprot_->getTransport()->readEnd();
@@ -74731,17 +75817,11 @@ void AiravataConcurrentClient::recv_getAllWorkflows(std::vector<std::string> & _
         using ::apache::thrift::protocol::TProtocolException;
         throw TProtocolException(TProtocolException::INVALID_DATA);
       }
-      Airavata_getAllWorkflows_presult result;
-      result.success = &_return;
+      Airavata_deleteWorkflow_presult result;
       result.read(iprot_);
       iprot_->readMessageEnd();
       iprot_->getTransport()->readEnd();
 
-      if (result.__isset.success) {
-        // _return pointer has now been filled
-        sentry.commit();
-        return;
-      }
       if (result.__isset.ire) {
         sentry.commit();
         throw result.ire;
@@ -74758,8 +75838,8 @@ void AiravataConcurrentClient::recv_getAllWorkflows(std::vector<std::string> & _
         sentry.commit();
         throw result.ae;
       }
-      // in a bad state, don't commit
-      throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getAllWorkflows failed: unknown result");
+      sentry.commit();
+      return;
     }
     // seqid != rseqid
     this->sync_.updatePending(fname, mtype, rseqid);
@@ -74769,21 +75849,22 @@ void AiravataConcurrentClient::recv_getAllWorkflows(std::vector<std::string> & _
   } // end while(true)
 }
 
-void AiravataConcurrentClient::getWorkflow( ::WorkflowModel& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& workflowTemplateId)
+void AiravataConcurrentClient::registerWorkflow(std::string& _return, const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const  ::WorkflowModel& workflow)
 {
-  int32_t seqid = send_getWorkflow(authzToken, workflowTemplateId);
-  recv_getWorkflow(_return, seqid);
+  int32_t seqid = send_registerWorkflow(authzToken, gatewayId, workflow);
+  recv_registerWorkflow(_return, seqid);
 }
 
-int32_t AiravataConcurrentClient::send_getWorkflow(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& workflowTemplateId)
+int32_t AiravataConcurrentClient::send_registerWorkflow(const  ::apache::airavata::model::security::AuthzToken& authzToken, const std::string& gatewayId, const  ::WorkflowModel& workflow)
 {
   int32_t cseqid = this->sync_.generateSeqId();
   ::apache::thrift::async::TConcurrentSendSentry sentry(&this->sync_);
-  oprot_->writeMessageBegin("getWorkflow", ::apache::thrift::protocol::T_CALL, cseqid);
+  oprot_->writeMessageBegin("registerWorkflow", ::apache::thrift::protocol::T_CALL, cseqid);
 
-  Airavata_getWorkflow_pargs args;
+  Airavata_registerWorkflow_pargs args;
   args.authzToken = &authzToken;
-  args.workflowTemplateId = &workflowTemplateId;
+  args.gatewayId = &gatewayId;
+  args.workflow = &workflow;
   args.write(oprot_);
 
   oprot_->writeMessageEnd();
@@ -74794,7 +75875,7 @@ int32_t AiravataConcurrentClient::send_getWorkflow(const  ::apache::airavata::mo
   return cseqid;
 }
 
-void AiravataConcurrentClient::recv_getWorkflow( ::WorkflowModel& _return, const int32_t seqid)
+void AiravataConcurrentClient::recv_registerWorkflow(std::string& _return, const int32_t seqid)
 {
 
   int32_t rseqid = 0;
@@ -74823,7 +75904,7 @@ void AiravataConcurrentClient::recv_getWorkflow( ::WorkflowModel& _return, const
         iprot_->readMessageEnd();
         iprot_->getTransport()->readEnd();
       }
-      if (fname.compare("getWorkflow") != 0) {
+      if (fname.compare("registerWorkflow") != 0) {
         iprot_->skip(::apache::thrift::protocol::T_STRUCT);
         iprot_->readMessageEnd();
         iprot_->getTransport()->readEnd();
@@ -74832,7 +75913,7 @@ void AiravataConcurrentClient::recv_getWorkflow( ::WorkflowModel& _return, const
 

<TRUNCATED>