You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sm...@apache.org on 2017/12/08 23:13:10 UTC

[airavata-sandbox] branch master updated: Implemented methods in service handler and repositories

This is an automated email from the ASF dual-hosted git repository.

smarru pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airavata-sandbox.git


The following commit(s) were added to refs/heads/master by this push:
     new 862727c  Implemented methods in service handler and repositories
862727c is described below

commit 862727cc2c0de1f6e1f0a1769a7c7c080c63f7ba
Author: Madrina Thapa <ma...@gmail.com>
AuthorDate: Fri Dec 8 18:08:01 2017 -0500

    Implemented methods in service handler and repositories
---
 .../db/entities/UserAllocationDetailEntity.java    |  16 +-
 .../db/repositories/ProjectReviewerRepository.java |  19 +-
 .../UserAllocationDetailRepository.java            |  17 +-
 .../allocation/manager/db/utils/DBConstants.java   |  88 +--
 .../messaging/AllocationServiceDBEventHandler.java |   4 +-
 .../server/AllocationManagerServerHandler.java     |  79 ++-
 .../AllocationManagerServerHandlerTest.java        |   6 +-
 .../client/AllocationManagerAdminClient.java       |   1 +
 .../manager/models/AllocationManagerException.java |   4 +-
 .../airavata/allocation/manager/models/Domain.java |   4 +-
 .../allocation/manager/models/ProjectReviewer.java |   4 +-
 .../manager/models/ProjectReviewerEntityPK.java    | 476 ----------------
 .../manager/models/ProjectReviewerPK.java          |   4 +-
 .../manager/models/UserAllocationDetail.java       | 111 +++-
 .../manager/models/UserAllocationDetailPK.java     |   4 +-
 .../allocation/manager/models/UserDetail.java      |   4 +-
 .../service/cpi/AllocationRegistryService.java     | 610 ++++++++++++++++-----
 .../api-docs/allocation_manager_cpi.html           |  84 +--
 .../api-docs/allocation_manager_models.html        |  33 +-
 .../allocation-manager-docs/api-docs/index.html    |   2 +-
 .../thrift_models/allocation_manager_cpi.thrift    |   8 +-
 .../thrift_models/allocation_manager_models.thrift |   3 +-
 22 files changed, 777 insertions(+), 804 deletions(-)

diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/entities/UserAllocationDetailEntity.java b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/entities/UserAllocationDetailEntity.java
index 1ebcc9f..c05efca 100644
--- a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/entities/UserAllocationDetailEntity.java
+++ b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/entities/UserAllocationDetailEntity.java
@@ -4,10 +4,7 @@ import java.io.Serializable;
 import javax.persistence.*;
 import java.math.BigInteger;
 
-/**
- *
- * @author harsha
- */
+
 /**
  * The persistent class for the USER_ALLOCATION_DETAILS database table.
  * 
@@ -42,6 +39,9 @@ public class UserAllocationDetailEntity implements Serializable {
 	@Column(name="FIELD_OF_SCIENCE")
 	private String fieldOfScience;
 
+	@Column(name="IS_PRIMARY_OWNER")
+	private byte isPrimaryOwner;
+
 	@Lob
 	@Column(name="KEYWORDS")
 	private String keywords;
@@ -145,6 +145,14 @@ public class UserAllocationDetailEntity implements Serializable {
 		this.fieldOfScience = fieldOfScience;
 	}
 
+	public byte getIsPrimaryOwner() {
+		return this.isPrimaryOwner;
+	}
+
+	public void setIsPrimaryOwner(byte isPrimaryOwner) {
+		this.isPrimaryOwner = isPrimaryOwner;
+	}
+
 	public String getKeywords() {
 		return this.keywords;
 	}
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/repositories/ProjectReviewerRepository.java b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/repositories/ProjectReviewerRepository.java
index 897bd62..58b6b7c 100644
--- a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/repositories/ProjectReviewerRepository.java
+++ b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/repositories/ProjectReviewerRepository.java
@@ -1,14 +1,31 @@
 package org.apache.airavata.allocation.manager.db.repositories;
 
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 import org.apache.airavata.allocation.manager.db.entities.ProjectReviewerEntity;
+import org.apache.airavata.allocation.manager.db.entities.ProjectReviewerEntityPK;
+import org.apache.airavata.allocation.manager.db.utils.DBConstants;
+import org.apache.airavata.allocation.manager.models.AllocationManagerException;
 import org.apache.airavata.allocation.manager.models.ProjectReviewer;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class ProjectReviewerRepository extends AbstractRepository<ProjectReviewer, ProjectReviewerEntity, String> {
+public class ProjectReviewerRepository extends AbstractRepository<ProjectReviewer, ProjectReviewerEntity, ProjectReviewerEntityPK> {
     private final static Logger logger = LoggerFactory.getLogger(DomainRepository.class);
 
     public ProjectReviewerRepository(){
         super(ProjectReviewer.class, ProjectReviewerEntity.class);
     }
+    
+    /*Method for getting a list of project assigned to a reviewer*/
+    public List<ProjectReviewer> getProjectForReviewer(String reviewerUserName) throws AllocationManagerException, Exception {
+        String query = "SELECT "+ DBConstants.ProjectReviewerTable.PROJECTID +" from " + ProjectReviewerEntity.class.getSimpleName();
+        query += " WHERE ";
+        query += DBConstants.ProjectReviewerTable.REVIEWER + " = " + reviewerUserName;
+        Map<String,Object> queryParameters = new HashMap<>();
+        queryParameters.put(DBConstants.ProjectReviewerTable.REVIEWER, reviewerUserName);
+        return select(query, queryParameters, 0, -1);
+    }
+    
 }
\ No newline at end of file
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/repositories/UserAllocationDetailRepository.java b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/repositories/UserAllocationDetailRepository.java
index adfd6d2..f2ec4f3 100644
--- a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/repositories/UserAllocationDetailRepository.java
+++ b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/repositories/UserAllocationDetailRepository.java
@@ -1,14 +1,29 @@
 package org.apache.airavata.allocation.manager.db.repositories;
 
+import java.util.List;
+import java.util.Map;
+import java.util.HashMap;
 import org.apache.airavata.allocation.manager.db.entities.UserAllocationDetailEntity;
+import org.apache.airavata.allocation.manager.db.entities.UserAllocationDetailEntityPK;
+import org.apache.airavata.allocation.manager.db.utils.DBConstants;
 import org.apache.airavata.allocation.manager.models.UserAllocationDetail;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class UserAllocationDetailRepository extends AbstractRepository<UserAllocationDetail, UserAllocationDetailEntity, String> {
+public class UserAllocationDetailRepository extends AbstractRepository<UserAllocationDetail, UserAllocationDetailEntity, UserAllocationDetailEntityPK> {
     private final static Logger logger = LoggerFactory.getLogger(DomainRepository.class);
 
     public UserAllocationDetailRepository(){
         super(UserAllocationDetail.class, UserAllocationDetailEntity.class);
     }
+    
+    public String getPrimaryOwner(String projectId) throws Exception{
+        Map<String,Object> queryParameters = new HashMap<>();
+        String query = "SELECT * from " + UserAllocationDetailEntity.class.getSimpleName();
+        query += " WHERE ";
+        query += DBConstants.UserAllocationDetailTable.PROJECTID + " = " + projectId + " AND "; 
+        query += DBConstants.UserAllocationDetailTable.ISPRIMARYOWNER + " = TRUE" ;
+        queryParameters.put(DBConstants.UserAllocationDetailTable.PROJECTID, projectId);
+        return select(query, queryParameters, 0, -1).get(0).getId().getUsername();
+    }
 }
\ No newline at end of file
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/utils/DBConstants.java b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/utils/DBConstants.java
index 749fb40..e740ac0 100644
--- a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/utils/DBConstants.java
+++ b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/db/utils/DBConstants.java
@@ -35,80 +35,18 @@ public class DBConstants {
         public static final String UPDATED_TIME = "updatedTime";
     }
 
-    public static class UserTable {
-        public static final String USER_ID = "userId";
-        public static final String DOMAIN_ID = "domainId";
-        public static final String USER_NAME = "userName";
-        public static final String CREATED_TIME = "createdTime";
-        public static final String UPDATED_TIME = "updatedTime";
-    }
-
-    public static class UserGroupTable {
-        public static final String GROUP_ID = "groupId";
-        public static final String DOMAIN_ID = "domainId";
-        public static final String NAME = "name";
-        public static final String DESCRIPTION = "description";
-        public static final String OWNER_ID = "ownerId";
-        public static final String GROUP_TYPE = "groupType";
-        public static final String GROUP_CARDINALITY = "groupCardinality";
-        public static final String CREATED_TIME = "createdTime";
-        public static final String UPDATED_TIME = "updatedTime";
-    }
-
-    public static class GroupMembershipTable {
-        public static final String PARENT_ID = "parentId";
-        public static final String CHILD_ID = "childId";
-        public static final String CHILD_TYPE = "childType";
-        public static final String DOMAIN_ID = "domainId";
-        public static final String CREATED_TIME = "createdTime";
-        public static final String UPDATED_TIME = "updatedTime";
-    }
-
-    public static class EntityTypeTable {
-        public static final String ENTITY_TYPE_ID = "entityTypeId";
-        public static final String DOMAIN_ID = "domainId";
-        public static final String CREATED_TIME = "createdTime";
-        public static final String UPDATED_TIME = "updatedTime";
-    }
-
-    public static class PermissionTypeTable {
-        public static final String ENTITY_TYPE_ID = "permissionTypeId";
-        public static final String DOMAIN_ID = "domainId";
-        public static final String NAME = "name";
-        public static final String CREATED_TIME = "createdTime";
-        public static final String UPDATED_TIME = "updatedTime";
-    }
-
-    public static class EntityTable {
-        public static final String ENTITY_ID = "entityId";
-        public static final String PARENT_ENTITY_ID = "parentEntityId";
-        public static final String ENTITY_TYPE_ID = "entityTypeId";
-        public static final String NAME = "name";
-        public static final String DESCRIPTION = "description";
-        public static final String FULL_TEXT = "fullText";
-        public static final String CREATED_TIME = "createdTime";
-        public static final String UPDATED_TIME = "updatedTime";
-        public static final String DOMAIN_ID = "domainId";
-        public static final String ORIGINAL_ENTITY_CREATION_TIME = "originalEntityCreationTime";
-        public static final String SHARED = "shared";
-    }
-
-    public static class SharingTable {
-        public static final String DOMAIN_ID = "domainId";
-        public static final String PERMISSION_TYPE_ID = "permissionTypeId";
-        public static final String ENTITY_ID = "entityId";
-        public static final String GROUP_ID = "groupId";
-        public static final String INHERITED_PARENT_ID = "inheritedParentId";
-        public static final String SHARING_TYPE = "sharingType";
-        public static final String CREATED_TIME = "createdTime";
-        public static final String UPDATED_TIME = "updatedTime";
-    }
-    // Added the UserDetail table fields 
-    public static class UserDetailTable {
-        public static final String USERNAME = "username";
-        public static final String EMAIL = "email";
-        public static final String FULLNAME = "fullName";
-        public static final String PASSWORD = "password";
-        public static final String USERTYPE = "userType";
+    // Added the ProjectReviewer table fields
+    public static class ProjectReviewerTable{
+        public static final String PROJECTID = "PROJECT_ID";
+        public static final String REVIEWER = "REVIEWER";  
+    }
+    
+    public static class UserAllocationDetailTable{
+        public static final String PROJECTID = "PROJECT_ID";
+        public static final String ISPRIMARYOWNER = "IS_PRIMARY_OWNER";
+    }
+    
+    public static class UserDetailTable{
+        public static final String USERTYPE = "USER_TYPE";
     }
 }
\ No newline at end of file
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/messaging/AllocationServiceDBEventHandler.java b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/messaging/AllocationServiceDBEventHandler.java
index fd33c59..35834d4 100644
--- a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/messaging/AllocationServiceDBEventHandler.java
+++ b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/messaging/AllocationServiceDBEventHandler.java
@@ -80,7 +80,7 @@ public class AllocationServiceDBEventHandler implements MessageHandler {
                             case READ:
                                 log.info("Updating user. User name : " + user.id.getUsername());
 
-                                allocationManagerClient.getAllocationRequest(user.id.projectId);
+                                allocationManagerClient.getAllocationRequest(user.id.projectId, user.id.getUsername());
                                 log.debug("User updated. User Id : " + user.id.getUsername());
 
                                 break;
@@ -95,7 +95,7 @@ public class AllocationServiceDBEventHandler implements MessageHandler {
                             case DELETE:
                                 log.info("Deleting user. User name : " + user.id.getUsername());
 
-                                allocationManagerClient.deleteAllocationRequest(user.id.projectId);
+                                allocationManagerClient.deleteAllocationRequest(user.id.projectId, user.id.getUsername());
                                 log.debug("User deleted. User name : " + user.id.getUsername());
 
                                 break;
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/server/AllocationManagerServerHandler.java b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/server/AllocationManagerServerHandler.java
index 0c88673..405f5c2 100644
--- a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/server/AllocationManagerServerHandler.java
+++ b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/main/java/org/apache/airavata/allocation/manager/server/AllocationManagerServerHandler.java
@@ -19,9 +19,13 @@
  */
 package org.apache.airavata.allocation.manager.server;
 
+import static java.lang.System.in;
+import java.util.ArrayList;
 import java.util.List;
 import org.apache.airavata.common.exception.ApplicationSettingsException;
 import org.apache.airavata.allocation.manager.client.NotificationManager;
+import org.apache.airavata.allocation.manager.db.entities.ProjectReviewerEntityPK;
+import org.apache.airavata.allocation.manager.db.entities.UserAllocationDetailEntityPK;
 import org.apache.airavata.allocation.manager.db.repositories.*;
 import org.apache.airavata.allocation.manager.db.utils.JPAUtils;
 import org.apache.airavata.allocation.manager.models.*;
@@ -46,7 +50,11 @@ public class AllocationManagerServerHandler implements AllocationRegistryService
     @Override
     public String createAllocationRequest(UserAllocationDetail reqDetails) throws AllocationManagerException, TException {
         try{
-            if((new UserAllocationDetailPKRepository()).isExists(reqDetails.id.projectId))  
+            UserAllocationDetailEntityPK objAllocationDetailEntityPK = new UserAllocationDetailEntityPK();
+            objAllocationDetailEntityPK.setProjectId(reqDetails.id.projectId);
+            objAllocationDetailEntityPK.setUsername(reqDetails.id.username);
+            
+            if((new UserAllocationDetailRepository()).isExists(objAllocationDetailEntityPK))  
             throw new TException("There exist project with the id");
             UserAllocationDetail create = (new UserAllocationDetailRepository()).create(reqDetails);
             return reqDetails.id.projectId;
@@ -58,11 +66,13 @@ public class AllocationManagerServerHandler implements AllocationRegistryService
 
     //Implementing isAllocationRequestExists method to check if the allocation request exists
     @Override
-    public boolean isAllocationRequestExists(String projectId) throws AllocationManagerException, TException {
+    public boolean isAllocationRequestExists(String projectId, String userName) throws AllocationManagerException, TException {
         try{
-            UserAllocationDetailPK alloc = new UserAllocationDetailPK();
-            alloc.setProjectId(projectId);
-            return ((new UserAllocationDetailRepository()).isExists(alloc.projectId));
+            UserAllocationDetailEntityPK objAllocationDetailEntityPK = new UserAllocationDetailEntityPK();
+            objAllocationDetailEntityPK.setProjectId(projectId);
+            objAllocationDetailEntityPK.setUsername(userName);
+            
+            return ((new UserAllocationDetailRepository()).isExists(objAllocationDetailEntityPK));
         }catch (Exception ex) {
             throw new AllocationManagerException().setMessage(ex.getMessage() + " Stack trace:" + ExceptionUtils.getStackTrace(ex));
         }
@@ -70,11 +80,13 @@ public class AllocationManagerServerHandler implements AllocationRegistryService
 
     //Implementing deleteAllocationRequest method to delete an allocation request
     @Override
-    public boolean deleteAllocationRequest(String projectId) throws AllocationManagerException, TException {
+    public boolean deleteAllocationRequest(String projectId, String userName) throws AllocationManagerException, TException {
         try{
-            UserAllocationDetailPK alloc = new UserAllocationDetailPK();
-            alloc.setProjectId(projectId);
-            (new UserAllocationDetailPKRepository()).delete(alloc.projectId);
+            UserAllocationDetailEntityPK objAllocationDetailEntityPK = new UserAllocationDetailEntityPK();
+            objAllocationDetailEntityPK.setProjectId(projectId);
+            objAllocationDetailEntityPK.setUsername(userName);
+            
+            (new UserAllocationDetailRepository()).delete(objAllocationDetailEntityPK);
             return true;
         }catch (Exception ex) {
             logger.error(ex.getMessage(), ex);
@@ -84,11 +96,13 @@ public class AllocationManagerServerHandler implements AllocationRegistryService
 
     //Implementing getAllocationRequest method to get an allocation request
     @Override
-    public UserAllocationDetail getAllocationRequest(String projectId) throws AllocationManagerException, TException {
+    public UserAllocationDetail getAllocationRequest(String projectId, String userName) throws AllocationManagerException, TException {
         try{
-            UserAllocationDetailPK alloc = new UserAllocationDetailPK();
-            alloc.setProjectId(projectId);
-            return (new UserAllocationDetailRepository()).get(alloc.projectId);
+            UserAllocationDetailEntityPK objAllocationDetailEntityPK = new UserAllocationDetailEntityPK();
+            objAllocationDetailEntityPK.setProjectId(projectId);
+            objAllocationDetailEntityPK.setUsername(userName);
+            
+            return (new UserAllocationDetailRepository().get(objAllocationDetailEntityPK));
         }catch (Exception ex) {
             logger.error(ex.getMessage(), ex);
             throw new AllocationManagerException().setMessage(ex.getMessage() + " Stack trace:" + ExceptionUtils.getStackTrace(ex));
@@ -123,9 +137,12 @@ public class AllocationManagerServerHandler implements AllocationRegistryService
     }
     
     @Override
-    public String getAllocationRequestStatus(String projectId) throws org.apache.thrift.TException{ 
-        try{
-            return (new RequestStatusRepository()).get(projectId).status;
+    public String getAllocationRequestStatus(String projectId, String userName) throws org.apache.thrift.TException{ 
+       try{
+            UserAllocationDetailEntityPK objAllocDetails = new UserAllocationDetailEntityPK();
+            objAllocDetails.setProjectId(projectId);
+            objAllocDetails.setUsername(userName);
+            return (new UserAllocationDetailRepository()).get(objAllocDetails).status;
         }catch (Exception ex) {
             logger.error(ex.getMessage(), ex);
             throw new AllocationManagerException().setMessage(ex.getMessage() + " Stack trace:" + ExceptionUtils.getStackTrace(ex));
@@ -166,12 +183,15 @@ public class AllocationManagerServerHandler implements AllocationRegistryService
     @Override
     public void updateAllocationRequestStatus(String projectId, String status) throws TException {
         // TODO Auto-generated method stub
-        RequestStatusRepository request = new RequestStatusRepository();
+        UserAllocationDetailRepository userAllocationDetail = new UserAllocationDetailRepository();
         try {
-
-                request.get(projectId).setStatus(status);
-                 //once status updated notify user
-                (new NotificationManager()).notificationSender(projectId);
+            UserAllocationDetailEntityPK userAllocationDetailPK  = new UserAllocationDetailEntityPK();
+            userAllocationDetailPK.setProjectId(projectId);
+            userAllocationDetailPK.setUsername(new UserAllocationDetailRepository().getPrimaryOwner(projectId));
+            userAllocationDetail.get(userAllocationDetailPK).setStatus(status);
+            
+            //once status updated notify user
+            (new NotificationManager()).notificationSender(projectId);
         } catch (Exception ex) {
                 logger.error(ex.getMessage(), ex);
     throw new AllocationManagerException().setMessage(ex.getMessage() + " Stack trace:" + ExceptionUtils.getStackTrace(ex));
@@ -203,7 +223,22 @@ public class AllocationManagerServerHandler implements AllocationRegistryService
 
     @Override
     public List<UserAllocationDetail> getAllRequestsForReviewers(String userName)  throws AllocationManagerException, TException {
-        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+        List<UserAllocationDetail> userAllocationDetailList = new ArrayList<UserAllocationDetail>(); 
+        try{
+            if(!isReviewer(userName)){
+                throw new AllocationManagerException().setMessage("Invalid reviewer id!");
+            }
+            List<ProjectReviewer> projReviewerList = (new ProjectReviewerRepository()).getProjectForReviewer(userName);
+            for(ProjectReviewer objProj : projReviewerList){
+                UserAllocationDetailEntityPK userAllocationDetailPK  = new UserAllocationDetailEntityPK();
+                userAllocationDetailPK.setProjectId(objProj.id.getProjectId());
+                userAllocationDetailPK.setUsername(new UserAllocationDetailRepository().getPrimaryOwner(objProj.id.getProjectId()));
+                userAllocationDetailList.add(new UserAllocationDetailRepository().get(userAllocationDetailPK));
+            }
+        }catch (Exception ex) {
+            throw new AllocationManagerException().setMessage(ex.getMessage() + " Stack trace:" + ExceptionUtils.getStackTrace(ex));
+        }
+        return userAllocationDetailList;
     }
 
     @Override
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/test/java/org/apache/airavata/allocation/manager/AllocationManagerServerHandlerTest.java b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/test/java/org/apache/airavata/allocation/manager/AllocationManagerServerHandlerTest.java
index 80dc934..3a5e59e 100644
--- a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/test/java/org/apache/airavata/allocation/manager/AllocationManagerServerHandlerTest.java
+++ b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-server/src/test/java/org/apache/airavata/allocation/manager/AllocationManagerServerHandlerTest.java
@@ -70,7 +70,7 @@ public class AllocationManagerServerHandlerTest {
 
 
         Assert.assertNotNull(allocationManagerServerHandler.createAllocationRequest(userAllocationDetails));
-        Assert.assertEquals(allocationManagerServerHandler.getAllocationRequest("123"),userAllocationDetails);
+        Assert.assertEquals(allocationManagerServerHandler.getAllocationRequest("123",""),userAllocationDetails);
 
         UserAllocationDetail userAllocationDetails1 = new UserAllocationDetail();
         UserAllocationDetailPK userAllocationDetailPK1 = new UserAllocationDetailPK(); 
@@ -78,9 +78,9 @@ public class AllocationManagerServerHandlerTest {
         userAllocationDetailPK1.setUsername("harsha");
         userAllocationDetails1.setId(userAllocationDetailPK1);
 
-        Assert.assertTrue(allocationManagerServerHandler.isAllocationRequestExists(userAllocationDetailPK1.getProjectId()));
+        Assert.assertTrue(allocationManagerServerHandler.isAllocationRequestExists(userAllocationDetailPK1.getProjectId(),""));
         Assert.assertEquals(allocationManagerServerHandler.createAllocationRequest(userAllocationDetails1),"There exist project with the id");
 
-        Assert.assertTrue(allocationManagerServerHandler.deleteAllocationRequest("123"));
+        Assert.assertTrue(allocationManagerServerHandler.deleteAllocationRequest("123",""));
     }
 }
\ No newline at end of file
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/client/AllocationManagerAdminClient.java b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/client/AllocationManagerAdminClient.java
index 2cd65ba..dc6b90c 100644
--- a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/client/AllocationManagerAdminClient.java
+++ b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/client/AllocationManagerAdminClient.java
@@ -22,6 +22,7 @@ public class AllocationManagerAdminClient {
 			if (requestType.equals("UPDATE_REQUEST")) {
 				client.updateAllocationRequestStatus(projectId, status);
 			} else if(requestType.equals("GET_REQUEST")){
+                            
 				client.getAllocationRequest(projectId);
 			}	else if(requestType.equals("GET_REQUEST_STATUS")){
 				client.getAllocationRequestStatus(projectId);
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/models/AllocationManagerException.java b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/models/AllocationManagerException.java
index ef4e395..24647dd 100644
--- a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/models/AllocationManagerException.java
+++ b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/models/AllocationManagerException.java
@@ -1,5 +1,5 @@
 /**
- * Autogenerated by Thrift Compiler (1.0.0-dev)
+ * Autogenerated by Thrift Compiler (0.10.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -11,7 +11,7 @@ package org.apache.airavata.allocation.manager.models;
  * <p>Exception model used in the allocation manager service</p>
  * 
  */
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (1.0.0-dev)", date = "2017-12-08")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.10.0)")
 public class AllocationManagerException extends org.apache.thrift.TException implements org.apache.thrift.TBase<AllocationManagerException, AllocationManagerException._Fields>, java.io.Serializable, Cloneable, Comparable<AllocationManagerException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AllocationManagerException");
 
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/models/Domain.java b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/models/Domain.java
index 4d43a75..6de324d 100644
--- a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/models/Domain.java
+++ b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/models/Domain.java
@@ -1,5 +1,5 @@
 /**
- * Autogenerated by Thrift Compiler (1.0.0-dev)
+ * Autogenerated by Thrift Compiler (0.10.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -16,7 +16,7 @@ package org.apache.airavata.allocation.manager.models;
  * <li>updatedTime: Time when domain was updated</li>
  * 
  */
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (1.0.0-dev)", date = "2017-12-08")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.10.0)")
 public class Domain implements org.apache.thrift.TBase<Domain, Domain._Fields>, java.io.Serializable, Cloneable, Comparable<Domain> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Domain");
 
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/models/ProjectReviewer.java b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/models/ProjectReviewer.java
index 418d589..70185f2 100644
--- a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/models/ProjectReviewer.java
+++ b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/models/ProjectReviewer.java
@@ -1,5 +1,5 @@
 /**
- * Autogenerated by Thrift Compiler (1.0.0-dev)
+ * Autogenerated by Thrift Compiler (0.10.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -17,7 +17,7 @@ package org.apache.airavata.allocation.manager.models;
  * <li>status: Status of the allocation request</li>
  * 
  */
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (1.0.0-dev)", date = "2017-12-08")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.10.0)")
 public class ProjectReviewer implements org.apache.thrift.TBase<ProjectReviewer, ProjectReviewer._Fields>, java.io.Serializable, Cloneable, Comparable<ProjectReviewer> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProjectReviewer");
 
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/models/ProjectReviewerEntityPK.java b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/models/ProjectReviewerEntityPK.java
deleted file mode 100644
index c70929c..0000000
--- a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/models/ProjectReviewerEntityPK.java
+++ /dev/null
@@ -1,476 +0,0 @@
-/**
- * Autogenerated by Thrift Compiler (1.0.0-dev)
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- *  @generated
- */
-package org.apache.airavata.allocation.manager.models;
-
-@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (1.0.0-dev)", date = "2017-12-08")
-public class ProjectReviewerEntityPK implements org.apache.thrift.TBase<ProjectReviewerEntityPK, ProjectReviewerEntityPK._Fields>, java.io.Serializable, Cloneable, Comparable<ProjectReviewerEntityPK> {
-  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProjectReviewerEntityPK");
-
-  private static final org.apache.thrift.protocol.TField PROJECT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("projectId", org.apache.thrift.protocol.TType.STRING, (short)1);
-  private static final org.apache.thrift.protocol.TField REVIEWER_FIELD_DESC = new org.apache.thrift.protocol.TField("reviewer", org.apache.thrift.protocol.TType.STRING, (short)4);
-
-  private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new ProjectReviewerEntityPKStandardSchemeFactory();
-  private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new ProjectReviewerEntityPKTupleSchemeFactory();
-
-  public java.lang.String projectId; // optional
-  public java.lang.String reviewer; // optional
-
-  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
-  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-    PROJECT_ID((short)1, "projectId"),
-    REVIEWER((short)4, "reviewer");
-
-    private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
-
-    static {
-      for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
-        byName.put(field.getFieldName(), field);
-      }
-    }
-
-    /**
-     * Find the _Fields constant that matches fieldId, or null if its not found.
-     */
-    public static _Fields findByThriftId(int fieldId) {
-      switch(fieldId) {
-        case 1: // PROJECT_ID
-          return PROJECT_ID;
-        case 4: // REVIEWER
-          return REVIEWER;
-        default:
-          return null;
-      }
-    }
-
-    /**
-     * Find the _Fields constant that matches fieldId, throwing an exception
-     * if it is not found.
-     */
-    public static _Fields findByThriftIdOrThrow(int fieldId) {
-      _Fields fields = findByThriftId(fieldId);
-      if (fields == null) throw new java.lang.IllegalArgumentException("Field " + fieldId + " doesn't exist!");
-      return fields;
-    }
-
-    /**
-     * Find the _Fields constant that matches name, or null if its not found.
-     */
-    public static _Fields findByName(java.lang.String name) {
-      return byName.get(name);
-    }
-
-    private final short _thriftId;
-    private final java.lang.String _fieldName;
-
-    _Fields(short thriftId, java.lang.String fieldName) {
-      _thriftId = thriftId;
-      _fieldName = fieldName;
-    }
-
-    public short getThriftFieldId() {
-      return _thriftId;
-    }
-
-    public java.lang.String getFieldName() {
-      return _fieldName;
-    }
-  }
-
-  // isset id assignments
-  private static final _Fields optionals[] = {_Fields.PROJECT_ID,_Fields.REVIEWER};
-  public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
-  static {
-    java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-    tmpMap.put(_Fields.PROJECT_ID, new org.apache.thrift.meta_data.FieldMetaData("projectId", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.REVIEWER, new org.apache.thrift.meta_data.FieldMetaData("reviewer", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
-        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
-    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ProjectReviewerEntityPK.class, metaDataMap);
-  }
-
-  public ProjectReviewerEntityPK() {
-  }
-
-  /**
-   * Performs a deep copy on <i>other</i>.
-   */
-  public ProjectReviewerEntityPK(ProjectReviewerEntityPK other) {
-    if (other.isSetProjectId()) {
-      this.projectId = other.projectId;
-    }
-    if (other.isSetReviewer()) {
-      this.reviewer = other.reviewer;
-    }
-  }
-
-  public ProjectReviewerEntityPK deepCopy() {
-    return new ProjectReviewerEntityPK(this);
-  }
-
-  @Override
-  public void clear() {
-    this.projectId = null;
-    this.reviewer = null;
-  }
-
-  public java.lang.String getProjectId() {
-    return this.projectId;
-  }
-
-  public ProjectReviewerEntityPK setProjectId(java.lang.String projectId) {
-    this.projectId = projectId;
-    return this;
-  }
-
-  public void unsetProjectId() {
-    this.projectId = null;
-  }
-
-  /** Returns true if field projectId is set (has been assigned a value) and false otherwise */
-  public boolean isSetProjectId() {
-    return this.projectId != null;
-  }
-
-  public void setProjectIdIsSet(boolean value) {
-    if (!value) {
-      this.projectId = null;
-    }
-  }
-
-  public java.lang.String getReviewer() {
-    return this.reviewer;
-  }
-
-  public ProjectReviewerEntityPK setReviewer(java.lang.String reviewer) {
-    this.reviewer = reviewer;
-    return this;
-  }
-
-  public void unsetReviewer() {
-    this.reviewer = null;
-  }
-
-  /** Returns true if field reviewer is set (has been assigned a value) and false otherwise */
-  public boolean isSetReviewer() {
-    return this.reviewer != null;
-  }
-
-  public void setReviewerIsSet(boolean value) {
-    if (!value) {
-      this.reviewer = null;
-    }
-  }
-
-  public void setFieldValue(_Fields field, java.lang.Object value) {
-    switch (field) {
-    case PROJECT_ID:
-      if (value == null) {
-        unsetProjectId();
-      } else {
-        setProjectId((java.lang.String)value);
-      }
-      break;
-
-    case REVIEWER:
-      if (value == null) {
-        unsetReviewer();
-      } else {
-        setReviewer((java.lang.String)value);
-      }
-      break;
-
-    }
-  }
-
-  public java.lang.Object getFieldValue(_Fields field) {
-    switch (field) {
-    case PROJECT_ID:
-      return getProjectId();
-
-    case REVIEWER:
-      return getReviewer();
-
-    }
-    throw new java.lang.IllegalStateException();
-  }
-
-  /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
-  public boolean isSet(_Fields field) {
-    if (field == null) {
-      throw new java.lang.IllegalArgumentException();
-    }
-
-    switch (field) {
-    case PROJECT_ID:
-      return isSetProjectId();
-    case REVIEWER:
-      return isSetReviewer();
-    }
-    throw new java.lang.IllegalStateException();
-  }
-
-  @Override
-  public boolean equals(java.lang.Object that) {
-    if (that == null)
-      return false;
-    if (that instanceof ProjectReviewerEntityPK)
-      return this.equals((ProjectReviewerEntityPK)that);
-    return false;
-  }
-
-  public boolean equals(ProjectReviewerEntityPK that) {
-    if (that == null)
-      return false;
-    if (this == that)
-      return true;
-
-    boolean this_present_projectId = true && this.isSetProjectId();
-    boolean that_present_projectId = true && that.isSetProjectId();
-    if (this_present_projectId || that_present_projectId) {
-      if (!(this_present_projectId && that_present_projectId))
-        return false;
-      if (!this.projectId.equals(that.projectId))
-        return false;
-    }
-
-    boolean this_present_reviewer = true && this.isSetReviewer();
-    boolean that_present_reviewer = true && that.isSetReviewer();
-    if (this_present_reviewer || that_present_reviewer) {
-      if (!(this_present_reviewer && that_present_reviewer))
-        return false;
-      if (!this.reviewer.equals(that.reviewer))
-        return false;
-    }
-
-    return true;
-  }
-
-  @Override
-  public int hashCode() {
-    int hashCode = 1;
-
-    hashCode = hashCode * 8191 + ((isSetProjectId()) ? 131071 : 524287);
-    if (isSetProjectId())
-      hashCode = hashCode * 8191 + projectId.hashCode();
-
-    hashCode = hashCode * 8191 + ((isSetReviewer()) ? 131071 : 524287);
-    if (isSetReviewer())
-      hashCode = hashCode * 8191 + reviewer.hashCode();
-
-    return hashCode;
-  }
-
-  @Override
-  public int compareTo(ProjectReviewerEntityPK other) {
-    if (!getClass().equals(other.getClass())) {
-      return getClass().getName().compareTo(other.getClass().getName());
-    }
-
-    int lastComparison = 0;
-
-    lastComparison = java.lang.Boolean.valueOf(isSetProjectId()).compareTo(other.isSetProjectId());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetProjectId()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.projectId, other.projectId);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = java.lang.Boolean.valueOf(isSetReviewer()).compareTo(other.isSetReviewer());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetReviewer()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.reviewer, other.reviewer);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    return 0;
-  }
-
-  public _Fields fieldForId(int fieldId) {
-    return _Fields.findByThriftId(fieldId);
-  }
-
-  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
-    scheme(iprot).read(iprot, this);
-  }
-
-  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
-    scheme(oprot).write(oprot, this);
-  }
-
-  @Override
-  public java.lang.String toString() {
-    java.lang.StringBuilder sb = new java.lang.StringBuilder("ProjectReviewerEntityPK(");
-    boolean first = true;
-
-    if (isSetProjectId()) {
-      sb.append("projectId:");
-      if (this.projectId == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.projectId);
-      }
-      first = false;
-    }
-    if (isSetReviewer()) {
-      if (!first) sb.append(", ");
-      sb.append("reviewer:");
-      if (this.reviewer == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.reviewer);
-      }
-      first = false;
-    }
-    sb.append(")");
-    return sb.toString();
-  }
-
-  public void validate() throws org.apache.thrift.TException {
-    // check for required fields
-    // check for sub-struct validity
-  }
-
-  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
-    try {
-      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
-    } catch (org.apache.thrift.TException te) {
-      throw new java.io.IOException(te);
-    }
-  }
-
-  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException {
-    try {
-      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
-    } catch (org.apache.thrift.TException te) {
-      throw new java.io.IOException(te);
-    }
-  }
-
-  private static class ProjectReviewerEntityPKStandardSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-    public ProjectReviewerEntityPKStandardScheme getScheme() {
-      return new ProjectReviewerEntityPKStandardScheme();
-    }
-  }
-
-  private static class ProjectReviewerEntityPKStandardScheme extends org.apache.thrift.scheme.StandardScheme<ProjectReviewerEntityPK> {
-
-    public void read(org.apache.thrift.protocol.TProtocol iprot, ProjectReviewerEntityPK struct) throws org.apache.thrift.TException {
-      org.apache.thrift.protocol.TField schemeField;
-      iprot.readStructBegin();
-      while (true)
-      {
-        schemeField = iprot.readFieldBegin();
-        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
-          break;
-        }
-        switch (schemeField.id) {
-          case 1: // PROJECT_ID
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.projectId = iprot.readString();
-              struct.setProjectIdIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          case 4: // REVIEWER
-            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
-              struct.reviewer = iprot.readString();
-              struct.setReviewerIsSet(true);
-            } else { 
-              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-            }
-            break;
-          default:
-            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
-        }
-        iprot.readFieldEnd();
-      }
-      iprot.readStructEnd();
-
-      // check for required fields of primitive type, which can't be checked in the validate method
-      struct.validate();
-    }
-
-    public void write(org.apache.thrift.protocol.TProtocol oprot, ProjectReviewerEntityPK struct) throws org.apache.thrift.TException {
-      struct.validate();
-
-      oprot.writeStructBegin(STRUCT_DESC);
-      if (struct.projectId != null) {
-        if (struct.isSetProjectId()) {
-          oprot.writeFieldBegin(PROJECT_ID_FIELD_DESC);
-          oprot.writeString(struct.projectId);
-          oprot.writeFieldEnd();
-        }
-      }
-      if (struct.reviewer != null) {
-        if (struct.isSetReviewer()) {
-          oprot.writeFieldBegin(REVIEWER_FIELD_DESC);
-          oprot.writeString(struct.reviewer);
-          oprot.writeFieldEnd();
-        }
-      }
-      oprot.writeFieldStop();
-      oprot.writeStructEnd();
-    }
-
-  }
-
-  private static class ProjectReviewerEntityPKTupleSchemeFactory implements org.apache.thrift.scheme.SchemeFactory {
-    public ProjectReviewerEntityPKTupleScheme getScheme() {
-      return new ProjectReviewerEntityPKTupleScheme();
-    }
-  }
-
-  private static class ProjectReviewerEntityPKTupleScheme extends org.apache.thrift.scheme.TupleScheme<ProjectReviewerEntityPK> {
-
-    @Override
-    public void write(org.apache.thrift.protocol.TProtocol prot, ProjectReviewerEntityPK struct) throws org.apache.thrift.TException {
-      org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-      java.util.BitSet optionals = new java.util.BitSet();
-      if (struct.isSetProjectId()) {
-        optionals.set(0);
-      }
-      if (struct.isSetReviewer()) {
-        optionals.set(1);
-      }
-      oprot.writeBitSet(optionals, 2);
-      if (struct.isSetProjectId()) {
-        oprot.writeString(struct.projectId);
-      }
-      if (struct.isSetReviewer()) {
-        oprot.writeString(struct.reviewer);
-      }
-    }
-
-    @Override
-    public void read(org.apache.thrift.protocol.TProtocol prot, ProjectReviewerEntityPK struct) throws org.apache.thrift.TException {
-      org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-      java.util.BitSet incoming = iprot.readBitSet(2);
-      if (incoming.get(0)) {
-        struct.projectId = iprot.readString();
-        struct.setProjectIdIsSet(true);
-      }
-      if (incoming.get(1)) {
-        struct.reviewer = iprot.readString();
-        struct.setReviewerIsSet(true);
-      }
-    }
-  }
-
-  private static <S extends org.apache.thrift.scheme.IScheme> S scheme(org.apache.thrift.protocol.TProtocol proto) {
-    return (org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ? STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
-  }
-}
-
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/models/ProjectReviewerPK.java b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/models/ProjectReviewerPK.java
index f6bd0c2..2ca2a85 100644
--- a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/models/ProjectReviewerPK.java
+++ b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/models/ProjectReviewerPK.java
@@ -1,5 +1,5 @@
 /**
- * Autogenerated by Thrift Compiler (1.0.0-dev)
+ * Autogenerated by Thrift Compiler (0.10.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -7,7 +7,7 @@
 package org.apache.airavata.allocation.manager.models;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (1.0.0-dev)", date = "2017-12-08")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.10.0)")
 public class ProjectReviewerPK implements org.apache.thrift.TBase<ProjectReviewerPK, ProjectReviewerPK._Fields>, java.io.Serializable, Cloneable, Comparable<ProjectReviewerPK> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ProjectReviewerPK");
 
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/models/UserAllocationDetail.java b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/models/UserAllocationDetail.java
index 557049d..256ff4c 100644
--- a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/models/UserAllocationDetail.java
+++ b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/models/UserAllocationDetail.java
@@ -1,5 +1,5 @@
 /**
- * Autogenerated by Thrift Compiler (1.0.0-dev)
+ * Autogenerated by Thrift Compiler (0.10.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -27,7 +27,7 @@ package org.apache.airavata.allocation.manager.models;
  * <li>typicalSuPerJob :  An optional field to help reviewer and PI for allocation approval</li>
  * 
  */
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (1.0.0-dev)", date = "2017-12-08")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.10.0)")
 public class UserAllocationDetail implements org.apache.thrift.TBase<UserAllocationDetail, UserAllocationDetail._Fields>, java.io.Serializable, Cloneable, Comparable<UserAllocationDetail> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UserAllocationDetail");
 
@@ -51,6 +51,7 @@ public class UserAllocationDetail implements org.apache.thrift.TBase<UserAllocat
   private static final org.apache.thrift.protocol.TField START_DATE_FIELD_DESC = new org.apache.thrift.protocol.TField("startDate", org.apache.thrift.protocol.TType.I64, (short)18);
   private static final org.apache.thrift.protocol.TField END_DATE_FIELD_DESC = new org.apache.thrift.protocol.TField("endDate", org.apache.thrift.protocol.TType.I64, (short)19);
   private static final org.apache.thrift.protocol.TField STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("status", org.apache.thrift.protocol.TType.STRING, (short)20);
+  private static final org.apache.thrift.protocol.TField IS_PRIMARY_OWNER_FIELD_DESC = new org.apache.thrift.protocol.TField("isPrimaryOwner", org.apache.thrift.protocol.TType.BOOL, (short)21);
 
   private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new UserAllocationDetailStandardSchemeFactory();
   private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new UserAllocationDetailTupleSchemeFactory();
@@ -75,6 +76,7 @@ public class UserAllocationDetail implements org.apache.thrift.TBase<UserAllocat
   public long startDate; // optional
   public long endDate; // optional
   public java.lang.String status; // optional
+  public boolean isPrimaryOwner; // optional
 
   /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
   public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -97,7 +99,8 @@ public class UserAllocationDetail implements org.apache.thrift.TBase<UserAllocat
     AWARD_ALLOCATION((short)17, "awardAllocation"),
     START_DATE((short)18, "startDate"),
     END_DATE((short)19, "endDate"),
-    STATUS((short)20, "status");
+    STATUS((short)20, "status"),
+    IS_PRIMARY_OWNER((short)21, "isPrimaryOwner");
 
     private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -152,6 +155,8 @@ public class UserAllocationDetail implements org.apache.thrift.TBase<UserAllocat
           return END_DATE;
         case 20: // STATUS
           return STATUS;
+        case 21: // IS_PRIMARY_OWNER
+          return IS_PRIMARY_OWNER;
         default:
           return null;
       }
@@ -201,8 +206,9 @@ public class UserAllocationDetail implements org.apache.thrift.TBase<UserAllocat
   private static final int __AWARDALLOCATION_ISSET_ID = 6;
   private static final int __STARTDATE_ISSET_ID = 7;
   private static final int __ENDDATE_ISSET_ID = 8;
+  private static final int __ISPRIMARYOWNER_ISSET_ID = 9;
   private short __isset_bitfield = 0;
-  private static final _Fields optionals[] = {_Fields.ID,_Fields.APPLICATIONS_TO_BE_USED,_Fields.DISK_USAGE_RANGE_PER_JOB,_Fields.DOCUMENTS,_Fields.FIELD_OF_SCIENCE,_Fields.KEYWORDS,_Fields.MAX_MEMORY_PER_CPU,_Fields.NUMBER_OF_CPU_PER_JOB,_Fields.PROJECT_DESCRIPTION,_Fields.PROJECT_REVIEWED_AND_FUNDED_BY,_Fields.REQUESTED_DATE,_Fields.SERVICE_UNITS,_Fields.SPECIFIC_RESOURCE_SELECTION,_Fields.TITLE,_Fields.TYPE_OF_ALLOCATION,_Fields.TYPICAL_SU_PER_JOB,_Fields.AWARD_ALLOCATION,_Fields.STAR [...]
+  private static final _Fields optionals[] = {_Fields.ID,_Fields.APPLICATIONS_TO_BE_USED,_Fields.DISK_USAGE_RANGE_PER_JOB,_Fields.DOCUMENTS,_Fields.FIELD_OF_SCIENCE,_Fields.KEYWORDS,_Fields.MAX_MEMORY_PER_CPU,_Fields.NUMBER_OF_CPU_PER_JOB,_Fields.PROJECT_DESCRIPTION,_Fields.PROJECT_REVIEWED_AND_FUNDED_BY,_Fields.REQUESTED_DATE,_Fields.SERVICE_UNITS,_Fields.SPECIFIC_RESOURCE_SELECTION,_Fields.TITLE,_Fields.TYPE_OF_ALLOCATION,_Fields.TYPICAL_SU_PER_JOB,_Fields.AWARD_ALLOCATION,_Fields.STAR [...]
   public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
   static {
     java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
@@ -246,6 +252,8 @@ public class UserAllocationDetail implements org.apache.thrift.TBase<UserAllocat
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)));
     tmpMap.put(_Fields.STATUS, new org.apache.thrift.meta_data.FieldMetaData("status", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.IS_PRIMARY_OWNER, new org.apache.thrift.meta_data.FieldMetaData("isPrimaryOwner", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
     metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
     org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(UserAllocationDetail.class, metaDataMap);
   }
@@ -300,6 +308,7 @@ public class UserAllocationDetail implements org.apache.thrift.TBase<UserAllocat
     if (other.isSetStatus()) {
       this.status = other.status;
     }
+    this.isPrimaryOwner = other.isPrimaryOwner;
   }
 
   public UserAllocationDetail deepCopy() {
@@ -337,6 +346,8 @@ public class UserAllocationDetail implements org.apache.thrift.TBase<UserAllocat
     setEndDateIsSet(false);
     this.endDate = 0;
     this.status = null;
+    setIsPrimaryOwnerIsSet(false);
+    this.isPrimaryOwner = false;
   }
 
   public UserAllocationDetailPK getId() {
@@ -820,6 +831,29 @@ public class UserAllocationDetail implements org.apache.thrift.TBase<UserAllocat
     }
   }
 
+  public boolean isIsPrimaryOwner() {
+    return this.isPrimaryOwner;
+  }
+
+  public UserAllocationDetail setIsPrimaryOwner(boolean isPrimaryOwner) {
+    this.isPrimaryOwner = isPrimaryOwner;
+    setIsPrimaryOwnerIsSet(true);
+    return this;
+  }
+
+  public void unsetIsPrimaryOwner() {
+    __isset_bitfield = org.apache.thrift.EncodingUtils.clearBit(__isset_bitfield, __ISPRIMARYOWNER_ISSET_ID);
+  }
+
+  /** Returns true if field isPrimaryOwner is set (has been assigned a value) and false otherwise */
+  public boolean isSetIsPrimaryOwner() {
+    return org.apache.thrift.EncodingUtils.testBit(__isset_bitfield, __ISPRIMARYOWNER_ISSET_ID);
+  }
+
+  public void setIsPrimaryOwnerIsSet(boolean value) {
+    __isset_bitfield = org.apache.thrift.EncodingUtils.setBit(__isset_bitfield, __ISPRIMARYOWNER_ISSET_ID, value);
+  }
+
   public void setFieldValue(_Fields field, java.lang.Object value) {
     switch (field) {
     case ID:
@@ -986,6 +1020,14 @@ public class UserAllocationDetail implements org.apache.thrift.TBase<UserAllocat
       }
       break;
 
+    case IS_PRIMARY_OWNER:
+      if (value == null) {
+        unsetIsPrimaryOwner();
+      } else {
+        setIsPrimaryOwner((java.lang.Boolean)value);
+      }
+      break;
+
     }
   }
 
@@ -1051,6 +1093,9 @@ public class UserAllocationDetail implements org.apache.thrift.TBase<UserAllocat
     case STATUS:
       return getStatus();
 
+    case IS_PRIMARY_OWNER:
+      return isIsPrimaryOwner();
+
     }
     throw new java.lang.IllegalStateException();
   }
@@ -1102,6 +1147,8 @@ public class UserAllocationDetail implements org.apache.thrift.TBase<UserAllocat
       return isSetEndDate();
     case STATUS:
       return isSetStatus();
+    case IS_PRIMARY_OWNER:
+      return isSetIsPrimaryOwner();
     }
     throw new java.lang.IllegalStateException();
   }
@@ -1301,6 +1348,15 @@ public class UserAllocationDetail implements org.apache.thrift.TBase<UserAllocat
         return false;
     }
 
+    boolean this_present_isPrimaryOwner = true && this.isSetIsPrimaryOwner();
+    boolean that_present_isPrimaryOwner = true && that.isSetIsPrimaryOwner();
+    if (this_present_isPrimaryOwner || that_present_isPrimaryOwner) {
+      if (!(this_present_isPrimaryOwner && that_present_isPrimaryOwner))
+        return false;
+      if (this.isPrimaryOwner != that.isPrimaryOwner)
+        return false;
+    }
+
     return true;
   }
 
@@ -1388,6 +1444,10 @@ public class UserAllocationDetail implements org.apache.thrift.TBase<UserAllocat
     if (isSetStatus())
       hashCode = hashCode * 8191 + status.hashCode();
 
+    hashCode = hashCode * 8191 + ((isSetIsPrimaryOwner()) ? 131071 : 524287);
+    if (isSetIsPrimaryOwner())
+      hashCode = hashCode * 8191 + ((isPrimaryOwner) ? 131071 : 524287);
+
     return hashCode;
   }
 
@@ -1599,6 +1659,16 @@ public class UserAllocationDetail implements org.apache.thrift.TBase<UserAllocat
         return lastComparison;
       }
     }
+    lastComparison = java.lang.Boolean.valueOf(isSetIsPrimaryOwner()).compareTo(other.isSetIsPrimaryOwner());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetIsPrimaryOwner()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.isPrimaryOwner, other.isPrimaryOwner);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
     return 0;
   }
 
@@ -1782,6 +1852,12 @@ public class UserAllocationDetail implements org.apache.thrift.TBase<UserAllocat
       }
       first = false;
     }
+    if (isSetIsPrimaryOwner()) {
+      if (!first) sb.append(", ");
+      sb.append("isPrimaryOwner:");
+      sb.append(this.isPrimaryOwner);
+      first = false;
+    }
     sb.append(")");
     return sb.toString();
   }
@@ -1991,6 +2067,14 @@ public class UserAllocationDetail implements org.apache.thrift.TBase<UserAllocat
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
+          case 21: // IS_PRIMARY_OWNER
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.isPrimaryOwner = iprot.readBool();
+              struct.setIsPrimaryOwnerIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
           default:
             org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
         }
@@ -2128,6 +2212,11 @@ public class UserAllocationDetail implements org.apache.thrift.TBase<UserAllocat
           oprot.writeFieldEnd();
         }
       }
+      if (struct.isSetIsPrimaryOwner()) {
+        oprot.writeFieldBegin(IS_PRIMARY_OWNER_FIELD_DESC);
+        oprot.writeBool(struct.isPrimaryOwner);
+        oprot.writeFieldEnd();
+      }
       oprot.writeFieldStop();
       oprot.writeStructEnd();
     }
@@ -2206,7 +2295,10 @@ public class UserAllocationDetail implements org.apache.thrift.TBase<UserAllocat
       if (struct.isSetStatus()) {
         optionals.set(19);
       }
-      oprot.writeBitSet(optionals, 20);
+      if (struct.isSetIsPrimaryOwner()) {
+        optionals.set(20);
+      }
+      oprot.writeBitSet(optionals, 21);
       if (struct.isSetId()) {
         struct.id.write(oprot);
       }
@@ -2267,12 +2359,15 @@ public class UserAllocationDetail implements org.apache.thrift.TBase<UserAllocat
       if (struct.isSetStatus()) {
         oprot.writeString(struct.status);
       }
+      if (struct.isSetIsPrimaryOwner()) {
+        oprot.writeBool(struct.isPrimaryOwner);
+      }
     }
 
     @Override
     public void read(org.apache.thrift.protocol.TProtocol prot, UserAllocationDetail struct) throws org.apache.thrift.TException {
       org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
-      java.util.BitSet incoming = iprot.readBitSet(20);
+      java.util.BitSet incoming = iprot.readBitSet(21);
       if (incoming.get(0)) {
         struct.id = new UserAllocationDetailPK();
         struct.id.read(iprot);
@@ -2354,6 +2449,10 @@ public class UserAllocationDetail implements org.apache.thrift.TBase<UserAllocat
         struct.status = iprot.readString();
         struct.setStatusIsSet(true);
       }
+      if (incoming.get(20)) {
+        struct.isPrimaryOwner = iprot.readBool();
+        struct.setIsPrimaryOwnerIsSet(true);
+      }
     }
   }
 
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/models/UserAllocationDetailPK.java b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/models/UserAllocationDetailPK.java
index cb46d72..1e50a0c 100644
--- a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/models/UserAllocationDetailPK.java
+++ b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/models/UserAllocationDetailPK.java
@@ -1,5 +1,5 @@
 /**
- * Autogenerated by Thrift Compiler (1.0.0-dev)
+ * Autogenerated by Thrift Compiler (0.10.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -13,7 +13,7 @@ package org.apache.airavata.allocation.manager.models;
  * <li>sponsorName : Name of supervisor, manager, group leader or self</li>
  * 
  */
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (1.0.0-dev)", date = "2017-12-08")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.10.0)")
 public class UserAllocationDetailPK implements org.apache.thrift.TBase<UserAllocationDetailPK, UserAllocationDetailPK._Fields>, java.io.Serializable, Cloneable, Comparable<UserAllocationDetailPK> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UserAllocationDetailPK");
 
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/models/UserDetail.java b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/models/UserDetail.java
index 03cc2f5..6348406 100644
--- a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/models/UserDetail.java
+++ b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/models/UserDetail.java
@@ -1,5 +1,5 @@
 /**
- * Autogenerated by Thrift Compiler (1.0.0-dev)
+ * Autogenerated by Thrift Compiler (0.10.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -16,7 +16,7 @@ package org.apache.airavata.allocation.manager.models;
  * <li>userType: Type of the user</li>
  * 
  */
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (1.0.0-dev)", date = "2017-12-08")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.10.0)")
 public class UserDetail implements org.apache.thrift.TBase<UserDetail, UserDetail._Fields>, java.io.Serializable, Cloneable, Comparable<UserDetail> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("UserDetail");
 
diff --git a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/service/cpi/AllocationRegistryService.java b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/service/cpi/AllocationRegistryService.java
index 65234f8..2faba92 100644
--- a/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/service/cpi/AllocationRegistryService.java
+++ b/allocation-manager/airavata-allocation-manager/airavata-allocation-manager-stubs/src/main/java/org/apache/airavata/allocation/manager/service/cpi/AllocationRegistryService.java
@@ -1,5 +1,5 @@
 /**
- * Autogenerated by Thrift Compiler (1.0.0-dev)
+ * Autogenerated by Thrift Compiler (0.10.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -7,7 +7,7 @@
 package org.apache.airavata.allocation.manager.service.cpi;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
-@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (1.0.0-dev)", date = "2017-12-08")
+@javax.annotation.Generated(value = "Autogenerated by Thrift Compiler (0.10.0)")
 public class AllocationRegistryService {
 
   public interface Iface {
@@ -23,22 +23,25 @@ public class AllocationRegistryService {
      * <p>API method to check if the allocation request exists</p>
      * 
      * @param projectId
+     * @param userName
      */
-    public boolean isAllocationRequestExists(java.lang.String projectId) throws org.apache.thrift.TException;
+    public boolean isAllocationRequestExists(java.lang.String projectId, java.lang.String userName) throws org.apache.thrift.TException;
 
     /**
      * <p>API method to delete allocation request</p>
      * 
      * @param projectId
+     * @param userName
      */
-    public boolean deleteAllocationRequest(java.lang.String projectId) throws org.apache.thrift.TException;
+    public boolean deleteAllocationRequest(java.lang.String projectId, java.lang.String userName) throws org.apache.thrift.TException;
 
     /**
      * <p>API method to get an allocation Request</p>
      * 
      * @param projectId
+     * @param userName
      */
-    public org.apache.airavata.allocation.manager.models.UserAllocationDetail getAllocationRequest(java.lang.String projectId) throws org.apache.thrift.TException;
+    public org.apache.airavata.allocation.manager.models.UserAllocationDetail getAllocationRequest(java.lang.String projectId, java.lang.String userName) throws org.apache.thrift.TException;
 
     /**
      * <p>API method to update an allocation Request</p>
@@ -51,8 +54,9 @@ public class AllocationRegistryService {
      * <p>API method to get an allocation Request status</p>
      * 
      * @param projectId
+     * @param userName
      */
-    public java.lang.String getAllocationRequestStatus(java.lang.String projectId) throws org.apache.thrift.TException;
+    public java.lang.String getAllocationRequestStatus(java.lang.String projectId, java.lang.String userName) throws org.apache.thrift.TException;
 
     /**
      * <p>API method to get an allocation Request PI email</p>
@@ -147,15 +151,15 @@ public class AllocationRegistryService {
 
     public void createAllocationRequest(org.apache.airavata.allocation.manager.models.UserAllocationDetail allocDetail, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 
-    public void isAllocationRequestExists(java.lang.String projectId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
+    public void isAllocationRequestExists(java.lang.String projectId, java.lang.String userName, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 
-    public void deleteAllocationRequest(java.lang.String projectId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
+    public void deleteAllocationRequest(java.lang.String projectId, java.lang.String userName, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 
-    public void getAllocationRequest(java.lang.String projectId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.allocation.manager.models.UserAllocationDetail> resultHandler) throws org.apache.thrift.TException;
+    public void getAllocationRequest(java.lang.String projectId, java.lang.String userName, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.allocation.manager.models.UserAllocationDetail> resultHandler) throws org.apache.thrift.TException;
 
     public void updateAllocationRequest(org.apache.airavata.allocation.manager.models.UserAllocationDetail allocDetail, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException;
 
-    public void getAllocationRequestStatus(java.lang.String projectId, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
+    public void getAllocationRequestStatus(java.lang.String projectId, java.lang.String userName, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 
     public void getAllocationRequestUserEmail(java.lang.String userName, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException;
 
@@ -226,16 +230,17 @@ public class AllocationRegistryService {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "createAllocationRequest failed: unknown result");
     }
 
-    public boolean isAllocationRequestExists(java.lang.String projectId) throws org.apache.thrift.TException
+    public boolean isAllocationRequestExists(java.lang.String projectId, java.lang.String userName) throws org.apache.thrift.TException
     {
-      send_isAllocationRequestExists(projectId);
+      send_isAllocationRequestExists(projectId, userName);
       return recv_isAllocationRequestExists();
     }
 
-    public void send_isAllocationRequestExists(java.lang.String projectId) throws org.apache.thrift.TException
+    public void send_isAllocationRequestExists(java.lang.String projectId, java.lang.String userName) throws org.apache.thrift.TException
     {
       isAllocationRequestExists_args args = new isAllocationRequestExists_args();
       args.setProjectId(projectId);
+      args.setUserName(userName);
       sendBase("isAllocationRequestExists", args);
     }
 
@@ -249,16 +254,17 @@ public class AllocationRegistryService {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "isAllocationRequestExists failed: unknown result");
     }
 
-    public boolean deleteAllocationRequest(java.lang.String projectId) throws org.apache.thrift.TException
+    public boolean deleteAllocationRequest(java.lang.String projectId, java.lang.String userName) throws org.apache.thrift.TException
     {
-      send_deleteAllocationRequest(projectId);
+      send_deleteAllocationRequest(projectId, userName);
       return recv_deleteAllocationRequest();
     }
 
-    public void send_deleteAllocationRequest(java.lang.String projectId) throws org.apache.thrift.TException
+    public void send_deleteAllocationRequest(java.lang.String projectId, java.lang.String userName) throws org.apache.thrift.TException
     {
       deleteAllocationRequest_args args = new deleteAllocationRequest_args();
       args.setProjectId(projectId);
+      args.setUserName(userName);
       sendBase("deleteAllocationRequest", args);
     }
 
@@ -272,16 +278,17 @@ public class AllocationRegistryService {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "deleteAllocationRequest failed: unknown result");
     }
 
-    public org.apache.airavata.allocation.manager.models.UserAllocationDetail getAllocationRequest(java.lang.String projectId) throws org.apache.thrift.TException
+    public org.apache.airavata.allocation.manager.models.UserAllocationDetail getAllocationRequest(java.lang.String projectId, java.lang.String userName) throws org.apache.thrift.TException
     {
-      send_getAllocationRequest(projectId);
+      send_getAllocationRequest(projectId, userName);
       return recv_getAllocationRequest();
     }
 
-    public void send_getAllocationRequest(java.lang.String projectId) throws org.apache.thrift.TException
+    public void send_getAllocationRequest(java.lang.String projectId, java.lang.String userName) throws org.apache.thrift.TException
     {
       getAllocationRequest_args args = new getAllocationRequest_args();
       args.setProjectId(projectId);
+      args.setUserName(userName);
       sendBase("getAllocationRequest", args);
     }
 
@@ -318,16 +325,17 @@ public class AllocationRegistryService {
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "updateAllocationRequest failed: unknown result");
     }
 
-    public java.lang.String getAllocationRequestStatus(java.lang.String projectId) throws org.apache.thrift.TException
+    public java.lang.String getAllocationRequestStatus(java.lang.String projectId, java.lang.String userName) throws org.apache.thrift.TException
     {
-      send_getAllocationRequestStatus(projectId);
+      send_getAllocationRequestStatus(projectId, userName);
       return recv_getAllocationRequestStatus();
     }
 
-    public void send_getAllocationRequestStatus(java.lang.String projectId) throws org.apache.thrift.TException
+    public void send_getAllocationRequestStatus(java.lang.String projectId, java.lang.String userName) throws org.apache.thrift.TException
     {
       getAllocationRequestStatus_args args = new getAllocationRequestStatus_args();
       args.setProjectId(projectId);
+      args.setUserName(userName);
       sendBase("getAllocationRequestStatus", args);
     }
 
@@ -667,24 +675,27 @@ public class AllocationRegistryService {
       }
     }
 
-    public void isAllocationRequestExists(java.lang.String projectId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+    public void isAllocationRequestExists(java.lang.String projectId, java.lang.String userName, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
       checkReady();
-      isAllocationRequestExists_call method_call = new isAllocationRequestExists_call(projectId, resultHandler, this, ___protocolFactory, ___transport);
+      isAllocationRequestExists_call method_call = new isAllocationRequestExists_call(projectId, userName, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
       ___manager.call(method_call);
     }
 
     public static class isAllocationRequestExists_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Boolean> {
       private java.lang.String projectId;
-      public isAllocationRequestExists_call(java.lang.String projectId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      private java.lang.String userName;
+      public isAllocationRequestExists_call(java.lang.String projectId, java.lang.String userName, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.projectId = projectId;
+        this.userName = userName;
       }
 
       public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
         prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("isAllocationRequestExists", org.apache.thrift.protocol.TMessageType.CALL, 0));
         isAllocationRequestExists_args args = new isAllocationRequestExists_args();
         args.setProjectId(projectId);
+        args.setUserName(userName);
         args.write(prot);
         prot.writeMessageEnd();
       }
@@ -699,24 +710,27 @@ public class AllocationRegistryService {
       }
     }
 
-    public void deleteAllocationRequest(java.lang.String projectId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
+    public void deleteAllocationRequest(java.lang.String projectId, java.lang.String userName, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
       checkReady();
-      deleteAllocationRequest_call method_call = new deleteAllocationRequest_call(projectId, resultHandler, this, ___protocolFactory, ___transport);
+      deleteAllocationRequest_call method_call = new deleteAllocationRequest_call(projectId, userName, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
       ___manager.call(method_call);
     }
 
     public static class deleteAllocationRequest_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.Boolean> {
       private java.lang.String projectId;
-      public deleteAllocationRequest_call(java.lang.String projectId, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      private java.lang.String userName;
+      public deleteAllocationRequest_call(java.lang.String projectId, java.lang.String userName, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.projectId = projectId;
+        this.userName = userName;
       }
 
       public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
         prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("deleteAllocationRequest", org.apache.thrift.protocol.TMessageType.CALL, 0));
         deleteAllocationRequest_args args = new deleteAllocationRequest_args();
         args.setProjectId(projectId);
+        args.setUserName(userName);
         args.write(prot);
         prot.writeMessageEnd();
       }
@@ -731,24 +745,27 @@ public class AllocationRegistryService {
       }
     }
 
-    public void getAllocationRequest(java.lang.String projectId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.allocation.manager.models.UserAllocationDetail> resultHandler) throws org.apache.thrift.TException {
+    public void getAllocationRequest(java.lang.String projectId, java.lang.String userName, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.allocation.manager.models.UserAllocationDetail> resultHandler) throws org.apache.thrift.TException {
       checkReady();
-      getAllocationRequest_call method_call = new getAllocationRequest_call(projectId, resultHandler, this, ___protocolFactory, ___transport);
+      getAllocationRequest_call method_call = new getAllocationRequest_call(projectId, userName, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
       ___manager.call(method_call);
     }
 
     public static class getAllocationRequest_call extends org.apache.thrift.async.TAsyncMethodCall<org.apache.airavata.allocation.manager.models.UserAllocationDetail> {
       private java.lang.String projectId;
-      public getAllocationRequest_call(java.lang.String projectId, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.allocation.manager.models.UserAllocationDetail> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      private java.lang.String userName;
+      public getAllocationRequest_call(java.lang.String projectId, java.lang.String userName, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.allocation.manager.models.UserAllocationDetail> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.projectId = projectId;
+        this.userName = userName;
       }
 
       public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
         prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getAllocationRequest", org.apache.thrift.protocol.TMessageType.CALL, 0));
         getAllocationRequest_args args = new getAllocationRequest_args();
         args.setProjectId(projectId);
+        args.setUserName(userName);
         args.write(prot);
         prot.writeMessageEnd();
       }
@@ -795,24 +812,27 @@ public class AllocationRegistryService {
       }
     }
 
-    public void getAllocationRequestStatus(java.lang.String projectId, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
+    public void getAllocationRequestStatus(java.lang.String projectId, java.lang.String userName, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
       checkReady();
-      getAllocationRequestStatus_call method_call = new getAllocationRequestStatus_call(projectId, resultHandler, this, ___protocolFactory, ___transport);
+      getAllocationRequestStatus_call method_call = new getAllocationRequestStatus_call(projectId, userName, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
       ___manager.call(method_call);
     }
 
     public static class getAllocationRequestStatus_call extends org.apache.thrift.async.TAsyncMethodCall<java.lang.String> {
       private java.lang.String projectId;
-      public getAllocationRequestStatus_call(java.lang.String projectId, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      private java.lang.String userName;
+      public getAllocationRequestStatus_call(java.lang.String projectId, java.lang.String userName, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.projectId = projectId;
+        this.userName = userName;
       }
 
       public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
         prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("getAllocationRequestStatus", org.apache.thrift.protocol.TMessageType.CALL, 0));
         getAllocationRequestStatus_args args = new getAllocationRequestStatus_args();
         args.setProjectId(projectId);
+        args.setUserName(userName);
         args.write(prot);
         prot.writeMessageEnd();
       }
@@ -1267,11 +1287,6 @@ public class AllocationRegistryService {
         return false;
       }
 
-      @Override
-      protected boolean handleRuntimeExceptions() {
-        return false;
-      }
-
       public createAllocationRequest_result getResult(I iface, createAllocationRequest_args args) throws org.apache.thrift.TException {
         createAllocationRequest_result result = new createAllocationRequest_result();
         result.success = iface.createAllocationRequest(args.allocDetail);
@@ -1292,14 +1307,9 @@ public class AllocationRegistryService {
         return false;
       }
 
-      @Override
-      protected boolean handleRuntimeExceptions() {
-        return false;
-      }
-
       public isAllocationRequestExists_result getResult(I iface, isAllocationRequestExists_args args) throws org.apache.thrift.TException {
         isAllocationRequestExists_result result = new isAllocationRequestExists_result();
-        result.success = iface.isAllocationRequestExists(args.projectId);
+        result.success = iface.isAllocationRequestExists(args.projectId, args.userName);
         result.setSuccessIsSet(true);
         return result;
       }
@@ -1318,14 +1328,9 @@ public class AllocationRegistryService {
         return false;
       }
 
-      @Override
-      protected boolean handleRuntimeExceptions() {
-        return false;
-      }
-
       public deleteAllocationRequest_result getResult(I iface, deleteAllocationRequest_args args) throws org.apache.thrift.TException {
         deleteAllocationRequest_result result = new deleteAllocationRequest_result();
-        result.success = iface.deleteAllocationRequest(args.projectId);
+        result.success = iface.deleteAllocationRequest(args.projectId, args.userName);
         result.setSuccessIsSet(true);
         return result;
       }
@@ -1344,14 +1349,9 @@ public class AllocationRegistryService {
         return false;
       }
 
-      @Override
-      protected boolean handleRuntimeExceptions() {
-        return false;
-      }
-
       public getAllocationRequest_result getResult(I iface, getAllocationRequest_args args) throws org.apache.thrift.TException {
         getAllocationRequest_result result = new getAllocationRequest_result();
-        result.success = iface.getAllocationRequest(args.projectId);
+        result.success = iface.getAllocationRequest(args.projectId, args.userName);
         return result;
       }
     }
@@ -1369,11 +1369,6 @@ public class AllocationRegistryService {
         return false;
       }
 
-      @Override
-      protected boolean handleRuntimeExceptions() {
-        return false;
-      }
-
       public updateAllocationRequest_result getResult(I iface, updateAllocationRequest_args args) throws org.apache.thrift.TException {
         updateAllocationRequest_result result = new updateAllocationRequest_result();
         result.success = iface.updateAllocationRequest(args.allocDetail);
@@ -1395,14 +1390,9 @@ public class AllocationRegistryService {
         return false;
       }
 
-      @Override
-      protected boolean handleRuntimeExceptions() {
-        return false;
-      }
-
       public getAllocationRequestStatus_result getResult(I iface, getAllocationRequestStatus_args args) throws org.apache.thrift.TException {
         getAllocationRequestStatus_result result = new getAllocationRequestStatus_result();
-        result.success = iface.getAllocationRequestStatus(args.projectId);
+        result.success = iface.getAllocationRequestStatus(args.projectId, args.userName);
         return result;
       }
     }
@@ -1420,11 +1410,6 @@ public class AllocationRegistryService {
         return false;
       }
 
-      @Override
-      protected boolean handleRuntimeExceptions() {
-        return false;
-      }
-
       public getAllocationRequestUserEmail_result getResult(I iface, getAllocationRequestUserEmail_args args) throws org.apache.thrift.TException {
         getAllocationRequestUserEmail_result result = new getAllocationRequestUserEmail_result();
         result.success = iface.getAllocationRequestUserEmail(args.userName);
@@ -1445,11 +1430,6 @@ public class AllocationRegistryService {
         return false;
       }
 
-      @Override
-      protected boolean handleRuntimeExceptions() {
-        return false;
-      }
-
       public getAllocationManagerAdminEmail_result getResult(I iface, getAllocationManagerAdminEmail_args args) throws org.apache.thrift.TException {
         getAllocationManagerAdminEmail_result result = new getAllocationManagerAdminEmail_result();
         result.success = iface.getAllocationManagerAdminEmail(args.userType);
@@ -1470,11 +1450,6 @@ public class AllocationRegistryService {
         return false;
       }
 
-      @Override
-      protected boolean handleRuntimeExceptions() {
-        return false;
-      }
-
       public getAllocationRequestUserName_result getResult(I iface, getAllocationRequestUserName_args args) throws org.apache.thrift.TException {
         getAllocationRequestUserName_result result = new getAllocationRequestUserName_result();
         result.success = iface.getAllocationRequestUserName(args.projectId);
@@ -1495,11 +1470,6 @@ public class AllocationRegistryService {
         return false;
       }
 
-      @Override
-      protected boolean handleRuntimeExceptions() {
-        return false;
-      }
-
       public updateAllocationRequestStatus_result getResult(I iface, updateAllocationRequestStatus_args args) throws org.apache.thrift.TException {
         updateAllocationRequestStatus_result result = new updateAllocationRequestStatus_result();
         iface.updateAllocationRequestStatus(args.projectId, args.status);
@@ -1520,11 +1490,6 @@ public class AllocationRegistryService {
         return false;
       }
 
-      @Override
-      protected boolean handleRuntimeExceptions() {
-        return false;
-      }
-
       public getAllRequestsForAdmin_result getResult(I iface, getAllRequestsForAdmin_args args) throws org.apache.thrift.TException {
         getAllRequestsForAdmin_result result = new getAllRequestsForAdmin_result();
         result.success = iface.getAllRequestsForAdmin(args.userName);
@@ -1545,11 +1510,6 @@ public class AllocationRegistryService {
         return false;
       }
 
-      @Override
-      protected boolean handleRuntimeExceptions() {
-        return false;
-      }
-
       public assignReviewers_result getResult(I iface, assignReviewers_args args) throws org.apache.thrift.TException {
         assignReviewers_result result = new assignReviewers_result();
         result.success = iface.assignReviewers(args.projectId, args.userName);
@@ -1571,11 +1531,6 @@ public class AllocationRegistryService {
         return false;
       }
 
-      @Override
-      protected boolean handleRuntimeExceptions() {
-        return false;
-      }
-
       public updateRequestByReviewer_result getResult(I iface, updateRequestByReviewer_args args) throws org.apache.thrift.TException {
         updateRequestByReviewer_result result = new updateRequestByReviewer_result();
         result.success = iface.updateRequestByReviewer(args.projectId, args.userAllocationDetail);
@@ -1597,11 +1552,6 @@ public class AllocationRegistryService {
         return false;
       }
 
-      @Override
-      protected boolean handleRuntimeExceptions() {
-        return false;
-      }
-
       public isAdmin_result getResult(I iface, isAdmin_args args) throws org.apache.thrift.TException {
         isAdmin_result result = new isAdmin_result();
         result.success = iface.isAdmin(args.userName);
@@ -1623,11 +1573,6 @@ public class AllocationRegistryService {
         return false;
       }
 
-      @Override
-      protected boolean handleRuntimeExceptions() {
-        return false;
-      }
-
       public isReviewer_result getResult(I iface, isReviewer_args args) throws org.apache.thrift.TException {
         isReviewer_result result = new isReviewer_result();
         result.success = iface.isReviewer(args.userName);
@@ -1649,11 +1594,6 @@ public class AllocationRegistryService {
         return false;
       }
 
-      @Override
-      protected boolean handleRuntimeExceptions() {
-        return false;
-      }
-
       public getAllRequestsForReviewers_result getResult(I iface, getAllRequestsForReviewers_args args) throws org.apache.thrift.TException {
         getAllRequestsForReviewers_result result = new getAllRequestsForReviewers_result();
         result.success = iface.getAllRequestsForReviewers(args.userName);
@@ -1674,11 +1614,6 @@ public class AllocationRegistryService {
         return false;
       }
 
-      @Override
-      protected boolean handleRuntimeExceptions() {
-        return false;
-      }
-
       public getUserDetails_result getResult(I iface, getUserDetails_args args) throws org.apache.thrift.TException {
         getUserDetails_result result = new getUserDetails_result();
         result.success = iface.getUserDetails(args.userName);
@@ -1699,11 +1634,6 @@ public class AllocationRegistryService {
         return false;
       }
 
-      @Override
-      protected boolean handleRuntimeExceptions() {
-        return false;
-      }
-
       public getReviewsForRequest_result getResult(I iface, getReviewsForRequest_args args) throws org.apache.thrift.TException {
         getReviewsForRequest_result result = new getReviewsForRequest_result();
         result.success = iface.getReviewsForRequest(args.projectId);
@@ -1864,7 +1794,7 @@ public class AllocationRegistryService {
       }
 
       public void start(I iface, isAllocationRequestExists_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.isAllocationRequestExists(args.projectId,resultHandler);
+        iface.isAllocationRequestExists(args.projectId, args.userName,resultHandler);
       }
     }
 
@@ -1926,7 +1856,7 @@ public class AllocationRegistryService {
       }
 
       public void start(I iface, deleteAllocationRequest_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.Boolean> resultHandler) throws org.apache.thrift.TException {
-        iface.deleteAllocationRequest(args.projectId,resultHandler);
+        iface.deleteAllocationRequest(args.projectId, args.userName,resultHandler);
       }
     }
 
@@ -1987,7 +1917,7 @@ public class AllocationRegistryService {
       }
 
       public void start(I iface, getAllocationRequest_args args, org.apache.thrift.async.AsyncMethodCallback<org.apache.airavata.allocation.manager.models.UserAllocationDetail> resultHandler) throws org.apache.thrift.TException {
-        iface.getAllocationRequest(args.projectId,resultHandler);
+        iface.getAllocationRequest(args.projectId, args.userName,resultHandler);
       }
     }
 
@@ -2110,7 +2040,7 @@ public class AllocationRegistryService {
       }
 
       public void start(I iface, getAllocationRequestStatus_args args, org.apache.thrift.async.AsyncMethodCallback<java.lang.String> resultHandler) throws org.apache.thrift.TException {
-        iface.getAllocationRequestStatus(args.projectId,resultHandler);
+        iface.getAllocationRequestStatus(args.projectId, args.userName,resultHandler);
       }
     }
 
@@ -3577,15 +3507,18 @@ public class AllocationRegistryService {
     private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("isAllocationRequestExists_args");
 
     private static final org.apache.thrift.protocol.TField PROJECT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("projectId", org.apache.thrift.protocol.TType.STRING, (short)1);
+    private static final org.apache.thrift.protocol.TField USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("userName", org.apache.thrift.protocol.TType.STRING, (short)2);
 
     private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new isAllocationRequestExists_argsStandardSchemeFactory();
     private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new isAllocationRequestExists_argsTupleSchemeFactory();
 
     public java.lang.String projectId; // required
+    public java.lang.String userName; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-      PROJECT_ID((short)1, "projectId");
+      PROJECT_ID((short)1, "projectId"),
+      USER_NAME((short)2, "userName");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -3602,6 +3535,8 @@ public class AllocationRegistryService {
         switch(fieldId) {
           case 1: // PROJECT_ID
             return PROJECT_ID;
+          case 2: // USER_NAME
+            return USER_NAME;
           default:
             return null;
         }
@@ -3647,6 +3582,8 @@ public class AllocationRegistryService {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.PROJECT_ID, new org.apache.thrift.meta_data.FieldMetaData("projectId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      tmpMap.put(_Fields.USER_NAME, new org.apache.thrift.meta_data.FieldMetaData("userName", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(isAllocationRequestExists_args.class, metaDataMap);
     }
@@ -3655,10 +3592,12 @@ public class AllocationRegistryService {
     }
 
     public isAllocationRequestExists_args(
-      java.lang.String projectId)
+      java.lang.String projectId,
+      java.lang.String userName)
     {
       this();
       this.projectId = projectId;
+      this.userName = userName;
     }
 
     /**
@@ -3668,6 +3607,9 @@ public class AllocationRegistryService {
       if (other.isSetProjectId()) {
         this.projectId = other.projectId;
       }
+      if (other.isSetUserName()) {
+        this.userName = other.userName;
+      }
     }
 
     public isAllocationRequestExists_args deepCopy() {
@@ -3677,6 +3619,7 @@ public class AllocationRegistryService {
     @Override
     public void clear() {
       this.projectId = null;
+      this.userName = null;
     }
 
     public java.lang.String getProjectId() {
@@ -3703,6 +3646,30 @@ public class AllocationRegistryService {
       }
     }
 
+    public java.lang.String getUserName() {
+      return this.userName;
+    }
+
+    public isAllocationRequestExists_args setUserName(java.lang.String userName) {
+      this.userName = userName;
+      return this;
+    }
+
+    public void unsetUserName() {
+      this.userName = null;
+    }
+
+    /** Returns true if field userName is set (has been assigned a value) and false otherwise */
+    public boolean isSetUserName() {
+      return this.userName != null;
+    }
+
+    public void setUserNameIsSet(boolean value) {
+      if (!value) {
+        this.userName = null;
+      }
+    }
+
     public void setFieldValue(_Fields field, java.lang.Object value) {
       switch (field) {
       case PROJECT_ID:
@@ -3713,6 +3680,14 @@ public class AllocationRegistryService {
         }
         break;
 
+      case USER_NAME:
+        if (value == null) {
+          unsetUserName();
+        } else {
+          setUserName((java.lang.String)value);
+        }
+        break;
+
       }
     }
 
@@ -3721,6 +3696,9 @@ public class AllocationRegistryService {
       case PROJECT_ID:
         return getProjectId();
 
+      case USER_NAME:
+        return getUserName();
+
       }
       throw new java.lang.IllegalStateException();
     }
@@ -3734,6 +3712,8 @@ public class AllocationRegistryService {
       switch (field) {
       case PROJECT_ID:
         return isSetProjectId();
+      case USER_NAME:
+        return isSetUserName();
       }
       throw new java.lang.IllegalStateException();
     }
@@ -3762,6 +3742,15 @@ public class AllocationRegistryService {
           return false;
       }
 
+      boolean this_present_userName = true && this.isSetUserName();
+      boolean that_present_userName = true && that.isSetUserName();
+      if (this_present_userName || that_present_userName) {
+        if (!(this_present_userName && that_present_userName))
+          return false;
+        if (!this.userName.equals(that.userName))
+          return false;
+      }
+
       return true;
     }
 
@@ -3773,6 +3762,10 @@ public class AllocationRegistryService {
       if (isSetProjectId())
         hashCode = hashCode * 8191 + projectId.hashCode();
 
+      hashCode = hashCode * 8191 + ((isSetUserName()) ? 131071 : 524287);
+      if (isSetUserName())
+        hashCode = hashCode * 8191 + userName.hashCode();
+
       return hashCode;
     }
 
@@ -3794,6 +3787,16 @@ public class AllocationRegistryService {
           return lastComparison;
         }
       }
+      lastComparison = java.lang.Boolean.valueOf(isSetUserName()).compareTo(other.isSetUserName());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetUserName()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.userName, other.userName);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
       return 0;
     }
 
@@ -3821,6 +3824,14 @@ public class AllocationRegistryService {
         sb.append(this.projectId);
       }
       first = false;
+      if (!first) sb.append(", ");
+      sb.append("userName:");
+      if (this.userName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.userName);
+      }
+      first = false;
       sb.append(")");
       return sb.toString();
     }
@@ -3830,6 +3841,9 @@ public class AllocationRegistryService {
       if (projectId == null) {
         throw new org.apache.thrift.protocol.TProtocolException("Required field 'projectId' was not present! Struct: " + toString());
       }
+      if (userName == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'userName' was not present! Struct: " + toString());
+      }
       // check for sub-struct validity
     }
 
@@ -3875,6 +3889,14 @@ public class AllocationRegistryService {
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
+            case 2: // USER_NAME
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.userName = iprot.readString();
+                struct.setUserNameIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
             default:
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
           }
@@ -3895,6 +3917,11 @@ public class AllocationRegistryService {
           oprot.writeString(struct.projectId);
           oprot.writeFieldEnd();
         }
+        if (struct.userName != null) {
+          oprot.writeFieldBegin(USER_NAME_FIELD_DESC);
+          oprot.writeString(struct.userName);
+          oprot.writeFieldEnd();
+        }
         oprot.writeFieldStop();
         oprot.writeStructEnd();
       }
@@ -3913,6 +3940,7 @@ public class AllocationRegistryService {
       public void write(org.apache.thrift.protocol.TProtocol prot, isAllocationRequestExists_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         oprot.writeString(struct.projectId);
+        oprot.writeString(struct.userName);
       }
 
       @Override
@@ -3920,6 +3948,8 @@ public class AllocationRegistryService {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.projectId = iprot.readString();
         struct.setProjectIdIsSet(true);
+        struct.userName = iprot.readString();
+        struct.setUserNameIsSet(true);
       }
     }
 
@@ -4292,15 +4322,18 @@ public class AllocationRegistryService {
     private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("deleteAllocationRequest_args");
 
     private static final org.apache.thrift.protocol.TField PROJECT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("projectId", org.apache.thrift.protocol.TType.STRING, (short)1);
+    private static final org.apache.thrift.protocol.TField USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("userName", org.apache.thrift.protocol.TType.STRING, (short)2);
 
     private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new deleteAllocationRequest_argsStandardSchemeFactory();
     private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new deleteAllocationRequest_argsTupleSchemeFactory();
 
     public java.lang.String projectId; // required
+    public java.lang.String userName; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-      PROJECT_ID((short)1, "projectId");
+      PROJECT_ID((short)1, "projectId"),
+      USER_NAME((short)2, "userName");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -4317,6 +4350,8 @@ public class AllocationRegistryService {
         switch(fieldId) {
           case 1: // PROJECT_ID
             return PROJECT_ID;
+          case 2: // USER_NAME
+            return USER_NAME;
           default:
             return null;
         }
@@ -4362,6 +4397,8 @@ public class AllocationRegistryService {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.PROJECT_ID, new org.apache.thrift.meta_data.FieldMetaData("projectId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      tmpMap.put(_Fields.USER_NAME, new org.apache.thrift.meta_data.FieldMetaData("userName", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(deleteAllocationRequest_args.class, metaDataMap);
     }
@@ -4370,10 +4407,12 @@ public class AllocationRegistryService {
     }
 
     public deleteAllocationRequest_args(
-      java.lang.String projectId)
+      java.lang.String projectId,
+      java.lang.String userName)
     {
       this();
       this.projectId = projectId;
+      this.userName = userName;
     }
 
     /**
@@ -4383,6 +4422,9 @@ public class AllocationRegistryService {
       if (other.isSetProjectId()) {
         this.projectId = other.projectId;
       }
+      if (other.isSetUserName()) {
+        this.userName = other.userName;
+      }
     }
 
     public deleteAllocationRequest_args deepCopy() {
@@ -4392,6 +4434,7 @@ public class AllocationRegistryService {
     @Override
     public void clear() {
       this.projectId = null;
+      this.userName = null;
     }
 
     public java.lang.String getProjectId() {
@@ -4418,6 +4461,30 @@ public class AllocationRegistryService {
       }
     }
 
+    public java.lang.String getUserName() {
+      return this.userName;
+    }
+
+    public deleteAllocationRequest_args setUserName(java.lang.String userName) {
+      this.userName = userName;
+      return this;
+    }
+
+    public void unsetUserName() {
+      this.userName = null;
+    }
+
+    /** Returns true if field userName is set (has been assigned a value) and false otherwise */
+    public boolean isSetUserName() {
+      return this.userName != null;
+    }
+
+    public void setUserNameIsSet(boolean value) {
+      if (!value) {
+        this.userName = null;
+      }
+    }
+
     public void setFieldValue(_Fields field, java.lang.Object value) {
       switch (field) {
       case PROJECT_ID:
@@ -4428,6 +4495,14 @@ public class AllocationRegistryService {
         }
         break;
 
+      case USER_NAME:
+        if (value == null) {
+          unsetUserName();
+        } else {
+          setUserName((java.lang.String)value);
+        }
+        break;
+
       }
     }
 
@@ -4436,6 +4511,9 @@ public class AllocationRegistryService {
       case PROJECT_ID:
         return getProjectId();
 
+      case USER_NAME:
+        return getUserName();
+
       }
       throw new java.lang.IllegalStateException();
     }
@@ -4449,6 +4527,8 @@ public class AllocationRegistryService {
       switch (field) {
       case PROJECT_ID:
         return isSetProjectId();
+      case USER_NAME:
+        return isSetUserName();
       }
       throw new java.lang.IllegalStateException();
     }
@@ -4477,6 +4557,15 @@ public class AllocationRegistryService {
           return false;
       }
 
+      boolean this_present_userName = true && this.isSetUserName();
+      boolean that_present_userName = true && that.isSetUserName();
+      if (this_present_userName || that_present_userName) {
+        if (!(this_present_userName && that_present_userName))
+          return false;
+        if (!this.userName.equals(that.userName))
+          return false;
+      }
+
       return true;
     }
 
@@ -4488,6 +4577,10 @@ public class AllocationRegistryService {
       if (isSetProjectId())
         hashCode = hashCode * 8191 + projectId.hashCode();
 
+      hashCode = hashCode * 8191 + ((isSetUserName()) ? 131071 : 524287);
+      if (isSetUserName())
+        hashCode = hashCode * 8191 + userName.hashCode();
+
       return hashCode;
     }
 
@@ -4509,6 +4602,16 @@ public class AllocationRegistryService {
           return lastComparison;
         }
       }
+      lastComparison = java.lang.Boolean.valueOf(isSetUserName()).compareTo(other.isSetUserName());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetUserName()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.userName, other.userName);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
       return 0;
     }
 
@@ -4536,6 +4639,14 @@ public class AllocationRegistryService {
         sb.append(this.projectId);
       }
       first = false;
+      if (!first) sb.append(", ");
+      sb.append("userName:");
+      if (this.userName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.userName);
+      }
+      first = false;
       sb.append(")");
       return sb.toString();
     }
@@ -4545,6 +4656,9 @@ public class AllocationRegistryService {
       if (projectId == null) {
         throw new org.apache.thrift.protocol.TProtocolException("Required field 'projectId' was not present! Struct: " + toString());
       }
+      if (userName == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'userName' was not present! Struct: " + toString());
+      }
       // check for sub-struct validity
     }
 
@@ -4590,6 +4704,14 @@ public class AllocationRegistryService {
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
+            case 2: // USER_NAME
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.userName = iprot.readString();
+                struct.setUserNameIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
             default:
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
           }
@@ -4610,6 +4732,11 @@ public class AllocationRegistryService {
           oprot.writeString(struct.projectId);
           oprot.writeFieldEnd();
         }
+        if (struct.userName != null) {
+          oprot.writeFieldBegin(USER_NAME_FIELD_DESC);
+          oprot.writeString(struct.userName);
+          oprot.writeFieldEnd();
+        }
         oprot.writeFieldStop();
         oprot.writeStructEnd();
       }
@@ -4628,6 +4755,7 @@ public class AllocationRegistryService {
       public void write(org.apache.thrift.protocol.TProtocol prot, deleteAllocationRequest_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         oprot.writeString(struct.projectId);
+        oprot.writeString(struct.userName);
       }
 
       @Override
@@ -4635,6 +4763,8 @@ public class AllocationRegistryService {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.projectId = iprot.readString();
         struct.setProjectIdIsSet(true);
+        struct.userName = iprot.readString();
+        struct.setUserNameIsSet(true);
       }
     }
 
@@ -5007,15 +5137,18 @@ public class AllocationRegistryService {
     private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAllocationRequest_args");
 
     private static final org.apache.thrift.protocol.TField PROJECT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("projectId", org.apache.thrift.protocol.TType.STRING, (short)1);
+    private static final org.apache.thrift.protocol.TField USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("userName", org.apache.thrift.protocol.TType.STRING, (short)2);
 
     private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getAllocationRequest_argsStandardSchemeFactory();
     private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getAllocationRequest_argsTupleSchemeFactory();
 
     public java.lang.String projectId; // required
+    public java.lang.String userName; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-      PROJECT_ID((short)1, "projectId");
+      PROJECT_ID((short)1, "projectId"),
+      USER_NAME((short)2, "userName");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -5032,6 +5165,8 @@ public class AllocationRegistryService {
         switch(fieldId) {
           case 1: // PROJECT_ID
             return PROJECT_ID;
+          case 2: // USER_NAME
+            return USER_NAME;
           default:
             return null;
         }
@@ -5077,6 +5212,8 @@ public class AllocationRegistryService {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.PROJECT_ID, new org.apache.thrift.meta_data.FieldMetaData("projectId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      tmpMap.put(_Fields.USER_NAME, new org.apache.thrift.meta_data.FieldMetaData("userName", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAllocationRequest_args.class, metaDataMap);
     }
@@ -5085,10 +5222,12 @@ public class AllocationRegistryService {
     }
 
     public getAllocationRequest_args(
-      java.lang.String projectId)
+      java.lang.String projectId,
+      java.lang.String userName)
     {
       this();
       this.projectId = projectId;
+      this.userName = userName;
     }
 
     /**
@@ -5098,6 +5237,9 @@ public class AllocationRegistryService {
       if (other.isSetProjectId()) {
         this.projectId = other.projectId;
       }
+      if (other.isSetUserName()) {
+        this.userName = other.userName;
+      }
     }
 
     public getAllocationRequest_args deepCopy() {
@@ -5107,6 +5249,7 @@ public class AllocationRegistryService {
     @Override
     public void clear() {
       this.projectId = null;
+      this.userName = null;
     }
 
     public java.lang.String getProjectId() {
@@ -5133,6 +5276,30 @@ public class AllocationRegistryService {
       }
     }
 
+    public java.lang.String getUserName() {
+      return this.userName;
+    }
+
+    public getAllocationRequest_args setUserName(java.lang.String userName) {
+      this.userName = userName;
+      return this;
+    }
+
+    public void unsetUserName() {
+      this.userName = null;
+    }
+
+    /** Returns true if field userName is set (has been assigned a value) and false otherwise */
+    public boolean isSetUserName() {
+      return this.userName != null;
+    }
+
+    public void setUserNameIsSet(boolean value) {
+      if (!value) {
+        this.userName = null;
+      }
+    }
+
     public void setFieldValue(_Fields field, java.lang.Object value) {
       switch (field) {
       case PROJECT_ID:
@@ -5143,6 +5310,14 @@ public class AllocationRegistryService {
         }
         break;
 
+      case USER_NAME:
+        if (value == null) {
+          unsetUserName();
+        } else {
+          setUserName((java.lang.String)value);
+        }
+        break;
+
       }
     }
 
@@ -5151,6 +5326,9 @@ public class AllocationRegistryService {
       case PROJECT_ID:
         return getProjectId();
 
+      case USER_NAME:
+        return getUserName();
+
       }
       throw new java.lang.IllegalStateException();
     }
@@ -5164,6 +5342,8 @@ public class AllocationRegistryService {
       switch (field) {
       case PROJECT_ID:
         return isSetProjectId();
+      case USER_NAME:
+        return isSetUserName();
       }
       throw new java.lang.IllegalStateException();
     }
@@ -5192,6 +5372,15 @@ public class AllocationRegistryService {
           return false;
       }
 
+      boolean this_present_userName = true && this.isSetUserName();
+      boolean that_present_userName = true && that.isSetUserName();
+      if (this_present_userName || that_present_userName) {
+        if (!(this_present_userName && that_present_userName))
+          return false;
+        if (!this.userName.equals(that.userName))
+          return false;
+      }
+
       return true;
     }
 
@@ -5203,6 +5392,10 @@ public class AllocationRegistryService {
       if (isSetProjectId())
         hashCode = hashCode * 8191 + projectId.hashCode();
 
+      hashCode = hashCode * 8191 + ((isSetUserName()) ? 131071 : 524287);
+      if (isSetUserName())
+        hashCode = hashCode * 8191 + userName.hashCode();
+
       return hashCode;
     }
 
@@ -5224,6 +5417,16 @@ public class AllocationRegistryService {
           return lastComparison;
         }
       }
+      lastComparison = java.lang.Boolean.valueOf(isSetUserName()).compareTo(other.isSetUserName());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetUserName()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.userName, other.userName);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
       return 0;
     }
 
@@ -5251,6 +5454,14 @@ public class AllocationRegistryService {
         sb.append(this.projectId);
       }
       first = false;
+      if (!first) sb.append(", ");
+      sb.append("userName:");
+      if (this.userName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.userName);
+      }
+      first = false;
       sb.append(")");
       return sb.toString();
     }
@@ -5260,6 +5471,9 @@ public class AllocationRegistryService {
       if (projectId == null) {
         throw new org.apache.thrift.protocol.TProtocolException("Required field 'projectId' was not present! Struct: " + toString());
       }
+      if (userName == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'userName' was not present! Struct: " + toString());
+      }
       // check for sub-struct validity
     }
 
@@ -5305,6 +5519,14 @@ public class AllocationRegistryService {
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
+            case 2: // USER_NAME
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.userName = iprot.readString();
+                struct.setUserNameIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
             default:
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
           }
@@ -5325,6 +5547,11 @@ public class AllocationRegistryService {
           oprot.writeString(struct.projectId);
           oprot.writeFieldEnd();
         }
+        if (struct.userName != null) {
+          oprot.writeFieldBegin(USER_NAME_FIELD_DESC);
+          oprot.writeString(struct.userName);
+          oprot.writeFieldEnd();
+        }
         oprot.writeFieldStop();
         oprot.writeStructEnd();
       }
@@ -5343,6 +5570,7 @@ public class AllocationRegistryService {
       public void write(org.apache.thrift.protocol.TProtocol prot, getAllocationRequest_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         oprot.writeString(struct.projectId);
+        oprot.writeString(struct.userName);
       }
 
       @Override
@@ -5350,6 +5578,8 @@ public class AllocationRegistryService {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.projectId = iprot.readString();
         struct.setProjectIdIsSet(true);
+        struct.userName = iprot.readString();
+        struct.setUserNameIsSet(true);
       }
     }
 
@@ -6449,15 +6679,18 @@ public class AllocationRegistryService {
     private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("getAllocationRequestStatus_args");
 
     private static final org.apache.thrift.protocol.TField PROJECT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("projectId", org.apache.thrift.protocol.TType.STRING, (short)1);
+    private static final org.apache.thrift.protocol.TField USER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("userName", org.apache.thrift.protocol.TType.STRING, (short)2);
 
     private static final org.apache.thrift.scheme.SchemeFactory STANDARD_SCHEME_FACTORY = new getAllocationRequestStatus_argsStandardSchemeFactory();
     private static final org.apache.thrift.scheme.SchemeFactory TUPLE_SCHEME_FACTORY = new getAllocationRequestStatus_argsTupleSchemeFactory();
 
     public java.lang.String projectId; // required
+    public java.lang.String userName; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-      PROJECT_ID((short)1, "projectId");
+      PROJECT_ID((short)1, "projectId"),
+      USER_NAME((short)2, "userName");
 
       private static final java.util.Map<java.lang.String, _Fields> byName = new java.util.HashMap<java.lang.String, _Fields>();
 
@@ -6474,6 +6707,8 @@ public class AllocationRegistryService {
         switch(fieldId) {
           case 1: // PROJECT_ID
             return PROJECT_ID;
+          case 2: // USER_NAME
+            return USER_NAME;
           default:
             return null;
         }
@@ -6519,6 +6754,8 @@ public class AllocationRegistryService {
       java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.PROJECT_ID, new org.apache.thrift.meta_data.FieldMetaData("projectId", org.apache.thrift.TFieldRequirementType.REQUIRED, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      tmpMap.put(_Fields.USER_NAME, new org.apache.thrift.meta_data.FieldMetaData("userName", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
       metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(getAllocationRequestStatus_args.class, metaDataMap);
     }
@@ -6527,10 +6764,12 @@ public class AllocationRegistryService {
     }
 
     public getAllocationRequestStatus_args(
-      java.lang.String projectId)
+      java.lang.String projectId,
+      java.lang.String userName)
     {
       this();
       this.projectId = projectId;
+      this.userName = userName;
     }
 
     /**
@@ -6540,6 +6779,9 @@ public class AllocationRegistryService {
       if (other.isSetProjectId()) {
         this.projectId = other.projectId;
       }
+      if (other.isSetUserName()) {
+        this.userName = other.userName;
+      }
     }
 
     public getAllocationRequestStatus_args deepCopy() {
@@ -6549,6 +6791,7 @@ public class AllocationRegistryService {
     @Override
     public void clear() {
       this.projectId = null;
+      this.userName = null;
     }
 
     public java.lang.String getProjectId() {
@@ -6575,6 +6818,30 @@ public class AllocationRegistryService {
       }
     }
 
+    public java.lang.String getUserName() {
+      return this.userName;
+    }
+
+    public getAllocationRequestStatus_args setUserName(java.lang.String userName) {
+      this.userName = userName;
+      return this;
+    }
+
+    public void unsetUserName() {
+      this.userName = null;
+    }
+
+    /** Returns true if field userName is set (has been assigned a value) and false otherwise */
+    public boolean isSetUserName() {
+      return this.userName != null;
+    }
+
+    public void setUserNameIsSet(boolean value) {
+      if (!value) {
+        this.userName = null;
+      }
+    }
+
     public void setFieldValue(_Fields field, java.lang.Object value) {
       switch (field) {
       case PROJECT_ID:
@@ -6585,6 +6852,14 @@ public class AllocationRegistryService {
         }
         break;
 
+      case USER_NAME:
+        if (value == null) {
+          unsetUserName();
+        } else {
+          setUserName((java.lang.String)value);
+        }
+        break;
+
       }
     }
 
@@ -6593,6 +6868,9 @@ public class AllocationRegistryService {
       case PROJECT_ID:
         return getProjectId();
 
+      case USER_NAME:
+        return getUserName();
+
       }
       throw new java.lang.IllegalStateException();
     }
@@ -6606,6 +6884,8 @@ public class AllocationRegistryService {
       switch (field) {
       case PROJECT_ID:
         return isSetProjectId();
+      case USER_NAME:
+        return isSetUserName();
       }
       throw new java.lang.IllegalStateException();
     }
@@ -6634,6 +6914,15 @@ public class AllocationRegistryService {
           return false;
       }
 
+      boolean this_present_userName = true && this.isSetUserName();
+      boolean that_present_userName = true && that.isSetUserName();
+      if (this_present_userName || that_present_userName) {
+        if (!(this_present_userName && that_present_userName))
+          return false;
+        if (!this.userName.equals(that.userName))
+          return false;
+      }
+
       return true;
     }
 
@@ -6645,6 +6934,10 @@ public class AllocationRegistryService {
       if (isSetProjectId())
         hashCode = hashCode * 8191 + projectId.hashCode();
 
+      hashCode = hashCode * 8191 + ((isSetUserName()) ? 131071 : 524287);
+      if (isSetUserName())
+        hashCode = hashCode * 8191 + userName.hashCode();
+
       return hashCode;
     }
 
@@ -6666,6 +6959,16 @@ public class AllocationRegistryService {
           return lastComparison;
         }
       }
+      lastComparison = java.lang.Boolean.valueOf(isSetUserName()).compareTo(other.isSetUserName());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetUserName()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.userName, other.userName);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
       return 0;
     }
 
@@ -6693,6 +6996,14 @@ public class AllocationRegistryService {
         sb.append(this.projectId);
       }
       first = false;
+      if (!first) sb.append(", ");
+      sb.append("userName:");
+      if (this.userName == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.userName);
+      }
+      first = false;
       sb.append(")");
       return sb.toString();
     }
@@ -6702,6 +7013,9 @@ public class AllocationRegistryService {
       if (projectId == null) {
         throw new org.apache.thrift.protocol.TProtocolException("Required field 'projectId' was not present! Struct: " + toString());
       }
+      if (userName == null) {
+        throw new org.apache.thrift.protocol.TProtocolException("Required field 'userName' was not present! Struct: " + toString());
+      }
       // check for sub-struct validity
     }
 
@@ -6747,6 +7061,14 @@ public class AllocationRegistryService {
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
+            case 2: // USER_NAME
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.userName = iprot.readString();
+                struct.setUserNameIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
             default:
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
           }
@@ -6767,6 +7089,11 @@ public class AllocationRegistryService {
           oprot.writeString(struct.projectId);
           oprot.writeFieldEnd();
         }
+        if (struct.userName != null) {
+          oprot.writeFieldBegin(USER_NAME_FIELD_DESC);
+          oprot.writeString(struct.userName);
+          oprot.writeFieldEnd();
+        }
         oprot.writeFieldStop();
         oprot.writeStructEnd();
       }
@@ -6785,6 +7112,7 @@ public class AllocationRegistryService {
       public void write(org.apache.thrift.protocol.TProtocol prot, getAllocationRequestStatus_args struct) throws org.apache.thrift.TException {
         org.apache.thrift.protocol.TTupleProtocol oprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         oprot.writeString(struct.projectId);
+        oprot.writeString(struct.userName);
       }
 
       @Override
@@ -6792,6 +7120,8 @@ public class AllocationRegistryService {
         org.apache.thrift.protocol.TTupleProtocol iprot = (org.apache.thrift.protocol.TTupleProtocol) prot;
         struct.projectId = iprot.readString();
         struct.setProjectIdIsSet(true);
+        struct.userName = iprot.readString();
+        struct.setUserNameIsSet(true);
       }
     }
 
diff --git a/allocation-manager/allocation-manager-docs/api-docs/allocation_manager_cpi.html b/allocation-manager/allocation-manager-docs/api-docs/allocation_manager_cpi.html
index 7ea3180..918c90c 100644
--- a/allocation-manager/allocation-manager-docs/api-docs/allocation_manager_cpi.html
+++ b/allocation-manager/allocation-manager-docs/api-docs/allocation_manager_cpi.html
@@ -38,59 +38,63 @@
 <h3 id="Svc_AllocationRegistryService">Service: AllocationRegistryService</h3>
 <div class="definition"><h4 id="Fn_AllocationRegistryService_createAllocationRequest">Function: AllocationRegistryService.createAllocationRequest</h4>
 <pre><code>string</code> createAllocationRequest(<code><a href="allocation_manager_models.html#Struct_UserAllocationDetail">allocation_manager_models.UserAllocationDetail</a></code> allocDetail)
-</pre><pre><p>API method to create new allocation requests</p>
-</pre><br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_isAllocationRequestExists">Function: AllocationRegistryService.isAllocationRequestExists</h4>
-<pre><code>bool</code> isAllocationRequestExists(<code>string</code> projectId)
-</pre><pre><p>API method to check if the allocation request exists</p>
-</pre><br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_deleteAllocationRequest">Function: AllocationRegistryService.deleteAllocationRequest</h4>
-<pre><code>bool</code> deleteAllocationRequest(<code>string</code> projectId)
-</pre><pre><p>API method to delete allocation request</p>
-</pre><br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_getAllocationRequest">Function: AllocationRegistryService.getAllocationRequest</h4>
-<pre><code><a href="allocation_manager_models.html#Struct_UserAllocationDetail">allocation_manager_models.UserAllocationDetail</a></code> getAllocationRequest(<code>string</code> projectId)
-</pre><pre><p>API method to get an allocation Request</p>
-</pre><br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_updateAllocationRequest">Function: AllocationRegistryService.updateAllocationRequest</h4>
+</pre><p>API method to create new allocation requests</p>
+<br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_isAllocationRequestExists">Function: AllocationRegistryService.isAllocationRequestExists</h4>
+<pre><code>bool</code> isAllocationRequestExists(<code>string</code> projectId,
+                               <code>string</code> userName)
+</pre><p>API method to check if the allocation request exists</p>
+<br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_deleteAllocationRequest">Function: AllocationRegistryService.deleteAllocationRequest</h4>
+<pre><code>bool</code> deleteAllocationRequest(<code>string</code> projectId,
+                             <code>string</code> userName)
+</pre><p>API method to delete allocation request</p>
+<br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_getAllocationRequest">Function: AllocationRegistryService.getAllocationRequest</h4>
+<pre><code><a href="allocation_manager_models.html#Struct_UserAllocationDetail">allocation_manager_models.UserAllocationDetail</a></code> getAllocationRequest(<code>string</code> projectId,
+                                                                    <code>string</code> userName)
+</pre><p>API method to get an allocation Request</p>
+<br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_updateAllocationRequest">Function: AllocationRegistryService.updateAllocationRequest</h4>
 <pre><code>bool</code> updateAllocationRequest(<code><a href="allocation_manager_models.html#Struct_UserAllocationDetail">allocation_manager_models.UserAllocationDetail</a></code> allocDetail)
-</pre><pre><p>API method to update an allocation Request</p>
-</pre><br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_getAllocationRequestStatus">Function: AllocationRegistryService.getAllocationRequestStatus</h4>
-<pre><code>string</code> getAllocationRequestStatus(<code>string</code> projectId)
-</pre><pre><p>API method to get an allocation Request status</p>
-</pre><br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_getAllocationRequestUserEmail">Function: AllocationRegistryService.getAllocationRequestUserEmail</h4>
+</pre><p>API method to update an allocation Request</p>
+<br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_getAllocationRequestStatus">Function: AllocationRegistryService.getAllocationRequestStatus</h4>
+<pre><code>string</code> getAllocationRequestStatus(<code>string</code> projectId,
+                                  <code>string</code> userName)
+</pre><p>API method to get an allocation Request status</p>
+<br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_getAllocationRequestUserEmail">Function: AllocationRegistryService.getAllocationRequestUserEmail</h4>
 <pre><code>string</code> getAllocationRequestUserEmail(<code>string</code> userName)
-</pre><pre><p>API method to get an allocation Request PI email</p>
-</pre><br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_getAllocationManagerAdminEmail">Function: AllocationRegistryService.getAllocationManagerAdminEmail</h4>
+</pre><p>API method to get an allocation Request PI email</p>
+<br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_getAllocationManagerAdminEmail">Function: AllocationRegistryService.getAllocationManagerAdminEmail</h4>
 <pre><code>string</code> getAllocationManagerAdminEmail(<code>string</code> userType)
-</pre><pre><p>API method to get an allocation Request Admin email</p>
-</pre><br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_getAllocationRequestUserName">Function: AllocationRegistryService.getAllocationRequestUserName</h4>
+</pre><p>API method to get an allocation Request Admin email</p>
+<br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_getAllocationRequestUserName">Function: AllocationRegistryService.getAllocationRequestUserName</h4>
 <pre><code>string</code> getAllocationRequestUserName(<code>string</code> projectId)
-</pre><pre><p>API method to get an allocation Request PI</p>
-</pre><br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_updateAllocationRequestStatus">Function: AllocationRegistryService.updateAllocationRequestStatus</h4>
+</pre><p>API method to get an allocation Request PI</p>
+<br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_updateAllocationRequestStatus">Function: AllocationRegistryService.updateAllocationRequestStatus</h4>
 <pre><code>void</code> updateAllocationRequestStatus(<code>string</code> projectId,
                                    <code>string</code> status)
-</pre><pre><p>API method to update the status of a request</p>
-</pre><br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_getAllRequestsForAdmin">Function: AllocationRegistryService.getAllRequestsForAdmin</h4>
+</pre><p>API method to update the status of a request</p>
+<br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_getAllRequestsForAdmin">Function: AllocationRegistryService.getAllRequestsForAdmin</h4>
 <pre><code>list&lt;<code><a href="allocation_manager_models.html#Struct_UserAllocationDetail">allocation_manager_models.UserAllocationDetail</a></code>&gt;</code> getAllRequestsForAdmin(<code>string</code> userName)
-</pre><pre><p>API method to get all requests for admin</p>
-</pre><br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_assignReviewers">Function: AllocationRegistryService.assignReviewers</h4>
+</pre><p>API method to get all requests for admin</p>
+<br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_assignReviewers">Function: AllocationRegistryService.assignReviewers</h4>
 <pre><code>bool</code> assignReviewers(<code><a href="allocation_manager_models.html#Struct_UserAllocationDetailPK">allocation_manager_models.UserAllocationDetailPK</a></code> projectId,
                      <code>string</code> userName)
-</pre><pre><p>API method to assign reviewers</p>
-</pre><br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_updateRequestByReviewer">Function: AllocationRegistryService.updateRequestByReviewer</h4>
+</pre><p>API method to assign reviewers</p>
+<br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_updateRequestByReviewer">Function: AllocationRegistryService.updateRequestByReviewer</h4>
 <pre><code>bool</code> updateRequestByReviewer(<code><a href="allocation_manager_models.html#Struct_UserAllocationDetailPK">allocation_manager_models.UserAllocationDetailPK</a></code> projectId,
                              <code><a href="allocation_manager_models.html#Struct_UserAllocationDetail">allocation_manager_models.UserAllocationDetail</a></code> userAllocationDetail)
-</pre><pre><p>API method to update request submitted by reviewer</p>
-</pre><br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_isAdmin">Function: AllocationRegistryService.isAdmin</h4>
+</pre><p>API method to update request submitted by reviewer</p>
+<br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_isAdmin">Function: AllocationRegistryService.isAdmin</h4>
 <pre><code>bool</code> isAdmin(<code>string</code> userName)
-</pre><pre><p>API method to check if the logged in user is an Admin</p>
-</pre><br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_isReviewer">Function: AllocationRegistryService.isReviewer</h4>
+</pre><p>API method to check if the logged in user is an Admin</p>
+<br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_isReviewer">Function: AllocationRegistryService.isReviewer</h4>
 <pre><code>bool</code> isReviewer(<code>string</code> userName)
-</pre><pre><p>API method to check if the logged in user is a Reviewer</p>
-</pre><br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_getAllRequestsForReviewers">Function: AllocationRegistryService.getAllRequestsForReviewers</h4>
+</pre><p>API method to check if the logged in user is a Reviewer</p>
+<br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_getAllRequestsForReviewers">Function: AllocationRegistryService.getAllRequestsForReviewers</h4>
 <pre><code>list&lt;<code><a href="allocation_manager_models.html#Struct_UserAllocationDetail">allocation_manager_models.UserAllocationDetail</a></code>&gt;</code> getAllRequestsForReviewers(<code>string</code> userName)
-</pre><pre><p>API method to get all requests assigned to the reviewers</p>
-</pre><br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_getUserDetails">Function: AllocationRegistryService.getUserDetails</h4>
+</pre><p>API method to get all requests assigned to the reviewers</p>
+<br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_getUserDetails">Function: AllocationRegistryService.getUserDetails</h4>
 <pre><code><a href="allocation_manager_models.html#Struct_UserDetail">allocation_manager_models.UserDetail</a></code> getUserDetails(<code>string</code> userName)
-</pre><pre><p>API method to get a user details</p>
-</pre><br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_getReviewsForRequest">Function: AllocationRegistryService.getReviewsForRequest</h4>
+</pre><p>API method to get a user details</p>
+<br/></div><div class="definition"><h4 id="Fn_AllocationRegistryService_getReviewsForRequest">Function: AllocationRegistryService.getReviewsForRequest</h4>
 <pre><code>list&lt;<code><a href="allocation_manager_models.html#Struct_UserAllocationDetail">allocation_manager_models.UserAllocationDetail</a></code>&gt;</code> getReviewsForRequest(<code><a href="allocation_manager_models.html#Struct_UserAllocationDetailPK">allocation_manager_models.UserAllocationDetailPK</a></code> projectId)
-</pre><pre><p>API method to get all the reviews for a request</p>
-</pre><br/></div></div></body></html>
+</pre><p>API method to get all the reviews for a request</p>
+<br/></div></div></body></html>
diff --git a/allocation-manager/allocation-manager-docs/api-docs/allocation_manager_models.html b/allocation-manager/allocation-manager-docs/api-docs/allocation_manager_models.html
index a0f909d..e75cb8e 100644
--- a/allocation-manager/allocation-manager-docs/api-docs/allocation_manager_models.html
+++ b/allocation-manager/allocation-manager-docs/api-docs/allocation_manager_models.html
@@ -7,17 +7,17 @@
 <title>Thrift module: allocation_manager_models</title></head><body>
 <div class="container-fluid">
 <h1>Thrift module: allocation_manager_models</h1>
-<pre><p>Field to share sponsorship details</p>
+<p>Field to share sponsorship details</p>
 <li>projectId : Id of the project</li>
 <li>sponsorName : Name of supervisor, manager, group leader or self</li>
 
-</pre><br/><table class="table-bordered table-striped table-condensed"><thead><th>Module</th><th>Services</th><th>Data types</th><th>Constants</th></thead>
+<br/><table class="table-bordered table-striped table-condensed"><thead><th>Module</th><th>Services</th><th>Data types</th><th>Constants</th></thead>
 <tr>
 <td>allocation_manager_models</td><td></td>
 <td><a href="#Struct_AllocationManagerException">AllocationManagerException</a><br/>
 <a href="#Struct_Domain">Domain</a><br/>
 <a href="#Struct_ProjectReviewer">ProjectReviewer</a><br/>
-<a href="#Struct_ProjectReviewerEntityPK">ProjectReviewerEntityPK</a><br/>
+<a href="#Struct_ProjectReviewerPK">ProjectReviewerPK</a><br/>
 <a href="#Struct_UserAllocationDetail">UserAllocationDetail</a><br/>
 <a href="#Struct_UserAllocationDetailPK">UserAllocationDetailPK</a><br/>
 <a href="#Struct_UserDetail">UserDetail</a><br/>
@@ -29,11 +29,11 @@
 <table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
 <tr><td>1</td><td>projectId</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr>
 <tr><td>4</td><td>username</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr>
-</table><br/><pre><p>Field to share sponsorship details</p>
+</table><br/><p>Field to share sponsorship details</p>
 <li>projectId : Id of the project</li>
 <li>sponsorName : Name of supervisor, manager, group leader or self</li>
 
-</pre><br/></div><div class="definition"><h3 id="Struct_ProjectReviewerEntityPK">Struct: ProjectReviewerEntityPK</h3>
+<br/></div><div class="definition"><h3 id="Struct_ProjectReviewerPK">Struct: ProjectReviewerPK</h3>
 <table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
 <tr><td>1</td><td>projectId</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr>
 <tr><td>4</td><td>reviewer</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr>
@@ -59,7 +59,8 @@
 <tr><td>18</td><td>startDate</td><td><code>i64</code></td><td></td><td>optional</td><td></td></tr>
 <tr><td>19</td><td>endDate</td><td><code>i64</code></td><td></td><td>optional</td><td></td></tr>
 <tr><td>20</td><td>status</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr>
-</table><br/><pre><p>Required allocation request details</p>
+<tr><td>21</td><td>isPrimaryOwner</td><td><code>bool</code></td><td></td><td>optional</td><td></td></tr>
+</table><br/><p>Required allocation request details</p>
 <li>id : (primary key) Ask the user to assign project ID, but this project should unique, we will need an API endpoint to check whether this ID is not used by other projects and the username</li>
 <li>applicationsToBeUsed : Select the application that the user intends to use, according to application chosen here, resources that can be allocable will be fetch from resource discovery module. User will not be restricted to these application upon allocation grant, provided the resources allocated support the application.</li>
 <li>diskUsageRangePerJob : An optional field to help reviewer and PI for allocation approval</li>
@@ -77,10 +78,10 @@
 <li>typeOfAllocation : If the User has an exclusive allocation with third party organization and wants to use airavata middleware to manage jobs.</li>
 <li>typicalSuPerJob :  An optional field to help reviewer and PI for allocation approval</li>
 
-</pre><br/></div><div class="definition"><h3 id="Struct_ProjectReviewer">Struct: ProjectReviewer</h3>
+<br/></div><div class="definition"><h3 id="Struct_ProjectReviewer">Struct: ProjectReviewer</h3>
 <table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
-<tr><td>1</td><td>id</td><td><code><a href="#Struct_ProjectReviewerEntityPK">ProjectReviewerEntityPK</a></code></td><td></td><td>optional</td><td></td></tr>
-</table><br/><pre><p>Allocation Request status details</p>
+<tr><td>1</td><td>id</td><td><code><a href="#Struct_ProjectReviewerPK">ProjectReviewerPK</a></code></td><td></td><td>optional</td><td></td></tr>
+</table><br/><p>Allocation Request status details</p>
 <li>projectId: Unique id of the project</li>
 <li>awardAllocation: Allocation awarded</li>
 <li>endDate: End date of the request</li>
@@ -88,37 +89,37 @@
 <li>startDate: Start date of the allocation</li>
 <li>status: Status of the allocation request</li>
 
-</pre><br/></div><div class="definition"><h3 id="Struct_UserDetail">Struct: UserDetail</h3>
+<br/></div><div class="definition"><h3 id="Struct_UserDetail">Struct: UserDetail</h3>
 <table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
 <tr><td>1</td><td>username</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr>
 <tr><td>2</td><td>email</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr>
 <tr><td>3</td><td>fullName</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr>
 <tr><td>4</td><td>password</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr>
 <tr><td>5</td><td>userType</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr>
-</table><br/><pre><p>A user should have an account with airavata to request an allocation</p>
+</table><br/><p>A user should have an account with airavata to request an allocation</p>
 <li>username : Login Username</li>
 <li>email :Login email</li>
 <li>fullName: Full name of the user</li>
 <li>Password: Password of the user</li>
 <li>userType: Type of the user</li>
 
-</pre><br/></div><div class="definition"><h3 id="Struct_Domain">Struct: Domain</h3>
+<br/></div><div class="definition"><h3 id="Struct_Domain">Struct: Domain</h3>
 <table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
 <tr><td>1</td><td>domainId</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr>
 <tr><td>2</td><td>name</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr>
 <tr><td>3</td><td>description</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr>
 <tr><td>4</td><td>createdTime</td><td><code>i64</code></td><td></td><td>optional</td><td></td></tr>
 <tr><td>5</td><td>updatedTime</td><td><code>i64</code></td><td></td><td>optional</td><td></td></tr>
-</table><br/><pre><p>An entity for maintaining various domains</p>
+</table><br/><p>An entity for maintaining various domains</p>
 <li>domainId : Unique id of the domain</li>
 <li>name : Name of the domain</li>
 <li>description: Description of the domain</li>
 <li>createdTime: Time when the domain was created</li>
 <li>updatedTime: Time when domain was updated</li>
 
-</pre><br/></div><div class="definition"><h3 id="Struct_AllocationManagerException">Exception: AllocationManagerException</h3>
+<br/></div><div class="definition"><h3 id="Struct_AllocationManagerException">Exception: AllocationManagerException</h3>
 <table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
 <tr><td>1</td><td>message</td><td><code>string</code></td><td></td><td>required</td><td></td></tr>
-</table><br/><pre><p>Exception model used in the allocation manager service</p>
+</table><br/><p>Exception model used in the allocation manager service</p>
 
-</pre><br/></div></div></body></html>
+<br/></div></div></body></html>
diff --git a/allocation-manager/allocation-manager-docs/api-docs/index.html b/allocation-manager/allocation-manager-docs/api-docs/index.html
index 8fe5a18..ea01282 100644
--- a/allocation-manager/allocation-manager-docs/api-docs/index.html
+++ b/allocation-manager/allocation-manager-docs/api-docs/index.html
@@ -34,7 +34,7 @@
 <td><a href="allocation_manager_models.html#Struct_AllocationManagerException">AllocationManagerException</a><br/>
 <a href="allocation_manager_models.html#Struct_Domain">Domain</a><br/>
 <a href="allocation_manager_models.html#Struct_ProjectReviewer">ProjectReviewer</a><br/>
-<a href="allocation_manager_models.html#Struct_ProjectReviewerEntityPK">ProjectReviewerEntityPK</a><br/>
+<a href="allocation_manager_models.html#Struct_ProjectReviewerPK">ProjectReviewerPK</a><br/>
 <a href="allocation_manager_models.html#Struct_UserAllocationDetail">UserAllocationDetail</a><br/>
 <a href="allocation_manager_models.html#Struct_UserAllocationDetailPK">UserAllocationDetailPK</a><br/>
 <a href="allocation_manager_models.html#Struct_UserDetail">UserDetail</a><br/>
diff --git a/allocation-manager/thrift_models/allocation_manager_cpi.thrift b/allocation-manager/thrift_models/allocation_manager_cpi.thrift
index 4c97565..eb89f85 100755
--- a/allocation-manager/thrift_models/allocation_manager_cpi.thrift
+++ b/allocation-manager/thrift_models/allocation_manager_cpi.thrift
@@ -12,17 +12,17 @@ service AllocationRegistryService{
     /**
      <p>API method to check if the allocation request exists</p>
     */
-    bool isAllocationRequestExists(1: required string projectId)
+    bool isAllocationRequestExists(1: required string projectId, 2: required string userName)
     
     /**
      <p>API method to delete allocation request</p>
     */
-    bool deleteAllocationRequest(1: required string projectId)
+    bool deleteAllocationRequest(1: required string projectId, 2: required string userName)
     
     /**
      <p>API method to get an allocation Request</p>
     */
-    allocation_manager_models.UserAllocationDetail getAllocationRequest(1: required string projectId)
+    allocation_manager_models.UserAllocationDetail getAllocationRequest(1: required string projectId, 2: required string userName)
     
     /**
      <p>API method to update an allocation Request</p>
@@ -32,7 +32,7 @@ service AllocationRegistryService{
    /**
     <p>API method to get an allocation Request status</p>
     */
-    string getAllocationRequestStatus(1: required string projectId)
+    string getAllocationRequestStatus(1: required string projectId, 2: required string userName)
 
     /**
     <p>API method to get an allocation Request PI email</p>
diff --git a/allocation-manager/thrift_models/allocation_manager_models.thrift b/allocation-manager/thrift_models/allocation_manager_models.thrift
index 98bf5d0..3a6c98a 100644
--- a/allocation-manager/thrift_models/allocation_manager_models.thrift
+++ b/allocation-manager/thrift_models/allocation_manager_models.thrift
@@ -53,7 +53,8 @@ struct UserAllocationDetail{
 17:optional i64 awardAllocation,
 18:optional i64 startDate,
 19:optional i64 endDate,
-20:optional string status
+20:optional string status,
+21:optional bool isPrimaryOwner
 }
 
 /**

-- 
To stop receiving notification emails like this one, please contact
['"commits@airavata.apache.org" <co...@airavata.apache.org>'].