Fixed listNetworks to return domain level networks when listAll is passed to 
the request

Conflicts:

        server/src/com/cloud/network/NetworkManagerImpl.java


Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/721d3ef3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/721d3ef3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/721d3ef3

Branch: refs/heads/vpc
Commit: 721d3ef3dcd773d3e5b638f703e91456915393e6
Parents: 9078550
Author: Alena Prokharchyk <[email protected]>
Authored: Tue Jul 31 10:20:40 2012 -0700
Committer: Alena Prokharchyk <[email protected]>
Committed: Tue Jul 31 10:24:09 2012 -0700

----------------------------------------------------------------------
 .../src/com/cloud/network/NetworkManagerImpl.java  |   26 +++++++++++++--
 1 files changed, 23 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/721d3ef3/server/src/com/cloud/network/NetworkManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java 
b/server/src/com/cloud/network/NetworkManagerImpl.java
index 4dd5eab..77da24e 100755
--- a/server/src/com/cloud/network/NetworkManagerImpl.java
+++ b/server/src/com/cloud/network/NetworkManagerImpl.java
@@ -2842,12 +2842,16 @@ public class NetworkManagerImpl implements 
NetworkManager, NetworkService, Manag
                 networksToReturn.addAll(listAccountSpecificNetworks(
                         buildNetworkSearchCriteria(sb, keyword, id, isSystem, 
zoneId, guestIpType, trafficType, 
                                 physicalNetworkId, aclType, 
skipProjectNetworks, restartRequired, specifyIpRanges, tags), searchFilter,
-                        permittedAccounts));
-            } else if (domainId == null || listAll) {
+                                permittedAccounts));
+            } else if (domainId == null) {
                 
networksToReturn.addAll(listAccountSpecificNetworksByDomainPath(
                         buildNetworkSearchCriteria(sb, keyword, id, isSystem, 
zoneId, guestIpType, trafficType, 
                                 physicalNetworkId, aclType, 
skipProjectNetworks, restartRequired, specifyIpRanges, tags), searchFilter, 
path,
-                        isRecursive));
+                                isRecursive));
+                networksToReturn.addAll(listDomainSpecificNetworksByDomainPath(
+                        buildNetworkSearchCriteria(sb, keyword, id, isSystem, 
zoneId, guestIpType, trafficType, 
+                                physicalNetworkId, aclType, 
skipProjectNetworks, restartRequired, specifyIpRanges, tags), searchFilter, 
path,
+                                isRecursive));
             }
         } else {
             networksToReturn = 
_networksDao.search(buildNetworkSearchCriteria(sb, keyword, id, isSystem, 
zoneId,
@@ -3023,6 +3027,22 @@ public class NetworkManagerImpl implements 
NetworkManager, NetworkService, Manag
         sc.addAnd("id", SearchCriteria.Op.SC, accountSC);
         return _networksDao.search(sc, searchFilter);
     }
+    
+    private List<NetworkVO> 
listDomainSpecificNetworksByDomainPath(SearchCriteria<NetworkVO> sc, Filter 
searchFilter, String path, boolean isRecursive) {
+        SearchCriteria<NetworkVO> accountSC = 
_networksDao.createSearchCriteria();
+        accountSC.addAnd("aclType", SearchCriteria.Op.EQ, 
ACLType.Domain.toString());
+
+        if (path != null) {
+            if (isRecursive) {
+                sc.setJoinParameters("domainSearch", "path", path + "%");
+            } else {
+                sc.setJoinParameters("domainSearch", "path", path);
+            }
+        }
+
+        sc.addAnd("id", SearchCriteria.Op.SC, accountSC);
+        return _networksDao.search(sc, searchFilter);
+    }
 
     @Override
     @ActionEvent(eventType = EventTypes.EVENT_NETWORK_DELETE, eventDescription 
= "deleting network", async = true)

Reply via email to