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

dahn pushed a commit to branch 4.20
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/4.20 by this push:
     new da7ac80dc41 prevent user.uuid from being regenerated on each operation 
by reading it from the DB (#12632)
da7ac80dc41 is described below

commit da7ac80dc41e050e7e1f0275a0bda1bc185d0ab8
Author: dahn <[email protected]>
AuthorDate: Mon Feb 23 11:12:13 2026 +0100

    prevent user.uuid from being regenerated on each operation by reading it 
from the DB (#12632)
---
 .../src/main/java/com/cloud/user/UserVO.java       |   2 +-
 .../main/java/com/cloud/user/dao/AccountDao.java   |   2 -
 .../java/com/cloud/user/dao/AccountDaoImpl.java    |  60 +--------
 .../java/com/cloud/user/AccountManagerImpl.java    | 134 ++++++++++-----------
 ...tBase.java => AccountManagentImplTestBase.java} |   8 +-
 .../com/cloud/user/AccountManagerImplTest.java     | 112 ++++++++---------
 .../AccountManagerImplVolumeDeleteEventTest.java   |   2 +-
 7 files changed, 120 insertions(+), 200 deletions(-)

diff --git a/engine/schema/src/main/java/com/cloud/user/UserVO.java 
b/engine/schema/src/main/java/com/cloud/user/UserVO.java
index 6e355e102e6..d74aa7ed41b 100644
--- a/engine/schema/src/main/java/com/cloud/user/UserVO.java
+++ b/engine/schema/src/main/java/com/cloud/user/UserVO.java
@@ -123,8 +123,8 @@ public class UserVO implements User, Identity, 
InternalIdentity {
     }
 
     public UserVO(long id) {
+        this();
         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, Source 
source) {
diff --git a/engine/schema/src/main/java/com/cloud/user/dao/AccountDao.java 
b/engine/schema/src/main/java/com/cloud/user/dao/AccountDao.java
index dae5f3a3467..67b70571cb4 100644
--- a/engine/schema/src/main/java/com/cloud/user/dao/AccountDao.java
+++ b/engine/schema/src/main/java/com/cloud/user/dao/AccountDao.java
@@ -21,13 +21,11 @@ import java.util.List;
 
 import com.cloud.user.Account;
 import com.cloud.user.AccountVO;
-import com.cloud.user.User;
 import com.cloud.utils.Pair;
 import com.cloud.utils.db.Filter;
 import com.cloud.utils.db.GenericDao;
 
 public interface AccountDao extends GenericDao<AccountVO, Long> {
-    Pair<User, Account> findUserAccountByApiKey(String apiKey);
 
     List<AccountVO> findAccountsLike(String accountName);
 
diff --git a/engine/schema/src/main/java/com/cloud/user/dao/AccountDaoImpl.java 
b/engine/schema/src/main/java/com/cloud/user/dao/AccountDaoImpl.java
index f5f95d5da1f..48b29fac45e 100644
--- a/engine/schema/src/main/java/com/cloud/user/dao/AccountDaoImpl.java
+++ b/engine/schema/src/main/java/com/cloud/user/dao/AccountDaoImpl.java
@@ -16,8 +16,6 @@
 // under the License.
 package com.cloud.user.dao;
 
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
 import java.util.Date;
 import java.util.List;
 
@@ -27,10 +25,7 @@ import org.springframework.stereotype.Component;
 import com.cloud.user.Account;
 import com.cloud.user.Account.State;
 import com.cloud.user.AccountVO;
-import com.cloud.user.User;
-import com.cloud.user.UserVO;
 import com.cloud.utils.Pair;
-import com.cloud.utils.crypt.DBEncryptionUtil;
 import com.cloud.utils.db.Filter;
 import com.cloud.utils.db.GenericDaoBase;
 import com.cloud.utils.db.GenericSearchBuilder;
@@ -38,13 +33,9 @@ import com.cloud.utils.db.SearchBuilder;
 import com.cloud.utils.db.SearchCriteria;
 import com.cloud.utils.db.SearchCriteria.Func;
 import com.cloud.utils.db.SearchCriteria.Op;
-import com.cloud.utils.db.TransactionLegacy;
 
 @Component
 public class AccountDaoImpl extends GenericDaoBase<AccountVO, Long> implements 
AccountDao {
-    private static final String FIND_USER_ACCOUNT_BY_API_KEY = "SELECT u.id, 
u.username, u.account_id, u.secret_key, u.state, u.api_key_access, "
-        + "a.id, a.account_name, a.type, a.role_id, a.domain_id, a.state, 
a.api_key_access " + "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;
@@ -132,51 +123,6 @@ public class AccountDaoImpl extends 
GenericDaoBase<AccountVO, Long> implements A
         return listBy(sc);
     }
 
-    @Override
-    public Pair<User, Account> findUserAccountByApiKey(String apiKey) {
-        TransactionLegacy txn = TransactionLegacy.currentTxn();
-        PreparedStatement pstmt = null;
-        Pair<User, Account> userAcctPair = null;
-        try {
-            String sql = FIND_USER_ACCOUNT_BY_API_KEY;
-            pstmt = txn.prepareAutoCloseStatement(sql);
-            pstmt.setString(1, apiKey);
-            ResultSet rs = pstmt.executeQuery();
-            // TODO:  make sure we don't have more than 1 result?  ApiKey had 
better be unique
-            if (rs.next()) {
-                User u = new UserVO(rs.getLong(1));
-                u.setUsername(rs.getString(2));
-                u.setAccountId(rs.getLong(3));
-                u.setSecretKey(DBEncryptionUtil.decrypt(rs.getString(4)));
-                u.setState(State.getValueOf(rs.getString(5)));
-                boolean apiKeyAccess = rs.getBoolean(6);
-                if (rs.wasNull()) {
-                    u.setApiKeyAccess(null);
-                } else {
-                    u.setApiKeyAccess(apiKeyAccess);
-                }
-
-                AccountVO a = new AccountVO(rs.getLong(7));
-                a.setAccountName(rs.getString(8));
-                a.setType(Account.Type.getFromValue(rs.getInt(9)));
-                a.setRoleId(rs.getLong(10));
-                a.setDomainId(rs.getLong(11));
-                a.setState(State.getValueOf(rs.getString(12)));
-                apiKeyAccess = rs.getBoolean(13);
-                if (rs.wasNull()) {
-                    a.setApiKeyAccess(null);
-                } else {
-                    a.setApiKeyAccess(apiKeyAccess);
-                }
-
-                userAcctPair = new Pair<User, Account>(u, a);
-            }
-        } catch (Exception e) {
-            logger.warn("Exception finding user/acct by api key: " + apiKey, 
e);
-        }
-        return userAcctPair;
-    }
-
     @Override
     public List<AccountVO> findAccountsLike(String accountName) {
         return findAccountsLike(accountName, null).first();
@@ -341,11 +287,9 @@ public class AccountDaoImpl extends 
GenericDaoBase<AccountVO, Long> implements A
             domain_id = account_vo.getDomainId();
         }
         catch (Exception e) {
-            logger.warn("getDomainIdForGivenAccountId: Exception :" + 
e.getMessage());
-        }
-        finally {
-            return domain_id;
+            logger.warn("Can not get DomainId for the given AccountId; 
exception message : {}", e.getMessage());
         }
+        return domain_id;
     }
 
     @Override
diff --git a/server/src/main/java/com/cloud/user/AccountManagerImpl.java 
b/server/src/main/java/com/cloud/user/AccountManagerImpl.java
index d4c23e8d62b..1f6e8d5b49e 100644
--- a/server/src/main/java/com/cloud/user/AccountManagerImpl.java
+++ b/server/src/main/java/com/cloud/user/AccountManagerImpl.java
@@ -85,7 +85,6 @@ import org.apache.cloudstack.webhook.WebhookHelper;
 import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.BooleanUtils;
-import org.apache.commons.lang3.StringUtils;
 import org.jetbrains.annotations.NotNull;
 import org.springframework.beans.factory.NoSuchBeanDefinitionException;
 
@@ -176,6 +175,7 @@ import com.cloud.utils.ConstantTimeComparator;
 import com.cloud.utils.NumbersUtil;
 import com.cloud.utils.Pair;
 import com.cloud.utils.Ternary;
+import com.cloud.utils.StringUtils;
 import com.cloud.utils.component.ComponentContext;
 import com.cloud.utils.component.Manager;
 import com.cloud.utils.component.ManagerBase;
@@ -223,7 +223,7 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
     @Inject
     private InstanceGroupDao _vmGroupDao;
     @Inject
-    private UserAccountDao _userAccountDao;
+    private UserAccountDao userAccountDao;
     @Inject
     private VolumeDao _volumeDao;
     @Inject
@@ -585,11 +585,7 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
             if (acct == null) {
                 return false;  //account is deleted or does not exist
             }
-            if ((isRootAdmin(accountId)) || (isDomainAdmin(accountId)) || 
(isResourceDomainAdmin(accountId))) {
-                return true;
-            } else if (acct.getType() == Account.Type.READ_ONLY_ADMIN) {
-                return true;
-            }
+            return (isRootAdmin(accountId)) || (isDomainAdmin(accountId)) || 
(isResourceDomainAdmin(accountId)) || (acct.getType() == 
Account.Type.READ_ONLY_ADMIN);
 
         }
         return false;
@@ -644,10 +640,7 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
     @Override
     public boolean isNormalUser(long accountId) {
         AccountVO acct = _accountDao.findById(accountId);
-        if (acct != null && acct.getType() == Account.Type.NORMAL) {
-            return true;
-        }
-        return false;
+        return acct != null && acct.getType() == Account.Type.NORMAL;
     }
 
     @Override
@@ -678,10 +671,7 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
         if (account == null) {
             return false;  //account is deleted or does not exist
         }
-        if (isRootAdmin(accountId) || (account.getType() == 
Account.Type.ADMIN)) {
-            return true;
-        }
-        return false;
+        return isRootAdmin(accountId) || (account.getType() == 
Account.Type.ADMIN);
     }
 
     @Override
@@ -712,7 +702,7 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
             for (ControlledEntity entity : entities) {
                 if (ownerId == null) {
                     ownerId = entity.getAccountId();
-                } else if (ownerId.longValue() != entity.getAccountId()) {
+                } else if (! ownerId.equals(entity.getAccountId())) {
                     throw new PermissionDeniedException("Entity " + entity + " 
and entity " + prevEntity + " belong to different accounts");
                 }
                 prevEntity = entity;
@@ -738,7 +728,7 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
                 domainId = account != null ? account.getDomainId() : -1;
             }
             if (entity.getAccountId() != -1 && domainId != -1 && !(entity 
instanceof VirtualMachineTemplate)
-                    && !(entity instanceof Network && accessType != null && 
(accessType == AccessType.UseEntry || accessType == AccessType.OperateEntry))
+                    && !(entity instanceof Network && (accessType == 
AccessType.UseEntry || accessType == AccessType.OperateEntry))
                     && !(entity instanceof AffinityGroup) && !(entity 
instanceof VirtualRouter)) {
                 List<ControlledEntity> toBeChecked = 
domains.get(entity.getDomainId());
                 // for templates, we don't have to do cross domains check
@@ -821,7 +811,7 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
 
         // Currently just for resource domain admin
         List<DataCenterVO> dcList = 
_dcDao.findZonesByDomainId(account.getDomainId());
-        if (dcList != null && dcList.size() != 0) {
+        if (CollectionUtils.isNotEmpty(dcList)) {
             return dcList.get(0).getId();
         } else {
             throw new CloudRuntimeException("Failed to find any private zone 
for Resource domain admin.");
@@ -836,23 +826,23 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
                 @Override
                 public void doInTransactionWithoutResult(TransactionStatus 
status) {
                     UserAccountVO user = null;
-                    user = _userAccountDao.lockRow(id, true);
+                    user = userAccountDao.lockRow(id, true);
                     user.setLoginAttempts(attempts);
                     if (toDisable) {
                         user.setState(State.DISABLED.toString());
                     }
-                    _userAccountDao.update(id, user);
+                    userAccountDao.update(id, user);
                 }
             });
         } catch (Exception e) {
-            logger.error("Failed to update login attempts for user {}", () -> 
_userAccountDao.findById(id));
+            logger.error("Failed to update login attempts for user {}", () -> 
userAccountDao.findById(id));
         }
     }
 
     private boolean doSetUserStatus(long userId, State state) {
         UserVO userForUpdate = _userDao.createForUpdate();
         userForUpdate.setState(state);
-        return _userDao.update(Long.valueOf(userId), userForUpdate);
+        return _userDao.update(userId, userForUpdate);
     }
 
     @Override
@@ -861,7 +851,7 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
         AccountVO acctForUpdate = _accountDao.createForUpdate();
         acctForUpdate.setState(State.ENABLED);
         acctForUpdate.setNeedsCleanup(false);
-        success = _accountDao.update(Long.valueOf(accountId), acctForUpdate);
+        success = _accountDao.update(accountId, acctForUpdate);
         return success;
     }
 
@@ -874,7 +864,7 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
             } else if (account.getState().equals(State.ENABLED)) {
                 AccountVO acctForUpdate = _accountDao.createForUpdate();
                 acctForUpdate.setState(State.LOCKED);
-                success = _accountDao.update(Long.valueOf(accountId), 
acctForUpdate);
+                success = _accountDao.update(accountId, acctForUpdate);
             } else {
                 if (logger.isInfoEnabled()) {
                     logger.info("Attempting to lock a non-enabled account {}, 
current state is {}, locking failed.", account, account.getState());
@@ -988,7 +978,7 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
             }
 
             // Destroy VM Snapshots
-            List<VMSnapshotVO> vmSnapshots = 
_vmSnapshotDao.listByAccountId(Long.valueOf(accountId));
+            List<VMSnapshotVO> vmSnapshots = 
_vmSnapshotDao.listByAccountId(accountId);
             for (VMSnapshot vmSnapshot : vmSnapshots) {
                 try {
                     _vmSnapshotMgr.deleteVMSnapshot(vmSnapshot.getId());
@@ -1010,8 +1000,7 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
                     try {
                         _vmMgr.destroyVm(vm.getId(), false);
                     } catch (Exception e) {
-                        e.printStackTrace();
-                        logger.warn("Failed destroying instance {} as part of 
account deletion.", vm);
+                        logger.warn("Failed destroying instance {} as part of 
account deletion.", vm, e);
                     }
                 }
                 // no need to catch exception at this place as expunging vm
@@ -1069,7 +1058,7 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
             logger.debug("Deleting networks for account {}", account);
             List<NetworkVO> networks = _networkDao.listByOwner(accountId);
             if (networks != null) {
-                Collections.sort(networks, new Comparator<>() {
+                networks.sort(new Comparator<>() {
                     @Override
                     public int compare(NetworkVO network1, NetworkVO network2) 
{
                         if (network1.getGuestType() != network2.getGuestType() 
&& Network.GuestType.Isolated.equals(network2.getGuestType())) {
@@ -1237,7 +1226,7 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
         } else {
             AccountVO acctForUpdate = _accountDao.createForUpdate();
             acctForUpdate.setState(State.DISABLED);
-            success = _accountDao.update(Long.valueOf(accountId), 
acctForUpdate);
+            success = _accountDao.update(accountId, acctForUpdate);
 
             if (success) {
                 boolean disableAccountResult = false;
@@ -1331,11 +1320,11 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
         // Check permissions
         checkAccess(getCurrentCallingAccount(), domain);
 
-        if (!userAllowMultipleAccounts.valueInDomain(domainId) && 
!_userAccountDao.validateUsernameInDomain(userName, domainId)) {
+        if (!userAllowMultipleAccounts.valueInDomain(domainId) && 
!userAccountDao.validateUsernameInDomain(userName, domainId)) {
             throw new InvalidParameterValueException(String.format("The user 
%s already exists in domain %s", userName, domain));
         }
 
-        if (networkDomain != null && networkDomain.length() > 0) {
+        if (StringUtils.isNotEmpty(networkDomain)) {
             if (!NetUtils.verifyDomainName(networkDomain)) {
                 throw new InvalidParameterValueException(
                         "Invalid network domain. Total length shouldn't exceed 
190 chars. Each domain label must be between 1 and 63 characters long, can 
contain ASCII letters 'a' through 'z', the digits '0' through '9', "
@@ -1387,7 +1376,7 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
         CallContext.current().putContextParameter(User.class, userId);
 
         // check success
-        return _userAccountDao.findById(userId);
+        return userAccountDao.findById(userId);
     }
 
     /*
@@ -1525,7 +1514,7 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
             throw new PermissionDeniedException(String.format("Account: %s is 
a system account, can't add a user to it", account));
         }
 
-        if (!userAllowMultipleAccounts.valueInDomain(domainId) && 
!_userAccountDao.validateUsernameInDomain(userName, domainId)) {
+        if (!userAllowMultipleAccounts.valueInDomain(domainId) && 
!userAccountDao.validateUsernameInDomain(userName, domainId)) {
             throw new CloudRuntimeException("The user " + userName + " already 
exists in domain " + domainId);
         }
         List<UserVO> duplicatedUsers = _userDao.findUsersByName(userName);
@@ -1579,7 +1568,7 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
             user.setUser2faEnabled(true);
         }
         _userDao.update(user.getId(), user);
-        return _userAccountDao.findById(user.getId());
+        return userAccountDao.findById(user.getId());
     }
 
     @Override
@@ -1861,10 +1850,9 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
         if (isApiKeyBlank && isSecretKeyBlank) {
             return;
         }
-        Pair<User, Account> apiKeyOwner = 
_accountDao.findUserAccountByApiKey(apiKey);
+        UserAccount apiKeyOwner = userAccountDao.getUserByApiKey(apiKey);
         if (apiKeyOwner != null) {
-            User userThatHasTheProvidedApiKey = apiKeyOwner.first();
-            if (userThatHasTheProvidedApiKey.getId() != user.getId()) {
+            if (apiKeyOwner.getId() != user.getId()) {
                 throw new InvalidParameterValueException(String.format("The 
API key [%s] already exists in the system. Please provide a unique key.", 
apiKey));
             }
         }
@@ -1952,7 +1940,7 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
             CallContext.current().putContextParameter(User.class, 
user.getUuid());
 
             // user successfully disabled
-            return _userAccountDao.findById(userId);
+            return userAccountDao.findById(userId);
         } else {
             throw new CloudRuntimeException(String.format("Unable to disable 
user %s", user));
         }
@@ -2006,7 +1994,7 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
 
             CallContext.current().putContextParameter(User.class, 
user.getUuid());
 
-            return _userAccountDao.findById(userId);
+            return userAccountDao.findById(userId);
         } else {
             throw new CloudRuntimeException(String.format("Unable to enable 
user %s", user));
         }
@@ -2047,7 +2035,7 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
         boolean success;
         if (user.getState().equals(State.LOCKED)) {
             // already locked...no-op
-            return _userAccountDao.findById(userId);
+            return userAccountDao.findById(userId);
         } else if (user.getState().equals(State.ENABLED)) {
             success = doSetUserStatus(user.getId(), State.LOCKED);
 
@@ -2074,7 +2062,7 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
 
             CallContext.current().putContextParameter(User.class, 
user.getUuid());
 
-            return _userAccountDao.findById(userId);
+            return userAccountDao.findById(userId);
         } else {
             throw new CloudRuntimeException(String.format("Unable to lock user 
%s", user));
         }
@@ -2602,7 +2590,7 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
 
             return owner;
         } else if (!isAdmin(caller.getId()) && accountName != null && domainId 
!= null) {
-            if (!accountName.equals(caller.getAccountName()) || 
domainId.longValue() != caller.getDomainId()) {
+            if (!accountName.equals(caller.getAccountName()) || domainId != 
caller.getDomainId()) {
                 throw new PermissionDeniedException("Can't create/list 
resources for account " + accountName + " in domain " + domainId + ", 
permission denied");
             } else {
                 return caller;
@@ -2627,12 +2615,12 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
 
     @Override
     public UserAccount getActiveUserAccount(String username, Long domainId) {
-        return _userAccountDao.getUserAccount(username, domainId);
+        return userAccountDao.getUserAccount(username, domainId);
     }
 
     @Override
     public List<UserAccount> getActiveUserAccountByEmail(String email, Long 
domainId) {
-        List<UserAccountVO> userAccountByEmail = 
_userAccountDao.getUserAccountByEmail(email, domainId);
+        List<UserAccountVO> userAccountByEmail = 
userAccountDao.getUserAccountByEmail(email, domainId);
         List<UserAccount> userAccounts = userAccountByEmail.stream()
                 .map(userAccountVO -> (UserAccount) userAccountVO)
                 .collect(Collectors.toList());
@@ -2676,7 +2664,7 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
     public void markUserRegistered(long userId) {
         UserVO userForUpdate = _userDao.createForUpdate();
         userForUpdate.setRegistered(true);
-        _userDao.update(Long.valueOf(userId), userForUpdate);
+        _userDao.update(userId, userForUpdate);
     }
 
     @Override
@@ -2731,7 +2719,7 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
                     throw new CloudRuntimeException(String.format("Failed to 
create account name %s in domain id=%s", accountName, 
_domainMgr.getDomain(domainId)));
                 }
 
-                Long accountId = account.getId();
+                long accountId = account.getId();
 
                 if (details != null) {
                     _accountDetailsDao.persist(accountId, details);
@@ -2780,7 +2768,7 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
 
     @Override
     public void logoutUser(long userId) {
-        UserAccount userAcct = _userAccountDao.findById(userId);
+        UserAccount userAcct = userAccountDao.findById(userId);
         if (userAcct != null) {
             ActionEventUtils.onActionEvent(userId, userAcct.getAccountId(), 
userAcct.getDomainId(), EventTypes.EVENT_USER_LOGOUT, "user has logged out", 
userId, ApiCommandResourceType.User.toString());
         } // else log some kind of error event? This likely means the user 
doesn't exist, or has been deleted...
@@ -2822,11 +2810,11 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
             final Boolean ApiSourceCidrChecksEnabled = 
ApiServiceConfiguration.ApiSourceCidrChecksEnabled.value();
 
             if (ApiSourceCidrChecksEnabled) {
-                logger.debug("CIDRs from which account '" + account.toString() 
+ "' is allowed to perform API calls: " + accessAllowedCidrs);
+                logger.debug("CIDRs from which account '{}' is allowed to 
perform API calls: {}", account.toString(), accessAllowedCidrs);
 
                 // Block when is not in the list of allowed IPs
                 if (!NetUtils.isIpInCidrList(loginIpAddress, 
accessAllowedCidrs.split(","))) {
-                    logger.warn("Request by account '" + account.toString() + 
"' was denied since " + loginIpAddress.toString().replace("/", "") + " does not 
match " + accessAllowedCidrs);
+                    logger.warn("Request by account '{}' was denied since {} 
does not match {}", account.toString(), loginIpAddress.toString().replace("/", 
""), accessAllowedCidrs);
                     throw new CloudAuthenticationException("Failed to 
authenticate user '" + username + "' in domain '" + domain.getPath() + "' from 
ip "
                             + loginIpAddress.toString().replace("/", "") + "; 
please provide valid credentials");
                 }
@@ -2858,6 +2846,7 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
                 try {
                     Thread.sleep(waitTimeDurationInMs);
                 } catch (final InterruptedException e) {
+                    // ignored
                 }
             }
 
@@ -2869,7 +2858,7 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
         if (logger.isDebugEnabled()) {
             logger.debug("Attempting to log in user: " + username + " in 
domain " + domainId);
         }
-        UserAccount userAccount = _userAccountDao.getUserAccount(username, 
domainId);
+        UserAccount userAccount = userAccountDao.getUserAccount(username, 
domainId);
 
         boolean authenticated = false;
         HashSet<ActionOnFailedAuthentication> actionsOnFailedAuthenticaion = 
new HashSet<>();
@@ -2899,11 +2888,7 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
 
         if (authenticated) {
             Domain domain = _domainMgr.getDomain(domainId);
-            String domainName = null;
-            if (domain != null) {
-                domainName = domain.getName();
-            }
-            userAccount = _userAccountDao.getUserAccount(username, domainId);
+            userAccount = userAccountDao.getUserAccount(username, domainId);
 
             if 
(!userAccount.getState().equalsIgnoreCase(Account.State.ENABLED.toString()) || 
!userAccount.getAccountState().equalsIgnoreCase(Account.State.ENABLED.toString()))
 {
                 if (logger.isInfoEnabled()) {
@@ -2963,11 +2948,9 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
 
         // - build a request string with sorted params, make sure it's all 
lowercase
         // - sign the request, verify the signature is the same
-        List<String> parameterNames = new ArrayList<>();
 
-        for (Object paramNameObj : requestParameters.keySet()) {
-            parameterNames.add((String)paramNameObj); // put the name in a 
list that we'll sort later
-        }
+        // put the name in a list that we'll sort later
+        List<String> parameterNames = new 
ArrayList<>(requestParameters.keySet());
 
         Collections.sort(parameterNames);
 
@@ -2999,7 +2982,7 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
                     if (unsignedRequestBuffer.length() != 0) {
                         unsignedRequestBuffer.append("&");
                     }
-                    
unsignedRequestBuffer.append(paramName).append("=").append(URLEncoder.encode(paramValue,
 "UTF-8"));
+                    
unsignedRequestBuffer.append(paramName).append("=").append(URLEncoder.encode(paramValue,
 com.cloud.utils.StringUtils.getPreferredCharset()));
                 }
             }
 
@@ -3022,7 +3005,7 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
             if (!equalSig) {
                 logger.info("User signature: " + signature + " is not equaled 
to computed signature: " + computedSignature);
             } else {
-                user = _userAccountDao.getUserAccount(username, domainId);
+                user = userAccountDao.getUserAccount(username, domainId);
             }
         } catch (Exception ex) {
             logger.error("Exception authenticating user", ex);
@@ -3050,7 +3033,14 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
 
     @Override
     public Pair<User, Account> findUserByApiKey(String apiKey) {
-        return _accountDao.findUserAccountByApiKey(apiKey);
+        UserAccount userAccount = userAccountDao.getUserByApiKey(apiKey);
+        if (userAccount != null) {
+            User user = _userDao.getUser(userAccount.getId());
+            Account account = _accountDao.findById(userAccount.getAccountId());
+            return new Pair<>(user, account);
+        } else {
+            return null;
+        }
     }
 
     @Override
@@ -3184,14 +3174,14 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
             UserVO updatedUser = _userDao.createForUpdate();
 
             String encodedKey;
-            Pair<User, Account> userAcct;
+            UserAccount userAcct;
             int retryLimit = 10;
             do {
                 // FIXME: what algorithm should we use for API keys?
                 KeyGenerator generator = KeyGenerator.getInstance("HmacSHA1");
                 SecretKey key = generator.generateKey();
                 encodedKey = 
Base64.encodeBase64URLSafeString(key.getEncoded());
-                userAcct = _accountDao.findUserAccountByApiKey(encodedKey);
+                userAcct = userAccountDao.getUserByApiKey(encodedKey);
                 retryLimit--;
             } while ((userAcct != null) && (retryLimit >= 0));
 
@@ -3202,7 +3192,7 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
             _userDao.update(userId, updatedUser);
             return encodedKey;
         } catch (NoSuchAlgorithmException ex) {
-            logger.error("error generating secret key for user {}", 
_userAccountDao.findById(userId), ex);
+            logger.error("error generating secret key for user {}", 
userAccountDao.findById(userId), ex);
         }
         return null;
     }
@@ -3229,7 +3219,7 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
             _userDao.update(userId, updatedUser);
             return encodedKey;
         } catch (NoSuchAlgorithmException ex) {
-            logger.error("error generating secret key for user {}", 
_userAccountDao.findById(userId), ex);
+            logger.error("error generating secret key for user {}", 
userAccountDao.findById(userId), ex);
         }
         return null;
     }
@@ -3440,12 +3430,12 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
 
     @Override
     public UserAccount getUserByApiKey(String apiKey) {
-        return _userAccountDao.getUserByApiKey(apiKey);
+        return userAccountDao.getUserByApiKey(apiKey);
     }
 
     @Override
     public List<String> listAclGroupsByAccount(Long accountId) {
-        if (_querySelectors == null || _querySelectors.size() == 0) {
+        if (CollectionUtils.isEmpty(_querySelectors)) {
             return new ArrayList<>();
         }
 
@@ -3500,7 +3490,7 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
 
     @Override
     public UserAccount getUserAccountById(Long userId) {
-        UserAccount userAccount = _userAccountDao.findById(userId);
+        UserAccount userAccount = userAccountDao.findById(userId);
         Map<String, String> details = 
_userDetailsDao.listDetailsKeyPairs(userId);
         userAccount.setDetails(details);
 
@@ -3674,7 +3664,7 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
     }
 
     protected UserTwoFactorAuthenticationSetupResponse 
enableTwoFactorAuthentication(Long userId, String providerName) {
-        UserAccountVO userAccount = _userAccountDao.findById(userId);
+        UserAccountVO userAccount = userAccountDao.findById(userId);
         UserVO userVO = _userDao.findById(userId);
         Long domainId = userAccount.getDomainId();
         if 
(Boolean.FALSE.equals(enableUserTwoFactorAuthentication.valueIn(domainId)) && 
Boolean.FALSE.equals(mandateUserTwoFactorAuthentication.valueIn(domainId))) {
@@ -3766,11 +3756,11 @@ public class AccountManagerImpl extends ManagerBase 
implements AccountManager, M
             if (userDetailVO != null) {
                 _userDetailsDao.remove(userDetailVO.getId());
             }
-            UserAccountVO userAccountVO = 
_userAccountDao.findById(user.getId());
+            UserAccountVO userAccountVO = 
userAccountDao.findById(user.getId());
             userAccountVO.setUser2faEnabled(false);
             userAccountVO.setUser2faProvider(null);
             userAccountVO.setKeyFor2fa(null);
-            _userAccountDao.update(user.getId(), userAccountVO);
+            userAccountDao.update(user.getId(), userAccountVO);
             return userAccountVO;
         });
     }
diff --git 
a/server/src/test/java/com/cloud/user/AccountManagetImplTestBase.java 
b/server/src/test/java/com/cloud/user/AccountManagentImplTestBase.java
similarity index 98%
rename from server/src/test/java/com/cloud/user/AccountManagetImplTestBase.java
rename to server/src/test/java/com/cloud/user/AccountManagentImplTestBase.java
index 98f152088ed..71878143f24 100644
--- a/server/src/test/java/com/cloud/user/AccountManagetImplTestBase.java
+++ b/server/src/test/java/com/cloud/user/AccountManagentImplTestBase.java
@@ -84,7 +84,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 @RunWith(MockitoJUnitRunner.class)
-public class AccountManagetImplTestBase {
+public class AccountManagentImplTestBase {
 
     @Mock
     AccountDao _accountDao;
@@ -99,7 +99,7 @@ public class AccountManagetImplTestBase {
     @Mock
     InstanceGroupDao _vmGroupDao;
     @Mock
-    UserAccountDao userAccountDaoMock;
+    UserAccountDao userAccountDao;
     @Mock
     VolumeDao _volumeDao;
     @Mock
@@ -210,9 +210,6 @@ public class AccountManagetImplTestBase {
     @Mock
     RoutedIpv4Manager routedIpv4Manager;
 
-    @Mock
-    Account accountMock;
-
     @Before
     public void setup() {
         
accountManagerImpl.setUserAuthenticators(Arrays.asList(userAuthenticator));
@@ -228,7 +225,6 @@ public class AccountManagetImplTestBase {
     @Test
     public void test()
     {
-        return;
     }
 
     public static Map<String, Field> getInheritedFields(Class<?> type) {
diff --git a/server/src/test/java/com/cloud/user/AccountManagerImplTest.java 
b/server/src/test/java/com/cloud/user/AccountManagerImplTest.java
index 2aeb43469d1..6f5fbb0fdc1 100644
--- a/server/src/test/java/com/cloud/user/AccountManagerImplTest.java
+++ b/server/src/test/java/com/cloud/user/AccountManagerImplTest.java
@@ -47,13 +47,11 @@ import org.apache.cloudstack.webhook.WebhookHelper;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
-import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
 import org.mockito.InOrder;
 import org.mockito.Mock;
 import org.mockito.MockedStatic;
 import org.mockito.Mockito;
-import org.mockito.junit.MockitoJUnitRunner;
 import org.springframework.beans.factory.NoSuchBeanDefinitionException;
 
 import com.cloud.acl.DomainChecker;
@@ -76,8 +74,7 @@ import com.cloud.vm.UserVmVO;
 import com.cloud.vm.VMInstanceVO;
 import com.cloud.vm.snapshot.VMSnapshotVO;
 
-@RunWith(MockitoJUnitRunner.class)
-public class AccountManagerImplTest extends AccountManagetImplTestBase {
+public class AccountManagerImplTest extends AccountManagentImplTestBase {
 
     @Mock
     private UserVmManagerImpl _vmMgr;
@@ -100,11 +97,11 @@ public class AccountManagerImplTest extends 
AccountManagetImplTestBase {
     @Mock
     private UpdateAccountCmd UpdateAccountCmdMock;
 
-    private long userVoIdMock = 111l;
+    private final long userVoIdMock = 111L;
     @Mock
     private UserVO userVoMock;
 
-    private long accountMockId = 100l;
+    private final long accountMockId = 100L;
 
     @Mock
     private Account accountMock;
@@ -154,7 +151,7 @@ public class AccountManagerImplTest extends 
AccountManagetImplTestBase {
 
     @Test
     public void disableAccountNotexisting() throws 
ConcurrentOperationException, ResourceUnavailableException {
-        Mockito.when(_accountDao.findById(42l)).thenReturn(null);
+        Mockito.when(_accountDao.findById(42L)).thenReturn(null);
         Assert.assertTrue(accountManagerImpl.disableAccount(42));
     }
 
@@ -162,7 +159,7 @@ public class AccountManagerImplTest extends 
AccountManagetImplTestBase {
     public void disableAccountDisabled() throws ConcurrentOperationException, 
ResourceUnavailableException {
         AccountVO disabledAccount = new AccountVO();
         disabledAccount.setState(State.DISABLED);
-        Mockito.when(_accountDao.findById(42l)).thenReturn(disabledAccount);
+        Mockito.when(_accountDao.findById(42L)).thenReturn(disabledAccount);
         Assert.assertTrue(accountManagerImpl.disableAccount(42));
     }
 
@@ -170,22 +167,22 @@ public class AccountManagerImplTest extends 
AccountManagetImplTestBase {
     public void disableAccount() throws ConcurrentOperationException, 
ResourceUnavailableException {
         AccountVO account = new AccountVO();
         account.setState(State.ENABLED);
-        Mockito.when(_accountDao.findById(42l)).thenReturn(account);
+        Mockito.when(_accountDao.findById(42L)).thenReturn(account);
         Mockito.when(_accountDao.createForUpdate()).thenReturn(new 
AccountVO());
-        Mockito.when(_accountDao.update(Mockito.eq(42l), 
Mockito.any(AccountVO.class))).thenReturn(true);
-        
Mockito.when(_vmDao.listByAccountId(42l)).thenReturn(Arrays.asList(Mockito.mock(VMInstanceVO.class)));
+        Mockito.when(_accountDao.update(Mockito.eq(42L), 
Mockito.any(AccountVO.class))).thenReturn(true);
+        
Mockito.when(_vmDao.listByAccountId(42L)).thenReturn(Arrays.asList(Mockito.mock(VMInstanceVO.class)));
         Assert.assertTrue(accountManagerImpl.disableAccount(42));
-        Mockito.verify(_accountDao, 
Mockito.atLeastOnce()).update(Mockito.eq(42l), Mockito.any(AccountVO.class));
+        Mockito.verify(_accountDao, 
Mockito.atLeastOnce()).update(Mockito.eq(42L), Mockito.any(AccountVO.class));
     }
 
     @Test
     public void deleteUserAccount() {
         AccountVO account = new AccountVO();
-        account.setId(42l);
+        account.setId(42L);
         DomainVO domain = new DomainVO();
-        Mockito.when(_accountDao.findById(42l)).thenReturn(account);
+        Mockito.when(_accountDao.findById(42L)).thenReturn(account);
         
Mockito.doNothing().when(accountManagerImpl).checkAccess(Mockito.any(Account.class),
 Mockito.isNull(), Mockito.anyBoolean(), Mockito.any(Account.class));
-        Mockito.when(_accountDao.remove(42l)).thenReturn(true);
+        Mockito.when(_accountDao.remove(42L)).thenReturn(true);
         
Mockito.when(_configMgr.releaseAccountSpecificVirtualRanges(account)).thenReturn(true);
         
Mockito.lenient().when(_domainMgr.getDomain(Mockito.anyLong())).thenReturn(domain);
         
Mockito.lenient().when(securityChecker.checkAccess(Mockito.any(Account.class), 
Mockito.any(Domain.class))).thenReturn(true);
@@ -194,7 +191,7 @@ public class AccountManagerImplTest extends 
AccountManagetImplTestBase {
 
         List<SSHKeyPairVO> sshkeyList = new ArrayList<SSHKeyPairVO>();
         SSHKeyPairVO sshkey = new SSHKeyPairVO();
-        sshkey.setId(1l);
+        sshkey.setId(1L);
         sshkeyList.add(sshkey);
         Mockito.when(_sshKeyPairDao.listKeyPairs(Mockito.anyLong(), 
Mockito.anyLong())).thenReturn(sshkeyList);
         
Mockito.when(_sshKeyPairDao.remove(Mockito.anyLong())).thenReturn(true);
@@ -202,30 +199,30 @@ public class AccountManagerImplTest extends 
AccountManagetImplTestBase {
         
Mockito.doNothing().when(accountManagerImpl).deleteWebhooksForAccount(Mockito.anyLong());
         
Mockito.doNothing().when(accountManagerImpl).verifyCallerPrivilegeForUserOrAccountOperations((Account)
 any());
 
-        Assert.assertTrue(accountManagerImpl.deleteUserAccount(42l));
+        Assert.assertTrue(accountManagerImpl.deleteUserAccount(42L));
         // assert that this was a clean delete
-        Mockito.verify(_accountDao, 
Mockito.never()).markForCleanup(Mockito.eq(42l));
+        Mockito.verify(_accountDao, 
Mockito.never()).markForCleanup(Mockito.eq(42L));
     }
 
     @Test
     public void deleteUserAccountCleanup() {
         AccountVO account = new AccountVO();
-        account.setId(42l);
+        account.setId(42L);
         DomainVO domain = new DomainVO();
-        Mockito.when(_accountDao.findById(42l)).thenReturn(account);
+        Mockito.when(_accountDao.findById(42L)).thenReturn(account);
         
Mockito.doNothing().when(accountManagerImpl).checkAccess(Mockito.any(Account.class),
 Mockito.isNull(), Mockito.anyBoolean(), Mockito.any(Account.class));
-        Mockito.when(_accountDao.remove(42l)).thenReturn(true);
+        Mockito.when(_accountDao.remove(42L)).thenReturn(true);
         
Mockito.when(_configMgr.releaseAccountSpecificVirtualRanges(account)).thenReturn(true);
-        
Mockito.when(_userVmDao.listByAccountId(42l)).thenReturn(Arrays.asList(Mockito.mock(UserVmVO.class)));
+        
Mockito.when(_userVmDao.listByAccountId(42L)).thenReturn(Arrays.asList(Mockito.mock(UserVmVO.class)));
         
Mockito.when(_vmMgr.expunge(Mockito.any(UserVmVO.class))).thenReturn(false);
         
Mockito.lenient().when(_domainMgr.getDomain(Mockito.anyLong())).thenReturn(domain);
         
Mockito.lenient().when(securityChecker.checkAccess(Mockito.any(Account.class), 
Mockito.any(Domain.class))).thenReturn(true);
         
Mockito.doNothing().when(accountManagerImpl).deleteWebhooksForAccount(Mockito.anyLong());
         
Mockito.doNothing().when(accountManagerImpl).verifyCallerPrivilegeForUserOrAccountOperations((Account)
 any());
 
-        Assert.assertTrue(accountManagerImpl.deleteUserAccount(42l));
+        Assert.assertTrue(accountManagerImpl.deleteUserAccount(42L));
         // assert that this was NOT a clean delete
-        Mockito.verify(_accountDao, 
Mockito.atLeastOnce()).markForCleanup(Mockito.eq(42l));
+        Mockito.verify(_accountDao, 
Mockito.atLeastOnce()).markForCleanup(Mockito.eq(42L));
     }
 
     @Test (expected = InvalidParameterValueException.class)
@@ -308,7 +305,7 @@ public class AccountManagerImplTest extends 
AccountManagetImplTestBase {
         UserAccountVO userAccountVO = new UserAccountVO();
         userAccountVO.setSource(User.Source.UNKNOWN);
         userAccountVO.setState(Account.State.DISABLED.toString());
-        Mockito.when(userAccountDaoMock.getUserAccount("test", 
1L)).thenReturn(userAccountVO);
+        Mockito.when(userAccountDao.getUserAccount("test", 
1L)).thenReturn(userAccountVO);
         Mockito.when(userAuthenticator.authenticate("test", "fail", 1L, new 
HashMap<>())).thenReturn(failureAuthenticationPair);
         Mockito.lenient().when(userAuthenticator.authenticate("test", null, 
1L, new HashMap<>())).thenReturn(successAuthenticationPair);
         Mockito.lenient().when(userAuthenticator.authenticate("test", "", 1L, 
new HashMap<>())).thenReturn(successAuthenticationPair);
@@ -337,7 +334,7 @@ public class AccountManagerImplTest extends 
AccountManagetImplTestBase {
         CallContext.register(callingUser, callingAccount); // Calling account 
is user account i.e normal account
         Mockito.when(_listkeyscmd.getID()).thenReturn(1L);
         
Mockito.when(accountManagerImpl.getActiveUser(1L)).thenReturn(userVoMock);
-        
Mockito.when(userAccountDaoMock.findById(1L)).thenReturn(userAccountVO);
+        Mockito.when(userAccountDao.findById(1L)).thenReturn(userAccountVO);
         Mockito.when(userAccountVO.getAccountId()).thenReturn(1L);
         
Mockito.lenient().when(accountManagerImpl.getAccount(Mockito.anyLong())).thenReturn(accountMock);
 // Queried account - admin account
 
@@ -355,7 +352,7 @@ public class AccountManagerImplTest extends 
AccountManagetImplTestBase {
         CallContext.register(callingUser, callingAccount);
         Mockito.when(_listkeyscmd.getID()).thenReturn(2L);
         
Mockito.when(accountManagerImpl.getActiveUser(2L)).thenReturn(userVoMock);
-        
Mockito.when(userAccountDaoMock.findById(2L)).thenReturn(userAccountVO);
+        Mockito.when(userAccountDao.findById(2L)).thenReturn(userAccountVO);
         Mockito.when(userAccountVO.getAccountId()).thenReturn(2L);
         
Mockito.when(userDetailsDaoMock.listDetailsKeyPairs(Mockito.anyLong())).thenReturn(null);
 
@@ -442,14 +439,14 @@ public class AccountManagerImplTest extends 
AccountManagetImplTestBase {
         
Mockito.doNothing().when(accountManagerImpl).validateUserPasswordAndUpdateIfNeeded(Mockito.anyString(),
 Mockito.eq(userVoMock), Mockito.anyString(), Mockito.eq(false));
 
         Mockito.doReturn(true).when(userDaoMock).update(Mockito.anyLong(), 
Mockito.eq(userVoMock));
-        
Mockito.doReturn(Mockito.mock(UserAccountVO.class)).when(userAccountDaoMock).findById(Mockito.anyLong());
+        
Mockito.doReturn(Mockito.mock(UserAccountVO.class)).when(userAccountDao).findById(Mockito.anyLong());
         
Mockito.doNothing().when(accountManagerImpl).checkAccess(nullable(User.class), 
nullable(Account.class));
 
         accountManagerImpl.updateUser(UpdateUserCmdMock);
 
         
Mockito.lenient().doNothing().when(accountManagerImpl).checkRoleEscalation(accountMock,
 accountMock);
 
-        InOrder inOrder = Mockito.inOrder(userVoMock, accountManagerImpl, 
userDaoMock, userAccountDaoMock);
+        InOrder inOrder = Mockito.inOrder(userVoMock, accountManagerImpl, 
userDaoMock, userAccountDao);
 
         
inOrder.verify(accountManagerImpl).retrieveAndValidateUser(UpdateUserCmdMock);
         
inOrder.verify(accountManagerImpl).retrieveAndValidateAccount(userVoMock);
@@ -464,7 +461,7 @@ public class AccountManagerImplTest extends 
AccountManagetImplTestBase {
         inOrder.verify(userVoMock, 
Mockito.times(numberOfExpectedCallsForSetEmailAndSetTimeZone)).setTimezone(Mockito.anyString());
 
         inOrder.verify(userDaoMock).update(Mockito.anyLong(), 
Mockito.eq(userVoMock));
-        inOrder.verify(userAccountDaoMock).findById(Mockito.anyLong());
+        inOrder.verify(userAccountDao).findById(Mockito.anyLong());
     }
 
     @Test(expected = InvalidParameterValueException.class)
@@ -487,7 +484,7 @@ public class AccountManagerImplTest extends 
AccountManagetImplTestBase {
     public void validateAndUpdatApiAndSecretKeyIfNeededTestNoKeys() {
         
accountManagerImpl.validateAndUpdateApiAndSecretKeyIfNeeded(UpdateUserCmdMock, 
userVoMock);
 
-        Mockito.verify(_accountDao, 
Mockito.times(0)).findUserAccountByApiKey(Mockito.anyString());
+        Mockito.verify(userAccountDao, 
Mockito.times(0)).getUserByApiKey(Mockito.anyString());
     }
 
     @Test(expected = InvalidParameterValueException.class)
@@ -513,10 +510,9 @@ public class AccountManagerImplTest extends 
AccountManagetImplTestBase {
         Mockito.doReturn(1L).when(userVoMock).getId();
 
         User otherUserMock = Mockito.mock(User.class);
-        Mockito.doReturn(2L).when(otherUserMock).getId();
 
-        Pair<User, Account> pairUserAccountMock = new Pair<User, 
Account>(otherUserMock, Mockito.mock(Account.class));
-        
Mockito.doReturn(pairUserAccountMock).when(_accountDao).findUserAccountByApiKey(apiKey);
+        UserAccount UserAccountMock = Mockito.mock(UserAccount.class);
+        
Mockito.doReturn(UserAccountMock).when(userAccountDao).getUserByApiKey(apiKey);
 
         
accountManagerImpl.validateAndUpdateApiAndSecretKeyIfNeeded(UpdateUserCmdMock, 
userVoMock);
     }
@@ -529,17 +525,13 @@ public class AccountManagerImplTest extends 
AccountManagetImplTestBase {
         String secretKey = "secretKey";
         Mockito.doReturn(secretKey).when(UpdateUserCmdMock).getSecretKey();
 
-        Mockito.doReturn(1L).when(userVoMock).getId();
-
         User otherUserMock = Mockito.mock(User.class);
-        Mockito.doReturn(1L).when(otherUserMock).getId();
 
-        Pair<User, Account> pairUserAccountMock = new Pair<User, 
Account>(otherUserMock, Mockito.mock(Account.class));
-        
Mockito.doReturn(pairUserAccountMock).when(_accountDao).findUserAccountByApiKey(apiKey);
+        Mockito.doReturn(null).when(userAccountDao).getUserByApiKey(apiKey);
 
         
accountManagerImpl.validateAndUpdateApiAndSecretKeyIfNeeded(UpdateUserCmdMock, 
userVoMock);
 
-        Mockito.verify(_accountDao).findUserAccountByApiKey(apiKey);
+        Mockito.verify(userAccountDao).getUserByApiKey(apiKey);
         Mockito.verify(userVoMock).setApiKey(apiKey);
         Mockito.verify(userVoMock).setSecretKey(secretKey);
     }
@@ -693,18 +685,18 @@ public class AccountManagerImplTest extends 
AccountManagetImplTestBase {
 
     @Test(expected = InvalidParameterValueException.class)
     public void 
validateAndUpdateUsernameIfNeededTestDuplicatedUserSameDomainThisUser() {
-        long domanIdCurrentUser = 22l;
+        long domanIdCurrentUser = 22L;
 
         String userName = "username";
         Mockito.doReturn(userName).when(UpdateUserCmdMock).getUsername();
         Mockito.lenient().doReturn(userName).when(userVoMock).getUsername();
         Mockito.doReturn(domanIdCurrentUser).when(accountMock).getDomainId();
 
-        long userVoDuplicatedMockId = 67l;
+        long userVoDuplicatedMockId = 67L;
         UserVO userVoDuplicatedMock = Mockito.mock(UserVO.class);
         
Mockito.doReturn(userVoDuplicatedMockId).when(userVoDuplicatedMock).getId();
 
-        long accountIdUserDuplicated = 98l;
+        long accountIdUserDuplicated = 98L;
 
         
Mockito.doReturn(accountIdUserDuplicated).when(userVoDuplicatedMock).getAccountId();
 
@@ -728,24 +720,24 @@ public class AccountManagerImplTest extends 
AccountManagetImplTestBase {
 
     @Test
     public void 
validateAndUpdateUsernameIfNeededTestDuplicatedUserButInDifferentDomains() {
-        long domanIdCurrentUser = 22l;
+        long domanIdCurrentUser = 22L;
 
         String userName = "username";
         Mockito.doReturn(userName).when(UpdateUserCmdMock).getUsername();
         Mockito.lenient().doReturn(userName).when(userVoMock).getUsername();
         Mockito.doReturn(domanIdCurrentUser).when(accountMock).getDomainId();
 
-        long userVoDuplicatedMockId = 67l;
+        long userVoDuplicatedMockId = 67L;
         UserVO userVoDuplicatedMock = Mockito.mock(UserVO.class);
         
Mockito.lenient().doReturn(userName).when(userVoDuplicatedMock).getUsername();
         
Mockito.doReturn(userVoDuplicatedMockId).when(userVoDuplicatedMock).getId();
 
-        long accountIdUserDuplicated = 98l;
+        long accountIdUserDuplicated = 98L;
         
Mockito.doReturn(accountIdUserDuplicated).when(userVoDuplicatedMock).getAccountId();
 
         Account accountUserDuplicatedMock = Mockito.mock(AccountVO.class);
         
Mockito.lenient().doReturn(accountIdUserDuplicated).when(accountUserDuplicatedMock).getId();
-        Mockito.doReturn(45l).when(accountUserDuplicatedMock).getDomainId();
+        Mockito.doReturn(45L).when(accountUserDuplicatedMock).getDomainId();
 
         List<UserVO> usersWithSameUserName = new ArrayList<>();
         usersWithSameUserName.add(userVoMock);
@@ -763,7 +755,7 @@ public class AccountManagerImplTest extends 
AccountManagetImplTestBase {
 
     @Test
     public void validateAndUpdateUsernameIfNeededTestNoDuplicatedUserNames() {
-        long domanIdCurrentUser = 22l;
+        long domanIdCurrentUser = 22L;
 
         String userName = "username";
         Mockito.doReturn(userName).when(UpdateUserCmdMock).getUsername();
@@ -961,7 +953,7 @@ public class AccountManagerImplTest extends 
AccountManagetImplTestBase {
     @Test
     public void 
validateCurrentPasswordTestUserAuthenticatedWithProvidedCurrentPasswordViaFirstAuthenticator()
 {
         AccountVO accountVoMock = Mockito.mock(AccountVO.class);
-        long domainId = 14l;
+        long domainId = 14L;
         Mockito.doReturn(domainId).when(accountVoMock).getDomainId();
 
         
Mockito.doReturn(accountVoMock).when(_accountDao).findById(accountMockId);
@@ -990,7 +982,7 @@ public class AccountManagerImplTest extends 
AccountManagetImplTestBase {
     @Test
     public void 
validateCurrentPasswordTestUserAuthenticatedWithProvidedCurrentPasswordViaSecondAuthenticator()
 {
         AccountVO accountVoMock = Mockito.mock(AccountVO.class);
-        long domainId = 14l;
+        long domainId = 14L;
         Mockito.doReturn(domainId).when(accountVoMock).getDomainId();
 
         
Mockito.doReturn(accountVoMock).when(_accountDao).findById(accountMockId);
@@ -1051,7 +1043,7 @@ public class AccountManagerImplTest extends 
AccountManagetImplTestBase {
         UserAccountVO userAccount = Mockito.mock(UserAccountVO.class);
         UserVO userVO = Mockito.mock(UserVO.class);
 
-        
Mockito.when(userAccountDaoMock.findById(userId)).thenReturn(userAccount);
+        Mockito.when(userAccountDao.findById(userId)).thenReturn(userAccount);
         Mockito.when(userDaoMock.findById(userId)).thenReturn(userVO);
         Mockito.when(userAccount.getDomainId()).thenReturn(1L);
 
@@ -1070,7 +1062,7 @@ public class AccountManagerImplTest extends 
AccountManagetImplTestBase {
         UserAccountVO userAccount = Mockito.mock(UserAccountVO.class);
         UserVO userVO = Mockito.mock(UserVO.class);
 
-        
Mockito.when(userAccountDaoMock.findById(userId)).thenReturn(userAccount);
+        Mockito.when(userAccountDao.findById(userId)).thenReturn(userAccount);
         Mockito.when(userDaoMock.findById(userId)).thenReturn(userVO);
         Mockito.when(userAccount.getDomainId()).thenReturn(1L);
 
@@ -1099,7 +1091,7 @@ public class AccountManagerImplTest extends 
AccountManagetImplTestBase {
         UserAccountVO userAccount = Mockito.mock(UserAccountVO.class);
         UserVO userVO = Mockito.mock(UserVO.class);
 
-        
Mockito.when(userAccountDaoMock.findById(userId)).thenReturn(userAccount);
+        Mockito.when(userAccountDao.findById(userId)).thenReturn(userAccount);
         Mockito.when(userDaoMock.findById(userId)).thenReturn(userVO);
         Mockito.when(userAccount.getDomainId()).thenReturn(1L);
 
@@ -1205,7 +1197,7 @@ public class AccountManagerImplTest extends 
AccountManagetImplTestBase {
         Mockito.when(callingUser.getId()).thenReturn(1L);
         CallContext.register(callingUser, callingAccount); // Calling account 
is user account i.e normal account
         
Mockito.lenient().when(_accountService.getActiveAccountById(1L)).thenReturn(accountMock);
-        
Mockito.when(userAccountDaoMock.findById(1L)).thenReturn(userAccountVO);
+        Mockito.when(userAccountDao.findById(1L)).thenReturn(userAccountVO);
         Mockito.when(userDaoMock.findById(1L)).thenReturn(userVoMock);
         Mockito.when(userAccountVO.getDomainId()).thenReturn(1L);
         
Mockito.when(enableUserTwoFactorAuthenticationMock.valueIn(1L)).thenReturn(true);
@@ -1231,7 +1223,7 @@ public class AccountManagerImplTest extends 
AccountManagetImplTestBase {
         List<UserAccountVO> userAccountVOList = new ArrayList<>();
         UserAccountVO userAccountVO = new UserAccountVO();
         userAccountVOList.add(userAccountVO);
-        Mockito.when(userAccountDaoMock.getUserAccountByEmail(email, 
domainId)).thenReturn(userAccountVOList);
+        Mockito.when(userAccountDao.getUserAccountByEmail(email, 
domainId)).thenReturn(userAccountVOList);
         List<UserAccount> userAccounts = 
accountManagerImpl.getActiveUserAccountByEmail(email, domainId);
         Assert.assertEquals(userAccountVOList.size(), userAccounts.size());
         Assert.assertEquals(userAccountVOList.get(0), userAccounts.get(0));
@@ -1406,7 +1398,7 @@ public class AccountManagerImplTest extends 
AccountManagetImplTestBase {
         Mockito.when(user.getUser2faProvider()).thenReturn(null);
         UserAccount result = 
accountManagerImpl.clearUserTwoFactorAuthenticationInSetupStateOnLogin(user);
         Assert.assertSame(user, result);
-        Mockito.verifyNoInteractions(userDetailsDaoMock, userAccountDaoMock);
+        Mockito.verifyNoInteractions(userDetailsDaoMock, userAccountDao);
     }
 
     @Test
@@ -1420,7 +1412,7 @@ public class AccountManagerImplTest extends 
AccountManagetImplTestBase {
         UserAccount result = 
accountManagerImpl.clearUserTwoFactorAuthenticationInSetupStateOnLogin(user);
         Assert.assertSame(user, result);
         Mockito.verify(userDetailsDaoMock).findDetail(1L, 
UserDetailVO.Setup2FADetail);
-        Mockito.verifyNoMoreInteractions(userDetailsDaoMock, 
userAccountDaoMock);
+        Mockito.verifyNoMoreInteractions(userDetailsDaoMock, userAccountDao);
     }
 
     @Test
@@ -1433,16 +1425,16 @@ public class AccountManagerImplTest extends 
AccountManagetImplTestBase {
         UserAccountVO userAccountVO = new UserAccountVO();
         userAccountVO.setId(1L);
         Mockito.when(userDetailsDaoMock.findDetail(1L, 
UserDetailVO.Setup2FADetail)).thenReturn(userDetail);
-        
Mockito.when(userAccountDaoMock.findById(1L)).thenReturn(userAccountVO);
+        Mockito.when(userAccountDao.findById(any())).thenReturn(userAccountVO);
         UserAccount result = 
accountManagerImpl.clearUserTwoFactorAuthenticationInSetupStateOnLogin(user);
         Assert.assertNotNull(result);
         Assert.assertFalse(result.isUser2faEnabled());
         Assert.assertNull(result.getUser2faProvider());
         Mockito.verify(userDetailsDaoMock).findDetail(1L, 
UserDetailVO.Setup2FADetail);
         Mockito.verify(userDetailsDaoMock).remove(Mockito.anyLong());
-        Mockito.verify(userAccountDaoMock).findById(1L);
+        Mockito.verify(userAccountDao).findById(1L);
         ArgumentCaptor<UserAccountVO> captor = 
ArgumentCaptor.forClass(UserAccountVO.class);
-        Mockito.verify(userAccountDaoMock).update(Mockito.eq(1L), 
captor.capture());
+        Mockito.verify(userAccountDao).update(Mockito.eq(1L), 
captor.capture());
         UserAccountVO updatedUser = captor.getValue();
         Assert.assertFalse(updatedUser.isUser2faEnabled());
         Assert.assertNull(updatedUser.getUser2faProvider());
diff --git 
a/server/src/test/java/com/cloud/user/AccountManagerImplVolumeDeleteEventTest.java
 
b/server/src/test/java/com/cloud/user/AccountManagerImplVolumeDeleteEventTest.java
index 6d69890c9a5..3f13d9dd024 100644
--- 
a/server/src/test/java/com/cloud/user/AccountManagerImplVolumeDeleteEventTest.java
+++ 
b/server/src/test/java/com/cloud/user/AccountManagerImplVolumeDeleteEventTest.java
@@ -63,7 +63,7 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 @RunWith(MockitoJUnitRunner.class)
-public class AccountManagerImplVolumeDeleteEventTest extends 
AccountManagetImplTestBase {
+public class AccountManagerImplVolumeDeleteEventTest extends 
AccountManagentImplTestBase {
 
     private static final Long ACCOUNT_ID = 1l;
     private static final String VOLUME_UUID = "vol-111111";

Reply via email to