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;
     }
 

Reply via email to