Repository: cloudstack Updated Branches: refs/heads/master 51ee90074 -> 106ec718f
Revert "CLOUDSTACK-7872: network getting shutdown inspite of running VM's in the network" This reverts commit 709bf074de9f8f22e6a71362551c4867be884e4b. Network GC is broken with out-of-band VM movements due to the original commit, so reverting. Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/106ec718 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/106ec718 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/106ec718 Branch: refs/heads/master Commit: 106ec718fc6557ac41f34809dee19bc7eef4a110 Parents: 51ee900 Author: Koushik Das <kous...@apache.org> Authored: Tue Dec 23 12:13:51 2014 +0530 Committer: Koushik Das <kous...@apache.org> Committed: Tue Dec 23 12:13:51 2014 +0530 ---------------------------------------------------------------------- .../com/cloud/network/dao/NetworkDaoImpl.java | 2 ++ engine/schema/src/com/cloud/vm/dao/NicDao.java | 2 -- .../schema/src/com/cloud/vm/dao/NicDaoImpl.java | 22 -------------------- .../src/com/cloud/network/NetworkModelImpl.java | 7 ------- 4 files changed, 2 insertions(+), 31 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/106ec718/engine/schema/src/com/cloud/network/dao/NetworkDaoImpl.java ---------------------------------------------------------------------- diff --git a/engine/schema/src/com/cloud/network/dao/NetworkDaoImpl.java b/engine/schema/src/com/cloud/network/dao/NetworkDaoImpl.java index 4a07455..0c556c8 100644 --- a/engine/schema/src/com/cloud/network/dao/NetworkDaoImpl.java +++ b/engine/schema/src/com/cloud/network/dao/NetworkDaoImpl.java @@ -244,6 +244,7 @@ public class NetworkDaoImpl extends GenericDaoBase<NetworkVO, Long> implements N GarbageCollectedSearch = createSearchBuilder(Long.class); GarbageCollectedSearch.selectFields(GarbageCollectedSearch.entity().getId()); SearchBuilder<NetworkOpVO> join7 = _ntwkOpDao.createSearchBuilder(); + join7.and("activenics", join7.entity().getActiveNicsCount(), Op.EQ); join7.and("gc", join7.entity().isGarbageCollected(), Op.EQ); join7.and("check", join7.entity().isCheckForGc(), Op.EQ); GarbageCollectedSearch.join("ntwkOpGC", join7, GarbageCollectedSearch.entity().getId(), join7.entity().getId(), JoinBuilder.JoinType.INNER); @@ -437,6 +438,7 @@ public class NetworkDaoImpl extends GenericDaoBase<NetworkVO, Long> implements N public List<Long> findNetworksToGarbageCollect() { SearchCriteria<Long> sc = GarbageCollectedSearch.create(); sc.setJoinParameters("ntwkOffGC", "isPersistent", false); + sc.setJoinParameters("ntwkOpGC", "activenics", 0); sc.setJoinParameters("ntwkOpGC", "gc", true); sc.setJoinParameters("ntwkOpGC", "check", true); return customSearch(sc, null); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/106ec718/engine/schema/src/com/cloud/vm/dao/NicDao.java ---------------------------------------------------------------------- diff --git a/engine/schema/src/com/cloud/vm/dao/NicDao.java b/engine/schema/src/com/cloud/vm/dao/NicDao.java index 9f153f8..a7ad016 100644 --- a/engine/schema/src/com/cloud/vm/dao/NicDao.java +++ b/engine/schema/src/com/cloud/vm/dao/NicDao.java @@ -74,6 +74,4 @@ public interface NicDao extends GenericDao<NicVO, Long> { List<NicVO> listByNetworkIdTypeAndGatewayAndBroadcastUri(long networkId, VirtualMachine.Type vmType, String gateway, URI broadcastUri); int countNicsForStartingVms(long networkId); - - int countNicsForRunningVms(long networkId); } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/106ec718/engine/schema/src/com/cloud/vm/dao/NicDaoImpl.java ---------------------------------------------------------------------- diff --git a/engine/schema/src/com/cloud/vm/dao/NicDaoImpl.java b/engine/schema/src/com/cloud/vm/dao/NicDaoImpl.java index ca44b63..2a9a602 100644 --- a/engine/schema/src/com/cloud/vm/dao/NicDaoImpl.java +++ b/engine/schema/src/com/cloud/vm/dao/NicDaoImpl.java @@ -46,7 +46,6 @@ public class NicDaoImpl extends GenericDaoBase<NicVO, Long> implements NicDao { private SearchBuilder<NicVO> NonReleasedSearch; private GenericSearchBuilder<NicVO, Integer> CountBy; private GenericSearchBuilder<NicVO, Integer> CountByForStartingVms; - private GenericSearchBuilder<NicVO, Integer> CountByForRunningVms; @Inject VMInstanceDao _vmDao; @@ -96,17 +95,6 @@ public class NicDaoImpl extends GenericDaoBase<NicVO, Long> implements NicDao { join1.and("state", join1.entity().getState(), Op.EQ); CountByForStartingVms.join("vm", join1, CountByForStartingVms.entity().getInstanceId(), join1.entity().getId(), JoinBuilder.JoinType.INNER); CountByForStartingVms.done(); - - CountByForRunningVms = createSearchBuilder(Integer.class); - CountByForRunningVms.select(null, Func.COUNT, CountByForRunningVms.entity().getId()); - CountByForRunningVms.and("networkId", CountByForRunningVms.entity().getNetworkId(), Op.EQ); - CountByForRunningVms.and("removed", CountByForRunningVms.entity().getRemoved(), Op.NULL); - SearchBuilder<VMInstanceVO> join2 = _vmDao.createSearchBuilder(); - join2.and("state", join2.entity().getState(), Op.EQ); - join2.and("type", join2.entity().getType(), Op.EQ); - CountByForRunningVms.join("vm", join2, CountByForRunningVms.entity().getInstanceId(), join2.entity().getId(), JoinBuilder.JoinType.INNER); - CountByForRunningVms.done(); - } @Override @@ -303,14 +291,4 @@ public class NicDaoImpl extends GenericDaoBase<NicVO, Long> implements NicDao { List<Integer> results = customSearch(sc, null); return results.get(0); } - - @Override - public int countNicsForRunningVms(long networkId) { - SearchCriteria<Integer> sc = CountByForRunningVms.create(); - sc.setParameters("networkId", networkId); - sc.setJoinParameters("vm", "state", VirtualMachine.State.Running); - sc.setJoinParameters("vm", "type", VirtualMachine.Type.User); - List<Integer> results = customSearch(sc, null); - return results.get(0); - } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/106ec718/server/src/com/cloud/network/NetworkModelImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/NetworkModelImpl.java b/server/src/com/cloud/network/NetworkModelImpl.java index 1fd354d..6088212 100644 --- a/server/src/com/cloud/network/NetworkModelImpl.java +++ b/server/src/com/cloud/network/NetworkModelImpl.java @@ -2232,13 +2232,6 @@ public class NetworkModelImpl extends ManagerBase implements NetworkModel { return false; } - // Due to VMSync issue, there can be cases where nic count is zero, but there can be VM's running in the network - // so add extra guard to check if network GC is actially required. - if (_nicDao.countNicsForRunningVms(networkId) > 0) { - s_logger.debug("Network id=" + networkId + " is not ready for GC as it has vms that are Running at the moment"); - return false; - } - return true; }