-----------------------------------------------------------
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
>
>