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)