Merge remote-tracking branch 'origin/4.10'

This commit is contained in:
Rohit Yadav 2017-07-23 13:46:20 +02:00
commit 61208b5db2
6 changed files with 34 additions and 5 deletions

View File

@ -3584,7 +3584,17 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
final Long domainId = cmd.getDomainId();
final Long projectId = cmd.getProjectId();
final Account owner = _accountMgr.finalizeOwner(caller, accountName, domainId, projectId);
Account owner = null;
try {
owner = _accountMgr.finalizeOwner(caller, accountName, domainId, projectId);
} catch (InvalidParameterValueException ex) {
if (caller.getType() == Account.ACCOUNT_TYPE_ADMIN && accountName != null && domainId != null) {
owner = _accountDao.findAccountIncludingRemoved(accountName, domainId);
}
if (owner == null) {
throw ex;
}
}
final SSHKeyPairVO s = _sshKeyPairDao.findByName(owner.getAccountId(), owner.getDomainId(), cmd.getName());
if (s == null) {

View File

@ -991,7 +991,7 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C
_capacityDao.persist(capacity);
} else {
CapacityVO capacity = capacities.get(0);
if (capacity.getTotalCapacity() != totalOverProvCapacity || allocated != 0L || capacity.getCapacityState() != capacityState) {
if (capacity.getTotalCapacity() != totalOverProvCapacity || allocated != capacity.getUsedCapacity() || capacity.getCapacityState() != capacityState) {
capacity.setTotalCapacity(totalOverProvCapacity);
capacity.setUsedCapacity(allocated);
capacity.setCapacityState(capacityState);

View File

@ -87,6 +87,7 @@ import com.cloud.template.TemplateManager;
import com.cloud.template.VirtualMachineTemplate;
import com.cloud.user.Account.State;
import com.cloud.user.dao.AccountDao;
import com.cloud.user.dao.SSHKeyPairDao;
import com.cloud.user.dao.UserAccountDao;
import com.cloud.user.dao.UserDao;
import com.cloud.utils.ConstantTimeComparator;
@ -263,6 +264,8 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
private DedicatedResourceDao _dedicatedDao;
@Inject
private GlobalLoadBalancerRuleDao _gslbRuleDao;
@Inject
private SSHKeyPairDao _sshKeyPairDao;
List<QuerySelector> _querySelectors;
@ -924,6 +927,12 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
// Delete resource count and resource limits entries set for this account (if there are any).
_resourceCountDao.removeEntriesByOwner(accountId, ResourceOwnerType.Account);
_resourceLimitDao.removeEntriesByOwner(accountId, ResourceOwnerType.Account);
// Delete ssh keypairs
List<SSHKeyPairVO> sshkeypairs = _sshKeyPairDao.listKeyPairs(accountId, account.getDomainId());
for (SSHKeyPairVO keypair: sshkeypairs) {
_sshKeyPairDao.remove(keypair.getId());
}
return true;
} catch (Exception ex) {
s_logger.warn("Failed to cleanup account " + account + " due to ", ex);

View File

@ -20,6 +20,7 @@ import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import com.cloud.acl.DomainChecker;
import com.cloud.exception.PermissionDeniedException;
@ -105,6 +106,13 @@ public class AccountManagerImplTest extends AccountManagetImplTestBase {
.thenReturn(true);
Mockito.when(_vmSnapshotDao.listByAccountId(Mockito.anyLong())).thenReturn(new ArrayList<VMSnapshotVO>());
List<SSHKeyPairVO> sshkeyList = new ArrayList<SSHKeyPairVO>();
SSHKeyPairVO sshkey = new SSHKeyPairVO();
sshkey.setId(1l);
sshkeyList.add(sshkey);
Mockito.when(_sshKeyPairDao.listKeyPairs(Mockito.anyLong(), Mockito.anyLong())).thenReturn(sshkeyList);
Mockito.when(_sshKeyPairDao.remove(Mockito.anyLong())).thenReturn(true);
Assert.assertTrue(accountManager.deleteUserAccount(42));
// assert that this was a clean delete
Mockito.verify(_accountDao, Mockito.never()).markForCleanup(

View File

@ -69,6 +69,7 @@ import com.cloud.storage.dao.VolumeDao;
import com.cloud.storage.snapshot.SnapshotManager;
import com.cloud.template.TemplateManager;
import com.cloud.user.dao.AccountDao;
import com.cloud.user.dao.SSHKeyPairDao;
import com.cloud.user.dao.UserAccountDao;
import com.cloud.user.dao.UserDao;
import com.cloud.vm.VirtualMachineManager;
@ -189,7 +190,8 @@ public class AccountManagetImplTestBase {
ServiceOfferingDao _offeringDao;
@Mock
OrchestrationService _orchSrvc;
@Mock
SSHKeyPairDao _sshKeyPairDao;
AccountManagerImpl accountManager;

View File

@ -20,6 +20,6 @@ for i in $*
do
info=`/opt/cloud/bin/checks2svpn.sh $i`
ret=$?
echo -n "$i:$ret:$info&"
batchInfo+="$i:$ret:$info&"
done
echo -n $batchInfo