From 12bc26ae1c58ff5a51937026c5be8d7cfa8bf141 Mon Sep 17 00:00:00 2001 From: davidjumani Date: Mon, 28 Feb 2022 12:37:49 +0530 Subject: [PATCH 1/5] Honour isrecursive above listall --- .../com/cloud/network/rules/RulesService.java | 2 +- .../api/BaseListDomainResourcesCmd.java | 5 +++ .../api/IBaseListDomainResourcesCmd.java | 2 ++ .../user/nat/ListIpForwardingRulesCmd.java | 2 +- .../api/command/user/vpc/ListVPCsCmd.java | 2 +- .../cluster/KubernetesClusterManagerImpl.java | 2 +- .../com/cloud/api/query/QueryManagerImpl.java | 33 ++++++++++--------- .../com/cloud/network/NetworkServiceImpl.java | 6 ++-- .../network/as/AutoScaleManagerImpl.java | 4 +-- .../network/firewall/FirewallManagerImpl.java | 2 +- .../lb/LoadBalancingRulesManagerImpl.java | 2 +- .../cloud/network/rules/RulesManagerImpl.java | 4 +-- .../network/vpc/NetworkACLServiceImpl.java | 4 +-- .../com/cloud/network/vpc/VpcManagerImpl.java | 4 +-- .../vpn/RemoteAccessVpnManagerImpl.java | 4 +-- .../network/vpn/Site2SiteVpnManagerImpl.java | 6 ++-- .../cloud/server/ManagementServerImpl.java | 4 +-- .../storage/snapshot/SnapshotManagerImpl.java | 2 +- .../com/cloud/user/AccountManagerImpl.java | 10 ++++-- .../vm/snapshot/VMSnapshotManagerImpl.java | 2 +- .../cloudstack/backup/BackupManagerImpl.java | 2 +- .../ApplicationLoadBalancerManagerImpl.java | 2 +- 22 files changed, 60 insertions(+), 46 deletions(-) diff --git a/api/src/main/java/com/cloud/network/rules/RulesService.java b/api/src/main/java/com/cloud/network/rules/RulesService.java index 0b4afeef9458..bfcbfef9cd61 100644 --- a/api/src/main/java/com/cloud/network/rules/RulesService.java +++ b/api/src/main/java/com/cloud/network/rules/RulesService.java @@ -29,7 +29,7 @@ public interface RulesService { Pair, Integer> searchStaticNatRules(Long ipId, Long id, Long vmId, Long start, Long size, String accountName, Long domainId, - Long projectId, boolean isRecursive, boolean listAll); + Long projectId, Boolean isRecursive, boolean listAll); /** * Creates a port forwarding rule between two ip addresses or between diff --git a/api/src/main/java/org/apache/cloudstack/api/BaseListDomainResourcesCmd.java b/api/src/main/java/org/apache/cloudstack/api/BaseListDomainResourcesCmd.java index 7a8cee337705..353add8946a8 100644 --- a/api/src/main/java/org/apache/cloudstack/api/BaseListDomainResourcesCmd.java +++ b/api/src/main/java/org/apache/cloudstack/api/BaseListDomainResourcesCmd.java @@ -44,6 +44,11 @@ public boolean isRecursive() { return recursive == null ? false : recursive; } + @Override + public Boolean isRecursiveWithNull() { + return recursive; + } + @Override public Long getDomainId() { return domainId; diff --git a/api/src/main/java/org/apache/cloudstack/api/IBaseListDomainResourcesCmd.java b/api/src/main/java/org/apache/cloudstack/api/IBaseListDomainResourcesCmd.java index 6ce6091ad263..478c19783483 100644 --- a/api/src/main/java/org/apache/cloudstack/api/IBaseListDomainResourcesCmd.java +++ b/api/src/main/java/org/apache/cloudstack/api/IBaseListDomainResourcesCmd.java @@ -22,5 +22,7 @@ public interface IBaseListDomainResourcesCmd extends IBaseListCmd { boolean isRecursive(); + Boolean isRecursiveWithNull(); + Long getDomainId(); } diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/nat/ListIpForwardingRulesCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/nat/ListIpForwardingRulesCmd.java index bc157fc9e1f3..bf63e1a7328a 100644 --- a/api/src/main/java/org/apache/cloudstack/api/command/user/nat/ListIpForwardingRulesCmd.java +++ b/api/src/main/java/org/apache/cloudstack/api/command/user/nat/ListIpForwardingRulesCmd.java @@ -89,7 +89,7 @@ public Long getVmId() { public void execute() { Pair, Integer> result = _rulesService.searchStaticNatRules(publicIpAddressId, id, vmId, this.getStartIndex(), this.getPageSizeVal(), this.getAccountName(), this.getDomainId(), - this.getProjectId(), this.isRecursive(), this.listAll()); + this.getProjectId(), this.isRecursiveWithNull(), this.listAll()); ListResponse response = new ListResponse(); List ipForwardingResponses = new ArrayList(); for (FirewallRule rule : result.first()) { diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/ListVPCsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/ListVPCsCmd.java index b230603f852f..9ee66a78ba8b 100644 --- a/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/ListVPCsCmd.java +++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/ListVPCsCmd.java @@ -143,7 +143,7 @@ public Boolean getShowIcon() { public void execute() { Pair, Integer> vpcs = _vpcService.listVpcs(getId(), getVpcName(), getDisplayText(), getSupportedServices(), getCidr(), getVpcOffId(), getState(), getAccountName(), getDomainId(), - getKeyword(), getStartIndex(), getPageSizeVal(), getZoneId(), isRecursive(), listAll(), getRestartRequired(), getTags(), + getKeyword(), getStartIndex(), getPageSizeVal(), getZoneId(), isRecursiveWithNull(), listAll(), getRestartRequired(), getTags(), getProjectId(), getDisplay()); ListResponse response = new ListResponse(); List vpcResponses = new ArrayList(); diff --git a/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImpl.java b/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImpl.java index 7b4db719b1e8..db19289e94fd 100644 --- a/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImpl.java +++ b/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImpl.java @@ -1197,7 +1197,7 @@ public ListResponse listKubernetesClusters(ListKubern final String keyword = cmd.getKeyword(); List responsesList = new ArrayList(); List permittedAccounts = new ArrayList(); - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); + Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursiveWithNull(), null); accountManager.buildACLSearchParameters(caller, clusterId, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); Boolean isRecursive = domainIdRecursiveListProject.second(); diff --git a/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java b/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java index 75ad4b07c289..87f2379d7924 100644 --- a/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java +++ b/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java @@ -567,7 +567,7 @@ private Pair, Integer> searchForUsersInternal(ListUsersC Object keyword = cmd.getKeyword(); Long domainId = cmd.getDomainId(); - boolean recursive = cmd.isRecursive(); + Boolean recursive = cmd.isRecursiveWithNull(); Long pageSizeVal = cmd.getPageSizeVal(); Long startIndex = cmd.getStartIndex(); @@ -577,7 +577,7 @@ private Pair, Integer> searchForUsersInternal(ListUsersC } private Pair, Integer> getUserListInternal(Account caller, List permittedAccounts, boolean listAll, Long id, Object username, Object type, - String accountName, Object state, Object keyword, Long domainId, boolean recursive, Filter searchFilter) { + String accountName, Object state, Object keyword, Long domainId, Boolean recursive, Filter searchFilter) { Ternary domainIdRecursiveListProject = new Ternary(domainId, recursive, null); _accountMgr.buildACLSearchParameters(caller, id, accountName, null, permittedAccounts, domainIdRecursiveListProject, listAll, false); domainId = domainIdRecursiveListProject.first(); @@ -681,7 +681,7 @@ private Pair, Integer> searchForEventsInternal(ListEventsCmd c Integer duration = cmd.getDuration(); Long startId = cmd.getStartId(); - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); + Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursiveWithNull(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); Boolean isRecursive = domainIdRecursiveListProject.second(); @@ -812,7 +812,7 @@ private Pair, Integer> listTagsInternal(ListTagsCmd cmd) } } - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); + Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursiveWithNull(), null); _accountMgr.buildACLSearchParameters(caller, null, cmd.getAccountName(), projectId, permittedAccounts, domainIdRecursiveListProject, listAll, false); Long domainId = domainIdRecursiveListProject.first(); @@ -885,7 +885,7 @@ private Pair, Integer> searchForVmGroupsInternal(ListV Account caller = CallContext.current().getCallingAccount(); List permittedAccounts = new ArrayList(); - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); + Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursiveWithNull(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); Boolean isRecursive = domainIdRecursiveListProject.second(); @@ -943,7 +943,7 @@ private Pair, Integer> searchForUserVMsInternal(ListVMsCmd cm Long userId = cmd.getUserId(); Map tags = cmd.getTags(); Boolean display = cmd.getDisplay(); - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); + Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursiveWithNull(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, listAll, false); Long domainId = domainIdRecursiveListProject.first(); Boolean isRecursive = domainIdRecursiveListProject.second(); @@ -1268,7 +1268,7 @@ private Pair, Integer> searchForSecurityGroupsInternal return listSecurityGroupRulesByVM(instanceId.longValue(), cmd.getStartIndex(), cmd.getPageSizeVal()); } - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); + Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursiveWithNull(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); Boolean isRecursive = domainIdRecursiveListProject.second(); @@ -1395,7 +1395,7 @@ private Pair, Integer> searchForRoutersInternal(BaseLis Account caller = CallContext.current().getCallingAccount(); List permittedAccounts = new ArrayList(); - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); + Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursiveWithNull(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); Boolean isRecursive = domainIdRecursiveListProject.second(); @@ -1728,7 +1728,7 @@ public Pair, Integer> listProjectInvitationsIntern Long startIndex = cmd.getStartIndex(); Long pageSizeVal = cmd.getPageSizeVal(); Long userId = cmd.getUserId(); - boolean isRecursive = cmd.isRecursive(); + Boolean isRecursive = cmd.isRecursiveWithNull(); boolean listAll = cmd.listAll(); Account caller = CallContext.current().getCallingAccount(); @@ -2050,7 +2050,7 @@ private Pair, Integer> searchForVolumesInternal(ListVolumesCm List ids = getIdsListFromCmd(cmd.getId(), cmd.getIds()); - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); + Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursiveWithNull(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); Boolean isRecursive = domainIdRecursiveListProject.second(); @@ -2296,7 +2296,7 @@ private Pair, Integer> searchForAccountsInternal(ListAccount Long domainId = cmd.getDomainId(); Long accountId = cmd.getId(); String accountName = cmd.getSearchName(); - boolean isRecursive = cmd.isRecursive(); + Boolean isRecursive = cmd.isRecursiveWithNull(); boolean listAll = cmd.listAll(); boolean callerIsAdmin = _accountMgr.isAdmin(caller.getId()); Account account; @@ -2323,7 +2323,7 @@ private Pair, Integer> searchForAccountsInternal(ListAccount domainId = caller.getDomainId(); } // mark recursive - isRecursive = true; + isRecursive = isRecursive == null ? true : isRecursive; } else if (!callerIsAdmin || domainId == null) { accountId = caller.getAccountId(); } @@ -2365,6 +2365,7 @@ private Pair, Integer> searchForAccountsInternal(ListAccount sb.and("idNEQ", sb.entity().getId(), SearchCriteria.Op.NEQ); sb.and("type2NEQ", sb.entity().getType(), SearchCriteria.Op.NEQ); + isRecursive = isRecursive == null ? false : isRecursive; if (domainId != null && isRecursive) { sb.and("path", sb.entity().getDomainPath(), SearchCriteria.Op.LIKE); } @@ -2439,7 +2440,7 @@ private Pair, Integer> searchForAsyncJobsInternal(ListAsync List permittedAccounts = new ArrayList(); - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); + Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursiveWithNull(), null); _accountMgr.buildACLSearchParameters(caller, null, cmd.getAccountName(), null, permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); Boolean isRecursive = domainIdRecursiveListProject.second(); @@ -3565,7 +3566,7 @@ private Pair, Integer> searchForTemplatesInternal(ListTempl } List permittedAccountIds = new ArrayList(); - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); + Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursiveWithNull(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccountIds, domainIdRecursiveListProject, listAll, false); ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); List permittedAccounts = new ArrayList(); @@ -3907,7 +3908,7 @@ private Pair, Integer> searchForIsosInternal(ListIsosCmd cm } List permittedAccountIds = new ArrayList(); - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); + Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursiveWithNull(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccountIds, domainIdRecursiveListProject, listAll, false); ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); List permittedAccounts = new ArrayList(); @@ -4006,7 +4007,7 @@ public Pair, Integer> searchForAffinityGroupsInternal( final String accountName = cmd.getAccountName(); Long domainId = cmd.getDomainId(); final Long projectId = cmd.getProjectId(); - Boolean isRecursive = cmd.isRecursive(); + Boolean isRecursive = cmd.isRecursiveWithNull(); final Boolean listAll = cmd.listAll(); final Long startIndex = cmd.getStartIndex(); final Long pageSize = cmd.getPageSizeVal(); diff --git a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java index ce2aaf4830d6..d10d4bc845aa 100644 --- a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java +++ b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java @@ -1613,7 +1613,7 @@ public Pair, Integer> searchForNetworks(ListNetworksCmd List supportedServicesStr = cmd.getSupportedServices(); Boolean restartRequired = cmd.isRestartRequired(); boolean listAll = cmd.listAll(); - boolean isRecursive = cmd.isRecursive(); + Boolean isRecursive = cmd.isRecursiveWithNull(); Boolean specifyIpRanges = cmd.isSpecifyIpRanges(); Long vpcId = cmd.getVpcId(); Boolean canUseForDeploy = cmd.canUseForDeploy(); @@ -1693,7 +1693,9 @@ public Pair, Integer> searchForNetworks(ListNetworksCmd } if (listAll && domainId == null) { - isRecursive = true; + isRecursive = isRecursive == null ? true : isRecursive; + } else { + isRecursive = isRecursive == null ? false : isRecursive; } Filter searchFilter = new Filter(NetworkVO.class, "id", false, null, null); diff --git a/server/src/main/java/com/cloud/network/as/AutoScaleManagerImpl.java b/server/src/main/java/com/cloud/network/as/AutoScaleManagerImpl.java index ec46b8c147f5..db22e4d4841a 100644 --- a/server/src/main/java/com/cloud/network/as/AutoScaleManagerImpl.java +++ b/server/src/main/java/com/cloud/network/as/AutoScaleManagerImpl.java @@ -628,7 +628,7 @@ private class SearchWrapper { SearchBuilder searchBuilder; SearchCriteria searchCriteria; Long domainId; - boolean isRecursive; + Boolean isRecursive; List permittedAccounts = new ArrayList(); ListProjectResourcesCriteria listProjectResourcesCriteria; Filter searchFilter; @@ -639,7 +639,7 @@ public SearchWrapper(GenericDao dao, Class entityClass, BaseListAc this.searchBuilder = dao.createSearchBuilder(); domainId = cmd.getDomainId(); String accountName = cmd.getAccountName(); - isRecursive = cmd.isRecursive(); + isRecursive = cmd.isRecursiveWithNull(); boolean listAll = cmd.listAll(); long startIndex = cmd.getStartIndex(); long pageSizeVal = cmd.getPageSizeVal(); diff --git a/server/src/main/java/com/cloud/network/firewall/FirewallManagerImpl.java b/server/src/main/java/com/cloud/network/firewall/FirewallManagerImpl.java index 56814daeef25..566f2113d8b2 100644 --- a/server/src/main/java/com/cloud/network/firewall/FirewallManagerImpl.java +++ b/server/src/main/java/com/cloud/network/firewall/FirewallManagerImpl.java @@ -282,7 +282,7 @@ public Pair, Integer> listFirewallRules(IListFirewa _accountMgr.checkAccess(caller, null, true, ipAddressVO); } - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); + Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursiveWithNull(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); Boolean isRecursive = domainIdRecursiveListProject.second(); diff --git a/server/src/main/java/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java b/server/src/main/java/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java index 09b68082043e..b2b1dd71a7b2 100644 --- a/server/src/main/java/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java +++ b/server/src/main/java/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java @@ -2326,7 +2326,7 @@ public Pair, Integer> searchForLoadBalancers(ListLo List permittedAccounts = new ArrayList(); Ternary domainIdRecursiveListProject = new Ternary( - cmd.getDomainId(), cmd.isRecursive(), null); + cmd.getDomainId(), cmd.isRecursiveWithNull(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); diff --git a/server/src/main/java/com/cloud/network/rules/RulesManagerImpl.java b/server/src/main/java/com/cloud/network/rules/RulesManagerImpl.java index b18fe10a0411..44c996a9d975 100644 --- a/server/src/main/java/com/cloud/network/rules/RulesManagerImpl.java +++ b/server/src/main/java/com/cloud/network/rules/RulesManagerImpl.java @@ -835,7 +835,7 @@ public Pair, Integer> listPortForwardingRules _accountMgr.checkAccess(caller, null, true, ipAddressVO); } - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); + Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursiveWithNull(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); Boolean isRecursive = domainIdRecursiveListProject.second(); @@ -1039,7 +1039,7 @@ public boolean applyStaticNatsForNetwork(long networkId, boolean continueOnError @Override public Pair, Integer> searchStaticNatRules(Long ipId, Long id, Long vmId, Long start, Long size, String accountName, Long domainId, - Long projectId, boolean isRecursive, boolean listAll) { + Long projectId, Boolean isRecursive, boolean listAll) { Account caller = CallContext.current().getCallingAccount(); List permittedAccounts = new ArrayList(); diff --git a/server/src/main/java/com/cloud/network/vpc/NetworkACLServiceImpl.java b/server/src/main/java/com/cloud/network/vpc/NetworkACLServiceImpl.java index 53e113f95096..ab513c641bea 100644 --- a/server/src/main/java/com/cloud/network/vpc/NetworkACLServiceImpl.java +++ b/server/src/main/java/com/cloud/network/vpc/NetworkACLServiceImpl.java @@ -177,7 +177,7 @@ public Pair, Integer> listNetworkACLs(final ListNetwo // and list ACLs belonging to the permitted VPCs final List permittedAccounts = new ArrayList(); Long domainId = cmd.getDomainId(); - boolean isRecursive = cmd.isRecursive(); + Boolean isRecursive = cmd.isRecursiveWithNull(); final String accountName = cmd.getAccountName(); final Long projectId = cmd.getProjectId(); final boolean listAll = cmd.listAll(); @@ -737,7 +737,7 @@ public Pair, Integer> listNetworkACLItems(final L // List permitted VPCs and filter aclItems final List permittedAccounts = new ArrayList(); Long domainId = cmd.getDomainId(); - boolean isRecursive = cmd.isRecursive(); + Boolean isRecursive = cmd.isRecursiveWithNull(); final String accountName = cmd.getAccountName(); final Long projectId = cmd.getProjectId(); final boolean listAll = cmd.listAll(); diff --git a/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java b/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java index 5752da2bf917..c7ff760e195e 100644 --- a/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java +++ b/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java @@ -2096,7 +2096,7 @@ public Pair, Integer> listPrivateGateway(final ListPrivateG final String vlan = cmd.getVlan(); final Long vpcId = cmd.getVpcId(); final Long id = cmd.getId(); - Boolean isRecursive = cmd.isRecursive(); + Boolean isRecursive = cmd.isRecursiveWithNull(); final Boolean listAll = cmd.listAll(); Long domainId = cmd.getDomainId(); final String accountName = cmd.getAccountName(); @@ -2346,7 +2346,7 @@ public Pair, Integer> listStaticRoutes(final ListSta final Long gatewayId = cmd.getGatewayId(); final Long vpcId = cmd.getVpcId(); Long domainId = cmd.getDomainId(); - Boolean isRecursive = cmd.isRecursive(); + Boolean isRecursive = cmd.isRecursiveWithNull(); final Boolean listAll = cmd.listAll(); final String accountName = cmd.getAccountName(); final Account caller = CallContext.current().getCallingAccount(); diff --git a/server/src/main/java/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java b/server/src/main/java/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java index 61d247d7b8a5..1d854a2f5a86 100644 --- a/server/src/main/java/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java +++ b/server/src/main/java/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java @@ -645,7 +645,7 @@ public Pair, Integer> searchForVpnUsers(ListVpnUsersCmd Account caller = CallContext.current().getCallingAccount(); List permittedAccounts = new ArrayList<>(); - Ternary domainIdRecursiveListProject = new Ternary<>(cmd.getDomainId(), cmd.isRecursive(), null); + Ternary domainIdRecursiveListProject = new Ternary<>(cmd.getDomainId(), cmd.isRecursiveWithNull(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); Boolean isRecursive = domainIdRecursiveListProject.second(); @@ -703,7 +703,7 @@ public Pair, Integer> searchForRemoteAccessVpns( _accountMgr.checkAccess(caller, null, true, publicIp); } - Ternary domainIdRecursiveListProject = new Ternary<>(cmd.getDomainId(), cmd.isRecursive(), null); + Ternary domainIdRecursiveListProject = new Ternary<>(cmd.getDomainId(), cmd.isRecursiveWithNull(), null); _accountMgr.buildACLSearchParameters(caller, null, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); Boolean isRecursive = domainIdRecursiveListProject.second(); diff --git a/server/src/main/java/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java b/server/src/main/java/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java index 8b20072cf374..f8b191a120a7 100644 --- a/server/src/main/java/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java +++ b/server/src/main/java/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java @@ -625,7 +625,7 @@ public Site2SiteVpnConnection resetVpnConnection(ResetVpnConnectionCmd cmd) thro public Pair, Integer> searchForCustomerGateways(ListVpnCustomerGatewaysCmd cmd) { Long id = cmd.getId(); Long domainId = cmd.getDomainId(); - boolean isRecursive = cmd.isRecursive(); + Boolean isRecursive = cmd.isRecursiveWithNull(); String accountName = cmd.getAccountName(); boolean listAll = cmd.listAll(); long startIndex = cmd.getStartIndex(); @@ -671,7 +671,7 @@ public Pair, Integer> searchForVpnGateways(L Boolean display = cmd.getDisplay(); Long domainId = cmd.getDomainId(); - boolean isRecursive = cmd.isRecursive(); + Boolean isRecursive = cmd.isRecursiveWithNull(); String accountName = cmd.getAccountName(); boolean listAll = cmd.listAll(); long startIndex = cmd.getStartIndex(); @@ -721,7 +721,7 @@ public Pair, Integer> searchForVpnConnect Boolean display = cmd.getDisplay(); Long domainId = cmd.getDomainId(); - boolean isRecursive = cmd.isRecursive(); + Boolean isRecursive = cmd.isRecursiveWithNull(); String accountName = cmd.getAccountName(); boolean listAll = cmd.listAll(); long startIndex = cmd.getStartIndex(); diff --git a/server/src/main/java/com/cloud/server/ManagementServerImpl.java b/server/src/main/java/com/cloud/server/ManagementServerImpl.java index 8a68bb4b3856..d66630707512 100644 --- a/server/src/main/java/com/cloud/server/ManagementServerImpl.java +++ b/server/src/main/java/com/cloud/server/ManagementServerImpl.java @@ -2230,7 +2230,7 @@ public Pair, Integer> searchForIPAddresses(final ListP final List permittedAccounts = new ArrayList<>(); ListProjectResourcesCriteria listProjectResourcesCriteria = null; if (isAllocated || (vlanType == VlanType.VirtualNetwork && (caller.getType() != Account.ACCOUNT_TYPE_ADMIN || cmd.getDomainId() != null))) { - final Ternary domainIdRecursiveListProject = new Ternary<>(cmd.getDomainId(), cmd.isRecursive(), + final Ternary domainIdRecursiveListProject = new Ternary<>(cmd.getDomainId(), cmd.isRecursiveWithNull(), null); _accountMgr.buildACLSearchParameters(caller, cmd.getId(), cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); domainId = domainIdRecursiveListProject.first(); @@ -4212,7 +4212,7 @@ public Pair, Integer> listSSHKeyPairs(final ListSSHKe final Account caller = getCaller(); final List permittedAccounts = new ArrayList(); - final Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); + final Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursiveWithNull(), null); _accountMgr.buildACLSearchParameters(caller, null, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); final Long domainId = domainIdRecursiveListProject.first(); final Boolean isRecursive = domainIdRecursiveListProject.second(); diff --git a/server/src/main/java/com/cloud/storage/snapshot/SnapshotManagerImpl.java b/server/src/main/java/com/cloud/storage/snapshot/SnapshotManagerImpl.java index c96f65178641..efa9180a6ba6 100755 --- a/server/src/main/java/com/cloud/storage/snapshot/SnapshotManagerImpl.java +++ b/server/src/main/java/com/cloud/storage/snapshot/SnapshotManagerImpl.java @@ -658,7 +658,7 @@ public Pair, Integer> listSnapshots(ListSnapshotsCmd cm List ids = getIdsListFromCmd(cmd.getId(), cmd.getIds()); Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), - cmd.isRecursive(), null); + cmd.isRecursiveWithNull(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); Boolean isRecursive = domainIdRecursiveListProject.second(); diff --git a/server/src/main/java/com/cloud/user/AccountManagerImpl.java b/server/src/main/java/com/cloud/user/AccountManagerImpl.java index bd51cd419e54..f4d9bd678f71 100644 --- a/server/src/main/java/com/cloud/user/AccountManagerImpl.java +++ b/server/src/main/java/com/cloud/user/AccountManagerImpl.java @@ -2778,6 +2778,7 @@ public void buildACLSearchCriteria(SearchCriteria sc public void buildACLSearchParameters(Account caller, Long id, String accountName, Long projectId, List permittedAccounts, Ternary domainIdRecursiveListProject, boolean listAll, boolean forProjectInvitation) { Long domainId = domainIdRecursiveListProject.first(); + Boolean recursive = domainIdRecursiveListProject.second(); if (domainId != null) { Domain domain = _domainDao.findById(domainId); if (domain == null) { @@ -2850,12 +2851,14 @@ public void buildACLSearchParameters(Account caller, Long id, String accountName permittedAccounts.add(caller.getId()); } else if (caller.getType() != Account.ACCOUNT_TYPE_ADMIN) { domainIdRecursiveListProject.first(caller.getDomainId()); - domainIdRecursiveListProject.second(true); + recursive = recursive == null ? true : recursive; + domainIdRecursiveListProject.second(recursive); } } else if (domainId == null) { if (caller.getType() == Account.ACCOUNT_TYPE_DOMAIN_ADMIN) { domainIdRecursiveListProject.first(caller.getDomainId()); - domainIdRecursiveListProject.second(true); + recursive = recursive == null ? true : recursive; + domainIdRecursiveListProject.second(recursive); } } } else if (domainId != null) { @@ -2865,7 +2868,8 @@ public void buildACLSearchParameters(Account caller, Long id, String accountName } } - + recursive = recursive == null ? false : recursive; + domainIdRecursiveListProject.second(recursive); } @Override diff --git a/server/src/main/java/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java b/server/src/main/java/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java index bd66fe89ec65..0951dd5cb60d 100644 --- a/server/src/main/java/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java +++ b/server/src/main/java/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java @@ -228,7 +228,7 @@ public Pair, Integer> listVMSnapshots(ListVMSnapshotC List ids = getIdsListFromCmd(cmd.getId(), cmd.getIds()); Ternary domainIdRecursiveListProject = new Ternary( - cmd.getDomainId(), cmd.isRecursive(), null); + cmd.getDomainId(), cmd.isRecursiveWithNull(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, listAll, false); Long domainId = domainIdRecursiveListProject.first(); diff --git a/server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java b/server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java index e52ab6c94cb7..425a55bd55bc 100644 --- a/server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java +++ b/server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java @@ -501,7 +501,7 @@ public Pair, Integer> listBackups(final ListBackupsCmd cmd) { } final Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), - cmd.isRecursive(), null); + cmd.isRecursiveWithNull(), null); accountManager.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); final Long domainId = domainIdRecursiveListProject.first(); final Boolean isRecursive = domainIdRecursiveListProject.second(); diff --git a/server/src/main/java/org/apache/cloudstack/network/lb/ApplicationLoadBalancerManagerImpl.java b/server/src/main/java/org/apache/cloudstack/network/lb/ApplicationLoadBalancerManagerImpl.java index 1c9af7a334d5..30ad205db34a 100644 --- a/server/src/main/java/org/apache/cloudstack/network/lb/ApplicationLoadBalancerManagerImpl.java +++ b/server/src/main/java/org/apache/cloudstack/network/lb/ApplicationLoadBalancerManagerImpl.java @@ -390,7 +390,7 @@ public Pair, Integer> listApplicatio List permittedAccounts = new ArrayList(); Ternary domainIdRecursiveListProject = new Ternary( - cmd.getDomainId(), cmd.isRecursive(), null); + cmd.getDomainId(), cmd.isRecursiveWithNull(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); From bbd221b039ce5946f9a6399d69b25056c8fa81e4 Mon Sep 17 00:00:00 2001 From: davidjumani Date: Mon, 28 Feb 2022 14:08:14 +0530 Subject: [PATCH 2/5] Revert "Honour isrecursive above listall" This reverts commit 12bc26ae1c58ff5a51937026c5be8d7cfa8bf141. --- .../com/cloud/network/rules/RulesService.java | 2 +- .../api/BaseListDomainResourcesCmd.java | 5 --- .../api/IBaseListDomainResourcesCmd.java | 2 -- .../user/nat/ListIpForwardingRulesCmd.java | 2 +- .../api/command/user/vpc/ListVPCsCmd.java | 2 +- .../cluster/KubernetesClusterManagerImpl.java | 2 +- .../com/cloud/api/query/QueryManagerImpl.java | 33 +++++++++---------- .../com/cloud/network/NetworkServiceImpl.java | 6 ++-- .../network/as/AutoScaleManagerImpl.java | 4 +-- .../network/firewall/FirewallManagerImpl.java | 2 +- .../lb/LoadBalancingRulesManagerImpl.java | 2 +- .../cloud/network/rules/RulesManagerImpl.java | 4 +-- .../network/vpc/NetworkACLServiceImpl.java | 4 +-- .../com/cloud/network/vpc/VpcManagerImpl.java | 4 +-- .../vpn/RemoteAccessVpnManagerImpl.java | 4 +-- .../network/vpn/Site2SiteVpnManagerImpl.java | 6 ++-- .../cloud/server/ManagementServerImpl.java | 4 +-- .../storage/snapshot/SnapshotManagerImpl.java | 2 +- .../com/cloud/user/AccountManagerImpl.java | 10 ++---- .../vm/snapshot/VMSnapshotManagerImpl.java | 2 +- .../cloudstack/backup/BackupManagerImpl.java | 2 +- .../ApplicationLoadBalancerManagerImpl.java | 2 +- 22 files changed, 46 insertions(+), 60 deletions(-) diff --git a/api/src/main/java/com/cloud/network/rules/RulesService.java b/api/src/main/java/com/cloud/network/rules/RulesService.java index bfcbfef9cd61..0b4afeef9458 100644 --- a/api/src/main/java/com/cloud/network/rules/RulesService.java +++ b/api/src/main/java/com/cloud/network/rules/RulesService.java @@ -29,7 +29,7 @@ public interface RulesService { Pair, Integer> searchStaticNatRules(Long ipId, Long id, Long vmId, Long start, Long size, String accountName, Long domainId, - Long projectId, Boolean isRecursive, boolean listAll); + Long projectId, boolean isRecursive, boolean listAll); /** * Creates a port forwarding rule between two ip addresses or between diff --git a/api/src/main/java/org/apache/cloudstack/api/BaseListDomainResourcesCmd.java b/api/src/main/java/org/apache/cloudstack/api/BaseListDomainResourcesCmd.java index 353add8946a8..7a8cee337705 100644 --- a/api/src/main/java/org/apache/cloudstack/api/BaseListDomainResourcesCmd.java +++ b/api/src/main/java/org/apache/cloudstack/api/BaseListDomainResourcesCmd.java @@ -44,11 +44,6 @@ public boolean isRecursive() { return recursive == null ? false : recursive; } - @Override - public Boolean isRecursiveWithNull() { - return recursive; - } - @Override public Long getDomainId() { return domainId; diff --git a/api/src/main/java/org/apache/cloudstack/api/IBaseListDomainResourcesCmd.java b/api/src/main/java/org/apache/cloudstack/api/IBaseListDomainResourcesCmd.java index 478c19783483..6ce6091ad263 100644 --- a/api/src/main/java/org/apache/cloudstack/api/IBaseListDomainResourcesCmd.java +++ b/api/src/main/java/org/apache/cloudstack/api/IBaseListDomainResourcesCmd.java @@ -22,7 +22,5 @@ public interface IBaseListDomainResourcesCmd extends IBaseListCmd { boolean isRecursive(); - Boolean isRecursiveWithNull(); - Long getDomainId(); } diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/nat/ListIpForwardingRulesCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/nat/ListIpForwardingRulesCmd.java index bf63e1a7328a..bc157fc9e1f3 100644 --- a/api/src/main/java/org/apache/cloudstack/api/command/user/nat/ListIpForwardingRulesCmd.java +++ b/api/src/main/java/org/apache/cloudstack/api/command/user/nat/ListIpForwardingRulesCmd.java @@ -89,7 +89,7 @@ public Long getVmId() { public void execute() { Pair, Integer> result = _rulesService.searchStaticNatRules(publicIpAddressId, id, vmId, this.getStartIndex(), this.getPageSizeVal(), this.getAccountName(), this.getDomainId(), - this.getProjectId(), this.isRecursiveWithNull(), this.listAll()); + this.getProjectId(), this.isRecursive(), this.listAll()); ListResponse response = new ListResponse(); List ipForwardingResponses = new ArrayList(); for (FirewallRule rule : result.first()) { diff --git a/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/ListVPCsCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/ListVPCsCmd.java index 9ee66a78ba8b..b230603f852f 100644 --- a/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/ListVPCsCmd.java +++ b/api/src/main/java/org/apache/cloudstack/api/command/user/vpc/ListVPCsCmd.java @@ -143,7 +143,7 @@ public Boolean getShowIcon() { public void execute() { Pair, Integer> vpcs = _vpcService.listVpcs(getId(), getVpcName(), getDisplayText(), getSupportedServices(), getCidr(), getVpcOffId(), getState(), getAccountName(), getDomainId(), - getKeyword(), getStartIndex(), getPageSizeVal(), getZoneId(), isRecursiveWithNull(), listAll(), getRestartRequired(), getTags(), + getKeyword(), getStartIndex(), getPageSizeVal(), getZoneId(), isRecursive(), listAll(), getRestartRequired(), getTags(), getProjectId(), getDisplay()); ListResponse response = new ListResponse(); List vpcResponses = new ArrayList(); diff --git a/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImpl.java b/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImpl.java index db19289e94fd..7b4db719b1e8 100644 --- a/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImpl.java +++ b/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImpl.java @@ -1197,7 +1197,7 @@ public ListResponse listKubernetesClusters(ListKubern final String keyword = cmd.getKeyword(); List responsesList = new ArrayList(); List permittedAccounts = new ArrayList(); - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursiveWithNull(), null); + Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); accountManager.buildACLSearchParameters(caller, clusterId, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); Boolean isRecursive = domainIdRecursiveListProject.second(); diff --git a/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java b/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java index 87f2379d7924..75ad4b07c289 100644 --- a/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java +++ b/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java @@ -567,7 +567,7 @@ private Pair, Integer> searchForUsersInternal(ListUsersC Object keyword = cmd.getKeyword(); Long domainId = cmd.getDomainId(); - Boolean recursive = cmd.isRecursiveWithNull(); + boolean recursive = cmd.isRecursive(); Long pageSizeVal = cmd.getPageSizeVal(); Long startIndex = cmd.getStartIndex(); @@ -577,7 +577,7 @@ private Pair, Integer> searchForUsersInternal(ListUsersC } private Pair, Integer> getUserListInternal(Account caller, List permittedAccounts, boolean listAll, Long id, Object username, Object type, - String accountName, Object state, Object keyword, Long domainId, Boolean recursive, Filter searchFilter) { + String accountName, Object state, Object keyword, Long domainId, boolean recursive, Filter searchFilter) { Ternary domainIdRecursiveListProject = new Ternary(domainId, recursive, null); _accountMgr.buildACLSearchParameters(caller, id, accountName, null, permittedAccounts, domainIdRecursiveListProject, listAll, false); domainId = domainIdRecursiveListProject.first(); @@ -681,7 +681,7 @@ private Pair, Integer> searchForEventsInternal(ListEventsCmd c Integer duration = cmd.getDuration(); Long startId = cmd.getStartId(); - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursiveWithNull(), null); + Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); Boolean isRecursive = domainIdRecursiveListProject.second(); @@ -812,7 +812,7 @@ private Pair, Integer> listTagsInternal(ListTagsCmd cmd) } } - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursiveWithNull(), null); + Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); _accountMgr.buildACLSearchParameters(caller, null, cmd.getAccountName(), projectId, permittedAccounts, domainIdRecursiveListProject, listAll, false); Long domainId = domainIdRecursiveListProject.first(); @@ -885,7 +885,7 @@ private Pair, Integer> searchForVmGroupsInternal(ListV Account caller = CallContext.current().getCallingAccount(); List permittedAccounts = new ArrayList(); - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursiveWithNull(), null); + Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); Boolean isRecursive = domainIdRecursiveListProject.second(); @@ -943,7 +943,7 @@ private Pair, Integer> searchForUserVMsInternal(ListVMsCmd cm Long userId = cmd.getUserId(); Map tags = cmd.getTags(); Boolean display = cmd.getDisplay(); - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursiveWithNull(), null); + Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, listAll, false); Long domainId = domainIdRecursiveListProject.first(); Boolean isRecursive = domainIdRecursiveListProject.second(); @@ -1268,7 +1268,7 @@ private Pair, Integer> searchForSecurityGroupsInternal return listSecurityGroupRulesByVM(instanceId.longValue(), cmd.getStartIndex(), cmd.getPageSizeVal()); } - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursiveWithNull(), null); + Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); Boolean isRecursive = domainIdRecursiveListProject.second(); @@ -1395,7 +1395,7 @@ private Pair, Integer> searchForRoutersInternal(BaseLis Account caller = CallContext.current().getCallingAccount(); List permittedAccounts = new ArrayList(); - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursiveWithNull(), null); + Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); Boolean isRecursive = domainIdRecursiveListProject.second(); @@ -1728,7 +1728,7 @@ public Pair, Integer> listProjectInvitationsIntern Long startIndex = cmd.getStartIndex(); Long pageSizeVal = cmd.getPageSizeVal(); Long userId = cmd.getUserId(); - Boolean isRecursive = cmd.isRecursiveWithNull(); + boolean isRecursive = cmd.isRecursive(); boolean listAll = cmd.listAll(); Account caller = CallContext.current().getCallingAccount(); @@ -2050,7 +2050,7 @@ private Pair, Integer> searchForVolumesInternal(ListVolumesCm List ids = getIdsListFromCmd(cmd.getId(), cmd.getIds()); - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursiveWithNull(), null); + Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); Boolean isRecursive = domainIdRecursiveListProject.second(); @@ -2296,7 +2296,7 @@ private Pair, Integer> searchForAccountsInternal(ListAccount Long domainId = cmd.getDomainId(); Long accountId = cmd.getId(); String accountName = cmd.getSearchName(); - Boolean isRecursive = cmd.isRecursiveWithNull(); + boolean isRecursive = cmd.isRecursive(); boolean listAll = cmd.listAll(); boolean callerIsAdmin = _accountMgr.isAdmin(caller.getId()); Account account; @@ -2323,7 +2323,7 @@ private Pair, Integer> searchForAccountsInternal(ListAccount domainId = caller.getDomainId(); } // mark recursive - isRecursive = isRecursive == null ? true : isRecursive; + isRecursive = true; } else if (!callerIsAdmin || domainId == null) { accountId = caller.getAccountId(); } @@ -2365,7 +2365,6 @@ private Pair, Integer> searchForAccountsInternal(ListAccount sb.and("idNEQ", sb.entity().getId(), SearchCriteria.Op.NEQ); sb.and("type2NEQ", sb.entity().getType(), SearchCriteria.Op.NEQ); - isRecursive = isRecursive == null ? false : isRecursive; if (domainId != null && isRecursive) { sb.and("path", sb.entity().getDomainPath(), SearchCriteria.Op.LIKE); } @@ -2440,7 +2439,7 @@ private Pair, Integer> searchForAsyncJobsInternal(ListAsync List permittedAccounts = new ArrayList(); - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursiveWithNull(), null); + Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); _accountMgr.buildACLSearchParameters(caller, null, cmd.getAccountName(), null, permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); Boolean isRecursive = domainIdRecursiveListProject.second(); @@ -3566,7 +3565,7 @@ private Pair, Integer> searchForTemplatesInternal(ListTempl } List permittedAccountIds = new ArrayList(); - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursiveWithNull(), null); + Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccountIds, domainIdRecursiveListProject, listAll, false); ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); List permittedAccounts = new ArrayList(); @@ -3908,7 +3907,7 @@ private Pair, Integer> searchForIsosInternal(ListIsosCmd cm } List permittedAccountIds = new ArrayList(); - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursiveWithNull(), null); + Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccountIds, domainIdRecursiveListProject, listAll, false); ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); List permittedAccounts = new ArrayList(); @@ -4007,7 +4006,7 @@ public Pair, Integer> searchForAffinityGroupsInternal( final String accountName = cmd.getAccountName(); Long domainId = cmd.getDomainId(); final Long projectId = cmd.getProjectId(); - Boolean isRecursive = cmd.isRecursiveWithNull(); + Boolean isRecursive = cmd.isRecursive(); final Boolean listAll = cmd.listAll(); final Long startIndex = cmd.getStartIndex(); final Long pageSize = cmd.getPageSizeVal(); diff --git a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java index d10d4bc845aa..ce2aaf4830d6 100644 --- a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java +++ b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java @@ -1613,7 +1613,7 @@ public Pair, Integer> searchForNetworks(ListNetworksCmd List supportedServicesStr = cmd.getSupportedServices(); Boolean restartRequired = cmd.isRestartRequired(); boolean listAll = cmd.listAll(); - Boolean isRecursive = cmd.isRecursiveWithNull(); + boolean isRecursive = cmd.isRecursive(); Boolean specifyIpRanges = cmd.isSpecifyIpRanges(); Long vpcId = cmd.getVpcId(); Boolean canUseForDeploy = cmd.canUseForDeploy(); @@ -1693,9 +1693,7 @@ public Pair, Integer> searchForNetworks(ListNetworksCmd } if (listAll && domainId == null) { - isRecursive = isRecursive == null ? true : isRecursive; - } else { - isRecursive = isRecursive == null ? false : isRecursive; + isRecursive = true; } Filter searchFilter = new Filter(NetworkVO.class, "id", false, null, null); diff --git a/server/src/main/java/com/cloud/network/as/AutoScaleManagerImpl.java b/server/src/main/java/com/cloud/network/as/AutoScaleManagerImpl.java index db22e4d4841a..ec46b8c147f5 100644 --- a/server/src/main/java/com/cloud/network/as/AutoScaleManagerImpl.java +++ b/server/src/main/java/com/cloud/network/as/AutoScaleManagerImpl.java @@ -628,7 +628,7 @@ private class SearchWrapper { SearchBuilder searchBuilder; SearchCriteria searchCriteria; Long domainId; - Boolean isRecursive; + boolean isRecursive; List permittedAccounts = new ArrayList(); ListProjectResourcesCriteria listProjectResourcesCriteria; Filter searchFilter; @@ -639,7 +639,7 @@ public SearchWrapper(GenericDao dao, Class entityClass, BaseListAc this.searchBuilder = dao.createSearchBuilder(); domainId = cmd.getDomainId(); String accountName = cmd.getAccountName(); - isRecursive = cmd.isRecursiveWithNull(); + isRecursive = cmd.isRecursive(); boolean listAll = cmd.listAll(); long startIndex = cmd.getStartIndex(); long pageSizeVal = cmd.getPageSizeVal(); diff --git a/server/src/main/java/com/cloud/network/firewall/FirewallManagerImpl.java b/server/src/main/java/com/cloud/network/firewall/FirewallManagerImpl.java index 566f2113d8b2..56814daeef25 100644 --- a/server/src/main/java/com/cloud/network/firewall/FirewallManagerImpl.java +++ b/server/src/main/java/com/cloud/network/firewall/FirewallManagerImpl.java @@ -282,7 +282,7 @@ public Pair, Integer> listFirewallRules(IListFirewa _accountMgr.checkAccess(caller, null, true, ipAddressVO); } - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursiveWithNull(), null); + Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); Boolean isRecursive = domainIdRecursiveListProject.second(); diff --git a/server/src/main/java/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java b/server/src/main/java/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java index b2b1dd71a7b2..09b68082043e 100644 --- a/server/src/main/java/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java +++ b/server/src/main/java/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java @@ -2326,7 +2326,7 @@ public Pair, Integer> searchForLoadBalancers(ListLo List permittedAccounts = new ArrayList(); Ternary domainIdRecursiveListProject = new Ternary( - cmd.getDomainId(), cmd.isRecursiveWithNull(), null); + cmd.getDomainId(), cmd.isRecursive(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); diff --git a/server/src/main/java/com/cloud/network/rules/RulesManagerImpl.java b/server/src/main/java/com/cloud/network/rules/RulesManagerImpl.java index 44c996a9d975..b18fe10a0411 100644 --- a/server/src/main/java/com/cloud/network/rules/RulesManagerImpl.java +++ b/server/src/main/java/com/cloud/network/rules/RulesManagerImpl.java @@ -835,7 +835,7 @@ public Pair, Integer> listPortForwardingRules _accountMgr.checkAccess(caller, null, true, ipAddressVO); } - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursiveWithNull(), null); + Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); Boolean isRecursive = domainIdRecursiveListProject.second(); @@ -1039,7 +1039,7 @@ public boolean applyStaticNatsForNetwork(long networkId, boolean continueOnError @Override public Pair, Integer> searchStaticNatRules(Long ipId, Long id, Long vmId, Long start, Long size, String accountName, Long domainId, - Long projectId, Boolean isRecursive, boolean listAll) { + Long projectId, boolean isRecursive, boolean listAll) { Account caller = CallContext.current().getCallingAccount(); List permittedAccounts = new ArrayList(); diff --git a/server/src/main/java/com/cloud/network/vpc/NetworkACLServiceImpl.java b/server/src/main/java/com/cloud/network/vpc/NetworkACLServiceImpl.java index ab513c641bea..53e113f95096 100644 --- a/server/src/main/java/com/cloud/network/vpc/NetworkACLServiceImpl.java +++ b/server/src/main/java/com/cloud/network/vpc/NetworkACLServiceImpl.java @@ -177,7 +177,7 @@ public Pair, Integer> listNetworkACLs(final ListNetwo // and list ACLs belonging to the permitted VPCs final List permittedAccounts = new ArrayList(); Long domainId = cmd.getDomainId(); - Boolean isRecursive = cmd.isRecursiveWithNull(); + boolean isRecursive = cmd.isRecursive(); final String accountName = cmd.getAccountName(); final Long projectId = cmd.getProjectId(); final boolean listAll = cmd.listAll(); @@ -737,7 +737,7 @@ public Pair, Integer> listNetworkACLItems(final L // List permitted VPCs and filter aclItems final List permittedAccounts = new ArrayList(); Long domainId = cmd.getDomainId(); - Boolean isRecursive = cmd.isRecursiveWithNull(); + boolean isRecursive = cmd.isRecursive(); final String accountName = cmd.getAccountName(); final Long projectId = cmd.getProjectId(); final boolean listAll = cmd.listAll(); diff --git a/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java b/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java index c7ff760e195e..5752da2bf917 100644 --- a/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java +++ b/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java @@ -2096,7 +2096,7 @@ public Pair, Integer> listPrivateGateway(final ListPrivateG final String vlan = cmd.getVlan(); final Long vpcId = cmd.getVpcId(); final Long id = cmd.getId(); - Boolean isRecursive = cmd.isRecursiveWithNull(); + Boolean isRecursive = cmd.isRecursive(); final Boolean listAll = cmd.listAll(); Long domainId = cmd.getDomainId(); final String accountName = cmd.getAccountName(); @@ -2346,7 +2346,7 @@ public Pair, Integer> listStaticRoutes(final ListSta final Long gatewayId = cmd.getGatewayId(); final Long vpcId = cmd.getVpcId(); Long domainId = cmd.getDomainId(); - Boolean isRecursive = cmd.isRecursiveWithNull(); + Boolean isRecursive = cmd.isRecursive(); final Boolean listAll = cmd.listAll(); final String accountName = cmd.getAccountName(); final Account caller = CallContext.current().getCallingAccount(); diff --git a/server/src/main/java/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java b/server/src/main/java/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java index 1d854a2f5a86..61d247d7b8a5 100644 --- a/server/src/main/java/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java +++ b/server/src/main/java/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java @@ -645,7 +645,7 @@ public Pair, Integer> searchForVpnUsers(ListVpnUsersCmd Account caller = CallContext.current().getCallingAccount(); List permittedAccounts = new ArrayList<>(); - Ternary domainIdRecursiveListProject = new Ternary<>(cmd.getDomainId(), cmd.isRecursiveWithNull(), null); + Ternary domainIdRecursiveListProject = new Ternary<>(cmd.getDomainId(), cmd.isRecursive(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); Boolean isRecursive = domainIdRecursiveListProject.second(); @@ -703,7 +703,7 @@ public Pair, Integer> searchForRemoteAccessVpns( _accountMgr.checkAccess(caller, null, true, publicIp); } - Ternary domainIdRecursiveListProject = new Ternary<>(cmd.getDomainId(), cmd.isRecursiveWithNull(), null); + Ternary domainIdRecursiveListProject = new Ternary<>(cmd.getDomainId(), cmd.isRecursive(), null); _accountMgr.buildACLSearchParameters(caller, null, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); Boolean isRecursive = domainIdRecursiveListProject.second(); diff --git a/server/src/main/java/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java b/server/src/main/java/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java index f8b191a120a7..8b20072cf374 100644 --- a/server/src/main/java/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java +++ b/server/src/main/java/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java @@ -625,7 +625,7 @@ public Site2SiteVpnConnection resetVpnConnection(ResetVpnConnectionCmd cmd) thro public Pair, Integer> searchForCustomerGateways(ListVpnCustomerGatewaysCmd cmd) { Long id = cmd.getId(); Long domainId = cmd.getDomainId(); - Boolean isRecursive = cmd.isRecursiveWithNull(); + boolean isRecursive = cmd.isRecursive(); String accountName = cmd.getAccountName(); boolean listAll = cmd.listAll(); long startIndex = cmd.getStartIndex(); @@ -671,7 +671,7 @@ public Pair, Integer> searchForVpnGateways(L Boolean display = cmd.getDisplay(); Long domainId = cmd.getDomainId(); - Boolean isRecursive = cmd.isRecursiveWithNull(); + boolean isRecursive = cmd.isRecursive(); String accountName = cmd.getAccountName(); boolean listAll = cmd.listAll(); long startIndex = cmd.getStartIndex(); @@ -721,7 +721,7 @@ public Pair, Integer> searchForVpnConnect Boolean display = cmd.getDisplay(); Long domainId = cmd.getDomainId(); - Boolean isRecursive = cmd.isRecursiveWithNull(); + boolean isRecursive = cmd.isRecursive(); String accountName = cmd.getAccountName(); boolean listAll = cmd.listAll(); long startIndex = cmd.getStartIndex(); diff --git a/server/src/main/java/com/cloud/server/ManagementServerImpl.java b/server/src/main/java/com/cloud/server/ManagementServerImpl.java index d66630707512..8a68bb4b3856 100644 --- a/server/src/main/java/com/cloud/server/ManagementServerImpl.java +++ b/server/src/main/java/com/cloud/server/ManagementServerImpl.java @@ -2230,7 +2230,7 @@ public Pair, Integer> searchForIPAddresses(final ListP final List permittedAccounts = new ArrayList<>(); ListProjectResourcesCriteria listProjectResourcesCriteria = null; if (isAllocated || (vlanType == VlanType.VirtualNetwork && (caller.getType() != Account.ACCOUNT_TYPE_ADMIN || cmd.getDomainId() != null))) { - final Ternary domainIdRecursiveListProject = new Ternary<>(cmd.getDomainId(), cmd.isRecursiveWithNull(), + final Ternary domainIdRecursiveListProject = new Ternary<>(cmd.getDomainId(), cmd.isRecursive(), null); _accountMgr.buildACLSearchParameters(caller, cmd.getId(), cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); domainId = domainIdRecursiveListProject.first(); @@ -4212,7 +4212,7 @@ public Pair, Integer> listSSHKeyPairs(final ListSSHKe final Account caller = getCaller(); final List permittedAccounts = new ArrayList(); - final Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursiveWithNull(), null); + final Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); _accountMgr.buildACLSearchParameters(caller, null, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); final Long domainId = domainIdRecursiveListProject.first(); final Boolean isRecursive = domainIdRecursiveListProject.second(); diff --git a/server/src/main/java/com/cloud/storage/snapshot/SnapshotManagerImpl.java b/server/src/main/java/com/cloud/storage/snapshot/SnapshotManagerImpl.java index efa9180a6ba6..c96f65178641 100755 --- a/server/src/main/java/com/cloud/storage/snapshot/SnapshotManagerImpl.java +++ b/server/src/main/java/com/cloud/storage/snapshot/SnapshotManagerImpl.java @@ -658,7 +658,7 @@ public Pair, Integer> listSnapshots(ListSnapshotsCmd cm List ids = getIdsListFromCmd(cmd.getId(), cmd.getIds()); Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), - cmd.isRecursiveWithNull(), null); + cmd.isRecursive(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); Boolean isRecursive = domainIdRecursiveListProject.second(); diff --git a/server/src/main/java/com/cloud/user/AccountManagerImpl.java b/server/src/main/java/com/cloud/user/AccountManagerImpl.java index f4d9bd678f71..bd51cd419e54 100644 --- a/server/src/main/java/com/cloud/user/AccountManagerImpl.java +++ b/server/src/main/java/com/cloud/user/AccountManagerImpl.java @@ -2778,7 +2778,6 @@ public void buildACLSearchCriteria(SearchCriteria sc public void buildACLSearchParameters(Account caller, Long id, String accountName, Long projectId, List permittedAccounts, Ternary domainIdRecursiveListProject, boolean listAll, boolean forProjectInvitation) { Long domainId = domainIdRecursiveListProject.first(); - Boolean recursive = domainIdRecursiveListProject.second(); if (domainId != null) { Domain domain = _domainDao.findById(domainId); if (domain == null) { @@ -2851,14 +2850,12 @@ public void buildACLSearchParameters(Account caller, Long id, String accountName permittedAccounts.add(caller.getId()); } else if (caller.getType() != Account.ACCOUNT_TYPE_ADMIN) { domainIdRecursiveListProject.first(caller.getDomainId()); - recursive = recursive == null ? true : recursive; - domainIdRecursiveListProject.second(recursive); + domainIdRecursiveListProject.second(true); } } else if (domainId == null) { if (caller.getType() == Account.ACCOUNT_TYPE_DOMAIN_ADMIN) { domainIdRecursiveListProject.first(caller.getDomainId()); - recursive = recursive == null ? true : recursive; - domainIdRecursiveListProject.second(recursive); + domainIdRecursiveListProject.second(true); } } } else if (domainId != null) { @@ -2868,8 +2865,7 @@ public void buildACLSearchParameters(Account caller, Long id, String accountName } } - recursive = recursive == null ? false : recursive; - domainIdRecursiveListProject.second(recursive); + } @Override diff --git a/server/src/main/java/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java b/server/src/main/java/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java index 0951dd5cb60d..bd66fe89ec65 100644 --- a/server/src/main/java/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java +++ b/server/src/main/java/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java @@ -228,7 +228,7 @@ public Pair, Integer> listVMSnapshots(ListVMSnapshotC List ids = getIdsListFromCmd(cmd.getId(), cmd.getIds()); Ternary domainIdRecursiveListProject = new Ternary( - cmd.getDomainId(), cmd.isRecursiveWithNull(), null); + cmd.getDomainId(), cmd.isRecursive(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, listAll, false); Long domainId = domainIdRecursiveListProject.first(); diff --git a/server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java b/server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java index 425a55bd55bc..e52ab6c94cb7 100644 --- a/server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java +++ b/server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java @@ -501,7 +501,7 @@ public Pair, Integer> listBackups(final ListBackupsCmd cmd) { } final Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), - cmd.isRecursiveWithNull(), null); + cmd.isRecursive(), null); accountManager.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); final Long domainId = domainIdRecursiveListProject.first(); final Boolean isRecursive = domainIdRecursiveListProject.second(); diff --git a/server/src/main/java/org/apache/cloudstack/network/lb/ApplicationLoadBalancerManagerImpl.java b/server/src/main/java/org/apache/cloudstack/network/lb/ApplicationLoadBalancerManagerImpl.java index 30ad205db34a..1c9af7a334d5 100644 --- a/server/src/main/java/org/apache/cloudstack/network/lb/ApplicationLoadBalancerManagerImpl.java +++ b/server/src/main/java/org/apache/cloudstack/network/lb/ApplicationLoadBalancerManagerImpl.java @@ -390,7 +390,7 @@ public Pair, Integer> listApplicatio List permittedAccounts = new ArrayList(); Ternary domainIdRecursiveListProject = new Ternary( - cmd.getDomainId(), cmd.isRecursiveWithNull(), null); + cmd.getDomainId(), cmd.isRecursive(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); From 0342c0d2ddf263ceb483c32dc1f3230afe3bb897 Mon Sep 17 00:00:00 2001 From: davidjumani Date: Mon, 28 Feb 2022 14:13:48 +0530 Subject: [PATCH 3/5] Being smart about it --- .../org/apache/cloudstack/api/BaseListDomainResourcesCmd.java | 3 +++ .../src/main/java/com/cloud/api/query/QueryManagerImpl.java | 2 -- .../src/main/java/com/cloud/network/NetworkServiceImpl.java | 4 ---- server/src/main/java/com/cloud/user/AccountManagerImpl.java | 2 -- 4 files changed, 3 insertions(+), 8 deletions(-) diff --git a/api/src/main/java/org/apache/cloudstack/api/BaseListDomainResourcesCmd.java b/api/src/main/java/org/apache/cloudstack/api/BaseListDomainResourcesCmd.java index 7a8cee337705..e9a9e5b1ed96 100644 --- a/api/src/main/java/org/apache/cloudstack/api/BaseListDomainResourcesCmd.java +++ b/api/src/main/java/org/apache/cloudstack/api/BaseListDomainResourcesCmd.java @@ -41,6 +41,9 @@ public boolean listAll() { @Override public boolean isRecursive() { + if (listAll()) { + return recursive == null ? true : recursive; + } return recursive == null ? false : recursive; } diff --git a/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java b/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java index 75ad4b07c289..9595da97f3e0 100644 --- a/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java +++ b/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java @@ -2322,8 +2322,6 @@ private Pair, Integer> searchForAccountsInternal(ListAccount if (domainId == null) { domainId = caller.getDomainId(); } - // mark recursive - isRecursive = true; } else if (!callerIsAdmin || domainId == null) { accountId = caller.getAccountId(); } diff --git a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java index ce2aaf4830d6..8f81db11d9d1 100644 --- a/server/src/main/java/com/cloud/network/NetworkServiceImpl.java +++ b/server/src/main/java/com/cloud/network/NetworkServiceImpl.java @@ -1692,10 +1692,6 @@ public Pair, Integer> searchForNetworks(ListNetworksCmd path = _domainDao.findById(caller.getDomainId()).getPath(); } - if (listAll && domainId == null) { - isRecursive = true; - } - Filter searchFilter = new Filter(NetworkVO.class, "id", false, null, null); SearchBuilder sb = _networksDao.createSearchBuilder(); diff --git a/server/src/main/java/com/cloud/user/AccountManagerImpl.java b/server/src/main/java/com/cloud/user/AccountManagerImpl.java index bd51cd419e54..ca0904ade1a3 100644 --- a/server/src/main/java/com/cloud/user/AccountManagerImpl.java +++ b/server/src/main/java/com/cloud/user/AccountManagerImpl.java @@ -2850,12 +2850,10 @@ public void buildACLSearchParameters(Account caller, Long id, String accountName permittedAccounts.add(caller.getId()); } else if (caller.getType() != Account.ACCOUNT_TYPE_ADMIN) { domainIdRecursiveListProject.first(caller.getDomainId()); - domainIdRecursiveListProject.second(true); } } else if (domainId == null) { if (caller.getType() == Account.ACCOUNT_TYPE_DOMAIN_ADMIN) { domainIdRecursiveListProject.first(caller.getDomainId()); - domainIdRecursiveListProject.second(true); } } } else if (domainId != null) { From 101d2a01a5ff5843777eeed6b5e8df6c6ec440ec Mon Sep 17 00:00:00 2001 From: davidjumani Date: Mon, 28 Feb 2022 15:22:13 +0530 Subject: [PATCH 4/5] Cleanup --- .../cluster/KubernetesClusterManagerImpl.java | 7 +- .../management/MockAccountManager.java | 3 +- .../com/cloud/api/query/QueryManagerImpl.java | 86 +++++++++---------- .../com/cloud/network/NetworkServiceImpl.java | 1 - .../network/as/AutoScaleManagerImpl.java | 7 +- .../network/firewall/FirewallManagerImpl.java | 7 +- .../lb/LoadBalancingRulesManagerImpl.java | 11 +-- .../cloud/network/rules/RulesManagerImpl.java | 12 ++- .../network/vpc/NetworkACLServiceImpl.java | 11 +-- .../com/cloud/network/vpc/VpcManagerImpl.java | 19 ++-- .../vpn/RemoteAccessVpnManagerImpl.java | 13 ++- .../network/vpn/Site2SiteVpnManagerImpl.java | 19 ++-- .../cloud/server/ManagementServerImpl.java | 12 ++- .../storage/snapshot/SnapshotManagerImpl.java | 8 +- .../java/com/cloud/user/AccountManager.java | 3 +- .../com/cloud/user/AccountManagerImpl.java | 9 +- .../vm/snapshot/VMSnapshotManagerImpl.java | 9 +- .../cloudstack/backup/BackupManagerImpl.java | 8 +- .../ApplicationLoadBalancerManagerImpl.java | 9 +- .../cloud/user/MockAccountManagerImpl.java | 4 +- 20 files changed, 107 insertions(+), 151 deletions(-) diff --git a/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImpl.java b/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImpl.java index 7b4db719b1e8..c322b6fc82a2 100644 --- a/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImpl.java +++ b/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImpl.java @@ -94,7 +94,6 @@ import com.cloud.user.dao.SSHKeyPairDao; import com.cloud.user.dao.UserDao; import com.cloud.utils.Pair; -import com.cloud.utils.Ternary; import com.cloud.utils.component.ComponentContext; import com.cloud.utils.component.ManagerBase; import com.cloud.utils.concurrency.NamedThreadFactory; @@ -1197,11 +1196,11 @@ public ListResponse listKubernetesClusters(ListKubern final String keyword = cmd.getKeyword(); List responsesList = new ArrayList(); List permittedAccounts = new ArrayList(); - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); + Pair domainIdRecursiveListProject = new Pair(cmd.getDomainId(), null); accountManager.buildACLSearchParameters(caller, clusterId, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); - Boolean isRecursive = domainIdRecursiveListProject.second(); - Project.ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); + Project.ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.second(); + Boolean isRecursive = cmd.isRecursive(); Filter searchFilter = new Filter(KubernetesClusterVO.class, "id", true, cmd.getStartIndex(), cmd.getPageSizeVal()); SearchBuilder sb = kubernetesClusterDao.createSearchBuilder(); accountManager.buildACLSearchBuilder(sb, domainId, isRecursive, permittedAccounts, listProjectResourcesCriteria); diff --git a/plugins/network-elements/juniper-contrail/src/test/java/org/apache/cloudstack/network/contrail/management/MockAccountManager.java b/plugins/network-elements/juniper-contrail/src/test/java/org/apache/cloudstack/network/contrail/management/MockAccountManager.java index 6326d7e95fc9..a26a5ca9cd7c 100644 --- a/plugins/network-elements/juniper-contrail/src/test/java/org/apache/cloudstack/network/contrail/management/MockAccountManager.java +++ b/plugins/network-elements/juniper-contrail/src/test/java/org/apache/cloudstack/network/contrail/management/MockAccountManager.java @@ -61,7 +61,6 @@ import com.cloud.user.dao.AccountDao; import com.cloud.user.dao.UserDao; import com.cloud.utils.Pair; -import com.cloud.utils.Ternary; import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.SearchBuilder; import com.cloud.utils.db.SearchCriteria; @@ -279,7 +278,7 @@ public void buildACLSearchCriteria( @Override public void buildACLSearchParameters(Account arg0, Long arg1, String arg2, Long arg3, List arg4, - Ternary arg5, + Pair arg5, boolean arg6, boolean arg7) { // TODO Auto-generated method stub diff --git a/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java b/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java index 9595da97f3e0..8c0d366023e7 100644 --- a/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java +++ b/server/src/main/java/com/cloud/api/query/QueryManagerImpl.java @@ -243,7 +243,6 @@ import com.cloud.utils.DateUtil; import com.cloud.utils.NumbersUtil; import com.cloud.utils.Pair; -import com.cloud.utils.Ternary; import com.cloud.utils.db.Filter; import com.cloud.utils.db.GenericSearchBuilder; import com.cloud.utils.db.JoinBuilder; @@ -577,12 +576,11 @@ private Pair, Integer> searchForUsersInternal(ListUsersC } private Pair, Integer> getUserListInternal(Account caller, List permittedAccounts, boolean listAll, Long id, Object username, Object type, - String accountName, Object state, Object keyword, Long domainId, boolean recursive, Filter searchFilter) { - Ternary domainIdRecursiveListProject = new Ternary(domainId, recursive, null); + String accountName, Object state, Object keyword, Long domainId, boolean isRecursive, Filter searchFilter) { + Pair domainIdRecursiveListProject = new Pair(domainId, null); _accountMgr.buildACLSearchParameters(caller, id, accountName, null, permittedAccounts, domainIdRecursiveListProject, listAll, false); domainId = domainIdRecursiveListProject.first(); - Boolean isRecursive = domainIdRecursiveListProject.second(); - ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); + ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.second(); SearchBuilder sb = _userAccountJoinDao.createSearchBuilder(); _accountMgr.buildACLViewSearchBuilder(sb, domainId, isRecursive, permittedAccounts, listProjectResourcesCriteria); @@ -681,11 +679,11 @@ private Pair, Integer> searchForEventsInternal(ListEventsCmd c Integer duration = cmd.getDuration(); Long startId = cmd.getStartId(); - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); + Pair domainIdRecursiveListProject = new Pair(cmd.getDomainId(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); - Boolean isRecursive = domainIdRecursiveListProject.second(); - ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); + ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.second(); + Boolean isRecursive = cmd.isRecursive(); Filter searchFilter = new Filter(EventJoinVO.class, "createDate", false, cmd.getStartIndex(), cmd.getPageSizeVal()); SearchBuilder sb = _eventJoinDao.createSearchBuilder(); @@ -812,12 +810,12 @@ private Pair, Integer> listTagsInternal(ListTagsCmd cmd) } } - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); + Pair domainIdRecursiveListProject = new Pair(cmd.getDomainId(), null); _accountMgr.buildACLSearchParameters(caller, null, cmd.getAccountName(), projectId, permittedAccounts, domainIdRecursiveListProject, listAll, false); Long domainId = domainIdRecursiveListProject.first(); - Boolean isRecursive = domainIdRecursiveListProject.second(); - ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); + ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.second(); + Boolean isRecursive = cmd.isRecursive(); Filter searchFilter = new Filter(ResourceTagJoinVO.class, "resourceType", false, cmd.getStartIndex(), cmd.getPageSizeVal()); SearchBuilder sb = _resourceTagJoinDao.createSearchBuilder(); @@ -885,11 +883,11 @@ private Pair, Integer> searchForVmGroupsInternal(ListV Account caller = CallContext.current().getCallingAccount(); List permittedAccounts = new ArrayList(); - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); + Pair domainIdRecursiveListProject = new Pair(cmd.getDomainId(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); - Boolean isRecursive = domainIdRecursiveListProject.second(); - ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); + ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.second(); + Boolean isRecursive = cmd.isRecursive(); Filter searchFilter = new Filter(InstanceGroupJoinVO.class, "id", true, cmd.getStartIndex(), cmd.getPageSizeVal()); @@ -943,11 +941,11 @@ private Pair, Integer> searchForUserVMsInternal(ListVMsCmd cm Long userId = cmd.getUserId(); Map tags = cmd.getTags(); Boolean display = cmd.getDisplay(); - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); + Pair domainIdRecursiveListProject = new Pair(cmd.getDomainId(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, listAll, false); Long domainId = domainIdRecursiveListProject.first(); - Boolean isRecursive = domainIdRecursiveListProject.second(); - ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); + ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.second(); + Boolean isRecursive = cmd.isRecursive(); Filter searchFilter = new Filter(UserVmJoinVO.class, "id", true, cmd.getStartIndex(), cmd.getPageSizeVal()); @@ -1268,11 +1266,11 @@ private Pair, Integer> searchForSecurityGroupsInternal return listSecurityGroupRulesByVM(instanceId.longValue(), cmd.getStartIndex(), cmd.getPageSizeVal()); } - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); + Pair domainIdRecursiveListProject = new Pair(cmd.getDomainId(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); - Boolean isRecursive = domainIdRecursiveListProject.second(); - ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); + ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.second(); + Boolean isRecursive = cmd.isRecursive(); Filter searchFilter = new Filter(SecurityGroupJoinVO.class, "id", true, cmd.getStartIndex(), cmd.getPageSizeVal()); SearchBuilder sb = _securityGroupJoinDao.createSearchBuilder(); @@ -1395,11 +1393,11 @@ private Pair, Integer> searchForRoutersInternal(BaseLis Account caller = CallContext.current().getCallingAccount(); List permittedAccounts = new ArrayList(); - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); + Pair domainIdRecursiveListProject = new Pair(cmd.getDomainId(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); - Boolean isRecursive = domainIdRecursiveListProject.second(); - ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); + ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.second(); + Boolean isRecursive = cmd.isRecursive(); Filter searchFilter = new Filter(DomainRouterJoinVO.class, "id", true, cmd.getStartIndex(), cmd.getPageSizeVal()); SearchBuilder sb = _routerJoinDao.createSearchBuilder(); @@ -1735,11 +1733,10 @@ public Pair, Integer> listProjectInvitationsIntern User callingUser = CallContext.current().getCallingUser(); List permittedAccounts = new ArrayList(); - Ternary domainIdRecursiveListProject = new Ternary(domainId, isRecursive, null); + Pair domainIdRecursiveListProject = new Pair(domainId, null); _accountMgr.buildACLSearchParameters(caller, id, accountName, projectId, permittedAccounts, domainIdRecursiveListProject, listAll, true); domainId = domainIdRecursiveListProject.first(); - isRecursive = domainIdRecursiveListProject.second(); - ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); + ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.second(); Filter searchFilter = new Filter(ProjectInvitationJoinVO.class, "id", true, startIndex, pageSizeVal); SearchBuilder sb = _projectInvitationJoinDao.createSearchBuilder(); @@ -2050,11 +2047,11 @@ private Pair, Integer> searchForVolumesInternal(ListVolumesCm List ids = getIdsListFromCmd(cmd.getId(), cmd.getIds()); - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); + Pair domainIdRecursiveListProject = new Pair(cmd.getDomainId(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); - Boolean isRecursive = domainIdRecursiveListProject.second(); - ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); + ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.second(); + Boolean isRecursive = cmd.isRecursive(); Filter searchFilter = new Filter(VolumeJoinVO.class, "created", false, cmd.getStartIndex(), cmd.getPageSizeVal()); // hack for now, this should be done better but due to needing a join I @@ -2437,11 +2434,11 @@ private Pair, Integer> searchForAsyncJobsInternal(ListAsync List permittedAccounts = new ArrayList(); - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); + Pair domainIdRecursiveListProject = new Pair(cmd.getDomainId(), null); _accountMgr.buildACLSearchParameters(caller, null, cmd.getAccountName(), null, permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); - Boolean isRecursive = domainIdRecursiveListProject.second(); - ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); + ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.second(); + Boolean isRecursive = cmd.isRecursive(); Filter searchFilter = new Filter(AsyncJobJoinVO.class, "id", true, cmd.getStartIndex(), cmd.getPageSizeVal()); SearchBuilder sb = _jobJoinDao.createSearchBuilder(); @@ -2455,9 +2452,9 @@ private Pair, Integer> searchForAsyncJobsInternal(ListAsync if (listProjectResourcesCriteria != null) { - if (listProjectResourcesCriteria == Project.ListProjectResourcesCriteria.ListProjectResourcesOnly) { + if (listProjectResourcesCriteria == ListProjectResourcesCriteria.ListProjectResourcesOnly) { sb.and("type", sb.entity().getAccountType(), SearchCriteria.Op.EQ); - } else if (listProjectResourcesCriteria == Project.ListProjectResourcesCriteria.SkipProjectResources) { + } else if (listProjectResourcesCriteria == ListProjectResourcesCriteria.SkipProjectResources) { sb.and("type", sb.entity().getAccountType(), SearchCriteria.Op.NEQ); } @@ -3563,9 +3560,9 @@ private Pair, Integer> searchForTemplatesInternal(ListTempl } List permittedAccountIds = new ArrayList(); - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); + Pair domainIdRecursiveListProject = new Pair(cmd.getDomainId(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccountIds, domainIdRecursiveListProject, listAll, false); - ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); + ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.second(); List permittedAccounts = new ArrayList(); for (Long accountId : permittedAccountIds) { permittedAccounts.add(_accountMgr.getAccount(accountId)); @@ -3905,9 +3902,9 @@ private Pair, Integer> searchForIsosInternal(ListIsosCmd cm } List permittedAccountIds = new ArrayList(); - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); + Pair domainIdRecursiveListProject = new Pair(cmd.getDomainId(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccountIds, domainIdRecursiveListProject, listAll, false); - ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); + ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.second(); List permittedAccounts = new ArrayList(); for (Long accountId : permittedAccountIds) { permittedAccounts.add(_accountMgr.getAccount(accountId)); @@ -4022,13 +4019,12 @@ public Pair, Integer> searchForAffinityGroupsInternal( } List permittedAccounts = new ArrayList(); - Ternary ternary = new Ternary(domainId, isRecursive, null); + Pair domainIdRecursiveListProject = new Pair(domainId, null); - _accountMgr.buildACLSearchParameters(caller, affinityGroupId, accountName, projectId, permittedAccounts, ternary, listAll, false); + _accountMgr.buildACLSearchParameters(caller, affinityGroupId, accountName, projectId, permittedAccounts, domainIdRecursiveListProject, listAll, false); - domainId = ternary.first(); - isRecursive = ternary.second(); - ListProjectResourcesCriteria listProjectResourcesCriteria = ternary.third(); + domainId = domainIdRecursiveListProject.first(); + ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.second(); Filter searchFilter = new Filter(AffinityGroupJoinVO.class, ID_FIELD, true, startIndex, pageSize); @@ -4096,9 +4092,9 @@ private void buildAffinityGroupViewSearchBuilder(SearchBuilder, Integer> searchForNetworks(ListNetworksCmd Long physicalNetworkId = cmd.getPhysicalNetworkId(); List supportedServicesStr = cmd.getSupportedServices(); Boolean restartRequired = cmd.isRestartRequired(); - boolean listAll = cmd.listAll(); boolean isRecursive = cmd.isRecursive(); Boolean specifyIpRanges = cmd.isSpecifyIpRanges(); Long vpcId = cmd.getVpcId(); diff --git a/server/src/main/java/com/cloud/network/as/AutoScaleManagerImpl.java b/server/src/main/java/com/cloud/network/as/AutoScaleManagerImpl.java index ec46b8c147f5..f1092149a682 100644 --- a/server/src/main/java/com/cloud/network/as/AutoScaleManagerImpl.java +++ b/server/src/main/java/com/cloud/network/as/AutoScaleManagerImpl.java @@ -107,7 +107,6 @@ import com.cloud.user.dao.UserDao; import com.cloud.uservm.UserVm; import com.cloud.utils.Pair; -import com.cloud.utils.Ternary; import com.cloud.utils.component.ComponentContext; import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.DB; @@ -645,13 +644,11 @@ public SearchWrapper(GenericDao dao, Class entityClass, BaseListAc long pageSizeVal = cmd.getPageSizeVal(); Account caller = CallContext.current().getCallingAccount(); - Ternary domainIdRecursiveListProject = new Ternary(domainId, isRecursive, null); + Pair domainIdRecursiveListProject = new Pair(domainId, null); _accountMgr.buildACLSearchParameters(caller, id, accountName, null, permittedAccounts, domainIdRecursiveListProject, listAll, false); domainId = domainIdRecursiveListProject.first(); - isRecursive = domainIdRecursiveListProject.second(); - ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); + ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.second(); _accountMgr.buildACLSearchBuilder(searchBuilder, domainId, isRecursive, permittedAccounts, listProjectResourcesCriteria); searchFilter = new Filter(entityClass, "id", false, startIndex, pageSizeVal); } diff --git a/server/src/main/java/com/cloud/network/firewall/FirewallManagerImpl.java b/server/src/main/java/com/cloud/network/firewall/FirewallManagerImpl.java index 56814daeef25..1ca7b0eeee9e 100644 --- a/server/src/main/java/com/cloud/network/firewall/FirewallManagerImpl.java +++ b/server/src/main/java/com/cloud/network/firewall/FirewallManagerImpl.java @@ -80,7 +80,6 @@ import com.cloud.user.AccountManager; import com.cloud.user.DomainManager; import com.cloud.utils.Pair; -import com.cloud.utils.Ternary; import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.DB; import com.cloud.utils.db.Filter; @@ -282,11 +281,11 @@ public Pair, Integer> listFirewallRules(IListFirewa _accountMgr.checkAccess(caller, null, true, ipAddressVO); } - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); + Pair domainIdRecursiveListProject = new Pair(cmd.getDomainId(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); - Boolean isRecursive = domainIdRecursiveListProject.second(); - ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); + ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.second(); + Boolean isRecursive = cmd.isRecursive(); Filter filter = new Filter(FirewallRuleVO.class, "id", false, cmd.getStartIndex(), cmd.getPageSizeVal()); SearchBuilder sb = _firewallDao.createSearchBuilder(); diff --git a/server/src/main/java/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java b/server/src/main/java/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java index 09b68082043e..dcfd8baa4155 100644 --- a/server/src/main/java/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java +++ b/server/src/main/java/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java @@ -144,7 +144,6 @@ import com.cloud.user.dao.UserDao; import com.cloud.uservm.UserVm; import com.cloud.utils.Pair; -import com.cloud.utils.Ternary; import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.DB; import com.cloud.utils.db.EntityManager; @@ -2325,13 +2324,11 @@ public Pair, Integer> searchForLoadBalancers(ListLo Account caller = CallContext.current().getCallingAccount(); List permittedAccounts = new ArrayList(); - Ternary domainIdRecursiveListProject = new Ternary( - cmd.getDomainId(), cmd.isRecursive(), null); - _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, - domainIdRecursiveListProject, cmd.listAll(), false); + Pair domainIdRecursiveListProject = new Pair(cmd.getDomainId(), null); + _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); - Boolean isRecursive = domainIdRecursiveListProject.second(); - ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); + ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.second(); + Boolean isRecursive = cmd.isRecursive(); Filter searchFilter = new Filter(LoadBalancerVO.class, "id", true, cmd.getStartIndex(), cmd.getPageSizeVal()); SearchBuilder sb = _lbDao.createSearchBuilder(); diff --git a/server/src/main/java/com/cloud/network/rules/RulesManagerImpl.java b/server/src/main/java/com/cloud/network/rules/RulesManagerImpl.java index b18fe10a0411..46bb2e82a532 100644 --- a/server/src/main/java/com/cloud/network/rules/RulesManagerImpl.java +++ b/server/src/main/java/com/cloud/network/rules/RulesManagerImpl.java @@ -74,7 +74,6 @@ import com.cloud.user.DomainManager; import com.cloud.uservm.UserVm; import com.cloud.utils.Pair; -import com.cloud.utils.Ternary; import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.DB; import com.cloud.utils.db.EntityManager; @@ -835,11 +834,11 @@ public Pair, Integer> listPortForwardingRules _accountMgr.checkAccess(caller, null, true, ipAddressVO); } - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); + Pair domainIdRecursiveListProject = new Pair(cmd.getDomainId(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); - Boolean isRecursive = domainIdRecursiveListProject.second(); - ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); + ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.second(); + Boolean isRecursive = cmd.isRecursive(); Filter filter = new Filter(PortForwardingRuleVO.class, "id", false, cmd.getStartIndex(), cmd.getPageSizeVal()); SearchBuilder sb = _portForwardingDao.createSearchBuilder(); @@ -1051,11 +1050,10 @@ public Pair, Integer> searchStaticNatRules(Long ipI _accountMgr.checkAccess(caller, null, true, ipAddressVO); } - Ternary domainIdRecursiveListProject = new Ternary(domainId, isRecursive, null); + Pair domainIdRecursiveListProject = new Pair(domainId, null); _accountMgr.buildACLSearchParameters(caller, id, accountName, projectId, permittedAccounts, domainIdRecursiveListProject, listAll, false); domainId = domainIdRecursiveListProject.first(); - isRecursive = domainIdRecursiveListProject.second(); - ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); + ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.second(); Filter filter = new Filter(PortForwardingRuleVO.class, "id", false, start, size); SearchBuilder sb = _firewallDao.createSearchBuilder(); diff --git a/server/src/main/java/com/cloud/network/vpc/NetworkACLServiceImpl.java b/server/src/main/java/com/cloud/network/vpc/NetworkACLServiceImpl.java index 53e113f95096..d601aae85177 100644 --- a/server/src/main/java/com/cloud/network/vpc/NetworkACLServiceImpl.java +++ b/server/src/main/java/com/cloud/network/vpc/NetworkACLServiceImpl.java @@ -61,7 +61,6 @@ import com.cloud.user.AccountManager; import com.cloud.user.User; import com.cloud.utils.Pair; -import com.cloud.utils.Ternary; import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.EntityManager; import com.cloud.utils.db.Filter; @@ -181,11 +180,10 @@ public Pair, Integer> listNetworkACLs(final ListNetwo final String accountName = cmd.getAccountName(); final Long projectId = cmd.getProjectId(); final boolean listAll = cmd.listAll(); - final Ternary domainIdRecursiveListProject = new Ternary(domainId, isRecursive, null); + final Pair domainIdRecursiveListProject = new Pair(domainId, null); _accountMgr.buildACLSearchParameters(caller, id, accountName, projectId, permittedAccounts, domainIdRecursiveListProject, listAll, false); domainId = domainIdRecursiveListProject.first(); - isRecursive = domainIdRecursiveListProject.second(); - final ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); + final ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.second(); final SearchBuilder sbVpc = _vpcDao.createSearchBuilder(); _accountMgr.buildACLSearchBuilder(sbVpc, domainId, isRecursive, permittedAccounts, listProjectResourcesCriteria); final SearchCriteria scVpc = sbVpc.create(); @@ -741,11 +739,10 @@ public Pair, Integer> listNetworkACLItems(final L final String accountName = cmd.getAccountName(); final Long projectId = cmd.getProjectId(); final boolean listAll = cmd.listAll(); - final Ternary domainIdRecursiveListProject = new Ternary(domainId, isRecursive, null); + final Pair domainIdRecursiveListProject = new Pair(domainId, null); _accountMgr.buildACLSearchParameters(caller, id, accountName, projectId, permittedAccounts, domainIdRecursiveListProject, listAll, false); domainId = domainIdRecursiveListProject.first(); - isRecursive = domainIdRecursiveListProject.second(); - final ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); + final ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.second(); final SearchBuilder sbVpc = _vpcDao.createSearchBuilder(); _accountMgr.buildACLSearchBuilder(sbVpc, domainId, isRecursive, permittedAccounts, listProjectResourcesCriteria); final SearchCriteria scVpc = sbVpc.create(); diff --git a/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java b/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java index 5752da2bf917..e9be4159ed28 100644 --- a/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java +++ b/server/src/main/java/com/cloud/network/vpc/VpcManagerImpl.java @@ -128,7 +128,6 @@ import com.cloud.utils.NumbersUtil; import com.cloud.utils.Pair; import com.cloud.utils.StringUtils; -import com.cloud.utils.Ternary; import com.cloud.utils.component.ManagerBase; import com.cloud.utils.concurrency.NamedThreadFactory; import com.cloud.utils.db.DB; @@ -1196,12 +1195,10 @@ public Pair, Integer> listVpcs(final Long id, final String v final Boolean display) { final Account caller = CallContext.current().getCallingAccount(); final List permittedAccounts = new ArrayList(); - final Ternary domainIdRecursiveListProject = new Ternary(domainId, isRecursive, - null); + final Pair domainIdRecursiveListProject = new Pair(domainId,null); _accountMgr.buildACLSearchParameters(caller, id, accountName, projectId, permittedAccounts, domainIdRecursiveListProject, listAll, false); domainId = domainIdRecursiveListProject.first(); - isRecursive = domainIdRecursiveListProject.second(); - final ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); + final ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.second(); final Filter searchFilter = new Filter(VpcVO.class, "created", false, null, null); final SearchBuilder sb = _vpcDao.createSearchBuilder(); @@ -2106,12 +2103,10 @@ public Pair, Integer> listPrivateGateway(final ListPrivateG final Long projectId = cmd.getProjectId(); final Filter searchFilter = new Filter(VpcGatewayVO.class, "id", false, cmd.getStartIndex(), cmd.getPageSizeVal()); - final Ternary domainIdRecursiveListProject = new Ternary(domainId, isRecursive, - null); + final Pair domainIdRecursiveListProject = new Pair(domainId, null); _accountMgr.buildACLSearchParameters(caller, id, accountName, projectId, permittedAccounts, domainIdRecursiveListProject, listAll, false); domainId = domainIdRecursiveListProject.first(); - isRecursive = domainIdRecursiveListProject.second(); - final ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); + final ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.second(); final SearchBuilder sb = _vpcGatewayDao.createSearchBuilder(); _accountMgr.buildACLSearchBuilder(sb, domainId, isRecursive, permittedAccounts, listProjectResourcesCriteria); @@ -2355,12 +2350,10 @@ public Pair, Integer> listStaticRoutes(final ListSta final Long projectId = cmd.getProjectId(); final String state = cmd.getState(); - final Ternary domainIdRecursiveListProject = new Ternary(domainId, isRecursive, - null); + final Pair domainIdRecursiveListProject = new Pair(domainId, null); _accountMgr.buildACLSearchParameters(caller, id, accountName, projectId, permittedAccounts, domainIdRecursiveListProject, listAll, false); domainId = domainIdRecursiveListProject.first(); - isRecursive = domainIdRecursiveListProject.second(); - final ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); + final ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.second(); final Filter searchFilter = new Filter(StaticRouteVO.class, "created", false, cmd.getStartIndex(), cmd.getPageSizeVal()); final SearchBuilder sb = _staticRouteDao.createSearchBuilder(); diff --git a/server/src/main/java/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java b/server/src/main/java/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java index 61d247d7b8a5..b8831f64da75 100644 --- a/server/src/main/java/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java +++ b/server/src/main/java/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java @@ -78,7 +78,6 @@ import com.cloud.utils.NumbersUtil; import com.cloud.utils.Pair; import com.cloud.utils.PasswordGenerator; -import com.cloud.utils.Ternary; import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.DB; import com.cloud.utils.db.Filter; @@ -645,11 +644,11 @@ public Pair, Integer> searchForVpnUsers(ListVpnUsersCmd Account caller = CallContext.current().getCallingAccount(); List permittedAccounts = new ArrayList<>(); - Ternary domainIdRecursiveListProject = new Ternary<>(cmd.getDomainId(), cmd.isRecursive(), null); + Pair domainIdRecursiveListProject = new Pair<>(cmd.getDomainId(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); - Boolean isRecursive = domainIdRecursiveListProject.second(); - ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); + ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.second(); + Boolean isRecursive = cmd.isRecursive(); Filter searchFilter = new Filter(VpnUserVO.class, "username", true, cmd.getStartIndex(), cmd.getPageSizeVal()); SearchBuilder sb = _vpnUsersDao.createSearchBuilder(); _accountMgr.buildACLSearchBuilder(sb, domainId, isRecursive, permittedAccounts, listProjectResourcesCriteria); @@ -703,11 +702,11 @@ public Pair, Integer> searchForRemoteAccessVpns( _accountMgr.checkAccess(caller, null, true, publicIp); } - Ternary domainIdRecursiveListProject = new Ternary<>(cmd.getDomainId(), cmd.isRecursive(), null); + Pair domainIdRecursiveListProject = new Pair<>(cmd.getDomainId(), null); _accountMgr.buildACLSearchParameters(caller, null, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); - Boolean isRecursive = domainIdRecursiveListProject.second(); - ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); + ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.second(); + Boolean isRecursive = cmd.isRecursive(); Filter filter = new Filter(RemoteAccessVpnVO.class, "serverAddressId", false, cmd.getStartIndex(), cmd.getPageSizeVal()); SearchBuilder sb = _remoteAccessVpnDao.createSearchBuilder(); diff --git a/server/src/main/java/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java b/server/src/main/java/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java index 8b20072cf374..4ce515e1481b 100644 --- a/server/src/main/java/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java +++ b/server/src/main/java/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java @@ -71,7 +71,6 @@ import com.cloud.user.dao.AccountDao; import com.cloud.utils.NumbersUtil; import com.cloud.utils.Pair; -import com.cloud.utils.Ternary; import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.DB; import com.cloud.utils.db.Filter; @@ -635,12 +634,10 @@ public Pair, Integer> searchForCustomer Account caller = CallContext.current().getCallingAccount(); List permittedAccounts = new ArrayList(); - Ternary domainIdRecursiveListProject = new Ternary(domainId, isRecursive, null); + Pair domainIdRecursiveListProject = new Pair(domainId, null); _accountMgr.buildACLSearchParameters(caller, id, accountName, cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, listAll, false); domainId = domainIdRecursiveListProject.first(); - isRecursive = domainIdRecursiveListProject.second(); - ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); + ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.second(); Filter searchFilter = new Filter(Site2SiteCustomerGatewayVO.class, "id", false, startIndex, pageSizeVal); SearchBuilder sb = _customerGatewayDao.createSearchBuilder(); @@ -680,12 +677,10 @@ public Pair, Integer> searchForVpnGateways(L Account caller = CallContext.current().getCallingAccount(); List permittedAccounts = new ArrayList(); - Ternary domainIdRecursiveListProject = new Ternary(domainId, isRecursive, null); + Pair domainIdRecursiveListProject = new Pair(domainId, null); _accountMgr.buildACLSearchParameters(caller, id, accountName, cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, listAll, false); domainId = domainIdRecursiveListProject.first(); - isRecursive = domainIdRecursiveListProject.second(); - ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); + ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.second(); Filter searchFilter = new Filter(Site2SiteVpnGatewayVO.class, "id", false, startIndex, pageSizeVal); SearchBuilder sb = _vpnGatewayDao.createSearchBuilder(); @@ -730,12 +725,10 @@ public Pair, Integer> searchForVpnConnect Account caller = CallContext.current().getCallingAccount(); List permittedAccounts = new ArrayList(); - Ternary domainIdRecursiveListProject = new Ternary(domainId, isRecursive, null); + Pair domainIdRecursiveListProject = new Pair(domainId, null); _accountMgr.buildACLSearchParameters(caller, id, accountName, cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, listAll, false); domainId = domainIdRecursiveListProject.first(); - isRecursive = domainIdRecursiveListProject.second(); - ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); + ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.second(); Filter searchFilter = new Filter(Site2SiteVpnConnectionVO.class, "id", false, startIndex, pageSizeVal); SearchBuilder sb = _vpnConnectionDao.createSearchBuilder(); diff --git a/server/src/main/java/com/cloud/server/ManagementServerImpl.java b/server/src/main/java/com/cloud/server/ManagementServerImpl.java index 8a68bb4b3856..c4f29731b53a 100644 --- a/server/src/main/java/com/cloud/server/ManagementServerImpl.java +++ b/server/src/main/java/com/cloud/server/ManagementServerImpl.java @@ -2230,12 +2230,10 @@ public Pair, Integer> searchForIPAddresses(final ListP final List permittedAccounts = new ArrayList<>(); ListProjectResourcesCriteria listProjectResourcesCriteria = null; if (isAllocated || (vlanType == VlanType.VirtualNetwork && (caller.getType() != Account.ACCOUNT_TYPE_ADMIN || cmd.getDomainId() != null))) { - final Ternary domainIdRecursiveListProject = new Ternary<>(cmd.getDomainId(), cmd.isRecursive(), - null); + final Pair domainIdRecursiveListProject = new Pair<>(cmd.getDomainId(), null); _accountMgr.buildACLSearchParameters(caller, cmd.getId(), cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); domainId = domainIdRecursiveListProject.first(); - isRecursive = domainIdRecursiveListProject.second(); - listProjectResourcesCriteria = domainIdRecursiveListProject.third(); + listProjectResourcesCriteria = domainIdRecursiveListProject.second(); _accountMgr.buildACLSearchBuilder(sb, domainId, isRecursive, permittedAccounts, listProjectResourcesCriteria); } @@ -4212,11 +4210,11 @@ public Pair, Integer> listSSHKeyPairs(final ListSSHKe final Account caller = getCaller(); final List permittedAccounts = new ArrayList(); - final Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), cmd.isRecursive(), null); + final Pair domainIdRecursiveListProject = new Pair(cmd.getDomainId(), null); _accountMgr.buildACLSearchParameters(caller, null, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); final Long domainId = domainIdRecursiveListProject.first(); - final Boolean isRecursive = domainIdRecursiveListProject.second(); - final ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); + final ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.second(); + final Boolean isRecursive = cmd.isRecursive(); final SearchBuilder sb = _sshKeyPairDao.createSearchBuilder(); _accountMgr.buildACLSearchBuilder(sb, domainId, isRecursive, permittedAccounts, listProjectResourcesCriteria); final Filter searchFilter = new Filter(SSHKeyPairVO.class, "id", false, cmd.getStartIndex(), cmd.getPageSizeVal()); diff --git a/server/src/main/java/com/cloud/storage/snapshot/SnapshotManagerImpl.java b/server/src/main/java/com/cloud/storage/snapshot/SnapshotManagerImpl.java index c96f65178641..ee812aacb123 100755 --- a/server/src/main/java/com/cloud/storage/snapshot/SnapshotManagerImpl.java +++ b/server/src/main/java/com/cloud/storage/snapshot/SnapshotManagerImpl.java @@ -125,7 +125,6 @@ import com.cloud.utils.DateUtil.IntervalType; import com.cloud.utils.NumbersUtil; import com.cloud.utils.Pair; -import com.cloud.utils.Ternary; import com.cloud.utils.concurrency.NamedThreadFactory; import com.cloud.utils.db.DB; import com.cloud.utils.db.Filter; @@ -657,12 +656,11 @@ public Pair, Integer> listSnapshots(ListSnapshotsCmd cm List ids = getIdsListFromCmd(cmd.getId(), cmd.getIds()); - Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), - cmd.isRecursive(), null); + Pair domainIdRecursiveListProject = new Pair(cmd.getDomainId(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); - Boolean isRecursive = domainIdRecursiveListProject.second(); - ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); + ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.second(); + Boolean isRecursive = cmd.isRecursive(); Filter searchFilter = new Filter(SnapshotVO.class, "created", false, cmd.getStartIndex(), cmd.getPageSizeVal()); SearchBuilder sb = _snapshotDao.createSearchBuilder(); diff --git a/server/src/main/java/com/cloud/user/AccountManager.java b/server/src/main/java/com/cloud/user/AccountManager.java index 57012e13334c..fd367914da13 100644 --- a/server/src/main/java/com/cloud/user/AccountManager.java +++ b/server/src/main/java/com/cloud/user/AccountManager.java @@ -33,7 +33,6 @@ import com.cloud.exception.ResourceUnavailableException; import com.cloud.projects.Project.ListProjectResourcesCriteria; import com.cloud.utils.Pair; -import com.cloud.utils.Ternary; import com.cloud.utils.db.SearchBuilder; import com.cloud.utils.db.SearchCriteria; @@ -96,7 +95,7 @@ void buildACLSearchCriteria(SearchCriteria sc, Long ListProjectResourcesCriteria listProjectResourcesCriteria); void buildACLSearchParameters(Account caller, Long id, String accountName, Long projectId, List permittedAccounts, - Ternary domainIdRecursiveListProject, boolean listAll, boolean forProjectInvitation); + Pair domainIdRecursiveListProject, boolean listAll, boolean forProjectInvitation); void buildACLViewSearchCriteria(SearchCriteria sc, Long domainId, boolean isRecursive, List permittedAccounts, ListProjectResourcesCriteria listProjectResourcesCriteria); diff --git a/server/src/main/java/com/cloud/user/AccountManagerImpl.java b/server/src/main/java/com/cloud/user/AccountManagerImpl.java index ca0904ade1a3..965bed5ad135 100644 --- a/server/src/main/java/com/cloud/user/AccountManagerImpl.java +++ b/server/src/main/java/com/cloud/user/AccountManagerImpl.java @@ -153,7 +153,6 @@ import com.cloud.utils.ConstantTimeComparator; import com.cloud.utils.NumbersUtil; import com.cloud.utils.Pair; -import com.cloud.utils.Ternary; import com.cloud.utils.component.Manager; import com.cloud.utils.component.ManagerBase; import com.cloud.utils.concurrency.NamedThreadFactory; @@ -2776,7 +2775,7 @@ public void buildACLSearchCriteria(SearchCriteria sc //TODO: deprecate this to use the new buildACLSearchParameters with permittedDomains, permittedAccounts, and permittedResources as return @Override public void buildACLSearchParameters(Account caller, Long id, String accountName, Long projectId, List permittedAccounts, - Ternary domainIdRecursiveListProject, boolean listAll, boolean forProjectInvitation) { + Pair domainIdRecursiveListProject, boolean listAll, boolean forProjectInvitation) { Long domainId = domainIdRecursiveListProject.first(); if (domainId != null) { Domain domain = _domainDao.findById(domainId); @@ -2816,9 +2815,9 @@ public void buildACLSearchParameters(Account caller, Long id, String accountName if (!forProjectInvitation) { if (projectId == -1L) { if (caller.getType() == Account.ACCOUNT_TYPE_ADMIN) { - domainIdRecursiveListProject.third(Project.ListProjectResourcesCriteria.ListProjectResourcesOnly); + domainIdRecursiveListProject.second(Project.ListProjectResourcesCriteria.ListProjectResourcesOnly); if (listAll) { - domainIdRecursiveListProject.third(ListProjectResourcesCriteria.ListAllIncludingProjectResources); + domainIdRecursiveListProject.second(ListProjectResourcesCriteria.ListAllIncludingProjectResources); } } else { permittedAccounts.addAll(_projectMgr.listPermittedProjectAccounts(caller.getId())); @@ -2840,7 +2839,7 @@ public void buildACLSearchParameters(Account caller, Long id, String accountName } } else { if (id == null) { - domainIdRecursiveListProject.third(Project.ListProjectResourcesCriteria.SkipProjectResources); + domainIdRecursiveListProject.second(Project.ListProjectResourcesCriteria.SkipProjectResources); } if (permittedAccounts.isEmpty() && domainId == null) { if (caller.getType() == Account.ACCOUNT_TYPE_NORMAL) { diff --git a/server/src/main/java/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java b/server/src/main/java/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java index bd66fe89ec65..9c795b0cee3d 100644 --- a/server/src/main/java/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java +++ b/server/src/main/java/com/cloud/vm/snapshot/VMSnapshotManagerImpl.java @@ -100,7 +100,6 @@ import com.cloud.utils.Pair; import com.cloud.utils.Predicate; import com.cloud.utils.ReflectionUse; -import com.cloud.utils.Ternary; import com.cloud.utils.db.EntityManager; import com.cloud.utils.db.Filter; import com.cloud.utils.db.JoinBuilder; @@ -227,13 +226,13 @@ public Pair, Integer> listVMSnapshots(ListVMSnapshotC List ids = getIdsListFromCmd(cmd.getId(), cmd.getIds()); - Ternary domainIdRecursiveListProject = new Ternary( - cmd.getDomainId(), cmd.isRecursive(), null); + Pair domainIdRecursiveListProject = new Pair( + cmd.getDomainId(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, listAll, false); Long domainId = domainIdRecursiveListProject.first(); - Boolean isRecursive = domainIdRecursiveListProject.second(); - ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); + ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.second(); + Boolean isRecursive = cmd.isRecursive(); Filter searchFilter = new Filter(VMSnapshotVO.class, "created", false, cmd.getStartIndex(), cmd.getPageSizeVal()); SearchBuilder sb = _vmSnapshotDao.createSearchBuilder(); diff --git a/server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java b/server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java index e52ab6c94cb7..093a71936d3d 100644 --- a/server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java +++ b/server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java @@ -94,7 +94,6 @@ import com.cloud.user.User; import com.cloud.utils.DateUtil; import com.cloud.utils.Pair; -import com.cloud.utils.Ternary; import com.cloud.utils.component.ComponentContext; import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.DB; @@ -500,12 +499,11 @@ public Pair, Integer> listBackups(final ListBackupsCmd cmd) { } } - final Ternary domainIdRecursiveListProject = new Ternary(cmd.getDomainId(), - cmd.isRecursive(), null); + final Pair domainIdRecursiveListProject = new Pair(cmd.getDomainId(), null); accountManager.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); final Long domainId = domainIdRecursiveListProject.first(); - final Boolean isRecursive = domainIdRecursiveListProject.second(); - final Project.ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); + Project.ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.second(); + Boolean isRecursive = cmd.isRecursive(); final Filter searchFilter = new Filter(BackupVO.class, "id", true, cmd.getStartIndex(), cmd.getPageSizeVal()); SearchBuilder sb = backupDao.createSearchBuilder(); diff --git a/server/src/main/java/org/apache/cloudstack/network/lb/ApplicationLoadBalancerManagerImpl.java b/server/src/main/java/org/apache/cloudstack/network/lb/ApplicationLoadBalancerManagerImpl.java index 1c9af7a334d5..c60ca4559108 100644 --- a/server/src/main/java/org/apache/cloudstack/network/lb/ApplicationLoadBalancerManagerImpl.java +++ b/server/src/main/java/org/apache/cloudstack/network/lb/ApplicationLoadBalancerManagerImpl.java @@ -63,7 +63,6 @@ import com.cloud.user.Account; import com.cloud.user.AccountManager; import com.cloud.utils.Pair; -import com.cloud.utils.Ternary; import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.DB; import com.cloud.utils.db.Filter; @@ -389,13 +388,13 @@ public Pair, Integer> listApplicatio Account caller = CallContext.current().getCallingAccount(); List permittedAccounts = new ArrayList(); - Ternary domainIdRecursiveListProject = new Ternary( - cmd.getDomainId(), cmd.isRecursive(), null); + final Pair domainIdRecursiveListProject = new Pair( + cmd.getDomainId(), null); _accountMgr.buildACLSearchParameters(caller, id, cmd.getAccountName(), cmd.getProjectId(), permittedAccounts, domainIdRecursiveListProject, cmd.listAll(), false); Long domainId = domainIdRecursiveListProject.first(); - Boolean isRecursive = domainIdRecursiveListProject.second(); - ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.third(); + ListProjectResourcesCriteria listProjectResourcesCriteria = domainIdRecursiveListProject.second(); + Boolean isRecursive = cmd.isRecursive(); Filter searchFilter = new Filter(ApplicationLoadBalancerRuleVO.class, "id", true, cmd.getStartIndex(), cmd.getPageSizeVal()); SearchBuilder sb = _lbDao.createSearchBuilder(); diff --git a/server/src/test/java/com/cloud/user/MockAccountManagerImpl.java b/server/src/test/java/com/cloud/user/MockAccountManagerImpl.java index f222368500ae..73b0eb6ca5f1 100644 --- a/server/src/test/java/com/cloud/user/MockAccountManagerImpl.java +++ b/server/src/test/java/com/cloud/user/MockAccountManagerImpl.java @@ -48,7 +48,6 @@ import com.cloud.offering.ServiceOffering; import com.cloud.projects.Project.ListProjectResourcesCriteria; import com.cloud.utils.Pair; -import com.cloud.utils.Ternary; import com.cloud.utils.component.Manager; import com.cloud.utils.component.ManagerBase; import com.cloud.utils.db.SearchBuilder; @@ -321,7 +320,8 @@ public void buildACLSearchCriteria(SearchCriteria sc } @Override - public void buildACLSearchParameters(Account caller, Long id, String accountName, Long projectId, List permittedAccounts, Ternary domainIdRecursiveListProject, boolean listAll, boolean forProjectInvitation) { + public void buildACLSearchParameters(Account caller, Long id, String accountName, Long projectId, List permittedAccounts, + Pair domainIdRecursiveListProject, boolean listAll, boolean forProjectInvitation) { // TODO Auto-generated method stub } From 224b50acbecb1e8413dfe32931e0d07ae37e0e3b Mon Sep 17 00:00:00 2001 From: davidjumani Date: Wed, 9 Mar 2022 11:02:25 +0530 Subject: [PATCH 5/5] fixing npe --- server/src/main/java/com/cloud/server/ManagementServerImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/src/main/java/com/cloud/server/ManagementServerImpl.java b/server/src/main/java/com/cloud/server/ManagementServerImpl.java index c4f29731b53a..a19aec2c0ad9 100644 --- a/server/src/main/java/com/cloud/server/ManagementServerImpl.java +++ b/server/src/main/java/com/cloud/server/ManagementServerImpl.java @@ -2226,7 +2226,7 @@ public Pair, Integer> searchForIPAddresses(final ListP final Filter searchFilter = new Filter(IPAddressVO.class, "address", false, null, null); final SearchBuilder sb = _publicIpAddressDao.createSearchBuilder(); Long domainId = null; - Boolean isRecursive = null; + Boolean isRecursive = cmd.listAll(); final List permittedAccounts = new ArrayList<>(); ListProjectResourcesCriteria listProjectResourcesCriteria = null; if (isAllocated || (vlanType == VlanType.VirtualNetwork && (caller.getType() != Account.ACCOUNT_TYPE_ADMIN || cmd.getDomainId() != null))) {