You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ke...@apache.org on 2012/05/28 00:35:41 UTC
[28/50] [abbrv] git commit: CS-9919: Support for Nexus Swiches (Cisco
Vswitches)
CS-9919: Support for Nexus Swiches (Cisco Vswitches)
Description:
Deleting the row in cluster_vsm_map after
a cluster is deleted, if the cluster type
is vmware and the global vswitch nexus
config flag is set to true.
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/4f9101bd
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/4f9101bd
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/4f9101bd
Branch: refs/heads/3.0.x
Commit: 4f9101bd0e4cf4cf23607d99ac58ecf2a4d5d59e
Parents: 269d4da
Author: Vijayendra Bhamidipati <vi...@citrix.com>
Authored: Thu May 24 13:58:44 2012 -0700
Committer: Vijayendra Bhamidipati <vi...@citrix.com>
Committed: Thu May 24 14:04:52 2012 -0700
----------------------------------------------------------------------
server/src/com/cloud/dc/dao/ClusterVSMMapDao.java | 1 +
.../src/com/cloud/dc/dao/ClusterVSMMapDaoImpl.java | 9 ++++++++-
.../com/cloud/resource/ResourceManagerImpl.java | 12 +++++++++++-
3 files changed, 20 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/4f9101bd/server/src/com/cloud/dc/dao/ClusterVSMMapDao.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/dc/dao/ClusterVSMMapDao.java b/server/src/com/cloud/dc/dao/ClusterVSMMapDao.java
index 6405069..910e858 100644
--- a/server/src/com/cloud/dc/dao/ClusterVSMMapDao.java
+++ b/server/src/com/cloud/dc/dao/ClusterVSMMapDao.java
@@ -21,4 +21,5 @@ public interface ClusterVSMMapDao extends GenericDao<ClusterVSMMapVO, Long> {
ClusterVSMMapVO findByClusterId(long clusterId);
List<ClusterVSMMapVO> listByVSMId(long vsmId);
boolean removeByVsmId(long vsmId);
+ boolean removeByClusterId(long clusterId);
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/4f9101bd/server/src/com/cloud/dc/dao/ClusterVSMMapDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/dc/dao/ClusterVSMMapDaoImpl.java b/server/src/com/cloud/dc/dao/ClusterVSMMapDaoImpl.java
index a82fdda..618d7a4 100644
--- a/server/src/com/cloud/dc/dao/ClusterVSMMapDaoImpl.java
+++ b/server/src/com/cloud/dc/dao/ClusterVSMMapDaoImpl.java
@@ -20,7 +20,6 @@ import com.cloud.utils.db.DB;
import com.cloud.utils.db.GenericDaoBase;
import com.cloud.utils.db.SearchBuilder;
import com.cloud.utils.db.SearchCriteria;
-import com.cloud.utils.db.SearchCriteria.Op;
import com.cloud.utils.db.Transaction;
@Local(value=ClusterVSMMapDao.class)
@@ -51,6 +50,14 @@ public class ClusterVSMMapDaoImpl extends GenericDaoBase<ClusterVSMMapVO, Long>
}
@Override
+ public boolean removeByClusterId(long clusterId) {
+ SearchCriteria<ClusterVSMMapVO> sc = ClusterSearch.create();
+ sc.setParameters("clusterId", clusterId);
+ this.remove(sc);
+ return true;
+ }
+
+ @Override
public ClusterVSMMapVO findByClusterId(long clusterId) {
SearchCriteria<ClusterVSMMapVO> sc = ClusterSearch.create();
sc.setParameters("clusterId", clusterId);
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/4f9101bd/server/src/com/cloud/resource/ResourceManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/resource/ResourceManagerImpl.java b/server/src/com/cloud/resource/ResourceManagerImpl.java
index 478ae6f..dfe609f 100755
--- a/server/src/com/cloud/resource/ResourceManagerImpl.java
+++ b/server/src/com/cloud/resource/ResourceManagerImpl.java
@@ -215,6 +215,8 @@ public class ResourceManagerImpl implements ResourceManager, ResourceService, Ma
protected VMTemplateDao _templateDao;
@Inject
protected ConfigurationManager _configMgr;
+ @Inject
+ protected ClusterVSMMapDao _clusterVSMMapDao;
protected long _nodeId = ManagementServerNode.getManagementServerId();
@@ -889,7 +891,7 @@ public class ResourceManagerImpl implements ResourceManager, ResourceService, Ma
@DB
public boolean deleteCluster(DeleteClusterCmd cmd) {
Transaction txn = Transaction.currentTxn();
- try {
+ try {
txn.start();
ClusterVO cluster = _clusterDao.lockRow(cmd.getId(), true);
if (cluster == null) {
@@ -900,6 +902,8 @@ public class ResourceManagerImpl implements ResourceManager, ResourceService, Ma
throw new CloudRuntimeException("Cluster: " + cmd.getId() + " does not exist");
}
+ Hypervisor.HypervisorType hypervisorType = cluster.getHypervisorType();
+
List<HostVO> hosts = listAllHostsInCluster(cmd.getId());
if (hosts.size() > 0) {
if (s_logger.isDebugEnabled()) {
@@ -921,6 +925,12 @@ public class ResourceManagerImpl implements ResourceManager, ResourceService, Ma
if (_clusterDao.remove(cmd.getId())){
_capacityDao.removeBy(null, null, null, cluster.getId(), null);
+ // If this cluster is of type vmware, and if the nexus vswitch global parameter setting is turned
+ // on, remove the row in cluster_vsm_map for this cluster id.
+ if (hypervisorType == HypervisorType.VMware &&
+ Boolean.parseBoolean(_configDao.getValue(Config.VmwareUseNexusVSwitch.toString()))) {
+ _clusterVSMMapDao.removeByClusterId(cmd.getId());
+ }
}
txn.commit();