Mike, i created https://github.com/apache/cloudstack/pull/2296 after investigation. haven't tested it yet.
On Fri, Oct 13, 2017 at 9:29 AM, Daan Hoogland <daan.hoogl...@gmail.com> wrote: > Mike, absolutely right and I would usually just say "okay revert" but in > this case I want to look to fix forward. This commit is an attempt to make > network types more pluggable. So let me see if I can find a solution. I had > trusted on the smoke tests to pick this up. > > On Thu, Oct 12, 2017 at 10:50 PM, Tutkowski, Mike < > mike.tutkow...@netapp.com> wrote: > >> 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.getIsolationM >> ethods().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" <mike.tutkow...@netapp.com> >> 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 <rohit.ya...@shapeblue.com >> <mailto:rohit.ya...@shapeblue.com>> 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 <mike.tutkow...@netapp.com<mailto: >> mike.tutkow...@netapp.com>> >> Sent: Thursday, October 12, 2017 1:17:50 AM >> To: dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org> >> 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" <rohit.ya...@shapeblue.com<mai >> lto:rohit.ya...@shapeblue.com>> 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/orc >> hestration/src/org/apache/cloudstack/engine/orchestration/Ne >> tworkOrchestrator.java#L715 >> >> >> - Rohit >> >> ________________________________ >> From: Tutkowski, Mike <mike.tutkow...@netapp.com<mailto: >> mike.tutkow...@netapp.com>> >> Sent: Wednesday, October 11, 2017 6:08:10 AM >> To: dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org> >> 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.NetworkOrchestrat >> or.setupNetwork(NetworkOrchestrator.java:715) >> at org.apache.cloudstack.engine.orchestration.NetworkOrchestrat >> or$10.doInTransaction(NetworkOrchestrator.java:2296) >> at org.apache.cloudstack.engine.orchestration.NetworkOrchestrat >> or$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.NetworkOrchestrat >> or.createGuestNetwork(NetworkOrchestrator.java:2250) >> at com.cloud.network.NetworkServiceImpl$4.doInTransaction(Netwo >> rkServiceImpl.java:1411) >> at com.cloud.network.NetworkServiceImpl$4.doInTransaction(Netwo >> rkServiceImpl.java:1359) >> at com.cloud.utils.db.Transaction.execute(Transaction.java:40) >> at com.cloud.network.NetworkServiceImpl.commitNetwork(NetworkSe >> rviceImpl.java:1359) >> at com.cloud.network.NetworkServiceImpl.createGuestNetwork(Netw >> orkServiceImpl.java:1322) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce >> ssorImpl.java:62) >> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe >> thodAccessorImpl.java:43) >> at java.lang.reflect.Method.invoke(Method.java:498) >> at org.springframework.aop.support.AopUtils.invokeJoinpointUsin >> gReflection(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(ActionEventInt >> erceptor.java:51) >> at org.springframework.aop.framework.ReflectiveMethodInvocation >> .proceed(ReflectiveMethodInvocation.java:168) >> at org.springframework.aop.interceptor.ExposeInvocationIntercep >> tor.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.CreateNetwor >> kCmdByAdmin.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.DefaultManagedCon >> text$1.call(DefaultManagedContext.java:56) >> at org.apache.cloudstack.managed.context.impl.DefaultManagedCon >> text.callWithContext(DefaultManagedContext.java:103) >> at org.apache.cloudstack.managed.context.impl.DefaultManagedCon >> text.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.doFilte >> r(ServletHandler.java:1669) >> at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.do >> Filter(WebSocketUpgradeFilter.java:189) >> at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilte >> r(ServletHandler.java:1652) >> at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHan >> dler.java:585) >> at org.eclipse.jetty.server.handler.ScopedHandler.handle(Scoped >> Handler.java:143) >> at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHa >> ndler.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(ServletHand >> ler.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(Scoped >> Handler.java:141) >> at org.eclipse.jetty.server.handler.ContextHandlerCollection.ha >> ndle(ContextHandlerCollection.java:215) >> at org.eclipse.jetty.server.handler.HandlerCollection.handle( >> HandlerCollection.java:110) >> at org.eclipse.jetty.server.handler.HandlerWrapper.handle(Handl >> erWrapper.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(HttpConne >> ction.java:258) >> at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnec >> tion.java:544) >> at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(Queued >> ThreadPool.java:635) >> at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedT >> hreadPool.java:555) >> at java.lang.Thread.run(Thread.java:745) >> >> Any of our networking gurus want to take a look at this? >> >> Thanks! >> Mike >> >> rohit.ya...@shapeblue.com<mailto:rohit.ya...@shapeblue.com> >> www.shapeblue.com<http://www.shapeblue.com><http://www.shap >> eblue.com> >> 53 Chandos Place, Covent Garden, London WC2N 4HSUK >> @shapeblue >> >> >> >> >> >> >> rohit.ya...@shapeblue.com<mailto:rohit.ya...@shapeblue.com> >> www.shapeblue.com<http://www.shapeblue.com> >> 53 Chandos Place, Covent Garden, London WC2N 4HSUK >> @shapeblue >> >> >> >> >> >> > > > -- > Daan > -- Daan