I found that the DNS Network Domain set for Basic Networking is not getting
passed down to Network Plugins. I am trying to figure out how DNS Network
Domain is suppose to work for my plugin integration.
I was getting a NULL value for Basic Networking for the DNS Domain even though
I had set a value for it in the Wizard. After I set the value in the database,
it seems to be working but wanted to understand why it was not set,I found code
in the system that enforces this behavior, when I try to set it from the API.
-Soheil
More detail logs .....
The Domain is set in the Zone Setting to acme.com:
> list zones
count = 1
zone:
name = testzone
..
domain = acme.com
..
It does not get passed down to the attached network.
API call "list networks" missing networkdomain field as it is NULL.
> list networks
count = 1
network:
id = 1065fff0-a6e2-410a-94d5-50bc72f879db
name = defaultGuestNetwork
acltype = Domain
broadcastdomaintype = Native
.....
I also tried to set it using API to set the value but get exception:
ERROR [cloud.async.AsyncJobManagerImpl] (Job-Executor-20:job-20) Unexpected
exception while executing
org.apache.cloudstack.api.command.user.network.UpdateNetworkCmd
com.cloud.exception.InvalidParameterValueException: NetworkOffering and domain
suffix upgrade can be perfomed for Isolated networks only
at
com.cloud.network.NetworkServiceImpl.updateGuestNetwork(NetworkServiceImpl.java:1982)
at
com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125)
Exception from here:
// network offering and domain suffix can be updated for Isolated
networks only in 3.0
if ((networkOfferingId != null || domainSuffix != null) &&
network.getGuestType() != GuestType.Isolated) {
throw new InvalidParameterValueException("NetworkOffering and
domain suffix upgrade can be perfomed for Isolated networks only");
}
I've patched the database and it works for me, trying to understand why we have
code to prevent it?
> list networks
count = 1
network:
id = 1065fff0-a6e2-410a-94d5-50bc72f879db
name = defaultGuestNetwork
...
networkdomain = acme.com
....
INFO [network.element.InfobloxElement] (consoleproxy-1:) InfobloxDeviceElement
called to prepare Host Name soheil-test with DNS Domain acme.com Gateway null
Netmask null with MAC 06:97:84:00:00:16 with IPv4 172.16.197.161