You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by mc...@apache.org on 2013/02/26 23:13:38 UTC

[14/28] git commit: refs/heads/vim51_win8 - CLOUDSTACK-241: Removed API based account sync. Removed all the related API changes and RegionsAPIUtil. Converted tabs to spaces in the related files. Verified account, user and domain APIs.

CLOUDSTACK-241: Removed API based account sync. Removed all the related API changes and RegionsAPIUtil.
Converted tabs to spaces in the related files.
Verified account, user and domain APIs.


Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/e37fdce1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/e37fdce1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/e37fdce1

Branch: refs/heads/vim51_win8
Commit: e37fdce125511535961c77a77d253ce232a954d0
Parents: 0383803
Author: Kishan Kavala <ki...@cloud.com>
Authored: Mon Feb 25 18:26:51 2013 +0530
Committer: Kishan Kavala <ki...@cloud.com>
Committed: Tue Feb 26 14:21:21 2013 +0530

----------------------------------------------------------------------
 api/src/com/cloud/user/AccountService.java         |    4 +-
 api/src/com/cloud/user/DomainService.java          |    2 +-
 .../org/apache/cloudstack/api/ApiConstants.java    |    5 +-
 .../command/admin/account/CreateAccountCmd.java    |   28 +-
 .../command/admin/account/DeleteAccountCmd.java    |    7 -
 .../command/admin/account/DisableAccountCmd.java   |   15 +-
 .../command/admin/account/EnableAccountCmd.java    |    8 +-
 .../command/admin/account/UpdateAccountCmd.java    |   10 +-
 .../api/command/admin/domain/CreateDomainCmd.java  |   16 +-
 .../api/command/admin/domain/DeleteDomainCmd.java  |    7 -
 .../api/command/admin/domain/UpdateDomainCmd.java  |    7 -
 .../api/command/admin/user/CreateUserCmd.java      |   16 +-
 .../api/command/admin/user/DeleteUserCmd.java      |    7 -
 .../api/command/admin/user/DisableUserCmd.java     |    7 -
 .../api/command/admin/user/EnableUserCmd.java      |    7 -
 .../api/command/admin/user/UpdateUserCmd.java      |    7 -
 .../apache/cloudstack/region/RegionService.java    |  136 ++--
 core/src/com/cloud/user/AccountVO.java             |   40 +-
 core/src/com/cloud/user/UserVO.java                |   23 +-
 .../src/com/cloud/projects/ProjectManagerImpl.java |    2 +-
 server/src/com/cloud/user/AccountManager.java      |   14 +-
 server/src/com/cloud/user/AccountManagerImpl.java  |   90 +--
 server/src/com/cloud/user/DomainManager.java       |    2 +-
 server/src/com/cloud/user/DomainManagerImpl.java   |   24 +-
 server/src/com/cloud/user/dao/AccountDaoImpl.java  |   90 +-
 .../apache/cloudstack/region/RegionManager.java    |  204 +---
 .../cloudstack/region/RegionManagerImpl.java       |  822 ++-------------
 .../cloudstack/region/RegionServiceImpl.java       |  230 ++---
 .../apache/cloudstack/region/RegionsApiUtil.java   |  306 ------
 .../com/cloud/user/MockAccountManagerImpl.java     |   46 +-
 .../test/com/cloud/user/MockDomainManagerImpl.java |   38 +-
 .../cloudstack/region/RegionManagerTest.java       |   35 +-
 setup/db/db/schema-40to410.sql                     |    9 -
 33 files changed, 418 insertions(+), 1846 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e37fdce1/api/src/com/cloud/user/AccountService.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/user/AccountService.java b/api/src/com/cloud/user/AccountService.java
index 8026891..f9c6ddb 100755
--- a/api/src/com/cloud/user/AccountService.java
+++ b/api/src/com/cloud/user/AccountService.java
@@ -62,7 +62,7 @@ public interface AccountService {
      * @return the user if created successfully, null otherwise
      */
     UserAccount createUserAccount(String userName, String password, String firstName, String lastName, String email, String timezone, String accountName, short accountType, Long domainId, String networkDomain,
-            Map<String, String> details, String accountUUID, String userUUID, Integer regionId);
+            Map<String, String> details);
 
     /**
      * Locks a user by userId. A locked user cannot access the API, but will still have running VMs/IP addresses
@@ -77,7 +77,7 @@ public interface AccountService {
 
     User getSystemUser();
 
-    User createUser(String userName, String password, String firstName, String lastName, String email, String timeZone, String accountName, Long domainId, String userUUID, Integer regionId);
+    User createUser(String userName, String password, String firstName, String lastName, String email, String timeZone, String accountName, Long domainId);
 
     boolean isAdmin(short accountType);
 

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e37fdce1/api/src/com/cloud/user/DomainService.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/user/DomainService.java b/api/src/com/cloud/user/DomainService.java
index 1a96354..1f03019 100644
--- a/api/src/com/cloud/user/DomainService.java
+++ b/api/src/com/cloud/user/DomainService.java
@@ -27,7 +27,7 @@ import com.cloud.utils.Pair;
 
 public interface DomainService {
 
-    Domain createDomain(String name, Long parentId, String networkDomain, String domainUUID, Integer regionId);
+    Domain createDomain(String name, Long parentId, String networkDomain);
 
     Domain getDomain(long id);
 

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e37fdce1/api/src/org/apache/cloudstack/api/ApiConstants.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/ApiConstants.java b/api/src/org/apache/cloudstack/api/ApiConstants.java
index 0e4cbe1..2a09de8 100755
--- a/api/src/org/apache/cloudstack/api/ApiConstants.java
+++ b/api/src/org/apache/cloudstack/api/ApiConstants.java
@@ -379,9 +379,8 @@ public class ApiConstants {
     public static final String VSM_CONFIG_STATE = "vsmconfigstate";
     public static final String VSM_DEVICE_STATE = "vsmdevicestate";
     public static final String ADD_VSM_FLAG = "addvsmflag";
-	public static final String END_POINT = "endpoint";
-	public static final String REGION_ID = "regionid";
-	public static final String IS_PROPAGATE = "ispropagate";
+    public static final String END_POINT = "endpoint";
+    public static final String REGION_ID = "regionid";
     public static final String VPC_OFF_ID = "vpcofferingid";
     public static final String NETWORK = "network";
     public static final String VPC_ID = "vpcid";

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e37fdce1/api/src/org/apache/cloudstack/api/command/admin/account/CreateAccountCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/account/CreateAccountCmd.java b/api/src/org/apache/cloudstack/api/command/admin/account/CreateAccountCmd.java
index b0f73d1..57789c9 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/account/CreateAccountCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/account/CreateAccountCmd.java
@@ -78,19 +78,6 @@ public class CreateAccountCmd extends BaseCmd {
     @Parameter(name = ApiConstants.ACCOUNT_DETAILS, type = CommandType.MAP, description = "details for account used to store specific parameters")
     private Map<String, String> details;
 
-	//@Parameter(name = ApiConstants.REGION_DETAILS, type = CommandType.MAP, description = "details for account used to store region specific parameters")
-    //private Map<String, String> regionDetails;
-	
-    @Parameter(name=ApiConstants.ACCOUNT_ID, type=CommandType.STRING, description="Account UUID, required for adding account from another Region")
-    private String accountUUID;
-
-    @Parameter(name=ApiConstants.USER_ID, type=CommandType.STRING, description="User UUID, required for adding account from another Region")
-    private String userUUID;
-
-    @Parameter(name=ApiConstants.REGION_ID, type=CommandType.INTEGER, description="Id of the Region creating the account")
-    private Integer regionId;
-
-    
     /////////////////////////////////////////////////////
     /////////////////// Accessors ///////////////////////
     /////////////////////////////////////////////////////
@@ -145,18 +132,6 @@ public class CreateAccountCmd extends BaseCmd {
         return params;
     }
 
-    public String getAccountUUID() {
-		return accountUUID;
-	}
-
-	public String getUserUUID() {
-		return userUUID;
-	}
-
-	public Integer getRegionId() {
-		return regionId;
-	}
-    
     /////////////////////////////////////////////////////
     /////////////// API Implementation///////////////////
     /////////////////////////////////////////////////////
@@ -174,8 +149,7 @@ public class CreateAccountCmd extends BaseCmd {
     @Override
     public void execute(){
         UserContext.current().setEventDetails("Account Name: "+getAccountName()+", Domain Id:"+getDomainId());
-        UserAccount userAccount = _accountService.createUserAccount(getUsername(), getPassword(), getFirstName(), getLastName(), getEmail(), getTimeZone(), getAccountName(), getAccountType(), getDomainId(), getNetworkDomain(), getDetails(), 
-        		getAccountUUID(), getUserUUID(), getRegionId());
+        UserAccount userAccount = _accountService.createUserAccount(getUsername(), getPassword(), getFirstName(), getLastName(), getEmail(), getTimeZone(), getAccountName(), getAccountType(), getDomainId(), getNetworkDomain(), getDetails());
         if (userAccount != null) {
             AccountResponse response = _responseGenerator.createUserAccountResponse(userAccount);
             response.setResponseName(getCommandName());

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e37fdce1/api/src/org/apache/cloudstack/api/command/admin/account/DeleteAccountCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/account/DeleteAccountCmd.java b/api/src/org/apache/cloudstack/api/command/admin/account/DeleteAccountCmd.java
index 959d7ce..ff6d0d2 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/account/DeleteAccountCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/account/DeleteAccountCmd.java
@@ -48,9 +48,6 @@ public class DeleteAccountCmd extends BaseAsyncCmd {
             required=true, description="Account id")
     private Long id;
 
-    @Parameter(name=ApiConstants.IS_PROPAGATE, type=CommandType.BOOLEAN, description="True if command is sent from another Region")
-    private Boolean isPropagate;
-
     @Inject RegionService _regionService;
     
     /////////////////////////////////////////////////////
@@ -62,10 +59,6 @@ public class DeleteAccountCmd extends BaseAsyncCmd {
         return id;
     }
 
-	public Boolean getIsPropagate() {
-		return isPropagate;
-	}
-
     /////////////////////////////////////////////////////
     /////////////// API Implementation///////////////////
     /////////////////////////////////////////////////////

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e37fdce1/api/src/org/apache/cloudstack/api/command/admin/account/DisableAccountCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/account/DisableAccountCmd.java b/api/src/org/apache/cloudstack/api/command/admin/account/DisableAccountCmd.java
index 60e9fd5..fceb192 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/account/DisableAccountCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/account/DisableAccountCmd.java
@@ -58,9 +58,6 @@ public class DisableAccountCmd extends BaseAsyncCmd {
     @Parameter(name=ApiConstants.LOCK, type=CommandType.BOOLEAN, required=true, description="If true, only lock the account; else disable the account")
     private Boolean lockRequested;
 
-    @Parameter(name=ApiConstants.IS_PROPAGATE, type=CommandType.BOOLEAN, description="True if command is sent from another Region")
-    private Boolean isPropagate;
-    
     @Inject RegionService _regionService;
     
     /////////////////////////////////////////////////////
@@ -79,14 +76,10 @@ public class DisableAccountCmd extends BaseAsyncCmd {
         return domainId;
     }
 
-	public Boolean getIsPropagate() {
-		return isPropagate;
-	}
-
     public Boolean getLockRequested() {
-		return lockRequested;
-	}
-	
+        return lockRequested;
+    }
+
     /////////////////////////////////////////////////////
     /////////////// API Implementation///////////////////
     /////////////////////////////////////////////////////
@@ -124,7 +117,7 @@ public class DisableAccountCmd extends BaseAsyncCmd {
     @Override
     public void execute() throws ConcurrentOperationException, ResourceUnavailableException{
         UserContext.current().setEventDetails("Account Name: "+getAccountName()+", Domain Id:"+getDomainId());
-    	Account result = _regionService.disableAccount(this);
+        Account result = _regionService.disableAccount(this);
         if (result != null){
             AccountResponse response = _responseGenerator.createAccountResponse(result);
             response.setResponseName(getCommandName());

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e37fdce1/api/src/org/apache/cloudstack/api/command/admin/account/EnableAccountCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/account/EnableAccountCmd.java b/api/src/org/apache/cloudstack/api/command/admin/account/EnableAccountCmd.java
index 9a92f78..d07ea79 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/account/EnableAccountCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/account/EnableAccountCmd.java
@@ -50,9 +50,6 @@ public class EnableAccountCmd extends BaseCmd {
             description="Enables specified account in this domain.")
     private Long domainId;
 
-    @Parameter(name=ApiConstants.IS_PROPAGATE, type=CommandType.BOOLEAN, description="True if command is sent from another Region")
-    private Boolean isPropagate;
-    
     @Inject RegionService _regionService;
     
     /////////////////////////////////////////////////////
@@ -71,9 +68,6 @@ public class EnableAccountCmd extends BaseCmd {
         return domainId;
     }
 
-	public Boolean getIsPropagate() {
-		return isPropagate;
-	}
     
     /////////////////////////////////////////////////////
     /////////////// API Implementation///////////////////
@@ -101,7 +95,7 @@ public class EnableAccountCmd extends BaseCmd {
 
     @Override
     public void execute(){
-    	Account result = _regionService.enableAccount(this);
+        Account result = _regionService.enableAccount(this);
         if (result != null){
             AccountResponse response = _responseGenerator.createAccountResponse(result);
             response.setResponseName(getCommandName());

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e37fdce1/api/src/org/apache/cloudstack/api/command/admin/account/UpdateAccountCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/account/UpdateAccountCmd.java b/api/src/org/apache/cloudstack/api/command/admin/account/UpdateAccountCmd.java
index 6fad48b..6aa853f 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/account/UpdateAccountCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/account/UpdateAccountCmd.java
@@ -63,9 +63,6 @@ public class UpdateAccountCmd extends BaseCmd{
     @Parameter(name = ApiConstants.ACCOUNT_DETAILS, type = CommandType.MAP, description = "details for account used to store specific parameters")
     private Map details;
 
-    @Parameter(name=ApiConstants.IS_PROPAGATE, type=CommandType.BOOLEAN, description="True if command is sent from another Region")
-    private Boolean isPropagate;
-	
     @Inject RegionService _regionService;
     
     /////////////////////////////////////////////////////
@@ -102,10 +99,7 @@ public class UpdateAccountCmd extends BaseCmd{
         return params;
     }
 
-	public Boolean getIsPropagate() {
-		return isPropagate;
-	}
-    
+
     /////////////////////////////////////////////////////
     /////////////// API Implementation///////////////////
     /////////////////////////////////////////////////////
@@ -131,7 +125,7 @@ public class UpdateAccountCmd extends BaseCmd{
 
     @Override
     public void execute(){
-    	Account result = _regionService.updateAccount(this);
+        Account result = _regionService.updateAccount(this);
         if (result != null){
             AccountResponse response = _responseGenerator.createAccountResponse(result);
             response.setResponseName(getCommandName());

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e37fdce1/api/src/org/apache/cloudstack/api/command/admin/domain/CreateDomainCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/domain/CreateDomainCmd.java b/api/src/org/apache/cloudstack/api/command/admin/domain/CreateDomainCmd.java
index e0ba693..5eae486 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/domain/CreateDomainCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/domain/CreateDomainCmd.java
@@ -49,12 +49,6 @@ public class CreateDomainCmd extends BaseCmd {
     @Parameter(name=ApiConstants.NETWORK_DOMAIN, type=CommandType.STRING, description="Network domain for networks in the domain")
     private String networkDomain;
 
-    @Parameter(name=ApiConstants.DOMAIN_ID, type=CommandType.STRING, description="Domain UUID, required for adding domain from another Region")
-    private String domainUUID;
-    
-    @Parameter(name=ApiConstants.REGION_ID, type=CommandType.INTEGER, description="Id of the Region creating the Domain")
-    private Integer regionId;
-    
     /////////////////////////////////////////////////////
     /////////////////// Accessors ///////////////////////
     /////////////////////////////////////////////////////
@@ -71,14 +65,6 @@ public class CreateDomainCmd extends BaseCmd {
         return networkDomain;
     }
 
-    public String getDomainUUID() {
-        return domainUUID;
-    }
-    
-	public Integer getRegionId() {
-		return regionId;
-	}
-    
     /////////////////////////////////////////////////////
     /////////////// API Implementation///////////////////
     /////////////////////////////////////////////////////
@@ -96,7 +82,7 @@ public class CreateDomainCmd extends BaseCmd {
     @Override
     public void execute(){
         UserContext.current().setEventDetails("Domain Name: "+getDomainName()+((getParentDomainId()!=null)?", Parent DomainId :"+getParentDomainId():""));
-        Domain domain = _domainService.createDomain(getDomainName(), getParentDomainId(), getNetworkDomain(), getDomainUUID(), getRegionId());
+        Domain domain = _domainService.createDomain(getDomainName(), getParentDomainId(), getNetworkDomain());
         if (domain != null) {
             DomainResponse response = _responseGenerator.createDomainResponse(domain);
             response.setResponseName(getCommandName());

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e37fdce1/api/src/org/apache/cloudstack/api/command/admin/domain/DeleteDomainCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/domain/DeleteDomainCmd.java b/api/src/org/apache/cloudstack/api/command/admin/domain/DeleteDomainCmd.java
index eae393d..97e7afa 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/domain/DeleteDomainCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/domain/DeleteDomainCmd.java
@@ -50,9 +50,6 @@ public class DeleteDomainCmd extends BaseAsyncCmd {
     @Parameter(name=ApiConstants.CLEANUP, type=CommandType.BOOLEAN, description="true if all domain resources (child domains, accounts) have to be cleaned up, false otherwise")
     private Boolean cleanup;
 
-    @Parameter(name=ApiConstants.IS_PROPAGATE, type=CommandType.BOOLEAN, description="True if command is sent from another Region")
-    private Boolean propagate;
-
     @Inject RegionService _regionService;
     
     /////////////////////////////////////////////////////
@@ -67,10 +64,6 @@ public class DeleteDomainCmd extends BaseAsyncCmd {
         return cleanup;
     }
 
-	public Boolean isPropagate() {
-		return propagate;
-	}
-    
     /////////////////////////////////////////////////////
     /////////////// API Implementation///////////////////
     /////////////////////////////////////////////////////

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e37fdce1/api/src/org/apache/cloudstack/api/command/admin/domain/UpdateDomainCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/domain/UpdateDomainCmd.java b/api/src/org/apache/cloudstack/api/command/admin/domain/UpdateDomainCmd.java
index c217f16..91c8346 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/domain/UpdateDomainCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/domain/UpdateDomainCmd.java
@@ -52,9 +52,6 @@ public class UpdateDomainCmd extends BaseCmd {
     @Parameter(name=ApiConstants.NETWORK_DOMAIN, type=CommandType.STRING, description="Network domain for the domain's networks; empty string will update domainName with NULL value")
     private String networkDomain;
 
-    @Parameter(name=ApiConstants.IS_PROPAGATE, type=CommandType.BOOLEAN, description="True if command is sent from another Region")
-    private Boolean isPropagate;
-    
     @Inject RegionService _regionService;
     
     /////////////////////////////////////////////////////
@@ -73,10 +70,6 @@ public class UpdateDomainCmd extends BaseCmd {
         return networkDomain;
     }
 
-	public Boolean getIsPropagate() {
-		return isPropagate;
-	}
-    
     /////////////////////////////////////////////////////
     /////////////// API Implementation///////////////////
     /////////////////////////////////////////////////////

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e37fdce1/api/src/org/apache/cloudstack/api/command/admin/user/CreateUserCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/user/CreateUserCmd.java b/api/src/org/apache/cloudstack/api/command/admin/user/CreateUserCmd.java
index d1f72c4..6ea8d9b 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/user/CreateUserCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/user/CreateUserCmd.java
@@ -65,12 +65,6 @@ public class CreateUserCmd extends BaseCmd {
     @Parameter(name=ApiConstants.USERNAME, type=CommandType.STRING, required=true, description="Unique username.")
     private String username;
 
-    @Parameter(name=ApiConstants.USER_ID, type=CommandType.STRING, description="User UUID, required for adding account from another Region")
-    private String userUUID;
-    
-    @Parameter(name=ApiConstants.REGION_ID, type=CommandType.INTEGER, description="Id of the Region creating the User")
-    private Integer regionId;
-    
     /////////////////////////////////////////////////////
     /////////////////// Accessors ///////////////////////
     /////////////////////////////////////////////////////
@@ -107,14 +101,6 @@ public class CreateUserCmd extends BaseCmd {
         return username;
     }
 
-	public String getUserUUID() {
-		return userUUID;
-	}
-    
-	public Integer getRegionId() {
-		return regionId;
-	}
-    
     /////////////////////////////////////////////////////
     /////////////// API Implementation///////////////////
     /////////////////////////////////////////////////////
@@ -146,7 +132,7 @@ public class CreateUserCmd extends BaseCmd {
     @Override
     public void execute(){
         UserContext.current().setEventDetails("UserName: "+getUserName()+", FirstName :"+getFirstName()+", LastName: "+getLastName());
-        User user = _accountService.createUser(getUserName(), getPassword(), getFirstName(), getLastName(), getEmail(), getTimezone(), getAccountName(), getDomainId(), getUserUUID(), getRegionId());
+        User user = _accountService.createUser(getUserName(), getPassword(), getFirstName(), getLastName(), getEmail(), getTimezone(), getAccountName(), getDomainId());
         if (user != null) {
             UserResponse response = _responseGenerator.createUserResponse(user);
             response.setResponseName(getCommandName());

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e37fdce1/api/src/org/apache/cloudstack/api/command/admin/user/DeleteUserCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/user/DeleteUserCmd.java b/api/src/org/apache/cloudstack/api/command/admin/user/DeleteUserCmd.java
index e8f671d..68ddbe7 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/user/DeleteUserCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/user/DeleteUserCmd.java
@@ -45,9 +45,6 @@ public class DeleteUserCmd extends BaseCmd {
     @Parameter(name=ApiConstants.ID, type=CommandType.UUID, entityType=UserResponse.class, required=true, description="Deletes a user")
     private Long id;
 
-    @Parameter(name=ApiConstants.IS_PROPAGATE, type=CommandType.BOOLEAN, description="True if command is sent from another Region")
-    private Boolean isPropagate;
-    
     @Inject RegionService _regionService;
     
     /////////////////////////////////////////////////////
@@ -58,10 +55,6 @@ public class DeleteUserCmd extends BaseCmd {
         return id;
     }
 
-	public Boolean getIsPropagate() {
-		return isPropagate;
-	}
-    
     /////////////////////////////////////////////////////
     /////////////// API Implementation///////////////////
     /////////////////////////////////////////////////////

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e37fdce1/api/src/org/apache/cloudstack/api/command/admin/user/DisableUserCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/user/DisableUserCmd.java b/api/src/org/apache/cloudstack/api/command/admin/user/DisableUserCmd.java
index 95013ec..a7008af 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/user/DisableUserCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/user/DisableUserCmd.java
@@ -49,9 +49,6 @@ public class DisableUserCmd extends BaseAsyncCmd {
             required=true, description="Disables user by user ID.")
     private Long id;
 
-    @Parameter(name=ApiConstants.IS_PROPAGATE, type=CommandType.BOOLEAN, description="True if command is sent from another Region")
-    private Boolean isPropagate;
-    
     @Inject RegionService _regionService;
     
     /////////////////////////////////////////////////////
@@ -62,10 +59,6 @@ public class DisableUserCmd extends BaseAsyncCmd {
         return id;
     }
 
-	public Boolean getIsPropagate() {
-		return isPropagate;
-	}
-    
     /////////////////////////////////////////////////////
     /////////////// API Implementation///////////////////
     /////////////////////////////////////////////////////

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e37fdce1/api/src/org/apache/cloudstack/api/command/admin/user/EnableUserCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/user/EnableUserCmd.java b/api/src/org/apache/cloudstack/api/command/admin/user/EnableUserCmd.java
index c1ba900..c51b310 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/user/EnableUserCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/user/EnableUserCmd.java
@@ -46,9 +46,6 @@ public class EnableUserCmd extends BaseCmd {
             required=true, description="Enables user by user ID.")
     private Long id;
 
-    @Parameter(name=ApiConstants.IS_PROPAGATE, type=CommandType.BOOLEAN, description="True if command is sent from another Region")
-    private Boolean isPropagate;
-
     @Inject RegionService _regionService;
     
     /////////////////////////////////////////////////////
@@ -59,10 +56,6 @@ public class EnableUserCmd extends BaseCmd {
         return id;
     }
 
-	public Boolean getIsPropagate() {
-		return isPropagate;
-	}
-    
     /////////////////////////////////////////////////////
     /////////////// API Implementation///////////////////
     /////////////////////////////////////////////////////

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e37fdce1/api/src/org/apache/cloudstack/api/command/admin/user/UpdateUserCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/user/UpdateUserCmd.java b/api/src/org/apache/cloudstack/api/command/admin/user/UpdateUserCmd.java
index ee59d07..1212cd9 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/user/UpdateUserCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/user/UpdateUserCmd.java
@@ -71,9 +71,6 @@ public class UpdateUserCmd extends BaseCmd {
     @Parameter(name=ApiConstants.USERNAME, type=CommandType.STRING, description="Unique username")
     private String username;
 
-    @Parameter(name=ApiConstants.IS_PROPAGATE, type=CommandType.BOOLEAN, description="True if command is sent from another Region")
-    private Boolean isPropagate;
-    
     @Inject RegionService _regionService;
     
     /////////////////////////////////////////////////////
@@ -116,10 +113,6 @@ public class UpdateUserCmd extends BaseCmd {
         return username;
     }
 
-	public Boolean getIsPropagate() {
-		return isPropagate;
-	}
-    
     /////////////////////////////////////////////////////
     /////////////// API Implementation///////////////////
     /////////////////////////////////////////////////////

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e37fdce1/api/src/org/apache/cloudstack/region/RegionService.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/region/RegionService.java b/api/src/org/apache/cloudstack/region/RegionService.java
index 8679ca9..ec7876e 100644
--- a/api/src/org/apache/cloudstack/region/RegionService.java
+++ b/api/src/org/apache/cloudstack/region/RegionService.java
@@ -38,41 +38,41 @@ import com.cloud.user.UserAccount;
 
 
 public interface RegionService {
-	/**
-	 * Adds a Region to the local Region
-	 * @param id
-	 * @param name
-	 * @param endPoint
-	 * @param apiKey
-	 * @param secretKey
-	 * @return Return added Region object
-	 */
-	public Region addRegion(int id, String name, String endPoint, String apiKey, String secretKey);
-	
-	/**
-	 * Update details of the Region with specified Id
-	 * @param id
-	 * @param name
-	 * @param endPoint
-	 * @param apiKey
-	 * @param secretKey
-	 * @return Return updated Region object
-	 */
-	public Region updateRegion(int id, String name, String endPoint, String apiKey, String secretKey);
-	
-	/**
-	 * @param id
-	 * @return True if region is successfully removed
-	 */
-	public boolean removeRegion(int id);
-	
-	/** List all Regions or by Id/Name
-	 * @param id
-	 * @param name
-	 * @return List of Regions
-	 */
-	public List<? extends Region> listRegions(ListRegionsCmd cmd);
-	
+    /**
+     * Adds a Region to the local Region
+     * @param id
+     * @param name
+     * @param endPoint
+     * @param apiKey
+     * @param secretKey
+     * @return Return added Region object
+     */
+    public Region addRegion(int id, String name, String endPoint, String apiKey, String secretKey);
+
+    /**
+     * Update details of the Region with specified Id
+     * @param id
+     * @param name
+     * @param endPoint
+     * @param apiKey
+     * @param secretKey
+     * @return Return updated Region object
+     */
+    public Region updateRegion(int id, String name, String endPoint, String apiKey, String secretKey);
+
+    /**
+     * @param id
+     * @return True if region is successfully removed
+     */
+    public boolean removeRegion(int id);
+
+    /** List all Regions or by Id/Name
+     * @param id
+     * @param name
+     * @return List of Regions
+     */
+    public List<? extends Region> listRegions(ListRegionsCmd cmd);
+
     /**
      * Deletes a user by userId
      * isPopagate flag is set to true if sent from peer Region
@@ -80,8 +80,8 @@ public interface RegionService {
      *
      * @return true if delete was successful, false otherwise
      */
-	boolean deleteUserAccount(DeleteAccountCmd cmd);
-	
+    boolean deleteUserAccount(DeleteAccountCmd cmd);
+
     /**
      * Updates an account
      * isPopagate falg is set to true if sent from peer Region 
@@ -91,22 +91,22 @@ public interface RegionService {
      * @return updated account object
      */
     Account updateAccount(UpdateAccountCmd cmd);
-	
-	/**
-	 * Disables an account by accountName and domainId or accountId
-	 * @param cmd
-	 * @return
-	 * @throws ResourceUnavailableException 
-	 * @throws ConcurrentOperationException 
-	 */
-	Account disableAccount(DisableAccountCmd cmd) throws ConcurrentOperationException, ResourceUnavailableException;
-	
-	/**
-	 * Enables an account by accountId
-	 * @param cmd
-	 * @return
-	 */
-	Account enableAccount(EnableAccountCmd cmd);
+
+    /**
+     * Disables an account by accountName and domainId or accountId
+     * @param cmd
+     * @return
+     * @throws ResourceUnavailableException
+     * @throws ConcurrentOperationException
+     */
+    Account disableAccount(DisableAccountCmd cmd) throws ConcurrentOperationException, ResourceUnavailableException;
+
+    /**
+     * Enables an account by accountId
+     * @param cmd
+     * @return
+     */
+    Account enableAccount(EnableAccountCmd cmd);
 
     /**
      * Deletes user by Id
@@ -114,7 +114,7 @@ public interface RegionService {
      * @return true if delete was successful, false otherwise
      */
     boolean deleteUser(DeleteUserCmd deleteUserCmd); 	
-    
+
     /**
      * update an existing domain
      * 
@@ -122,36 +122,36 @@ public interface RegionService {
      *            - the command containing domainId and new domainName
      * @return Domain object if the command succeeded
      */
-	public Domain updateDomain(UpdateDomainCmd updateDomainCmd);    
-    
-	/**
-	 * Deletes domain
-	 * @param cmd
-	 * @return true if delete was successful, false otherwise
-	 */
-	public boolean deleteDomain(DeleteDomainCmd cmd);
-	
+    public Domain updateDomain(UpdateDomainCmd updateDomainCmd);
+
+    /**
+     * Deletes domain
+     * @param cmd
+     * @return true if delete was successful, false otherwise
+     */
+    public boolean deleteDomain(DeleteDomainCmd cmd);
+
     /**
      * Update a user by userId
      *
      * @param userId
      * @return UserAccount object
      */
-	public UserAccount updateUser(UpdateUserCmd updateUserCmd);
-	
+    public UserAccount updateUser(UpdateUserCmd updateUserCmd);
+
     /**
      * Disables a user by userId
      *
      * @param cmd
      * @return UserAccount object
      */
-	public UserAccount disableUser(DisableUserCmd cmd);
-	
+    public UserAccount disableUser(DisableUserCmd cmd);
+
     /**
      * Enables a user
      *
      * @param cmd
      * @return UserAccount object
      */
-	public UserAccount enableUser(EnableUserCmd cmd);
+    public UserAccount enableUser(EnableUserCmd cmd);
 }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e37fdce1/core/src/com/cloud/user/AccountVO.java
----------------------------------------------------------------------
diff --git a/core/src/com/cloud/user/AccountVO.java b/core/src/com/cloud/user/AccountVO.java
index fd37c77..3711179 100644
--- a/core/src/com/cloud/user/AccountVO.java
+++ b/core/src/com/cloud/user/AccountVO.java
@@ -68,32 +68,32 @@ public class AccountVO implements Account {
 
     @Column(name="region_id")
     private int regionId;
-    
+
     public AccountVO() {
-    	this.uuid = UUID.randomUUID().toString();
+        this.uuid = UUID.randomUUID().toString();
     }
 
     public AccountVO(long id) {
         this.id = id;
-    	this.uuid = UUID.randomUUID().toString();
+        this.uuid = UUID.randomUUID().toString();
     }
-    
-    public AccountVO(String accountName, long domainId, String networkDomain, short type, String uuid, int regionId) {
+
+    public AccountVO(String accountName, long domainId, String networkDomain, short type, int regionId) {
         this.accountName = accountName;
         this.domainId = domainId;
         this.networkDomain = networkDomain;
         this.type = type;
         this.state = State.enabled;
-        this.uuid = uuid;
+        this.uuid = UUID.randomUUID().toString();
         this.regionId = regionId;
     }
 
     public void setNeedsCleanup(boolean value) {
-    	needsCleanup = value;
+        needsCleanup = value;
     }
 
     public boolean getNeedsCleanup() {
-    	return needsCleanup;
+        return needsCleanup;
     }
 
     @Override
@@ -102,10 +102,10 @@ public class AccountVO implements Account {
     }
 
     public void setId(long id) {
-		this.id = id;
-	}
+        this.id = id;
+    }
 
-	@Override
+    @Override
     public String getAccountName() {
         return accountName;
     }
@@ -134,11 +134,11 @@ public class AccountVO implements Account {
 
     @Override
     public Long getDefaultZoneId() {
-    	return defaultZoneId;
+        return defaultZoneId;
     }
 
     public void setDefaultZoneId(Long defaultZoneId) {
-    	this.defaultZoneId = defaultZoneId;
+        this.defaultZoneId = defaultZoneId;
     }
 
     @Override
@@ -176,18 +176,14 @@ public class AccountVO implements Account {
 
     @Override
     public String getUuid() {
-    	return this.uuid;
+        return this.uuid;
     }
 
     public void setUuid(String uuid) {
-    	this.uuid = uuid;
+        this.uuid = uuid;
     }
 
-	public int getRegionId() {
-		return regionId;
-	}
-
-	public void setRegionId(int regionId) {
-		this.regionId = regionId;
-	}
+    public int getRegionId() {
+        return regionId;
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e37fdce1/core/src/com/cloud/user/UserVO.java
----------------------------------------------------------------------
diff --git a/core/src/com/cloud/user/UserVO.java b/core/src/com/cloud/user/UserVO.java
index de7f31b..1780db4 100644
--- a/core/src/com/cloud/user/UserVO.java
+++ b/core/src/com/cloud/user/UserVO.java
@@ -95,7 +95,7 @@ public class UserVO implements User, Identity, InternalIdentity {
 
     @Column(name="region_id")
     private int regionId;
-    
+
     public UserVO() {
         this.uuid = UUID.randomUUID().toString();
     }
@@ -104,8 +104,8 @@ public class UserVO implements User, Identity, InternalIdentity {
         this.id = id;
         this.uuid = UUID.randomUUID().toString();
     }
-    
-    public UserVO(long accountId, String username, String password, String firstName, String lastName, String email, String timezone, String uuid, int regionId) {
+
+    public UserVO(long accountId, String username, String password, String firstName, String lastName, String email, String timezone, int regionId) {
         this.accountId = accountId;
         this.username = username;
         this.password = password;
@@ -114,10 +114,10 @@ public class UserVO implements User, Identity, InternalIdentity {
         this.email = email;
         this.timezone = timezone;
         this.state = State.enabled;
-    	this.uuid = uuid;
-    	this.regionId = regionId;
+        this.uuid = UUID.randomUUID().toString();
+        this.regionId = regionId;
     }
-    
+
     @Override
     public long getId() {
         return id;
@@ -265,12 +265,9 @@ public class UserVO implements User, Identity, InternalIdentity {
     public void setUuid(String uuid) {
         this.uuid = uuid;
     }
-    
-	public int getRegionId() {
-		return regionId;
-	}
 
-	public void setRegionId(int regionId) {
-		this.regionId = regionId;
-	}
+    public int getRegionId() {
+        return regionId;
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e37fdce1/server/src/com/cloud/projects/ProjectManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/projects/ProjectManagerImpl.java b/server/src/com/cloud/projects/ProjectManagerImpl.java
index 45a9a24..72ed940 100755
--- a/server/src/com/cloud/projects/ProjectManagerImpl.java
+++ b/server/src/com/cloud/projects/ProjectManagerImpl.java
@@ -204,7 +204,7 @@ public class ProjectManagerImpl extends ManagerBase implements ProjectManager {
         StringBuilder acctNm = new StringBuilder("PrjAcct-");
         acctNm.append(name).append("-").append(owner.getDomainId());
 
-        Account projectAccount = _accountMgr.createAccount(acctNm.toString(), Account.ACCOUNT_TYPE_PROJECT, domainId, null, null, "", 0);
+        Account projectAccount = _accountMgr.createAccount(acctNm.toString(), Account.ACCOUNT_TYPE_PROJECT, domainId, null, null);
 
         Project project = _projectDao.persist(new ProjectVO(name, displayText, owner.getDomainId(), projectAccount.getId()));
 

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e37fdce1/server/src/com/cloud/user/AccountManager.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/user/AccountManager.java b/server/src/com/cloud/user/AccountManager.java
index 4b3a601..ff9f168 100755
--- a/server/src/com/cloud/user/AccountManager.java
+++ b/server/src/com/cloud/user/AccountManager.java
@@ -47,14 +47,14 @@ public interface AccountManager extends AccountService {
     
     boolean deleteAccount(AccountVO account, long callerUserId, Account caller);
 
-	boolean cleanupAccount(AccountVO account, long callerUserId, Account caller);
+    boolean cleanupAccount(AccountVO account, long callerUserId, Account caller);
+
+    Long checkAccessAndSpecifyAuthority(Account caller, Long zoneId);
+
+    Account createAccount(String accountName, short accountType, Long domainId, String networkDomain, Map details);
+
+    UserVO createUser(long accountId, String userName, String password, String firstName, String lastName, String email, String timezone);
 
-	Long checkAccessAndSpecifyAuthority(Account caller, Long zoneId);
-	
-	Account createAccount(String accountName, short accountType, Long domainId, String networkDomain, Map details, String uuid, int regionId);
-	
-	UserVO createUser(long accountId, String userName, String password, String firstName, String lastName, String email, String timezone);
-	
     /**
      * Logs out a user
      * @param userId

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e37fdce1/server/src/com/cloud/user/AccountManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/user/AccountManagerImpl.java b/server/src/com/cloud/user/AccountManagerImpl.java
index f9a61e8..b1f8146 100755
--- a/server/src/com/cloud/user/AccountManagerImpl.java
+++ b/server/src/com/cloud/user/AccountManagerImpl.java
@@ -764,7 +764,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
     @DB
     @ActionEvent(eventType = EventTypes.EVENT_ACCOUNT_CREATE, eventDescription = "creating Account")
     public UserAccount createUserAccount(String userName, String password, String firstName, String lastName, String email, String timezone, String accountName, short accountType, Long domainId, String networkDomain,
-            Map<String, String> details, String accountUUID, String userUUID, Integer regionId) {
+            Map<String, String> details) {
 
         if (accountName == null) {
             accountName = userName;
@@ -806,41 +806,16 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
             }
         }
 
-        if(regionId == null){
-            Transaction txn = Transaction.currentTxn();
-            txn.start();
-
-        	// create account
-        	AccountVO account = createAccount(accountName, accountType, domainId, networkDomain, details, UUID.randomUUID().toString(), _regionMgr.getId());
-        	long accountId = account.getId();
-
-        	// create the first user for the account
-        	UserVO user = createUser(accountId, userName, password, firstName, lastName, email, timezone);
-
-        	if (accountType == Account.ACCOUNT_TYPE_RESOURCE_DOMAIN_ADMIN) {
-        		// set registration token
-        		byte[] bytes = (domainId + accountName + userName + System.currentTimeMillis()).getBytes();
-        		String registrationToken = UUID.nameUUIDFromBytes(bytes).toString();
-        		user.setRegistrationToken(registrationToken);
-        	}
-        	txn.commit();
-        	//Propagate Add account to other Regions
-        	_regionMgr.propagateAddAccount(userName, password, firstName, lastName, email, timezone, accountName, accountType, domainId, 
-        			networkDomain, details, account.getUuid(), user.getUuid());
-        	//check success
-            return _userAccountDao.findById(user.getId());
-        } else {
-        	// Account is propagated from another Region
 
-        	Transaction txn = Transaction.currentTxn();
+            Transaction txn = Transaction.currentTxn();
             txn.start();
 
             // create account
-            AccountVO account = createAccount(accountName, accountType, domainId, networkDomain, details, accountUUID, regionId);
+            AccountVO account = createAccount(accountName, accountType, domainId, networkDomain, details);
             long accountId = account.getId();
 
             // create the first user for the account
-            UserVO user = createUser(accountId, userName, password, firstName, lastName, email, timezone, userUUID, regionId);
+            UserVO user = createUser(accountId, userName, password, firstName, lastName, email, timezone);
 
             if (accountType == Account.ACCOUNT_TYPE_RESOURCE_DOMAIN_ADMIN) {
                 // set registration token
@@ -849,12 +824,13 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
                 user.setRegistrationToken(registrationToken);
             }
             txn.commit();
+            //check success
             return _userAccountDao.findById(user.getId());
-        }
+
     }
 
     @Override
-    public UserVO createUser(String userName, String password, String firstName, String lastName, String email, String timeZone, String accountName, Long domainId, String userUUID, Integer regionId) {
+    public UserVO createUser(String userName, String password, String firstName, String lastName, String email, String timeZone, String accountName, Long domainId) {
 
         // default domain to ROOT if not specified
         if (domainId == null) {
@@ -882,15 +858,8 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
         if (!_userAccountDao.validateUsernameInDomain(userName, domainId)) {
             throw new CloudRuntimeException("The user " + userName + " already exists in domain " + domainId);
         }
-        UserVO user = null;
-        if(regionId == null){
-        	user = createUser(account.getId(), userName, password, firstName, lastName, email, timeZone);
-        	//Propagate Add user to peer Regions
-        	_regionMgr.propagateAddUser(userName, password, firstName, lastName, email, timeZone, accountName, domain.getUuid(), user.getUuid());
-        } else {
-        	user = createUser(account.getId(), userName, password, firstName, lastName, email, timeZone, userUUID, regionId);
-        }
-        return user;
+
+        return createUser(account.getId(), userName, password, firstName, lastName, email, timeZone);
     }
 
     @Override
@@ -975,7 +944,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
                 }
             }
             if (encodedPassword == null) {
-            	throw new CloudRuntimeException("Failed to encode password");
+                throw new CloudRuntimeException("Failed to encode password");
             }
             user.setPassword(encodedPassword);
         }
@@ -1297,7 +1266,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
         String newAccountName = cmd.getNewName();
         String networkDomain = cmd.getNetworkDomain();
         Map<String, String> details = cmd.getDetails();
-        
+
         boolean success = false;
         Account account = null;
         if (accountId != null) {
@@ -1677,7 +1646,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
 
     @Override
     @DB
-    public AccountVO createAccount(String accountName, short accountType, Long domainId, String networkDomain, Map details, String uuid, int regionId) {
+    public AccountVO createAccount(String accountName, short accountType, Long domainId, String networkDomain, Map details) {
         // Validate domain
         Domain domain = _domainMgr.getDomain(domainId);
         if (domain == null) {
@@ -1721,7 +1690,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
         Transaction txn = Transaction.currentTxn();
         txn.start();
 
-        AccountVO account = _accountDao.persist(new AccountVO(accountName, domainId, networkDomain, accountType, uuid, regionId));
+        AccountVO account = _accountDao.persist(new AccountVO(accountName, domainId, networkDomain, accountType, _accountDao.getRegionId()));
 
         if (account == null) {
             throw new CloudRuntimeException("Failed to create account name " + accountName + " in domain id=" + domainId);
@@ -1749,7 +1718,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
         if (s_logger.isDebugEnabled()) {
             s_logger.debug("Creating user: " + userName + ", accountId: " + accountId + " timezone:" + timezone);
         }
-        
+
         String encodedPassword = null;
         for (UserAuthenticator  authenticator : _userAuthenticators) {
             encodedPassword = authenticator.encode(password);
@@ -1758,33 +1727,10 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
             }
         }
         if (encodedPassword == null) {
-        	throw new CloudRuntimeException("Failed to encode password");
-        }
-        
-        UserVO user = _userDao.persist(new UserVO(accountId, userName, encodedPassword, firstName, lastName, email, timezone, UUID.randomUUID().toString(), _regionMgr.getId()));
-
-        return user;
-    }
-
-    //ToDo Add events??
-    public UserVO createUser(long accountId, String userName, String password, String firstName, String lastName, String email, String timezone, String uuid, int regionId) {
-        if (s_logger.isDebugEnabled()) {
-            s_logger.debug("Creating user: " + userName + ", accountId: " + accountId + " timezone:" + timezone);
+            throw new CloudRuntimeException("Failed to encode password");
         }
 
-        String encodedPassword = null;
-        for (Iterator<UserAuthenticator> en = _userAuthenticators.iterator(); en.hasNext();) {
-            UserAuthenticator authenticator = en.next();
-            encodedPassword = authenticator.encode(password);
-            if (encodedPassword != null) {
-                break;
-            }
-        }
-        if (encodedPassword == null) {
-        	throw new CloudRuntimeException("Failed to encode password");
-        }
-        
-        UserVO user = _userDao.persist(new UserVO(accountId, userName, encodedPassword, firstName, lastName, email, timezone, uuid, regionId));
+        UserVO user = _userDao.persist(new UserVO(accountId, userName, encodedPassword, firstName, lastName, email, timezone, _userDao.getRegionId()));
 
         return user;
     }
@@ -2014,7 +1960,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
 
     @Override @DB
     public String[] createApiKeyAndSecretKey(RegisterCmd cmd) {
-    	//Send keys to other Regions
+        //Send keys to other Regions
         Long userId = cmd.getId();
 
         User user = getUserIncludingRemoved(userId);
@@ -2243,7 +2189,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
         }
     }
 
-	@Override
+    @Override
     public void buildACLViewSearchBuilder(SearchBuilder<? extends ControlledViewEntity> sb, Long domainId,
             boolean isRecursive, List<Long> permittedAccounts, ListProjectResourcesCriteria listProjectResourcesCriteria) {
 

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e37fdce1/server/src/com/cloud/user/DomainManager.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/user/DomainManager.java b/server/src/com/cloud/user/DomainManager.java
index af102e2..f268f6e 100644
--- a/server/src/com/cloud/user/DomainManager.java
+++ b/server/src/com/cloud/user/DomainManager.java
@@ -27,7 +27,7 @@ import com.cloud.domain.DomainVO;
 public interface DomainManager extends DomainService {
     Set<Long> getDomainChildrenIds(String parentDomainPath);
 
-    Domain createDomain(String name, Long parentId, Long ownerId, String networkDomain, String domainUUID, Integer regionId);
+    Domain createDomain(String name, Long parentId, Long ownerId, String networkDomain);
 
     Set<Long> getDomainParentIds(long domainId);
 

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e37fdce1/server/src/com/cloud/user/DomainManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/user/DomainManagerImpl.java b/server/src/com/cloud/user/DomainManagerImpl.java
index 8ad9f5b..d7967d5 100644
--- a/server/src/com/cloud/user/DomainManagerImpl.java
+++ b/server/src/com/cloud/user/DomainManagerImpl.java
@@ -118,7 +118,7 @@ public class DomainManagerImpl extends ManagerBase implements DomainManager, Dom
 
     @Override
     @ActionEvent(eventType = EventTypes.EVENT_DOMAIN_CREATE, eventDescription = "creating Domain")
-    public Domain createDomain(String name, Long parentId, String networkDomain, String domainUUID, Integer regionId) {
+    public Domain createDomain(String name, Long parentId, String networkDomain) {
         Account caller = UserContext.current().getCaller();
 
         if (parentId == null) {
@@ -136,13 +136,13 @@ public class DomainManagerImpl extends ManagerBase implements DomainManager, Dom
 
         _accountMgr.checkAccess(caller, parentDomain);
 
-        return createDomain(name, parentId, caller.getId(), networkDomain, domainUUID, regionId);
+        return createDomain(name, parentId, caller.getId(), networkDomain);
 
     }
 
     @Override
     @DB
-    public Domain createDomain(String name, Long parentId, Long ownerId, String networkDomain, String domainUUID, Integer regionId) {
+    public Domain createDomain(String name, Long parentId, Long ownerId, String networkDomain) {
         // Verify network domain
         if (networkDomain != null) {
             if (!NetUtils.verifyDomainName(networkDomain)) {
@@ -161,28 +161,14 @@ public class DomainManagerImpl extends ManagerBase implements DomainManager, Dom
             throw new InvalidParameterValueException("Domain with name " + name + " already exists for the parent id=" + parentId);
         }
 
-        if(regionId == null){
+
         Transaction txn = Transaction.currentTxn();
         txn.start();
 
-        	DomainVO domain = _domainDao.create(new DomainVO(name, ownerId, parentId, networkDomain, _regionMgr.getId()));
+        DomainVO domain = _domainDao.create(new DomainVO(name, ownerId, parentId, networkDomain, _regionMgr.getId()));
         _resourceCountDao.createResourceCounts(domain.getId(), ResourceLimit.ResourceOwnerType.Domain);
         txn.commit();
-        	//Propagate domain creation to peer Regions
-        	_regionMgr.propagateAddDomain(name, parentId, networkDomain, domain.getUuid());        	
-        	return domain;
-        } else {
-        	Transaction txn = Transaction.currentTxn();
-        	txn.start();
-
-        	DomainVO domain = _domainDao.create(new DomainVO(name, ownerId, parentId, networkDomain, domainUUID, regionId));
-        	_resourceCountDao.createResourceCounts(domain.getId(), ResourceLimit.ResourceOwnerType.Domain);
-
-        	txn.commit();
         return domain;
-        	
-        }
-        
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e37fdce1/server/src/com/cloud/user/dao/AccountDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/user/dao/AccountDaoImpl.java b/server/src/com/cloud/user/dao/AccountDaoImpl.java
index 892fdcd..3ffc1db 100755
--- a/server/src/com/cloud/user/dao/AccountDaoImpl.java
+++ b/server/src/com/cloud/user/dao/AccountDaoImpl.java
@@ -44,17 +44,17 @@ import com.cloud.utils.db.Transaction;
 public class AccountDaoImpl extends GenericDaoBase<AccountVO, Long> implements AccountDao {
     private static final Logger s_logger = Logger.getLogger(AccountDaoImpl.class);
     private final String FIND_USER_ACCOUNT_BY_API_KEY = "SELECT u.id, u.username, u.account_id, u.secret_key, u.state, " +
-    		                                      "a.id, a.account_name, a.type, a.domain_id, a.state " +
-    		                                      "FROM `cloud`.`user` u, `cloud`.`account` a " +
-    		                                      "WHERE u.account_id = a.id AND u.api_key = ? and u.removed IS NULL";
-    
+                                                  "a.id, a.account_name, a.type, a.domain_id, a.state " +
+                                                  "FROM `cloud`.`user` u, `cloud`.`account` a " +
+                                                  "WHERE u.account_id = a.id AND u.api_key = ? and u.removed IS NULL";
+
     protected final SearchBuilder<AccountVO> AllFieldsSearch;
     protected final SearchBuilder<AccountVO> AccountTypeSearch;
     protected final SearchBuilder<AccountVO> DomainAccountsSearch;
     protected final SearchBuilder<AccountVO> CleanupForRemovedAccountsSearch;
     protected final SearchBuilder<AccountVO> CleanupForDisabledAccountsSearch;
     protected final SearchBuilder<AccountVO> NonProjectAccountSearch;
-    
+
     public AccountDaoImpl() {
         AllFieldsSearch = createSearchBuilder();
         AllFieldsSearch.and("accountName", AllFieldsSearch.entity().getAccountName(), SearchCriteria.Op.EQ);
@@ -62,7 +62,7 @@ public class AccountDaoImpl extends GenericDaoBase<AccountVO, Long> implements A
         AllFieldsSearch.and("state", AllFieldsSearch.entity().getState(), SearchCriteria.Op.EQ);
         AllFieldsSearch.and("type", AllFieldsSearch.entity().getType(), SearchCriteria.Op.EQ);
         AllFieldsSearch.done();
-        
+
         AccountTypeSearch = createSearchBuilder();
         AccountTypeSearch.and("domainId", AccountTypeSearch.entity().getDomainId(), SearchCriteria.Op.EQ);
         AccountTypeSearch.and("type", AccountTypeSearch.entity().getType(), SearchCriteria.Op.EQ);
@@ -72,19 +72,19 @@ public class AccountDaoImpl extends GenericDaoBase<AccountVO, Long> implements A
         DomainAccountsSearch.and("domainId", DomainAccountsSearch.entity().getDomainId(), SearchCriteria.Op.EQ);
         DomainAccountsSearch.and("removed", DomainAccountsSearch.entity().getRemoved(), SearchCriteria.Op.NULL);
         DomainAccountsSearch.done();
-        
+
         CleanupForRemovedAccountsSearch = createSearchBuilder();
         CleanupForRemovedAccountsSearch.and("cleanup", CleanupForRemovedAccountsSearch.entity().getNeedsCleanup(), SearchCriteria.Op.EQ);
         CleanupForRemovedAccountsSearch.and("removed", CleanupForRemovedAccountsSearch.entity().getRemoved(), SearchCriteria.Op.NNULL);
         CleanupForRemovedAccountsSearch.and("domainid", CleanupForRemovedAccountsSearch.entity().getDomainId(), SearchCriteria.Op.EQ);
         CleanupForRemovedAccountsSearch.done();
-        
+
         CleanupForDisabledAccountsSearch = createSearchBuilder();
         CleanupForDisabledAccountsSearch.and("cleanup", CleanupForDisabledAccountsSearch.entity().getNeedsCleanup(), SearchCriteria.Op.EQ);
         CleanupForDisabledAccountsSearch.and("removed", CleanupForDisabledAccountsSearch.entity().getRemoved(), SearchCriteria.Op.NULL);
         CleanupForDisabledAccountsSearch.and("state", CleanupForDisabledAccountsSearch.entity().getState(), SearchCriteria.Op.EQ);
         CleanupForDisabledAccountsSearch.done();
-        
+
         NonProjectAccountSearch = createSearchBuilder();
         NonProjectAccountSearch.and("accountName", NonProjectAccountSearch.entity().getAccountName(), SearchCriteria.Op.EQ);
         NonProjectAccountSearch.and("domainId", NonProjectAccountSearch.entity().getDomainId(), SearchCriteria.Op.EQ);
@@ -92,28 +92,28 @@ public class AccountDaoImpl extends GenericDaoBase<AccountVO, Long> implements A
         NonProjectAccountSearch.and("type", NonProjectAccountSearch.entity().getType(), SearchCriteria.Op.NEQ);
         NonProjectAccountSearch.done();
     }
-    
+
     @Override
     public List<AccountVO> findCleanupsForRemovedAccounts(Long domainId) {
-    	SearchCriteria<AccountVO> sc = CleanupForRemovedAccountsSearch.create();
-    	sc.setParameters("cleanup", true);
-    	
-    	if (domainId != null) {
-    	    sc.setParameters("domainid", domainId);
-    	}
-    	
-    	return searchIncludingRemoved(sc, null, null, false);
+        SearchCriteria<AccountVO> sc = CleanupForRemovedAccountsSearch.create();
+        sc.setParameters("cleanup", true);
+
+        if (domainId != null) {
+            sc.setParameters("domainid", domainId);
+        }
+
+        return searchIncludingRemoved(sc, null, null, false);
     }
-    
+
     @Override
     public List<AccountVO> findCleanupsForDisabledAccounts() {
         SearchCriteria<AccountVO> sc = CleanupForDisabledAccountsSearch.create();
         sc.setParameters("cleanup", true);
         sc.setParameters("state", State.disabled);
-        
+
         return listBy(sc);
     }
-    
+
     @Override
     public Pair<User, Account> findUserAccountByApiKey(String apiKey) {
         Transaction txn = Transaction.currentTxn();
@@ -160,7 +160,7 @@ public class AccountDaoImpl extends GenericDaoBase<AccountVO, Long> implements A
         sc.setParameters("state", State.enabled);
         return findOneBy(sc);
     }
-    
+
     @Override
     public Account findEnabledNonProjectAccount(String accountName, Long domainId) {
         SearchCriteria<AccountVO> sc = NonProjectAccountSearch.create("accountName", accountName);
@@ -170,15 +170,15 @@ public class AccountDaoImpl extends GenericDaoBase<AccountVO, Long> implements A
         return findOneBy(sc);
     }
 
-	@Override
-	public Account findActiveAccount(String accountName, Long domainId) {
+    @Override
+    public Account findActiveAccount(String accountName, Long domainId) {
         SearchCriteria<AccountVO> sc = AllFieldsSearch.create("accountName", accountName);
         sc.setParameters("domainId", domainId);
         return findOneBy(sc);
     }
-	
-	@Override
-	public Account findActiveNonProjectAccount(String accountName, Long domainId) {
+
+    @Override
+    public Account findActiveNonProjectAccount(String accountName, Long domainId) {
         SearchCriteria<AccountVO> sc = NonProjectAccountSearch.create("accountName", accountName);
         sc.setParameters("domainId", domainId);
         sc.setParameters("type", Account.ACCOUNT_TYPE_PROJECT);
@@ -191,7 +191,7 @@ public class AccountDaoImpl extends GenericDaoBase<AccountVO, Long> implements A
         sc.setParameters("domainId", domainId);
         return findOneIncludingRemovedBy(sc);
     }
-    
+
     @Override
     public Account findNonProjectAccountIncludingRemoved(String accountName, Long domainId) {
         SearchCriteria<AccountVO> sc = NonProjectAccountSearch.create("accountName", accountName);
@@ -199,7 +199,7 @@ public class AccountDaoImpl extends GenericDaoBase<AccountVO, Long> implements A
         sc.setParameters("type", Account.ACCOUNT_TYPE_PROJECT);
         return findOneIncludingRemovedBy(sc);
     }
-    
+
     @Override
     public List<AccountVO> listAccounts(String accountName, Long domainId, Filter filter) {
         SearchCriteria<AccountVO> sc = AllFieldsSearch.create("accountName", accountName);
@@ -246,22 +246,22 @@ public class AccountDaoImpl extends GenericDaoBase<AccountVO, Long> implements A
         return listIncludingRemovedBy(sc, filter);
     }
 
-	@Override
-	public List<AccountVO> findActiveAccountsForDomain(Long domain) {
+    @Override
+    public List<AccountVO> findActiveAccountsForDomain(Long domain) {
         SearchCriteria<AccountVO> sc = DomainAccountsSearch.create();
         sc.setParameters("domainId", domain);
-		return listBy(sc);
-	}
-	
-	@Override
-	public void markForCleanup(long accountId) {
-		AccountVO account = findByIdIncludingRemoved(accountId);
-		if (!account.getNeedsCleanup()) {
-			account.setNeedsCleanup(true);
-        	if (!update(accountId, account)) {
-        	    s_logger.warn("Failed to mark account id=" + accountId + " for cleanup");
-        	}
-		}
-	}
-	
+        return listBy(sc);
+    }
+
+    @Override
+    public void markForCleanup(long accountId) {
+        AccountVO account = findByIdIncludingRemoved(accountId);
+        if (!account.getNeedsCleanup()) {
+            account.setNeedsCleanup(true);
+            if (!update(accountId, account)) {
+                s_logger.warn("Failed to mark account id=" + accountId + " for cleanup");
+            }
+        }
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e37fdce1/server/src/org/apache/cloudstack/region/RegionManager.java
----------------------------------------------------------------------
diff --git a/server/src/org/apache/cloudstack/region/RegionManager.java b/server/src/org/apache/cloudstack/region/RegionManager.java
index 56bdb9b..40fda70 100644
--- a/server/src/org/apache/cloudstack/region/RegionManager.java
+++ b/server/src/org/apache/cloudstack/region/RegionManager.java
@@ -31,186 +31,46 @@ import com.cloud.user.Account;
 import com.cloud.user.UserAccount;
 
 public interface RegionManager {
-	
-	/**
-	 * Propagates Account details to peer Regions
-	 * @param userName
-	 * @param password
-	 * @param firstName
-	 * @param lastName
-	 * @param email
-	 * @param timezone
-	 * @param accountName
-	 * @param accountType
-	 * @param domainId
-	 * @param networkDomain
-	 * @param details
-	 * @param accountUUID
-	 * @param userUUID
-	 * @return
-	 */
-	public boolean propagateAddAccount(String userName, String password, String firstName, String lastName, String email, String timezone, String accountName, short accountType, Long domainId, String networkDomain,
-            Map<String, String> details, String accountUUID, String userUUID);
-	
-	/**
-	 * Returns the Id of local Region
-	 * @return
-	 */
-	public int getId();
-	
-	/**
-	 * Propagates User details to peer Regions
-	 * @param userName
-	 * @param password
-	 * @param firstName
-	 * @param lastName
-	 * @param email
-	 * @param timeZone
-	 * @param accountName
-	 * @param domainUUId
-	 * @param userUUID
-	 */
-	public void propagateAddUser(String userName, String password,
-			String firstName, String lastName, String email, String timeZone,
-			String accountName, String domainUUId, String userUUID);
-	
-	/**
-	 * Propagates Domain details to peer Regions
-	 * @param name
-	 * @param parentId
-	 * @param networkDomain
-	 * @param uuid
-	 */
-	public void propagateAddDomain(String name, Long parentId, String networkDomain, String uuid);
-	
-	
-	/**
-	 * Adds a peer Region to the local Region
-	 * @param id
-	 * @param name 
-	 * @param endPoint
-	 * @param apiKey
-	 * @param secretKey
-	 * @return Returns added Region object
-	 */
-	Region addRegion(int id, String name, String endPoint, String apiKey, String secretKey);
-	
-	/**
-	 * Update details of the Region with specified Id
-	 * @param id
-	 * @param name
-	 * @param endPoint
-	 * 
-	 * @param apiKey
-	 * @param secretKey
-	 * @return Returns update Region object
-	 */
-	Region updateRegion(int id, String name, String endPoint, String apiKey, String secretKey);
-	
-	/**
-	 * @param id
-	 * @return True if region is successfully removed
-	 */
-	boolean removeRegion(int id);
-	
-	/** List all Regions or by Id/Name
-	 * @param id
-	 * @param name
-	 * @return List of Regions
-	 */
-	List<RegionVO> listRegions(Integer id, String name);
-	
-    /**
-     * Deletes a user by userId and propagates the change to peer Regions
-     *
-     * @param accountId
-     *            - id of the account do delete
-     *
-     * @return true if delete was successful, false otherwise
-     */
-	boolean deleteUserAccount(long accountId);
-	
-    /**
-     * Updates an account
-     * isPopagate falg is set to true if sent from peer Region 
-     *
-     * @param cmd
-     *            - the parameter containing accountId or account nameand domainId
-     * @return updated account object
-     */
-    Account updateAccount(UpdateAccountCmd cmd);
-    
-	/**
-	 * Disables an account by accountName and domainId or accountId
-	 * @param accountName
-	 * @param domainId
-	 * @param id
-	 * @param lockRequested
-	 * @return
-	 * @throws ConcurrentOperationException
-	 * @throws ResourceUnavailableException
-	 */
-	Account disableAccount(String accountName, Long domainId, Long id, Boolean lockRequested) throws ConcurrentOperationException, ResourceUnavailableException;
-	
-    /**
-     * Enables an account by accountId
-     *
-     * @param accountName
-     *            - the enableAccount command defining the accountId to be deleted.
-     * @param domainId
-     *            TODO
-     * @param accountId
-     * @return account object
-     */
-    Account enableAccount(String accountName, Long domainId, Long accountId); 	
-    
+
     /**
-     * Deletes user by Id
-     * @param deleteUserCmd
+     * Returns the Id of local Region
      * @return
      */
-    boolean deleteUser(DeleteUserCmd deleteUserCmd);
-    
+    public int getId();
+
     /**
-     * update an existing domain
-     * 
-     * @param cmd
-     *            - the command containing domainId and new domainName
-     * @return Domain object if the command succeeded
+     * Adds a peer Region to the local Region
+     * @param id
+     * @param name
+     * @param endPoint
+     * @param apiKey
+     * @param secretKey
+     * @return Returns added Region object
      */
-	Domain updateDomain(UpdateDomainCmd updateDomainCmd);    
-    
-	/**
-	 * Deletes domain by Id
-	 * @param id
-	 * @param cleanup
-	 * @return true if delete was successful, false otherwise
-	 */
-	boolean deleteDomain(Long id, Boolean cleanup);
-	
+    Region addRegion(int id, String name, String endPoint, String apiKey, String secretKey);
+
     /**
-     * Update a user by userId
+     * Update details of the Region with specified Id
+     * @param id
+     * @param name
+     * @param endPoint
      *
-     * @param userId
-     * @return UserAccount object
+     * @param apiKey
+     * @param secretKey
+     * @return Returns update Region object
      */
-	UserAccount updateUser(UpdateUserCmd updateUserCmd);
-	
-    /**
-     * Disables a user by userId
-     *
-     * @param userId
-     *            - the userId
-     * @return UserAccount object
-     */	
-	UserAccount disableUser(Long id);
-	
+    Region updateRegion(int id, String name, String endPoint, String apiKey, String secretKey);
+
     /**
-     * Enables a user
-     *
-     * @param userId
-     *            - the userId
-     * @return UserAccount object
+     * @param id
+     * @return True if region is successfully removed
+     */
+    boolean removeRegion(int id);
+
+    /** List all Regions or by Id/Name
+     * @param id
+     * @param name
+     * @return List of Regions
      */
-    UserAccount enableUser(long userId);
+    List<RegionVO> listRegions(Integer id, String name);
 }