----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/12883/#review24205 -----------------------------------------------------------
In researching this more look like there is a code in NetworkManager that will set the Network DNS Domain, given proper DNS Capabilities (Capability.AllowDnsSuffixModification) is set in the DNS Offering. I need to investigate what happens when the DNS value for Zone is modified, so perhaps the code in the prepare/release is not needed. // If networkDomain is not specified, take it from the global configuration if (_networkModel.areServicesSupportedByNetworkOffering(networkOfferingId, Service.Dns)) { Map<Network.Capability, String> dnsCapabilities = _networkModel.getNetworkOfferingServiceCapabilities (_configMgr.getNetworkOffering(networkOfferingId), Service.Dns); String isUpdateDnsSupported = dnsCapabilities.get(Capability.AllowDnsSuffixModification); if (isUpdateDnsSupported == null || !Boolean.valueOf(isUpdateDnsSupported)) { if (networkDomain != null) { // TBD: NetworkOfferingId and zoneId. Send uuids instead. throw new InvalidParameterValueException("Domain name change is not supported by network offering id=" + networkOfferingId + " in zone id=" + zoneId); } - Soheil Eizadi On July 26, 2013, 10:22 p.m., Soheil Eizadi wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/12883/ > ----------------------------------------------------------- > > (Updated July 26, 2013, 10:22 p.m.) > > > Review request for cloudstack. > > > Bugs: https://issues.apache.org/jira/browse/CLOUDSTACK-3754 > > > Repository: cloudstack-git > > > Description > ------- > > DNS value in Zone is not getting set in the Network created for the Zone. Due > to this the prepare and release calls to the Network Plugins are missing this > information for the VMs. > > see Jira bug https://issues.apache.org/jira/browse/CLOUDSTACK-3754 for > additional details. > > diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java > b/server/src/com/cloud/network/NetworkManagerImpl.java > index 8e90cb7..53715c2 100755 > --- a/server/src/com/cloud/network/NetworkManagerImpl.java > +++ b/server/src/com/cloud/network/NetworkManagerImpl.java > @@ -2041,6 +2041,12 @@ public class NetworkManagerImpl extends ManagerBase > implements NetworkManager, L > dest, ReservationContext context, long nicId, NetworkVO network) > throws InsufficientVirtualNetworkCapcityException, > InsufficientAddressCapacityException, > ConcurrentOperationException, InsufficientCapacityException, > ResourceUnavailableException { > + > + if (dest.getDataCenter().getNetworkType() == NetworkType.Basic) { > + if ((network.getNetworkDomain() == null) && > (dest.getDataCenter().getDomain() != null)) { > + > network.setNetworkDomain(dest.getDataCenter().getDomain()); > + } > + } > > Integer networkRate = _networkModel.getNetworkRate(network.getId(), > vmProfile.getId()); > NetworkGuru guru = AdapterBase.getAdapterByName(_networkGurus, > network.getGuruName()); > @@ -2116,6 +2122,13 @@ public class NetworkManagerImpl extends ManagerBase > implements NetworkManager, L > s_logger.error("NetworkGuru "+guru+" prepareForMigration > failed."); // XXX: Transaction error > } > } > + > + if (dest.getDataCenter().getNetworkType() == > NetworkType.Basic) { > + if ((network.getNetworkDomain() == null) && > (dest.getDataCenter().getDomain() != null)) { > + > network.setNetworkDomain(dest.getDataCenter().getDomain()); > + } > + } > + > for (NetworkElement element : _networkElements) { > if(element instanceof NetworkMigrationResponder){ > if(!((NetworkMigrationResponder) > element).prepareMigration(profile, network, vm, dest, context)){ > @@ -2238,7 +2251,14 @@ public class NetworkManagerImpl extends ManagerBase > implements NetworkManager, L > //commit the transaction before proceeding releasing nic > profile on the network elements > txn.commit(); > > - // Perform release on network elements > + DataCenterVO zone = > _dcDao.findById(network.getDataCenterId()); > + if ( zone.getNetworkType() == NetworkType.Basic) { > + if ((network.getNetworkDomain() == null) && > (zone.getDomain() != null)) { > + network.setNetworkDomain(zone.getDomain()); > + } > + } > + > + // Perform release on network elements > for (NetworkElement element : _networkElements) { > if (s_logger.isDebugEnabled()) { > s_logger.debug("Asking " + element.getName() + " to > release " + nic); > > > Diffs > ----- > > > Diff: https://reviews.apache.org/r/12883/diff/ > > > Testing > ------- > > Validated that the defaultGuestNetwork created had the DNS Domain value set > to NULL. > > I mades sure that calls to prepare/release to Network Element Plugins had the > DNS Domain set to the Zone value. > > > Thanks, > > Soheil Eizadi > >