You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by "JoaoJandre (via GitHub)" <gi...@apache.org> on 2023/03/21 20:06:18 UTC

[GitHub] [cloudstack] JoaoJandre commented on a diff in pull request #7274: Adding Count Resource Domain

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: commits-unsubscribe@cloudstack.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org