You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ah...@apache.org on 2012/09/11 01:56:55 UTC
[2/5] git commit: Revert "CLOUDSTACK-70: Improve Network Restart
Behaviour for Basic Zone: Restarting Network Fails"
Revert "CLOUDSTACK-70: Improve Network Restart Behaviour for Basic Zone: Restarting Network Fails"
This reverts commit ecd1ac214c34007214557c4191a803a55ded29f5.
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/d6b65299
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/d6b65299
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/d6b65299
Branch: refs/heads/4.0
Commit: d6b652995180b6842545cd8b4798504b563a414c
Parents: 176c340
Author: Alena Prokharchyk <al...@citrix.com>
Authored: Mon Sep 10 14:45:39 2012 -0700
Committer: Alena Prokharchyk <al...@citrix.com>
Committed: Mon Sep 10 16:34:21 2012 -0700
----------------------------------------------------------------------
.../src/com/cloud/network/NetworkManagerImpl.java | 54 ++++-----------
server/src/com/cloud/vm/dao/DomainRouterDao.java | 9 +--
.../src/com/cloud/vm/dao/DomainRouterDaoImpl.java | 7 --
server/src/com/cloud/vm/dao/VMInstanceDao.java | 9 +--
server/src/com/cloud/vm/dao/VMInstanceDaoImpl.java | 10 +---
ui/scripts/network.js | 12 +++-
6 files changed, 26 insertions(+), 75 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/d6b65299/server/src/com/cloud/network/NetworkManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java
index aee9a41..292a259 100755
--- a/server/src/com/cloud/network/NetworkManagerImpl.java
+++ b/server/src/com/cloud/network/NetworkManagerImpl.java
@@ -68,7 +68,6 @@ import com.cloud.dc.AccountVlanMapVO;
import com.cloud.dc.DataCenter;
import com.cloud.dc.DataCenter.NetworkType;
import com.cloud.dc.DataCenterVO;
-import com.cloud.dc.HostPodVO;
import com.cloud.dc.Pod;
import com.cloud.dc.PodVlanMapVO;
import com.cloud.dc.Vlan;
@@ -78,7 +77,6 @@ import com.cloud.dc.dao.AccountVlanMapDao;
import com.cloud.dc.dao.DataCenterDao;
import com.cloud.dc.dao.PodVlanMapDao;
import com.cloud.dc.dao.VlanDao;
-import com.cloud.dc.dao.HostPodDao;
import com.cloud.deploy.DataCenterDeployment;
import com.cloud.deploy.DeployDestination;
import com.cloud.deploy.DeploymentPlan;
@@ -204,7 +202,6 @@ import com.cloud.utils.db.Transaction;
import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.utils.net.Ip;
import com.cloud.utils.net.NetUtils;
-import com.cloud.vm.DomainRouterVO;
import com.cloud.vm.Nic;
import com.cloud.vm.NicProfile;
import com.cloud.vm.NicVO;
@@ -235,8 +232,6 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
@Inject
DataCenterDao _dcDao = null;
@Inject
- HostPodDao _podDao = null;
- @Inject
VlanDao _vlanDao = null;
@Inject
IPAddressDao _ipAddressDao = null;
@@ -245,8 +240,6 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
@Inject
DomainDao _domainDao = null;
@Inject
- DomainRouterDao _domainRouterDao = null;
- @Inject
UserStatisticsDao _userStatsDao = null;
@Inject
EventDao _eventDao = null;
@@ -3814,6 +3807,12 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
throw new InvalidParameterValueException("Network is not in the right state to be restarted. Correct states are: " + Network.State.Implemented + ", " + Network.State.Setup);
}
+ // don't allow clenaup=true for the network in Basic zone
+ DataCenter zone = _configMgr.getZone(network.getDataCenterId());
+ if (zone.getNetworkType() == NetworkType.Basic && cleanup) {
+ throw new InvalidParameterValueException("Cleanup can't be true when restart network in Basic zone");
+ }
+
_accountMgr.checkAccess(callerAccount, null, true, network);
boolean success = restartNetwork(networkId, callerAccount, callerUser, cleanup);
@@ -3858,6 +3857,10 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
ReservationContext context = new ReservationContextImpl(null, null, callerUser, callerAccount);
if (cleanup) {
+ if (network.getGuestType() != GuestType.Isolated) {
+ s_logger.warn("Only support clean up network for isolated network!");
+ return false;
+ }
// shutdown the network
s_logger.debug("Shutting down the network id=" + networkId + " as a part of network restart");
@@ -3870,43 +3873,14 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
s_logger.debug("Skip the shutting down of network id=" + networkId);
}
+ // implement the network elements and rules again
+ DeployDestination dest = new DeployDestination(_dcDao.findById(network.getDataCenterId()), null, null, null);
+
s_logger.debug("Implementing the network " + network + " elements and resources as a part of network restart");
NetworkOfferingVO offering = _networkOfferingDao.findById(network.getNetworkOfferingId());
try {
- DataCenter dc = _dcDao.findById(network.getDataCenterId());
- //Pod based network restart for basic network, one VR per pod
- if (dc.getNetworkType() == NetworkType.Basic) {
- //Loop through all pods with running user vms and restart network
- for (HostPodVO pod: _podDao.listByDataCenterId(dc.getId())) {
- s_logger.debug("Trying to restart network for Pod: " + pod.getName() + ", id=" + pod.getId());
- //If cleanup is false, don't implement network on running VRs
- List<DomainRouterVO> virtualRouters = _domainRouterDao.listByPodId(pod.getId());
- Boolean podHasSingleVR = (virtualRouters.size() == 1);
- if (!podHasSingleVR) {
- s_logger.warn("Pod should have only one VR in Basic Zone, please check!");
- }
- if (!cleanup && virtualRouters != null && podHasSingleVR
- && virtualRouters.get(0).getState() == VirtualMachine.State.Running) {
- s_logger.debug("Cleanup=false: Found a running VR, skipping network implementation for the pod");
- continue;
- }
- //Implement network only if there are running user vms in 'pod'
- List<VMInstanceVO> vms = _vmDao.listByPodId(pod.getId());
- for (VMInstanceVO vm: vms) {
- // implement the network elements and rules again
- if (vm.getType() == Type.User && vm.getState() == VirtualMachine.State.Running) {
- DeployDestination dest = new DeployDestination(dc, pod, null, null);
- implementNetworkElementsAndResources(dest, context, network, offering);
- break;
- }
- }
- }
- } else {
- // implement the network elements and rules again
- DeployDestination dest = new DeployDestination(dc, null, null, null);
- implementNetworkElementsAndResources(dest, context, network, offering);
- }
+ implementNetworkElementsAndResources(dest, context, network, offering);
setRestartRequired(network, true);
} catch (Exception ex) {
s_logger.warn("Failed to implement network " + network + " elements and resources as a part of network restart due to ", ex);
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/d6b65299/server/src/com/cloud/vm/dao/DomainRouterDao.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/dao/DomainRouterDao.java b/server/src/com/cloud/vm/dao/DomainRouterDao.java
index d8e8cd8..01e3258 100755
--- a/server/src/com/cloud/vm/dao/DomainRouterDao.java
+++ b/server/src/com/cloud/vm/dao/DomainRouterDao.java
@@ -61,14 +61,7 @@ public interface DomainRouterDao extends GenericDao<DomainRouterVO, Long> {
*/
public List<DomainRouterVO> listByHostId(Long hostId);
public List<DomainRouterVO> listByLastHostId(Long hostId);
-
- /**
- * virtual machine routers.
- * @param podId id of the pod. null if to get all.
- * @return list of DomainRouterVO
- */
- public List<DomainRouterVO> listByPodId(Long podId);
-
+
/**
* list virtual machine routers by host id.
* pass in null to get all
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/d6b65299/server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java b/server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java
index 2948500..175d3f2 100755
--- a/server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java
+++ b/server/src/com/cloud/vm/dao/DomainRouterDaoImpl.java
@@ -178,13 +178,6 @@ public class DomainRouterDaoImpl extends GenericDaoBase<DomainRouterVO, Long> im
}
@Override
- public List<DomainRouterVO> listByPodId(Long podId) {
- SearchCriteria<DomainRouterVO> sc = AllFieldsSearch.create();
- sc.setParameters("podId", podId);
- return listBy(sc);
- }
-
- @Override
public List<DomainRouterVO> listIsolatedByHostId(Long hostId) {
SearchCriteria<DomainRouterVO> sc = HostUpSearch.create();
if (hostId != null) {
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/d6b65299/server/src/com/cloud/vm/dao/VMInstanceDao.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/dao/VMInstanceDao.java b/server/src/com/cloud/vm/dao/VMInstanceDao.java
index 9a261aa..2cf3d75 100644
--- a/server/src/com/cloud/vm/dao/VMInstanceDao.java
+++ b/server/src/com/cloud/vm/dao/VMInstanceDao.java
@@ -46,14 +46,7 @@ public interface VMInstanceDao extends GenericDao<VMInstanceVO, Long>, StateDao<
* @return list of VMInstanceVO in the specified zone
*/
List<VMInstanceVO> listByZoneId(long zoneId);
-
- /**
- * List VMs by pod ID
- * @param podId
- * @return list of VMInstanceVO in the specified pod
- */
- List<VMInstanceVO> listByPodId(long podId);
-
+
/**
* Lists non-expunged VMs by zone ID and templateId
* @param zoneId
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/d6b65299/server/src/com/cloud/vm/dao/VMInstanceDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/dao/VMInstanceDaoImpl.java b/server/src/com/cloud/vm/dao/VMInstanceDaoImpl.java
index 7f1c5b2..571b5d1 100644
--- a/server/src/com/cloud/vm/dao/VMInstanceDaoImpl.java
+++ b/server/src/com/cloud/vm/dao/VMInstanceDaoImpl.java
@@ -127,7 +127,6 @@ public class VMInstanceDaoImpl extends GenericDaoBase<VMInstanceVO, Long> implem
AllFieldsSearch.and("lastHost", AllFieldsSearch.entity().getLastHostId(), Op.EQ);
AllFieldsSearch.and("state", AllFieldsSearch.entity().getState(), Op.EQ);
AllFieldsSearch.and("zone", AllFieldsSearch.entity().getDataCenterIdToDeployIn(), Op.EQ);
- AllFieldsSearch.and("pod", AllFieldsSearch.entity().getPodIdToDeployIn(), Op.EQ);
AllFieldsSearch.and("type", AllFieldsSearch.entity().getType(), Op.EQ);
AllFieldsSearch.and("account", AllFieldsSearch.entity().getAccountId(), Op.EQ);
AllFieldsSearch.done();
@@ -231,14 +230,7 @@ public class VMInstanceDaoImpl extends GenericDaoBase<VMInstanceVO, Long> implem
return listBy(sc);
}
-
- @Override
- public List<VMInstanceVO> listByPodId(long podId) {
- SearchCriteria<VMInstanceVO> sc = AllFieldsSearch.create();
- sc.setParameters("pod", podId);
- return listBy(sc);
- }
-
+
@Override
public List<VMInstanceVO> listByClusterId(long clusterId) {
SearchCriteria<VMInstanceVO> sc = VMClusterSearch.create();
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/d6b65299/ui/scripts/network.js
----------------------------------------------------------------------
diff --git a/ui/scripts/network.js b/ui/scripts/network.js
index d239cad..d0f65c4 100644
--- a/ui/scripts/network.js
+++ b/ui/scripts/network.js
@@ -604,9 +604,15 @@
success: function(json){
zoneObj = json.listzonesresponse.zone[0];
}
- });
- args.$form.find('.form-item[rel=cleanup]').find('input').attr('checked', 'checked'); //checked
- args.$form.find('.form-item[rel=cleanup]').css('display', 'inline-block'); //shown
+ });
+ if(zoneObj.networktype == "Basic") {
+ args.$form.find('.form-item[rel=cleanup]').find('input').removeAttr('checked'); //unchecked
+ args.$form.find('.form-item[rel=cleanup]').hide(); //hidden
+ }
+ else {
+ args.$form.find('.form-item[rel=cleanup]').find('input').attr('checked', 'checked'); //checked
+ args.$form.find('.form-item[rel=cleanup]').css('display', 'inline-block'); //shown
+ }
},
fields: {
cleanup: {