CLOUDSTACK-116 Guest Network created in a Sub Domain which doesn't have a network domain suffix, is assigned the network domain suffix of the zone instead of that of the Parent domain of the Sub domain
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/74086a02 Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/74086a02 Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/74086a02 Branch: refs/heads/4.0 Commit: 74086a0295318b394bb787832ff317d6ae455d05 Parents: ce898f9 Author: Mice Xia <[email protected]> Authored: Mon Sep 17 21:22:18 2012 +0800 Committer: Edison Su <[email protected]> Committed: Tue Sep 18 15:46:53 2012 -0700 ---------------------------------------------------------------------- .../src/com/cloud/network/NetworkManagerImpl.java | 12 ++++++++++-- 1 files changed, 10 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/74086a02/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 292a259..7a11525 100755 --- a/server/src/com/cloud/network/NetworkManagerImpl.java +++ b/server/src/com/cloud/network/NetworkManagerImpl.java @@ -4846,11 +4846,19 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag } private String getDomainNetworkDomain(long domainId, long zoneId) { - String networkDomain = _domainDao.findById(domainId).getNetworkDomain(); + String networkDomain = null; + Long searchDomainId = domainId; + while(searchDomainId != null){ + DomainVO domain = _domainDao.findById(searchDomainId); + if(domain.getNetworkDomain() != null){ + networkDomain = domain.getNetworkDomain(); + break; + } + searchDomainId = domain.getParent(); + } if (networkDomain == null) { return getZoneNetworkDomain(zoneId); } - return networkDomain; }
