diff --git a/server/src/com/cloud/api/ApiResponseHelper.java b/server/src/com/cloud/api/ApiResponseHelper.java index 7b1b0539014..193ab995586 100644 --- a/server/src/com/cloud/api/ApiResponseHelper.java +++ b/server/src/com/cloud/api/ApiResponseHelper.java @@ -23,10 +23,8 @@ import java.util.List; import com.cloud.api.response.AccountResponse; import com.cloud.api.response.DiskOfferingResponse; import com.cloud.api.response.DomainResponse; -import com.cloud.api.response.ResourceLimitResponse; import com.cloud.api.response.UserResponse; import com.cloud.configuration.ResourceCount.ResourceType; -import com.cloud.configuration.ResourceLimitVO; import com.cloud.domain.DomainVO; import com.cloud.server.Criteria; import com.cloud.storage.DiskOfferingVO; @@ -40,7 +38,6 @@ public class ApiResponseHelper { public static UserResponse createUserResponse (UserAccount user) { UserResponse userResponse = new UserResponse(); - userResponse.setAccountName(user.getAccountName()); userResponse.setAccountType(user.getType()); userResponse.setCreated(user.getCreated()); @@ -60,7 +57,6 @@ public class ApiResponseHelper { } public static AccountResponse createAccountResponse (Account account) { - boolean accountIsAdmin = (account.getType() == Account.ACCOUNT_TYPE_ADMIN); AccountResponse accountResponse = new AccountResponse(); accountResponse.setId(account.getId()); @@ -166,6 +162,9 @@ public class ApiResponseHelper { if (domain.getParent() != null) { domainResponse.setParentDomainName(ApiDBUtils.findDomainById(domain.getParent()).getName()); } + if (domain.getChildCount() > 0) { + domainResponse.setHasChild(true); + } return domainResponse; } @@ -181,7 +180,6 @@ public class ApiResponseHelper { diskOfferingResponse.setDomainId(offering.getDomainId()); } diskOfferingResponse.setTags(offering.getTags()); - return diskOfferingResponse; } diff --git a/server/src/com/cloud/api/commands/CreateDomainCmd.java b/server/src/com/cloud/api/commands/CreateDomainCmd.java index 6fdaee816b3..e463eac1c8b 100644 --- a/server/src/com/cloud/api/commands/CreateDomainCmd.java +++ b/server/src/com/cloud/api/commands/CreateDomainCmd.java @@ -20,7 +20,7 @@ package com.cloud.api.commands; import org.apache.log4j.Logger; import com.cloud.api.ApiConstants; -import com.cloud.api.ApiDBUtils; +import com.cloud.api.ApiResponseHelper; import com.cloud.api.BaseCmd; import com.cloud.api.Implementation; import com.cloud.api.Parameter; @@ -69,19 +69,13 @@ public class CreateDomainCmd extends BaseCmd { @Override @SuppressWarnings("unchecked") public DomainResponse getResponse() { - DomainResponse response = new DomainResponse(); - DomainVO responseObject = (DomainVO)getResponseObject(); - if (responseObject != null) { - response.setId(responseObject.getId()); - response.setDomainName(responseObject.getName()); - response.setLevel(responseObject.getLevel()); - response.setParentDomainId(responseObject.getParent()); - response.setParentDomainName(ApiDBUtils.findDomainById(responseObject.getParent()).getName()); + DomainVO domain = (DomainVO)getResponseObject(); + if (domain != null) { + DomainResponse response = ApiResponseHelper.createDomainResponse(domain); + response.setResponseName(getName()); + return response; } else { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to create domain"); } - - response.setResponseName(getName()); - return response; } } diff --git a/server/src/com/cloud/api/commands/CreateUserCmd.java b/server/src/com/cloud/api/commands/CreateUserCmd.java index c0fefc766d5..26a1604ef4a 100644 --- a/server/src/com/cloud/api/commands/CreateUserCmd.java +++ b/server/src/com/cloud/api/commands/CreateUserCmd.java @@ -21,7 +21,7 @@ package com.cloud.api.commands; import org.apache.log4j.Logger; import com.cloud.api.ApiConstants; -import com.cloud.api.ApiDBUtils; +import com.cloud.api.ApiResponseHelper; import com.cloud.api.BaseCmd; import com.cloud.api.Implementation; import com.cloud.api.Parameter; @@ -124,22 +124,7 @@ public class CreateUserCmd extends BaseCmd { @Override @SuppressWarnings("unchecked") public UserResponse getResponse() { UserAccount user = (UserAccount)getResponseObject(); - - // TODO: user keys? - UserResponse response = new UserResponse(); - response.setAccountName(user.getAccountName()); - response.setAccountType(user.getType()); - response.setCreated(user.getCreated()); - response.setDomainId(user.getDomainId()); - response.setDomainName(ApiDBUtils.findDomainById(user.getDomainId()).getName()); - response.setEmail(user.getEmail()); - response.setFirstname(user.getFirstname()); - response.setId(user.getId()); - response.setLastname(user.getLastname()); - response.setState(user.getState()); - response.setTimezone(user.getTimezone()); - response.setUsername(user.getUsername()); - + UserResponse response = ApiResponseHelper.createUserResponse(user); response.setResponseName(getName()); return response; } diff --git a/server/src/com/cloud/api/commands/DisableAccountCmd.java b/server/src/com/cloud/api/commands/DisableAccountCmd.java index 5e7cdb14af4..1418451c3d8 100644 --- a/server/src/com/cloud/api/commands/DisableAccountCmd.java +++ b/server/src/com/cloud/api/commands/DisableAccountCmd.java @@ -20,13 +20,15 @@ package com.cloud.api.commands; import org.apache.log4j.Logger; import com.cloud.api.ApiConstants; +import com.cloud.api.ApiResponseHelper; import com.cloud.api.BaseAsyncCmd; import com.cloud.api.Implementation; import com.cloud.api.Parameter; -import com.cloud.api.response.SuccessResponse; +import com.cloud.api.response.AccountResponse; import com.cloud.event.EventTypes; import com.cloud.server.ManagementServer; import com.cloud.user.Account; +import com.cloud.user.AccountVO; import com.cloud.user.UserContext; @Implementation(method="disableAccount", manager=ManagementServer.class, description="Disables an account") @@ -86,10 +88,9 @@ public class DisableAccountCmd extends BaseAsyncCmd { } @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - Boolean success = (Boolean)getResponseObject(); - SuccessResponse response = new SuccessResponse(); - response.setSuccess(success); + public AccountResponse getResponse() { + AccountVO account = (AccountVO)getResponseObject(); + AccountResponse response = ApiResponseHelper.createAccountResponse(account); response.setResponseName(getName()); return response; } diff --git a/server/src/com/cloud/api/commands/DisableUserCmd.java b/server/src/com/cloud/api/commands/DisableUserCmd.java index a9a9df331a9..af43617e06e 100644 --- a/server/src/com/cloud/api/commands/DisableUserCmd.java +++ b/server/src/com/cloud/api/commands/DisableUserCmd.java @@ -20,12 +20,14 @@ package com.cloud.api.commands; import org.apache.log4j.Logger; import com.cloud.api.ApiConstants; +import com.cloud.api.ApiResponseHelper; import com.cloud.api.BaseAsyncCmd; import com.cloud.api.Implementation; import com.cloud.api.Parameter; -import com.cloud.api.response.SuccessResponse; +import com.cloud.api.response.UserResponse; import com.cloud.event.EventTypes; import com.cloud.user.Account; +import com.cloud.user.UserAccount; import com.cloud.user.UserContext; @Implementation(method="disableUser", description="Disables a user account") @@ -78,10 +80,9 @@ public class DisableUserCmd extends BaseAsyncCmd { } @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - Boolean success = (Boolean)getResponseObject(); - SuccessResponse response = new SuccessResponse(); - response.setSuccess(success); + public UserResponse getResponse() { + UserAccount user = (UserAccount)getResponseObject(); + UserResponse response = ApiResponseHelper.createUserResponse(user); response.setResponseName(getName()); return response; } diff --git a/server/src/com/cloud/api/commands/EnableAccountCmd.java b/server/src/com/cloud/api/commands/EnableAccountCmd.java index 2bdc3fcd444..953eea42eca 100644 --- a/server/src/com/cloud/api/commands/EnableAccountCmd.java +++ b/server/src/com/cloud/api/commands/EnableAccountCmd.java @@ -20,12 +20,13 @@ package com.cloud.api.commands; import org.apache.log4j.Logger; import com.cloud.api.ApiConstants; +import com.cloud.api.ApiResponseHelper; import com.cloud.api.BaseCmd; import com.cloud.api.Implementation; import com.cloud.api.Parameter; -import com.cloud.api.ServerApiException; -import com.cloud.api.response.SuccessResponse; +import com.cloud.api.response.AccountResponse; import com.cloud.server.ManagementServer; +import com.cloud.user.AccountVO; @Implementation(method="enableAccount", manager=ManagementServer.class, description="Enables an account") public class EnableAccountCmd extends BaseCmd { @@ -64,16 +65,9 @@ public class EnableAccountCmd extends BaseCmd { } @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - SuccessResponse response = new SuccessResponse(); - Boolean responseObject = (Boolean)getResponseObject(); - - if (responseObject != null) { - response.setSuccess(responseObject); - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to enable account"); - } - + public AccountResponse getResponse() { + AccountVO account = (AccountVO)getResponseObject(); + AccountResponse response = ApiResponseHelper.createAccountResponse(account); response.setResponseName(getName()); return response; } diff --git a/server/src/com/cloud/api/commands/EnableUserCmd.java b/server/src/com/cloud/api/commands/EnableUserCmd.java index 85664a5b532..714b891c36a 100644 --- a/server/src/com/cloud/api/commands/EnableUserCmd.java +++ b/server/src/com/cloud/api/commands/EnableUserCmd.java @@ -21,12 +21,13 @@ package com.cloud.api.commands; import org.apache.log4j.Logger; import com.cloud.api.ApiConstants; +import com.cloud.api.ApiResponseHelper; import com.cloud.api.BaseCmd; import com.cloud.api.Implementation; import com.cloud.api.Parameter; -import com.cloud.api.ServerApiException; -import com.cloud.api.response.SuccessResponse; +import com.cloud.api.response.UserResponse; import com.cloud.server.ManagementServer; +import com.cloud.user.UserAccount; @Implementation(method="enableUser", manager=ManagementServer.class, description="Enables a user account") public class EnableUserCmd extends BaseCmd { @@ -59,16 +60,9 @@ public class EnableUserCmd extends BaseCmd { } @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - SuccessResponse response = new SuccessResponse(); - Boolean responseObject = (Boolean)getResponseObject(); - - if (responseObject != null) { - response.setSuccess(responseObject); - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to enable user"); - } - + public UserResponse getResponse() { + UserAccount user = (UserAccount)getResponseObject(); + UserResponse response = ApiResponseHelper.createUserResponse(user); response.setResponseName(getName()); return response; } diff --git a/server/src/com/cloud/api/commands/ListAccountsCmd.java b/server/src/com/cloud/api/commands/ListAccountsCmd.java index 4fc19da84dd..3ecdeaaa572 100644 --- a/server/src/com/cloud/api/commands/ListAccountsCmd.java +++ b/server/src/com/cloud/api/commands/ListAccountsCmd.java @@ -18,28 +18,18 @@ package com.cloud.api.commands; import java.util.ArrayList; -import java.util.Iterator; import java.util.List; import org.apache.log4j.Logger; import com.cloud.api.ApiConstants; -import com.cloud.api.ApiDBUtils; -import com.cloud.api.BaseCmd; +import com.cloud.api.ApiResponseHelper; import com.cloud.api.BaseListCmd; import com.cloud.api.Implementation; import com.cloud.api.Parameter; -import com.cloud.api.ServerApiException; import com.cloud.api.response.AccountResponse; import com.cloud.api.response.ListResponse; -import com.cloud.configuration.ResourceCount.ResourceType; -import com.cloud.server.Criteria; -import com.cloud.user.Account; import com.cloud.user.AccountVO; -import com.cloud.user.UserContext; -import com.cloud.user.UserStatisticsVO; -import com.cloud.uservm.UserVm; -import com.cloud.vm.State; @Implementation(method="searchForAccounts", description="Lists accounts and provides detailed account information for listed accounts") public class ListAccountsCmd extends BaseListCmd { @@ -121,107 +111,7 @@ public class ListAccountsCmd extends BaseListCmd { List accountResponses = new ArrayList(); for (AccountVO account : accounts) { - boolean accountIsAdmin = (account.getType() == Account.ACCOUNT_TYPE_ADMIN); - - AccountResponse acctResponse = new AccountResponse(); - acctResponse.setId(account.getId()); - acctResponse.setName(account.getAccountName()); - acctResponse.setAccountType(account.getType()); - acctResponse.setDomainId(account.getDomainId()); - acctResponse.setDomainName(ApiDBUtils.findDomainById(account.getDomainId()).getName()); - - //get network stat - List stats = ApiDBUtils.listUserStatsBy(account.getId()); - if (stats == null) { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Internal error searching for user stats"); - } - - long bytesSent = 0; - long bytesReceived = 0; - for (UserStatisticsVO stat : stats) { - long rx = stat.getNetBytesReceived() + stat.getCurrentBytesReceived(); - long tx = stat.getNetBytesSent() + stat.getCurrentBytesSent(); - bytesReceived = bytesReceived + Long.valueOf(rx); - bytesSent = bytesSent + Long.valueOf(tx); - } - acctResponse.setBytesReceived(bytesReceived); - acctResponse.setBytesSent(bytesSent); - - // Get resource limits and counts - - long vmLimit = ApiDBUtils.findCorrectResourceLimit(ResourceType.user_vm, account.getId()); - String vmLimitDisplay = (accountIsAdmin || vmLimit == -1) ? "Unlimited" : String.valueOf(vmLimit); - long vmTotal = ApiDBUtils.getResourceCount(ResourceType.user_vm, account.getId()); - String vmAvail = (accountIsAdmin || vmLimit == -1) ? "Unlimited" : String.valueOf(vmLimit - vmTotal); - acctResponse.setVmLimit(vmLimitDisplay); - acctResponse.setVmTotal(vmTotal); - acctResponse.setVmAvailable(vmAvail); - - long ipLimit = ApiDBUtils.findCorrectResourceLimit(ResourceType.public_ip, account.getId()); - String ipLimitDisplay = (accountIsAdmin || ipLimit == -1) ? "Unlimited" : String.valueOf(ipLimit); - long ipTotal = ApiDBUtils.getResourceCount(ResourceType.public_ip, account.getId()); - String ipAvail = (accountIsAdmin || ipLimit == -1) ? "Unlimited" : String.valueOf(ipLimit - ipTotal); - acctResponse.setIpLimit(ipLimitDisplay); - acctResponse.setIpTotal(ipTotal); - acctResponse.setIpAvailable(ipAvail); - - long volumeLimit = ApiDBUtils.findCorrectResourceLimit(ResourceType.volume, account.getId()); - String volumeLimitDisplay = (accountIsAdmin || volumeLimit == -1) ? "Unlimited" : String.valueOf(volumeLimit); - long volumeTotal = ApiDBUtils.getResourceCount(ResourceType.volume, account.getId()); - String volumeAvail = (accountIsAdmin || volumeLimit == -1) ? "Unlimited" : String.valueOf(volumeLimit - volumeTotal); - acctResponse.setVolumeLimit(volumeLimitDisplay); - acctResponse.setVolumeTotal(volumeTotal); - acctResponse.setVolumeAvailable(volumeAvail); - - long snapshotLimit = ApiDBUtils.findCorrectResourceLimit(ResourceType.snapshot, account.getId()); - String snapshotLimitDisplay = (accountIsAdmin || snapshotLimit == -1) ? "Unlimited" : String.valueOf(snapshotLimit); - long snapshotTotal = ApiDBUtils.getResourceCount(ResourceType.snapshot, account.getId()); - String snapshotAvail = (accountIsAdmin || snapshotLimit == -1) ? "Unlimited" : String.valueOf(snapshotLimit - snapshotTotal); - acctResponse.setSnapshotLimit(snapshotLimitDisplay); - acctResponse.setSnapshotTotal(snapshotTotal); - acctResponse.setSnapshotAvailable(snapshotAvail); - - long templateLimit = ApiDBUtils.findCorrectResourceLimit(ResourceType.template, account.getId()); - String templateLimitDisplay = (accountIsAdmin || templateLimit == -1) ? "Unlimited" : String.valueOf(templateLimit); - long templateTotal = ApiDBUtils.getResourceCount(ResourceType.template, account.getId()); - String templateAvail = (accountIsAdmin || templateLimit == -1) ? "Unlimited" : String.valueOf(templateLimit - templateTotal); - acctResponse.setTemplateLimit(templateLimitDisplay); - acctResponse.setTemplateTotal(templateTotal); - acctResponse.setTemplateAvailable(templateAvail); - - // Get stopped and running VMs - int vmStopped = 0; - int vmRunning = 0; - - Long[] accountIds = new Long[1]; - accountIds[0] = account.getId(); - - Criteria c1 = new Criteria(); - c1.addCriteria(Criteria.ACCOUNTID, accountIds); - List virtualMachines = ApiDBUtils.searchForUserVMs(c1); - - //get Running/Stopped VMs - for (Iterator iter = virtualMachines.iterator(); iter.hasNext();) { - // count how many stopped/running vms we have - UserVm vm = iter.next(); - - if (vm.getState() == State.Stopped) { - vmStopped++; - } else if (vm.getState() == State.Running) { - vmRunning++; - } - } - - acctResponse.setVmStopped(vmStopped); - acctResponse.setVmRunning(vmRunning); - - //show this info to admins only - Account ctxAccount = (Account)UserContext.current().getAccount(); - if ((ctxAccount == null) || isAdmin(ctxAccount.getType())) { - acctResponse.setState(account.getState()); - acctResponse.setCleanupRequired(account.getNeedsCleanup()); - } - + AccountResponse acctResponse = ApiResponseHelper.createAccountResponse(account); acctResponse.setResponseName("account"); accountResponses.add(acctResponse); } diff --git a/server/src/com/cloud/api/commands/ListDomainChildrenCmd.java b/server/src/com/cloud/api/commands/ListDomainChildrenCmd.java index 7d97d75daa3..dfe4de2a2fb 100644 --- a/server/src/com/cloud/api/commands/ListDomainChildrenCmd.java +++ b/server/src/com/cloud/api/commands/ListDomainChildrenCmd.java @@ -23,7 +23,7 @@ import java.util.List; import org.apache.log4j.Logger; import com.cloud.api.ApiConstants; -import com.cloud.api.ApiDBUtils; +import com.cloud.api.ApiResponseHelper; import com.cloud.api.BaseListCmd; import com.cloud.api.Implementation; import com.cloud.api.Parameter; @@ -82,16 +82,7 @@ public class ListDomainChildrenCmd extends BaseListCmd { ListResponse response = new ListResponse(); List domainResponses = new ArrayList(); for (DomainVO domain : domains) { - DomainResponse domainResponse = new DomainResponse(); - domainResponse.setDomainName(domain.getName()); - domainResponse.setId(domain.getId()); - domainResponse.setLevel(domain.getLevel()); - domainResponse.setHasChild(domain.getChildCount() > 0); - domainResponse.setParentDomainId(domain.getParent()); - if (domain.getParent() != null) { - domainResponse.setParentDomainName(ApiDBUtils.findDomainById(domain.getParent()).getName()); - } - + DomainResponse domainResponse = ApiResponseHelper.createDomainResponse(domain); domainResponse.setResponseName("domain"); domainResponses.add(domainResponse); } diff --git a/server/src/com/cloud/api/commands/ListDomainsCmd.java b/server/src/com/cloud/api/commands/ListDomainsCmd.java index 573597c75f5..63a77f2a6e3 100644 --- a/server/src/com/cloud/api/commands/ListDomainsCmd.java +++ b/server/src/com/cloud/api/commands/ListDomainsCmd.java @@ -23,7 +23,7 @@ import java.util.List; import org.apache.log4j.Logger; import com.cloud.api.ApiConstants; -import com.cloud.api.ApiDBUtils; +import com.cloud.api.ApiResponseHelper; import com.cloud.api.BaseListCmd; import com.cloud.api.Implementation; import com.cloud.api.Parameter; @@ -82,15 +82,7 @@ public class ListDomainsCmd extends BaseListCmd { ListResponse response = new ListResponse(); List domainResponses = new ArrayList(); for (DomainVO domain : domains) { - DomainResponse domainResponse = new DomainResponse(); - domainResponse.setDomainName(domain.getName()); - domainResponse.setId(domain.getId()); - domainResponse.setLevel(domain.getLevel()); - domainResponse.setParentDomainId(domain.getParent()); - if (domain.getParent() != null) { - domainResponse.setParentDomainName(ApiDBUtils.findDomainById(domain.getParent()).getName()); - } - + DomainResponse domainResponse = ApiResponseHelper.createDomainResponse(domain); domainResponse.setResponseName("domain"); domainResponses.add(domainResponse); } diff --git a/server/src/com/cloud/api/commands/ListUsersCmd.java b/server/src/com/cloud/api/commands/ListUsersCmd.java index daa17dc834a..ee08e971d8d 100644 --- a/server/src/com/cloud/api/commands/ListUsersCmd.java +++ b/server/src/com/cloud/api/commands/ListUsersCmd.java @@ -24,7 +24,7 @@ import java.util.List; import org.apache.log4j.Logger; import com.cloud.api.ApiConstants; -import com.cloud.api.ApiDBUtils; +import com.cloud.api.ApiResponseHelper; import com.cloud.api.BaseListCmd; import com.cloud.api.Implementation; import com.cloud.api.Parameter; @@ -104,26 +104,10 @@ public class ListUsersCmd extends BaseListCmd { ListResponse response = new ListResponse(); List userResponses = new ArrayList(); for (UserAccountVO user : users) { - UserResponse userResponse = new UserResponse(); - userResponse.setId(user.getId()); - userResponse.setUsername(user.getUsername()); - userResponse.setFirstname(user.getFirstname()); - userResponse.setLastname(user.getLastname()); - userResponse.setEmail(user.getEmail()); - userResponse.setCreated(user.getCreated()); - userResponse.setState(user.getState()); - userResponse.setAccountName(user.getAccountName()); - userResponse.setAccountType(user.getType()); - userResponse.setDomainId(user.getDomainId()); - userResponse.setDomainName(ApiDBUtils.findDomainById(user.getDomainId()).getName()); - userResponse.setTimezone(user.getTimezone()); - userResponse.setApiKey(user.getApiKey()); - userResponse.setSecretKey(user.getSecretKey()); - + UserResponse userResponse = ApiResponseHelper.createUserResponse(user); userResponse.setResponseName("user"); userResponses.add(userResponse); } - response.setResponses(userResponses); response.setResponseName(getName()); return response; diff --git a/server/src/com/cloud/api/commands/LockAccountCmd.java b/server/src/com/cloud/api/commands/LockAccountCmd.java index 242c40faf63..3151b5a3cb4 100644 --- a/server/src/com/cloud/api/commands/LockAccountCmd.java +++ b/server/src/com/cloud/api/commands/LockAccountCmd.java @@ -20,11 +20,13 @@ package com.cloud.api.commands; import org.apache.log4j.Logger; import com.cloud.api.ApiConstants; +import com.cloud.api.ApiResponseHelper; import com.cloud.api.BaseCmd; import com.cloud.api.Implementation; import com.cloud.api.Parameter; -import com.cloud.api.response.SuccessResponse; +import com.cloud.api.response.AccountResponse; import com.cloud.server.ManagementServer; +import com.cloud.user.AccountVO; @Implementation(method="lockAccount", manager=ManagementServer.class, description="Locks an account") public class LockAccountCmd extends BaseCmd { @@ -64,10 +66,9 @@ public class LockAccountCmd extends BaseCmd { } @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - Boolean success = (Boolean)getResponseObject(); - SuccessResponse response = new SuccessResponse(); - response.setSuccess(success); + public AccountResponse getResponse() { + AccountVO account = (AccountVO)getResponseObject(); + AccountResponse response = ApiResponseHelper.createAccountResponse(account); response.setResponseName(getName()); return response; } diff --git a/server/src/com/cloud/api/commands/LockUserCmd.java b/server/src/com/cloud/api/commands/LockUserCmd.java index 36e77caa4d4..78685784022 100644 --- a/server/src/com/cloud/api/commands/LockUserCmd.java +++ b/server/src/com/cloud/api/commands/LockUserCmd.java @@ -20,11 +20,13 @@ package com.cloud.api.commands; import org.apache.log4j.Logger; import com.cloud.api.ApiConstants; +import com.cloud.api.ApiResponseHelper; import com.cloud.api.BaseCmd; import com.cloud.api.Implementation; import com.cloud.api.Parameter; -import com.cloud.api.response.SuccessResponse; +import com.cloud.api.response.UserResponse; import com.cloud.server.ManagementServer; +import com.cloud.user.UserAccount; @Implementation(method="lockUser", manager=ManagementServer.class, description="Locks a user account") public class LockUserCmd extends BaseCmd { @@ -57,11 +59,10 @@ public class LockUserCmd extends BaseCmd { } @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - Boolean success = (Boolean)getResponseObject(); - SuccessResponse response = new SuccessResponse(); - response.setSuccess(success); + public UserResponse getResponse() { + UserAccount user = (UserAccount)getResponseObject(); + UserResponse response = ApiResponseHelper.createUserResponse(user); response.setResponseName(getName()); return response; - } + } } diff --git a/server/src/com/cloud/api/commands/UpdateAccountCmd.java b/server/src/com/cloud/api/commands/UpdateAccountCmd.java index f1a6ab213c2..4122949fef9 100644 --- a/server/src/com/cloud/api/commands/UpdateAccountCmd.java +++ b/server/src/com/cloud/api/commands/UpdateAccountCmd.java @@ -20,12 +20,13 @@ package com.cloud.api.commands; import org.apache.log4j.Logger; import com.cloud.api.ApiConstants; +import com.cloud.api.ApiResponseHelper; import com.cloud.api.BaseCmd; import com.cloud.api.Implementation; import com.cloud.api.Parameter; -import com.cloud.api.ServerApiException; -import com.cloud.api.response.SuccessResponse; +import com.cloud.api.response.AccountResponse; import com.cloud.server.ManagementServer; +import com.cloud.user.AccountVO; @Implementation(method="updateAccount", manager=ManagementServer.class, description="Updates account information for the authenticated user") public class UpdateAccountCmd extends BaseCmd{ @@ -71,16 +72,9 @@ public class UpdateAccountCmd extends BaseCmd{ } @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - SuccessResponse response = new SuccessResponse(); - Boolean responseObject = (Boolean)getResponseObject(); - - if (responseObject != null) { - response.setSuccess(responseObject); - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to update account"); - } - + public AccountResponse getResponse() { + AccountVO account = (AccountVO)getResponseObject(); + AccountResponse response = ApiResponseHelper.createAccountResponse(account); response.setResponseName(getName()); return response; } diff --git a/server/src/com/cloud/api/commands/UpdateDomainCmd.java b/server/src/com/cloud/api/commands/UpdateDomainCmd.java index ba3dfb7405e..c4ed054fe3d 100644 --- a/server/src/com/cloud/api/commands/UpdateDomainCmd.java +++ b/server/src/com/cloud/api/commands/UpdateDomainCmd.java @@ -20,11 +20,13 @@ package com.cloud.api.commands; import org.apache.log4j.Logger; import com.cloud.api.ApiConstants; +import com.cloud.api.ApiResponseHelper; import com.cloud.api.BaseCmd; import com.cloud.api.Implementation; import com.cloud.api.Parameter; import com.cloud.api.ServerApiException; -import com.cloud.api.response.SuccessResponse; +import com.cloud.api.response.DomainResponse; +import com.cloud.domain.DomainVO; import com.cloud.server.ManagementServer; @Implementation(method="updateDomain", manager=ManagementServer.class, description="Updates a domain with a new name") @@ -64,17 +66,14 @@ public class UpdateDomainCmd extends BaseCmd { } @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - SuccessResponse response = new SuccessResponse(); - Boolean responseObject = (Boolean)getResponseObject(); - - if (responseObject != null) { - response.setSuccess(responseObject); + public DomainResponse getResponse() { + DomainVO domain = (DomainVO)getResponseObject(); + if (domain != null) { + DomainResponse response = ApiResponseHelper.createDomainResponse(domain); + response.setResponseName(getName()); + return response; } else { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to update domain"); } - - response.setResponseName(getName()); - return response; } } diff --git a/server/src/com/cloud/api/commands/UpdateUserCmd.java b/server/src/com/cloud/api/commands/UpdateUserCmd.java index 1bddc3dde67..98f0df69c96 100644 --- a/server/src/com/cloud/api/commands/UpdateUserCmd.java +++ b/server/src/com/cloud/api/commands/UpdateUserCmd.java @@ -21,11 +21,13 @@ package com.cloud.api.commands; import org.apache.log4j.Logger; import com.cloud.api.ApiConstants; +import com.cloud.api.ApiResponseHelper; import com.cloud.api.BaseCmd; import com.cloud.api.Implementation; import com.cloud.api.Parameter; -import com.cloud.api.response.SuccessResponse; +import com.cloud.api.response.UserResponse; import com.cloud.server.ManagementServer; +import com.cloud.user.UserAccount; @Implementation(method="updateUser", manager=ManagementServer.class, description="Updates a user account") public class UpdateUserCmd extends BaseCmd { @@ -113,11 +115,10 @@ public class UpdateUserCmd extends BaseCmd { } @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - Boolean success = (Boolean)getResponseObject(); - SuccessResponse response = new SuccessResponse(); - response.setSuccess(success); + public UserResponse getResponse() { + UserAccount user = (UserAccount)getResponseObject(); + UserResponse response = ApiResponseHelper.createUserResponse(user); response.setResponseName(getName()); return response; - } + } } \ No newline at end of file diff --git a/server/src/com/cloud/api/response/DomainResponse.java b/server/src/com/cloud/api/response/DomainResponse.java index a10545cd728..420d0dbd478 100644 --- a/server/src/com/cloud/api/response/DomainResponse.java +++ b/server/src/com/cloud/api/response/DomainResponse.java @@ -38,7 +38,7 @@ public class DomainResponse extends BaseResponse { private String parentDomainName; @SerializedName("haschild") @Param(description="whether the domain has one or more sub-domains") - private Boolean hasChild; + private boolean hasChild; public Long getId() { return id; @@ -80,11 +80,11 @@ public class DomainResponse extends BaseResponse { this.parentDomainName = parentDomainName; } - public Boolean getHasChild() { + public boolean getHasChild() { return hasChild; } - public void setHasChild(Boolean hasChild) { + public void setHasChild(boolean hasChild) { this.hasChild = hasChild; } } diff --git a/server/src/com/cloud/server/ManagementServer.java b/server/src/com/cloud/server/ManagementServer.java index 0726298929b..c8dd41b47c5 100755 --- a/server/src/com/cloud/server/ManagementServer.java +++ b/server/src/com/cloud/server/ManagementServer.java @@ -114,7 +114,6 @@ import com.cloud.info.ConsoleProxyInfo; import com.cloud.network.FirewallRuleVO; import com.cloud.network.IPAddressVO; import com.cloud.network.LoadBalancerVO; -import com.cloud.network.NetworkRuleConfigVO; import com.cloud.network.RemoteAccessVpnVO; import com.cloud.network.security.NetworkGroupVO; import com.cloud.service.ServiceOfferingVO; @@ -201,9 +200,10 @@ public interface ManagementServer { /** * Disables a user by userId * @param cmd the command wrapping the userId parameter - * @return true if disable was successful, false otherwise + * @return UserAccount object + * @throws InvalidParameterValueException, PermissionDeniedException */ - boolean disableUser(DisableUserCmd cmd); + UserAccount disableUser(DisableUserCmd cmd) throws InvalidParameterValueException, PermissionDeniedException;; /** * Disables an account by accountId @@ -214,51 +214,50 @@ public interface ManagementServer { /** * Disables an account by accountName and domainId - * @param cmd the command wrapping the accountName and domainId + * @param disabled account if success * @return true if disable was successful, false otherwise - * @throws InvalidParameterValueException - * @throws PermissionDeniedException + * @throws InvalidParameterValueException, PermissionDeniedException */ - boolean disableAccount(DisableAccountCmd cmd) throws InvalidParameterValueException, PermissionDeniedException; + AccountVO disableAccount(DisableAccountCmd cmd) throws InvalidParameterValueException, PermissionDeniedException; /** * Enables an account by accountId * @param cmd - the enableAccount command defining the accountId to be deleted. - * @return true if enable was successful, false otherwise + * @return account object * @throws InvalidParameterValueException, PermissionDeniedException */ - boolean enableAccount(EnableAccountCmd cmd) throws InvalidParameterValueException, PermissionDeniedException; + AccountVO enableAccount(EnableAccountCmd cmd) throws InvalidParameterValueException, PermissionDeniedException; /** * Locks an account by accountId. A locked account cannot access the API, but will still have running VMs/IP addresses allocated/etc. * @param cmd - the LockAccount command defining the accountId to be locked. - * @return true if enable was successful, false otherwise + * @return account object */ - boolean lockAccount(LockAccountCmd cmd); + AccountVO lockAccount(LockAccountCmd cmd); /** * Updates an account name * @param cmd - the parameter containing accountId - * @return true if update was successful, false otherwise + * @return updated account object * @throws InvalidParameterValueException, PermissionDeniedException */ - boolean updateAccount(UpdateAccountCmd cmd) throws InvalidParameterValueException, PermissionDeniedException; + AccountVO updateAccount(UpdateAccountCmd cmd) throws InvalidParameterValueException, PermissionDeniedException; /** * Enables a user * @param cmd - the command containing userId - * @return true if enable was successful, false otherwise - * @throws InvalidParameterValueException + * @return UserAccount object + * @throws InvalidParameterValueException, PermissionDeniedException */ - boolean enableUser(EnableUserCmd cmd) throws InvalidParameterValueException, PermissionDeniedException; + UserAccount enableUser(EnableUserCmd cmd) throws InvalidParameterValueException, PermissionDeniedException; /** * Locks a user by userId. A locked user cannot access the API, but will still have running VMs/IP addresses allocated/etc. * @param userId - * @return true if enable was successful, false otherwise + * @return UserAccount object */ - boolean lockUser(LockUserCmd cmd); + UserAccount lockUser(LockUserCmd cmd); /** * registerPreallocatedLun registers a preallocated lun in our database. @@ -805,10 +804,10 @@ public interface ManagementServer { /** * update an existing domain * @param cmd - the command containing domainId and new domainName - * @return true if domain is updated, false otherwise + * @return Domain object if the command succeeded * @throws InvalidParameterValueException, PermissionDeniedException */ - boolean updateDomain(UpdateDomainCmd cmd) throws InvalidParameterValueException, PermissionDeniedException; + DomainVO updateDomain(UpdateDomainCmd cmd) throws InvalidParameterValueException, PermissionDeniedException; /** * find the domain Id associated with the given account @@ -1077,7 +1076,7 @@ public interface ManagementServer { boolean checkLocalStorageConfigVal(); - boolean updateUser(UpdateUserCmd cmd) throws InvalidParameterValueException; + UserAccount updateUser(UpdateUserCmd cmd) throws InvalidParameterValueException; boolean updateTemplatePermissions(UpdateTemplatePermissionsCmd cmd)throws InvalidParameterValueException, PermissionDeniedException,InternalErrorException; boolean updateTemplatePermissions(UpdateIsoPermissionsCmd cmd)throws InvalidParameterValueException, PermissionDeniedException,InternalErrorException; String[] createApiKeyAndSecretKey(RegisterCmd cmd); diff --git a/server/src/com/cloud/server/ManagementServerImpl.java b/server/src/com/cloud/server/ManagementServerImpl.java index 351747d5194..b129f52f152 100755 --- a/server/src/com/cloud/server/ManagementServerImpl.java +++ b/server/src/com/cloud/server/ManagementServerImpl.java @@ -151,8 +151,8 @@ import com.cloud.certificate.dao.CertificateDao; import com.cloud.configuration.Config; import com.cloud.configuration.ConfigurationManager; import com.cloud.configuration.ConfigurationVO; -import com.cloud.configuration.ResourceLimitVO; import com.cloud.configuration.ResourceCount.ResourceType; +import com.cloud.configuration.ResourceLimitVO; import com.cloud.configuration.dao.ConfigurationDao; import com.cloud.configuration.dao.ResourceLimitDao; import com.cloud.consoleproxy.ConsoleProxyManager; @@ -162,8 +162,8 @@ import com.cloud.dc.DataCenterIpAddressVO; import com.cloud.dc.DataCenterVO; import com.cloud.dc.HostPodVO; import com.cloud.dc.PodVlanMapVO; -import com.cloud.dc.VlanVO; import com.cloud.dc.Vlan.VlanType; +import com.cloud.dc.VlanVO; import com.cloud.dc.dao.AccountVlanMapDao; import com.cloud.dc.dao.ClusterDao; import com.cloud.dc.dao.DataCenterDao; @@ -221,23 +221,23 @@ import com.cloud.storage.GuestOSCategoryVO; import com.cloud.storage.GuestOSVO; import com.cloud.storage.LaunchPermissionVO; import com.cloud.storage.Snapshot; +import com.cloud.storage.Snapshot.SnapshotType; import com.cloud.storage.SnapshotPolicyVO; import com.cloud.storage.SnapshotVO; import com.cloud.storage.Storage; +import com.cloud.storage.Storage.ImageFormat; import com.cloud.storage.StorageManager; import com.cloud.storage.StoragePoolHostVO; import com.cloud.storage.StoragePoolVO; import com.cloud.storage.StorageStats; import com.cloud.storage.Upload; +import com.cloud.storage.Upload.Mode; +import com.cloud.storage.Upload.Type; import com.cloud.storage.UploadVO; import com.cloud.storage.VMTemplateVO; import com.cloud.storage.Volume; import com.cloud.storage.VolumeStats; import com.cloud.storage.VolumeVO; -import com.cloud.storage.Snapshot.SnapshotType; -import com.cloud.storage.Storage.ImageFormat; -import com.cloud.storage.Upload.Mode; -import com.cloud.storage.Upload.Type; import com.cloud.storage.dao.DiskOfferingDao; import com.cloud.storage.dao.DiskTemplateDao; import com.cloud.storage.dao.GuestOSCategoryDao; @@ -249,8 +249,8 @@ import com.cloud.storage.dao.StoragePoolDao; import com.cloud.storage.dao.StoragePoolHostDao; import com.cloud.storage.dao.UploadDao; import com.cloud.storage.dao.VMTemplateDao; -import com.cloud.storage.dao.VolumeDao; import com.cloud.storage.dao.VMTemplateDao.TemplateFilter; +import com.cloud.storage.dao.VolumeDao; import com.cloud.storage.preallocatedlun.PreallocatedLunVO; import com.cloud.storage.preallocatedlun.dao.PreallocatedLunDao; import com.cloud.storage.secondary.SecondaryStorageVmManager; @@ -282,10 +282,10 @@ import com.cloud.utils.db.DB; import com.cloud.utils.db.Filter; import com.cloud.utils.db.GlobalLock; import com.cloud.utils.db.JoinBuilder; +import com.cloud.utils.db.JoinBuilder.JoinType; import com.cloud.utils.db.SearchBuilder; import com.cloud.utils.db.SearchCriteria; import com.cloud.utils.db.Transaction; -import com.cloud.utils.db.JoinBuilder.JoinType; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.exception.ExecutionException; import com.cloud.utils.net.MacAddress; @@ -952,13 +952,13 @@ public class ManagementServerImpl implements ManagementServer { } @Override - public boolean disableUser(DisableUserCmd cmd) { + public UserAccount disableUser(DisableUserCmd cmd) throws InvalidParameterValueException, PermissionDeniedException{ Long userId = cmd.getId(); if (userId <= 2) { if (s_logger.isInfoEnabled()) { - s_logger.info("disableUser -- invalid user id: " + userId); + s_logger.error("disableUser -- invalid user id: " + userId); + throw new InvalidParameterValueException("Unable to disable with id " + userId + " as it belongs to system account"); } - return false; } boolean success = doSetUserStatus(userId, Account.ACCOUNT_STATE_DISABLED); @@ -967,19 +967,23 @@ public class ManagementServerImpl implements ManagementServer { List allUsersByAccount = _userDao.listByAccount(user.getAccountId()); for (UserVO oneUser : allUsersByAccount) { if (oneUser.getState().equals(Account.ACCOUNT_STATE_ENABLED)) { - return true; + return _userAccountDao.findById(userId); } } // there are no enabled users attached to this user's account, disable the account - return disableAccount(user.getAccountId()); + if (disableAccount(user.getAccountId())) + return _userAccountDao.findById(userId); + else + throw new CloudRuntimeException("Unable to disable corresponding account for the user " + userId); + } else { - return false; + throw new CloudRuntimeException("Unable to disable user " + userId); } } @Override - public boolean enableUser(EnableUserCmd cmd) throws InvalidParameterValueException, PermissionDeniedException{ + public UserAccount enableUser(EnableUserCmd cmd) throws InvalidParameterValueException, PermissionDeniedException{ Long userId = cmd.getId(); Account adminAccount = UserContext.current().getAccount(); boolean success = false; @@ -1004,11 +1008,13 @@ public class ManagementServerImpl implements ManagementServer { // make sure the account is enabled too success = (success && enableAccount(user.getAccountId())); - return success; + if (success) + return _userAccountDao.findById(userId); + else throw new CloudRuntimeException("Unable to enable user " + userId); } @Override - public boolean lockUser(LockUserCmd cmd) { + public UserAccount lockUser(LockUserCmd cmd) { boolean success = false; Account adminAccount = UserContext.current().getAccount(); @@ -1036,7 +1042,7 @@ public class ManagementServerImpl implements ManagementServer { // if the user is either locked already or disabled already, don't change state...only lock currently enabled users if (user.getState().equals(Account.ACCOUNT_STATE_LOCKED)) { // already locked...no-op - return true; + return _userAccountDao.findById(id); } else if (user.getState().equals(Account.ACCOUNT_STATE_ENABLED)) { success = doSetUserStatus(user.getId(), Account.ACCOUNT_STATE_LOCKED); @@ -1057,7 +1063,11 @@ public class ManagementServerImpl implements ManagementServer { s_logger.info("Attempting to lock a non-enabled user, current state is " + user.getState() + " (userId: " + user.getId() + "), locking failed."); } } - return success; + + if (success) + return _userAccountDao.findById(id); + else + throw new CloudRuntimeException("Unable to lock user " + id); } private boolean doSetUserStatus(long userId, String state) { @@ -1067,7 +1077,7 @@ public class ManagementServerImpl implements ManagementServer { } @Override - public boolean disableAccount(DisableAccountCmd cmd) throws InvalidParameterValueException, PermissionDeniedException { + public AccountVO disableAccount(DisableAccountCmd cmd) throws InvalidParameterValueException, PermissionDeniedException { String accountName = cmd.getAccountName(); Long domainId = cmd.getDomainId(); @@ -1080,7 +1090,10 @@ public class ManagementServerImpl implements ManagementServer { if (account == null) { throw new InvalidParameterValueException("Unable to find account " + accountName + " in domain " + domainId); } - return disableAccount(account.getId()); + if (disableAccount(account.getId())) + return _accountDao.findById(account.getId()); + else + throw new CloudRuntimeException("Unable to update account " + accountName + " in domain " + domainId); } @Override @@ -1107,7 +1120,7 @@ public class ManagementServerImpl implements ManagementServer { } @Override - public boolean updateAccount(UpdateAccountCmd cmd) throws InvalidParameterValueException, PermissionDeniedException{ + public AccountVO updateAccount(UpdateAccountCmd cmd) throws InvalidParameterValueException, PermissionDeniedException{ Long domainId = cmd.getDomainId(); String accountName = cmd.getAccountName(); String newAccountName = cmd.getNewName(); @@ -1143,7 +1156,10 @@ public class ManagementServerImpl implements ManagementServer { acctForUpdate.setAccountName(newAccountName); success = _accountDao.update(Long.valueOf(account.getId()), acctForUpdate); } - return success; + if (success) + return _accountDao.findById(account.getId()); + else + throw new CloudRuntimeException("Unable to update account " + accountName + " in domain " + domainId); } private boolean doDisableAccount(long accountId) { @@ -1176,7 +1192,7 @@ public class ManagementServerImpl implements ManagementServer { @Override - public boolean enableAccount(EnableAccountCmd cmd) throws InvalidParameterValueException, PermissionDeniedException{ + public AccountVO enableAccount(EnableAccountCmd cmd) throws InvalidParameterValueException, PermissionDeniedException{ String accountName = cmd.getAccountName(); Long domainId = cmd.getDomainId(); boolean success = false; @@ -1200,7 +1216,10 @@ public class ManagementServerImpl implements ManagementServer { } success = enableAccount(account.getId()); - return success; + if (success) + return _accountDao.findById(account.getId()); + else + throw new CloudRuntimeException("Unable to enable account " + accountName + " in domain " + domainId); } private boolean lockAccountInternal(long accountId) { @@ -1225,7 +1244,7 @@ public class ManagementServerImpl implements ManagementServer { } @Override - public boolean updateUser(UpdateUserCmd cmd) throws InvalidParameterValueException { + public UserAccount updateUser(UpdateUserCmd cmd) throws InvalidParameterValueException { Long id = cmd.getId(); String apiKey = cmd.getApiKey(); String firstName = cmd.getFirstname(); @@ -1307,9 +1326,9 @@ public class ManagementServerImpl implements ManagementServer { s_logger.error("error updating user", th); EventUtils.saveEvent(Long.valueOf(1), Long.valueOf(1), EventVO.LEVEL_ERROR, EventTypes.EVENT_USER_UPDATE, "Error updating user, " + userName + " for accountId = " + accountId + " and domainId = " + userAccount.getDomainId()); - return false; - } - return true; + throw new CloudRuntimeException("Unable to update user " + id); + } + return _userAccountDao.findById(id); } @Override @@ -4169,9 +4188,9 @@ public class ManagementServerImpl implements ManagementServer { } @Override - public boolean updateDomain(UpdateDomainCmd cmd) throws InvalidParameterValueException, PermissionDeniedException{ + public DomainVO updateDomain(UpdateDomainCmd cmd) throws InvalidParameterValueException, PermissionDeniedException{ Long domainId = cmd.getId(); - String domainName = cmd.getName(); + String domainName = cmd.getDomainName(); //check if domain exists in the system DomainVO domain = _domainDao.findById(domainId); @@ -4188,8 +4207,8 @@ public class ManagementServerImpl implements ManagementServer { throw new PermissionDeniedException("Unable to update domain " + domainId + ", permission denied"); } - if (domainName == null) { - domainName = domain.getName(); + if (domainName == null || domainName.equals(domain.getName())) { + return _domainDao.findById(domainId); } SearchCriteria sc = _domainDao.createSearchCriteria(); @@ -4199,11 +4218,12 @@ public class ManagementServerImpl implements ManagementServer { _domainDao.update(domainId, domainName); domain = _domainDao.findById(domainId); EventUtils.saveEvent(new Long(1), domain.getAccountId(), EventVO.LEVEL_INFO, EventTypes.EVENT_DOMAIN_UPDATE, "Domain, " + domainName + " was updated"); - return true; + return _domainDao.findById(domainId); } else { domain = _domainDao.findById(domainId); EventUtils.saveEvent(new Long(1), domain.getAccountId(), EventVO.LEVEL_ERROR, EventTypes.EVENT_DOMAIN_UPDATE, "Failed to update domain " + domain.getName() + " with name " + domainName + ", name in use."); - return false; + s_logger.error("Domain with name " + domainName + " already exists in the system"); + throw new CloudRuntimeException("Fail to update domain " + domainId); } } @@ -5491,7 +5511,7 @@ public class ManagementServerImpl implements ManagementServer { } @Override - public boolean lockAccount(LockAccountCmd cmd) { + public AccountVO lockAccount(LockAccountCmd cmd) { Account adminAccount = UserContext.current().getAccount(); Long domainId = cmd.getDomainId(); String accountName = cmd.getAccountName(); @@ -5510,7 +5530,10 @@ public class ManagementServerImpl implements ManagementServer { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "can not lock system account"); } - return lockAccountInternal(account.getId()); + if (lockAccountInternal(account.getId())) + return _accountDao.findById(account.getId()); + else + throw new CloudRuntimeException("Unable to lock account " + accountName + " in domain " + domainId); } @Override