JoaoJandre commented on code in PR #7274:
URL: https://github.com/apache/cloudstack/pull/7274#discussion_r1143933907


##########
server/src/main/java/com/cloud/resourcelimit/ResourceLimitManagerImpl.java:
##########
@@ -979,19 +990,66 @@ public long countCpusForAccount(long accountId) {
         SearchCriteria<UserVmJoinVO> sc1 = userVmSearch.create();
         sc1.setParameters("accountId", accountId);
         if (VirtualMachineManager.ResourceCountRunningVMsonly.value())
-            sc1.setParameters("state", new Object[] {State.Destroyed, 
State.Error, State.Expunging, State.Stopped});
+            sc1.setParameters("state", State.Destroyed, State.Error, 
State.Expunging, State.Stopped);
         else
-            sc1.setParameters("state", new Object[] {State.Destroyed, 
State.Error, State.Expunging});
+            sc1.setParameters("state", State.Destroyed, State.Error, 
State.Expunging);
         sc1.setParameters("displayVm", 1);
         List<UserVmJoinVO> userVms = _userVmJoinDao.search(sc1,null);
         for (UserVmJoinVO vm : userVms) {
-            cputotal += Long.valueOf(vm.getCpu());
+            cputotal += vm.getCpu();
+        }
+        ServiceOffering defaultRouterOffering = null;
+        String globalRouterOffering = 
VirtualNetworkApplianceManager.VirtualRouterServiceOffering.value();
+        if (globalRouterOffering != null) {
+            defaultRouterOffering = 
serviceOfferingDao.findByUuid(globalRouterOffering);
+        }
+        if (defaultRouterOffering == null) {
+            defaultRouterOffering =  
serviceOfferingDao.findByName(ServiceOffering.routerDefaultOffUniqueName);
+        }
+
+        GenericSearchBuilder<ServiceOfferingVO, SumCount> cpuSearch = 
serviceOfferingDao.createSearchBuilder(SumCount.class);
+        cpuSearch.select("sum", Func.SUM, cpuSearch.entity().getCpu());
+        cpuSearch.select("count", Func.COUNT, (Object[])null);
+        SearchBuilder<VMInstanceVO> join1 = _vmDao.createSearchBuilder();
+        join1.and("accountId", join1.entity().getAccountId(), Op.EQ);
+        join1.and("type", join1.entity().getType(), Op.IN);
+        join1.and("state", join1.entity().getState(), SearchCriteria.Op.NIN);
+        join1.and("displayVm", join1.entity().isDisplayVm(), Op.EQ);
+        cpuSearch.join("offerings", join1, cpuSearch.entity().getId(), 
join1.entity().getServiceOfferingId(), JoinBuilder.JoinType.INNER);
+        cpuSearch.done();
+
+        SearchCriteria<SumCount> sc = cpuSearch.create();
+        sc.setJoinParameters("offerings", "accountId", accountId);
+        sc.setJoinParameters("offerings", "type", 
VirtualMachine.Type.DomainRouter); // domain routers
+
+        if 
(Boolean.TRUE.equals(VirtualMachineManager.ResourceCountRunningVMsonly.value()))
 {
+            sc.setJoinParameters("offerings", "state", State.Destroyed, 
State.Error, State.Expunging, State.Stopped);
+        } else {
+            sc.setJoinParameters("offerings", "state", State.Destroyed, 
State.Error, State.Expunging);
+        }
+        sc.setJoinParameters("offerings", "displayVm", 1);
+        List<SumCount> cpus = serviceOfferingDao.customSearch(sc, null);

Review Comment:
   Could you extract this to a method?



##########
server/src/main/java/com/cloud/network/router/NetworkHelperImpl.java:
##########
@@ -264,6 +264,10 @@ public VirtualRouter destroyRouter(final long routerId, 
final Account caller, fi
 
         _accountMgr.checkAccess(caller, null, true, router);
 
+        final Account owner = _accountMgr.getAccount(router.getAccountId());
+        ServiceOfferingVO routerOffering = 
_serviceOfferingDao.findById(router.getServiceOfferingId());
+        decrementVrResourceCount(owner, routerOffering);

Review Comment:
   If an exception is thrown in lines 271 through 273, will the decrement be 
rolled back? Isn't it safer to decrement after the destruction was actually 
made?



##########
server/src/main/java/com/cloud/resourcelimit/ResourceLimitManagerImpl.java:
##########
@@ -979,19 +990,66 @@ public long countCpusForAccount(long accountId) {
         SearchCriteria<UserVmJoinVO> sc1 = userVmSearch.create();
         sc1.setParameters("accountId", accountId);
         if (VirtualMachineManager.ResourceCountRunningVMsonly.value())
-            sc1.setParameters("state", new Object[] {State.Destroyed, 
State.Error, State.Expunging, State.Stopped});
+            sc1.setParameters("state", State.Destroyed, State.Error, 
State.Expunging, State.Stopped);
         else
-            sc1.setParameters("state", new Object[] {State.Destroyed, 
State.Error, State.Expunging});
+            sc1.setParameters("state", State.Destroyed, State.Error, 
State.Expunging);
         sc1.setParameters("displayVm", 1);
         List<UserVmJoinVO> userVms = _userVmJoinDao.search(sc1,null);
         for (UserVmJoinVO vm : userVms) {
-            cputotal += Long.valueOf(vm.getCpu());
+            cputotal += vm.getCpu();
+        }
+        ServiceOffering defaultRouterOffering = null;
+        String globalRouterOffering = 
VirtualNetworkApplianceManager.VirtualRouterServiceOffering.value();
+        if (globalRouterOffering != null) {
+            defaultRouterOffering = 
serviceOfferingDao.findByUuid(globalRouterOffering);
+        }
+        if (defaultRouterOffering == null) {
+            defaultRouterOffering =  
serviceOfferingDao.findByName(ServiceOffering.routerDefaultOffUniqueName);
+        }

Review Comment:
   This is duplicated code from `getServiceOfferingByConfig()`



##########
server/src/main/java/com/cloud/resourcelimit/ResourceLimitManagerImpl.java:
##########
@@ -1003,15 +1061,58 @@ public long calculateMemoryForAccount(long accountId) {
         SearchCriteria<UserVmJoinVO> sc1 = userVmSearch.create();
         sc1.setParameters("accountId", accountId);
         if (VirtualMachineManager.ResourceCountRunningVMsonly.value())
-            sc1.setParameters("state", new Object[] {State.Destroyed, 
State.Error, State.Expunging, State.Stopped});
+            sc1.setParameters("state", State.Destroyed, State.Error, 
State.Expunging, State.Stopped);
         else
-            sc1.setParameters("state", new Object[] {State.Destroyed, 
State.Error, State.Expunging});
+            sc1.setParameters("state", State.Destroyed, State.Error, 
State.Expunging);
         sc1.setParameters("displayVm", 1);
         List<UserVmJoinVO> userVms = _userVmJoinDao.search(sc1,null);
         for (UserVmJoinVO vm : userVms) {
-            ramtotal += Long.valueOf(vm.getRamSize());
+            ramtotal += vm.getRamSize();
+        }
+        ServiceOffering defaultRouterOffering = null;
+        String globalRouterOffering = 
VirtualNetworkApplianceManager.VirtualRouterServiceOffering.value();
+        if (globalRouterOffering != null) {
+            defaultRouterOffering = 
serviceOfferingDao.findByUuid(globalRouterOffering);
+        }
+        if (defaultRouterOffering == null) {
+            defaultRouterOffering =  
serviceOfferingDao.findByName(ServiceOffering.routerDefaultOffUniqueName);
+        }

Review Comment:
   This is duplicated code from `getServiceOfferingByConfig()`



##########
server/src/main/java/com/cloud/resourcelimit/ResourceLimitManagerImpl.java:
##########
@@ -1003,15 +1061,58 @@ public long calculateMemoryForAccount(long accountId) {
         SearchCriteria<UserVmJoinVO> sc1 = userVmSearch.create();
         sc1.setParameters("accountId", accountId);
         if (VirtualMachineManager.ResourceCountRunningVMsonly.value())
-            sc1.setParameters("state", new Object[] {State.Destroyed, 
State.Error, State.Expunging, State.Stopped});
+            sc1.setParameters("state", State.Destroyed, State.Error, 
State.Expunging, State.Stopped);
         else
-            sc1.setParameters("state", new Object[] {State.Destroyed, 
State.Error, State.Expunging});
+            sc1.setParameters("state", State.Destroyed, State.Error, 
State.Expunging);
         sc1.setParameters("displayVm", 1);
         List<UserVmJoinVO> userVms = _userVmJoinDao.search(sc1,null);
         for (UserVmJoinVO vm : userVms) {
-            ramtotal += Long.valueOf(vm.getRamSize());
+            ramtotal += vm.getRamSize();
+        }
+        ServiceOffering defaultRouterOffering = null;
+        String globalRouterOffering = 
VirtualNetworkApplianceManager.VirtualRouterServiceOffering.value();
+        if (globalRouterOffering != null) {
+            defaultRouterOffering = 
serviceOfferingDao.findByUuid(globalRouterOffering);
+        }
+        if (defaultRouterOffering == null) {
+            defaultRouterOffering =  
serviceOfferingDao.findByName(ServiceOffering.routerDefaultOffUniqueName);
+        }
+        GenericSearchBuilder<ServiceOfferingVO, SumCount> memorySearch = 
serviceOfferingDao.createSearchBuilder(SumCount.class);
+        memorySearch.select("sum", Func.SUM, 
memorySearch.entity().getRamSize());
+        memorySearch.select("count", Func.COUNT, (Object[])null);
+        SearchBuilder<VMInstanceVO> join1 = _vmDao.createSearchBuilder();
+        join1.and("accountId", join1.entity().getAccountId(), Op.EQ);
+        join1.and("type", join1.entity().getType(), Op.IN);
+        join1.and("state", join1.entity().getState(), SearchCriteria.Op.NIN);
+        join1.and("displayVm", join1.entity().isDisplayVm(), Op.EQ);
+        memorySearch.join("offerings", join1, memorySearch.entity().getId(), 
join1.entity().getServiceOfferingId(), JoinBuilder.JoinType.INNER);
+        memorySearch.done();
+
+        SearchCriteria<SumCount> sc = memorySearch.create();
+        sc.setJoinParameters("offerings", "accountId", accountId);
+        sc.setJoinParameters("offerings", "type", 
VirtualMachine.Type.DomainRouter); // domain routers
+        sc.setJoinParameters("offerings", "displayVm", 1);
+
+        if 
(Boolean.TRUE.equals(VirtualMachineManager.ResourceCountRunningVMsonly.value()))
 {
+            sc.setJoinParameters("offerings", "state", State.Destroyed, 
State.Error, State.Expunging, State.Stopped);
+        } else {
+            sc.setJoinParameters("offerings", "state", State.Destroyed, 
State.Error, State.Expunging);
+        }
+        sc.setJoinParameters("offerings", "displayVm", 1);
+        List<SumCount> memory = serviceOfferingDao.customSearch(sc, null);

Review Comment:
   Could you extract this to another method? 



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to