You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by pr...@apache.org on 2012/11/16 11:00:31 UTC
[16/50] git commit: CS-16168:AutoScale- Deletion of Account doesn't
delete the AutoScale LB rule
CS-16168:AutoScale- Deletion of Account doesn't delete the AutoScale LB rule
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/d2155890
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/d2155890
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/d2155890
Branch: refs/heads/master
Commit: d2155890cc87af636c69681a559d72793365740c
Parents: 58db4d0
Author: Deepak Garg <de...@gmail.com>
Authored: Wed Sep 12 21:46:04 2012 +0530
Committer: Vijay Venkatachalam <vi...@citrix.com>
Committed: Fri Nov 16 10:56:57 2012 +0530
----------------------------------------------------------------------
.../src/com/cloud/network/as/AutoScaleManager.java | 2 +
.../com/cloud/network/as/AutoScaleManagerImpl.java | 20 +++++++++++++-
.../cloud/network/as/dao/AutoScalePolicyDao.java | 1 +
.../network/as/dao/AutoScalePolicyDaoImpl.java | 9 ++++++
.../network/as/dao/AutoScaleVmProfileDao.java | 2 +
.../network/as/dao/AutoScaleVmProfileDaoImpl.java | 9 ++++++
.../src/com/cloud/network/as/dao/ConditionDao.java | 1 +
.../com/cloud/network/as/dao/ConditionDaoImpl.java | 9 ++++++-
.../network/lb/LoadBalancingRulesManagerImpl.java | 2 +-
server/src/com/cloud/user/AccountManagerImpl.java | 11 ++++++++
10 files changed, 62 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/d2155890/server/src/com/cloud/network/as/AutoScaleManager.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/as/AutoScaleManager.java b/server/src/com/cloud/network/as/AutoScaleManager.java
index 7ea7807..ac822dc 100644
--- a/server/src/com/cloud/network/as/AutoScaleManager.java
+++ b/server/src/com/cloud/network/as/AutoScaleManager.java
@@ -17,4 +17,6 @@
package com.cloud.network.as;
public interface AutoScaleManager extends AutoScaleService {
+
+ void cleanUpAutoScaleResources(Long accountId);
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/d2155890/server/src/com/cloud/network/as/AutoScaleManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/as/AutoScaleManagerImpl.java b/server/src/com/cloud/network/as/AutoScaleManagerImpl.java
index b3c997a..ab8c452 100644
--- a/server/src/com/cloud/network/as/AutoScaleManagerImpl.java
+++ b/server/src/com/cloud/network/as/AutoScaleManagerImpl.java
@@ -94,8 +94,8 @@ import com.cloud.utils.db.SearchCriteria.Op;
import com.cloud.utils.db.Transaction;
import com.cloud.utils.net.NetUtils;
-@Local(value = { AutoScaleService.class })
-public class AutoScaleManagerImpl<Type> implements AutoScaleService, Manager {
+@Local(value = { AutoScaleService.class, AutoScaleManager.class })
+public class AutoScaleManagerImpl<Type> implements AutoScaleManager, AutoScaleService, Manager {
private static final Logger s_logger = Logger.getLogger(AutoScaleManagerImpl.class);
String _name;
@@ -1129,4 +1129,20 @@ public class AutoScaleManagerImpl<Type> implements AutoScaleService, Manager {
return success;
}
+ public void cleanUpAutoScaleResources(Long accountId) {
+ // cleans Autoscale VmProfiles, AutoScale Policies and Conditions belonging to an account
+ int count = 0;
+ count = _autoScaleVmProfileDao.removeByAccountId(accountId);
+ if (count > 0) {
+ s_logger.debug("Deleted " + count + " AutoScale Vm Profile for account Id: " + accountId);
+ }
+ count = _autoScalePolicyDao.removeByAccountId(accountId);
+ if (count > 0) {
+ s_logger.debug("Deleted " + count + " AutoScale Policies for account Id: " + accountId);
+ }
+ count = _conditionDao.removeByAccountId(accountId);
+ if (count > 0) {
+ s_logger.debug("Deleted " + count + " Conditions for account Id: " + accountId);
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/d2155890/server/src/com/cloud/network/as/dao/AutoScalePolicyDao.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/as/dao/AutoScalePolicyDao.java b/server/src/com/cloud/network/as/dao/AutoScalePolicyDao.java
index 8edfa94..51b2a94 100644
--- a/server/src/com/cloud/network/as/dao/AutoScalePolicyDao.java
+++ b/server/src/com/cloud/network/as/dao/AutoScalePolicyDao.java
@@ -20,4 +20,5 @@ import com.cloud.network.as.AutoScalePolicyVO;
import com.cloud.utils.db.GenericDao;
public interface AutoScalePolicyDao extends GenericDao<AutoScalePolicyVO, Long> {
+ int removeByAccountId(long accountId);
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/d2155890/server/src/com/cloud/network/as/dao/AutoScalePolicyDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/as/dao/AutoScalePolicyDaoImpl.java b/server/src/com/cloud/network/as/dao/AutoScalePolicyDaoImpl.java
index 5dfe080..f8f5491 100644
--- a/server/src/com/cloud/network/as/dao/AutoScalePolicyDaoImpl.java
+++ b/server/src/com/cloud/network/as/dao/AutoScalePolicyDaoImpl.java
@@ -20,7 +20,16 @@ import javax.ejb.Local;
import com.cloud.network.as.AutoScalePolicyVO;
import com.cloud.utils.db.GenericDaoBase;
+import com.cloud.utils.db.SearchCriteria;
@Local(value = { AutoScalePolicyDao.class })
public class AutoScalePolicyDaoImpl extends GenericDaoBase<AutoScalePolicyVO, Long> implements AutoScalePolicyDao {
+
+ public int removeByAccountId(long accountId) {
+ SearchCriteria<AutoScalePolicyVO> sc = createSearchCriteria();
+
+ sc.addAnd("accountId", SearchCriteria.Op.EQ, accountId);
+
+ return remove(sc);
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/d2155890/server/src/com/cloud/network/as/dao/AutoScaleVmProfileDao.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/as/dao/AutoScaleVmProfileDao.java b/server/src/com/cloud/network/as/dao/AutoScaleVmProfileDao.java
index 0803571..d97e848 100644
--- a/server/src/com/cloud/network/as/dao/AutoScaleVmProfileDao.java
+++ b/server/src/com/cloud/network/as/dao/AutoScaleVmProfileDao.java
@@ -20,4 +20,6 @@ import com.cloud.network.as.AutoScaleVmProfileVO;
import com.cloud.utils.db.GenericDao;
public interface AutoScaleVmProfileDao extends GenericDao<AutoScaleVmProfileVO, Long> {
+
+ int removeByAccountId(long accountId);
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/d2155890/server/src/com/cloud/network/as/dao/AutoScaleVmProfileDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/as/dao/AutoScaleVmProfileDaoImpl.java b/server/src/com/cloud/network/as/dao/AutoScaleVmProfileDaoImpl.java
index 12392c3..d2b162b 100644
--- a/server/src/com/cloud/network/as/dao/AutoScaleVmProfileDaoImpl.java
+++ b/server/src/com/cloud/network/as/dao/AutoScaleVmProfileDaoImpl.java
@@ -20,7 +20,16 @@ import javax.ejb.Local;
import com.cloud.network.as.AutoScaleVmProfileVO;
import com.cloud.utils.db.GenericDaoBase;
+import com.cloud.utils.db.SearchCriteria;
@Local(value = { AutoScaleVmProfileDao.class })
public class AutoScaleVmProfileDaoImpl extends GenericDaoBase<AutoScaleVmProfileVO, Long> implements AutoScaleVmProfileDao {
+
+ @Override
+ public int removeByAccountId(long accountId) {
+ SearchCriteria<AutoScaleVmProfileVO> sc = createSearchCriteria();
+ sc.addAnd("accountId", SearchCriteria.Op.EQ, accountId);
+
+ return remove(sc);
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/d2155890/server/src/com/cloud/network/as/dao/ConditionDao.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/as/dao/ConditionDao.java b/server/src/com/cloud/network/as/dao/ConditionDao.java
index bb0f77f..128920d 100644
--- a/server/src/com/cloud/network/as/dao/ConditionDao.java
+++ b/server/src/com/cloud/network/as/dao/ConditionDao.java
@@ -24,4 +24,5 @@ public interface ConditionDao extends GenericDao<ConditionVO, Long> {
ConditionVO findByCounterId(long ctrId);
+ int removeByAccountId(long accountId);
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/d2155890/server/src/com/cloud/network/as/dao/ConditionDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/as/dao/ConditionDaoImpl.java b/server/src/com/cloud/network/as/dao/ConditionDaoImpl.java
index 338fe19..4f71d45 100644
--- a/server/src/com/cloud/network/as/dao/ConditionDaoImpl.java
+++ b/server/src/com/cloud/network/as/dao/ConditionDaoImpl.java
@@ -38,9 +38,16 @@ public class ConditionDaoImpl extends GenericDaoBase<ConditionVO, Long> implemen
@Override
public ConditionVO findByCounterId(long ctrId) {
- // TODO - may consider indexing counterId field in db-schema
SearchCriteria<ConditionVO> sc = AllFieldsSearch.create();
sc.setParameters("counterId", ctrId);
return findOneBy(sc);
}
+
+ public int removeByAccountId(long accountId) {
+ SearchCriteria<ConditionVO> sc = createSearchCriteria();
+
+ sc.addAnd("accountId", SearchCriteria.Op.EQ, accountId);
+
+ return remove(sc);
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/d2155890/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java b/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
index c97818c..9944384 100755
--- a/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
+++ b/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
@@ -259,7 +259,7 @@ public class LoadBalancingRulesManagerImpl<Type> implements LoadBalancingRulesMa
}
AutoScaleVmProfile autoScaleVmProfile = _autoScaleVmProfileDao.findById(vmGroup.getProfileId());
Long autoscaleUserId = autoScaleVmProfile.getAutoScaleUserId();
- User user = _userDao.findById(autoscaleUserId);
+ User user = _userDao.findByIdIncludingRemoved(autoscaleUserId);
String apiKey = user.getApiKey();
String secretKey = user.getSecretKey();
String csUrl = _configDao.getValue(Config.EndpointeUrl.key());
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/d2155890/server/src/com/cloud/user/AccountManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/user/AccountManagerImpl.java b/server/src/com/cloud/user/AccountManagerImpl.java
index b19134d..f595478 100755
--- a/server/src/com/cloud/user/AccountManagerImpl.java
+++ b/server/src/com/cloud/user/AccountManagerImpl.java
@@ -75,6 +75,7 @@ import com.cloud.network.NetworkManager;
import com.cloud.network.NetworkVO;
import com.cloud.network.RemoteAccessVpnVO;
import com.cloud.network.VpnUserVO;
+import com.cloud.network.as.AutoScaleManager;
import com.cloud.network.dao.IPAddressDao;
import com.cloud.network.dao.NetworkDao;
import com.cloud.network.dao.RemoteAccessVpnDao;
@@ -214,6 +215,8 @@ public class AccountManagerImpl implements AccountManager, AccountService, Manag
private DomainRouterDao _routerDao;
@Inject
Site2SiteVpnManager _vpnMgr;
+ @Inject
+ private AutoScaleManager _autoscaleMgr;
private Adapters<UserAuthenticator> _userAuthenticators;
@@ -653,6 +656,14 @@ public class AccountManagerImpl implements AccountManager, AccountService, Manag
s_logger.warn("Fail to delete site-to-site VPN customer gateways for account " + accountId);
}
+ // Delete autoscale resources if any
+ try {
+ _autoscaleMgr.cleanUpAutoScaleResources(accountId);
+ } catch (CloudRuntimeException ex) {
+ s_logger.warn("Failed to cleanup AutoScale resources as a part of account id=" + accountId + " cleanup due to exception:", ex);
+ accountCleanupNeeded = true;
+ }
+
// delete account specific Virtual vlans (belong to system Public Network) - only when networks are cleaned
// up successfully
if (networksDeleted) {