It looks like this commit broke support for Basic Zones:
a06530d (Daan: Can you look into this?)
4.10
@Override
protected boolean canHandle(NetworkOffering offering, DataCenter dc) {
// this guru handles system Direct pod based network
if (dc.getNetworkType() == NetworkType.Basic &&
isMyTrafficType(offering.getTrafficType())) {
return true;
} else {
s_logger.trace("We only take care of Guest Direct Pod based networks");
return false;
}
}
master
@Override
protected boolean canHandle(NetworkOffering offering, DataCenter dc,
PhysicalNetwork physnet) {
// this guru handles system Direct pod based network
if (dc.getNetworkType() == NetworkType.Basic &&
isMyTrafficType(offering.getTrafficType()) && isMyIsolationMethod(physnet)) {
return true;
} else {
s_logger.trace("We only take care of Guest Direct Pod based networks");
return false;
}
}
isMyIsolationMethod(physnet) fails (new to master):
protected boolean isMyIsolationMethod(PhysicalNetwork physicalNetwork) {
for (IsolationMethod m : _isolationMethods) {
if (physicalNetwork.getIsolationMethods().contains(m.toString())) {
return true;
}
}
return false;
}
_isolationMethods = new IsolationMethod[] { new IsolationMethod("VLAN") };
_isolationMethods is only of size = 1 and m.toString() returns “VLAN” whereas
physicalNetwork.getIsolationMethods() is of size = 0. This method returns false
and none of the network gurus can support the creation of a Basic Zone.
On 10/12/17, 7:03 AM, "Tutkowski, Mike" <[email protected]> wrote:
Yes, I can debug it more. I’m in the middle of some other task at the
moment, so I might not be able to get to it until later this evening. In the
meanwhile, I figured I’d send out the previous e-mail in case it might sound
like something one of our networking devs recognize. :) Thanks!
On Oct 12, 2017, at 12:18 AM, Rohit Yadav
<[email protected]<mailto:[email protected]>> wrote:
Hi Mike,
I think you can repeat the process with 4.10 and compare with master as to
which NetworkGuru is supposed to design and return you a network, then you can
do some git log tracing to find what was changed and why the respective network
guru is not returning a network. It could be environment/config issue or
change/regression in code.
For local/nfs storage, and all three hypervisor no major regression was
seen in last trillian smoke test runs.
- Rohit
________________________________
From: Tutkowski, Mike
<[email protected]<mailto:[email protected]>>
Sent: Thursday, October 12, 2017 1:17:50 AM
To: [email protected]<mailto:[email protected]>
Subject: Re: Can't create Basic Zone with master
Hi Rohit,
I walked through the debugger with this and now have more info:
The following network gurus are leveraged to create networks successfully:
PublicNetworkGuru
PodBasedNetworkGuru
ControlNetworkGuru
StorageNetworkGuru
Once the zone-creation wizard reaches the “Enabling Security Group
provider” part, NetworkOrchestrator.setupNetwork is again invoked and this time
throws an exception.
It walks through all of its network gurus and none of them returns a
pointer to a Network object.
for (final NetworkGuru guru : networkGurus) {
final Network network = guru.design(offering, plan,
predefined, owner);
if (network == null) {
continue;
}
Since no Network object was returned, the list of Network objects is empty
and an exception is thrown.
Thanks,
Mike
On 10/11/17, 1:44 AM, "Rohit Yadav"
<[email protected]<mailto:[email protected]>> wrote:
Mike,
Can you re-deploy a fresh environment and see what's failing, stepping
through the workflow. The specific line it's throwing exception is caused when
there are no network (network size is 0) setup:
https://github.com/apache/cloudstack/blob/master/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/NetworkOrchestrator.java#L715
- Rohit
________________________________
From: Tutkowski, Mike
<[email protected]<mailto:[email protected]>>
Sent: Wednesday, October 11, 2017 6:08:10 AM
To: [email protected]<mailto:[email protected]>
Subject: Can't create Basic Zone with master
Hi,
I was trying to run the managed-storage regression test suite on PR 2018
(https://github.com/apache/cloudstack/pull/2081) when I realized I couldn’t
create a Basic Zone (using XenServer) with that code.
I then took a step back from that PR and tried to create a Basic Zone
(again, with XenServer) using master (specifically f1c01a5).
After this didn’t work, I tried with the tag 4.10.0.0 (9d2893d) and it
worked.
As such, it appears somewhere along the way that we have introduced code
into master that has broken the use case of creating a Basic Zone (at least
with XenServer).
It seems to be networking related.
Here is the stack trace I’m getting:
ERROR [c.c.a.ApiServer] (qtp708058685-279:ctx-a3ea1e98 ctx-b18fc696)
(logid:ce86e7d9) unhandled exception executing api command:
[Ljava.lang.String;@50361bfa
com.cloud.utils.exception.CloudRuntimeException: Unable to convert
network offering with specified id to network profile
at
org.apache.cloudstack.engine.orchestration.NetworkOrchestrator.setupNetwork(NetworkOrchestrator.java:715)
at
org.apache.cloudstack.engine.orchestration.NetworkOrchestrator$10.doInTransaction(NetworkOrchestrator.java:2296)
at
org.apache.cloudstack.engine.orchestration.NetworkOrchestrator$10.doInTransaction(NetworkOrchestrator.java:2250)
at com.cloud.utils.db.Transaction$2.doInTransaction(Transaction.java:50)
at com.cloud.utils.db.Transaction.execute(Transaction.java:40)
at com.cloud.utils.db.Transaction.execute(Transaction.java:47)
at
org.apache.cloudstack.engine.orchestration.NetworkOrchestrator.createGuestNetwork(NetworkOrchestrator.java:2250)
at
com.cloud.network.NetworkServiceImpl$4.doInTransaction(NetworkServiceImpl.java:1411)
at
com.cloud.network.NetworkServiceImpl$4.doInTransaction(NetworkServiceImpl.java:1359)
at com.cloud.utils.db.Transaction.execute(Transaction.java:40)
at
com.cloud.network.NetworkServiceImpl.commitNetwork(NetworkServiceImpl.java:1359)
at
com.cloud.network.NetworkServiceImpl.createGuestNetwork(NetworkServiceImpl.java:1322)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at
org.apache.cloudstack.network.contrail.management.EventUtils$EventInterceptor.invoke(EventUtils.java:107)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:168)
at
com.cloud.event.ActionEventInterceptor.invoke(ActionEventInterceptor.java:51)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:168)
at
org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
at com.sun.proxy.$Proxy231.createGuestNetwork(Unknown Source)
at
org.apache.cloudstack.api.command.admin.network.CreateNetworkCmdByAdmin.execute(CreateNetworkCmdByAdmin.java:58)
at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:150)
at com.cloud.api.ApiServer.queueCommand(ApiServer.java:728)
at com.cloud.api.ApiServer.handleRequest(ApiServer.java:552)
at com.cloud.api.ApiServlet.processRequestInContext(ApiServlet.java:297)
at com.cloud.api.ApiServlet$1.run(ApiServlet.java:129)
at
org.apache.cloudstack.managed.context.impl.DefaultManagedContext$1.call(DefaultManagedContext.java:56)
at
org.apache.cloudstack.managed.context.impl.DefaultManagedContext.callWithContext(DefaultManagedContext.java:103)
at
org.apache.cloudstack.managed.context.impl.DefaultManagedContext.runWithContext(DefaultManagedContext.java:53)
at com.cloud.api.ApiServlet.processRequest(ApiServlet.java:126)
at com.cloud.api.ApiServlet.doGet(ApiServlet.java:88)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
at
org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:189)
at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
at
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
at
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
at
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
at
org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.Server.handle(Server.java:499)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
at
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:258)
at
org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
at
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
at java.lang.Thread.run(Thread.java:745)
Any of our networking gurus want to take a look at this?
Thanks!
Mike
[email protected]<mailto:[email protected]>
www.shapeblue.com<http://www.shapeblue.com><http://www.shapeblue.com>
53 Chandos Place, Covent Garden, London WC2N 4HSUK
@shapeblue
[email protected]<mailto:[email protected]>
www.shapeblue.com<http://www.shapeblue.com>
53 Chandos Place, Covent Garden, London WC2N 4HSUK
@shapeblue